/i>);
де p і з - відкритий (р1аintеxt) і зашифрований (сiрhertext) тексти, p>
ke і kd - ключі шифрування і розшифрування; Ek і Dk функції зашифрування з ключем ke і розшифрування з ключем kd відповідно, причому для будь-якого відкритого тексту p справедливо
Dk ( Ek ( p )) =p .
На малюнку 1.2 наведено класифікацію методів шифрування інформації. Розрізняють два типи алгоритмів шифрування: симетричні (з закритим ключем) і асиметричні (з відкритим ключем). У першому випадку звичайно ключ розшифрування збігається з ключем зашифрування, тобто
ke = kd = k
або знання ключа зашифрування дозволяє легко обчислити ключ розшифрування. В асиметричних алгоритмах така можливість відсутня: для шифрування і розшифрування використовуються різні ключі, причому знання одного з них не дає практичної можливості визначити інший. Тому, якщо одержувач В інформації зберігає в секреті ключ розшифрування, ключ зашифрування може бути зроблений загальнодоступним.
У процесі шифрування інформація поділяється на порції величиною від одного до сотень біт. Як правило, потокові шифри оперують з битами відкритого та закритого текстів, а блокові - з блоками фіксованої довжини. Але головна відмінність між цими двома методами полягає в тому, що в блокових шифри для шифрування всіх порцій використовується один і той же ключ, а в поточних - для кожної порції використовується свій ключ тієї ж розмірності. Інакше кажучи, в поточних шифри має місце залежність результату шифрування порції інформації від її позиції в тексті, а в деяких випадках і від результатів шифрування попередніх порцій тексту. Таким чином, при реалізації потокової криптосистеми виникає необхідність в елементах пам'яті, змінюючи стан яких можна виробляти послідовність (потік) ключової інформації. Блокову ж криптосистему можна розглядати як залежну від ключа.
1.4 Абсолютно стійкий шифр
Найпростішою і в той же час найбільш надійною з усіх схем шифрування є так звана схема одноразового використання, винахід якої найчастіше пов'язують з ім'ям Г.С. Вернама [13]. Формується m -розрядна випадкова двійкова послідовність - ключ шифру, відомий відправнику і одержувачу повідомлення. Відправник виробляє побітове додавання за модулем 2 ключа і m -розрядної двійковій послідовності, що відповідає переданому повідомленням
сi = pi ? ki , i =1, ..., m .
де pi , ki і сi - черговий i -й біт відповідно вихідного повідомлення, ключа і зашифрованого повідомлення, m - число біт вихідного тексту. Процес розшифрування зводиться до повт...