1. - Nemo`s Gate

Download Report

Transcript 1. - Nemo`s Gate

Криптология. Въведение
lec1
1. Въведение
1.1.Какво е криптология?
Думата криптология е производна на две
гръцки думи:
kryptos, което означава «скрит» ;
logos - «дума».
Криптологията обхваща две компетен-ции
(умения) - скриване и решаване:
Частта на скриването в криптологията се нарича
криптография-cryptogaphia означава секретност в
писането (тайнопис);
Решаващата част от криптологията се нарича
криптоанализ.
1
1.2.Стеганография
За разлика от криптологията, която не се занимава със скриването
на изпращаното съобщение, стеганографията има за цел да скрива
дори съществуването на едно съобщение.
He must have had a special trick, said Robert K. Merton, for he
Wrote such an amazing quantity of material that his friends were
Simply astonished at his prodigious output of long manuscripts,
the contents of which were remarkable and fascinating, from the
first simple lines, over fluently written pages where word after
word flowed relentlessly onward, where ideas tumbled in a riot
of colorful and creative imagery, to ends that stopped abruptly,
each script more curiously charming than its predecessors, each
line more whimsically apposite, yet unexpected, than the lines
on which it built, ever onward, striving toward a resolution in
a wonderland of playful verbosity. Fuller could write page after
page so fluently as to excite the envy of any writers less gifted
and creative than he. At last, one day, he revealed his secret,
then died a few days later. He collected a group of acolytes and
filled their glasses, then wrote some words on a sheet of paper,
in flowing script. He invited his friends to puzzle a while over
the words and departed. One companion took a pen and told the
rest to watch. Fuller returned to find the page filled with words
of no less charm than those that graced his own writings. Thus
the secret was revealed, and Fuller got drunk. He died, yet still a
space remains in the library for his collected works.
2
1.3. Кратко за употребяваната терминология
CIPHERTEXT
Криптирана форма на понятен / открит / явен текст
(PLAINTEXT)CODE Едно невариантно правило за замяна част от информация с друг обект, който не е необходимо да бъде от същия вид (например
ASCII)
CRYPTANALYSIS
Наука (и изкуство) за възстановяване на информация
от шифри без знание / познаване за ключа
CRYPTOGRAPHY
Наука за шифриране и дешифриране на съобщения
в секретни кодове и шифри
CRYPTOSYSTEM
Система за криптиране на информация
DECRYPTION
Процес на обръщане на шифър в разбираем текст
ENCRYPTION
Процес на преобразуване на явен / разбираем текст
в шифър
KEY
Секретна информация позната само на предавателя
и получателя, която се употребява за да се защити познат текст
MONOALPHABETIC SUBSTITUTION Метод за криптиране, при който една
буква в разбираемия текст е винаги заменена с една буква в шифрования
текст (ciphertext)
PLAINTEXT
Първоначална (източник) информация, която трябва
да се защити
POLYALPHABETIC SUBSTITUTION Метод за криптиране, при който една
буква от явния текст не винаги се заменя с буква в шифрования текст
3
1.4. Шифри и кодове
Шифърът (шифроването) е метод за скриване, който замества всяка буква с друга буква,
число или символ.
Кодирането е метод за скриване или заместване на думи или фрази с кодови думи и
кодови числа (или кодови групи).
A
B
C
D
F
Februar
fest
finanzielle
folgender
Frieden
Friedenschluss 17149
führung
Ganz geheim
Gebeit
geheim
Gemeinsame
Exceptionally high achievement
High achievement
Average achievement
Minimum passing grade
Failure
13605
13732
13850
13918
17142
17166
17214
17388
4377
4458
Забележка: Думата cipher е различна от арабската sifr, което означава нищо.
4
1.5. Кратка история на криптографията и
криптоанализа







- Ранни криптографски системи:
Scytale;
Aeneas Tacticus (4 век преди н.е.) - On the Defence of
Fortifications ;
Polybius - Polybius checkerboard ;
ал-Калка-шанди (1412г.) - Subh al-a’sha ;
Gabriele de Lavinde от Parma (1379г.)- ръководство по
криптография;
Leon Battista Alberti (1470г.)- Trattati in cifra ;
Blaise de Vigernère (1586г.) – таблица.
- Криптографията през време на Втората световна
война;
- Криптографията в модерния век
5
2. Основни понятия в криптологията
Теорията на кодирането не се занимава само със скриването на съобщенията, но
и със:
 точното предаване на съобщенията;
 Развиване на техники за откриване и дори безпристрастно коригиране на
