41912

ВИКОРИСТАННЯ СИСТЕМИ S-KEYS ТА ЗАСТОСУВАННЯ РЕЖИМУ ІМІТОВСТАВКИ АЛГОРИТМУ ГОСТ 28147-89

Лабораторная работа

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

Проімітуйте роботу системи S/key при одноразовому підключенні користувача. Для цього підготуйте послідовність . Використовуйте хеш-функцію , значення пароля і параметра з наступної таблиці (пароль заданий в системі числення з основою 16).

Русский

2013-10-26

349.39 KB

2 чел.

Державний університет інформаційно-комунікаційних технологій

Навчально-науковий інститут захисту інформації

Кафедра безпеки інформаційних технологій

Прикладна криптологія

З В І Т

з лабораторної роботі № 13

ВИКОРИСТАННЯ СИСТЕМИ S-KEYS ТА ЗАСТОСУВАННЯ

РЕЖИМУ ІМІТОВСТАВКИ АЛГОРИТМУ ГОСТ 28147-89

Варіант № 26

Виконав(ла): студент(ка) БСД – 42

Прізвище І.Б.________Фураєв  В. В_____

Дата здачі/захисту____________________

Перевірив__________________________

Оцінка_____________________________

2011

  1.  Проімітуйте роботу системи S/key при одноразовому підключенні користувача. Для цього підготуйте послідовність . Використовуйте хеш-функцію , значення пароля і параметра  з наступної таблиці (пароль заданий в системі числення з основою 16).

26

E

13

  1.  Виберемо значення пароля m=14 (пароль заданий в системі числення з основою 16) і параметра p=13.

Підготуємо послідовність , , , де – хеш-функція :

h1(14)=[(143 + 9)]mod(13-1)= 5 (mod 12);

h2(14)=h(h1(14))=h(5)=[(53 + 9)]mod(13-1)=2(mod 12);

h3(14)=h(h2(14))=h(2)=[(23 + 9)]mod(13-1)=5(mod 12).

Таким чином, маємо послідовність: 5, 2, 5.

  1.  Звернемося до сервера аутентифікації.
  2.  Сервер посилає запит, який включає порядковий номер 2 для очікуваного одноразового пароля.
  3.  Відправимо на сервер аутентифікації значення h2(14)=2
  4.  Сервер перевіряє співвідношення : y=h(2)=5(mod 12). Співвідношення виконується, і ми дістаємо доступ в систему.

2. Граючи роль абонента , використовуйте протокол взаємної аутентифікації за наявності сервера ключів для імітації процедури формування спільного з абонентом сеансового ключа Х для алгоритму ГОСТ 28147-89.

Примітка. В навчальних цілях в протоколі допускається використання нестійких криптосистем і слабких ключів.

Для обміну з сервером ключів  використовуйте значення ідентифікаторів, задані в наступній таблиці.

26

E

6

В ході протоколу використовуйте довільні 8-бітові значення ключів  

Для обміну з сервером ключів використовуємо:

значення ідентифікаторів:A=E, B=6.

8-бітові значення ключів:

– ключ абонента K[A]=1100 1011

– ключ абонента K[B]=1001 0001

одноразовий сеансовий ключ =1100 1011.

Крок 1. . Абонент запрошує у сервера ключів  сеансовий ключ для встановлення захищеного з'єднання з абонентом . У повідомлення включені:

– ідентифікатор ;

– зашифрований на ключі відкритий текст, в який включені:

ідентифікатор ,

ідентифікатор даної транзакції – випадкове двійкове число

=1001 1110=9E

додаткова (змістовна) інформація:

text=11.11.2011 = BB 7DB

Для шифрування відкритий текст

, , text = 69 EB B7 DB

перепишемо в двійковому представленні: 

0110 1001 1110 1011 1011 0111 1101 1011

Зашифруємо на ключі K[A]=1100 1011:

0110 1001 1110 1011 1011 0111 1101 1011

1100 1011 1100 1011 1100 1011 1100 1011

1010 0010 0010 0000 0111 1100 0001 0000

Повідомлення :

1110 1010 0010 0010 0000 0111 1100 0001 0000

Крок 2. . Сервер ключів S відповідає повідомленням, зашифрованим ключем . Таким чином, тільки абонент може розшифрувати повідомлення, і впевнений, що воно отримане від сервера , оскільки припускається, що крім і цей ключ не знає ніхто.

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

– ідентифікатор даної транзакції – двійкове число =1001 1111, де – оборотна функція-модифікатор: _

– одноразовий сеансовий ключ _

– ідентифікатор абонента _

– два елементи, призначені абонентові  для ідентифікації , зашифровані ключем :

одноразовий сеансовий ключ ,

