
- •Криптологія
- •§ 1. Абетка
- •§ 2. Класичні методи: від античності до нового часу
- •§ 3. Дві пропозиції XX століття
- •§ 1. Формалізм
- •§2. Арифметика
- •§ 3. Афінні шифри
- •§ 2. Прямолінійні програми
- •§ 3. Рандомізація
- •§ 1. Арифметика II
- •§ 2. Тестування простоти
- •§ 3. Факторизація
- •Факторизація
- •§ 4. Розпізнавання квадратичності і добування квадратних коренів
- •§ 5. Обчислення функції Ойлера
- •§ 6. Первісні корені за простим модулем
- •8. Підсумок
- •§1. Концепція
- •§ 4. Ймовірнісне криптування
- •§5. Система ЕльГамала
- •§1. Важкооборотні функції
- •§ 2. Генератори псевдовипадкових бітів
- •§ 1. Обмін ключем
- •§ 2. Цифровий підпис
- •§ 3. Підкидання монети по телефону
- •4. Гра в карти заочно
- •§ 5. Розподіл таємниці
- •§ 6. Доведення без розголошення
- •§ 7. Ідентифікація
§ 3. Афінні шифри
В цьому параграфі ми розглянемо афінні шифри — підклас шифрів заміни, що включає як частковий випадок шифр Віженера і навіть шифр перестановки з фіксованим періодом.
3.1. Шифри простої заміни II. Зазначимо, що в рамках формалізації, впровадженої у пункті 1.1, моноалфавітні k-грамні шифри заміни можна означити як блокові шифри з періодом k. Відповіднo шифри простої заміни можна трактувати як блокові шифри з перідом l.
Давайте повернемось ще раз до шифру зсуву, нашого першого прикладу шифру простої заміни (пункти 1.1.1 та 1.2.1). Подивимось, як можна описати цей шифр із застосуванням арифметичного апарату розвиненого у попередньому параграфі. Користь такого підходу зрoзуміла — обчислювальну техніку майже завжди простіше навчити оперувати із числовою інформацією, аніж із символьною. Основна домвленість, якої ми будемо дотримуватись до кінця цього параграфу, тaка:
-
n-символьний алфавіт утотожнюємо з кільцем Zn. А саме, кожна буква замінюється чвоїм номером у алфавіті причому номерація починається з нулч
Наприклад, латинська абетка утотожнюється із Z26, а українська із Z33. Літера а української абетки трактується як 0, літера б як 1, в як 2 і т.д. Тепер до букв відкритого тексту ми можемо вільно застосовувати • операції додавання та множення за відповідним модулем.
До кінця параграфу n буде служити позначенням для кількості букв у алфавіті відкритого тексту. Отже:
шифр зсуву.
Ключ: s таке, що 0 s < п.
Шифрування. У повідомленні кожна буква х заміщується буквою; Е(х) = (х + s) mod n.
Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (х' + s') mod п, де s' = п - s. Величину зворотнього зсуву s' будемо називати дешифруючим ключем.
За аналогією введемо у розгляд
ЛІНІЙНИЙ ШИФР.
Ключ: а таке, що 0 а < п і НСД (а, п) = 1.
Шифрування.У повідомлені кожна буква х заміщується буквою У(х) = (ах)modn
Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (а'х' + s') mod n, де пара а' = a-1 mod n дешифруючий ключ.
3.2.
Афінні шифри вищих порядків.
Подумаємо, як можна розширити монограмні
шифри попереднього пункту так, щоб вони
оперували з k-грамами
для довільного k > 1. Спочатку введемо
операцію додавання в
.
Сумою векторів X = (х1,...,
xk)
і S = (s1,...,
Sk)
з
є вектрр X + S = (х1
+ s1)
mod n,..., (xk
+ sk)
mod n).
з операцією додавання є групою. Вектор
—S = (п
–
s1,..
., n
— sk)
є оберненим до вектора S — (s1,...,
sk).
ШИФР ЗСУВУ К-ГО ПОРЯДКУ (ШИФР ВІЖЕНЕРА З ПЕРІОДОМ k).
Ключ: S Є .
Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою Е(Х) = X + S.
Дешифрування. Кожна k-грама X’ криптотексту заміщується k-грамою D(X') = X’ + S', де S' = —S є дешифруючим ключем.
Перед тим як перейти до лінійного шифру нагадаємо, що через Mk(Zn) ми позначаємо множину матриць розміру А х А; з коефіцієнтами з кільця Zn, а через GL(Zn) — підмножину оборотних матриць. Для А Є GLk(Zn) обернену до неї матрицю позначаємо через А-1 Добутком АХ матриці А = (aij) з Mk(Zn) на вектор-стовпчик X = (х1,..., xk) з є вектор-стовпчик
ЛІНІЙНИЙ ШИФР К-ГО ПОРЯДКУ.
Ключ: A GLk(Zn).
Шифрування. Повідомлення розбивається на k-грами. Кожна k- грама X заміщується k-грамою Е(Х) = АХ.
Дешифрування. Кожна k-грама X’ криптотексту заміщується k-грамою D(X') = А'Х', де А' = А-1 — дешифруючий ключ.
Приклад 3.4. Лінійний шифр 1-го порядку обговорювався у попередньому пункті. Розглянемо докладніше випадок k = 2, тобто біграмний лінійний шифр. В якості ключа вибирається матриця
з коефіцієнтами a,ь,c,d Є Zn. Матриця А повинна бути оборотною. За твердженням Б.5 це рівнозначно умові НСД (w, n) = 1 для w = ad — ьс — визначника матриці. За цієї умови з допомогою розширеного алгоритму Евкліда ми можемо знайти в Zn обернений елемент w-1 і за формулою оберненої матриці обчислити дешифруючий ключ
Наприклад,
для
над Z33
маємо w
= 2. За розширеним алгоритмом Евкліда
знаходимо w-1
= 17 (див. приклад 2.9) і
Нехай
потрібно зашифрувати повідомлення
завтра. Першій біграмі за відповідає
вектор
.
Множення на матрицю А дає
.
Таким же чином знаходимо образи біграми
вт та ра.
Насамкінець перетворюємо стовпчики отриманої матриці у біграми і отримуємо криптотекст зффррй.
Дешифрування
відбувається так само, лише із використанням
оберненої матриці. Наприклад, якщо ми
маємо криптотекст рьгк, то розбиваємо
його на біграми
і виконуємо множення на матрицю А':
В результаті дістаємо повідомлення нині.
Повернемось до загального аналізу лінійного шифру. Співвідношення D(E(X)) = X для будь-якого X випливає з рівностей А' (АХ) = (А'А)Х = IkX = X , де Ік — одинична матриця порядку k. Дешифруючий ключ А' для вибраної оборотною матриці А обчислюється ефективно за формулою для оберненої матриці (див. пункт Б. 6). Потрібне для цього значення (detA)-1 mod n знаходиться за допомогою розширеного алгоритму Евкліда (приклад 2.9). На довершення доведемо, що необоротні матриці А непридатні для використання в якості ключа.
Твердження 3.5. Відображення Е : , задане формулою Е(Х) = АХ, має обернене тоді і тільки тоді, коли А GLk(Zn).
Доведення. При А GLk(Zn) існування відображення, оберненого до Е, було встановлене вище. Навпаки, припустимо, що Е має обернене відображення D. Позначимо через Хі, 1 і k, вектор з і-тою компонентою 1 і з рештою компонент, що дорівнюють 0. Розглянемо матрицю U із стовпчиками D(X1), . . . , D(Xk). Зауважимо, що AU = Ik, тобто матриця U є правою оберненою до А. Отже, матриця А оборотна (див. твердження Б. 5).
Тепер на черзі
Афінний шифр k-ro порядку.
Ключ: А GLk(Zn) і S GLk( ).
Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою Е(Х) = АХ + S1
Дешифрування. Кожна k-грама X’ криптотексту заміщується k-грамою D(X') = А'X’ + S’, де А' = А-1 і S' = -A'S — дешифруючий ключ.
Приклад
3.6. Хочемо зашифрувати повідомлення
завтра за допомогою ключа
i
на Z33.
Частина
роботи вже виконана нами у прикладі
3.4. Після розбиття повідомлення на
вектори-біграми і множення їх на матрицю
А за
модулем
33
ми
були отримали
додаємо
до кожного стовпчика S
і отримуємо
тобто криптотекст иехвсш.
Знайдемо
також дешифруючий ключ. У прикладі 3.4
була отримана матриця
.
Обчислюємо
3.3. Криптоаналіз. Атака з вибором відкритого тексту. Нескладно зауважити, що афінний шифр нестійкий до цього виду криптоаналізу. Позначимо через Хі, 1 і k, вектор з k-тою компонентою 1 і з рештою компонент, що дорівнюють 0, а через Х0 нульовий вектор. Суперникові досить довідатись, в які криптотексти переходять відповідні цим векторам k-грами. Справді, E(X0) = S, а образ Е(Хі) рівний k-тому стовпчику матриці А, що дозволяє повністю визначити ключ.
Атако з відомим відкритим текстом. Спочатку покажемо, що лінійний шифр вразливий від такої атаки. Припустимо суперник знає, що шифруюче відображення Е(Х) = АХ перетворює вектори X1,..., Xk у вектори X’1,..., X’k. Сформуємо із стовпчиків X1,..., Xk матрицю М, а із стовпчиків X’1,..., X’k матрицю С. Як неважко зро зуміти, С = AM і М = А'С'. Якщо матриця С оборотна, то звідси зразу можна визначити дешифруючий ключ А' = МС-1. Якщо суперникові пощастить менше і матриця С виявиться необоротною, то він не зможе визначити А’
однозначно. Однак кількість можливостей може зменшитись настільки, що А’ вдасться знайти після деякого перебору.
Для афінного шифру Е(Х) = АХ + S необхідно знати на одну пару (Х,Х'), де X’ = Е(Х), більше. Віднявши рівність АХ + S = X’і від кожної з рівностей АХі + S = Х’і ,i k, ми зведемо задачу визначення дешифруючого ключа до попереднього випадку.
Приклади такого криптоаналізу винесені у вправи 3.8-3.13. Атака лише за криптотекстом. Афінний шифр 2-го порядку піддається частотному аналізу як і будь-який біграмний шифр. Якщо порядок k дещо збільшити, частотний метод перестане працювати.
Розглянемо
лінійний шифр k-ro порядку над алфавітом
Zn.
Подивимось, які перспективи може мати
брутальна атака, іншими словами, наскільки
реально влаштувати повний перебір
ключів. Очевидно, кількість ключів
дорівнює кількості матриць в GLk(Zn),
для якої в пункті 2.5 було введено
позначення фк(n).
Там же була виведена її формула. З одного
боку видно, що фк(n)
З іншого, порівнюючи із формулрю для
функції Ойлера ф(п)
= ф1(п),
отримуємо фк(n)
(
ф(п))к.
3 використанням твердження 2.15 маємо
оцінку фк(n)
/(6lnlnn)k
при п
> 4. Асимптотичне, значення фк(n)
зростає за п
як поліном і за k як експоненційна
функція. Отримана оцінка дозволяє
оцінити розмір простору ключів для
будь-яких конкретних k
і п
(див. також вправу 3.20). Як видно, перебір
ключів напевне є нереальним скажімо
при
k = 5, п
= 32. Платою за збільшення порядку шифру
є збільшення часу криптування і
декриптування.
ВПРАВИ
3.1. Для монограмного афінного шифру перевірити співвідношення D(E(x)) = х, де х — довільний елемент із Zn
3.2. а) Зашифрувати за допомогою афінного шифру з ключем а = 4, s —повідомлення ні, записане українською абеткою із 33 літер.
b) Знайти дешифруючий ключ і розшифрувати криптотекст дкцзьи, отриманий за допомогою того ж шифру з тим же ключем.
3.3. а) Каналом зв'язку передаються повідомлення, закриптовані за допомогою монограмного лінійного шифру, причому використовується 35-символьний алфавіт, у якому під номерами від 0 до 32 йдуть літери української абетки, пропуск має номер 33, а крапка — 34. Частотний аналіз показав, що у потоці криптотекстів найчастіше зустрічається літера Щ. Опираючись на факт що найпоширенішим символом в україномовних текстах є пропуск, знайти дешифруючий ключ і розшифрувати криптотекст
ТЬЕПЩЧАЕОЧИЬЯЩЕ ЛЕАМЮАФ.ҐЮОЩХАЄ ЕЯ
Знайти шифруючий ключ і закриптувати повідомлення
КРЕВЕТКИ ЗАКІНЧИЛИСЬ.
b) Повідомлення криптуються з використанням того ж шифру, але використовується 33-символьний алфавіт, в якому лише літери української абетки. Згідно з результатами частотного аналізу, у потоці криптотекстів найчастіше зустрічається літера Ф. В числі інших перехоплено крипто текст УФЇЄФГШХАЙХФ. Розшифрувати його, опираючись на факт, що найпоширенішою літерою в україномовних текстах є О. Знайти шифруючий ключ і закриптувати повідомлення ЗАВЕРШУЙТЕ.
c) Використовується той же шифр, але над 36-символьним алфавітом. Першими символами алфавіту є крапка, кома та пропуск, які мають номери 0, 1 та 2 відповідно. Номери від 3 до 35 належать літерам української абетки. Відомо, що у потоці криптотекстів найчастіше зустрічаються літери Є і Ь, саме в такому порядку. Виходячи з того, що найпоширенішими в україномовних текстах є пропуск і літера О, знайти дешифруючий ключ і розшифрувати криптотекст ЬЛКШРЄИЄҐЯЇВЖҐЗИЄГФШЬЯЖ.ЄНЇН. Знайти шифруючий ключ і закриптувати повідомлення ЗАБУДЬ УСЕ, БОБЕ.
3.4. а) Каналом зв'язку передаються повідомлення, написані у 33-літерному українському алфавіті без пропусків і знаків пунктуації, і закриптовані за допомогою монограмного афінного шифру. Відомо, що у потоці криптотекстів найчастіше зустрічаються літери У і 0, саме в такому порядку. Виходячи з того, що найпоширенішими літерами української абетки є 0 і Н, знайти дешифруючий ключ і розшифрувати криптотекст ЗУКУОН. Знайти шифруючий ключ і закриптувати повідомлення ЗАГАСИТИ.
b) Повідомлення написані англійською мовою у 26-літерному алфавіті без пропусків і розділових знаків, і закриптовані за допомогою монограмного афінного шифру. Відомо, що у потоці криптотекстів найчастіше зустрічаються літери 0 і Н, саме в такому порядку. Виходячи з того, що найпоширенішими літерами англійської абетки є Е і Т, знайти дешифруючий ключ і розшифрувати криптотекст HSFOSЬPSHHSFO. Знайти шифруючий ключ і закриптувати повідомлення NOQUESTIONS.
3.5. а) Довести, що афінне відображення однозначно представляється у вигляді композиції лінійного відображення та зсуву.
b) Довести, що афінний шифр утворює групу (кількість букв у алфавіті відкритого тексту п фіксована).
3.5.
а)
До матриці А =
знайти
обернену Zn
b) Використовуючи матрицю А як ключ, закриптувати за допомогою лінійного шифру 2-го порядку повідомлення ПРОЩАЙ .
c)
Використовуючи
в якості ключа ту ж матрицю А і вектор
S
=
,
закриптувати
те ж повідомлення за допомогою афінного
шифру.
d) Знайти дешифруючий ключ і дешифрувати криптотекст ЛЩЯЛЧОРХ, отриманий за допомогою афінного шифру з ключем як у попередньому пункті.
3.6. а) Суперник знає, що Аліса та Боб листуються українською мовою і криптують свою кореспонденцію за допомогою лінійного шифру 2-го порядку. При цьому використовується 34-символьний алфавіт, де номери від 0 до 32 належать літерам української абетки, а 33-тім символом є пропуск. Суперникові вдалося підслухати повідомлення Аліси Бобові: ҐТІШГҐРЮІДЖСМАЧДИКЯ ЄЦЖС . Він здогадався, що останнім словом у повідомленні е підпис відправника АЛІСА. Виходячи з цього припущення, знайти дешифруючий ключ і розшифрувати криптотекст. Знайти шифруючий ключ і закриптувати повідомлення ЧЕКАЮ БІЛЯ ФОНТАНУ БОБ
b) У тій же ситуації, що й в попередньому пункті, суперник перехопив криптотекст ДТЛРНІЇРЦДЄЙМЗЧОТШБЕ. Цього разу суперник здогадався, що повідомлення починається звертанням БОБЕ. Розшифрувати криптотекст, виходячи з цього припущення. Знайти шифруючий ключ і закриптувати таке ж, як і в попередньому пункті, повідомлення ЧЕКАЮ БІЛЯ ФОНТАНУ БОБ
3.7. а) Використовується 26-літерний англійський алфавіт, занумерований числами від 0 до 25. Пропуски між словами ігноруються. Статистичний аналіз показав, що в потоці криптотекстів найчастіше зустрічаються біграми VO і IT. Припустимо, що в англомовних текстах на тему, яка обговорюється в повідомленнях, найчастіше зустрічаються біграми ТН і НЕ. Знайти дешифруючий ключ і розшифрувати повідомлення ITEJASVOQOXT
3.10. а) Повідомлення шифруються лінійним біграмним шифром над 30-символьним алфавітом, в якому номери від 0 до 25 займає латинська абетка, а пропуск, апостроф, кома і крапка, саме в такому порядку, мають номери 26-29. Статистичний аналіз великого масиву криптотекстів показав, що найчастіше трапляються біграми ЕІ і QQ. Припустимо, що вони відповідають найпоширенішим в англійській мові біграмам Е_ і S_ цього алфавіту. Встановити дешифруючий ключ і розшифрувати криптотекст LHV,QQQW HESLSEIWYRVGYQ ЬRЬC
b) Відомий розвідник користується біграмним лінійним шифром над 34-символьним алфавітом, у який входять українські літери (0-32) і пропуск (33). Втім, щоб ускладнити криптоаналіз, досвідчений розвідник при шифруванні ігнорує всі пропуски між словами (таким чином, у відкритому тексті немає пропусків, але у криптотексті вони можуть з'явитись. Суперник перехопив повідомлення ОЩРФНААИЗЖЕБ ЗПЗ розвідника в центр і здогадався, що останні п'ять символів криптотексту відповідають підпису відправника ІСАЄВ. Провести дешифрування.
3.11. а) Перехоплено криптотекст ЮВЧРУЗІНДШЛЗТАЬВБЯІТЬГКЇ , отриманий за допомогою лінійного біграмного шифру над 33-літерним алфавітом (пропуски між словами ігноруються). Відомо, що повідомлення закінчується підписом відправника НАТАЛКА. Знайти дешифруючий ключ і прочитати повідомлення.
b) Перехоплено криптотекст ШЩЄВЛОІІЩШАФУАРЇАБННЕЮ , отриманий за допомогою лінійного біграмного шифру над 34-символьним алфавітом, у який входить українська абетка (0-33) і пропуск (33). Відомо, що повідомлення закінчується підписом відправника _ВАНГА. Знайти дешифруючий ключ і прочитати повідомлення
3.13. (За [111]) Перехоплено повідомлення
ЕЬЩИЦЕППІДНПТЛЧТХХИШХКПСҐТНВТУ
отримане за допомогою лінійного шифру 3-го порядку над 33-літерним алфавітом (пропуски між словами ігноруються). Повідомлення закінчується підписом відправника ДЖЕЙМСБОНД, що дає можливість встановити відповідність між трьома триграмами повідомлення і криптотексту. Знайти дешифруючий ключ і прочитати повідомлення.
3.14. а) Для лінійного шифру k-ro порядку над алфавітом Zn довести, що композиція шифруючих відображень з ключами А, В Є Mk(Zn)* (спочатку шифрування з ключем А, а потім з В) також є шифруючим відображенням з ключем В А.
b) Довести, що лінійний шифр k-ro порядку над алфавітом Zn утворює групу, ізоморфну групі Mk(Zn)*
3.15. Виконати вправу 3.5 для афінного шифру k-ro порядку. Чисельні підрахунки у пункті с провести при k = 2.
3.16.
Розглянути
лінійне шифруюче відображення Е :
,
задане
формулою
Е(Х)
= АХ з А
Mk(Zn)*.
Довести, що
a) кожна біграма з E( ) має щонайменше два прaобрази;
b) кожен криптотекст, отриманий шифруванням деякого повідомлення довжини km, можна розшифрувати щонайменше 2m способами.
3.17. ([111]) Нехай неодинична матриця А з M2(Zn) використовується як ключ для лінійного біграмного шифру Е в n-символьному алфавіті. Нерухомою біграмою шифруючого відображення Е назвемо таку біграму (вектор) X, що Е(Х) = X.
а)
Знайти умову на матрицю А, за якої існує
єдина нерухома біграма, а
саме
аа
=
ЛЕКЦІЯ 8
Розділ III.
Алгоритми та їх складність
Програмістська практика добре розрізняє алгоритми швидкі та повільні. Ці характеристики вкрай важливі для криптографії. З одного боку, користувачі криптосистеми повинні володіти швидкими алгоритмами шифрування та дешифрування, а з іншого — їх суперник не повинен мати швидкого алгоритму розкриття криптотексту без знання ключа. В ідеалі, суперник не має швидкого алгоритму розкриття не тому, що йому бракує хисту додуматись до такого алгоритму, а тому, що останнього взагалі не існує — всі алгоритми зламу криптосистеми є повільними.
Наявність швидкого алгоритму для розв'язання певної задачі доводиться безпосереднім пред'явленням такого алгоритму. При цьому алгоритм може бути заданим неформальним інтуїтивно прийнятним описом, який, як правило, нескладно записати як програму у будь-якій з існуючих мов програмування. Відсутність же швидкого алгоритму для задачі є фактом більш фундаментального характеру, доведення якого вимагає глибоких математичних методів. Галуззю математики, що займається подібними питаннями, є теорія складності. Цей розділ нашого курсу присвячений концепціям теорії складності, на яких буде грунтуватись подальший виклад алгоритмічних задач теорії чисел, що на них базується сучасна криптографія.