Міністерство освіти і науки України
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Інститут телекомунікації, радіоелектроніки і електронної техніки
Кафедра Телекомунікацій
Лабораторна робота №6
з дисципліни : “Захист інформації”
на тему: “Дослідження розподілу ключів алгоритму шифрування IDEA”
Варіант №2
Виконав: студент групи ІМЗм - 1
Львів 2008
Мета роботи
Вивчити принцип утворення підблоків ключа для шифрування та дешифрування.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Аналіз розподілу ключів.
Як було сказано у попередньому розділі алгоритм IDEA використовує ключ заданий користувачем довжиною 128 бітів. Але в явному вигляді цей ключ не використовується, натомість в кожному циклі алгоритм вимагає по шість ключів та в кінцевій перестановці ще чотири. Всі ці ключі це підблоки по 16 бітів утворені з головного ключа довжиною 128 бітів. В сумі підблоків ключа є 52, незалежно чи для шифрування чи дешифрування. Різниця полягає лише у їх утворенні.
При шифруванні підблоки ключа утворюються дуже просто. Спочатку початковий ключ розбивається на вісім підблоків по 16 біт. Далі ключ зсувається циклічно на 25 бітів вліво та знову розбивається на підблоки. Операція продовжується поки підблоків ключа не буде 52. Для наглядності процес утворення підблоків ключа для шифрування показаний на рис.8. На рисунку показані номери бітів, що дозволяє простежити кожен біт головного ключа в кожному підблоці ключів шифрування.
Значно складніше з ключами для дешифрування. Спочатку утворюються ключі для шифрування, а потім по таблиці №1 або по формулі формулються підблоки ключа для дешифрування:
EMBED Equation.2
Як в таблиці так і формулі є багато незрозумілого, це мінуси перед числом та мінуси в степені. Як видно з таблиці №1 ключі для дешифрування береться в зворотньому порядку від ключів для шифрування. Причому вони не рівні ключам для шифрування. Мінус перед підблоком ключа означає, що береться обренене (від`ємне) число. З цим особливої складності не виникає, адже просто беремо відповідний підблок ключа для шифрування робимо його від`ємним і маємо підблок ключа для дешифрування. Значно складніше з мінусом у степені. Це так звана операція інверсії по модулю 216. На рисунку 9 зображена блок-схема алгоритму, який виконує вказану інверсію.
Зсув 1
Зсув 2
Зсув 3
Зсув 4
Зсув 5
Зсув 6
Рис.8. Формування підблоків при шифруванні.
Робота алгоритму полягає в наступному. Алгоритму передається в якості аргумента 16-ти бітове число, що потрібно інвертувати. Його позначено як х. Для роботи алгоритму потрібні також проміжні 16-ти бітові змінні позначені як: t0, t1, q, y.
Спочатку перевіряється чи х більше від одиниці. Якщо ні, то одиниця в будь-якій степені дасть в результаті одиниці, тому результатом алгоритму е саме х. В протилежному випадку ділиться чмсло 655327 на аргумент, змінній t1 присвоюється результат від ділення, а y - остачу. Після чого перевіряється,якщо остача від ділення рівна одиниці, то результатом інверсії буде різниця 1-t1. В протилежному випадку змінній t0 присвоюємо одиницю. Після чого відбувається цикл, в якому виконуються наступні операції. Спочатку змінній q присвоюється результат ділення х та y, в ту ж змінну х записується остача. До змінної t0 додається добуток q*t1. Знову перевіряється остача від ділення на рівність одиниці, якщо рівність правильна, то результатом інверсії буде t0. Якщо ні то йде наступний блок операцій: q=y/x, y-остача, t1=t1+(q*t0). Знову перевіряється остача від ділення. Якщо вона не рівна одиниці, то цикл переходить на початок, у випадку коли рівність справджується результатом дії алгоритму буде різниця 1-t1. На цьому дія алгоритму закінчується.
В таблиці №2 (методичка) показані результати розподілу підблоків ключів для шифрування та дешифрування.
Головний ключ - ST_key for Idea, в бінарному вигляді - 0101001101010100 0101111101101011 0110010101111001 0010000001100110 0110111101110010 0010000001001001 0110010001100101 0110000100000000.
ХІД РОБОТИ
Ознайомитись з теоретичними відомостями.
Запустити програму Diplom.exe та ознайомитись з оболонкою.
Зайти в лабораторну роботу №2.
В меню "Редагування" змінити ключ на потрібний.
Пройти розподіл ключів покроково за допомогою кнопки "Далі", результати записати.
Вийти з лабораторної роботи та знову зайти для перегляду утворення підблоків, але з іншим ключем. Ключ ввести дуже схожим на попередній (відмінність можна зробити в одному біті). Результати також записати.
Витерти ключ та пройти розподіл спочатку. Отримані результати записати.
Знайти пари ключів в шифруванні та дешифруванні, які рівні між собою.
Знайти в допомозі для лабораторної роботи формулу, по якій утворюються ключі для дешифрування та записати її.
Отримані результати порівняти.
рЕЗУЛЬТАТИ ПРОВЕДЕННОГО ЕКСПЕРИМЕНТУ
Вхідні дані:
вИСНОВОК
На цій лабораторній роботі, я вивчив принцип утворення підблоків ключа для шифрування та дешифрування, дослідивши результати видно, що підібрати два подібні ключі неможливо. А також записав формулу по якій утворюються ключі для дешифрування.
А саме:
EMBED PBrush