Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Заключні дії алгоритму DES



Результат 16 раундів розбиваємо на дві 32 бітні послідовності і міняємо їх місцями:

00010001 00101100 01110111 00010101 00000000 11111111 01000011 01010111

Застосовуємо до отриманих 64 біт наступну перестановку:

               
               
               
               
               
               
               
               

Правила виконання перестановки: у позицію 1 записують 40-й біт вхідного блоку, у позицію 2 записують 8 -й біт, у позицію 3 записують 48-й біт і т.д. Дана перестановка є оберненою до початкової перестановки IP.

Нарешті отримуємо остаточний результат:

00010001 00101100 01110111 00010101 00000000 11111111 01000011 01010111

Це і є 64 біти шифротексту.

Задача 2. Асиметричні криптосистеми. Алгоритм RSA. Необхідно зашифрувати перші чотири літери прізвища, імені та по батькові студента (латиницею) за допомогою алгоритму RSA для передачі абоненту В. Параметри алгоритму RSA наведені в таблиці (за варіантом). Необхідно також обчислити закритий ключ і розшифрувати шифротекст.

Вихідні дані:

Прізвище студента (наприклад): Кость Андрій Андрійович.

Літери для шифрування: kost.

Параметри алгоритму RSA: p = 7, q = 19, e = 23.

Представимо літери в десятковому коді за таблицею АSCII: 107 111 115 116

Модуль модулярної арифметики: N = p*q = 7*19 = 133.

Набір {e, N}={23, 133} є відкритим ключем абонента B.

Блоки тексту для шифрування: 107, 111, 115, 116.

Кожен блок шифруємо окремо за формулою: c = me mod N, де m – блок відкритого тексту.

С1 = 10723 mod 133 = 46

С2 = 11123 mod 133 = 118

С3 = 11523 mod 133 = 96

С4 = 11623 mod 133 = 51

Блоки шифрованого тексту, які передаються абоненту В: 46, 118, 96, 51.

Обчислимо за допомогою алгоритму розширеного алгоритму Евкліда значення закритого ключа d.

Значення функції Ейлера f(N) = (p-1)*(q-1) = 108.

r q Α β
       
       
      -4
    -1  
      -14
    -10  

Отже, закритий ключ {d, N} = {47, 133}.

Абонент В розшифровує повідомлення, обчислюючи m = cd mod N.

M1 = 4647 mod 133 = 107

M2 = 11847 mod 133 = 111

M3 = 9647 mod 133 = 115

M4 = 5147 mod 133 = 116

Дешифроване повідомлення: 107, 111, 115, 116.

Інтерпретуючи відповідні десяткові коди, отримуємо: kost.

Задача 3. Системa PGP. За схемою, яка пропонується сервісами автентифікації та конфіденційності системи PGP, передати від абонента А до абонента В дві літери згідно варіанту. Для спрощення обчислень:

Функція хешування - побітове додавання за модулем двох послідовних байтів, причому другий операнд (байт) перед додаванням циклічно зсовується на один біт вліво.

Процедура архівування за допомогою алгоритму ZIP - не виконується.

Алгоритм симетричного шифрування – мережа Фейстеля з двома раундами, розмір блоку 16 біт, ключ раунду визначається циклічним зсувом вліво на задану кількість бітів. Наприклад, Ks = 12 означає, що на першому раунді виконується зсув на 1 біт, а на другому – на 2 біти.

Дані для шифрування: R (82) 01010010, D (68) 01000100

Дані для RSA:

Абонент А

p = 7, q = 19, e= 25

Абонент В

p = 5, q = 19, e=11

Дані для мережі Фейстеля:

Ks = 43

Сторона абонента А.

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

Повідомлення в двійковому коді (2 байти): 01010010 01000100

Хешування за спрощеною схемою:

1. Другий байт циклічно зсовуємо на один біт вліво: 10001000

2. Порозрядно додаємо байт 01010010 та зсунутий байт 10001000 за модулем 2: 11011010

11011010 – хеш повідомлення.

Отримуємо закритий ключ абонента А:

r q α β
       
       
      -4
    -3  

