
Лекція7
ШИФР ЗАМІНИ ТА ПЕРЕСТАНОВКИ. СИМЕТРИЧНА КРИПТОГРАФІЯ
План
7.1. Історична довідка
7.2. Основні поняття криптографії
7.3. Шифрування з ключем
7.3.1. Симетричне шифрування
7.3.2. Шифр заміни і перестановки
7.1. Історична довідка
Криптографічні методи захисту інформації з'явилися понад п'ять тисяч років тому, майже одночасно із зародженням писемності. Історія криптографії має окремі факти використання шифрованих повідомлень у древніх цивілізаціях Єгипту, Месопотамії та Індії. Криптографію активно використовували в державах Стародавньої Греції у VI-III ст. до н. е. У працях грека Полібія тих часів наводиться опис системи шифрування «квадрат Полібія». У стародавній Спарті застосовували прилади для шифрування, наприклад таблицю Енея. Відомим є шифр Юлія Цезаря часів Стародавнього Риму. Внесок у розвиток криптографії зробили видатні мислителі того часу - Аристотель, Піфагор, Платон.
Подальший розвиток криптографії спостерігався у VIII-IX ст. у країнах арабського світу. Сучасні математика та криптографія запозичили у цих країн арабські цифри і системи шифрів, зокрема шифрів із застосуванням кількох шифроабеток.
В епоху Відродження (XIV-XVI ст.) спостерігався розвиток криптографії, з'явилися шифри «міланський ключ», «єврейський шифр», код із перешифруванням Л. Альберті, праці з криптографії Д. Кардано, Б. Віженера. Саме тоді Л. Фібо-наччі, Н. Оремом, Ф. Вієтом були отримані результати з алгебри, що стали підґрунтям для подальшого розвитку криптографії.
У XVII-XIX ст. сформувався та набув подальшого розвитку криптоаналіз - наука, яка займається дешифруванням. Розвиток криптоаналізу був стимульований спеціальними службами провідних країн світу того часу, які створили деши-фрувальні служби. Становлення дешифрувальної справи пов'язують із іменами відомих тоді математиків та фахівців у сфері дешифрування: Д. Валлісом в Англії, А. Россиньолем та Ч. Беббіджем у Франції, графом Гронсфельдом у Німеччині,
X. Гольбахом, Ф. Епінусом у Росії та іншими. Криптографія у ті часи набула ще більшого розвитку. В історії криптографії XX ст. не останню роль відіграв винахід електромеханічних шифраторів, які активно застосовували в роки Другої світової війни. Лідирували шифратори двох типів: на комутаційних дисках, чи роторах, і на цівкових дисках. У широковідомій німецькій шифрувальній машині «Енігма» використовували диски першого типу, а в американській шифрувальній машині М-209 - другого. Тоді на розвиток криптографії працювали такі всесвітньо відомі математики, як К. Шеннон та С. Куллбак у Сполучених Штатах Америки, В. Котельников, А. Марков та А. Гельфанд у Радянському Союзі та інші. У наш час теоретична криптографія остаточно сформувалася як математична наука, орієнтована на сучасні засоби обчислювальної техніки та телекомунікацій.
7.2. Основні поняття
Криптографія (рос. - криптография, англ. - cryptography) - це наука, що займається вивченням та розробленням методів, способів та засобів перетворення інформації у вигляд, який ускладнює чи унеможливлює несанкціоновані дії з нею [28, 29]. Криптографія базується на методах (алгоритмах) шифрування та дешифрування.
Шифрування (рос. - шифрование, англ. - encryption) - це процес криптографічного перетворення даних, за допомогою якого відкритий текст перетворюється на шифрований з метою захисту від несанкціонованого доступу.
Дешифрування (рос. - дешифрование, англ. - decryption) - це процес, зворотний шифруванню.
Алгоритм шифрування (рос. - алгоритм шифрования, англ. - encryption algorithm) - це алгоритм, згідно з яким здійснюється спеціальне криптографічне перетворення інформації (його ще називають криптографічним алгоритмом або криптоалгоритмом).
Криптоаналіз (рос. - криптоанализ, англ. - cryptanalysis) - наука, що займається вивченням та розробленням методів, способів та засобів розкриття шифрів.
Стеганографія (рос. - стеганография, англ. - stegonography) - набір засобів і методів приховування факту передавання повідомлення.
Криптологія (рос. - криптология, англ. - cryptology) - наука, складовими якої є криптографія, криптоаналіз та, за деякими визначеннями, стеганографія.
Криптографічні методи (криптографічні алгоритми, алгоритми шифрування), які дають змогу здійснювати криптографічне перетворення інформації, є найпотужнішим механізмом захисту інформації. Методи сучасної криптографії застосовують для шифрування і дешифрування інформації (даних користувача), а також для розв'язання різних задач із забезпечення коректного функціонування систем захисту інформації, на кшталт автентифікації користувачів, контролю цілісності інформації, унеможливлення відмови від авторства чи факту одержання інформації.
Незаперечність причетності до авторства - це поняття, зворотне поняттю відмови від авторства, тобто заперечення причетності до створення або передавання якого-небудь документа чи повідомлення. У свою чергу, незаперечність причетності до одержання документа або повідомлення - поняття, зворотне поняттю відмови від причетності до одержання будь-якого документа чи повідомлення.
Важливим поняттям криптографії є криптоаналітична атака (рос. - крипто-аналитическая атака, англ. - cryptoanalytic attack) - це загальна назва методу, за допомогою якого криптоаналітик намагається зламати криптосистему. Залежно від якості та кількості інформації, якою володіє криптоаналітик, криптоаналі-тичні атаки поділяють на атаки лише із криптотекстом, атаки з відомим відкритим текстом, атаки з вибраним відкритим текстом, атаки з вибраним криптотекстом, атаки з вибраним ключем.
У криптографії використовують поняття стійкість криптографічних алгоритмів (рос. - стойкость криптоалгоритмов, англ. - cipher strength), яке характеризує рівень стійкості криптоалгоритму до його зламу. Стійкість визначається кількістю часу та обчислювальними ресурсами, необхідними для розшифрування криптоалгоритму. Розрізняють абсолютну й практичну стійкість криптоалгоритмів.
Абсолютна стійкість криптоалгоритмів (рос. - абсолютная стойкость криптоалгоритмов, англ. - perfect secrecy) - означає (за Шенноном) статистичну незалежність відкритого та зашифрованого текстів, якої можна досягти, наприклад, за умови, що ключ має довжину, не меншу за довжину відкритого тексту, та що його обрано з простору ключів справді випадково і буде використано лише один раз.
Практична стійкість криптоалгоритмів (рос. - практическая стойкость криптоалгоритмов, англ. - computationally secure) - це поняття стійкості алгоритмів, які не є ідеальними, тобто можуть бути дешифрованими за скінченний час.
У сучасній криптографії криптографічні методи не використовують кожний окремо, вони є основою для більш загальної криптографічної системи.
Криптографічна система, або криптосистема (рос. - криптосистема, англ. - cryptosystem) - це сукупність програмних, апаратних, програмно-апаратних засобів, а також криптографічних алгоритмів або криптографічних схем і ключових параметрів, об'єднаних в єдину систему з метою розв'язання конкретної задачі захисту інформації.
Історія криптографії починалася із застосування таких криптоалгоритмів, які потрібно було тримати в таємниці. Розкриття цих алгоритмів третій стороні автоматично призводило до розкриття шифротексту. Такі криптоалгоритми з часом дістали назву тайнопису.
Тайнопис (рос. - тайнопись, англ. - cryptographic writing) - це методи кодування, особливістю яких є обов'язкове збереження в таємниці криптографічного алгоритму від третьої сторони, що певним чином обмежує їх функціональні можливості. У сучасній криптографії такі методи не використовують.
Сучасна криптографія базується на алгоритмах шифрування з ключем [29, ЗО]. Шифрування з ключем (рос. - шифрование с ключом, англ. - key coding) - це методи кодування, коли ключ зберігається в таємниці від третьої сторони (зберігати криптографічний алгоритм у цьому випадку не потрібно).