Атаки по побочным каналам с глубоким обучением: теория

Атакипопобочнымканаламсглубокимобучениемтеория

Эта серия сообщений в блоге содержит практическое пошаговое руководство по использованию глубокого обучения для проведения атаки по побочному каналу – одной из самых мощных методы криптоанализа . Мы собираемся научить вас использовать TensorFlow для восстановления ключа AES, используемого реализацией TinyAES , запущенной на ЦП ARM ( STM 44 F 459 ) по трассировке энергопотребления.

Аппаратное шифрование – краеугольный камень системной безопасности. От доверенной загрузки операционных систем до шифрования данных телефона , до хранилище отпечатков пальцев , на чип кредитной карты, на аппаратные кошельки Биткойн используется для хранения криптовалюты (например, биткойнов), аппаратное шифрование используется повсеместно для защиты секретов.

За последние три года наша исследовательская группа в Google в партнерство с различными исследовательскими группами работало над разработкой атак с глубоким обучением по побочным каналам ( SCAAML ) и контрмеры для создания более безопасного надежного оборудования. По нашему опыту все становится намного понятнее, когда вы начинаете писать код . Вот почему мы подумали, что лучший способ помочь вам начать работу в увлекательной области аппаратного криптоанализа – это предоставить вам практическое руководство, которое шаг за шагом покажет вам, как вы можете восстановить ключи AES из реальной аппаратной цели путем обучения. модель TensorFlow на графиках мощности процессора.

Общий план состоит в том, чтобы руководство было разделено на две части. из-за длины темы:

  • Теория облегчения : Первая часть (этот пост) посвящена объяснению основных концепций, которые вам необходимо знать, чтобы понять, как работает атака побочного канала на основе мощности глубокого обучения, какое оборудование и программное обеспечение необходимо для ее выполнения, а также краткое описание. объяснение преимущества использования глубокого обучения для выполнения SCA ( атака по побочному каналу ) по сравнению с традиционными методами, такими как атаки по шаблону. Это довольно длинный пост (> 23742917 слов), но есть много понятий вы необходимость объединения, чтобы заставить такие атаки работать, и понимание того, как все сочетается друг с другом, является одной из основных трудностей при запуске аппаратного криптоанализа. Вот почему я приложил все усилия, чтобы найти правильный баланс между краткостью и предоставлением вам достаточного количества объяснений и примеров, чтобы было понятно, как работает атака по побочному каналу. Глубина и объем также объясняют, почему мне потребовалось более двух лет, чтобы написать руководство, которым я был доволен, так как мы сделали нашу

  • начальную сторону. -канальная атака с использованием глубокого обучения в DEF CON 😊

  • Шаг за шагом восстановление : второй пост представляет собой пошаговое руководство по коду, которое шаг за шагом объясняет, как атаковать Реализация TinyAES , работающая на STM 46 F 540 чип по обучению и с использованием модели глубокого обучения Tensorflow. SCAAML GitHub содержит весь код, модели и набор данных, которым вы должны следовать, и Эксперимент с. Обратите внимание, что без понимания концепций, обсуждаемых в этом посте, вам будет трудно понять эту часть, поэтому я рекомендую вам сначала прочитать этот пост, полностью до конца, даже если он немного длинный. 😊

Если вы предпочитаете смотреть выступление, чтобы узнать ключевые концепции, Жан-Мишель и я разговаривали в DEFCON в 2367464 на предмет. Вы можете найти слайды DEF CON здесь и видеозапись здесь:

Наконец, если вы хотите сразу перейти к используемому коду в этом руководстве, а затем перейдите в раздел SCAAML на GitHub .

Чтобы начать наше путешествие, этот пост предоставит вам необходимую информацию, поочередно охватывая следующие темы:

A Атака по побочному каналу – это атака, специфичная для реализации, которая использует тот факт, что использование разных входных данных приводит к тому, что реализация алгоритма ведет себя по-разному, чтобы получить знания о секретном значении, таком как криптографический ключ, использованном во время вычисления с использованием косвенного измерения, такого как время, затраченное алгоритмом на выполнение вычисления.

Один из самых печально известных случаев из