You are on page 1of 21

Основи на симетричната

криптография
Криптоанализ Модуларна
аритметика
Шифър на Сезар
Приложна криптография
Доц. д-р Милена Карова
Кат. КНТ, ТУ-Варна
Основни области на Криптологията
Исторически факти
Древно криптиране: Първите знаци са забелязани в Египет 2000 години преди
новата ера
Схемите за криптиране на базата на писма (напр. Шифър на Цезар) популярни
оттогава.
 Симетрични шифри: Всички схеми за криптиране от древни времена до 1976 г. са

симетрични.
 Асиметрични шифри: През 1976 г. криптографията с публичен ключ (или
асиметрична) е открито
предложени от Дифи, Хелман и Меркле.
 Хибридни схеми: По-голямата част от днешните протоколи са хибридни схеми,
т.е.
използвайте и двете
 симетрични шифри (например за криптиране и удостоверяване на съобщения)
 асиметрични шифри (например за обмен на ключове и цифров подпис).
Симетрична криптография (или : private-key , single-key or secret-key cryptography)

Дефиниране на проблем:
1) Алис и Боб биха искали да общуват по несигурен канал (напр.
WLAN или Интернет).
2) Злобният от трета страна Оскар (лошият човек) има достъп до
канал, но не трябва да разбере комуникацията.
Симетрична криптография

• X е известен като plaintext


• Y е известен като ciphertext
• K е ключ
• Набор от всички ключове {K1, K2, ...,Kn} в
пространството на ключовете
Симетрична криптография

Криптирането и декриптирането са обратни операции, ако се използва


един и същ ключ K от двете страни:   dk (y) = dk (ek (x)) = x
• Важно: Ключът трябва да бъде предаден по защитен канал между Алис и
Боб.
• Защитеният канал може да бъде реализиран, например, чрез ръчна
инсталация на ключа за Wi-Fi Protected Access (WPA) протокол или човешки
куриер.
• Въпреки това, системата е сигурна само ако нападател не научи ключа K!
Проблемът за сигурната комуникация се свежда до сигурно предаване и
съхранение на ключа К.
Криптоанализ – извършване на атаки
срещу криптосистемите
Криптоанализ

• Класически атаки
Математически анализ
Атака с брутална сила
• Атака на внедряване: Опитайте се да извлечете ключ например за банкова
смарт карта.
• Социално инженерство: Например, подпомане на потребителя да се откаже
от паролата си
Brute-Force Attack (or Exhaustive Key
Search) срещу симетричните щифри
 Третира шифъра като черна кутия
 Изисква (най-малко) 1 чифт текст-шифъртекст (x0, y0)
 Проверете всички възможни клавиши, докато условието бъде изпълнено:
dk (y0) = x0?
• Колко клавиша имаме нужда?
Атаки срещу Шифър със заместване

 Просто опитайте всяка възможна таблица за субтитриране, докато не се появи


интелигентен очевиден текст, (имайте предвид, че всяка таблица за заместване е
ключова) ..
 Колко таблици за заместване (= ключове) има? 26 x 25 x… x 3 x 2 x 1 = 26! 2 88

 Търсенето през 288 клавиша е напълно невъзможно с днешните компютри!(голяма


дължина на ключовете)
 Атака: Анализ на честотата на писмото (Brute-Force Attack)
 Буквите имат много различни честоти в английския език
 Нещо повече: честотата на буквите в чист текст се запазва в шифротекста.
 Буквата „e“ е най-често срещаната буква на английски език; почти 13% от всички
букви в типичен английски текст са „е“.
 Следващият най-често срещаният е „t“ с около 9%.
Атаки срещу Шифър със заместване
LETTER FREQUENCY ATTACK
 Да се върнем към нашия пример и да идентифицираме най-често срещаната буква:
 i q ifcc v qq r fb rd q vfllc q na rd q cfjwhwz hr bnnb hcc hwwhbs q v q bre hw q vhl q
 В cipher текста заменяме буква q с E и получаваме:
