Криптографічні системи. Захисту даних
1.КРІПТОГРАФІЧЕСКІЕ СИСТЕМИ, заснованих на методі Підстановка
Криптографічні системи, засновані на методі підстановки, поділяються на чотири основні класи:
1) monoalphabetic;
2) homophonic;
3) polyalphabetic;
4) polygram.
У системах класу monoalphabetic символ вихідного тексту замінюється іншим символом таким чином, що між ними існує однозначна відповідність. Тобто кожен символ вихідного тексту однозначно замінюється його підстановкою. Криптографічних ключів такої системи є таблиця відповідності вихідного алфавіту алфавітом підстановки. Наприклад, для англійського алфавіту існує 26! = 4 * 1026 різних криптографічних систем першого класу. Найбільш прості системи даного класу припускають аналітичний опис підстановок. Так, найпростіший шифратори, заснований на принципі підстановки, зрушує кожну букву англійського алфавіту на k позицій, де k є ключем шифру. У так званому алгоритмі Цезаря i-я буква алфавіту замінюється (i + k)-й буквою за модулем 26. Юлій Цезар використав подібну систему для k = 3. Аналітично криптосистема Цезаря описується виразом
Ek (i) = (i + k) mod 26. (1.1)
Наприклад, відповідно до наведених виразом буква A вихідного англійського алфавіту, що має номер i = 0, заміняється буквою D, що має номер (i + k) mod 26 = (0 +3) mod 26 = 3, а літера z ( i = 25) заміняється буквою C, що має номер (i + k) mod 26 = (25 +3) mod 26 = 2. Наступний приклад ілюструє алгоритм шифрування Цезаря:
Оригінальний текст: CRYPTOGRAPHYANDDATASECURITY.
Шіфротекст: FUBSWRJUDSKBDQSGDWDVHFXULWB.
Алгоритм дешифрування має вигляд
Dk (i) = (i +26- k) mod 26. (1.2)
Існують більш складні методи підстановки. Шифратори, засновані на множенні номера кожного символу вихідного тексту на значення ключа k, описуються таким відношенням:
Ek (i) = (i * k) mod n, (1.3)
де i - номер символу вихідного тексту, n - кількість символів в початковому алфавіті (n = 26 для англійського алфавіту і n = 256 для ASCII-кодів), k - ключ, n і k повинні бути взаємно простими.
шифратори, засновані на зсуві і примноження, описуються виразом
Ek (i) = (i * k1 + k0) mod n. (1.4)
Будь-шифратори класу monoalphabetic може бути представлений у вигляді поліноміальною перетворення порядку t:
Ek (i) = (k0 + k1 * i + k2 * i2 +...+ kt-1 * it-1 + kt * it) mod n. (1.5)
Алгоритм Цезаря є поліноміальних перетворенням нульового порядку.
У криптографічних системах класу homophonic є декілька варіантів зміни вихідного символу. Наприклад, буква A може бути замінена цифрами 24, 35, 37, а буква B - цифрами 41, 17, 76. Тоді слово ABBA може бути зашифрована як (37, 17, 76, 24), або (35, 41, 76, 37) і т.д. Подібні системи характеризуються значно більшою криптографічного стійкістю, ніж системи класу homophonic.
Криптографічні системи класу polyalphabetic засновані на використанні декількох різних ключів. Більшість шифратори подібного типу є періодичними з періодом P. Оригінальний текст виду
X = x1 x2 x3 x4 ... xp xp +1 ... x2p ...
шифрується за допомогою ключів k1, k2, ..., kp:
Ek (X) = Ek1 (x1) Ek2 (x2) ... Ekp (xp) Ek1 (xp 1) ... Ekp (x2p) (1.6)
Для p = 1 матимемо шифр класу monoalphabetic.
Один з таких алгоритмів був запропонований в XVI столітті французом Віген (Vigenere).
У даному випадку ключ K представляється послідовністю
K = k1 k2 ... kp,
де ki (1 <= i <= p) являє собою число зрушень в початковому алфавіті.
Символи вихідного тексту шифруються за формулою
Ek (i) = (i + kj) mod n, (1.7)
де i-номер символу вихідного тексту, Kj - ключ, j