3934

Фіналіст AES – шифр Serpent

Реферат

Информатика, кибернетика и программирование

Тема доповіді – Фіналіст AES – шифр Serpent. План Загальні відомості про конкурс AES. Основні відомості про шифр Serpent Структура алгоритму Розшифрування та розширення ключа. Алгоритм вибору підключів і...

Украинкский

2012-11-10

134.5 KB

7 чел.

Тема доповіді – Фіналіст AES – шифр Serpent. 

План

  1.  Загальні відомості про конкурс AES.
  2.  Основні відомості про шифр Serpent
  3.  Структура алгоритму
    1.  Розшифрування та розширення ключа.
    2.  Алгоритм вибору підключів із ключа.
    3.  Перестановка, S-box, лінійне перетворення.
    4.  Ефективна реалізація

Список використаних джерел

Контрольні питання до теми

Загальні відомості про конкурс AES

 У 80-х роках у США був прийнятий стандарт симетричного криптоалгоритму для внутрішнього застосування DES (Data Encryption Standard), який отримав досить широке поширення в свій час. Проте на даний момент цей стандарт повністю неприйнятний для використання з двох причин: основна - довжина його ключа 56 біт, що надзвичайно мало на сучасному етапі розвитку ЕОМ,  другорядна - при розробці алгоритм був орієнтований на апаратну реалізацію, тобто містив операції, що виконуються на мікропроцесорах за неприйнятним великий час (наприклад, такі як перестановка біт всередині машинного слова за певною схемою).

Все це спонукало Американський інститут стандартизації NIST - National Institute of Standards & Technology на оголошення в 1997 році конкурсу на новий стандарт симетричного криптоалгоритму. Цього разу вже були враховані основні недоліки шифру-попередника, а до розробки були підключені найбільші центри з криптології з усього світу. Тим самим, переможець цього змагання, названого AES - Advanced Encryption Standard, стане де-факто світовим крипттостандартом на найближчі 10-20 років.

Вимоги, пред'явлені до кандидитом на AES в 1998 році, були гранично прості: алгоритм повинен бути симетричним, алгоритм повинен бути блоковим шифром, алгоритм повинен мати довжину блоку 128 біт, і підтримувати три довжини ключа: 128, 192 і 256 біт. Також були додаткові вимоги: використовувати операції, легко реалізовані як апаратно (у мікрочіпі), так і програмно (на персональних комп'ютерах і серверах), орієнтуватися на 32-розрядні процесори, не ускладнювати без необхідності структуру шифру для того, щоб всі зацікавлені сторони були в змозі самостійно провести незалежний криптоаналіз алгоритму і переконатися, що в ньому не закладено будь-яких незадокументованих можливостей. На подальшому розвитку було обрано п’ять фіналістів у їх число і війшов шифр Serpent, Mars, TwoFish, RC6, Rijndael [слайд 2].

 2 жовтня 2000 NIST оголосив про свій вибір - переможцем конкурсу став бельгійський алгоритм RIJNDAEL.

 

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

 Головна родзинка шифру SERPENT в тому, що всі три його автора - це "аси криптоаналізу", найбільш відомі розкриттям шифрів інших криптографів. Ізраїльський дослідник Елі Біхам - один з творців диференціального криптоаналізу - техніки, що лежить в основі більшості сучасних методів розкриття блокових шифрів. Данець Ларс Кнудсен вже згадувався в цьому огляді у зв'язку з шифром угоди (Кнудсен - єдиний криптограф, що фігурує одразу в двох проектах). Англієць Росс Андерсон з Кембриджського університету з початку 90-х років відомий своїми неординарними криптоаналітичних роботами [2].

Алгоритм був одним з фіналістів 2-го етапу конкурсу AES. Як і інші алгоритми, що беруть участь у конкурсі AES, Serpent має розмір блоку 128 біт і можливe довжинe ключа 128, 192 або 256 біт. Алгоритм представляє собою 32-раундову SP-мережу, що працює з блоком з чотирьох 32-бітових слів. Але Serpent був розроблений так, що всі операції можуть бути виконані паралельно, використовуючи 32 1-бітових потоки.