ідентифікатор .

Виконаємо шифрування на ключі K[B]= 1001 0001:

= 1100 1011  1110

1001 0001  1001

=0101 1010  0111

Повідомлення :

1001 1111 1100 1011 0110 0101 1010 0111

1001 0001 1001 0001 1001 0001 1001 0001

0000 1110 0101 1010 1111 0100 0011 0110

Крок 3.  Сервер ключів посилає абоненту повідомлення, зашифроване ключем . Таким чином, тільки абонент може розшифрувати повідомлення, і впевнений, що воно отримане від сервера , оскільки припускається, що крім і цей ключ не знає ничто.

Це повідомлення включає:

– два елементи, призначені абонентові  для ідентифікації ,зашифровані ключем :

одноразовий сеансовий ключ ,

ідентифікатор .

– ідентифікатор даної транзакції – двійкове число =1101 0011, зашифроване

на пропонованому сервером сеансовому ключі .

Виконаємо шифрування на ключі :

=1101 0011

=1100 1011

=0001 1000

Повідомлення :

0101 1010  0111 0001 1000

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

1101 0100

1110 1110

, = 1101 0100 1110 1110

= 1100 1011 1100 1011

=0001 1111 0010 0101

Після розшифрування повідомлення, може переконатися в достовірності .

Крок 5. . Отримавши від число , абонент модифікує його і пересилає у зашифрованому за допомогою ключа повідомленні

=1110 1110

=1100 1011

= 0010 0101

Після розшифрування повідомлення, може переконатися в достовірності .

4. Побудуємо сеансовий ключ Х для алгоритму ГОСТ 28147-89. Для побудови сеансового ключа Х восьмибітовий ключ =1100 1011, отриманий від сервера ключів, запишемо підряд 32 рази:

Х = 32

Х = 1100 1011  1100 1011  1100 1011  1100 1011

1100 1011  1100 1011  1100 1011  1100 1011

1100 1011  1100 1011  1100 1011  1100 1011

1100 1011  1100 1011  1100 1011  1100 1011

1100 1011  1100 1011  1100 1011  1100 1011

1100 1011  1100 1011  1100 1011  1100 1011

1100 1011  1100 1011  1100 1011  1100 1011

1100 1011  1100 1011  1100 1011  1100 1011

5. Для аутентифікації сеансового ключа Х отримаємо імітовставку  довжиною для відкритого тексту, що складається з двох блоків (у шістнадцятирічній системі):

0000 1000 0000 0000   0800 0000 0000 0000.

Для вироблення імітовставки для кожного блоку використовуємо шифрування за допомогою алгоритму ГОСТ 28147-89 в режимі простої заміни із скороченою кількістю циклів, рівною 16. У навчальних цілях виконаємо 2 цикли. Для зашифрування в режимі простої заміни відкритий текст

0000 1000 0000 0000   0800 0000 0000 0000

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

=0000 0000 0000 0000  0001 0000 0000 0000  0000 0000 0000 0000  0000 0000 0000 0000  

=0000 1000 0000 0000  0000 0000 0000 0000  0000 0000 0000 0000  0000 0000 0000 0000  

Перший цикл зашифрування.

Крок 1. Розіб'ємо перший 64-бітовий блок даних на дві частини:

ліву :  0000 0000 0000 0000  0001 0000 0000 0000  

і

праву : 0000 0000 0000 0000  0000 0000 0000 0000  

Крок 2. Сеансовий ключ розміром 256 біт складається з восьми 32-розрядних підключів (у нашому випадку вони однакові).

Візьмемо перший підключ сеансового ключа :

: 1100 1011  1100 1011  1100 1011  1100 1011

Крок 3. Знайдемо значення функції перетворення :

1) Обчислення суми і за mod :

: 0000 0000 0000 0000  0000 0000 0000 0000  

+

: 1100 1011 1100 1011  1100 1011 1100 1011

 1100 1011 1100 1011  1100 1011 1100 1011

2) Перетворення за допомогою таблиці замін.

Результат підсумовування розіб'ємо на 4-бітові блоки – тетради

1100 1011 1100 1011  1100 1011 1100 1011

Для кожного 4-бітового блоку (тетради) обчислимо його адресу в таблиці замін . Кожен блок пропускаємо через свій вузол таблиці замін за наступним правилом: перетворимо двійкове число до десяткового вигляду. Номер блоку відповідає номеру стовпця, десяткове значення блоку відповідає номеру рядка в таблиці замін. Наприклад, 6-й блок (1011) замінюється заповненням 11-го рядка і шостого стовпця в таблиці заміни. Заповнення 11-го рядка для 6-го вузла заміни дорівнює А, що в двійковому вигляді є 1010. Таким чином, 4-бітовий блок 1011 замінюється на 1010. Решта блоків замінюється аналогічно.

