В 80-х годах в США был принят стандарт симметричного криптоалгоритма для внутреннего применения DES (Data Encryption Standard), который получил достаточно широкое распространение в свое время. Однако на текущий момент этот стандарт полностью неприемлем для использования по двум причинам: 1) длина его ключа составляет 56 бит, что чрезвычайно мало на современном этапе развития ЭВМ.
2) при разработке алгоритм был ориентирован на аппаратную реализацию, то есть содержал операции, выполняемые на микропроцессорах за неприемлимо большое время (например, такие как перестановка бит внутри машинного слова по определенной схеме).
Все это сподвигло Американский институт стандартизации NIST – National Institute of Standards & Technology на объявление в 1997 году конкурса на новый стандарт симметричного криптоалгоритма. К разработке были подключены самые крупные центры по криптологии со всего мира. Тем самым, победитель этого соревнования, названного AES – Advanced Encryption Standard, станет де-факто мировым криптостандартом на ближайшие 10-20 лет.
Требования, предъявленные к кандидитам на AES в 1998 году, были предельно просты:
1) алгоритм должен быть симметричным,
2) алгоритм должен быть блочным шифром,
3) алгоритм должен иметь длину блока 128 бит, и поддерживать три длины ключа : 128, 192 и 256 бит.
Дополнительно кандидатам рекомендовалось:
1) использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах),
2) ориентироваться на 32-разрядные процессоры,
3) не усложнять без необходимости структуру шифра для того, чтобы все заинтересованные стороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма и убедиться, что в нем не заложено каких-либо недокументированных возможностей.
Исследователи выбрали 5 лучших представителей, прошедших в "финал" соревнования (указана страна и быстроидействие)
1. MARS (разработка корпорации IBM, основанная на классической сети Фейштеля и многочисленных математических операциях); US, 8 Mb/s;
2. RC6 (R.Rivest & Co, модификация широко известного блочного шифра RC5. Использует только основные математические преобразования, битовые сдвиги и, в качестве функции перемешивания); US, 12 Mb/s;
3. Serpent (Universities, использует только операции табличных подстановок, исключающего "ИЛИ" и битовых сдвигов в тщательно подобранной очередности); BE, 7 Mb/s;
4. TwoFish (B.Schneier & Co, сложная в реализации разработка, воплотившая много интересных идей из алгоритма предшественника BlowFish); IS, UK, NO, 2 Mb/s;
5. Rijndael (V.Rijmen & J.Daemen, реализован не по принципу сети Фейштеля, а имеющий надежную математическую базу преобразований. Алгоритм представляет каждый блок кодируемых данных в виде двумерного массива байт в зависимости от установленной длины блока. Далее на соответствующих этапах преобразования производятся либо над независимыми столбцами, либо над независимыми строками, либо вообще над отдельными байтами в таблице). US, 11Mb/s. – 2 октября 2000 года NIST объявил его победителем.
С этого момента с алгоритма-победителя сняты все патентные ограничения – его можно будет использовать в любой криптопрограмме без отчисления каких-либо средств создателю.