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

Криптографічну систему часто називають секретною системою, загальною чи просто системою. Звичайно приймається, що безліч можливих відкритих повідомлень М1,...,Мn мають апріорні імовірності q1,...,qn„. Дві системи збігаються, якщо в них однакові безлічі відкритих повідомлень, криптограм і ключів, причому розподіл у імовірностей ключів рівний. Вибір ключа виробляється випадково, відповідно до розподілу імовірностей ключів р1,...,рт.

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

Основними задачами криптографії (до яких зводиться більшість інших) можна вважати:

шифрування – захист даних від несанкціонованого ознайомлення з ними;

аутентифікацію – захист даних від несанкціонованої зміни; [1]

Аутентифікація останнім часом усе ширше застосовується для "цифрового підпису" розповсюджуваних через Internet програмних продуктів як захист від "троянських коней".

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

Рис.2 Структура криптосистеми

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

Методологія з використанням ключа

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

Але основна проблема, зв'язана з цією методологією, полягає в тому, як згенерувати і безпечно передати ключі учасникам взаємодії.[4]

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

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

Коли учасники взаємодії одержують ключі, звідки вони можуть довідатися, що ці ключі насправді були створені і послані уповноваженною на це особою?

Існують дві методології з використанням ключів – симетрична (із секретним ключем) і асиметрична (з відкритим ключем). Кожна методологія використовує свої власні процедури, свої способи розподілу ключів, типи ключів, алгоритми шифрування і розшифровки ключів.[5] Оскільки термінологія, використовувана цими методологіями, може показатися незрозумілою, дамо визначення основним термінам:

Симетрична (секретна) методологія

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

Асиметрична (відкрита) методологія

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

Усі асиметричні криптосистеми є об'єктом атак шляхом прямого перебору ключів, і тому в них повинні використовуватися набагато більш довгі ключі, чим ті, котрі використовуються в симетричних криптосистемах, для забезпечення еквівалентного рівня захисту. Це відразу ж позначається на обчислювальних ресурсах, необхідних для шифрування, хоча алгоритми шифрування на еліптичних кривих можуть зм'якшити цю проблему. Брюс Шнайер у книзі "Прикладна криптографія: протоколи, алгоритми і вихідний текст на C" наводить наступні дані про еквівалентні довжини ключів.[1]

Таблиця 1. Еквівалентні довжини ключів

Довжина симетричного ключа

Довжина відкритого ключа

56 біт

384 біт

64 біта

512 біт

80 біт

768 біт

112 біт

1792 біта

128 біт

2304 біта

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