Научная статья на тему 'АТАКА МЕТОДОМ АНАЛИЗА СБОЕВ НА АЛГОРИТМЫ ВЫРАБОТКИ ИМИТОВСТАВОК HMAC И NMAC'

АТАКА МЕТОДОМ АНАЛИЗА СБОЕВ НА АЛГОРИТМЫ ВЫРАБОТКИ ИМИТОВСТАВОК HMAC И NMAC Текст научной статьи по специальности «Математика»

CC BY
176
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КРИПТОГРАФИЯ / АТАКИ ПО ПОБОЧНЫМ КАНАЛАМ / СМАРТ-КАРТЫ / АНАЛИЗ СБОЕВ

Аннотация научной статьи по математике, автор научной работы — Чиликов А.А.

Одной из важных проблем, возникающих при проектировании и практической реализации криптосистем, является противодействие атакам по побочным каналам. Нередко алгоритмы, стойкость которых с чисто математической точки зрения не вызывает больших сомнений, оказываются уязвимыми к таким атакам при их реализации на конкретном физическом устройстве.Атака методом анализа сбоев является одним из вариантов атаки на криптосистему по побочным каналам. Суть ее состоит в активном воздействии атакующим на физическое устройство, осуществляющее процесс вычислений (например, смарт-карту). Получаемые в результате воздействия искажения затем анализируются с целью восстановить секретную информацию, хранимую внутри устройства. Подобные атаки зачастую оказываются значительно эффективнее пассивных атак по побочным каналам.Атаки методом анализа сбоев были предложены в более 20 лет назад. С тех пор были успешно построены атаки на реализации целого ряда симметричных и асимметричных криптоалгоритмов. Также был предложен ряд различных методов осуществления активного воздействия на процесс вычислений, с использованием конкретных физических эффектов и особенностей вычислительной среды. Также активно развиваются и подходы к противодействию такого рода атакам. Для этого используются как физические, так и чисто математические методы. Однако следует отметить, что криптографические хэш-функции, и более сложные криптосхемы, содержащие их в качестве компонент (например, некоторые имитовставки и цифровые подписи), в рамках этих работ представлены незначительно.Важно отметить, что для практического применения конкретной атаки необходимо сочетание следующих факторов: наличия возможности конкретного физического воздействия на вычислительный процесс, адекватной математической модели данного физического воздействия и чисто математического компонента атаки --конкретного алгоритма внесения искажений и последующего анализа результатов. При этом решение каждой из этих задач по отдельности представляет самостоятельную теоретическую ценность.Результаты настоящей работы не затрагивают физическую составляющую атаки, ограничиваясь лишь математикой. Иными словами, предложены конкретные алгоритмы внесения искажений и последующего анализа результатов. При этом конкретная модель сбоев считается известной и заданной. Рассмотрено несколько таких моделей, которые базируются на аналогах, ранее предложенных для других алгоритмов.В качестве объекта исследований выбраны два стандарта формирования имитовставок: HMAC и NMAC. Указанные стандарты могут базироваться на любой криптографической хэш-функции, обеспечивающей нужный уровень стойкости. В данной работе исследованы четыре примера широкораспространенных хэшей: MD5, MD4, SHA-1, SHA-0.Основными результатами данной работы являются следующие:- построены конкретные алгоритмы внесения искажений в вычислительный процесс, и их дальнейшего анализа, позволяющие извлечь секретную информацию (секретные ключи);- найдены и обоснованы оценки сложности таких атак (в терминах числа вносимых сбоев и трудоемкости последуюшего анализа) для различных сочетаний параметров(алгоритмов и моделей сбоев);- показано, что атаки могут быть проведены за разумное время.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FAULT ATTACK ON MESSAGE AUTHENTICATION CODES HMAC AND NMAC

One of the important problems arising in designing and practical implementation of cryptosystems is provide countermeasures against side-channel attacks. When implemented on a specific physical device, the algorithms, strength of which from the purely mathematical point of view is without great doubt, often employ weaknesses to such attacks.A fault analysis attack is one of the options of the side-channel attack on a cryptosystem. Its essence is that the attacker has an active influence on a physical device that provides computation (for example, a smart card). Faults caused by influence are then analysed in order to restore security information that is stored inside the device. These attacks are often significantly more efficient than passive side-channel attacks.The fault analysis attacks were proposed over 20 years ago. Since then, attacks have been successfully built owing to implementation of a number of symmetric and asymmetric crypto-algorithms. Also, a number of different methods for active influence on computation have been proposed, using specific physical effects and characteristics of the computing environment. Approaches to counteracting such types of attacks are also actively developing. For this, both physical and purely mathematical methods are used. However, it should be noted that cryptographic hash functions, and more complex crypto-schemes containing them as components (for example, some message authentication codes and digital signatures), are slightly presented in these papers.It is important to note that practical implementation of a specific attack requires that a combination of the following factors is available: a possibility of a specific physical impact on computation, an adequate mathematical model of such physical impact and a purely mathematical component of the attack that is a specific algorithms for introducing faults and further analysis of the results. At the same time, the solution of each of these problems separately is of independent theoretical value.The paper results do not involve the physical component of attack, aiming only at mathematics. In other words, a proposal is to present the specific algorithms for introducing faults and further analysis of the results. In this case, a specific fault model is considered known and specified. Several such models have been considered, based on the similar ones previously proposed for other algorithms.As an object of study, two standards to form message authentication codes have been selected: HMAC and NMAC. These standards can be based on any cryptographic hash function that provides the required level of security. The paper examines four examples of widely used hashes: MD5, MD4, SHA-1, SHA-0.The main results of the paper are as follows:- built specific algorithms for introducing faults in computation and their further analysis, allowing to discover secret information (secret keys);- finding and validation of estimates of such attacks (in terms of the number of introduced faults and the work factor of further analysis) for various combinations of parameters (algorithms and fault models); - shown that attacks timing can be reasonable.

Текст научной работы на тему «АТАКА МЕТОДОМ АНАЛИЗА СБОЕВ НА АЛГОРИТМЫ ВЫРАБОТКИ ИМИТОВСТАВОК HMAC И NMAC»

Математика и математическое моделирование.

Математика U Математическое

моделирование

2020. №4. С. 65-92.

DOI: 10.24108/mathm.0420.0000235

Сетевое научное издание http://mathmelpub.ru ISSN 2412-5911

© Чиликов А. А., 2020.

УДК 004.056

Атака методом анализа сбоев на алгоритмы выработки имитовставок НМАС и КМАС

Чиликов А. А.1'2'*

1МГТУ им. Н.Э. Баумана, Москва, Россия 2МФТИ, Догопрудный, Московская область, Россия

В настоящей работе представлена атака методом анализа сбоев (fault attack) на реализации криптографических алгоритмов HMAC и NMAC. Показано, что варианты алгоритмов, построенные на базе распространённых хэш-функций (SHA-1, SHA-0, MD5, MD4) уязвимы к данной атаке. Приведены оценки сложности, подтверждающие возможность проведения указанных атак за реальное время.

Ключевые слова: криптография; атаки по побочным каналам; смарт-карты; анализ сбоев Представлена в редакцию: 23.09.2020.

Метод анализа сбоев. Под атакой методом анализа сбоев (fault attack) традиционно понимается активное воздействие атакующим на физическое устройство, реализующее тот или иной криптоалгоритм. При этом определённым образом меняется ход исполнения алгоритма, в результате чего выходные данные становятся некорректными. Анализируя полученные выходные данные, атакующий получает возможность раскрыть секретную информацию, хранимую внутри устройства.

Атаки методом анализа сбоев были впервые предложены в работе [1], применительно к алгоритму шифрования DES. В последующих работах обсуждался целый ряд различных моделей fault-атак как на симметричные — DES,IDEAит.д. ([2,3,4,5,6,7,8,9,10,11,12,13, 14, 15, 16, 17, 18]), так и на асимметричные — RSA, ECSM, и т.д. ([19,20,21,22,23,24,25]) криптографические алгоритмы. Особенно популярной целью исследований стал новый американский стандарт шифрования AES ([26,27,28,29,30,31,32,33,34]), что обусловлено его широкой распространенностью.

Также были приведены примеры конкретных методов физического воздействия на устройства, позволяющих реализовать некоторые из этих моделей (см, например [35]).

Введение

Здесь мы не будем подробно останавливаться на физических аспектах атаки, а приведём лишь сокращённую классификацию математических моделей, следуя работе [21].

Итак, атаки могут быть разделены:

• по степени контроля местоположения — на три класса: без контроля (в случае, когда местоположение повреждённых переменных неизвестно), со слабым контролем (когда известна повреждённая переменная) и с полным контролем (когда повреждаются заранее известные биты заданной переменной);

• по степени контроля времени — также на три класса: без контроля (в случае, когда время воздействия неизвестно), со слабым контролем (когда время воздействия известно с точностью до небольшого блока операций) и с полным контролем (когда время воздействия соответствует заранее заданной операции)

• по количеству повреждённых битов — один повреждённый бит, небольшое число повреждённых битов (например, один байт), произвольное число повреждённых битов заданной переменной.

В данной работе будут рассмотрены атаки с точным контролем времени и слабым контролем местоположения. Различные варианты атаки будут иметь различные требования по количеству повреждённых битов.

Алгоритмы HMAC и NMAC. Алгоритм HMAC, описанный в [36], является широкораспространённым стандартом для выработки имитовставки (message authentication code, MAC). целостности сообщения (например, при его передаче по каналам связи). Он основан на использовании криптографических хэш-функций, а также секретного ключа, изветного отравителю и адресату, но неизвестного противнику.

Сам алгоритм определяется следующим образом:

где opad и ipad — предопределённые константы, К — секретный ключ, а М — исходное сообщение. || обозначает конкатенацию сообщений, а ф — побитовое сложение аргументов. В качестве к может использоваться любая криптографическая хэш-функция (исходный стандарт рекомендует МБ5, 8ИА-1 и ЫРЕМВ-128/160). В настоящей работе в качестве базовых хэш-функций будут рассмотрены БИА-1, МБ5, БИА-0 и МБ4.

Алгоритм ИМАС является частным случаем алгоритма КМАС — менее распространённого, но в общем случае более стойкого. Отличие алгоритма КМАС состоит в том, что используются два независимых ключа К1 и К2, т.е.