Перетворення за допомогою таблиці замін оформимо у вигляді таблиці:

номер вузла

К1

К2

К3

К4

К5

К6

К7

К8

вхід

1100

1011

1100

1011

1100

1011

1100

1011

адреса

12

11

12

11

12

11

12

11

заповнення

0

0

9

9

А

А

Е

Е

результат

0000

0000

1111

1001

1010

1010

1110

1110

Виходи всіх восьми вузлів заміни об'єднуються в 32-бітове слово, вихідна послідовність має вигляд

0000 0000 1111 1001 1010 1010 1110 1110

3) В отриманій послідовності циклічно зсуваємо біти вліво на 11 позицій.

0000 0000 111  |  1 1001 1010 1010 1110 1110

=1100 1101 0101 0111 0111 0000 0000 0111

Крок 4. Обчислимо :

:  0000 0000 0000 0000  0001 0000 0000 0000  

: 1100 1101 0101 0111  0111 0000 0000 0111

:  1100 1101 0101 0111  0110 0000 0000 0111

Крок 5. Зсув по ланцюжку: у результаті кроків 1-4 з'являється нова права половина , а стара права половина стає новою лівою .

Результат першого циклу ГОСТ для першого 64-бітового блоку даних :

0000 0000 0000 0000  0000 0000 0000 0000  1100 1101 0101 0111  0110 0000 0000 0111

Другий цикл зашифрування.

Крок 1. Розіб'ємо отриманий в першому циклі 64-бітовий блок даних на дві частини:

ліву :  0000 0000 0000 0000  0000 0000 0000 0000  

і

праву : 1100 1101 0101 0111  0110 0000 0000 0111

Крок 2. Візьмемо другий подключ сеансового ключа :

: 1100 1011  1100 1011  1100 1011  1100 1011

Крок 3. Знайдемо значення функції перетворення :

1) Обчислення суми і за mod :

: 1100 1101 0101 0111  0110 0000 0000 0111

+

: 1100 1011 1100 1011  1100 1011 1100 1011

 0000 0110 1001 1100  1010 1011 1100 1100

2) Перетворення за допомогою таблиці замін.

Результат підсумовування розіб'ємо на тетради

0000 0110 1001 1100  1010 1011 1100 1100

Перетворення за допомогою таблиці замін оформимо у вигляді таблиці:

номер вузла

К1

К2

К3

К4

К5

К6

К7

К8

вхід

0000

0110

1001

1100

1010

1011

1100

1100

адреса

0

6

9

12

10

11

12

11

заповнення

A

A

7

A

9

A

E

E

результат

1010

1010

0111

1010

1001

1010

1110

1110

Виходи всіх восьми вузлів заміни об'єднуються в 32-бітове слово, вихідна послідовність має вигляд

1010 1010 0111 1010 1001 1010 1110 1110

3) В отриманій послідовності циклічно ззсуваємо біти вліво на 11 позицій.

1010 1010 011 | 1 1010 1001 1010 1110 1110

=1101 0100 1101 0111 0111 0101 0101 0011

Крок 4. Обчислимо :

:  0000 0000 0000 0000  0000 0000 0000 0000  

:  1101 0100 1101 0111  0111 0101 0101 0011

:  1101 0100 1101 0111  0111 0101 0101 0011

Крок 5. Зсув по ланцюжку: у результаті кроків 1-4 з'являється нова права половина а стара права половина стає новою лівою .

Результат другого циклу ГОСТ для першого 64-бітового блоку даних :

=1100 1101 0101 0111  0110 0000 0000 0111  1101 0100 1101 0111  0111 0101 0101 0011

Отриманий блок  підсумуємо за модулем 2 з другим блоком даних :

=1100 1101 0101 0111  0110 0000 0000 0111  1101 0100 1101 0111  0111 0101 0101 0011

=0000 1000 0000 0000  0000 0000 0000 0000  0000 0000 0000 0000  0000 0000 0000 0000

=1100 0101 0101 0111  0110 0000 0000 0111  1101 0100 1101 0111  0111 0101 0101 0011

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

Перший цикл зашифрування.

Крок 1. Розіб'ємо 64-бітовий блок даних  на дві частини:

ліву :  1100 0101 0101 0111  0110 0000 0000 0111  

і

праву : 1101 0100 1101 0111  0111 0101 0101 0011

Крок 2. Візьмемо перший підключ сеансового ключа :

: 1100 1011  1100 1011  1100 1011  1100 1011

Крок 3. Знайдемо значення функції перетворення :

1) Обчислення суми і за mod :

: 1101 0100 1101 0111  0111 0101 0101 0011