При розробці Serpent використовувався більш консервативний підхід до безпеки, ніж у інших фіналістів AES, проектувальники шифру вважали, що 16 раундів достатньо, щоб протистояти відомим видам криптоаналізу, але збільшили число раундів до 32, щоб алгоритм міг краще протистояти ще не відомим методам криптоаналізу. Ставши фіналістом конкурсу AES, Serpent алгоритм в результаті голосування зайняв 2 місце.

Особливостями алгоритму є: Алгоритм оптимізовано для програмної реалізації в техніці "бітових зрізів" (bitslice) і має ряд обумовлених цим фактом особливостей: у ньому використовуються початкова та зворотна їй кінцева бітові перестановки, які не впливають на стійкість шифру і призначені для оптимізації його реалізації. При реалізації в техніці "бітових зрізів" виконання цих перестановок в явному вигляді не потрібно, при традиційній реалізації - потрібно. Крім того, з тієї ж самої причини в алгоритмі використовуються вузли замін малого розміру (4 на 4 біта), тому що в рамках зазначеної техніки вони реалізуються у вигляді серії логічних операцій над даними і при більшому розмірі це стає важко реалізованим [3].

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

Алгоритм являє собою мережу Фейштеля для чотирьох гілок змішаного типу: 2 парні гілки змінюють сумісності значення непарних, потім міняються місцями. Як криптоперетворення використовуються тільки  виключне "АБО", табличні підстановки і бітові зрушення. Алгоритм складається з 32 раундів. Самі раунди складені таким чином, що додавання до гілками матеріалу ключа на першому і останньому раундах утворює вхідне і вихідне забілювання [4].

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

  Serpent шифрує відкритий текст P довжиною 128 біт в шифротекст C довжиною 128 біт за 32 раунди за допомогою 33 підключений K_ (0), ..., K_ (32), довжиною 128 біт. Довжина використовуваного ключа може приймати різні значення, але для конкретики зафіксуємо їх довжину у 128, 192 або 256 біт. Короткі ключі довжиною менше 256 біт доповнюються до повної довжини в 256 біт.

Шифрування складається з наступних основних кроків:

Початкова перестановка;

32 раунди, кожен з яких складається з операції змішування з 128-бітовим ключем (побітове логічне що виключає «або»), таблична заміна (S-box) і лінійне перетворення. В останньому раунді лінійне перетворення замінюється додатковим накладанням ключа;

Кінцева перестановка;

Початкова і кінцева перестановки не мають будь-якої криптографічного значущості. Вони використовуються для спрощення оптимізованої реалізації алгоритму і підвищення обчислювальної ефективності.

Рівняння структури алгоритму:



,де

,

де  — це застосування таблиці підстановки  32 рази паралельно и  — лінійне перетворення.

Рис 1. Графічне зображення алгоритму [слайд 3]

3.1 Розшифрування та розширення ключа

Розшифрування відрізняється від шифрування тільки тим, що повинні бути використані інверсні (зворотні) таблиці замін, а також зворотні лінійні перетворення, і ключі подаються у зворотному порядку. Як і інші алгоритми, що брали участь у конкурсі AES, Serpent має можливі довжини ключа 128, 192 або 256 біт. "Неповний» ключ довжиною менше 256 біт доповнюється за наступним правилом: додається одиничний біт праворуч, за ним іде стільки нульових бітів, щоб довжина ключа стала дорівнювати 256 бітам.

3.2 Алгоритм вибору підключів із ключа

Спочату при необхідності ключ доповнюється до 256 біт і перетворюється в 33 підключа  довжиною 128 біт наступним чином:

Оригінальний ключ представляється у вигляді 8 32-бітових слів w − 8,...,w − 1 для обчислення проміжного ключа за правилом: , де  — це дробова частина золотого січення або 0x9e3779b9.

Раундовий ключі обчислюються з проміжних ключів використанням таблиць підстановок наступним чином:

Проміжні 32-бітові величини  перенумеровуються і виходять 128-бітові підключі:

При стандартному описі алгоритму ми повинні застосувати початкову перестановку IP  до раундового ключа, щоб розташувати біти ключа в належному порядку, тобто .

3.3 Перестановка, S-box, лінійне перетворення.