Далее в рамках данной работы мы будем обозначать через I длину полученной имитовставки (равную длине выхода используемой хэш-функции), а через Ь — длину блока хэш-функции.

HMACk(M) = h((K 0 opad) || h(K 0 ipad || M))

(1)

NMACk1;k2(M) = h((K2) || h(Ki || M))

(2)

Предыдущие работы. Алгоритмы вычисления имитовставок довольно часто реализуются аппаратно на различных устройствах (например, смарт-картах). Это делает их подходящим объектом для атак по побочным каналам, к числу которых относятся и fault-атаки. Отметим, например, работу [37], в которой рассматривалась атака на HMAC при помощи техники electomagnetic template analysis (ETA).

Однако, насколько нам известно, fault-атаки на HMAC (и вообще на имитовставки) ранее не рассматривались. Некоторые идеи из данной работы ранее представлялись автором на научных и научно-практических конференциях ([38, 39]).

1. Модель сбоев

Рассмотрим типичную реализацию алгоритма HMAC:

Constants: K - секретный ключ

Input: M - сообщение Output: H = HMAC( K, M )

K1 = K XOR ipad // produce inner key K2 = K XOR opad // produce outer key

H1 = h( K1 + M ) // here "+" means concatenation H2 = h( K2 + H1 ) // here "+" means concatenation

return H2

Зафиксируем также реализацию хэш-функции h:

Constants: IV - начальные значение регистров

Input: M - сообщение Output: h( M )

l = bitLength( M )

// append padding to the message

nBlocks = ( l + 65 ) / blockSize

M.appendBit( 1 ) // append stop bit

for( i = 0; i « ( nBlocks * blockSize - 64 ); i++ )

M.appendBit( 0 ) // append zero bits

M.appendQword( l ) // append 64-bit message size

// initialize accumulator

for( i = 0; i « nRegisters; i++ )

Acc[ i ] = IV[ i ]

// update accumulator

for( t = 0; t « nBlocks; t++ )

for( i = 0; i « nRegisters; i++ )

Regs[ i ] = Acc[ i ] // copy registers

Temp = U( Acc, getBlock( M, t ) )

for( i = 0; i « nRegisters; i++ )

Acc[ i ] += Regs[ i ] // add 32-bit registers

// return accumulator return Acc

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

Предположим, рассмотренный алгоритм вычисления ИМАС реализован аппаратно в некотором устройстве. Секретный ключ при этом содержится в защищённой памяти. Предположим, что атакующий имеет возможность модифицировать содержимое регистров, хранящих промежуточные переменные (например, внутреннее состояние аккумулятора в функции хэширования). Будем также считать, что время воздействия и изменяемая переменная могут быть выбраны точно.

Далее мы рассмотрим две модели воздействия:

• «сбой в одном бите» — когда атакующий может менять состояние одного (неизвестно, какого именно) бита заданного регистра в заданный момент времени

• «сбой в одном байте» — когда атакующий может менять состояние одного (неизвестно, какого именно) байта заданного регистра в заданный момент времени

2. Схема атаки

Здесь мы рассмотрим общую схему атаки, которая будет применима для обоих вариантов сбоев — однобитового и однобайтового. Для начала вернёмся к описанию работы алгоритма и введём несколько полезных обозначений.

При вычислении ИМАС функция к вызывается дважды. Рассмотрим второй вызов (рис. 1). На вход ему приходит конкатенация ключа К2 и Н1 — выхода первого вызова. Несложно заметить, что общая длина сообщения составляет Ь + /. Таким образом, хэшируются ровно два блока, и ровно дважды вызывается функция и. На вход первому вызову и приходит начальное значение /V и К2. Выход этого вызова обозначим через Асс2. Обозначим также через /V промежуточное состояние аккумулятора после обработки первого блока. На вход второму вызову и приходит это значение 1V и Н1. Его выход обозначим через Асс'2.

Что касается первого вызова, то здесь может быть обработано любое количество блоков, в зависимости от длины сообщения. Однако для предлагаемой атаки может быть использовано одно единственное исходное сообщение, причём абсолютно произвольное. Поэтому для удобства будем считать, что сообщение М зафиксировано и его длина мала (например, 1 байт). В этом случае в первом вызове к также обрабатываются ровно два блока (рис. 2). На вход первому вызову и приходит /V и К1. Выход и обозначим через Асс1. Промежуточное состояние аккумулятора после обработки первого блока обозначим через /V/. На вход второму вызову и приходит /V/ и М. Его выход обозначим через Асс1

Атака делится на 4 фазы:

1) восстановление Асс'2 и /V;

2) восстановление Н1;

3) восстановление Асс1 и /V/;

4) восстановление ключа.

Рис. 1. Поток данных во внешнем вызове Ь

Рис. 2. Поток данных во внутреннем вызове Ь

Далее рассмотрим их более подробно.

Замечание 1. Здесь и далее при оценках сложности атаки мы будем рассматривать лишь «удачные» сбои, т.е. только те, которые реально привели к изменению промежуточного состояния регистра.

3. Простой вариант — сбой в одном бите

Начнём с рассмотрения простейшего случая, когда атакующий имеет возможность внести ошибку ровно в один бит выбранной переменной (неизвестно, в какой именно). Это требование не очень практично, однако оно позволяет проиллюстрировать суть атаки.

Первая фаза — восстановление Лсс'2 и /V'. На выходе второго вызова аккумулятор содержит некоторый набор значений Асс'2[г]. Затем эти значения складываются как 32-битные числа со значениями 1У2, [г] и формируется итоговое значение хэша. Оно же является итоговым значением НМАС, и может быть получено атакующим на выходе устройства.

Целью первой фазы атаки является восстановление значений Асс'2[г] после последнего вызова и. Для этого атакующий вносит однобитовое искажение в регистр, содержащий Асс[г], непосредственно перед последним сложением. Несложно заметить, что ошибка в ]-м бите приведёт к изменению Асс'2[г] на ±2-?, и на ту же самую величину изменится выходное значение. Следовательно, зная истинное выходное значение И и искажённое значение И'

(для одного и того же исходного сообщения), атакующий может легко установить, в каком из регистров произошёл сбой, в каком именно бите, и каково было истинное значение этого бита (при значении 1 разность Н'[г] — H[г] равна —2j, а для 0: +2j).

Замечание 2 (проблема старшего бита). Важно отметить, что знак разности однозначно определяет исходное значение бита Acc'2[i] во всех случаях, кроме случая j = 31 (т.е., за исключением старшего бита). Действительно 231 = —231 mod 232. Таким образом, указанный метод анализа не может определить старший бит ни одного из регистров аккумулятора. На выходе первой фазы атаки реально получается 21/32 возможных пар состояний аккумулятора (Acc'2,1V2'), отличающихся друг от друга инверсией старших битов регистров. Это приводит к некоторому росту сложности анализа на последующих этапах. Способы обхода этой проблемы будут рассмотрены в соответствующих пунктах.

Оценим количество сбоев, необходимых на данной фазе атаки. Каждый из удачных (т.е. приводящих к изменению бита) сбоев даёт атакующему достоверную информацию об одном из битов целевого регистра. Для раскрытия одного регистра необходимо получить 31 сбоя в различных битах, а для раскрытия всего состояния аккумулятора (за исключением старших битов) — 124 или 155 сбоев в различных битах (в зависимости от конкретного алгоритма хэширования). Разумеется, есть вероятность, что различные сбои будут воздействовать на повторяющиеся биты (и, следовательно, не дадут никакой новой информации для анализа). Предположим, что при сбое в заданном регистре любой из битов изменяется с равной вероятностью, и что различные сбои независимы между собой. Тогда вероятность того, что конкретный бит не изменится ни разу за N (удачных) испытаний, равна (1 — 1/32)N. Вероятность того, что хотя бы один из битов не будет затронут в ходе N испытаний, не превосходит 31 • (1 — 1/32)N « 31e-N/32. Таким образом, для получения фиксированной вероятности успеха е достаточно провести порядка 32ln(31/e) удачных сбоев в заданном регистре. Среднее же количество необходимых сбоев будет порядка 32 ln 31 ~ 110.

Заметим, что на самом деле в этом рассуждении мы пользовались лишь следующими условиями:

• битовый сбой производится непосредственно перед операцией сложения изменяемого регистра с фиксированным (возможно, неизвестным) значением;

• вероятность сбоя в любом бите одинакова;

• значение регистра после исполнения операции становится известным атакующему.

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

Зафикируем полученный результат в виде леммы.

Лемма 1. Пусть атакующий имеет возможность произвести битовый сбой в заданном к-разрядном регистре перед исполнением конкретной операции. Пусть при этом любой из битов (но только один) может быть инвертирован с одинаковой вероятностью. Пусть также реализуемый алгоритм содержит операцию, при которой регистр складывается по модулю 2к с некоторым фиксированным значением (возможно, неизвестным атакующему). Пусть также результат указанной операции может быть восстановлен атакующим на основе выходного значения алгоритма и иной известной ему достоверной информации. Тогда атакующий может восстановить все биты указаного регистра, за исключением старшего, внося сбои непосредственно перед вышеуказанной операцией. При этом справедливы следующие оценки:

1) матожидание количества удачных сбоев, необходимых для завершения атаки, не превосходит к 1п(к — 1);

2) если число удачных сбоев не менее к 1п((к — 1)/е), то атака приводит к успеху с вероятностью не менее 1 — е;

3) временная трудоемкость Т атаки (т.е. количество вычислений, производимых при анализе результатов) не превосходит к ■ Т, где Т — трудоемкость «вычислительного» восстановления значения регистра после исполнения операций;

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

Доказательство. Первые два пункта легко вытекают из вышеприведенных рассуждений. Пункт 3 прямо следует из того, что содержательно различных (т.е., приводящих к различным результатам на выходе) сбоев в точности к. Поэтому достаточно обработать лишь такое количество выходов. Сама же обработка состоит как раз в восстановлении значения регистра после операции (имеющего сложность Т) и тривиальной операции проверки знака соответствующей разности. Пункт 4 также очевиден — алгоритм можно завершить, когда будут получены в точности к различных выходных значений (т.е., произойдут все возможные содержательно различные сбои). Впрочем, если уже произошли сбои во всех битах, кроме старшего, то можно завершить процесс уже и в этот момент.

