Учбово-методичний посібник для виконання лабораторних робіт з дисципліни „Основи теорії криптографії і криптоаналізу”, страница 36

Порядок виконання лабораторної роботи:

1.  Вивчити схему шифрування алгоритмом IDEA

2.  В додатку №1 вибрати ключ та відкритий текст відповідно до номеру студента в журналі.

3.  Зашифрувати поданий текст алгоритмом IDEA вручну.

4.  Скласти звіт, у який включити початкові дані, опис послідовності дій шифрування, кінцевий результат і відповіді на контрольні запитання

Контрольні запитання

1.  До якого типу шифрів належить шифр IDEA?

2.  Які переваги має IDEA, порівняно з DES?

3.  Назвіть довжину ключа, та розмір блока IDEA.

4.  Опишіть процедуру отримання підключей IDEA.


2.8.  Лабораторна робота № 8. Шифрування методом гамування.

Тема роботи: Шифрування методом гамування.

Ціль роботи: Відпрацювати застосування методу гамування для шифрування і дешифрування тексту.

Загальні відомості

Гамування є широко застосовуваним типом криптографічного перетворення.

Під гамуванням розуміють процес накладання за визначеним законом гами шифру на відкриті дані. Гама шифру – це псевдовипадкова послідовність, вироблена по заданому алгоритму для шифрування відкритих даних і розшифрування зашифрованих даних.

Теоретичні відомості

Процес шифрування полягає в генерації гами шифру за допомогою датчика псевдовипадкових чисел і накладанні отриманої гами на вхідний відкритий текст, наприклад, з використанням операції додавання по модулю 2.

Слід зазначити, що перед шифруванням відкриті дані розбивають на блоки Tо(i) однакової довжини, звичайно по 64 біта. Гама шифру виробляється у вигляді послідовності блоків Гш(i) аналогічної довжини.[15]

Рівняння шифрування можна записати у вигляді

Тш(i) = Гш(i) Å Те(i) , i = 1 ... M,

де      Тш(i)    i-й блок шифртексту;

Гш(i)    i-й блок гами шифру;

Те(i)    i-й блок відкритого тексту;

M       кількість блоків відкритого тексту.

Процес розшифрування зводиться до повторної генерації гами шифру і накладенню цієї гами на зашифровані дані. Рівняння розшифрування має вид

Те(i) = Гш(i) Å Тш(i) , i = 1 ... M.[1]

Переваги і недоліки методу.

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

Однак, метод гамування стає неспроможним, якщо зловмиснику стане відомим фрагмент вихідного тексту і відповідний йому шифртекст. В цьому випадку простим розрахуванням по модулю криптоаналітик знаходить відрізок псевдовипадкової послідовності і по ньому відновлює всю послідовність[4].

Методи генерації псевдовипадкових послідовностей чисел

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

Генеруємі псевдовипадкові ряди чисел часто називають гамою шифру чи просто гамою (за назвою букви g грецького алфавіту, часто використовуваної в математичних формулах для позначення випадкових величин).

Звичайно для генерації послідовності псевдовипадкових чисел застосовують комп'ютерні програми, що, хоча і називаються генераторами випадкових чисел, насправді виробляють детерміновані числові послідовності, що по своїх властивостях дуже схожі на випадкові.

До криптографічно стійкого генератора ПВП чисел (гами шифру) пред'являються три основних вимоги:

-  період гами повинний бути досить великим для шифрування повідомлень різної довжини;

-  гама повинна бути практично непередбаченою, що означає неможливість передбачити наступний біт гами, навіть якщо відомі тип генератора і попередній шматок гами;

-  генерування гами не повинне викликати великих технічних складностей;

Довжина періоду гами є найважливішою характеристикою генератора ПВЧ. По закінченні періоду числа почнуть повторюватися і їх можна буде передбачити.

Один з перших способів генерації ПВЧ на ЕОМ запропонував у 1946 р. Джон фон Нейман. Суть цього способу полягає в тому, що кожне наступне випадкове число утворюється зведенням у квадрат попереднього числа з відкиданням цифр молодших і старших розрядів. Однак цей спосіб виявився ненадійним і від нього незабаром відмовилися.

З відомих процедур генерації послідовності ПВЧ найбільш часто застосовується так називаний лінійний конгруентний генератор. Цей генератор виробляє послідовність ПВЧ Y1, Y2, ..., Yi-1, Yi, ..., використовуючи співвідношення

Yi = (a • Yi-1 + b) mod m,

де      Yi      поточне число послідовності;

Yi-1     попереднє число послідовності;

m – модуль;

a – множник;

b – збільшення;

а Y0 – число, що породжує гаму(вхідне значення).

Поточне псевдовипадкове число Yi одержують з попереднього числа Yi-1 множенням його на коефіцієнт а, додаванням зі збільшенням b і обчисленням залишку від розподілу на m. Дане рівняння генерує ПВЧ із періодом повторення, що залежить від обраних значень a і b і може досягати значення m. Значення m звичайно встановлюється рівним 2n, де n – довжина машинного слова в бітах, або рівним простому числу, наприклад m=231-1. Як показано Д. Кнутом [13], лінійний конгруентний датчик ПВЧ має максимальний період тоді і тільки тоді, коли b – непарне і a mod 4 = 1.

Також для одержання послідовності ПВЧ застосовуються адітивні і мультіплікативні генератори [6].

Мультіплікативний генератор виробляє послідовності чисел за допомогою рекурентного співвідношення:

Yi = (a • Yi-1) mod m.

Вимоги до значень констант a і m такі ж, як і для лінійного конгруентного генератора.