Початкова перестановка IP, задається наступною таблицею, де вказується позиція, на яку перейде відповідний біт (наприклад, біт 1 перейде на 32 позицію).

Рис 2. Таблиця початої перестановки [слайд 4]

В алгоритмі Serpent таблиці замін є 4-бітовими перестановками з властивостями стійкості до диференціального криптоаналізу, до лінійного криптоаналізу і тією  властивістю, що порядок вихідних біт, як функції вхідних повинен бути максимальний, тобто бути рівним 3. Таблиця підстановок генерується з відомих і добре вивчених таблиць для алгоритму DES в ітераційному процесі, поки не будуть отримані бажані диференціальні й лінійні властивості. Таким чином, створюється 8 таблиць підстановок.

Рис. 3 Таблиця підстановки [слайд 4]

Лінійне перетворення LT  задається наступною таблицею, де біти перераховані від 0 до 127 (наприклад, вихідний 2 біт утворений 2, 9, 15, 30, 76, 84, 126 бітами, складеними за модулем 2). У кожному рядку описується 4 вихідних бита, які разом складають вхідні дані на одну таблицю замін у наступному раунді. Варто зазначити, що даний набір являє собою таблицю IP (LT (FP (x))), де LT  і є те лінійне перетворення.

Ця перестановка є зворотною до початкової, тобто і задається наступною таблицею:

Рис. 4  Таблиця початої перестановки [слайд 4]

3.4 Ефективна реалізація

Бажання авторів зробити алгоритм саме таким, яким він є стає зрозумілим при розгляді його ефективної низькорівневою реалізації. Serpent був створений таким чином, щоб всі операції в процесі шифрування й розшифрування одного блоку могли бути виконані паралельно в 32 потоку. До того ж низькорівневе опис алгоритму набагато простіше, ніж стандартне опис. Ніяких початкових і кінцевих перестановок не потрібно. Шифрування складається з 32 раундів. Відкритий текст є першими проміжними даними . Після закінчення 32 раунду, i кожен раунд складається з:

1.Змішування з ключем. Проводиться побітове виключне АБО проміжних даних , з ключем довжиною 128 біт;

2. Застосування таблиць підстановок. Вхідні дані довжиною 128 біт поділяються на 4 слова по 32 біта. Таблиця підстановок, реалізована послідовністю логічних операцій (як якщо це було б реалізовано апаратно), застосовується до цих 4 слів. У результаті виходить 4 вихідних слова. Таким чином, центральний процесор виконує підстановку по 32 копій таблиці одночасно;

3.Лінійне перетворення. 32-бітові слова перетворюються наступним чином







                             [слайд 5]




В останньому раунді це лінійне перетворення замінено додатковим змішуванням з ключем

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

Список використаних джерел

  1.  http://kiev-security.org.ua/box/1/56.shtml
  2.  http://kiwibyrd.chat.ru/aes/aes1.htm
  3.  http://www.enlight.ru/crypto/algorithms/serpent/serpent00.htm
  4.  книжка лекції
  5.  Article “Serpent: A Proposal for the Advanced Encryption Standard” - . Ross Anderson, Eli Biham, Lars Knudsen

Контрольні питання позавтра придумаю


Рекомендую одразу поставити собі
MathType6.6 (є у файлообміннику курсу і набирати формули а не картинки, на лекції покажу як правильно вставляти в wiki.tstu.edu.ua)


 

А также другие работы, которые могут Вас заинтересовать

39412. Проект робіт при оновленні топографічних карт масштабу 1:10000 515 KB
  Київський Державний Університет Будівництва та Архітектури КУРСОВИЙ ПРОЕКТ з дисципліни Організації управління і планування топографогеодезичного виробництва на тему: Проект робіт при оновленні топографічних карт масштабу 1:10000€ Виконала:...
39413. Реализация и исследование быстрого алгоритма двумерного вещественного ДПФ по основанию 4 представлением данных в гиперкомплексной алгебре 294.73 KB
  Заданный алгоритм был реализован программно с помощью технологии Microsoft. NET Framework на языке программирования C++. Написанное приложение состоит из двух сборок: библиотеки классов FFT, содержащей все необходимое для вычисления ДПФ по формуле и БПФ.