Для восстановления всех //32 регистров необходимо внести сбои в каждый из них. Сложность атаки (число сбоев и количество необходимых вычислений) увеличивается пропорционально. Средняя трудоемкость первой фазы атаки, таким образом, составит / 1п 31 удачных сбоев (примерно 440 для алгоритмов МБ5/МБ4 и « 550 для алгоритмов 8НА-1/БНА-0).

Теперь, зная значения Асс'2 [г] и выходной хэш И, атакующий может легко вычислить значения IV' [г] — промежуточного состояния аккумулятора после первого этапа. Эти значения, в свою очередь, равны сумме Асс2[г] и известных констант IV[г]. Таким образом, атакующему теперь известно также и Асс2.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Знание значений /V^ и Acc'2 позволяет перейти к следующей фазе атаки — восстановлению внутреннего хэша H1.

Вторая фаза — восстановление H1. Для восстановления истинного значения H1 потребуется несколько более детально рассмотреть функцию U . Эта функция различна для различных алгоритмов хэширования. Мы начнём с рассмотрения алгоритма MD5, поскольку в этом случае анализ наиболее прост, а затем рассмотрим особенности, характерные для других алгоритмов.

Для начала заметим, что размер H1 составляет 16 байт. Остальные 48 байт второго блока во внешнем вызове h заранее известны (так как известен общий размер сообщения в битах). Функция U в алгоритме MD5 обрабатывает блок как 16 последовательных 32-битных значений (DWORD). Первые 4 из них соответствуют искомому H1, а остальные 12 — известны заранее.

Рассмотрим теперь отдельный раунд функции U для алгоритма MD5. Все они устроены по единому образцу:

A = A + X[q[r]] +T[r] + F( B, C, D)

A = A <<< s

A = A + B

Здесь (A, B, C, D) — регистры аккумулятора (порядок зависит от номера раунда), X [i] — г-й DWORD входного блока, q, T — предопределённые таблицы, F — одна из четырёх предопределённых функций (в зависимости от раунда). Все сложения производятся по модулю 232, x <<< s обозначает циклический сдвиг влево 32-разрядного x на s бит. Переменная r обозначает номер текущего раунда.

Несложно заметить, что если X[q[r]] известно, то соответствующий раунд легко обратим (т.е., зная финальное состояние A, B, C, D, можно однозначно установить начальное). В противном же случае, можно ожидать, что ошибка, внесённая в регистр A перед исполнением раунда, даст некоторую информацию о начальном содержимом A. Если при этом финальное содержимое известно (или легко вычислимо), то можно получить информацию о недостающем слагаемом X [q[r]]. Эти соображения позволяют эффективно определить первые 4 DWORD входного сообщения по аналогии с предыдущей фазой.

Рассмотрим алгоритм анализа более подробно. Имеет место следующая

Лемма 2. Пусть известны значения /V^ и X[q[t]] для всех t > r. Тогда атакующий может (при обработке второго вызова U во внешнем вызове h) внести серию сбоев в любой из регистров аккумулятора до начала исполнения раунда r и на основе полученного выхода однозначно вычислить значения (Ar+1, Br+1, Cr+1, Dr+1) после исполнения r-го раунда.