Закритий ключ абонента A: d = 13.

Шифруємо за допомогою закритого ключа хеш повідомлення.

Перетворимо 11011010 в десяткове число: 218.

Модуль модулярної арифметики N = p*q = 7*19 = 133

Розбиваємо 218 на два блоки, які шифруємо окремо: 21 8.

C1=2113 mod 133 = 98

C2=813 mod 133 = 8

Цифровий підпис: 98 8.

В двійковому представленні: 01100010 00001000.

Здійснюємо конкатенацію (з’єднання) повідомлення та цифрового підпису:

01010010 01000100 01100010 00001000

В схемі PGP даний рядок подається на вхід алгоритму архівування ZIP. В контрольній роботі цей крок для спрощення не виконується.

Наступний крок – шифрування за допомогою DES. Для спрощення в контрольній роботі замінюємо DES мережею Фейстеля з двома раундами, розміром блоку 16 біт і сеансовим ключем Ks = 43 (за варіантом). Число 43 означає, що ключ першого раунду 4, а другого – 3. Функція раунду – циклічний зсув вліво послідовності бітів на величину ключа раунду.

Для спрощення обчислень в контрольній роботі розмір блоку для шифрування 16 біт.

Шифрування мережею Фейстеля:

Перший блок: 01010010 01000100

    Вхідний блок
 
    Зсув на 4 біти
   
    Сума по модулю 2
 
    Зсув на 3 біти
   
    Сума по модулю 2
   
    Зашифрований блок
     

Другий блок: 01100010 00001000

    Вхідний блок
 
    Зсув на 4 біти
   
00001000   Сума по модулю 2
 
    Зсув на 3 біти
   
    Сума по модулю 2
   
    Зашифрований блок
     

Отже, зашифроване повідомлення з підписом:

11110100 00010110 00011111 11100010.

Ключ раунду Ks = 43 шифруємо з відкритим ключем абонента В:

Модуль модулярної арифметики N = p*q = 5*19 = 95

C=4311 mod 95 = 82 – зашифрований сеансів ключ.

В двійковому представленні: 01010010.

Здійснюємо конкатенацію (з’єднання) зашифрованого повідомлення з підписом та зашифрованого ключа раунду:

11110100 00010110 00011111 11100010 01010010

Отримана послідовність бітів передається відкритим каналом зв’язку абоненту В.

Сторона абонента В.

Приймаємо послідовність бітів: 11110100 00010110 00011111 11100010 01010010

Відділяємо зашифрований сеансовий ключ (останній байт): 01010010. Перетворюємо його в десятковий вигляд: 82.

Обчислюємо закритий ключ абонента В:

R q α β
       
       
      -6
    -1  
      -13

d = -13 + 72 = 59 – закритий ключ.

Розшифровуємо за допомогою закритого ключа сеансів ключ:

Ks=8259 mod 95 = 43 – розшифрований сеансів ключ.

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

Перший блок:

    Вхідний блок
 
    Зсув на 3 біти
   
    Сума по модулю 2
 
    Зсув на 4 біти
   
    Сума по модулю 2
   
    Розшифрований блок
     

Розшифровуємо другий блок: 00011111 11100010

    Вхідний блок
 
    Зсув на 3 біти
   
11100010   Сума по модулю 2
 
    Зсув на 4 біти
   
    Сума по модулю 2
   
    Розшифрований блок
     

Обидва блоки розшифрованого повідомлення:

01010010 01000100 01100010 00001000

Перевірка цифрового підпису.

Відділяємо підпис (два останні байти): 01100010 00001000. Переводимо в десятковий вигляд: 98 8.

Розшифровуємо підпис за допомогою відкритого ключа абонента А:

M1 = 9825 mod 133 = 21

M2 = 825 mod 133 = 8

Розшифрований підпис: 218. В десятковому вигляді: 11011010.

Отримуємо хеш повідомлення (зсуваємо циклічно другий байт на 1 біт вліво і порозрядно додаємо по модулю 2 з першим байтом): 11011010.

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





Дата публикования: 2015-10-09; Прочитано: 378 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...