- •1. Розділ 1 " Прикладна криптологія "
- •Основні поняття криптології. Шифрування та кодування. Стеганографія та криптографія. Алгоритми та протоколи.
- •Шифрування методом Цезаря. Зламування методу Цезаря.
- •Криптостійкість шифрів
- •Шифрування методом простої підстановки. Статистичні властивості мови. Зламування методу простої підстановки.
- •Поліалфавітні шифри (Гронсфельда, Тритеніуса, Віженера). Зламування методу Віженера.
- •Криптостійкість ключів.
- •Перестановочні шифри. Статистичні властивості криптограм перестановок.
- •Методи генерації псевдовипадкових послідовностей.
- •Симетричні шифри. Блочні та потокові шифри. Режими роботи блочних шифрів.
- •Стандарт шифрування dеs.
- •Стандарт шифрування rc5.
- •Характеристики
- •Шифрування
- •Дешифрування
- •Створення підключів
- •Стандарт шифрування idea.
- •Стандарт шифрування aes.
- •Криптоаналіз блочних та потокових шифрів.
- •Асиметрична криптографія.
- •Метод Райвеста-Шамира-Адлемана (rsа).
- •Перевірка чисел на взаємну простоту (розширений алгоритм Евкліда). Теореми Міллера-Рабіна та Ферма.
- •Зламування криптограм rsа.
- •Дискретне логарифмування.
- •Метод ель-Гамаля. Розшифровування криптограм ель-Гамаля.
- •Автентифікація користувача. Цифровий підпис. Стандарт dsa.
- •Шифрування з використанням еліптичних кривих.
- •Забезпечення цілісності інформації. Алгоритми хешування. Стандарт md5.
- •Забезпечення цілісності інформації. Алгоритми хешування. Стандарт sha-1.
- •Забезпечення цілісності інформації. Алгоритми хешування. Стандарт ripemd-160.
- •Реализация ripemd-160
- •Автентифікація користувача. Коди автентичності повідомлень.
- •Управління ключами. Обмін ключами по схемі Діффі-Хеллмана.
Забезпечення цілісності інформації. Алгоритми хешування. Стандарт ripemd-160.
Цілісність інформації - це здатність засобів обчислювальної техніки або автоматизованої системи забезпечувати незмінність інформації в умовах випадкового і (або) навмисного викривлення (руйнування).
Існують різні методи забезпечення цілісності інформації, такі як механізм електронного цифрового підпису, метод контрольних сум, метод "циклічного контрольного коду", односпрямовані функції "хешування".
Алгоритм хешування - це алгоритм,який використовується для генерації хеш-кодів цифрових об'єктів, таких як повідомлення або ключі сеансів. Надійний алгоритм хешування володіє якістю, що зміна вхідних даних призведе до зміни всіх бітів в результуючому хеш-коді; хеш-коди корисні в сеансах для визначення факту модифікації великого цифрового об'єкта, такого як повідомлення. Більш того, якісний алгоритм хешування не дозволяє створити два незалежних набора вхідних даних, що мають однакові хеш-коди. Прикладами алгоритмів хешування є MD2, MD4, MD5 і SHA-1. Алгоритм хешування називається також хеш-функцією.
RIPEMD-160 - хеш-функція. Для довільного вхідного повідомлення функція генерує 160-розрядне хеш-значення, зване дайджестом повідомлення.
Також існують 128 -, 256 - і 320-бітові версії цього алгоритму, які, відповідно, називаються RIPEMD-128, RIPEMD-256 і RIPEMD-320. 128-бітна версія являє собою лише заміну оригінальної RIPEMD, яка також була 128-бітної і в якій були знайдені вразливості . 256 - і 320-бітові версії відрізняються подвоєною довжиною дайджесту, що зменшує ймовірність колізій, але при цьому функції не є більш криптостійкими.
Реализация ripemd-160
Крок 1. Додавання відсутніх бітів. Повідомлення розширюється так, щоб його довжина в бітах за модулем 512 дорівнювала 448. Таким чином, в результаті розширення, повідомленням бракує 64 біта до довжини, кратної 512 бітам.
Розширення виробляється завжди, навіть якщо повідомлення спочатку має потрібну довжину.
Розширення проводиться таким чином: один біт, що дорівнює 1, додається до повідомлення, а потім додаються біти, рівні 0, до тих пір, поки довжина повідомлення не стане рівної 448 по модулю 512. У підсумку, до повідомлення додається, як мінімум, 1 біт, і, як максимум, 512.
Крок 2. Додавання довжини повідомлення.
64-бітове представлення b додається до результату попереднього кроку. У малоймовірному випадку, коли b більше, ніж 264, використовуються тільки 64 молодших біта. Ці біти додаються у вигляді двох 32-бітових слів, і першим додається слово, що містить молодші розряди.
На цьому етапі (після додавання бітів і довжини повідомлення) ми отримуємо повідомлення довжиною кратною 512 бітам. Це еквівалентно тому, що це повідомлення має довжину, кратну 16-ти 32-бітним словами. Кожне 32-бітне слово містить чотири 8-бітних, але випливають вони не підряд, а навпаки .
Крок 3. Визначення діючих функцій і констант I. Нелінійні побітові функції:
II. Додаваємі шістнадцяткові константи:
K(j) = 00000000x
K(j) = 5A827999x
K(j) = 6ED9EBA1x
K(j) = 8F1BBCDCx
K(j) = A953FD4Ex
K'(j) = 50A28BE6x
K'(j) = 5C4DD124x
K'(j) = 6D703EF3x
K'(j) = 7A6D76E9x
K'(j) = 00000000x
III. Выбір 32-бітних слів з повідомлення
r(j) = j при
r(16..31) = 7; 4; 13; 1; 10; 6; 15; 3; 12; 0; 9; 5; 2; 14; 11; 8
r(32..47) = 3; 10; 14; 4; 9; 15; 8; 1; 2; 7; 0; 6; 13; 11; 5; 12
r(48..63) = 1; 9; 11; 10; 0; 8; 12; 4; 13; 3; 7; 15; 14; 5; 6; 2
r(64..79) = 4; 0; 5; 9; 7; 12; 2; 10; 14; 1; 3; 8; 11; 6; 15; 13
r'(0..15) = 5; 14; 7; 0; 9; 2; 11; 4; 13; 6; 15; 8; 1; 10; 3; 12
r'(16..31) = 6; 11; 3; 7; 0; 13; 5; 10; 14; 15; 8; 12; 4; 9; 1; 2
r'(32..47) = 15; 5; 1; 3; 7; 14; 6; 9; 11; 8; 12; 2; 10; 0; 4; 13
r'(48..63) = 8; 6; 4; 1; 3; 11; 15; 0; 5; 12; 2; 13; 9; 7; 10; 14
r'(64..79) = 12; 15; 10; 4; 1; 5; 8; 7; 6; 2; 13; 14; 0; 3; 9; 11
VI. Набір для бітового повороту вліво (операція rol)
s(0..15) = 11; 14; 15; 12; 5; 8; 7; 9; 11; 13; 14; 15; 6; 7; 9; 8
s(16..31) = 7; 6; 8; 13; 11; 9; 7; 15; 7; 12; 15; 9; 11; 7; 13; 12
s(32..47) = 11; 13; 6; 7; 14; 9; 13; 15; 14; 8; 13; 6; 5; 12; 7; 5
s(48..63) = 11; 12; 14; 15; 14; 15; 9; 8; 9; 14; 5; 6; 8; 6; 5; 12
s(64..79) = 9; 15; 5; 11; 6; 8; 13; 12; 5; 12; 13; 14; 11; 8; 5; 6
s'(0..15) = 8; 9; 9; 11; 13; 15; 15; 5; 7; 7; 8; 11; 14; 14; 12; 6
s'(16..31) = 9; 13; 15; 7; 12; 8; 9; 11; 7; 7; 12; 7; 6; 15; 13; 11
s'(32..47) = 9; 7; 15; 11; 8; 6; 6; 14; 12; 13; 5; 14; 13; 13; 7; 5
s'(48..63) = 15; 5; 8; 11; 14; 14; 6; 14; 6; 9; 12; 9; 12; 5; 15; 8
s'(64..79) = 8; 5; 12; 9; 12; 5; 14; 6; 8; 13; 6; 5; 15; 13; 11; 11
V. Вихідні значення слів дайджесту
h0 = 67452301x;
h1 = EFCDAB89x;
h2 = 98BADCFEx;
h3 = 10325476x;
h4 = C3D2E1F0x;
Крок 4. Виконання алгоритму хешування
Після завдання всіх вихідних функцій, констант і початкових значень слів хеш-суми можна переходити до виконання алгоритму. Виконання алгоритму відбувається по двох паралельних шляхах. Обробка повідомлення відбувається блоками по 16 слів в 32 біта.