Доказательство. Действительно, как было отмечено выше, раунд обратим, если известно значение X [q[t]]. Таким образом, все раунды, начиная с r + 1, обратимы. Следовательно, для вычисления достаточно знать лишь состояние аккумулятора на выходе из последнего раунда (т.е. Acc'2). Оно легко вычисляется по выходному значению и /V2' для

заданного вычисления (с учётом внесённого сбоя). Выходное значение известно атакующему. Значение же /V2 совпадает со значением для истинного вычисления, поскольку сбой вносится позже. А истинное значение уже определено на предыдущей фазе атаки.

Замечание 3. Те же рассуждения справедливы и в случае, когда сбой вообще не вносился. Для вычисления соответствующих промежуточных значений даже нет необходимости производить какие-либо манипуляции с устройством — все операции производятся аналитически.

Для раскрытия искомого значения X [q[r]] можно применить тот же метод, что и в предыдущей фазе атаки. Действительно, атакующий может вычислить истинное значение аккумулятора (Ar+1, Br+1, Cr+1, Dr+1) после исполнения раунда и модифицированное значение A_+1, полученное в результате сбоя (значения остальных регистров совпадают с истинными). Обращая последние два шага раунда (B и s известны), и вычитая известное значение T[r] + F(B, C, D), атакующий узнаёт истинное значение суммы Ar + X[q[r]] и значение изменённой суммы A'r + X [q[r]] (AJ. — значение, полученное в результате сбоя). Их разность равна АГ — Ar = ±2j, где j — индекс бита, изменённого в результате сбоя. Знак разности, как и в предыдущей фазе, однозначно определяет истинное содержимое j-го бита Ar.

Приведенный выше алгоритм внесения сбоев в точности соответствует условиям, сформулированным в лемме 1. Отсюда сразу следуют его корректность и соответствующие оценки сложности. Поэтому количество сбоев, необходимое для раскрытия одного DWORD оценивается также, как и в предыущей фазе.

Раскрыв истинное значение Ar и уже зная Ar + X [q[r]], атакующий легко вычисляет искомое значение X[q[r]] (т.е., в частности, H1).

Замечание 4. Здесь так же, как и в первой фазе, имеет место проблема старшего бита — старший бит в искомом DWORD не может быть определён по знаку разности. Это приводит к некоторому росту числа вариантов (для MD5 4 старших бита в каждом DWORD останутся неопределёнными при помощи указанного сценария анализа). Кроме того, следует помнить, что имеется 16 возможных вариантов /V2', которые должны быть проанализированы отдельно. Всё это увеличивает сложность аналитической части алгоритма (максимум в 16 • 16 = 256 раз). Однако же при этом не требуется увеличение количества сбоев, поскольку информация, полученная в результате конкретного сбоя позволяет раскрыть бит сообщения для каждого из возможных наборов /V2 и ранее определённых X [q[r]].

Теперь осталось лишь определить конкретную последовательность, в которой будут раскрываться значения X[q[r]]. Изначально известны все значения X[г] при 4 > i > 15. Первое из неизвестных значений (X [2]) участвует в 62-м раунде. В качестве изменяемого регистра выступает регистр номер 2. Таким образом, сбой вносится в регистр 2 перед 62-м раундом. После раскрытия X[2] следующей целью будет X[1], задействованный в 55-м раунде (изменяемый регистр номер 1). Далее — X [3] в раунде 53 (регистр 3) и наконец, X[0] в раунде 48 (регистр 0).

Всего атакующему необходимо раскрыть 4 DWORD. Поскольку все оценки аналогичны полученным для предыдущей фазы, общее количество необходимых сбоев будет вновь порядка 440 (для рассмотренного алгоритма MD5).

Решение проблемы старших битов. Вернёмся теперь к рассмотрению проблемы старшего бита. Как несложно заметить, на входе второй фазы на самом деле имелось не одно возможное значение /V2' и Acc'2, а целых 16 взаимосвязанных пар таких значений. Разумеется, каждое из значений Acc'2 приводило при «обратном ходе» к различным промежуточным состояниям аккумулятора. При анализе изменённого состояния, в процессе «обратного хода» необходимо пользоваться некоторым заранее выбранным истинным состоянием Acc'2, и сравнивать полученное значение A'r + T [q[r]] со значением Ar + T[q[r]], построенным для того же Acc'2. При правильном выборе состояния Acc'2 указанные суммы будут различаться в точности на ±2j. Поскольку при обратном ходе используются достаточно сложные функции, вероятность того, что при ложном выборе Acc'2 также будут различаться на ±2j достаточно мала (примерно 2-26 для конкретного выбора Acc'2 и около 2-22 в целом). Таким образом, уже на этом этапе анализа весьма вероятно устранение ошибочных вариантов Acc'2 (и, соответственно, /V2).

Однако даже в худшем из возможных случаев, когда каждый из 16 вариантов остаётся возможным, и при раскрытии очередого X [q[r]] старший бит остаётся неопределённым — число возможных вариантов всё ещё не превосходит 256. В каждом из них однозначно определены /V>, Acc'2 и блок сообщения. При этом при раскрытии блока сообщения значения /V2' не используются вовсе. Соответственно, можно просто проверить выполнение соотношения U(/V2,X) = Acc'2. Поскольку первые раунды U содержат сложные функции, которые никак не использовались при анализе, вероятность выполнения этого соотношения при ошибочном выборе /V2' крайне мала. Такой способ анализа очень прост в реализации, а по вычислительной сложности сравним с хэшированием 256 блоков.

Таким образом, при помощи указанной схемы анализа атакующий может раскрыть и все остававшиеся неопределёнными старшие биты.

После исполнения второй фазы анализа и проверки возможных значений недостающих старших битов, атакующий выявляет всё исходное сообщение, т.е. искомый H1. Также теперь ему известны единственно верные значения /V2' и Acc'2.

Особенности второй фазы для других хэш-функций. Теперь рассмотрим, как данная фаза атаки может быть применена к другим алгоритмам хэширования.

В случае MD4 схема атаки полностью повторяет рассмотренную выше, за исключением номеров раундов. Сбои в этом случае будут вноситься перед 44-м, 40-м, 36-м и 32-м раундами. Раскрываемыми DWORD будут M[3], M[1], M[2] и M[0] соответственно. Оценки сложности в точности повторяют оценки для алгоритма MD5.

Важной особенностью алгоритмов SHA-1 и SHA-0 является то, что на каждом из раундов обрабатывется не DWORD блока, а DWORD из расширенной таблицы. Эта таблица, в

свою очередь, формируется из исходного блока сообщения. Таким образом, в этом случае атакующий не знает заранее ни одного из DWORD, задействованных в последних раундах (поскольку они зависят в том числе и от неизвестных ему DWORD сообщения). Следовательно, он должен применять сбои, начиная с последнего раунда, до тех пор, пока не соберёт достаточно информации для восстановления всех неизвестных DWORD. К счастью для атакующего, зависимость между битами расширенной таблицы и исходным сообщением является линейной, и восстановление сообщения по расширенной таблице не представляет никакой сложности.

Однако оценки сложности атаки зависят от того, сколько именно и каких сбоев необходимо внести атакующему для получения достаточной информации. Поэтому имеет смысл разобрать получаемые зависимости более подробно.

Начнём с алгоритма SHA-0 (поскольку в нём зависимости между битами более имеют более простой вид). Расширенная таблица задаётся следующим правилом:

При 0 <= t <= 15

w[t] = M[t] При 16 <= t <= 79 w[t] = w[t-3] ~ w[t-8] ~ w[t-14] ~ w[t-16]

Все операции выполняются над DWORD. Как несложно заметить, в пределах одного DWORD индексы не перемешиваются. Следовательно, j-й бит любого DWORD в расширенной таблице зависит от одного или нескольких j-х DWORD исходного сообщения. Более того, эта зависимость одинакова для всех битов в пределах одного DWORD (т.е. если j-й бит w[t] зависит от j-х битов M[to], . .., M[tk], то и j'-й бит w[t] зависит от j'-х битов M [to],..., M [tfc ].

Все DWORD, кроме первых 5 известны атакующему. Следовательно, раскрыв значение w[t] он немедленно вычисляет значение M[t0] ф ... M[tk], где (t0,..., tk) — те индексы, от которых явно зависит w [t], и которые при этом не превосходят 4. Осталось лишь определить явно указанные наборы для последних раундов.

w[79] явно зависит от M[1] и M[4], что позволяет атакующему установить значение M[1] ф M[4], внося сбой перед 79-м раундом. w[78] зависит от M[0], M[3] и M[4]. w[77] — от M[1], M [2] и M[3]. w[76] —от M [0], M[1] и M[2]. Все полученные значения линейно независимы. Решая систему полученных соотношений, атакующий может вычислить значения M[1],M[4], а также M[0] ф M[2] и M[0] ф M[3].

Наконец, w[75] зависит от M[0] и M[4]. Зная M[4], атакующий вычисляет M[0], и из ранее полученных соотношений — M[2] и M [3]. Таким образом, раскрыв в точности 5 элементов таблицы, атакующий восстанавливает все недостающие DWORD исходного сообщения.

Сама по себе процедура восстановления значений w[i] при помощи сбоев полностью аналогична ранее построенной для алгоритма MD5. Несложно заметить, что она полностью удовлетворяет условиям леммы 1. В силу этого справедливы ранее полученные оценки

сложности атаки. С учетом того, что теперь нужно восстановить 5 значений вместо 4, среднее количество сбоев возрастает с 440 до 550.

Разумеется, при анализе возникает проблема старших битов. Однако, поскольку биты в пределах DWORD не перемешиваются, это приводит лишь к тому, что старшие биты M [г] остаются нераскрытыми. Для их раскрытия можно применить ту же схему, что и для MD5/MD4 — проверку соотношения U(/Vj, M) = Acc'2, которая не требует внесения дополнительных сбоев. В процессе «обратного хода» необходимо учитывать все возможные варианты (хотя весьма вероятно, что часть ошибочных вариантов будет отброшена, поскольку разность не будет равна ±2j). Максимальное число ветвей алгоритма равно 32, а с учётом неопределённых битов Acc'2 — 32 • 32 = 1024.

Для алгоритма SHA-1 ситуация осложняется тем, что различные биты внутри DWORD дополнительно перемешиваются за счёт операции циклического сдвига. Таким образом, явный вид зависимости между w[t] и M[г] будет более сложным (хотя и линейным). Непосредственное построение указанной таблицы зависимостей показывает, что получаемая система линейных уравнений однозначно разрешима при пяти восстановленных промежуточных значения (как и в случае SHA-0).

Таким образом, для алгоритмов HMAC и NMAC, основанных на хэш-функциях MD5, MD4, SHA-1, SHA-0, во введенных ранее обозначениях, нами доказан следующий результат:

Теорема 1. Пусть атакующий имеет возможность произвести битовый сбой в заданном 32-разрядном регистре перед исполнением конкретной операции. Пусть при этом любой из битов (но только один) может быть инвертирован с одинаковой вероятностью. Тогда атакующий может однозначно восстановить значение H1 при помощи двух фаз. При этом имеют место следующие оценки сложности «в среднем» по числу сбоев: 880 для MD5 и MD4 и 1100 для SHA-1 и SHA-0.

Третья фаза — восстановление Acc. и IV1/. Теперь, зная значение H1, атакующий может приступить к восстановлению значений Acci и /V/. Для этого атакующий вносит сбой в один из регистров Acc[i] при первом вызове h, во время обработки второго блока, непосредственно перед последним сложением с /V.

Изменение одного бита Acc[i] приведёт к изменению выходного значения H1 на ±2j, где j — индекс изменившегося бита, а знак однозначно определяется исходным значением этого бита в регистре Acc[i]. Таким образом, возможные значения измененных решистров принадлежат множеству чисел вида H1 [г] ± 2j, которых имеется всего 63 (так как H1 [г] + 231 = Hl[i] — 231 mod 232). Реально же среди них могут встретиться лишь 32 (те, что отвечают изменению с «правильным» знаком).

В данном случае нет возможности непосредственно определить изменившееся значение при помощи Леммы 1. Это обусловлено тем, что измененный регистр при повторном вызове U участвует в преобразованиях многократно, что приводит к существенному ветвлению алгоритма. Однако, выходное значение имитовставки однозначно определяется по проме-

жуточному состоянию аккумулятора /V2' и обрабатываемому блоку H1. Промежуточное состояние уже определено в первой фазе. Поэтому атакующий может заранее построить все возможные варианты изменённых значений H2. В результате конкретного сбоя будет получено одно из этих значений, и атакующий может легко установить, какому именно из изменённых значений H1 оно соответствует (путём поиска в заранее построенной таблице). Сложность построения такой таблицы пренебрежимо мала (фактически нужно произвести 63 вычисления имитовставки).

Далее он может действовать по уже проверенной схеме — рассмотреть разность истинного и изменённого значений H1 — H1 и на её основе выявить, какой именно бит изменился, и чему он был равен до изменения. Получив сбои во всех возможных битах, атакующий восстанавливает значения Acc'Ji]. Вычитая их из известных H1[i], он получает /V/[i].

Замечание 5. Теоретически возможно, что некоторые значения H2 для различных H окажутся одинаковыми. Однако вероятность этого события крайне мала. По сути, это вероятность возникновения коллизии очень простого вида в соответствующей функции сжатия. В соответствии с известным «парадоксом дней рождения» эта вероятность может быть оценена как 63 • 62 • 2-1 < 2-116. Кроме того, эта проблема может быть легко устранена взятием другого исходного сообщения M. При этом изменится значение H1 = h(K1 || M), множество H1 ± 2j и множество соответствующих им H2, но искомые значения Acc1 и /V/ останутся теми же, поскольку зависят только от K1.

Необходимо отметить, что в этом случае, как и в первой фазе атаки, возникает проблема старшего бита. На выходе данной фазы атакующий получает не единственный вариант значений /V/ и Acc1, а несколько вариантов (21/32), отличающихся инверсией старших битов регистров. Правильный вариант может быть установлен, например, при помощи бесключевой эмуляции, которая рассмотрена в следующем пункте. Отметим, что при этом не требуется внесения дополнительных сбоев в работу устройства.

Как и в первой фазе атаки, атакующему требуется восстановить 4 или 5 регистров (в зависимости от алгоритма хэширования). Для восстановления одного DWORD требуется получить успешные сбои во всех битах. Поэтому справедливы те же самые оценки на количество необходимых успешных сбоев — « 440 для MD5/MD4 и « 550 для SHA-1/SHA-0.

Бесключевая эмуляция. Уже в этот момент, зная значения Acc1 = U(/V,K1) и Acc2 = U(/V, K2), атакующий может решить основную свою задачу — вычислить HMAC для произвольного сообщения. Покажем это.

Имеет место следующая лемма.

Лемма 3. Пусть хэш-функция h определена рекурсивно по следующему правилу:

[ So = /V,

| Si+1 = C(Si, Mi), [ H(M) = Sk.

где C : {0, 1}n x{0, 1}b ^ {0, 1}n — произвольная функция сжатия, f : {0, 1}n ^ {0, 1}1 — произвольная функция усложнения, M = M0 || ... || Mk-1 — хэшируемое сообщение, k — его длина в блоках, /V — фиксированная константа (длины n). Тогда для вычисления h(M) достаточно знать промежуточное состояние /V' = Sm и последующие блоки Mm,.. ., Mk-1.

Доказательство. Легко проверяется прямым подсчетом.

Опираясь на лемму 3, легко показать возможность выработки имитовставки для произвольного сообщения M.

Во-первых, заметим, что все рассматриваемые хэш-функции удовлетворяют условиям Леммы 3. Для этого достаточно взять в качестве функции C(IV, M) композицию U(IV, M) и порегистрового сложения с IV.

Далее рассмотрим внутренний вызов h. Ключ K1 составляет в точности один блок хэшируемого сообщения. Он неизвестен, но известо значение /V/ после его обработки. Все остальные блоки сообщения известны, что позволяет, в соответствии с Леммой 3, вычислить значение внутреннего хэша H1.

Теперь рассмотрим внешний вызов h. Снова имеем неизвестный ключ K2, размер которого равен размеру блока. Промежуточное состояние /V; после его обработки известно, а оставшийся фрагмент сообщения H1 — вычислен. Опять же, в соответствии с Леммой 3, атакующий имеет возможность вычислить хэш H2, который и будет искомой имитовставкой.

Бесключевая эмуляция требует точного знания параметров /V/ и /V2. Однако предыдущая фаза атаки даёт 21/32 возможных вариантов для /V/. Соответственно, применение указанной схемы приведёт к нескольким возможным вариантам имитовставки. Пусть при подаче на вход устройства некоторого сообщения M' (отличного от исходного M) получен некоторый результат. Он обязан совпадать с одним из возможных результатов бесключевой эмуляции для M'. То самое значение /V/, для которого произошло это совпадение, и будет истинным. Как правило, оно единственно. Таким образом, бесключевая эмуляция позволяет решить проблему старших битов для третьей фазы атаки. Заметим, что при этом не требуется внесения каких-либо дополнительных сбоев в работу устройства, а только обращение к нему в обычном режиме.

Таким образом, для алгоритмов HMAC и NMAC, основанных на хэш-функциях MD5, MD4, SHA-1, SHA-0, во введенных ранее обозначениях, нами доказан следующий результат.

Теорема 2. Пусть атакующий имеет возможность произвести битовый сбой в заданном 32-разрядном регистре перед исполнением конкретной операции. Пусть при этом любой из битов (но только один) может быть инвертирован с одинаковой вероятностью. Тогда атакующий может всю получить информацию, необходимую для бесключевой эмуляции (т.е. вычисления правильной имитовставки для любого сообщения) при помощи трех фаз. При этом имеют место следующие оценки сложности «в среднем» по числу сбоев: 1320 для MD5 и MD4 и 1650 для SHA-1 и SHA-0.

Четвёртая фаза — восстановление ключа. Итак, основная задача атакующего — построение имитовставки для произвольного сообщения — уже решена. Однако нет причин не попытаться восстановить непосредственно ключевую информацию.

Для восстановления ключа K2 атакующий может применить сбой при обработке первого блока во время вычисления внешнего хэша (второй вызов h). Поскольку уже известно истинное значение /V2', а исходное значение /V является известной константой, то атакующий может легко вычислить Acc2 (состояние аккумулятора после обработки всех раундов, но до последнего сложения). Далее схема атаки аналогична второй фазе, за исключением того, что теперь ни один из битов блока сообщения заранее неизвестен. Однако же можно предвычи-слить все возможные значения аккумулятора после сбоя в заданном раунде. Для последнего раунда их будет в точности 63 (поскольку состояние регистра до вычисления изменится не более чем 63 способами), и лишь 32 из них будут возникать при конкретном вычислении. На основе этих изменённых значений можно методом бесключевой эмуляции вычислить все возможные значения имитовставки. Значение, выданное устройством после сбоя, должно совпадать с одним из этих возможных вариантов. Путём поиска значения в таблице можно установить, какое именно изменение в регистре произошло и, как и раньше, установить значение сбойного бита. Единственным исключением будет старший бит, который не может быть установлен таким образом. Оба его значения должны рассматриваться как возможные, что приведёт к соответствующему ветвлению алгоритма.

Для предпоследнего раунда возможных значений будет уже 126 (с учётом неопределённости старшего бита на предыдущем шаге). Однако те из них, которые отвечают ошибочному выбору старшего бита, с большой вероятностью могут быть отброшены при анализе, поскольку соответствующая им разность истинного и изменённого состояния не будет равна ±2j (и следовательно, выданное устройством значение всегда будет лежать в «правильной» половине таблицы). Таким образом, на данном шаге можно восстановить старший бит предыдущего DWORD, и 31 бит текущего DWORD (за исключением старшего бита).

Аналогичный сценарий может быть повторён и для всех оставшихся DWORD. Для полного вычисления блока достаточно (в случае MD5/MD4) рассмотреть 16 последних раундов. На выходе будут восстановлены 511 битов блока. Оставшийся неопределённым бит (старший бит DWORD, задействованного в последнем из рассмотренных раундов) может быть найден простым подбором.

Для алгоритмов SHA-1 и SHA-0 можно применить тот же сценарий анализа. Единственное различие заключается в том, что вместо непосредственно ключа будут раскрыты последние 16 DWORD расширенной таблицы. Однако, как несложно заметить, алгоритм построения расширенной таблицы позволяет однозначно вычислить по 16 последовательным DWORD не только следующий DWORD, но и предыдущий. Таким образом, зная последние 16 DWORD, атакующий может вычислить первые, которые и являются искомым ключом. Заметим, что при этом не требуется обращений к устройству.

Теперь оценим количество необходимых сбоев. Для полного раскрытия ключа необходимо последовательно раскрыть 16 DWORD. Для раскрытия одного DWORD требуется получить успешные сбои во всех битах. Таким образом, средняя оценка количества сбоев для раскрытия одного DWORD та же, что и для первой фазы — порядка 110. Это приводит к общей оценке порядка 1760 успешных сбоев.

В случае алгоритма HMAC по восстановленному K2 однозначно устанавливается исходный ключ K = K2 ф opad и внутренний ключ Kl = K ф ipad. В случае же NMAC Kl ключ необходимо вычислять отдельно.

Для вычисления Kl можно использовать аналогичную процедуру. Сбои при этом будут вноситься во время обработки первого блока при вычислении внутреннего хэша (первый вызов h). Как и раньше, атакующий начинает с последнего раунда. Сбой в одном бите приведёт к появлению одного из 63 возможных вариантов изменённого /V/. Атакующий вычисляет таблицу 63 возможных значений имитовставки, соответствующих этим сбоям, и ищет в ней значение, выданное устройством. На основе этого, он определяет, какой именно сбой произошёл, и раскрывает значение одного из битов обрабатываемого DWORD. Раскрываются все биты, кроме старшего. Затем аналогичная процедура применяется к предпоследнему раунду, что позволяет раскрыть недостающий старший бит предыдущего DWORD, и 31 бит текущего. Далее процедура повторяется для предшествующих раундов. После обработки 16 раундов раскрываются 511 битов блока сообщения (т.е. Kl). Последний бит ищется подбором. Все оценки для количества необходимых сбоев совпадают с оценками для K2.

После завершения анализа атакующий восстанавливает секретный ключ целиком.

Таким образом, для алгоритмов HMAC и NMAC, основанных на хэш-функциях MD5, MD4, SHA-1, SHA-0, во введенных ранее обозначениях, нами получен следующий результат.

Теорема 3. Пусть атакующий имеет возможность произвести битовый сбой в заданном 32-разрядном регистре перед исполнением конкретной операции. Пусть при этом любой из битов (но только один) может быть инвертирован с одинаковой вероятностью.

Тогда атакующий может:

• однозначно восстановить секретный ключ K (для HMAC) при помощи четырех фаз. При этом имеют место следующие оценки сложности «в среднем» по числу сбоев: 3080 для MD5 и MD4 и 3410 для SHA-1 и SHA-0;

• однозначно восстановить пару секретных ключей Kl, K2 (для NMAC) при помощи четырех фаз. При этом имеют место следующие оценки сложности «в среднем» по числу сбоев: 4840 для MD5 и MD4 и 5170 для SHA-1 и SHA-0.

4. Более практичная атака — сбой в одном байте

Очевидно, что предложенная модель однобитовых сбоев малопригодна на практике. Однако предложенная схема атаки может быть в ряде случаев распространена и на более практичные модели. Например, если противник имеет возможность изменять целиком со-

держимое некоторого байта в одном из регистров аккумулятора. Такая модель сбоев вполне допустима в случае, когда алгоритм реализован в устройстве с 8-разрядной архитектурой.

В данном случае мы полагаем, что атакующий имеет возможность внести сбой в некоторый (неизвестный) байт заданного регистра. Общая схема атаки при этом остаётся прежней.

Основными отличиями такой усложнённой атаки от рассмотренного выше варианта будет некоторое усложнение анализа разностей. Вместо очевидной формулы X' — X = ±2? будет иметь место следующая: X' — X = А ■ 28?, где 0 < ] < 3 и А е [—X?-, 255 — X?], X? — истинное значение ]-го разряда переменной. Как несложно заметить, в этом случае номер изменённого разряда очевиден, а истинное его значение может быть определено анализом границ разностей X' — X для наиболее удалённых значений. При этом несколько растёт сложность атаки по числу сбоев (приблизительно в 256/8 = 32 раза).

Что касается вычислительной сложности анализа, то здесь главной проблемой является проблема старшего байта — аналог рассмотренной выше проблемы старшего бита. Причина её всё та же — старший байт при анализе разностей не может быть определён. Однако масштаб проблемы значительно больше — неопределённость результата после первого этапа составляет уже 232 для МБ5/МБ4 и 240 для 8НА-1/БНА-0. Однако множества возможных вариантов могут быть легко описаны аналитически. Более того, некоторые более тонкие техники дальнейшего их анализа позволяют обойтись без столь масштабного перебора вариантов, сократив его до вполне практических значений (ценой ешё небольшого увеличения числа сбоев).

Детальное изучение атак на основе однобайтовых сбоев, включая понижение их вычислительной сложности, является предметом дальнейших исследований. Также интересным представляется исследование аналогичных атак в случае более сложных моделей сбоев. Некоторые результаты в этой области планируются к публикации в ближайшее время.

Заключение

Предложена новая Гаик-атака на реализации алгоритмов НМАС и КМАС. хэширования (БНА-1, БНА-0, МБ5, МБ4) является уязвимым к данной атаке.

Эффективность указанной атаки подтверждена компьютерным моделированием. Атака позволяет находить секретный ключ за реальное время на обычном персональном компьютере.

Варианты НМАС и КМАС, построенные на основе иных хэш-функций, также могут оказаться уязвимыми к атакам подобного типа при выполнении следующих условий:

1) хэш-функция использует схему Меркла — Дамгарда (или близкую к ней);

2) раундовые функции внутри функции сжатия обратимы;

3) финальными операциями в функции сжатия и раундовых функциях являются обратимые функции, действующие на регистры, и нелинейные по модулю 2.

