днішній день така довжина ключа недостатня, оскільки допускає успішне застосування атак типу Brute Force. Альтернативою DES можна вважати потрійний DES. Існує небезпека, що ці S-boxes конструювалися таким чином, що криптоаналіз можливий для зломщика, який знає слабкі місця S-boxes. Протягом багатьох років обговорювалося як стандартне, так і несподівана поведінка S-boxes, але все-таки нікому не вдалося виявити їх фатально слабкі місця.
Все це призвело до того, що в У. Тачмен запропонував ідею шифрувати блок відкритого тексту P три рази за допомогою двох ключів K1 і K2
С=ЕK1 (DK2 (EK2 (P))) (2.2)
Тобто блок відкритого тексту Р спочатку шифрується ключем K1, потім розшифрувавши ключем K2 і остаточно шифрується ключем K1. [1]
Це дозволило вивести стійкість алгоритму на сучасний рівень.
Advanced Encryption Standard (AES) (Rijndael) Encryption Standard (AES), також відомий, як Rijndael симетричний алгоритм блочного шифрування (розмір блоку 128 біт, ключ 128/192/256 біт), фіналіст конкурсу AES , прийнятий як американського стандарту шифрування урядом США. Вибір був зроблений з розрахунком на повсюдне використання і активний аналіз алгоритму, як це було з його попередником, DES. Державний інститут стандартів і технологій (англ. National Institute of Standards and Technology, NIST) США опублікував попередню специфікацію AES 26 листопада 2001, після п'ятирічної підготовки. 26 травня 2002 AES був оголошений стандартом шифрування. Станом на 2006 рік AES є одним з найпоширеніших алгоритмів симетричного шифрування.
Цей алгоритм являє собою симетричний блоковий шифр, який працює з блоками даних довжиною 128 біт і використовує ключі довжиною 128, 192 і 256 біт (версії AES - 28; AES - 192 і AES - 256). Сам алгоритм може працювати і з іншими довжинами блоків даних і ключів, але ця можливість у стандарт не ввійшла.
Стан можна представити у вигляді прямокутного масиву байтів. Цей масив має 4 рядки, а число стовпців позначено як Nb і дорівнює довжині блоку, поділеній на 32.
Ключ шифрування також представлений у вигляді прямокутного масиву з чотирма рядками. Кількість стовпців позначено як Nk і дорівнює довжині ключа, поділеній на 32. Це показано на малюнку 1.
У деяких випадках ключ шифрування показаний як лінійний масив 4-байтових слів. Слова складаються з 4 байтів, які знаходяться в одному стовпці (при поданні у вигляді прямокутного масиву).
Рис. 2.7 Приклад представлення стану (Nb=6) і ключа шифрування (Nk=4)
Вхідні дані для шифру («відкритий текст», якщо використовується режим шифрування ECB) позначаються як байти стану в порядку a0, 0, a1, 0, a3, 0, a0, 1, a1, 1, a3, 1, a4, 1 ... Після завершення дії шифру вихідні дані виходять з байтів стану в тому ж порядку.
Число циклів позначено як Nr і залежить від значень Nb і Nk. Його приведено в Таблиці 2.1.
Таблиця № 2.1 Число циклів (Nr) як функція від довжини ключа і довжини блоку
циклової перетворення складається з чотирьох різних перетворень. На псевдо-Сі це виглядає наступним чином:
(State, RoundKey)
{(State);// Заміна байт (State);// Зсув рядків (State);// Заміс стовпців (State, RoundKey);// Додавання циклового ключа
}
Останній цикл...