грешки по време на предаването.
2.1. Криптографските системи са главно групирани съгласно три факта за тях:
1. Математическите операции, които променят явния текст в шифрован,
употребявайки ключ;
2. Произвеждане на блок или поток от шифри;
3. Типът на употребената ключова система - единичен или два ключа.
Криптосистема се нарича наредена петорка от вида (P, C, K, E, D), за която са
изпълнено следното:
1. P е крайно множество от възможни открити текстове (съобщения М);
2. С е крайно множество от възможни криптирани текстове (съобщения);
3. К - пространство на ключовете;
4. E и D са множества съответно от криптиращи и декриптиращи правила, като за
всяко к є К съществува криптиращо правило ек є Е и съответно декриптиращо
правило dk є D. Правилата ek: P -> C и dk: C-> P трябва да са взаимно обратни
функции, т.е. dk(ek(x)) = x
за всеки открит текст x є P. В частност за всяка криптираща функция ek(x) трябва
да има
x1≠x2 , ek(x1) ≠ ek(x2)
(в противен случай при x1≠x2 и ek(x1) = ek(x2) = y, получателят на y не може да
установи кое е оригиналното съобщение x1 или x2 ).
6
2.2. Терминология

Подател и приемник

Съобщение, кодиране (шифриране) и дешифриране
Шифротекстът се означава с С. Това е също двоична данна: понякога със същият
размер М, понякога с по-дълъг.
Функцията на криптиране Е, оперира над М за да се произведе С. Или с
математическото означение:
E(M) = C
В обратния процес, функцията на дешифриране D работи над С за да произведе М:
D(C) = M
D(E(M)) = M

Конфиденциалност

Достоверност

Цялостност

Отхвърляне

Криптографски примитиви и критерии за оценката им:
- ниво на секретност;
- функционалност;
- методи на работа;
- представяне;
- простота на прилагане.
7
Класификация на криптографските
примитиви
8
2.3. Алгоритми и ключове
Един криптогафски алгоритъм, също наричан шифър, е математическа
функция употребявана за шифриране и дешифриране. (Най-общо има две
функции: една за шифриране и друга за дешифриране.)
 Ограничен алгоритъм
Модерната криптография решава този проблем с ключ, означен с К.
Последователността от възможните стойности за ключ се нарича
ключово
пространство (keyspace).
Операциите за шифриране и дешифриране употребяват този ключ, т.е. те
са свързани с ключа - отбелязва се с индекса к, така функциите стават:

При употреба на един ключ:
EK(M) = C
DK(C) = M
DK(EK(M)) = M

При употреба на два ключа:
EK1(M) = C
DK2(C) = M
DK2(EK1 (M)) = M
9
Видове алгоритми

Симетрични алгоритми
Шифрирането и дешифрирането в симетричните алгоритми се означава с:
EK(M) = C
DK(C) = M
1. Потокови алгоритми или потокови шифри
Потоковият ключ се генерира по два начина:

Независимо от явния текст и шифрования текст - синхронен потоков
шифър;

В зависимост от данната и нейното криптиране – само синхронизиращ
се.
2. Блокови алгоритми или блокови шифри
 Алгоритми с публичен ключ (асиметрични алгоритми)
Шифрирането, употребяващо публичен ключ К се отбелязва като:
EK(M) = C
Независимо от публичния ключ и различието на частния ключ, дешифрирането
кореспондиращо с частния ключ се означава чрез:
DK(C) = M
10
Опростена схема на класификация на алгоритмите
11
2.4. Секретност на алгоритмите
Категории за разбиване на алгоритми :
1.
2.
3.
4.
Тотално разбиване. Криптоанализаторът намира ключа K, така че
DK(C)=P.
Глобална дедукция. Криптоанализаторът намира един алтернативен
алгоритъм A, еквивалентен на DK(C), без да знае K.
Локална дедукция. Криптоанализаторът намира явен текст за подслушан
(заловен) шифрован текст.
Информационна дедукция. Криптоанализаторът добива някаква
информация за ключа или явния текст. Тази информация може да бъде
няколко бита от ключа, някаква информация за формата на явния текст и
т.н.
Един алгоритъм е безусловно секретен, ако без значение колко е
шифрования текст, криптоанализаторът няма достатъчно информация за
да разкрие явния текст.
1.
2.
3.
Сложността на една атака може да се измери по различни начини:
Сложност на данната. Стойността на данната се изисква като вход към
атаката.
Сложност на обработката. Времето необходимо за да се изпълни
атаката. Това често се нарича работен фактор.
Изисквания за съхраняване. Капацитетът на паметта необходима за да се
направи атаката.
12
Компютърни алгоритми
(известни)