Этим условиям удовлетворяет большое число популярных хэш-функций. Таким образом, интересным для дальнейших исследований является изучение иных широкораспространенных хэш-функций на предмет уязвимости к атакам подобного типа. Также может представлять интерес распространение указанных атак на более сложные модели сбоев.

Работа проведена при финансовой поддержке Российского Научного Фонда, грант 17-11-01377.

Список литературы

1. Boneh D., DeMillo R.A., Lipton R.J. On the importance of checking cryptographic protocols for faults // Advances in cryptology - EUROCRYPT'97: 16th annual intern. conf. on theory and application of cryptographic techniques (Konstanz, Germany, May 11-15, 1997): Proc. B.; Hdbl.: Springer, 1997. Pp. 37-51. DOI: 10.1007/3-540-69053-0,4

2. Eli Biham, Adi Shamir. Differential fault analysis of secret key cryptosystems // Advances in cryptology - CRYPTO 1997: 17th annual intern. cryptology conf. (Santa Barbara, CA, USA, August 17-21, 1997): Proc. B.; Hdbl.: Springer, 1997. Pp. 513-525. DOI: 10.1007/BFb0052259

3. Bloomer J., Seifert J.-P. Fault based cryptanalysis of the advanced encryption standard (AES) //Financial cryptography: 7th intern. conf. on financial cryptography: FC 2003 (Guadeloupe, French West Indies, January 27-30, 2003): Revised papers. B.; Hdbl.: Springer, 2003. Pp. 162181. DOI: 10.1007/978-3-540-45126-6_12