39414. Реализация и исследование быстрого алгоритма двумерного вещественного ДПФ с расщеплением основания с представлением данных в алгебре кватернионов 308.5 KB
  ЗАДАНИЕ Реализация и исследование быстрого алгоритма двумерного вещественного ДПФ с расщеплением основания с представлением данных в алгебре кватернионов. Текст программы 1 Постановка задачи Нахождение спектра квадратной матрицы размера с помощью быстрого алгоритма двумерного вещественного ДПФ с расщеплением основания с представлением данных в алгебре кватернионов. Тестирование полученной реализации алгоритма ее исследование и сравнение с обычным алгоритмом двумерного ДПФ. Рассмотрим...
39415. РАСЧЕТ И КОНСТРУИРОВАНИЕ ОДНОСТУПЕНЧАТОГО ЗУБЧАТОГО РЕДУКТОРА 4.1 MB
  Проектный расчёт закрытой цилиндрической зубчатой передачи . Геометрический расчет закрытой цилиндрической передачи.5 Проверочный расчет закрытой цилиндрической передачи . Расчет открытой цилиндрической зубчатой передачи .
39416. Детали машин и основы конструирования 1007.43 KB
  2 РАСЧЕТ КРУТЯЩИХ МОМЕНТОВ НА ВАЛАХ И ЧАСТОТ ВРАЩЕНИЯ Быстроходный вал: n1б=nа=1455 об мин. 3 РАСЧЕТ ЗУБЧАТЫХ ПЕРЕДАЧ 3.2 Проверочный расчет на прочность закрытой цилиндрической зубчатой передачи 3.170; t – расчетный срок службы передачи t =12000 ч; n – частота вращения вала; Nk1 = 60 ∙ с ∙ n1 ∙ t =60 ∙ 1 ∙ 28088 ∙ 12000=2022∙106 циклов; Nk2 = 60 ∙ с ∙ n2 ∙ t =60 ∙ 1∙ 70 ∙ 12000=504∙106 циклов.
39417. Устройство сбора данных 368.5 KB
  В радиотехнических системах и в технике связи УСД используются для обработки сигналов функционального контроля каналов связи диагностирования состояния аппаратуры. Имеется F аналоговых каналов. Необходимо опрашивая их согласно заданной последовательности получаемые из каналов аналоговые величины с помощью АЦП преобразовывать в цифровую форму двоичные слова стандартной длины 1 байт = 8 бит и помещать в последовательные ячейки некоторой области ЗУ начиная с ячейки имеющей адрес G. Разработать системы формирования адресов ячеек ОЗУ и...
39418. Система передачи 262.5 KB
  В состав аппаратуры ИКМ120У входят: аналогоцифровое оборудование формирования стандартных потоков АЦО оборудование вторичного временного группообразования ВВГ оконечное оборудование линейного тракта ОЛТ необслуживаемые регенерационные пункты НРП комплекс измерительного оборудования. Максимальное число НРП между ОРП 48 Максимальное число НРП в полу секции ДП 24 1 1 1 0 0 1 1 0 1с 2с 3с 4с 1с 1с 2с 3с 4с 1с 2с 3с 4с 1с 2с 3с 4с 1с 2с 3с 4с 1с 2с 3с 4с 1с 2с 3с 4с 1с...
39419. Составление программы тренировки силовой подготовки для юношей начинающих заниматься силовым троеборьем 365 KB
  В тяжелоатлетическом спорте, как и в любом виде спорта, для достижения результатов мирового класса требуется многолетняя, в высшей степени целенаправленная, с максимальной отдачей сил подготовка, начиная с детского возраста
39420. Ортопедическая стоматология 471.5 KB
  Роль учёных бывшего СССР и РБ в развитии ортопедической стоматологии и совершенствование оказания ортопедической помощи населению. Полное отсутствие коронки зуба. Клиника, функциональные нарушения, методы протезирования. Восстановительные штифтовые конструкции, их разновидности. Показания к применению штифтовых зубов по Ричмонду, по Ильиной-Маркосян, простого штифтового зуба, культевой штифтовой вкладки.