DES (Data Encryption Standard) е най-популярния алгоритъм симетричен алгоритъм; един и същи ключ се използва за
шифриране и дешифриране.
RSA (наречен на създателите си—Rivest, Shamir и Adleman) алгоритъм за публичен ключ. Използва се за шифриране и
цифров подпис.
DSA (Digital Signature Algorithm, употребява се като част от
стандарта за цифров подпис) - алгоритъм за публичен ключ. Не
се използва за шифриране, а само за цифров подпис.
13
2.5. Криптоанализ
Криптоанализът е наука за откриване на явния текст на съобщението без достъп
до ключа.
Загубата на един ключ в некриптоаналитичен смисъл се нарича компромис.
Един криптоаналитичен опит се нарича атака.
Има четири общи типа на криптоанализаторски атаки при допускане, че криптоанализаторът има пълно знание за употребения алгоритъм за шифриране:
1. Атака само на шифрования текст.
Дадено: C1 = Ek(P1), C2 = Ek(P2),...Ci = Ek(in- )
Извежда се: Или P1 , P2 ,...Pi ; k; или един алгоритъм за получаването
на Pi+1 от Ci+1 = Ek(Pi+1)
2. Атака на известен явен текст.
Дадено: P1, C1 = Ek(P1), P2, C2 = Ek(P2),... Pi, Ci = Ek(Pi )
Извежда се: Или k, или един алгоритъм за да се получи Pi+1 от
Ci+1 = Ek(Pi+1)
3.Атака на избран явен текст.
Дадено: P1, C1 = Ek(P1), P2, C2 = Ek(P2),... Pi, Ci = Ek(Pi ), където се
избират P1, P2,...Pi
Да се изведе: Или k, или един алгоритъм за да се получи Pi+1 от Ci+1 =
14
Ek(Pi+1)
Продължение
4. Адаптивна атака на избран явен текст.
5. Атака на избран шифрован текст
Дадено: C1, P1 = Dk(C1), C2, P2 = Dk(C2),...Ci, Pi = Dk(C i)
Да се изведе: k
6. Атака на избран ключ.
7. Атака от криптоанализаторите на гумения маркуч.
Заключение на Керкхофс:
Ако силата на твоята нова криптосистема разчита на факта, че
хакерът не знае работата на алгоритъма ти си погубен. Ако вярваш, че
пазейки секрета на алгоритмите подобряваш секретността на своята
криптосистема повече от позволеното на академичната общност да я
анализира, ти грешиш. И ако мислиш, че някой иска да деасемблира твоя
код и по обратен начин твоя алгоритъм, ти си наивен.
15
3.Криптография с един ключ
3.1. Заместващи и преместващи шифри.