4. Hoch J.J., Shamir A. Fault analysis of stream ciphers // Cryptographic hardware and embedded systems: 6th intern. workshop on cryptographic hardware and embedded systems: CHES 2004 (Camb., MA, USA, August 11-13, 2004): Proc. B.; Hdbl.: Springer, 2004. Pp. 240-253. DOI: 10.1007/978-3-540-28632-5_18

5. Armknecht F., Meier W. Fault attacks on combiners with memory // Selected areas in cryptography: 12th intern. workshop on selected areas in cryptography: SAC 2005 (Kingston, ON, Canada, August 11-12, 2005): Revised selected papers. B.; Hdbl.: Springer, 2006. Pp. 36-50. DOI: 10.1007/11693383_3

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6. Biham E., Granboulan L., Phong Q. Nguyen. Impossible fault analysis of RC4 and differential fault analysis of RC4 // Fast software encryption: 12th intern. workshop on fast software encryption: FSE 2005 (Paris, France, February 21-23, 2005): Revised selected papers. B.; Hdbl.: Springer, 2005. Pp. 359-367. DOI: 10.1007/11502760.24

7. Breveglieri L., Koren I., Maistri P. A fault attack against the FOX cipher family // Fault diagnosis and tolerance in cryptography: 3rd intern. workshop on fault diagnosis and tolerance in cryptography: FDTC 2006 (Yokogama, Japan, October 10,2006): Proc. B.; Hdbl.: Springer, 2006. Pp. 98-105. DOI: 10.1007/11889700.10

8. Clavier C., Gierlichs B., Verbauwhede I. Fault analysis study of IDEA // Topics in cryptology - CT-RSA 2008: The cryptographer's track at the RSA conf. 2008 (San Francisco, CA, USA, April 8-11, 2008): Proc. B.; Hdbl.: Springer, 2008. Pp. 274-287. DOI: 10.1007/978-3-540-79263-5_17

9. Hojsik M., Rudolf B. Differential fault analysis of trivium // Fast software encryption: 15th intern. workshop on fast software encryption: FSE 2008 (Lausanne, Switzerland, February 10-13, 2008): Revised selected papers. B.; Hdbl.: Springer, 2008. Pp. 158-172. DOI: 10.1007/978-3-540-71039-4_10

10. Hojsik M., Rudolf B. Floating fault analysis of trivium //Progress in cryptology - INDOCRYPT 2008: 9th intern. conf. on cryptology in India (Kharagpur, India, December 14-17, 2008): Proc.

B.; Hdbl.: Springer, 2008. Pp. 239-250. DOI: 10.1007/978-3-540-89754-5.19

11. Berzati A., Canovas-Dumas C., Goubin L. Fault analysis of rabbit: toward a secret key leakage // Progress in cryptology - INDOCRYPT 2009: 10th intern. conf. on cryptology in India (New Delhi, India, December 13-16, 2009): Proc. B.; Hdbl.: Springer, 2009. Pp. 72-87. DOI: 10.1007/978-3-642-10628-6_5

12. Kircanski A., Youssef A.M. Differential fault analysis of rabbit // Selected areas in cryptography: 16th annual intern. workshop on selected areas in cryptography: SAC 2009 (Calgary, Alberta, Canada, August 13-14, 2009): Revised selected papers. B.; Hdbl.: Springer, 2009. Pp. 197-214. DOI: 10.1007/978-3-642-05445-7.13

13. Kircanski A., Youssef A.M. Differential fault analysis of HC-128 // Progress in cryptology -AFRICACRYPT 2010: 3rd intern. conf. on cryptology in Africa (Stellenbosch, South Africa, May 3-6, 2010): Proc. B.; Hdbl.: Springer, 2010. Pp. 261-278. DOI: 10.1007/978-3-642-12678-9_16

14. Kenneth Koon-Ho Wong, Bartlett H., Simpson L., Dawson E. Differential random fault attacks on certain CAESAR stream ciphers // Information security and cryptology - ICISC 2019: 22nd intern. conf. on information security and cryptology (Seoul, South Korea, December 4-6, 2019): Revised selected papers. Cham: Springer, 2020. Pp. 297-315. DOI: 10.1007/978-3-030-40921-0_18

15. Климцов B.E., Чиликов A.A. Локализация сбоев при дифференциальном криптоанализе по ошибкам вычислений поточных шифров, основанных на нелинейных регистрах сдвига // Безопасные информационные технологии: 10-я междунар. науч.-техн. конф. (Москва, Россия, 3-4 декабря 2019 г.): Сб. тр. М.: Изд-во МГТУ им. Н.Э. Баумана, 2019.

C. 172-175.

16. Ruilin Li, Jianxiong You, Bing Sun, Chao Li. Fault analysis study of the block cipher FOX64 // Multimedia Tools and Applications. 2013. Vol.63, no. 3. Pp. 691-708. DOI: 10.1007/s11042-011-0895-x

17. Kenneth Koon-Ho Wong, Bartlett H., Simpson L., Dawson E. Differential random fault attacks on certain CAESAR stream ciphers (Supplementary material) // Cryptology ePrint Archive. 2020. Report 2020/022. Режим доступа: http://eprint.iacr.org/2020/022.pdf (дата обращения 16.09.2020).

18. Saha S., Bag A., Roy D.B., Patranabis S., Mukhopadhyay D. Fault template attacks on block ciphers exploiting fault propagation // Advances in cryptology - EUROCRYPT 2020: 39th annual intern. conf. on the theory and applications of cryptographic techniques (Zagreb, Croatia, May 10-14, 2020): Proc. Pt. 1. Cham: Springer, 2020. Pp. 612-643. DOI: 10.1007/978-3-030-45721-1_22

19. Biehl I., Meyer B., Muller V. Differential fault attacks on elliptic curve cryptosystems // Advances in cryptology - CRYPTO 2000: 20th annual intern. cryptology conf. (Santa Barbara, CA, USA, August 20-24, 2000): Proc. B.; Hdbl.: Springer, 2000. Pp. 131-146. DOI: 10.1007/3-540-44598-6_8

20. Boneh D., DeMillo R.A., Lipton R.J. On the importance of eliminating errors in cryptographic computations // J. of Cryptology. 2001. Vol.14, no. 2. Pp. 101-119. DOI: 10.1007/s001450010016

21. Otto M. Fault attacks and countermeasures. Dissertation / Fakultat fur Elektrotechnik, Informatik und Mathematik; Institut fur Informatik; Universitat Paderborn. 2004. 189 s. Режим доступа: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.133.5710&rep=rep1& type=pdf (дата обращения 9.01.2021).

22. Ciet M., Joye M. Elliptic curve cryptosystems in the presence of permanent and transient faults // Designs, Codes and Cryptography. 2005. Vol.36, no. 1. Pp. 33-43. DOI: 10.1007/s10623-003-1160-8

23. Blcomer J., Otto M., Seifert J.-P. Sign change fault attacks on elliptic curve cryptosystems // Fault diagnosis and tolerance in cryptography: 3rd intern. workshop on fault diagnosis and tolerance in cryptography: FDTC 2006 (Yokogama, Japan, October 10,2006): Proc. B.; Hdbl.: Springer, 2006. Pp. 36-52. DOI: 10.1007/11889700.4

24. Fouque P.-A., Lercier R., Real D., Valette F. Fault attack on elliptic curve Montgomery ladder implementation // Fault diagnosis and tolerance in cryptography: 5th workshop on fault diagnosis and tolerance in cryptography: FDTC 2008 (Wash., DC, USA, August 15, 2008): Proc. N.Y.: IEEE, 2008. Pp. 92-98. DOI: 10.1109/FDTC.2008.15

25. Chilikov A., Taraskin O. New fault attack on elliptic curve scalar multiplication // Cryptology ePrint Archive. 2009. Report 2009/528. Режим доступа: http://eprint.iacr.org/2009/528.pdf (дата обращения 16.09.2020).

26. Giraud C. DFA on AES // Advanced encryption standard - AES: 4th intern. conf. on advanced encryption standard (Bonn, Germany, May 10-12, 2004): Selected and invited papers. B.; Hdbl.: Springer, 2005. Pp. 27-41. DOI: 10.1007/11506447.4

27. Dusart P., Letourneux G., Vivolo O. Differential fault analysis on A.E.S. // Applied cryptography and network security: 1st intern. conf. on applied cryptography and network security: ACNS 2003 (Kunming, China, October 16-19, 2003): Proc. B.; Hdbl.: Springer, 2003. Pp. 293-306. DOI: 10.1007/978-3-540-45203-4-23

28. Chien-Ning Chen, Sung-Ming Yen. Differential fault analysis on AES key schedule and some countermeasures // Information security and privacy: 8th Australasian conf. on information security and privacy: ACISP 2003 (Wollogong, Australia, July 9-11, 2003): Proc. B.; Hdbl.: Springer, 2003. Pp. 118-129. DOI: 10.1007/3-540-45067-X11

29. Piret G., Quisquater J.-J. A differential fault attack technique against SPN structures, with application to the AES and KHAZAD // Cryptographic hardware and embedded systems: 5th intern. workshop on cryptographic hardware and embedded systems: CHES 2003 (Cologne, Germany, September 8-10, 2003): Proc. B.; Hdbl.: Springer, 2003. Pp. 77-88. DOI: 10.1007/978-3-540-45238-6-7

30. Moradi A., Manzuri Shalmani M.T., SalmasizadehM. A generalized method of differential fault attack against AES cryptosystem // Cryptographic hardware and embedded systems: 8th intern. workshop on cryptographic hardware and embedded systems: CHES 2006 (Yokogama, Japan, October 10-13, 2006): Proc. B.; Hdbl.: Springer, 2006. Pp. 91-100. DOI: 10.1007/11894063-8