i E ifcc v EE r fb rd E vfllc E na rd E cfjwhwz hr bnnb hcc
hwwhbs E v E bre hw E vhl E
Чрез по-нататъшно отгатване въз основа на честотата на останалите букви получаваме plaintext
текст:
WE WILL MEET IN THE MIDDLE OF THE LIBRARY AT NOON ALL
ARRANGEMENTS ARE MADE
Важен урок: Въпреки че заместващият шифър има достатъчно голямo пространство от
ключове, 288, той може лесно да бъде победен с аналитични методи. Това е отличен
пример, че схема за криптиране трябва да издържа на всички видове атаки
Кратко въведение в Модулната
Аритметика
 Най-общо казано, повечето криптосистеми са базирани на множества от числа, които са:
1. дискретни (множествата с цели числа са особено полезни)
2. ограничен (т.е. ако изчислим само краен брой числа)
 Нека се разгледа ограничен набор с дискретни числа, с които сме доста познати: часовник
 Интересно е, че въпреки че числата се увеличават на всеки час, никога не напускаме множеството от
цели числа:
1, 2, 3, … 11, 12, 1, 2, 3, … 11, 12, 1, 2, 3, …:
Кратко въведение в Модулната Аритметика
Модуларната аритметика може да представи със следната схема, която позволява
изчисляването на краен набор от цели числа като 12-те числа, които се намират върху
часовника (1,2,3,…, 12).
От съществено значение е да се извърши операция, която „запазва числата в граници“, т.е.
след добавяне и умножение те никога не трябва да напускат множеството (т.е. никога по-
голямо от 12). Примери :
 Let a= 12 and m= 9 : 12 ≡ 3 mod 9
 Let a= 37 and m= 9: 34 ≡ 7 mod 9
 Let a= -7 and m= 9: -7 ≡ 2 mod 9

 трябва да проверите дали условието „m разделя (r-a)“ е валидно във всеки от трите случая
Свойства на модулната аритметика
Остатъкът не е уникален
Донякъде е изненадващо, че за всеки даден модул m и число a има (безкрайно) много валидни
остатъци.
Пример:
• 12 ≡ 3 mod 9 3 е валиден остатък тъй като (3-12) се дели на 9
• 12 ≡ 21 mod 9 21 е валиден остатък тъй като (21-12) се дели на 9
• 12 ≡ -6 mod 9 -6 е валиден остатък тъй като (-6-12) се дели на 9
Кой остатък да се избере?
По конвенция обикновено се избира най-малкото положително цяло число r като остатък. Това цяло
число може да се изчисли като
Пример: a = 12 и m = 9
12 = 1 x 9 + 3 → r = 3

Забележка: Това е просто конвенция. Алгоритмично сме свободни да изберем всеки друг валиден
остатък, за да изчислим крипто функциите си
Алгебричен поглед

Грубо казано, пръстенът е структура, в която винаги можем да добавяме, изваждаме и


умножаваме, но можем да се разделим само на определени елементи (а именно на такива,
за които съществува мултипликативна обратна).
• Припомняме отгоре, че елемент Zm има мултипликативна обратна само ако:
gcd (a, m) = 1
Ние казваме, че a е съвместно или сравнително просто за m.

• Например: Ние считаме пръстена Z9 = {0,1,2,3,4,5,6,7,8}


Елементите 0, 3 и 6 нямат обрати, тъй като не са съвместни с 9.
Обръщанията на останалите елементи 1, 2, 4, 5, 7 и 8 са:
  1-1 ≡ 1 mod 9 2-1 ≡ 5 mod 9 4-1 ≡ 7 mod 9
5-1 ≡ 2 mod 9 7-1 ≡ 4 mod 9 8-1 ≡ 8 mod 9
Caesar Cipher
Древен шифър, използван от Юлий Цезар
• Заменя всяка буква от текста с друга.
• Правилото за подмяна е много просто: Взема се буква, която следва след k
позиции в азбуката. Съотвествие между букви и числа

