- •Криптографія та захист інформації
- •Класифікація сучасних криптосистем, їх переваги та недоліки. Комбіновані криптосистеми.
- •[Ред.]Властивості системи шифрування
- •Симетричні криптосистеми.
- •Класифікація симетричних криптоалгоритмів
- •Асиметричні криптосистеми.
- •Принцип роботи
- •Опис алгоритму
- •Генерація ключів
- •Функції хешування, вимоги до них та особливості використання.
- •Список алгоритмів
- •Застосування хешування
- •Хешування паролів
- •Криптографічні хеш-функції
- •Поняття електронного цифрового підпису та його призначення.
- •Поняття та ознаки електронного документа
- •Електронний цифровий підпис: поняття, ознаки, правовий статус
- •Управління ключами
- •Застосувуння електронного цифрового підпису
- •Цифровий підпис в інших країнах
- •Класифікація загроз інформації в сучасних комп’ютерних системах та методи боротьби з основними загрозами.
- •Критерії оцінки захищеності інформації від несанкціонованого доступу.
- •Нормативний документ тзі 2.5-004-99
- •Функціональні критерії
- •Конфіденційність
- •Нормативна документація
- •Формальні моделі доступу та їх реалізація в сучасних операційних системах загального призначення.
- •Аналіз захищеності сучасних операційних систем загального призначення.
- •Архітектура та основні механізми захисту протоколів ssl, tls, https тощо.
Застосування хешування
Одне з побічних застосувань хешування полягає в тому, що воно створює свого роду копію, “відбиток пальця” для повідомлення, текстового рядка, області пам'яті і т. п. Такий “відбиток пальця” може прагнути як до “унікальності”, так і до “схожості” (яскравий приклад – контрольна сума CRC). У цій якості однією з найважливіших галузей застосування є криптографія. Тут вимоги до хеш-функцій мають свої особливості. Крім швидкості обчислення хеш-функції потрібно значно ускладнити відновлення повідомлення (ключа) за хеш-адресою. Відповідно необхідно ускладнити находження повідомлення з тією ж хеш-адресою. При побудові хеш-функції односпрямованого характеру зазвичай використовують функцію стиснення (видає значення довжини n при вхідних даних більше довжини m і працює з кількома вхідними блоками). При хешуванні враховується довжина повідомлення, щоб виключити проблему появи однакових хеш-адрес для повідомлень різної довжини. Найбільшу популярність мають такі хеш-функції [1]: MD4, MD5, RIPEMD-128 (128 біт), RIPEMD-160, SHA (160 біт). У українському стандарті цифрового підпису використовується розроблена вітчизняними криптографами хеш-функція (256 біт) стандарту ГОСТ 34.311-95.
Хешування паролів
Хешування паролів – метод, що дозволяє користувачам запам`ятовувати ,наприклад, не 128 байт, тобто 256 шестнадцатірічний цифр ключа, а деяке осмислений вираз, слово чи послідовність символів, що називається паролем. Дійсно, при розробці будь-якого криптоалгоритмами слід враховувати, що в половині випадків кінцевим користувачем системи є людина, а не автоматична система. Це ставить питання про те, зручно, і взагалі чи реально людині запам'ятати 128-бітний ключ. Насправді межа запам'ятовуваності лежить на кордоні 8-12 подібних символів, а, отже, якщо ми будемо примушувати користувача оперувати саме ключем, тим самим ми практично змусимо його до запису ключа на будь-якому листку паперу або електронному носії, наприклад, в текстовому файлі. Це, звичайно, різко знижує захищеність системи. Для вирішення цієї проблеми були розроблені методи, які перетворюють осмислений рядок довільної довжини – пароль, у вказаний ключ заздалегідь заданої довжини. У переважній більшості випадків для цієї операції використовуються так звані хеш-функції. Хеш-функцією в даному випадку називається таке математичне або алгоритмічне перетворення заданого блоку даних, яке володіє наступними властивостями:
-
хеш-функція має нескінченну область визначення,
-
хеш-функція має кінцеву область значень,
-
вона незворотня,
-
зміна вхідного потоку інформації на один біт змінює близько половини всіх біт вихідного потоку, тобто результату хеш-функції.
Ці властивості дозволяють подавати на вхід хеш-функції паролі, тобто текстові рядки довільної довжини на будь-якою національною мовою і, обмеживши область значень функції діапазоном 0 .. 2N-1, де N - довжина ключа в бітах, отримувати на виході досить рівномірно розподілені по області значення блоки інформації – ключі.
Криптографічні хеш-функції
Серед безлічі існуючих хеш-функцій прийнято виділяти криптографічно стійкі, застосовувані в криптографії. Для того, щоб хеш-функція H вважалася криптографічно стійкою, вона повинна задовольняти трьом основним вимогам, на яких засновано більшість застосувань хеш-функцій в криптографії:
- Незворотність: для заданого значення хеш-функції m повинно бути обчислювально нездійсненно знайти блок даних X, для якого H (X) = m.
- Стійкість до колізій першого роду: для заданого повідомлення M повинно бути обчислювально нездійсненно підібрати інше повідомлення N, для якого H (N) = H (M).
- Стійкість до колізій другого роду: має бути обчислювально нездійсненно підібрати пару повідомлень, що мають однаковий хеш.
Дані вимоги не є незалежними:
- Оборотна функція нестійка до колізій першого і другого роду. Функція, нестійка до колізій першого роду, нестійка до колізій другого роду; зворотне невірно.
- Слід зазначити, що не доведено існування необоротних хеш-функцій, для яких обчислення будь-якого прообразу заданого значення хеш-функції теоретично неможливо. Зазвичай знаходження зворотного значення є лише обчислювально складним завданням.
Атака «днів народження» дозволяє знаходити колізії для хеш-функцій з довжиною значень n бітів в середньому за приблизно 2n / 2 обчислень хеш-функції. Тому n-бітова хеш-функція вважається криптостійкою, якщо обчислювальна складність перебування колізій для неї близька до 2n / 2. Для криптографічних хеш-функцій також важливо, щоб при найменшій зміні аргументу значення функції сильно змінювалося (лавинний ефект). Зокрема, значення хешу не повинно давати витоку інформації навіть про окремі біти аргументу. Ця вимога є запорукою криптостійкості алгоритмів хешування, хешуючих пароль користувача для отримання ключа.