31. Chong Hee Kim, Quisquater J.-J. New differential fault analysis on AES key schedule: Two faults are enough // Smart card research and advanced applications: 8th IFIP WG 8.8/11.2 intern. conf. on smart card research and advanced applications: CARDIS 2008 (London, UK, September 8-11, 2008): Proc. B.; Hdbl.: Springer, 2008. Pp. 48-60. DOI: 10.1007/978-3-540-85893-5-4

32. Mukhopadhyay D. An improved fault based attack of the advanced encryption standard // Progress in cryptology - AFRICACRYPT 2009: 2nd intern. conf. on cryptology in Africa (Gammarth, Tunisia, June 21-25, 2009): Proc. B.; Hdbl.: Springer, 2009. Pp. 421-434. DOI: 10.1007/978-3-642-02384-2-26

33. Ali S., Mukhopadhyay D., Tunstall M. Differential fault analysis of AES using a single multiple-byte fault. Режим доступа: http://eprint.iacr.org/2010/636.pdf (дата обращения 16.09.2020).

34. Roche T., Lomne V., Khalfallah K. Combined fault and side-channel attack on protected implementations of AES // Smart card research and advanced applications: 10th intern. conf. on smart card research and advanced applications: CARDIS 2011 (Leuven, Belgium, September 14-16, 2011): Revised selected papers. B.; Hdbl.: Springer, 2011. Pp. 65-83. DOI: 10.1007/978-3-642-27257-8_5

35. Skorobogatov S.P., Anderson R.J. Optical fault induction attacks // Cryptographic hardware and embedded systems - CHES 2002: 4th intern. workshop on cryptographic hardware and

embedded systems (Redwood Shores, CA, USA, August 13-15, 2002): Revised papers. B.; Hdbl.: Springer, 2003. Pp. 2-12. DOI: 10.1007/3-540-36400-5,2

36. Krawczyk H., Bellare M., Canetti R. HMAC: Keyed-hashing for message authentication. Режим доступа: http://www.ietf.org/rfc/rfc2104.txt (дата обращения 17.09.2020).

37. Fouque P.-A., Leurent G., Real D., Valette F. Practical electromagnetic template attack on HMAC // Cryptographic hardware and embedded systems - CHES 2009: 11th intern. workshop on cryptographic hardware and embedded systems (Lausanne, Switzerland, September 6-9, 2009): Proc. B.; Hdbl.: Springer, 2009. Pp. 66-80. DOI: 10.1007/978-3-642-04138-9.6

38. Чиликов A.A. Fault-атаки на алгоритм HMAC: Доклад//РусКрипто'2010: науч.-практич. конф. (Подмосковье, 1-4 апреля 2010 г.). Режим доступа: http://www.ruscrypto.ru/resource/ archive/rc2010/files/06_chilikov.pdf (дата обращения 17.09.2020).

39. Чиликов A.A. Fault-атаки на алгоритмы HMAC и NMAC // Актуальные проблемы организации и технологии защиты информации: 1-я межвуз. науч.-практич. конф. (С.Петербург, 30 ноября - 1 декабря 2011 г.): Тр. СПб.: ИТМО, 2011.

Mathematics and Mathematical Modeling, 2020, no. 4, pp. 65-92.

DOI: 10.24108/mathm.0420.0000235

© Chilikov A. A., 2020.

Mathematics i Mathematical Modelling

http://mathmelpub.ru ISSN 2412-5911

Fault Attack on Message Authentication Codes HMAC and NMAC Chilikov A. A.1'2'*

1Bauman Moscow State Technical University, Russia 2Moscow Institute of Physics and Technology, Russia

* chilikov@passware.com

Keywords: cryptography; side-channel attacks; smartcards; fault analysis

Received: 23.09.2020.

One of the important problems arising in designing and practical implementation of cryptosystems is provide countermeasures against side-channel attacks. When implemented on a specific physical device, the algorithms, strength of which from the purely mathematical point of view is without great doubt, often employ weaknesses to such attacks.

A fault analysis attack is one of the options of the side-channel attack on a cryptosystem. Its essence is that the attacker has an active influence on a physical device that provides computation (for example, a smart card). Faults caused by influence are then analysed in order to restore security information that is stored inside the device. These attacks are often significantly more efficient than passive side-channel attacks.

The fault analysis attacks were proposed over 20 years ago. Since then, attacks have been successfully built owing to implementation of a number of symmetric and asymmetric crypto-algorithms. Also, a number of different methods for active influence on computation have been proposed, using specific physical effects and characteristics of the computing environment. Approaches to counteracting such types of attacks are also actively developing. For this, both physical and purely mathematical methods are used. However, it should be noted that cryptographic hash functions, and more complex crypto-schemes containing them as components (for example, some message authentication codes and digital signatures), are slightly presented in these papers.

It is important to note that practical implementation of a specific attack requires that a combination of the following factors is available: a possibility of a specific physical impact on computation, an adequate mathematical model of such physical impact and a purely mathematical component of the attack that is a specific algorithms for introducing faults and further analysis of the results. At the same time, the solution of each of these problems separately is of independent theoretical value.

The paper results do not involve the physical component of attack, aiming only at mathematics. In other words, a proposal is to present the specific algorithms for introducing faults and further analysis of the results. In this case, a specific fault model is considered known and specified. Several such models have been considered, based on the similar ones previously proposed for other algorithms.

As an object of study, two standards to form message authentication codes have been selected: HMAC and NMAC. These standards can be based on any cryptographic hash function that provides the required level of security. The paper examines four examples of widely used hashes: MD5, MD4, SHA-1, SHA-0.

The main results of the paper are as follows:

-built specific algorithms for introducing faults in computation and their further analysis, allowing to discover secret information (secret keys);

- finding and validation of estimates of such attacks (in terms of the number of introduced faults and the work factor of further analysis) for various combinations of parameters (algorithms and fault models);

- shown that attacks timing can be reasonable.

References

1. Boneh D., DeMillo R.A., Lipton R.J. On the importance of checking cryptographic protocols for faults. Advances in cryptology - EUROCRYPT'97: 16th annual intern. conf. on theory and application of cryptographic techniques (Konstanz, Germany, May 11-15, 1997): Proc. B.; Hdbl.: Springer, 1997. Pp. 37-51. DOI: 10.1007/3-540-69053-0.4

2. Eli Biham, Adi Shamir. Differential fault analysis of secret key cryptosystems. Advances in cryptology - CRYPTO 1997: 17th annual intern. cryptology conf. (Santa Barbara, CA, USA, August 17-21, 1997): Proc. B.; Hdbl.: Springer, 1997. Pp. 513-525. DOI: 10.1007/BFb0052259

3. Blcomer J., Seifert J.-P. Fault based cryptanalysis of the advanced encryption standard (AES). Financial cryptography: 7th intern. conf. on financial cryptography: FC 2003 (Guadeloupe, French West Indies, January 27-30, 2003): Revised papers. B.; Hdbl.: Springer, 2003. Pp. 162181. DOI: 10.1007/978-3-540-45126-6.12

4. Hoch J.J., Shamir A. Fault analysis of stream ciphers. Cryptographic hardware and embedded systems: 6th intern. workshop on cryptographic hardware and embedded systems: CHES 2004 (Camb., MA, USA, August 11-13, 2004): Proc. B.; Hdbl.: Springer, 2004. Pp. 240-253. DOI: 10.1007/978-3-540-28632-5.18

5. Armknecht F., Meier W. Fault attacks on combiners with memory. Selected areas in cryptography: 12th intern. workshop on selected areas in cryptography: SAC 2005 (Kingston, ON, Canada, August 11-12, 2005): Revised selected papers. B.; Hdbl.: Springer, 2006. Pp. 36-50. DOI: 10.1007/11693383.3

6. Biham E., Granboulan L., Phong Q. Nguyen. Impossible fault analysis of RC4 and differential fault analysis of RC4. Fast software encryption: 12th intern. workshop on fast software encryption: FSE 2005 (Paris, France, February 21-23, 2005): Revised selected papers. B.; Hdbl.: Springer, 2005. Pp. 359-367. DOI: 10.1007/11502760.24

7. Breveglieri L., KorenI., MaistriP. A fault attack against the FOX cipher family. Fault diagnosis and tolerance in cryptography: 3rd intern. workshop on fault diagnosis and tolerance in cryptography: FDTC 2006 (Yokogama, Japan, October 10, 2006): Proc. B.; Hdbl.: Springer, 2006. Pp. 98-105. DOI: 10.1007/11889700.10

8. Clavier C., Gierlichs B., Verbauwhede I. Fault analysis study of IDEA. Topics in cryptology - CT-RSA 2008: The cryptographer's track at the RSA conf. 2008 (San Francisco, CA, USA, April 8-11, 2008): Proc. B.; Hdbl.: Springer, 2008. Pp. 274-287. DOI: 10.1007/978-3-540-79263-5.17

9. Hojsik M., Rudolf B. Differential fault analysis of trivium. Fast software encryption: 15th intern. workshop on fast software encryption: FSE 2008 (Lausanne, Switzerland, February 10-13, 2008): Revised selected papers. B.; Hdbl.: Springer, 2008. Pp. 158-172. DOI: 10.1007/978-3-540-71039-4.10

10. Hojsik M., Rudolf B. Floating fault analysis of trivium. Progress in cryptology - INDOCRYPT 2008: 9th intern. conf. on cryptology in India (Kharagpur, India, December 14-17, 2008): Proc. B.; Hdbl.: Springer, 2008. Pp. 239-250. DOI: 10.1007/978-3-540-89754-5.19

11. Berzati A., Canovas-Dumas C., Goubin L. Fault analysis of rabbit: toward a secret key leakage. Progress in cryptology - INDOCRYPT 2009: 10th intern. conf. on cryptology in India (New Delhi, India, December 13-16, 2009): Proc. B.; Hdbl.: Springer, 2009. Pp. 72-87. DOI: 10.1007/978-3-642-10628-6.5

