AES (стандарт шифрования): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Строка 223: Строка 223:


== Криптостойкость ==
== Криптостойкость ==
В июне 2003 года [[Агентство национальной безопасности]] США постановило, что шифр AES является достаточно надёжным, чтобы использовать его для защиты сведений, составляющих государственную тайну ({{lang-en|classified information}}). Вплоть до уровня ''SECRET'' было разрешено использовать ключи длиной 128 битов, для уровеня ''TOP SECRET'' требовались ключи длиной 192 и 256 битов<ref>[http://cryptome.org/aes-natsec.htm National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information<!-- Заголовок добавлен ботом -->]</ref>.
В июне 2003 года [[Агентство национальной безопасности]] США постановило, что шифр AES является достаточно надёжным, чтобы использовать его для защиты сведений, составляющих государственную тайну ({{lang-en|classified information}}). Вплоть до уровня ''SECRET'' было разрешено использовать ключи длиной 128 бит, для уровеня ''TOP SECRET'' требовались ключи длиной 192 и 256 бит<ref>{{cite web|url=http://cryptome.org/aes-natsec.htm|title=National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information|date=June 2003|publisher=Committee on National Security Systems|lang=en|accessdate=2010-10-27}}</ref>.


=== [[XSL-атака]] ===
=== [[XSL-атака]] ===
В отличие от большинства других шифров AES имеет простое математическое описание. Это беспокоило в том числе и Нейлса Фергюсона, который в своей работе отметил, что безопасность шифра основывается на новом непроверенном предположении о сложности решения определённых видов уравнений ({{lang-en|«The security of Rijndael depends on a new and untested hardness assumption: it is computationally infeasible to solve equations of this type»}})<ref>http://www-users.cs.york.ac.uk/~jmclaugh/XSL_chapter.pdf</ref><ref>N. Ferguson, R. Schroeppel, and D.Whiting. A simple algebraic representation of Rijndael. In S. Vaudenay and A.M. Youssef, editors, Proceedings of the 8th Annual International Workshop on Selected Areas in Cryptography (SAC 2001), volume 2259 of Lecture Notes in Computer Science, pages 103—111. Springer, August 2001.</ref>, а также Брюса Шнайера, который написал в совместной с Нейлсом книге:
В отличие от большинства других шифров AES имеет простое математическое описание. Это беспокоило в том числе и Нейлса Фергюсона, который в своей работе отметил, что безопасность шифра основывается на новом непроверенном предположении о сложности решения определённых видов уравнений ({{lang-en|«The security of Rijndael depends on a new and untested hardness assumption: it is computationally infeasible to solve equations of this type»}})<ref>{{книга|автор=James McLaughlin|часть=The XSL controversy|заглавие=A survey of block cipher cryptanalysis techniques|ссылка=http://www-users.cs.york.ac.uk/~jmclaugh/XSL_chapter.pdf|издание=preprint|место=York|издательство=University of York|год=2009}}</ref><ref>{{статья|автор=Niels Ferguson, Richard Schroeppel, and Doug Whiting|заглавие=A simple algebraic representation of Rijndael|ссылка=http://www.macfergus.com/pub/rdalgeq.html|язык=en|издание=Selected Areas in Cryptography, Proc. SAC 2001, Lecture Notes in Computer Science #2259|издательство=Springer Verlag|год=2001|pages=103–111}}</ref>, а также Брюса Шнайера, который написал в совместной с Нейлсом книге:
{{Начало цитаты}}
{{Начало цитаты}}
We have one criticism of AES: we don't quite trust the security…What concerns us the most about AES is its simple algebraic structure… No other block cipher we know of has such a simple algebraic representation. We have no idea whether this leads to an attack or not, but not knowing is reason enough to be skeptical about the use of AES
We have one criticism of AES: we don't quite trust the security…What concerns us the most about AES is its simple algebraic structure… No other block cipher we know of has such a simple algebraic representation. We have no idea whether this leads to an attack or not, but not knowing is reason enough to be skeptical about the use of AES
{{Конец цитаты|источник=''Niels Ferguson, Bruce Schneier'' Practical Cryptography — 2003 — pp. 56–57}}
{{Конец цитаты|источник=''Niels Ferguson, Bruce Schneier'' Practical Cryptography — 2003 — pp. 56–57}}


Nicolas Courtois и Josef Pieprzyk в 2002 опубликовали статью, в которой описали теоретическую атаку, названную ими [[XSL-атака|XSL-атакой]] ({{lang-en|eXtended Sparse Linearization}}), которая могла бы позволить вскрыть шифры AES и [[Serpent]]<ref>[http://www.schneier.com/crypto-gram-0209.html Crypto-Gram: September 15, 2002<!-- Заголовок добавлен ботом -->]</ref><ref>[http://eprint.iacr.org/2002/044 Cryptology ePrint Archive: Report 2002/044<!-- Заголовок добавлен ботом -->]</ref>. Тем не менее, результаты работы не всеми были восприняты оптимистично:
Nicolas Courtois и Josef Pieprzyk в 2002 опубликовали статью, в которой описали теоретическую атаку, названную ими [[XSL-атака|XSL-атакой]] ({{lang-en|eXtended Sparse Linearization}}), которая могла бы позволить вскрыть шифры AES и [[Serpent]]<ref>{{cite web|url=http://www.schneier.com/crypto-gram-0209.html|title=Crypto-Gram Newsletter|author=Bruce Schneier|date=2002-09-15|work=Schneier on Security|lang=en|accessdate=2010-10-27}}</ref><ref>{{статья|автор=Nicolas Courtois, Josef Pieprzyk|заглавие=Cryptanalysis of Block Ciphers with Overdefined Systems of Equations|издание=Advances in Cryptology — ASIACRYPT 2002 8th International Conference on the Theory Application of Cryptology and Information Security Queenstown, New Zealand, December 1–5, 2002 Proceedings. Lecture Notes in Computer Science (2501)|ссылка=http://eprint.iacr.org/2002/044|язык=en|издательство=Springer|год=2002|pages=267—287|doi=10.1007/3-540-36178-2}}</ref>. Тем не менее, результаты работы не всеми были восприняты оптимистично:
{{Начало цитаты}}
{{Начало цитаты}}
I believe that the Courtois-Pieprzyk work is flawed. They overcount the number of linearly independent equations. The result is that they do not in fact have enough linear equations to solve the system, and the method does not break Rijndael…The method has some merit, and is worth investigating, but it does not break Rijndael as it stands.
I believe that the Courtois-Pieprzyk work is flawed. They overcount the number of linearly independent equations. The result is that they do not in fact have enough linear equations to solve the system, and the method does not break Rijndael…The method has some merit, and is worth investigating, but it does not break Rijndael as it stands.
Строка 238: Строка 238:
На странице, посвящённой обсуждению конкурса [[NESSIE]] в конце 2002 года один из авторов шифра, Винсент Рэймен, заявил, что XSL-атака является всего-лишь мечтой ({{lang-en|The XSL attack is not an attack. It is a dream}}) (данная точка зрения позже была повторена в 2004 году на 4-й конференции AES в [[Бонн]]е). На это Courtois ответил, что данная мечта может стать для автора AES кошмаром ({{lang-en|It may also be a very bad dream and turn into a nightmare}})<ref>[http://web.archive.org/web/20031108050830/http://www.cosic.esat.kuleuven.ac.be/nessie/forum/read.php?f=1&i=82&t=82 NESSIE Discussion Forum<!-- Заголовок добавлен ботом -->]</ref>.
На странице, посвящённой обсуждению конкурса [[NESSIE]] в конце 2002 года один из авторов шифра, Винсент Рэймен, заявил, что XSL-атака является всего-лишь мечтой ({{lang-en|The XSL attack is not an attack. It is a dream}}) (данная точка зрения позже была повторена в 2004 году на 4-й конференции AES в [[Бонн]]е). На это Courtois ответил, что данная мечта может стать для автора AES кошмаром ({{lang-en|It may also be a very bad dream and turn into a nightmare}})<ref>[http://web.archive.org/web/20031108050830/http://www.cosic.esat.kuleuven.ac.be/nessie/forum/read.php?f=1&i=82&t=82 NESSIE Discussion Forum<!-- Заголовок добавлен ботом -->]</ref>.


В 2003 году Sean Murphy и Matt Robshaw опубликовали работу, в которой, в предположении что результаты Courtois и Pieprzyk верны, обосновали возможность атаки на алгоритм AES, сокращающей количество операций для взлома с 2<sup>128</sup> до 2<sup>100</sup>. Однако на на 4-й конференции AES Toli и Zanoni показали, что работа Мёрфи и Робшава неверна<ref>Lecture Notes in Computer Science 3373</ref>. Позже, в 2007 году, Chu-Wee Lim и Khoongming Khoo показали, что данная атака не может работать в том виде, как она была описана<ref>[http://www.springerlink.com/content/6x35t1u383824353/ Chu-Wee Lim, Khoongming Khoo: An Analysis of XSL Applied to BES. FSE 2007: 242-253]</ref>.
В 2003 году Sean Murphy и Matt Robshaw опубликовали работу, в которой, в предположении что результаты Courtois и Pieprzyk верны, обосновали возможность атаки на алгоритм AES, сокращающей количество операций для взлома с 2<sup>128</sup> до 2<sup>100</sup>. Однако на на 4-й конференции AES Toli и Zanoni показали, что работа Мёрфи и Робшава неверна<ref>{{статья|автор=Ilia Toli, Alberto Zanoni|заглавие=An Algebraic Interpretation of AES-128|ссылка=http://www.springerlink.com/content/3q790mfnr6bk70pf/|язык=en|издание=Proc. of AES Conference|год=2005|том=2005|страницы=84-97|doi=10.1007/11506447_8}}</ref>. Позже, в 2007 году, Chu-Wee Lim и Khoongming Khoo показали, что данная атака не может работать в том виде, как она была описана<ref>{{статья|автор=Chu-wee Lim, Khoongming Khoo|заглавие=An Analysis of XSL Applied to BES|ссылка=http://www.springerlink.com/content/6x35t1u383824353/|язык=en|издание=Fast Software Encryption|место=Heidelberg|издательство=Springer Berlin / Heidelberg|год=2007|том=4593|страницы=242-253|doi=10.1007/978-3-540-74619-5_16}}</ref>.


=== [[Атака по сторонним каналам]] ===
=== [[Атака по сторонним каналам]] ===

Версия от 07:55, 27 октября 2010

AES, Rijndael-AES, Rijndael
Создатель Винсент Рэймен, Йоан Даймен
Создан 1998 г.
Опубликован 2001 г.
Размер ключа 128/192/256 бит
Размер блока 128 бит
Число раундов 10/12/14 (зависит от размера ключа)
Тип Подстановочно-перестановочная сеть
Логотип Викисклада Медиафайлы на Викискладе

Advanced Encryption Standard (AES), также известный как Rijndael (произносится rɛindaːl) — симметричный алгоритм блочного шифрования (размер блока 128 бит, ключ 128/192/256 бит), принятый в качестве стандарта шифрования правительством США по результатам конкурса AES. Этот алгоритм хорошо проанализирован и сейчас широко используется, как это было с его предшественником DES. Национальный институт стандартов и технологий США (англ. National Institute of Standards and Technology, NIST) опубликовал спецификацию AES 26 ноября 2001 года после пятилетнего периода, в ходе которого были созданы и оценены 15 кандидатур. 26 мая 2002 года AES был объявлен стандартом шифрования. По состоянию на 2006 год AES является одним из самых распространённых алгоритмов симметричного шифрования[источник не указан 5096 дней].

История AES

2 января 1997 года NIST объявляет[1] о намерении выбрать преемника для DES, являвшегося американским стандартом с 1977 года. 2 октября 2000 года было объявлено, что победителем конкурса стал алгоритм Rijndael[2], и началась процедура стандартизации. 28 февраля 2001 года был опубликован проект, а 26 ноября 2001 года AES был принят как FIPS 197. Историческую ретроспективу конкурса можно проследить на веб-сайте NIST [3].

Описание AES

Определения и вспомогательные процедуры

Определения
Block последовательность бит, из которых состоит input, output, State и Round Key. Также под Block можно понимать последовательность байт
Cipher Key секретный, криптографический ключ, который используется Key Expansion процедурой, чтобы произвести набор ключей для раундов(Round Keys); может быть представлен как прямоугольный массив байтов, имеющий четыре строки и Nk колонок.
Ciphertext выходные данные алгоритма шифрования
Key Expansion процедура используемая для генерации Round Keys из Cipher Key
Round Key Round Keys получаются из Cipher Key используя процедуру Key Expansion. Они применяются к State при шифровании и расшифровании
State промежуточный результат шифрования, который может быть представлен как прямоугольный массив байтов имеющий 4 строки и Nb колонок
S-box нелинейная таблица замен, использующаяся в нескольких трансформациях замены байт и в процедуре Key Expansion для взаимнооднозначной замены значения байта
Nb число столбцов(32-ух битных слов), составляющих State. Для, AES Nb = 4
Nk число 32-ух битных слов, составляющих шифроключ. Для AES, Nk = 4,6, или 8
Nr число раундов, которое является функцией Nk и Nb. Для AES, Nr = 10, 12, 14
Rcon[] массив, который состоит из битов 32-х разрядного слова и является постоянным для данного раунда
Вспомогательные процедуры
AddRoundKey()  трансформация при шифровании и обратном шифровании, при которой Round Key XOR’ится c State. Длина RoundKey равна размеру State(те, если Nb = 4, то длина RoundKey равна 128 бит или 16 байт)
InvMixColumns() трансформация при расшифровании которая является обратной по отношению к MixColumns()
InvShiftRows() трансформация при расшифровании которая является обратной по отношению к ShiftRows()
InvSubBytes() трансформация при расшифровании которая является обратной по отношению к SubBytes()
MixColumns() трансформация при шифровании которая берет все столбцы State и смешивает их данные (независимо друг от друга), чтобы получить новые столбцы
RotWord() функция, использующаяся в процедуре Key Expansion, которая берет 4-х байтное слово и производит над ним циклическую перестановку
ShiftRows() трансформации при шифровании, которые обрабатывают State, циклически смещая последние три строки State на разные величины
SubBytes() трансформации при шифровании которые обрабатывают State используя нелинейную таблицу замещения байтов(S-box), применяя её независимо к каждому байту State
SubWord() функция, используемая в процедуре Key Expansion, которая берет на входе четырёх-байтное слово и применяя S-box к каждому из четырёх байтов выдаёт выходное слово

Шифрование

AES является стандартом, основанным на алгоритме Rijndael. Для AES длина input(блока входных данных) и State(состояния) постоянна и равна 128 бит, а длина шифроключа K составляет 128, 192, или 256 бит. При этом, исходный алгоритм Rijndael допускает длину ключа и размер блока от 128 до 256 бит с шагом в 32 бита. Для обозначения выбранных длин input, State и Cipher Key в байтах используется нотация Nb = 4 для input и State, Nk = 4, 6, 8 для Cipher Key соответственно для разных длин ключей.

В начале шифрования input копируется в массив State по правилу , для и . После этого к State применяется процедура AddRoundKey() и затем State проходит через процедуру трансформации(раунд) 10, 12, или 14 раз(в зависимости от длины ключа), при этом надо учесть, что последний раунд несколько отличается от предыдущих. В итоге, после завершения последнего раунда трансформации, State копируется в output по правилу , для и .

Шифр описан в псевдокоде на рис1. Отдельные трансформации SubBytes(), ShiftRows(), MixColumns(), и AddRoundKey() — обрабатывают State. Массив w[] — содержит key schedule.


Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
begin
    byte state[4,Nb]
    
    state = in

    AddRoundKey(state, w[0, Nb-1])

    for round = 1 step 1 to Nr-1
        SubBytes(state)
        ShiftRows(state)
        MixColumns(state)
        AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
    end for

    SubBytes(state)
    ShiftRows(state)
    AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])

    out = state
end

Рис1. Псевдокод для Cipher

SubBytes()

Рис2.В процедуре SubBytes, каждый байт в state заменяется соответствующим элементом в фиксированной 8-битной таблице поиска, S; bij = S(aij).

Процедура SubBytes() обрабатывает каждый байт состояния, независимо производя нелинейную замену байтов используя таблицу замен(S-box). Такая операция обеспечивает нелинейность алгоритма шифрования. Построение S-box состоит из двух шагов. Во-первых, производится взятие обратного числа в GF{}. Во-вторых, к каждому байту b из которых состоит S-box применяется следующая операция: , где , и где bi есть i-ый бит b, а ci — i-ый бит c = {63} или {01100011}. Таким образом, обеспечивается защита от атак, основанных на простых алгебраических свойствах.

ShiftRows()

Рис3.В процедуре ShiftRows, байты в каждой строке state циклически сдвигаются влево. Размер смещения байтов каждой строки зависит от её номера

.

ShiftRows работает со строками State. При этой трансформации строки состояния циклически сдвигаются на r байт по горизонтали, в зависимости от номера строки. Для нулевой строки r = 0, для первой строки r = 1Б и тд.. Таким образом каждая колонка выходного состояния после применения процедуры ShiftRows состоит из байтов из каждой колонки начального состояния. Для алгоритма Rijndael паттерн смещения строк для 128 и 192-ух битных строк одинаков. Однако для блока размером 256 бит отличается от предыдущих тем, что 2, 3, и 4-е строки смещаются на 1, 3, и 4 байта соответственно.

MixColumns()

Рис4.В процедуре MixColumns, каждая колонка состояния перемножается с фиксированным многочленом c(x).

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

AddRoundKey()

Рис5.В процедуре AddRoundKey, каждый байт состояния объединяется с RoundKey используя XOR operation (⊕).

В процедуре AddRoundKey, RoundKey каждого раунда объединяется со State. Для каждого раунда Roundkey получается из CipherKey используя процедуру KeyExpansion; каждый RoundKey такого же размера, что и State. Процедура производит побитовый XOR каждого байта State с каждым байтом RoundKey .

KeyExpansion()

AES алгоритм, используя процедуру KeyExpansion() и подавая в неё Cipher Key, K, получает ключи для всех раундов. Всего она получает Nb*(Nr + 1) слов: изначально для алгоритма требуется набор из Nb слов, и каждому из Nr раундов требуется Nb ключевых набора данных. Полученный массив ключей для раундов обозначается как w[i], . Алгоритм KeyExpansion() показан в псевдо коде на рис.6

Функция SubWord() берет четырёхбайтовое входное слово и применяет S-box к каждому из четырёх байтов то, что получилось подается на выход. На вход RotWord() подается слово которое она циклически переставляет и возвращает . Массив слов, слов постоянный для данного раунда, Rcon[i], содержит значения , где x = {02}, а является степенью x в GF{2^8} (i начинается с 1).

Из рисунка можно увидеть, что первые Nk слов расширенного ключа заполненны Cipher Key. В каждое последующее слово, w[i], кладётся значение полученное при операции XOR w[i-1] и w[i — Nk], те XOR’а предыдущего и на Nk позиций раньше слов. Для слов, позиция которых кратна Nk, перед XOR’ом к w[i-1] применяется трасформация, за которой следует XOR с константой раунда Rcon[i]. Указанная выше трансформация состоит из циклического сдвига байтов в слове(RotWord()), за которой следует процедура SubWord() — то же самое, что и SubBytes(), только входные и входные данные будут размером в слово.

Важно заметить, что процедура KeyExpansion() для 256 битного Cipher Key немного отличается от тех, которые применяются для 128 и 192 битных шифроключей. Если Nk = 8 и i — 4 кратно Nk, то SubWord() применяется к w[i-1] до XOR’а.


KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)
begin
    word temp
    i = 0;
    
    while ( i < Nk)
        w[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3])
        i = i+1
    end while
    
    i = Nk

    while ( i < Nb * (Nr+1))
        temp = w[i-1]
        if (i mod Nk = 0)
            temp = SubWord(RotWord(temp)) xor Rcon[i/Nk]
        else if (Nk > 6 and i mod Nk = 4)
            temp = SubWord(temp)
        end if
        w[i] = w[i-Nk] xor temp
        i = i + 1
    end while
end

Рис.6 Псевдокод для Key Expansion

Расшифрование


InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
begin
    byte state[4,Nb]
    
    state = in

    AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])

    for round = Nr-1 step -1 downto 1
        InvShiftRows(state)
        InvSubBytes(state)
        InvAddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
        InvMixColumns(state)
    end for

    InvShiftRows(state)
    InvSubBytes(state)
    InvAddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])

    out = state
end

Рис.7 Псевдокод для Inverse Cipher

Варианты алгоритма

На базе алгоритма Rijndael, лежащего в основе AES, реализованы альтернативные криптоалгоритмы. Среди наиболее известных — участники конкурса Nessie: Anubis на инволюциях, автором которого является Винсент Рэймен и усиленный вариант шифра — Grand Cru Йохана Борста.

Криптостойкость

В июне 2003 года Агентство национальной безопасности США постановило, что шифр AES является достаточно надёжным, чтобы использовать его для защиты сведений, составляющих государственную тайну (англ. classified information). Вплоть до уровня SECRET было разрешено использовать ключи длиной 128 бит, для уровеня TOP SECRET требовались ключи длиной 192 и 256 бит[4].

XSL-атака

В отличие от большинства других шифров AES имеет простое математическое описание. Это беспокоило в том числе и Нейлса Фергюсона, который в своей работе отметил, что безопасность шифра основывается на новом непроверенном предположении о сложности решения определённых видов уравнений (англ. «The security of Rijndael depends on a new and untested hardness assumption: it is computationally infeasible to solve equations of this type»)[5][6], а также Брюса Шнайера, который написал в совместной с Нейлсом книге:

We have one criticism of AES: we don't quite trust the security…What concerns us the most about AES is its simple algebraic structure… No other block cipher we know of has such a simple algebraic representation. We have no idea whether this leads to an attack or not, but not knowing is reason enough to be skeptical about the use of AES

Niels Ferguson, Bruce Schneier Practical Cryptography — 2003 — pp. 56–57

Nicolas Courtois и Josef Pieprzyk в 2002 опубликовали статью, в которой описали теоретическую атаку, названную ими XSL-атакой (англ. eXtended Sparse Linearization), которая могла бы позволить вскрыть шифры AES и Serpent[7][8]. Тем не менее, результаты работы не всеми были восприняты оптимистично:

I believe that the Courtois-Pieprzyk work is flawed. They overcount the number of linearly independent equations. The result is that they do not in fact have enough linear equations to solve the system, and the method does not break Rijndael…The method has some merit, and is worth investigating, but it does not break Rijndael as it stands.

На странице, посвящённой обсуждению конкурса NESSIE в конце 2002 года один из авторов шифра, Винсент Рэймен, заявил, что XSL-атака является всего-лишь мечтой (англ. The XSL attack is not an attack. It is a dream) (данная точка зрения позже была повторена в 2004 году на 4-й конференции AES в Бонне). На это Courtois ответил, что данная мечта может стать для автора AES кошмаром (англ. It may also be a very bad dream and turn into a nightmare)[9].

В 2003 году Sean Murphy и Matt Robshaw опубликовали работу, в которой, в предположении что результаты Courtois и Pieprzyk верны, обосновали возможность атаки на алгоритм AES, сокращающей количество операций для взлома с 2128 до 2100. Однако на на 4-й конференции AES Toli и Zanoni показали, что работа Мёрфи и Робшава неверна[10]. Позже, в 2007 году, Chu-Wee Lim и Khoongming Khoo показали, что данная атака не может работать в том виде, как она была описана[11].

Атака по сторонним каналам

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

В апреле 2005 года Daniel J. Bernstein опубликовал работу с описанием атаки, использующей для взлома информацию о времени выполнения каждой операции шифрования[12]. Данная атака потребовала более 200 миллионов выбранных шифротекстов для нахождения ключа[13].

В октябре 2005 года Даг Арне Освик, Ади Шамир и Эран Трумер представили работу с описанием нескольких атак, использующих время выполнения операций для для нахождения ключа. Одна из представленных атак получала ключ всего-лишь после 800 операций шифрования. Атака требовала от криптоаналитика возможности запускать программы на той же системе, где выполнялось шифрование[14].

В декабре 2009 года была опубликована работа, в которой использование дифференциального анализа ошибок (англ. ) позволило восстановить ключ за 232 операций[15].

См. также

Примечания

  1. http://csrc.nist.gov/CryptoToolkit/aes/pre-round1/aes_9701.txt
  2. NIST Error Page
  3. Bounce to index.html
  4. National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information (англ.). Committee on National Security Systems (июнь 2003). Дата обращения: 27 октября 2010.
  5. James McLaughlin. The XSL controversy // A survey of block cipher cryptanalysis techniques. — preprint. — York: University of York, 2009.
  6. Niels Ferguson, Richard Schroeppel, and Doug Whiting. A simple algebraic representation of Rijndael (англ.) // Selected Areas in Cryptography, Proc. SAC 2001, Lecture Notes in Computer Science #2259. — Springer Verlag, 2001. — P. 103–111.
  7. Bruce Schneier. Crypto-Gram Newsletter (англ.). Schneier on Security (15 сентября 2002). Дата обращения: 27 октября 2010.
  8. Nicolas Courtois, Josef Pieprzyk. Cryptanalysis of Block Ciphers with Overdefined Systems of Equations (англ.) // Advances in Cryptology — ASIACRYPT 2002 8th International Conference on the Theory Application of Cryptology and Information Security Queenstown, New Zealand, December 1–5, 2002 Proceedings. Lecture Notes in Computer Science (2501). — Springer, 2002. — P. 267—287. — doi:10.1007/3-540-36178-2.
  9. NESSIE Discussion Forum
  10. Ilia Toli, Alberto Zanoni. An Algebraic Interpretation of AES-128 (англ.) // Proc. of AES Conference. — 2005. — Vol. 2005. — P. 84-97. — doi:10.1007/11506447_8.
  11. Chu-wee Lim, Khoongming Khoo. An Analysis of XSL Applied to BES (англ.) // Fast Software Encryption. — Heidelberg: Springer Berlin / Heidelberg, 2007. — Vol. 4593. — P. 242-253. — doi:10.1007/978-3-540-74619-5_16.
  12. http://cr.yp.to/papers.html#cachetiming
  13. http://www.schneier.com/blog/archives/2005/05/aes_timing_atta_1.html
  14. Dag Arne Osvik; Adi Shamir and Eran Tromer (2005-11-20) (PDF). Cache Attacks and Countermeasures: the Case of AES. Retrieved 2008-11-02
  15. Dhiman Saha, Debdeep Mukhopadhyay, Dipanwita RoyChowdhury (PDF). A Diagonal Fault Attack on the Advanced Encryption Standard. Retrieved 2009-12-08

Ссылки