блок, вектор iнiцiалiзацii, який переда¦ться у вiдкритому виглядi разом iз зашифрованим текстом. Схема режиму CBC наведена на малюнку нижче.
Третiм режимом застосування алгоритму шифрування ¦ CFB (Cipher FeedBack - "шифрування з оберненим зв'язком"). Тут кожний блок зашифрованого тексту утворю¦ться шляхом додавання до блока вiдкритого тексту за модулем два результату шифрування попереднього утвореного блока. Вектор iнiцiалiзацii використову¦ться в якостi нульового зашифрованого блока. Схема режиму CFB наведена на малюнку нижче.
Iснують i iншi, менш поширенi режими застосування блочних алгоритмiв шифрування.
Схема побудови бiльшостi, якщо не всiх алгоритмiв шифрування ¦ такою, що основа процесу шифрування уявля¦ собою послiдовнiсть приблизно однакових перетворень, яка повторю¦ться декiлька iтерацiй. Бiльша кiлькiсть iтерацiй може пiдвищувати криптостiйкiсть, але все в основному залежить вiд перетворень, якi повторюються в iтерацiях.
Кiлькостi iтерацiй в симетричних алгоритмах шифрування, що розглядаються в цiй роботi, наведенi нижче.
DES | 16 iтерацiй
CAST | 16 iтерацiй
IDEA | 8 iтерацiй
TripleDES | 48 iтерацiй
В залежностi вiд кiлькостi iтерацiй, характеру перетворень, якi виконуються в симетричному алгоритмi шифрування, алгоритм може мати ту чи iншу швидкiсть роботи. Зрозумiло, не обов'язково, що алгоритм, який ма¦ меншу швидкiсть роботи, ¦ бiльш криптостiйким.
Порiвняльнi швидкостi роботи симетричних алгоритмiв шифрування, що розглядаються в данiй роботi, наведенi нижче.
Назва алгоритму | Час шифрування 1 MB | Швидкiсть шифрування (KB/с) | Сумарний час 1000 етапiв генерацii ключiв (мс)
DES | 48 629 | 172 | 519
CAST | 23 772 | 352 | 976
IDEA | 43 409 | 193 | 734
TripleDES | 160 807 | 52 | 1790
У цьому тестi перевiрялися версii алгоритмiв, написанi на мовi Java. Тестування здiйснювалося на комп'ютерi Pentium II / 266 MHz у середовищi ОС Linux.
Симетричнi алгоритми шифрування можуть бути рiзними за сво¦ю побудовою - iснують оригiнальнi алгоритми, що сильно вiдрiзняються вiд iнших, та iснують алгоритми, що мають одну з класичних схем побудови.
Одним iз розповсюджених класiв алгоритмiв шифрування ¦ так званi шифри Фейстеля.
В шифрi Фейстеля вiдкритий текст, що пiдляга¦ шифруванню, роздiля¦ться на двi половини. В iтерацiях застосову¦ться функцiя , першим аргументом якоi ¦ одна з цих половин, а другим аргументом - один iз пiдключiв , якi певним чином отримуються з ключа шифрування; генерацiя пiдключiв iз ключа шифрування, як правило, може бути виконана один раз перед власно процесом шифрування. Результат функцii дода¦ться за модулем 2 до iншоi половини, пiсля чого цi половини мiняються мiсцями. За таким шаблоном виконуються всi iтерацii, крiм останньоi, в якiй змiна мiсцями лiвоi та правоi половин не вiдбува¦ться (з метою спрощення процесу дешифрування).
Загальна схема шифру Фейстеля наведена нижче.
Головною властивiстю шифру Фейстеля ¦ те, що процеси шифрування та дешифрування ¦ структурно iдентичними. Рiзниця поляга¦ тiльки в тому, що при дешифруваннi пiдключi застосовуються в послiдовностi, оберненiй до тi¦i, що використовувалась у процесi шифрування.
Iз розглянутих у данiй роботi симетричних алгоритмiв шифрування алгоритм DES, вiдповiдно - TripleDES, а також CAST належать до класу шифрiв Фейстеля. В алгоритмi IDEA застосову¦ться iнша iдея для забезпечення оберненостi процесу шифрування.
В багатьох симетричних алгоритмах шифрування використову¦ться поняття S-комiрки (S-Box - Substitution Box - комiрка пiдстановки). S-комiрка розмiрнiстю уявля¦ собою таблицю розмiрнiстю , яка зада¦ вiдображення вхiдних бiтiв на вихiдних бiтiв. S-комiрка пiдставля¦ (замiщу¦) вхiдне значення на вихiдне значення таким чином, що будь-яка змiна у вхiдному значеннi призводить до хаотичноi змiни у вихiдному значеннi.
Взагалi кажучи, "iдеальний" блочний шифр (iз конкретним ключем) може бути представлений як S-комiрка, кiлькiсть вхiдних i вихiдних бiтiв якоi дорiвню¦ довжинi блока. Але оскiльки при прийнятнiй довжинi блока безпосередня практична побудова такоi S-комiрки неможлива, в сучасних блочних алгоритмах шифрування фактично використовуються рiзноманiтнi прийоми для iмiтацii цi¦i комiрки. При цьому, iнодi в алгоритмi шифрування можуть навiть взагалi не застосовуватись S-комiрки. Прикладом такого алгоритму ¦ IDEA; цей алгоритм побудований на принципi послiдовного застосування над даними, якi шифруються, операцiй iз рiзних математичних груп.
Розмiрнiсть i змiст S-комiрок, якi використовуються в алгоритмi, мають дуже високий вплив на його криптостiйкiсть, в тому числi на його стiйкiсть до лiнiйних i диференцiальних атак.
Диференцiальна атака поляга¦ в аналiзi змiн мiж зашифрованими текстами, отриманими шляхом шифруванням двох схожих вiдкритих текстiв однаковим (але невiдомим) ключем. Лiнiйна атака поляга¦ в лiнiйнiй апроксимацii поведiнки алгоритму шифрування на основi достатньоi кiлькостi пар вiдкритих текстiв i вiдповiдних iм зашифрованих текстiв.
Дослiдження ступеня надiйностi S-комiрки здiйсню¦ться шляхом обчислення ii нелiнiйностi. Нелiнiйнiсть булевоi функцii ¦ кiлькiстю бiтiв, якi повиннi змiнитися в таблицi iстинностi цi¦i функцii для того, щоб вона стала таблицею iстинностi найближчоi лiнiйноi булевоi функцii. Зрозумiло, що S-комiрка розмiрнiстю може бути представлена як набiр iз булевих функцiй, кожна з яких ма¦ аргументiв. Нелiнiйнiстю S-комiрки будемо вважати найменшу з нелiнiйностей булевих функцiй, якi вiдповiдають цiй S-комiрцi.
Iншою характеристикою S-комiрки, що також визнача¦ ii надiйнiсть, ¦ так звана таблиця розподiлу рiзниць. Перед тим, як дати означення таблицi розподiлу рiзниць, визначимо декiлька термiнiв. При додаваннi двох двiйкових значень за модулем 2, якщо бiти цих значень, що знаходяться на однакових позицiях, ¦ однаковими, то вiдповiдний бiт результату прийма¦ значення 0, а якщо рiзними, то значення 1. Вхiдною рiзницею S-комiрки будемо називати результат додавання за модулем 2 двох вхiдних значень цi¦i S-комiрки. Вiдповiдно, вихiдною рiзницею S-комiрки будемо називати результат додавання за модулем 2 двох вихiдних значень цi¦i S-комiрки.
Нехай X - вхiдна рiзниця, Y - вихiдна рiзниця. Тодi якщо для деякоi