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

Цифрові підписи

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

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

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

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

Хеш-функція

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

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

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

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

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

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