PGP

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
PGP
Типшифрувальне програмне забезпеченняікомерційне програмне забезпечення
АвторФіліп Ціммерманн
РозробникBroadcom Inc.
Версії
1.0,2.0,2.3,2.5(травень1994)[1],2.6.2i(24 жовтня1994)[2],2.7.1,2.6.3i(18 січня1996)[1],2.3a,2.4,5.0(1999)[3],8.0.3(2003)[3],6.5.8(2000)[3],7.0.3,6.5(5 квітня1999)[4],8.1,5.5і2.6(26 травня1994)[5]
Операційна системакросплатформова програма
Мова програмуванняC
Вебсайтbroadcom /products/advanced-threat-protection/encryption

PGP(англ.Pretty Good Privacy) —комп'ютерна програма,також бібліотека функцій, що дозволяє виконувати операціїшифруванняіцифрового підписуповідомлень, файлів та іншої інформації, поданої в електронному вигляді, у тому числі прозоре шифрування даних на запам'ятовуючих пристроях, наприклад, натвердому диску.Програма була написанаПилипом Цимерманомв 1991 році[6].

Загальна інформація

[ред.|ред. код]

PGP має безліч реалізацій, сумісних між собою і з багатьма іншими програмами (GnuPG,FileCrypt та інші) завдяки стандартуOpenPGP(RFC 4880), але вони мають різний набір функціональних можливостей. Існують реалізації PGP для всіх найбільш поширенихопераційних систем.Крім вільно розповсюджуваних реалізацій є ще й комерційні.

Принцип роботи

[ред.|ред. код]
Як працює PGP шифрування.

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

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

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

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

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

Сумісність

[ред.|ред. код]

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

Захищеність

[ред.|ред. код]

У 1996 році криптографБрюс Шнайерохарактеризував ранню версію PGP як «найближчу до криптосистем військового рівня». На даний момент не відомо жодного способу злому даних, зашифрованих PGP, за допомогою повного перебору або уразливості криптоалгоритма. Ранні версії PGP були теоретично уразливими, тому рекомендується користуватися сучасними версіями.

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

Ступені довіри в PGP

[ред.|ред. код]

Найвищий рівень довіри — безумовна довіра (Implicit Trust) — це довіра вашій власній ключовій парі. PGP думає, що якщо ви володієте закритим ключем, то повинні довіряти і діям відповідного відкритого. Усі ключі, підписані вашим довір'ям безумовно, для вас вірні і справжні. Існує три ступені довіри, що ви можете привласнити чужому відкритому ключеві:

  • повна довіра;
  • часткова довіра;
  • немає довіри.

Щоб ще більше все заплутати, існує також три рівні дійсності:

  • справжній;
  • можливо справжній;
  • невизначений.

Щоб дати іншому ключеві повноваження поручительства, ви:

  1. Берете справжній ключ, який або підписаний вами, або іншим довіреним поручителем.
  2. Встановлюєте рівень довіри, який, на вашу думку, заслуговує власник.

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

PGP вимагає одну довіру Цілком або дві довірі частково, щоб встановити ключ як справжній. Метод PGP прирівнювання двох Часткових до одній Повного аналогічний тому, як іноді від вас вимагають два види документів, що засвідчують особистість. Ви можете порахувати Олесю частково надійної, також порахувати Олександра, який частково заслуговує довіри. Є ризик, що кожний з них окремо може випадково підписати липовий ключ, так що ви, імовірно, не станете надавати Повної довіри жодному. Однак, імовірність того, що обоє вони підпишуть той самий липовий ключ, досить мала.

Всередині PGP Inc., хвилювались щодо проблем з патентами. RSADSI оспорювало передачу ліцензії Viacrypt RSA у нову об'єднану компанію. Компанії довелося впровадити неформальний внутрішній стандарт, який вони назвали «Необтяжений PGP» (англ.Unencumbered PGP) що «не використовував жодних алгоритмів зі складнощами ліцензування». Через важливість PGP шифрування у світі, багато хто хотів написати власне програмне забезпечення, сумісне з PGP 5. Цимерман став переконаним в необхідності для компанії і криптографічної спільноти загалом відкритого стандарту PGP. В липні 1997, PGP Inc. запропонувалоIETFстандарт, названий OpenPGP. Вони дали IETF дозвіл використовувати назву OpenPGP аби описувати цей стандарт і будь-яку програму, що його підтримує. IETF прийняло пропозицію і запустило робочу групу OpenPGP.

OpenPGP — цеInternet Standard[en],який активно розробляється. Багато клієнтів e-mail надають OpenPGP-сумісну безпеку повідомлень, описану вRFC 3156.Поточною специфікацією єRFC 4880(листопад 2007).RFC 4880визначає набір необхідних алгоритмів, до якого входитьСхема Ель-Гамаля,DSA,Triple DESтаSHA-1.На додачу до цих алгоритмів, стандарт рекомендуєRSAяк описано вPKCS #1[en]v1.5 для шифрування та підписів, а такожAES-128,CAST-128таIDEA.Крім цих, підтримуються також інші алгоритми. Стардарт розширили підтримкою шифруCamelliaуRFC 5581у 2009, та підписом і обміном ключами на основіеліптичної криптографії(тобтоECDSAтаECDH) уRFC 6637у 2012. Підтримка шифрування на основіеліптичної криптографіїбула додана запропонованимRFC 4880bisу 2014.

Див. також

[ред.|ред. код]

Примітки

[ред.|ред. код]
  1. абhttps://web.archive.org/web/web.pa.msu.edu/reference/pgp-readme-1st.html
  2. https://web.archive.org/web/web.mit.edu/network/pgp262-announce.html
  3. абвhttp://openpgp.vie-privee.org/latest.html
  4. https://rjmarq.org/pgp/pgp5.html
  5. https://web.archive.org/web/web.mit.edu/afs/net/mit/jis/www/pgpfaq.html
  6. Zimmermann, Philip R. (1999).Why I Wrote PGP.https:// philzimmermann(English). Philip Zimmermann. Архіворигіналуза 24 червня 2018.Процитовано 30 липня 2015.