Перейти до вмісту

SAFER

Очікує на перевірку
Матеріал з Вікіпедії — вільної енциклопедії.
SAFER
РозробникиДжеймс Мессі
Уперше оприлюднений1993 рік
Раундів6-16
ТипМережа замін-перестановок

SÁFER (англ. Secure And Fast Encryption Routine — безпечна і швидка процедура шифрування) — в криптографії сімейство симетричних блокових криптоалгоритмів на основі мережі замін-перестановок. Основний внесок в розробку алгоритмів вніс Джеймс Мессі. Перший варіант шифру був створений і опублікований в 1993 році. Хоча алгоритми SAFER не отримали статусу стандартів в США або ЄС, вони знайшли дуже широке застосування. Зокрема, SAFER + використовується як основа протоколу аутентифікації в Bluetooth. Однак, в самому алгоритмі шифрування в Bluetooth цей алгоритм не використовується[1].

Незважаючи на те, що в назві алгоритму фігурує слово «fast» (швидкий), за сучасними мірками алгоритми сімейства SAFER є досить повільними.

З точки зору криптостойкости навіть найперша версія алгоритму SAFER K-64 є абсолютно стійкою до диференціального криптоаналізу. Останній алгоритм сімейства — SAFER++, будучи значно модифікованим з урахуванням безлічі атак, здійснених на більш ранні версії алгоритму, став ще більш стійким. В даний час ніяких реально здійсненних атак на алгоритм, не знайдено[1].

З огляду на те, наскільки далеко просунулися алгоритми SAFER за час свого існування — від SAFER K-64 до SAFER++, можна припустити, що на цьому розвиток цих алгоритмів не закінчений[2].

SAFER K-64

[ред. | ред. код]

Алгоритм шифрування

[ред. | ред. код]
Схема шифрування одного раунду алгоритмом SAFER K-64

Довжина блоку, що шифрується, і довжина ключа дорівнюють 64 бітам. Алгоритм є ітеративним блоковим шифром, тобто одна й та сама функція шифрування послідовно застосовується до вхідного блоку кілька разів, при цьому на кожному етапі використовуються різні ключі. У кожному раунді шифрування та дешифрування беруть участь два 64-бітових ключа.

Схему шифрування одного раунду алгоритму подано на схемі. Блок даних подається у вигляді 8-байтового масиву (байти нумеруються зліва направо від 1 до 8). Алгоритм є підстановочно-перестановочною мережею, у кожному раунді якої виконуються такі перетворення:

  1. На дані накладається 8-байтний фрагмент розширеного ключа , де - номер поточного раунду. Раунди нумеруються починаючи з 1. Байти ключа № 1, 4, 5 та 8 накладаються на аналогічні байти даних за допомогою побітової логічної операції «або» (XOR); для накладення решти байтів (№ 2, 3, 6 та 7) ключа використовується операція додавання за модулем 256.
  2. Байти даних № 1, 4, 5 і 8 обробляються наступною операцією (у схемі позначена як Е): , де – вхідне значення, а – вихідне значення цієї операції. Причому якщо (що відбувається за умови ), то його значення обнуляється: . Інші байти даних (№ 2, 3, 6 та 7) обробляються наступною операцією (у схемі позначена як L): причому якщо значення .

Примітки

[ред. | ред. код]
  1. а б Mukherjee S., Ganguly D., Naskar S. A New Generation Cryptographic Technique // IJCTESingapore: 2009. — Vol. 1, Iss. 2. — P. 284–287. — ISSN 1793-8201
  2. Панасенко, С. П. (2009). Алгоритмы шифрования. Специальный справочник. СПб.: БХВ-Петербург. с. 576. ISBN 978-5-9775-0319-8.