Відмінності між версіями «Шифр Serpent»

Рядок 41: Рядок 41:
  
  
== '''Основні відомості про шифр Serpent''' ==
+
== Основні відомості про шифр Serpent ==
 
Головна родзинка шифру SERPENT в тому, що всі три його автора - це "аси криптоаналізу", найбільш відомі розкриттям шифрів інших криптографів. Ізраїльський дослідник Елі Біхам - один з творців диференціального криптоаналізу - техніки, що лежить в основі більшості сучасних методів розкриття блокових шифрів. В даний час є професором ізраїльського технологічного інституту відділу інформатики. Починаючи з жовтня 2008 року, Biham є деканом факультету комп'ютерних наук, після роботи протягом двох років у якості головного аспірантури CS. Biham отримав докторський ступінь за винахід (публічно) диференціального криптоаналізу, працюючи разом із Аді Шамір.  
 
Головна родзинка шифру SERPENT в тому, що всі три його автора - це "аси криптоаналізу", найбільш відомі розкриттям шифрів інших криптографів. Ізраїльський дослідник Елі Біхам - один з творців диференціального криптоаналізу - техніки, що лежить в основі більшості сучасних методів розкриття блокових шифрів. В даний час є професором ізраїльського технологічного інституту відділу інформатики. Починаючи з жовтня 2008 року, Biham є деканом факультету комп'ютерних наук, після роботи протягом двох років у якості головного аспірантури CS. Biham отримав докторський ступінь за винахід (публічно) диференціального криптоаналізу, працюючи разом із Аді Шамір.  
  
Рядок 53: Рядок 53:
 
   
 
   
  
== '''Структура алгоритму''' ==
+
== Структура алгоритму ==
  
  

Версія за 19:27, 28 квітня 2010

Алгоритм блочного шифрування
Назва: Serpent
Розробник: Елі Біхам, Ларс Кнудсен, Росс Андерсон
Створений: 1999
Опублікований: 2000
Розмір ключа: 128, 192, 256
Розмір блоку: 128 біт
Число раундів: 32
Тип: симетричний, блоковий
{{{img}}}
Імя Марія
Прізвище Стадник
По-батькові Андріївна
Факультет ФІС
Група СН-41
Залікова книжка № ПК-06-064











Основні відомості про шифр Serpent

Головна родзинка шифру SERPENT в тому, що всі три його автора - це "аси криптоаналізу", найбільш відомі розкриттям шифрів інших криптографів. Ізраїльський дослідник Елі Біхам - один з творців диференціального криптоаналізу - техніки, що лежить в основі більшості сучасних методів розкриття блокових шифрів. В даний час є професором ізраїльського технологічного інституту відділу інформатики. Починаючи з жовтня 2008 року, Biham є деканом факультету комп'ютерних наук, після роботи протягом двох років у якості головного аспірантури CS. Biham отримав докторський ступінь за винахід (публічно) диференціального криптоаналізу, працюючи разом із Аді Шамір.

Данець Ларс Кнудсен вже згадувався в цьому огляді у зв'язку з шифром угоди (Кнудсен - єдиний криптограф, що фігурує одразу в двох проектах). Після декількох ранніх робіт в банківській сфері, Кнудсен вступив в Орхус-університет в 1984 вивчав математику та інформатику, отримавши ступінь магістра в 1992 і ступінь доктора філософії в 1994 році. У 1997-2001 він працював в Університеті Бергена, Норвегія. В даний час, Кнудсен є професором на кафедрі математики в технічному університеті Данії.

Англієць Росс Андерсон з Кембриджського університету з початку 90-х років відомий своїми неординарними криптоаналітичних роботами. Росс Джон Андерсон, (р. 1956), дослідник, письменник і консультант у галузі безпеки, техніки. Він також є професором в області безпеки інженерії в Кембріджському університеті комп'ютерної лабораторії, де він бере участь у групі безпеки. У 1978 році Андерсон закінчив зі ступенем бакалавра в області математики і природничих наук у Трініті-коледжі в Кембриджі, а потім отримав кваліфікацію в галузі комп'ютерної техніки. Він працював в авіаційній промисловості і банківської перш ніж перейти в 1992 році до Кембриджського університету, для роботи над докторською дисертацією під керівництвом Роджера Нідхам і розпочав свою кар'єру як вчений-дослідник. Він отримав докторську ступінь у 1995 році і став викладачем в тому ж році.

Serpent має розмір блоку 128 біт і можливу довжинe ключа 128, 192 або 256 біт. Алгоритм представляє собою 32-раундову SP-мережу, що працює з блоком з чотирьох 32-бітових слів. Але Serpent був розроблений так, що всі операції можуть бути виконані паралельно, використовуючи 32 1-бітових потоки. При розробці Serpent використовувався більш консервативний підхід до безпеки, ніж у інших фіналістів AES, проектувальники шифру вважали, що 16 раундів достатньо, щоб протистояти відомим видам криптоаналізу, але збільшили число раундів до 32, щоб алгоритм міг краще протистояти ще не відомим методам криптоаналізу. Ставши фіналістом конкурсу AES, Serpent алгоритм в результаті голосування зайняв 2 місце. Особливостями алгоритму є: алгоритм оптимізовано для програмної реалізації в техніці "бітових зрізів" (bitslice) і має ряд обумовлених цим фактом особливостей, а саме, у ньому використовуються початкова та зворотна їй кінцева бітові перестановки, які не впливають на стійкість шифру і призначені для оптимізації його реалізації. При реалізації в техніці "бітових зрізів" виконання цих перестановок в явному вигляді не потрібно, при традиційній реалізації - потрібно. Крім того, з тієї ж самої причини в алгоритмі використовуються вузли замін малого розміру (4 на 4 біта), тому що в рамках зазначеної техніки вони реалізуються у вигляді серії логічних операцій над даними і при більшому розмірі це стає важко реалізованим.


Структура алгоритму

Алгоритм являє собою мережу Фейштеля для чотирьох гілок змішаного типу: 2 парні гілки змінюють сумісності значення непарних, потім міняються місцями. Як криптоперетворення використовуються тільки виключне "АБО", табличні підстановки і бітові зрушення. Алгоритм складається з 32 раундів. Самі раунди складені таким чином, що додавання до гілок матеріалу ключа на першому і останньому раундах утворює вхідне і вихідне забілювання. Алгоритм Serpent являє собою SP-мережу, в якій весь блок даних довжиною 128 біт на кожному раунді розбивається на 4 слова довжиною по 32 біта. Всі значення, що використовуються для шифрування, представляються бітовими потоками. Індекси біт пробігають значення від 0 до 31 для 32-бітових слів, від 0 до 127 для 128-бітових блоків, від 0 до 255 для 256-бітових ключів і так далі. Для внутрішніх обчислень всі біти величин представлені в прямому порядку (little-endian).