Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОЗІ / Лекц_ї / Лекц_я 4.doc
Скачиваний:
42
Добавлен:
05.06.2015
Размер:
162.82 Кб
Скачать

Огляд фіналістів

Всі п'ять фіналістів є ітераційними блоковими алгоритмами шифрування: вони визначають перетворення, що повторюється певне число раз над блоком шифруємих або дешифрованих даних. Шифруємый блок даних називається plaintext; зашифрований plaintext називається ciphertext. Для дешифрування як оброблюваний блок даних використовується ciphertext. Кожний фіналіст також визначає метод створення серії ключів з вихідного ключа, називаний керуванням ключем. Отримані ключі називаються підключами. Функції раунду використовують як вхід різні підключи для конкретного блоку даних.

У кожного фіналіста перша й остання криптографічні операції є деякою формою перемішування підключей і блоку даних. Такі операції, використовувані на початковому кроці першого раунду й заключному кроці останнього раунду, називаються pre- і post-забілюванням (whitening) і можуть бути визначені окремо.

Існують також деякі інші технічні особливості фіналістів. Чотири фіналісти визначають таблиці підстановки, називані S-box: AxB-бітний S-box заміняє А вхідних біт на В вихідних біт. Три фіналісти визначають функції раунду, що є мережею Фейштеля. У класичній мережі Фейштеля одна половина блоку даних використовується для модифікації іншої половини блоку даних, потім половини міняються місцями. Два фіналісти не використовують мережу Фейштеля, у кожному раунді обробляють паралельно весь блок даних, застосовуючи підстановки й лінійні перетворення; таким чином, ці два фіналісти є прикладами алгоритмів, що використовують лінійно-підстановочні перетворення.

Далі розглянемо кожний з алгоритмів за абеткою.

MARS виконує послідовність перетворень у наступному порядку: додавання із ключем у якості pre-whitening, 8 раундів прямого перемішування без використання ключа, 8 раундів прямого перетворення з використанням ключа, 8 раундів зворотного перетворення з використанням ключа, 8 раундів зворотного перемішування без використання ключа й вирахування ключа в якості post-whitening. 16 раундів з використанням ключа називаються криптографічним ядром. Раунди без ключа використовують дві 8х16- бітних S-boxes і операції додавання й XOR. На додаток до цих елементів раунди із ключем використовують 32-бітне множення ключа, залежні від даних циклічні зрушення й додавання ключа. Як раунди перемішування, так і раунди ядра є раундами модифікованої мережі Фейштеля, у яких чверть блоку даних використовується для зміни інших трьох чвертей блоку даних. MARS запропонований корпорацією IBM.

RC6 є параметризуємим сімейством алгоритмів шифрування, заснованих на мережі Фейштеля; для AES було запропоновано використовувати 20 раундів. Функція раунду в RC6 задіє змінні циклічні зрушення, які визначаються квадратичною функцією від даних. Кожний раунд також включає множення по модулю 32, додавання, XOR і додавання із ключем. Додавання із ключем також використовується для pre- і pos-whitening. RC6 був запропонований лабораторією RSA.

Rijndael являє собою алгоритм, що використовує лінійно-підстановочні перетворення й складається з 10, 12 або 14 раундів залежно від довжини ключа. Блок даних, оброблюваний з використанням Rijndael, ділиться на масиви байтів, і кожна операція шифрування є байт-орієнтованою. Функція раунду Rijndael складається із чотирьох шарів. У першому шарі для кожного байта застосовується S-box розмірністю 8х8 біт. Другий і третій шари є лінійними перемішуваннями, у яких рядки розглядаються як зсуваємі масиви й стовпці перемішуються. У четвертому шарі виконується операція XOR байтів підключа й кожного байта масиву. В останньому раунді перемішування стовпців опущене. Rijndael запропонований Joan Daemen (Proton World International) і Vincent Rijmen (Katholieke Universiteit Leuven).

Serpent є алгоритмом, що використовує лінійно-підстановочні перетворення й складається з 32 раундів. Serpent також визначає некриптографічні початкову й заключну перестановки, які полегшують альтернативний режим реалізації, називаний bitslice. Функція раунду складається із трьох шарів: операція XOR із ключем, 32-х паралельне застосування одного з восьми фіксованих S-boxes і лінійне перетворення. В останньому раунді шар XOR із ключем замінений на лінійне перетворення. Serpent запропонований Ross Anderson (University of Cambridge), Eli Biham (Technion) і LarsKnudsen (University of California San Diego).

Twofish є мережею Фейштеля з 16 раундами. Мережа Фейштеля незначно модифікована з використанням однобітних ротацій. Функція раунду впливає на 32-бітні слова, використовуючи чотири залежних від ключа S-boxes, за якими ідуть фіксовані максимально вилучені окремі матриці в GF(28), перетворення псевдо-адамара й додавання ключа. Twofish був запропонований Bruce Schneier, John Kelsey і Niels Ferguson (Counterpane Internet Security, Inc.), Doug Whiting (Hi/fn, Inc.), David Wagner (University of California Berkley) і Chris Hall (Princeton University).

При оголошенні фіналістів представники NIST запропонували обговорити й прокоментувати алгоритми. На третій конференції кандидатів AES (AES3), що відбулася у квітні 2000 року, представлені коментарі були розглянуті. Період відкритого обговорення був завершений 15 травня 2000 року.

Соседние файлы в папке Лекц_ї