Заместващи шифри
Шифърът със заместване е шифър, в който елементите на явния текст (обикновено
букви или числа) са заместени с други символи или групи от символи. Действителният ред
на елементите от явния текст не е променен.
Пример за заместване (субституция) е следния ключ:
Plaintext letters: a b c d e f g h i j k l m n o p q r s t u v w x y z
Ciphertext letters: Y N R O T K M C P B D V X Z A L E W U S F Q J H G I
Субституционният шифър се дефинира при P = C = Z26 и К множеството от всички
пермутации на 26-те символа 0, 1, ..., 25. За фиксирана пермутация π є К се дефинират
криптиращите и декриптиращите функции съответно по следните правила:
eπ (x) = π(x), x є Z26
dπ (y) = π -1 (y), y є Z26 ,
където π -1 е обратната пермутация на π.
Пример: Нека π е “случайна” пермутация, която размества
буквите от английската азбука по следния начин:
т.е., eπ (a) = X, eπ (b) = N, и т.н. Обратната пермутация π -1
се получава като се разменят местата на двата
реда и горният се подреди лексикографски:
16
Продължение
В класическата криптография има четири типа заместващи шифри:
Прост
заместващ шифър или монобуквен шифър е един шифър, в който всеки знак се
замества с кореспондиращ знак в шифрования текст. Криптограмите във вестниците са
прости заместващи шифри;
Хомофонен заместващ шифър е един шифър, в който един знак на явния текст може да
се замени с различни знаци в шифрования текст. Например „А” може да кореспондира с
5,13,25, или 56, „В” – 7,19,31 или 42 и т.н.;
Полиграмен заместващ шифър е един шифър, в който блок от знаци се шифроват в
групи. Например “ABA” кореспондира с “RTQ”, а “ABB” – с “SLL” и т.н.;
Полибуквен заместващ шифър е един шифър, в който е направен многократно прост
заместващ шифър. Например пет пъти е приложен прост заместващ шифър.
Caesar cipher
ROT13 е също заместващ шифър. В този шифър “A” е заместено с “N,” “B” - с “O” и т.н.
всяка буква се ротира 13 пъти. Шифрирайки файла два пъти с ROT13 се връща
оригиналния текст.
P = ROT13 (ROT13 (P))
Транслиращият шифър се базира на модулната аритметика.
Нека а и b са цели числа, и m е цяло положително число. Тогава a ≡ b (mod m), ако m
дели b – a. Изразът a ≡ b (mod m) се чете по следния начин “а е сходно на b по модул m”.
Числото m се нарича модул.
Ако се разделят a и b на m, се получават целочислени частно и остатък, като остатъка
е между 0 и m-1, т.е.
a = q1m + r1 и b = q2m + r2, където 0 ≤ r1 ≤ m - 1 и 0 ≤ r2 ≤ m - 1.
Вижда се, че a ≡ b (mod m) когато r1 = r2.
Записът a mod m (без скоби) се използва за означаване на остатъка от делението на a
и m, т.е. r1. Тогава a ≡ b (mod m), когато a (mod m) = b (mod m).
17
Продължение
Транслиращият шифър над Z26 (за английската азбука, съставена от 26
букви) се дефинира по следния начин:
Нека P = C = K = Z26 . За някое k, 0 ≤ k ≤ 25, се дефинират криптиращите и
дикриптиращите функции съответно по следните правила:
ek(x) = x + k (mod 26) , x є Z26
dk(y) = y - k (mod 26) , y є Z26
Афинен шифър (обобщен транслиращ шифър)
Афинният шифър е едно от обобщенията на транслиращия шифър. При него
P = C = Z26 за английската азбука и P = C = Z30 - за българската, като
К = {(a,b) є Z26 × Z26 : gcd(a, 26) = 1}
( => a = 1 или a и 26 са взаимно прости числа). За всяка двойка k = (a,b) є К се
дефинират

ek(x) = ax + b (mod 26) , x є Z26
dk(y) = a -1 (y – b) (mod 26) , y є Z26
18
Полиграмни заместващи шифри
Playfair cipher - Charles Wheatstone
Да се шифрира "Merchant Taylors’ School":
Plaintext:
Ciphertext:
ME RC HA NT TA YL OR SZ SC HO OL
SC OF LM BI SB AR PU BX ME OV RH
Най-общо това може да се запише при Р=С=К=Z26m, където m е
естествено число. За ключ (k1, k2,..., km) правилата за шифриране и
дешифриране са
ek (x1 ,x2 ,…,xm)= (x1+k1, x2+k2,…,xm+km)
dk (y1 ,y2 ,…,ym)= (y1-k1, y2-k2,…,ym-km)
19
Blaise de Vigenère
Plaintext: MERCHANT TAYLORS SCHOOL
Key:
DONTSTAN DALONED ONTSTA
Ciphertext: PSEVZTNG WAJZBVV GPAGHL
20
• Разместващи шифри
Разместващите шифри пренареждат буквите на явния текст без да променят
буквите. Има три прости разместващи шифри:
1. Да се напише текстът в обратен ред:
President Hoover ordered Secretary of State Stimson to close the cipher bureau.
UAERUB REHPIC EHT ESOLC OT NOSMITS ETATS FO YRATERCES DEREDRO REVOOH
TNEDISERP
2. Шифър на оградено скриване - пишещият редува буквите от явното съобщение по
редове и след това чете ред по ред:
Явно съобщение: Most ciphers employ a key
Подредени букви: m s c p e s m l y k y
o t i h r e p o a e
Шифрирано съобщение: MSCPESMLYKY OTIHREPOAE
M R H NT Y O SCOL
E C A T A L R SHO
Което се чете като: MRHNTYOSCOLECATALRSHO.
3. Геометрични модели могат да бъдат взети от явния текст и изрязани от него. След това
съобщението се шифрира по определен начин. Например:
Съобщение: Usually the plaintext is in the native tongue of the communicator.
usuallythep
laintextisi
nthenativet
ongueofthec
ommunicator
Съобщението се шифрова в блокове по 5 букви чрез четене надолу по колони.
ULNOO SATNM UIHGM ANEUU LTNEN LEAOI YXTFC TTITA HIVHT ESEEO PITCR
21
• Маршрутни шифри
C
I
P
H
E
R
1
4
5
3
2
6
м
е
r
c
h
a
n
t
t
a
y
l
o
r
s
s
c
h
o
o
l
z
z
z
Шифри с двойна транспозиция с ключови думи, базиращи се на матрици;