12. Kircanski A., Youssef A.M. Differential fault analysis of rabbit. Selected areas in cryptography: 16th annual intern. workshop on selected areas in cryptography: SAC 2009 (Calgary, Alberta, Canada, August 13-14, 2009): Revised selected papers. B.; Hdbl.: Springer, 2009. Pp. 197214. DOI: 10.1007/978-3-642-05445-7.13

13. Kircanski A., Youssef A.M. Differential fault analysis of HC-128. Progress in cryptology -AFRICACRYPT 2010: 3rd intern. conf. on cryptology in Africa (Stellenbosch, South Africa, May 3-6, 2010): Proc. B.; Hdbl.: Springer, 2010. Pp. 261-278. DOI: 10.1007/978-3-64212678-9.16

14. Kenneth Koon-Ho Wong, Bartlett H., Simpson L., Dawson E. Differential random fault attacks on certain CAESAR stream ciphers. Information security and cryptology - ICISC 2019: 22nd intern. conf. on information security and cryptology (Seoul, South Korea, December 4-6, 2019): Revised selected papers. Cham: Springer, 2020. Pp. 297-315. DOI: 10.1007/978-3-030-40921-0.18

15. Klimtsov V.E., Chilikov A.A. Lokalizatsiia sboev pri differentsial'nom kriptoanalize po os-hibkam vychislenij potochnykh shifrov osnovannykh na nelinejnykh registrakh sdviga [Fault localization in differential fault analysis of stream ciphers based on nonlinear-feedback shift registers]. Bezopasnye informatsionnye tekhnologii: 10-ia mezhdunarodnaia nauchno-tekhnicheskaia konferentsiia [Secure information technology: 10th Intern. scientific and technical conf. (Moscow, Russia, December 3-4, 2019)]: Proc. Moscow: BMSTU Publ., 2019. Pp. 172-175 (in Russian).

16. Ruilin Li, Jianxiong You, Bing Sun, Chao Li. Fault analysis study of the block cipher FOX64. Multimedia Tools and Applications, 2013, vol.63, no. 3, pp. 691-708. DOI: 10.1007/s11042-011-0895-x

17. Kenneth Koon-Ho Wong, Bartlett H., Simpson L., Dawson E. Differential random fault attacks on certain CAESAR stream ciphers (Supplementary material). Cryptology ePrint Archive, 2020, report 2020/022. Available at: http://eprint.iacr.org/2020/022.pdf, accessed 16.09.2020.

18. Saha S., Bag A., Roy D.B., Patranabis S., Mukhopadhyay D. Fault template attacks on block ciphers exploiting fault propagation. Advances in cryptology - EUROCRYPT 2020: 39th annual intern. conf. on the theory and applications of cryptographic techniques (Zagreb, Croatia, May 10-14, 2020): Proc. Pt. 1. Cham: Springer, 2020. Pp. 612-643. DOI: 10.1007/978-3-030-45721-1,22

19. Biehl I., Meyer B., Muller V. Differential fault attacks on elliptic curve cryptosystems. Advances in cryptology - CRYPTO 2000: 20th annual intern. cryptology conf. (Santa Barbara, CA, USA, August 20-24, 2000): Proc. B.; Hdbl.: Springer, 2000. Pp. 131-146. DOI: 10.1007/3-540-44598-6-8

20. Boneh D., DeMillo R.A., Lipton R.J. On the importance of eliminating errors in cryptographic computations. J. of Cryptology, 2001, vol.14, no. 2, pp. 101-119. DOI: 10.1007/s001450010016

21. Otto M. Fault attacks and countermeasures. Dissertation / Fakultat fur Elektrotechnik, Informatik und Mathematik; Institut fur Informatik; Universitat Paderborn. 2004. 189 s. Available at: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.133.5710&rep=rep1&type=pdf, accessed 9.01.2021.

22. Ciet M., Joye M. Elliptic curve cryptosystems in the presence of permanent and transient faults. Designs, Codes and Cryptography, 2005, vol.36, no. 1, pp. 33-43. DOI: 10.1007/s10623-003-1160-8

23. Blcomer J., Otto M., Seifert J.-P. Sign change fault attacks on elliptic curve cryptosystems. Fault diagnosis and tolerance in cryptography: 3rd intern. workshop on fault diagnosis and tolerance in cryptography: FDTC 2006 (Yokogama, Japan, October 10, 2006): Proc. B.; Hdbl.: Springer, 2006. Pp. 36-52. DOI: 10.1007/11889700_4

24. Fouque P.-A., Lercier R., Real D., Valette F. Fault attack on elliptic curve Montgomery ladder implementation. Fault diagnosis and tolerance in cryptography: 5th workshop on fault diagnosis and tolerance in cryptography: FDTC 2008 (Wash., DC, USA, August 15, 2008): Proc. N.Y.: IEEE, 2008. Pp. 92-98. DOI: 10.1109/FDTC.2008.15

25. Chilikov A., Taraskin O. New fault attack on elliptic curve scalar multiplication. Cryptology ePrint Archive, 2009, report 2009/528. Available at: http://eprint.iacr.org/2009/528.pdf, accessed 16.09.2020.

26. Giraud C. DFA on AES. Advanced encryption standard - AES: 4th intern. conf. on advanced encryption standard (Bonn, Germany, May 10-12, 2004): Selected and invited papers. B.; Hdbl.: Springer, 2005. Pp. 27-41. DOI: 10.1007/11506447.4

27. Dusart P., Letourneux G., Vivolo O. Differential fault analysis on A.E.S. Applied cryptography and network security: 1st intern. conf. on applied cryptography and network security: ACNS 2003 (Kunming, China, October 16-19, 2003): Proc. B.; Hdbl.: Springer, 2003. Pp. 293-306. DOI: 10.1007/978-3-540-45203-4_23

28. Chien-Ning Chen, Sung-Ming Yen. Differential fault analysis on AES key schedule and some countermeasures. Information security and privacy: 8th Australasian conf. on information security and privacy: ACISP 2003 (Wollogong, Australia, July 9-11, 2003): Proc. B.; Hdbl.: Springer, 2003. Pp. 118-129. DOI: 10.1007/3-540-45067-X.11

29. Piret G., Quisquater J.-J. A differential fault attack technique against SPN structures, with application to the AES and KHAZAD. Cryptographic hardware and embedded systems: 5th intern. workshop on cryptographic hardware and embedded systems: CHES 2003 (Cologne, Germany, September 8-10, 2003): Proc. B.; Hdbl.: Springer, 2003. Pp. 77-88. DOI: 10.1007/978-3-540-45238-6.7

30. Moradi A., Manzuri Shalmani M.T., SalmasizadehM. A generalized method of differential fault attack against AES cryptosystem. Cryptographic hardware and embedded systems: 8th intern. workshop on cryptographic hardware and embedded systems: CHES 2006 (Yokogama, Japan, October 10-13, 2006): Proc. B.; Hdbl.: Springer, 2006. Pp. 91-100. DOI: 10.1007/11894063.8

31. Chong Hee Kim, Quisquater J.-J. New differential fault analysis on AES key schedule: Two faults are enough. Smart card research and advanced applications: 8th IFIP WG 8.8/11.2 intern. conf. on smart card research and advanced applications: CARDIS 2008 (London, UK, September 8-11, 2008): Proc. B.; Hdbl.: Springer, 2008. Pp. 48-60. DOI: 10.1007/978-3-540-85893-5.4

32. Mukhopadhyay D. An improved fault based attack of the advanced encryption standard. Progress in cryptology - AFRICACRYPT 2009: 2nd intern. conf. on cryptology in Africa (Gammarth, Tunisia, June 21-25, 2009): Proc. B.; Hdbl.: Springer, 2009. Pp. 421-434. DOI: 10.1007/978-3-642-02384-2.26

33. Ali S., Mukhopadhyay D., Tunstall M. Differential fault analysis of AES using a single multiple-byte fault. Available at: http://eprint.iacr.org/2010/636.pdf, accessed 16.09.2020.

34. Roche T., Lomne V., Khalfallah K. Combined fault and side-channel attack on protected implementations of AES. Smart card research and advanced applications: 10th intern. conf. on smart card research and advanced applications: CARDIS 2011 (Leuven, Belgium, September 14-16, 2011): Revised selected papers. B.; Hdbl.: Springer, 2011. Pp. 65-83. DOI: 10.1007/978-3-642-27257-8-5

35. Skorobogatov S.P., Anderson R.J. Optical fault induction attacks. Cryptographic hardware and embedded systems - CHES 2002: 4th intern. workshop on cryptographic hardware and embedded systems (Redwood Shores, CA, USA, August 13-15, 2002): Revised papers. B.; Hdbl.: Springer, 2003. Pp. 2-12. DOI: 10.1007/3-540-36400-5,2

36. Krawczyk H., Bellare M., Canetti R. HMAC: Keyed-hashing for message authentication. Available at: http://www.ietf.org/rfc/rfc2104.txt, accessed 17.09.2020.

37. Fouque P.-A., Leurent G., Real D., Valette F. Practical electromagnetic template attack on HMAC. Cryptographic hardware and embedded systems - CHES 2009: 11th intern. workshop on cryptographic hardware and embedded systems (Lausanne, Switzerland, September 6-9, 2009): Proc. B.; Hdbl.: Springer, 2009. Pp. 66-80. DOI: 10.1007/978-3-642-04138-9-6

38. Chilikov A.A. Fault-ataki na algoritm HMAC: Doklad [Fault attacks on the algorithm HMAC: Report]. Nauchno-prakticheskaia konferentsiia "RusKrypt'2010" [Scientific and practical conf. "RusCrypto' 2010" (Moscow Region, April 1-4, 2010)]. Available at: http://www.ruscrypto.ru/resource/ archive/rc2010/files/06_chilikov.pdf, accessed 17.09.2020 (in Russian).

39. Chilikov A.A. Fault-ataki na algoritmy HMAC i NMAC [Fault attacks on HMAC and NMAC algorithms]. Aktual'nyeproblemy organizatsii i tekhnologii zashchity informatsii: 1-ia Mezhvuzovskaia nauchno-prakticheskaia konferentsiia [Current problems of the organization and technology of information protection: 1st inter-universities scientific and practical conf. (S.-Petersburg, November 30 - December 1, 2011)]: Proc. S.-Peterburg, 2011 (in Russian).

i Надоели баннеры? Вы всегда можете отключить рекламу.