Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект лекцій ММЗІ 2013.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.33 Mб
Скачать

§ 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.

Алгоритми та їх складність

Програмістська практика добре розрізняє алгоритми швидкі та повільні. Ці характеристики вкрай важливі для криптографії. З одного боку, користувачі криптосистеми повинні володіти швидкими алгоритмами шифрування та дешифрування, а з іншого — їх суперник не повинен мати швидкого алгоритму розкриття криптотексту без знання ключа. В ідеалі, суперник не має швидкого алгоритму розкриття не тому, що йому бракує хисту додуматись до такого алгоритму, а тому, що останнього взагалі не існує — всі алгоритми зламу криптосистеми є повільними.

Наявність швидкого алгоритму для розв'язання певної задачі доводиться безпосереднім пред'явленням такого алгоритму. При цьому алгоритм може бути заданим неформальним інтуїтивно прийнятним описом, який, як правило, нескладно записати як програму у будь-якій з існуючих мов програмування. Відсутність же швидкого алгоритму для задачі є фактом більш фундаментального характеру, доведення якого вимагає глибоких математичних методів. Галуззю математики, що займається подібними питаннями, є теорія складності. Цей розділ нашого курсу присвячений концепціям теорії складності, на яких буде грунтуватись подальший виклад алгоритмічних задач теорії чисел, що на них базується сучасна криптографія.