+

: 1100 1011 1100 1011  1100 1011 1100 1011

  1101 1111 0001 1100  1011 1110 1001 1000

2) Перетворення за допомогою таблиці замін.

Результат підсумовування розіб'ємо на тетради

1101 1111 0001 1100  1011 1110 1001 1000

Перетворення за допомогою таблиці замін оформимо у вигляді таблиці:

номер вузла

К1

К2

К3

К4

К5

К6

К7

К8

вхід

1101

1111

0001

1100

1011

1110

1001

1000

адреса

13

15

1

12

11

14

9

8

заповнення

B

A

7

A

A

7

A

A

результат

1011

1010

0111

1010

1010

0111

1010

1010

Виходи всіх восьми вузлів заміни об'єднуються в 32-бітове слово, вихідна послідовність має вигляд

1011 1010 0111 1010  1010 0111 1010 1010

3) У отриманій послідовності циклічно зсуваємо біти вліво на 11 позицій.

1011 1010 011  |   1 1010 1010 0111 1010 1010

=1101 0101 0011 1101 0101 0101 1101 0011

Крок 4. Обчислимо :

:  1100 0101 0101 0111  0110 0000 0000 0111  

: 1101 0101 0011 1101  0101 0101 1101 0011

:  0001 0000 0110 1010  0011 0101 1101 0100

Крок 5. Зсув по ланцюжку: у результаті кроків 1-4 з'являється нова права половина а стара права половина стає новою лівою .

Результат першого циклу ГОСТ для 64-бітового блоку даних :

1101 0100 1101 0111  0111 0101 0101 0011  0001 0000 0110 1010  0011 0101 1101 0100

Другий цикл зашифрування.

Крок 1. Розіб'ємо отриманий в першому циклі 64-бітовий блок даних на дві частини

ліву : 1101 0100 1101 0111  0111 0101 0101 0011  

і

праву : 0001 0000 0110 1010  0011 0101 1101 0100

Крок 2. Візьмемо другий підключ сеансового ключа :

: 1100 1011  1100 1011  1100 1011  1100 1011

Крок 3. Знайдемо значення функції перетворення :

1) Обчислення суми і за mod :

: 0001 0000 0110 1010  0011 0101 1101 0100

+

: 1100 1011 1100 1011  1100 1011 1100 1011

 1101 1011 1010 0001  1111 1110 0001 1111

2) Перетворення за допомогою таблиці замін.

Результат підсумовування розіб'ємо на тетради

1101 1011 1010 0001  1111 1110 0001 1111

Перетворення за допомогою таблиці замін оформимо у вигляді таблиці:

номер вузла

К1

К2

К3

К4

К5

К6

К7

К8

вхід

1101

1011

1010

0001

1111

1110

0001

1111

адреса

13

11

10

1

15

14

1

15

заповнення

B

0

0

0

7

7

9

9

результат

1011

0000

0000

0000

0111

0111

1001

1001

Виходи всіх восьми вузлів заміни об'єднуються в 32-бітове слово, вихідна послідовність має вигляд

1011 0000 0000 0000  0111 0111 1001 1001

3) В отриманій послідовності циклічно зсуваємо біти вліво на 11 позицій.

1011 0000 000 | 0 0000  0111 0111 1001 1001

=0000 0011 1011 1100 1100 1101 1000 0000

Крок 4. Обчислимо :

:  1101 0100 1101 0111 0111 0101 0101 0011  

:  0000 0011 1011 1100 1100 1101 1000 0000

:  1101 0111 0110 1011 1111 1000 1101 0011

Крок 5. Зсув по ланцюжку: в результаті кроків 1-4 з'являється нова права половина а стара права половина стає новою лівою .

Результат другого циклу ГОСТ для 64-бітового блоку даних :

=0001 0000 0110 1010  0011 0101 1101 0100  1101 0111 0110 1011 1111 1000 1101 0011

З отриманого на виході блоку як імітовставку візьмемо 27 його молодших бітів:

=0001 0000 0110 1010  0011 0101 110

Імітовставка передається по каналу зв'язку в кінці зашифрованих даних, тобто , :

1100 1101 0101 0111  0110 0000 0000 0111  1101 0100 1101 0111  0111 0101 0101 0011

0001 0000 0110 1010  0011 0101 1101 0100  1101 0111 0110 1011 1111 1000 1101 0011

0001 0000 0110 1010  0011 0101 110


 

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

57302. Организация работы налоговых органов с налогоплательщиками 71.5 KB
  Для оценки организации работы с налогоплательщиками и СМИ Федеральная налоговая служба использует критерии анализа некоторых показателей отчетности предоставляемой инспекциями и управления ФНС.