March 6, 2022

АСИМЕТРИЧНЕ ШИФРУВАННЯ

Асиметричні криптосистеми — ефективні системи криптографічного захисту даних, які також називають криптосистемами з відкритим ключем. В таких системах для зашифровування даних використовують один ключ, а для розшифровування — інший (звідси і назва — асиметричні).

Принцип роботи асиметрично шифрування

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

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

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

Прикладами криптосистем з відкритим ключем є Схема Ель-Гамаля (названа на честь автора, Тахера Ель-Гамаля), RSA (названа на честь винахідників: Рона Рівеста, Аді Шаміра і Леонарда Адлмана), Діффі-Геллмана і DSA, англ. Digital Signature Algorithm (винайдений Девідом Кравіцом).

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

RSA став першим алгоритмом такого типу, придатним і для шифрування, і для цифрового підпису. Алгоритм застосовується до великої кількості криптографічних застосунків.

Факторизація або розкладання на множники — це декомпозиція об'єкта (наприклад, числа, многочлена або матриці) у добуток інших об'єктів, або множників, які після перемноження дадуть вихідний об'єкт.

Ключ — параметр криптографічної системи, який використовується для

  • шифрування і/або дешифрування повідомлення при шифруванні;
  • накладення та перевірки коду автентифікації повідомлень або електронного цифрового підпису.

Схема (система) шифрування, криптосистема - в криптографії алгоритм здійснення оборотних перетворень вихідного тексту в шифрований та навпаки.


СХЕМА ЕЛЬ-ГАМАЛЯ

Схема Ель-Гамаля (ElGamal) — криптосистема з відкритим ключем, яку засновано на складності обчислення дискретних логарифмів у скінченному полі. Криптосистема включає в себе алгоритм шифрування і алгоритм цифрового підпису.

Схему запропонував Тахер Ель-Гамаль 1985 року. Ель-Гамаль розробив один з варіантів алгоритму Діффі-Геллмана. Він удосконалив систему Діффі-Геллмана й отримав два алгоритми, які призначено для шифрування та для автентифікації.

На відміну від RSA, алгоритм Ель-Гамаля не запатентовано, і тому він став дешевшою альтернативою, оскільки оплата внесків за ліцензію не потрібна. Вважається, що алгоритм потрапляє під дію патенту Діффі-Геллмана.


ЦИФРОВИЙ ПІДПИС

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

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

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

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

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

Деякі люди використовують цифровий підпис набагато частіше, ніж шифрування. Наприклад, ви можете не хвилюватися, якщо хтось довідається, що ви тільки-но помістили $1000 на свій банківський рахунок, але ви повинні бути абсолютно упевнені, що робили транзакцію через банківського касира.

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


ХЕШ-ФУНКЦІЯ

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

У процесі цифрового підпису PGP обробляє повідомлення криптографічно стійким однобічним хеш-алгоритмом. Ця операція приводить до генерації рядка обмеженої довжини, називаної дайджестом повідомлення (message digest). (Знову ж, будь-яка зміна прообразу приведе до абсолютно іншого дайджесту.)

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

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

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

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

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

ЕЦП відіграють найважливішу роль у посвідченні і завіренні ключів інших користувачів PGP.


ЦИФРОВИЙ СЕРТИФІКАТ

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

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

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

Цифрові сертифікати ключів спрощують задачу визначення приналежності відкритих ключів передбачуваним власникам.

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

Деякі сертифікати, такі як паспорт, — самодостатнє підтвердження вашої особи; буде досить неприємно, якщо хтось викраде його, щоб видати себе за вас.

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

Цифровий сертифікат складається з трьох компонентів:

  1. відкритого ключа, до якого він прикладений;
  2. даних, або записів сертифіката (відомості про особу користувача, ім'я, електронна пошта і т. д., а також, у разі необхідності, додаткові обмежуючі відомості: права доступу, робочі ліміти та інше);
  3. одного або декількох цифрових підписів, «з'єднаних» ключем з сертифікатом.

Завдання ЕЦП на сертифікаті — указати, що відомості сертифіката були завірені довіреною третьою особою або організацією. У той же час цифровий підпис не підтверджує вірогідність сертифіката як цілого; він є тільки свідченням того, що підписаний запис сертифіката (ідентифікуюча інформація) зв'язаний з даним відкритим ключем.

Таким чином, сертифікат, зазвичай, — це відкритий ключ із прикріпленими до нього однією або декількома формами ID плюс оцінка підтвердження від довіреної особи, «єднальна» ID (унікальний ідентифікатор) і відкритий ключ.

ID - є унікальним для кожної особи, і в тому числі для кожного ключа.


ПОШИРЕННЯ СЕРТИФІКАТІВ

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

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

Така система може реалізуватися у формі простого сховища-депозитарію, називаного сервером сертифікатів, або сервером-депозитарієм відкритих ключів, або мати складнішу і комплексну структуру, що припускає додаткові можливості адміністрування ключів, і називають інфраструктурою відкритих ключів (Public Key Infrastructure, PKI).


СЕРВЕРИ-ДЕПОЗИТАРІЇ

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

Сервер — у комп'ютерній термінології термін може стосуватися окремого комп'ютера чи програми.

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


ІНФРАСТРУКТУРИ ВІДКРИТИХ КЛЮЧІВ

PKI, як і простий сервер-депозитарій, має базу даних для збереження сертифікатів, але, у той же час, надає сервіси і протоколи для керування відкритими ключами. У них входять можливості випуску (видання), відкликання (анулювання) і системи довіри сертифікатів. Головною ж особливістю PKI є наявність компонентів, відомих як Центр сертифікації (Certification Authority, CA) і Центр реєстрації (Registration Authority, RA). Центр сертифікації (ЦС) видає цифрові сертифікати і підписує їх своїм закритим ключем.

Через важливість своєї ролі, ЦС є головним компонентом інфраструктури PKI. Використовуючи відкритий ключ ЦС, будь-який користувач, що бажає перевірити дійсність конкретного сертифіката, звіряє підпис Центра сертифікації і, отже, пересвідчується в цілісності інформації, що міститься в сертифікаті, і, що важливіше, у взаємозв'язку відомостей сертифіката і відкритого ключа.

Як правило, Центром реєстрації (ЦР) називається система людей, механізмів і процесів, що призначена для зарахування нових користувачів у структуру PKI і подальшого адміністрування постійних користувачів системи. Також ЦР може робити «веттинг» — процедуру перевірки того, чи належить конкретний відкритий ключ передбачуваному власникові.

ЦР — людське співтовариство: особа, група, департамент, компанія або інша асоціація. З іншого боку, ЦС — звичайно, програма, що видає сертифікати своїм зареєстрованим користувачам.

Існують і захищені від злому апаратні реалізації ЦС, споруджені з куленепробивних матеріалів і обладнані «червоною кнопкою», що анулює в критичній ситуації усі видані ключі. Роль ЦР-ЦС аналогічна тій, що виконує державний паспортний відділ: одні його співробітники перевіряють, чи потрібна видача паспорта (робота ЦР), а інші виготовляють сам документ і передають його власникові (робота ЦС). Наявність ЦР для ЦС не є обов'язковою, але вона забезпечує поділ функцій, що іноді необхідно.