Таким чином, ми підходимо до третьої проблеми, властивої одноразовому криптографічного ключа. Оскільки я вже багато разів вживав словосполучення «одноразовий криптографічний ключ», ви, ймовірно, вже здогадалися, яка це проблема; його можна використовувати лише один раз. Якщо спробувати використовувати колишній одноразовий криптографічний ключ для нового повідомлення, то зловмисники, які намагаються прочитати вашу кореспонденцію, зможуть розшифрувати ваш код. Це можна довести складними математичними викладками, але я пропоную повірити мені на слово. Якщо використовувати один і той же одноразовий ключ для шифрування слова sales, а потім повторно для слова patch, то досвідчені шифрувальники зможуть розгадати закономірність. Ймовірно, у вас виникає питання: яким же чином працює мій браузер при відвідинах зашифрованого веб-сайту? Чи існує спосіб, за допомогою якого мій комп'ютер може обмінюватися одноразовим криптографічним ключем з сервером? Відповідь одночасно і так, і ні.
Трохи про термінологію шифрування. Одноразовий криптографічний ключ далі буде називатися «синхронним ключем шифрування». Це означає, що для шифрування і відновлення повідомлень використовуються однакові «правила». Якщо одноразовий криптографічний ключ іменується «синхронним ключем шифрування», то протилежне поняття - «асинхронний ключ шифрування».
Що таке асинхронний ключ шифрування?
У 70-х роках минулого століття кілька дійсно кмітливих інженерів знайшли вдале математичне рішення. Якщо взяти два дуже великих простих числа і перемножити їх, то згодом надзвичайно важко знайти початкові числа. Покажемо це на прикладі невеликих чисел.
5 і 7 - прості числа (тобто діляться тільки на 1 і на самих себе). Помноживши 5 на 7, отримуємо 35. Кожен може помножити 5 на 7 і отримати 35, це просто. Однак набагато складніше з'ясувати, які два простих числа були перемножити, щоб отримати 35. Втім, з числом 35 це нескладно. Але повірте на слово, при використанні дуже великих простих чисел цей метод ефективний.
Так чи інакше, це математичне рішення дозволило нам задіяти «асинхронне шифрування». Моїх знань недостатньо, щоб пояснити подробиці методу, але якщо використовувати твір двох великих простих чисел (35) у формулі для шифрування повідомлення, то реально розшифрувати повідомлення можна, лише знаючи заздалегідь два вихідних простих числа (5 і 7). Це означає, що можна мати «відкритий ключ» опублікований для загального доступу. Люди, які бажають вступити зі мною в шифровану зв'язок, можуть скористатися цим ключем, щоб відправити мені зашифроване повідомлення.
Обмін даними по протоколу SSL в Інтернеті
Ось як відбувається обмін даними по протоколу SSL в Інтернеті:
- Я призначаю і публікую «відкритий ключ», який може використовуватися будь-якою особою для шифрування відправляються мені повідомлень.
- Щоб організувати шифрований обмін повідомленнями зі мною, вам слід застосувати цей відкритий ключ для шифрування версії одноразового криптографічного ключа і відправити його мені.
- Тепер ми обоє володіємо безпечним одноразовим криптографічним ключем, з допомогою якого можна зробити обмін даними конфіденційним.
Продовження статті на наступній сторінці.