Перевірка справжності ключів

Як Іванову переконатися в тому, що отримані їм ключі були дійсно передані Петровим, а не противником, який прикинувся Петровим? Якщо Петров віддає ключі Іванову віч-на-віч, то зробити це досить легко. Однак якщо Петров надсилає ключі з кур'єром, то Іванову доведеться покластися на чесність кур'єра. А якщо отримані Івановим ключі зашифровані за допомогою ключа шифрування ключів, йому залишається лише сподіватися, що цей ключ є тільки у Петрова. Нарешті, якщо розсилку ключів виробляє ЦРК, Іванов повинен переконатися в надійності процедур розсилки, які прийняті в ЦРК.

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

Подібні міркування іноді наводяться, щоб довести непотрібність криптографічних методів, що застосовуються при передачі ключів. Адже виходить, що в Іванова та Петрова немає іншого шляху упевнитися в достовірності використовуваних ними ключів на всі 100%, крім особистої зустрічі.

Ці міркування наївні. На практиці встановити тотальний контроль над чиїми б то ні було лініями зв'язку неможливо. Дійсно, Іванов не в силах переконатися напевно, що переданий йому ключ не був підмінений всемогутнім противником. Однак, щоб його контроль був дійсно тотальним, такого противнику доведеться вдатися до засобів, які в реальному світі йому навряд чи будуть доступні.

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

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

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

Схожі статті