Вступ до криптології
Криптологія
Предметом вивчення криптографії є шифрування документів. З оригінального документа (звичайного тексту, цифрового зображення, звукового сигналу тощо), який називають явним, або відкритим, текстом, можна утворити зашифровану версію, яку називають криптограмою (криптотекстом), або шифрограмою (шифротекстом). Явний текст використовує, наприклад:
алфавіт Z33, що налічує 33 літери української абетки без додаткових символів
для апострофа, розділових знаків, цифр, великих літер;
двійковий алфавіт Z2 = {0, 1);
алфавіт Z256, що складається з символів ASCII та КОІ 8;
алфавіт Zie, що використовує 26 літер латинської абетки без додаткових сим-волів, розділових знаків, цифр, великих літер.
Для шифрування й дешифрування потрібні додатково ключ або ключі (рис. 1.1).
Алгоритм шифрування й дешифрування утворює криптосистему, або шифр. Роз-глянемо два здавна відомі шифри.
Шифр Цезаря (100-44 р. до н. є.).
Його названо за іменем римського імператора Гая Юлія Цезаря, який доручав Цицерону складати шифровані повідомлення для керування військами. Літери абетки тут ототожнені з цифрами. В системі Цезаря використано 26 символів (26 літер ла-тинської абетки), які перенумеровані числами від 0 до 25 (табл. 1.1). Шифр ґрунтується на підстановці:
00 (а) -> 03 (d); 01 (b) -> 04 (e); 02 (с) -> 05 (f);...; 25 (z) -> 02 (с).
Це означає, що в шифрограмі кожну літеру явного тексту замінюють на літеру, розташовану в абетці на три позиції далі. Висловлюючись сучасною мовою, римляни застосовували операцію додавання до номера літери числа З за модулем 26: С = Р + 3(mod 26), де С - номер літери в криптограмі, а Р - номер відповідної літери в явному тексті. Наприклад, латинському слову ітреrіит (імперія) відповідає криптогра-ма lpshulxp, а латинському тексту Veni, vidi, vici (прийшов, побачив, переміг - крилата фраза Цезаря), коли з нього викинути коми й пропуски між словами, відповідає крип-тограма yhqlylglylfl.
Шифр Цезаря стосовно української абетки (табл. 1.2) означає, що літеру а заміню-ють на літеру г, літеру б - на літеру ґ, літеру в - на літеру д і т.д. Останні букви абетки ь, ю, я зміщуються циклічно, тобто переходять у а, б, в, відповідно. Наприклад, слову імперія відповідає криптограма кптзукв.
Шифр Цезаря є шифром зсуву на три позиції.
© Шифр частоколу.
Цей шифр належить до шифрів перестановки. Наприклад, слово криптографія записуємо у вигляді криптографія і шляхом зчитування по рядках з верху до низу отримуємо криптограму рпорфякитгаі. У цьому випадку висота частоколу дорівнює 2. Для висоти частоколу, що дорівнює 3, маємо: й отримуємо криптограму иоаяртрікгф.
Для розглянутих прикладів довжина перестановки й висота частоколу є ключем шифрування й дешифрування.
Явний текст Р, зашифрований за допомогою ключа К, будемо позначати через Ек(Р) = С, а явний текст, отриманий з криптограми С за допомогою ключа К, - через DкC = P. Такі позначення передбачають, що знаємо, який ключ шифрування або де-шифрування використовують.
З огляду на використання ключів розрізняють два методи шифрування: метод, що використовує симетричні алгоритми, та метод, що використовує асиметричні алгоритмами.
Симетричні алгоритми - це алгоритми, де ключ для шифрування та ключ для де-шифрування є одним і тим самим (рис. 1.2).
Асиметричні алгоритми, або алгоритми з явним, чи публічним, ключем - це алго-ритми, де ключі для шифрування й дешифрування різні (рис. 1.3). У цьому разі практично не повинно бути можливим отримання з одного із них іншого.
Криптографія вивчає також методи розкриття шифрів, або методи криптоаналізу. На підставі криптограми потрібно знайти відповідний їй явний текст або ключ. Криптоаналіз також може виявити слабкі місця в криптосистемах, що зрештою призве-де до попереднього результату. Отримання ключа не криптографічним способом називають компрометацією ключа. Найпростішою формою криптоаналізу є метод, який називають систематичним пошуком, або брутальною атакою (англ. термін brute-force). Цей метод полягає у випробуванні всіх можливих ключів. Наприклад, знаючи явний текст Р і відповідну йому криптограму С, можемо шифрувати Р по черзі всіма можли-вими ключами, доки не знайдемо такий ключ, який дає в результаті С. З огляду на стрімке зростання продуктивності комп'ютерів можна припустити, що такий метод криптоаналізу може виявитися досить ефективним.
Головне припущення криптоаналізу, вперше сформульоване в XIX ст. Дутчманом А.Керкхофсом [6], полягає в тому, що безпека шифру повністю визначена ключем. Керкхофс припустив, що в криптоаналітика є повний опис алгоритму і його реалізації (звичайно ж, ЦРУ не має звички повідомляти Моссад про свої криптографічні алго-ритми, але Моссад намагатиметься все одно їх роздобути). Хоча в реальному світі криптоаналітики не завжди мають відповідну детальну інформацію, таке припущення є доб-рою гіпотезою. Якщо супротивник не зможе зламати алгоритм, навіть знаючи те, як він працює, то тим більше цей зловмисник не зможе розкрити алгоритм без цієї інформації.
Отже, серйозною помилкою є уявлення про те, що зберігання принципу роботи алгоритму в секреті ліпше захистить криптосистему, ніж пропозиція академічному то-вариству проаналізувати його. Адже можна деасемблювати машинний код і відтворити алгоритм. Найліпшими алгоритмами є ті, які розроблені відкрито, їх роками зламували найліпші криптоаналітики світу, однак не зламали.
У криптоаналітиків не завжди є доступ до алгоритмів, та часто вони його отри-мують. Якщо алгоритм використовують у комерційній програмі безпеки, то, як свідчить практика, його отримання - це просто питання часу й грошей. Якщо ж алгоритм вико-ристовують у військовій системі зв'язку, то тут, особливо під час ведення воєнних дій, виникає питання купівлі або викрадення відповідної апаратури з метою реконструювання алгоритму.
Класифікація криптографічних атак, залежно від різновиду інформації, доступної під час