logo
125 Кібербезпека / 4 Курс / 4

Лекція 8. Pgp

Як діє PGP

PGP поєднує в собі кращі сторони симетричної криптографії і криптографії з відкритим ключем. PGP - це гібридна криптосистема.

Коли користувач зашифровує дані за допомогою PGP, програма для початку їх стискає. Стиснення скорочує час модемного передачі і заощаджує дисковий простір, а також, що більш важливо, підвищує криптографічну стійкість. Більшість криптоаналітичних технік засноване на статистичному аналізі шифртексту в пошуках ознак відкритого тексту. Стиснення зменшує число таких ознак (знижує надмірність даних), чим суттєво посилює опірність криптоаналізу. (Занадто короткі файли і файли, які не стискаються досить добре, не стискуються зовсім.)

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

Розшифрування відбувається в зворотному порядку. PGP одержувача використовує його закритий ключ для витягу сеансового ключа з повідомлення, яким шифртексту вихідного послання відновлюється у відкритий текст.

Таким чином, комбінація цих двох криптографічних методів поєднує зручність шифрування відкритим ключем зі швидкістю роботи симетричного алгоритму. Симетричне шифрування в тисячі разів швидше асиметричного. Шифрування відкритим ключем, в свою чергу, надає просте рішення проблеми управління ключами і передачі даних. Використовувані разом, швидкість виконання і керування ключами взаємно доповнюються і поліпшуються без якого-небудь збитку безпеки.

Ключі

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

Однак, розмір асиметричного ключа і розмір симетричного таємного ключа, абсолютно непорівнянні. Симетричний 80-бітовий ключ еквівалентний у стійкості 1024-бітовому відкритому ключу. Симетричний 128-бітовий ключ приблизно дорівнює 3000-бітовому відкритого. Знову ж таки, більше ключ - вище надійність, але механізми, що лежать в основі кожного з типів криптографії абсолютно різні, і порівнювати їх ключі в абсолютних величинах неприпустимо.

Незважаючи на те, що ключова пара математично зв'язана, практично неможливо з відкритого вирахувати закритий; в той же час, обчислення закритого ключа завжди залишається можливим, якщо розпорядженні достатній час і обчислювальними потужностями. Ось чому критично важливо створювати ключ вірною довжини: досить великий, щоб був надійним, але досить малий, щоб залишався швидким в роботі. Для цього подумайте і оцініть, хто може спробувати «прочитати ваші файли», наскільки вони можуть бути наполегливі, скільком часом розташовують, які їхні ресурси.

Більш великі ключі будуть криптографічно захищені більший проміжок часу. Якщо те, що ви хочете зашифрувати, повинно зберігатися в таємниці багато-багато років, вам, можливо, варто скористатися дуже великим ключем. Хто знає, скільки буде потрібно часу, щоб розкрити ваш ключ, використовуючи завтрашні більш швидкі, більш ефективні комп'ютери? Був час, коли 56-бітовий симетричний ключ DES вважався вкрай надійним.

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

PGP зберігає ключі в зашифрованому вигляді. Вони містяться в двох файлах на жорсткому диску; один файл для відкритих ключів, інший - для закритих. Ці файли називаються зв'язками (keyrings). Використовуючи PGP, ви, час від часу, будете додавати відкриті ключі своїх кореспондентів на в'язку відкритих. Ваші закриті ключі знаходяться на зв'язці закритих. Якщо ви втратите (видаліть) в'язку закритих ключів, то вже ніяким чином не зможете розшифрувати інформацію, зашифровану для ключів з цієї зв'язки. Отже, збереження пари резервних копій цього файлу є корисною практикою.