Умножаващи шифри наречени още делящи системи (фрактиращи)
-Прави се една субституция от символите в явния текст с множество символи (обикновено
двойки, в който случай шифърът се нарича билитерален шифър) в шифротекста;
-Супер криптиране чрез транспозиция.
Ключова дума "Subject"
Plaintext: M E R C H A N T T A Y L O R S
Ciphertext: FG AV GF AX DX DD FV DA DA DD VA FF FX GF AA
За транспозицията нова ключова дума “Cipher”
C
I
P
H
E
R
Крайният шифър е: FAFDFGDDFAVXAAFGXVDXADDVGFDAFA
1
4
5
3
2
6
F
G
A
V
G
F
A
X
D
X
D
D
F
V
D
A
D
A
D
D
V
A
F
F
F
X
G
F
A
A
22
4. Просто XOR
XOR е операция изключващо ИЛИ: ‘^’ в C или ⊕ в
математическите означения. Тя работи над битове:
0⊕0=0
0⊕1=1
1⊕0=1
1⊕1=0
Също може да се отбележи:
a⊕a=0
a⊕b⊕b=a
При симетричен алгоритъм явният текст се подлага на XOR с
ключ за да генерира шифрования текст. Когато се приложи XOR
на получената стойност, т.е. двукратно е приложена операция
XOR над Р, се реставрира оригиналния текст – шифрирането и
дешифрирането използват едни и същи програми:
P⊕K=C
C⊕K=P
23
5. Падове
Например, ако съобщението е
ONETIMEPAD
и ключовата последователност на пада е
TBFRGFARFM .
Тогава шифрования текст е
IPKLPSFHGQ ,
защото
O + T mod 26 = I
N + B mod 26 = P
E + F mod 26 = K
и т.н.
24
Големи числа
Таблица 1.1
Големи числа (Large Numbers)
Физическа аналогия
Число
Убити от светкавица ( на ден)
1 на 9 билиона (233)
Спечелили голямата сума в лотария на САЩ
1 на 4,000,000 (222)
Едновременно на двете горни категории
1на 255
Удавени (в САЩ за една година)
1 на 59,000 (216)
Убити при автомобилни катастрофи (САЩ 1993г.)
1 на 6100 (213)
Убити при автомобилни катастрофи (САЩ по време на един
човешки живот)
1 на 88 (27)
Времето до следващата ледена епоха
14,000 (214) години
Времето откакто Слънцето е става нова звезда
109 (230) години
Възраст на планетата
109 (230) години
Възраст на Вселената
1010 (234) години
Броят на атомите в планетата
1051 (2170)
Броят на атомите в Слънцето
1057 (2190)
Броят на атомите в Галактиката
1067 (2223)
Броят на атомите във Вселената (изключва се черната материя)
1077 (2265)
Обем на Вселената
1084 (2280) cm3
25
Големи числа
Ако Вселената е закрита:
Общо време на живот на Вселената
1011 (237) years
1018 (261) секунди
Ако Вселената се открие:
Време докато долните маси на звездите изстинат
1014 (247) години
Време докато планетите се откъснат от звездите
1015 (250) години
Време докато звездите се откъснат от Галактиката
1019 (264) години
Време докато орбитите се разрушат от гравитационната радиация
1020 (267) години
Време докато черните дупки изчезнат от процеса на Hawking
1064 (2213) години
Време докато цялата материя е течна при температура 0
1065 (2216) години
Време докато се превърне в желязо
101026 години
Време докато направи колапс в черни дупки
101076 години
26