• Пример за k = 7
Plaintext = ATTACK = 0, 19, 19, 0, 2, 10
Ciphertext = haahr = 7, 0, 0, 7, 17
Обърнете внимание, че буквите „се увиват“ в края на азбуката, което може
математически да се изрази като модул за редукция 26, например 19 + 7 = 26
Caesar Cipher
Елегантно математическо описание на шифъра.

Нека k, x, y {0,1,…, 25}


• Plaintext : y = ek (x) ≡ x + k mod 26
• Ciphertext: x = dk (x) ≡ y - k mod 26

• Q; Шифърът за смяна сигурен ли е?


• О: Не! възможни са няколко атаки, включително:
• Изчерпателно търсене на ключове (пространството за ключове е само 26!)
• Писмен честотен анализ, подобен на атака срещу заместващ шифър
Указания
Никога не разработвайте свой собствен крипто алгоритъм, освен ако нямате опитен екип
криптоаналитици, проверяващи вашия дизайн.
• Не използвайте недоказани крипто алгоритми или недоказани протоколи.
• Нападателите винаги търсят най-слабата точка на криптосистемата. Например голямото
ключово пространството само по себе си не е гаранция за това, че шифърът е сигурен;
шифърът все още може да бъде уязвим срещу аналитични атаки.
• Дължината на ключовете е важна за симетрични алгоритми, за да се предотвратят
изчерпателни атаки за търсене на ключове:
• 64-битов: несигурен, с изключение на данни с изключително краткосрочна стойност
• 128 бита: дългосрочна сигурност от няколко десетилетия, освен ако не се прилагат за
квантови компютри
• 256 бита:
• Модулната аритметика е инструмент за изразяване на исторически схеми за криптиране, като
afine шифър, по математически елегантен начин.
Affine шифър

 Криптирането използва класическата азбука и 2 цели числа, наречени


коефициенти или ключове A и B. Те представляват параметри на affine
function Ax+B
 Пример: Ако криптираме DCODE с азбуката ABCDEFGHIJKLMNOPQRSTUVWXYZ
и ключовете A=5, B=3
 Всяка буква от азбуката се асоциира със своята позиция в азбуката
(започвайки от 0). Пример: A=0, B=1,..., Z=25. Възможно е да се ползва A=1,
..., Y=25, Z=0 с азбуката ZABCDEFGHIJKLMNOPQRSTUVWXY (не се препоръчва).
 Така за всяка буква със стойност x от plain text и съотвества стойност y,
резултат от affine function y=A×x+Bmod26 (с 26, размер на азбуката). На
всяка стойност y, кореспондира буква със същата позиция в азбуката- това е
шифрованата буква. Affine шифърът е подмяната на буквите с нови.
Пример за Affine шифър
Пример: DCODE е криптиран SNVSX
Cipher
Plain letter x y
letter
D 3 5×3+3=18 S
5×14+3=73=21mo
O 14 V
d26
• 73 може да се представи като 2x26+21 21 се явява остатък
Как се декриптира Affine cipher
Affine декриптирането изисква да се познават двата ключа A и B и азбуката.
• Пример: Декриптирайте шифрованото съобщение SNVSX с ключове  A=5 и  B=3
За всяка буква със стойност y от съобщението, съотвества x, резултат от инверсната
функция x=A′×(y−B)mod26 (с дължина на азбуката 26)
Стойността на  A′ е цяло число като A×A′=1mod26 (с дължина 26 на азбуката). За да се
намери A′, трябва да се изчисли модулна инверсия.
Пример: Коефициентът A′ for A=5 с размер на азбуката 26  е 21 защото 5×21=105 ≡1 mod
26.
За S ( y=18), x=A′×(18−B)=21∗(18−3)≡315 mod 26=3
За всяка стойност x, съотвестващата буква със същата позиция е кодиращата буква.
Plain text представлява заместване на всички символи с преизчислени нови букви.

You might also like