Download presentation
Presentation is loading. Please wait.
Published byHarjanti Tanuwidjaja Modified over 6 years ago
1
UNIVERZITET APEIRON Fakultet poslovne informatike
Osnove kriptozaštite Prof. Dr Milan Marković, dipl.inž. Prezentacija 1
2
Садржај Криптографија и врсте алгоритама, Врсте шифарских система,
Апсолутно тајни шифарски систем, Услови апсолутне тајности – Shannon, Симетрични криптографски системи, Секвенцијални шифарски системи, Пример: RC4, Блок шифре, Својства блок шифара, Пример: DES, 3DES, IDEA, AES, Асиметрични криптографски системи, Пример: RSA, DSA, ECDSA, Hash функције, Пример: MD5 и SHA-1, Дигитални потпис, Дигитална енвелопа, PKCS стандарди
3
КРИПТОГРАФИЈА И ВРСТЕ АЛГОРИТАМА
Криптографске технике које се користе да би се имплементирали безбедносни сервиси: Шифра, Дигитални потпис. Основни елемент заштите – шифарски систем.
4
Сваки шифарски систем обухвата пар трансформација података:
Шифровање, Дешифровање. Шифровање – процедура која трансформише оригиналну информацију (отворени текст) у шифроване податке (шифрат). Дешифровање – реконструише отворени текст на основу шифрата.
5
У шифарској трансформацији, поред отвореног текста, такође се користи једна независна вредност – кључ шифровања. Трансформација за дешифровање користи кључ дешифровања. Број симбола који представљају кључ (дужина кључа) зависи од шифарског система.
6
Шифарски систем може у информационом систему обезбеђивати сервис поверљивости.
У том случају, отворени текст садржи поверљиву информацију која се налази на серверу. Ако је шифарски систем отпоран на могуће нападе, шифрат се може послати путем комуникационе мреже, без практичне могућности да неовлашћено лице дође до поверљиве информације. Критеријуми квалитета једног шифарског система дефинишу се имајући у виду рачунарске ресурсе којима располаже потенцијални нападач.
7
Врсте шифарских система
Симетрични системи: Секвенцијални шифарски системи, Блок шифарски системи. Асиметрични системи или системи са јавним кључевима.
8
Апсолутно тајни шифарски систем
Апсолутно тајни шифарски систем Шифрат се добија сабирањем по модулу 2 бинарних симбола отвореног текста и бинарних симбола кључа – Вернамова шифра (”one time pad”) Пре шифровања, отворени текст написан користећи обичан алфабет мора да се претвори у низ бинарних симбола (“бита") користећи одговарајући код.
9
Сума по модулу 2 1
10
Пример Користи се код ITA-2 Отворени текст: ”come soon” 00011 01111
Отв. Текст: 00011 01111 01101 00101 10011 01110 Кључ: 11011 01011 00110 10110 10101 01100 10010 Шифрат: 11000 01010 11010 11100
11
Да би се реконструисао оригинални отворени текст (порука), поново се шифрат сабира по модулу 2 са кључем, пошто сабирање и одузимање по модулу 2 коинцидирају. Нападач који жели да реконструише отворени текст без познавања кључа - криптоаналитичар. У том случају, уобичајено је да се шифрат назива криптограм.
12
Услови апсолутне тајности - Shannon
Основне хипотезе: Тајни кључ се користи само једном. Криптоаналитичар има приступ једино криптограму. Шифарски систем испуњава услове савршене тајности ако је отворени текст X статистички независтан од криптограма Y.
13
математички: за све могуће отворене текстове и све могуће криптограме
14
Дужина кључа K мора бити најмање једнака дужини отвореног текста M.
У случају Вернамове шифре у горњој релацији важи знак једнакости.
15
Пример: Алгоритам шифровања код кога отворени текст, шифрат и кључ узимају вредности L - арног алфабета и у коме су дужине кључа K, шифрата N и отвореног текста M међусобно једнаке. У том случају, број могућих отворених текстова, шифрата и кључева је једнак:
16
Претпоставља се следеће:
Кључ се бира на потпуно случајан начин: За свих могућих вредности z тајног кључа. Шифарска трансформација је:
17
За фиксни отворени текст свакој могућој вредности кључа
одговара јединствени шифрат Због тога истом отвореном тексту може са једнаком вероватноћом одговарати сваки од могућих шифрата.
18
Зато важи: Због тога је количина информације коју носи шифрат о отвореном тексту једнака нули, тј. X и Y су статистички независни, па стога сума по модулу L испуњава услове савршене тајности. Када је L=2, овај систем се своди на Вернамову шифру.
19
Симетрични криптографски системи
Безбедни канал Извор кључа Извор поруке EA X Одредиште DA Y Криптоаналитичар K
20
Секвенцијални шифарски системи
Генератори псеудослучајних бројева – детерминистички алгоритми, али низови симбола које они генеришу имају сличне особине као и случајни низови. Користе кратке кључеве ради започињања процеса генерисања. Излазни низ генератора се сабира по модулу 2 са низом отвореног текста и на тај начин се добија низ шифрата.
21
Псеудослучајни низови су периодични у ширем смислу (што значи да могу имати апериодични почетак), али ако су периоди таквих низова много већи од дужина низова отвореног текста, систем ће се понашати на сличан начин као и Вернамова шифра.
22
Основна шема секвенцијалног шифарског система
23
Захтеви које сваки шифарски низ мора да задовољи да би се могао користити у секвенцијалном шифарском систему: Период – Период шифарског низа мора да буде бар једнаке дужине као и дужина низа који се шифрује. У пракси, генеришу се низови чији је период много редова величине већи од дужине низа који се шифрује.
24
Статистичке особине: Ако је дат бинарни низ, серијом дужине k се назива низ сукцесивних k једнаких бита између различитих бита. На пример, у бинарном низу Налазе се, између осталог, 2 серије нула (gaps) дужине 3 и једна серија јединица (block) исте дужине.
25
Функција аутокорелације AC(k) једног периодичног низа периода T се дефинише као
Где A и D представљају респективно број коинциденција и некоинциденција између разматраног низа и њега самог циклично помереног за k позиција. Ако је k мултипл од T, аутокорелација је у фази и AC(k)=1. Ако T не дели k, аутокорелација је ван фазе и AC(k) узима вредности на сегменту [-1,1].
26
Пример секвенцијалног алгоритма: RC4
RC4 алгоритам користи таблицу S-box дужине 256 бајтова. За генерисање случајног броја К треба урадити следеће: i=(i+1)mod 256 j=(j+Si)mod 256 Si и Sj замене места t=(Si+Sj)mod 256 K=St Добијени бајт К се користи за XOR-овање са отвореним текстом за добијање шифрата.
27
Пример секвенцијалног алгоритма: RC4 (наставак)
Иницијализација S-box је веома једноставна. Прво се линеарно напуни тако да је: S0=0, ..., S255=255, Затим се генерише низ од 256 бајтова кључа (понављањем), Тада се S-box попуњава на следећи начин: За i=0 до 255 j=(j + Si + Кi)mod 256 Si и Sj замене места.
28
Блок шифре Блок шифром се назива она шифра код које се оригинална порука шифрује по групама (блоковима) од два и више елемената.
29
Својства блок шифара Начин шифровања сваког симбола зависи од начина шифровања суседних симбола. Сваки блок симбола се шифрује увек на исти начин, независно од места које заузима у поруци. Једнаке поруке, шифроване истим кључем, увек дају једнаке шифрате. Да би се дешифровао део поруке, није неопходно дешифровати је од почетка, довољно је дешифровати блок који нас интересује.
30
Елементи блок шифре Иницијална трансформација,
Једна криптографски слаба функција, поновљена r пута (“рунди"). Финална трансформација. Алгоритам за експанзију кључа.
31
Иницијална трансформација може садржати једну или две функције:
Прва рандомизује улазне податке, ради скривања блокова који садрже само јединице или само нуле, и обично не зависи од кључа. Друга функција отежава неке нападе на овакве системе, као на пример линеарну или диференцијалну криптоанализу. Друга функција зависи од кључа.
32
Свака рунда се састоји од једне нелинеарне функције, на коју утичу и делови кључа и делови улазних података, која може бити једносмерна или не. Нелинеарна функција може садржати само једну веома комплексну операцију, или низ сукцесивних различитих једноставнијих трансформација.
33
Рунде се међусобно повезују сабирањем по модулу 2, бит за бит, са подацима који долазе из претходне рунде или из иницијалне трансформације. На тај начин се формира инволутивна трансформација, када се понови идентичан процес (али уз кључ дешифровања дат обрнутим редом), чиме се реконструише отворени текст.
34
Финална трансформација служи да би операције шифровања и дешифровања биле симетричне.
Алгоритам за експанзију кључа има за циљ претварање кључа, обично ограничене дужине, у скуп подкључева који се могу састојати од већег броја бита.
35
Примери блок шифара: LUCIFER, DES, FEAL, IDEA, RC5, SKIPJACK, BLOWFISH, TWOFISH, AES (RIJNDAEL), итд.
36
DES Блок шифра највише коришћена у пракси је DES (Data Encryption Standard), који је NBS (National Bureau of Standards) увео у САД 1974. Дужина блока код ове шифре је 64 бита, а дужина кључа је 56 бита.
37
Опис рада DES-а DES алтернативно шифрује две половине блока.
Најпре се врши иницијална фиксна пермутација бита у блоку. Затим се блок дели на две половине. После тога се реализује једна модуларна операција која се понавља 16 пута (“рунди").
38
Ова операција се састоји од суме по модулу 2 леве половине блока са функцијом десне стране блока, на коју утиче и подкључ где је i редни број рунде. Затим лева и десна половина мењају места.
40
У 16. Рунди се изоставља размена места леве и десне половине блока, а алгоритам се завршава фиксном пермутацијом бита у блоку која је инверзна иницијалној. DES реализује инволутивну трансформацију и зато није потребно инвертовати функцију F у алгоритму за дешифровање. Зато F може да буде једносмерна функција, која садржи нелинеарне операције.
42
Прва манипулација се састоји од формирања вектора од 48 бита, на основу почетна 32 бита, путем линеарне експанзије. Затим се комбинује локални кључ од 48 бита са претходно генерисаним вектором сабирањем по модулу 2, бит за бит, чиме се добија други вектор од 48 бита, који се дели на 8 група по 6 бита. Свака од ових група улази у једну од 8 функција које се називају "S-box". Ове таблице су одговорне за нелинеарност DES-а.
43
Из сваке таблице излазе 4 бита
Из сваке таблице излазе 4 бита. Када се промени само један бит на улазу, промене се бар два бита на излазу. На крају, информација пролази кроз "P-box", што је једна фиксна пермутација, изабрана на такав начин да дифузија бита буде максимална у блоку од 32 бита.
44
Иако DES користи кључ од 64 бита, прва операција која се реализује је његова редукција на 56 бита, елиминацијом једног од сваких осам бита. Затим се врши преуређење преосталих бита. Потом се генерише 16 подкључева потребних у 16 рунди алгоритма. Сваки подкључ се састоји од 48 бита. За време дешифровања они се користе обрнтим редом у односу на онај коришћен током шифровања.
45
Генерисање подкључева:
Најпре се кључ од 56 бита подели на две половине од по 28 бита. Затим се те половине ротирају улево један или два бита, у зависности од редног броја рунде. После ротирања, половине се поново саставе и тако се поново добије 16 група од по 56 бита. Од ових бита се изабере по 48 бита из сваке групе, чиме се коначно добија 16 подкључева. Овај процес се назива “пермутација са компресијом". Изабрани бити су једнаки за све подкључеве.
46
Основне особине DES-а Међусобна зависност симбола – Сваки бит шифрата је једна сложена функција свих бита и свих бита отвореног текста. Промена улазних бита – Промена једног бита поруке проузрокује промену приближно 50% бита блока шифрата. Промена бита кључа – Промена једног бита кључа проузрокује промену приближно 50% бита блока шифрата.
47
Слаби кључеви – Постоје четири слаба кључа који омогућавају лако декриптирање шифроване поруке, зато што су у случају употребе тих кључева сви подкључеви K1 do K16 међусобно једнаки. Постоји 28 “делимично слабих" кључева који омогућавају лако декриптирање шифроване поруке, зато што су у случају употребе тих кључева само два или четири подкључа међусобно различити. Грешка при преносу дела шифрата простире се на цео блок у коме је тај део.
48
Један од проблема при употреби DES-a састоји се у томе што је дужина кључа који ова шифра користи недовољна када се има у виду данашње стање развоја технологије. Јасно је да кључ дужине 56 бита не обезбеђује довољан ниво безбедности имајући у виду процесне могућности савремених рачунара и ниво интеграције чипова. Такође су објављени и специјални напади на блок шифре, на пример на DES, као што су линеарна и диференцијална криптоанализа.
49
IDEA алгоритам IDEA (International Data Encryption Algorithm) је један од најзаступљенијих блок шифарских алгоритама у комерцијалним апликацијама. Популарност дугује инвентивном спрезању алгебарских операција у различитим доменима погодним за ефикасну софтверску имплементацију. Овим алгоритмом отворени текст се шифрује у блоковима од по 64 бита уз употребу кључа дужине 128 бита. Трансформација отвореног текста се одвија кроз осам циклуса и по завршетку осмог циклуса добија се шифровани текст.
50
IDEA алгоритам (наставак)
Формирање кључева који учествују у циклусима трансформације поруке М. Кључ се подели на осам шеснаесторки и тако се добију подкључеви Затим се изврши циклично померање садржаја кључа у лево за двадесет пет бита, тако добијена вредност подели на осам шеснаесторки и тако добијене вредности се доделе подкључевима
51
IDEA алгоритам (наставак)
Претходна процедура се изводи све док се не добију педесет два подкључа
52
IDEA алгоритам (наставак)
Ако ставимо да је: За r почев од 1 до 8 ради се следеће:
53
IDEA алгоритам (наставак)
Излазном трансформацијом: се добијају четири шеснаесторке бита чијом конкатенацијом с добија шифрат полазног блока. У претходно наведеним корацима, ознаке оператора имају следеће значење: означава модификовано множење по модулу (216+1), + означава сабирање по модулу 216, означава битску ексклузивну дисјункцију.
55
AES (Rijndael) Због слабости DES-a, у САД су одлучили да га замене новом блок-шифром, названом AES (Advanced Encryption Standard). Коначна верзија алгоритма AES била је изабрана између 5 кандидата. Изабран је алгоритам Rijndael.
56
Rijndael је итеративна блок-шифра са променљивом дужином блока, као и са променљивом дужином кључа.
Ове дужине могу бити 128, 192 и 256 бита. Основни елемент ове шифре се назива Стање. State је матрица са 4 врсте и Nb колона, где је Nb једнако дужини блока подељеној са 32. Кључ је такође дат матрицом са 4 врсте и Nk колона, где је Nk једнако дужини кључа подељеној са 32. Број рунди Nr код ове шифре је такође променљив и зависи од вредности Nb и Nk. Nr узима вредности између 10 и 14.
57
Трансформација у оквиру једне рунде састоји се од 4 корака
Нелинеарна супституција бајтова (ByteSub). Циклични померај врста матрице State (ShiftRow). Множење колона матрице State фиксним полиномом по модулу (MixColumn). Сабирање кључа рунде са матрицом State (RoundKey).
58
Да би алгоритам дешифровања био што сличнији алгоритму шифровања, последња рунда не садржи корак MixColumn.
59
ByteSub је нелинеарна трансформација бајтова, која независно трансформише сваки бајт матрице State.
Таблица супституције (под именом S-box) је инвертибилна и састоји се од две трансформације: Мултипликативна инверзија у GF(28) бајта, у којој се 00 трансформише у самог себе, и Афина трансформација над GF(2), дефинисана још једном матрицом. Инверзна трансформација од ByteSub садржи инверзну таблицу од ByteSub. Добија се инверзијом матрице афине трансформације из ByteSub и рачунањем мултипликативне инверзије резултата у GF(28).
60
Трансформација ShiftRow циклички помера врсте матрице State на различите начине: врста i се помера за Ci позиција, где Ci зависи од дужине блока Nb, i=0,...,3. Вредности Ci се налазе између 1 и 4. Инверзна трансформација од ShiftRow помера врсту i за (Nb-Ci) позиција, i=1,...3.
61
У трансформацији MixColumn, колоне матрице State се сматрају полиномима над GF(28) и множе се фиксним полиномом по модулу Инверзна трансформација од MixColumn је слична трансформацији MixColumn: свака колона матрице State се множи фиксним полиномом
62
У трансформацији RoundKey, кључ рунде се сабира са State по модулу 2, бит за бит.
Дужина кључа рунде је једнака Nb. Овај кључ се добија од шифарског кључа (Cipher key) помоћу посебног алгоритма (Key Shedule Algorithm). Трансформација RoundKey је аутоинвертибилна.
63
Алгоритам Key Shedule састоји се од две компоненте:
Експанзија кључа и Избор кључа рунде. Експанзија кључа трансформише шифарски кључ (Cipher Key) у кључ веће дужине, чијих су првих Nk низова од по 4 бајта једнака онима из Cipher Key. Постоји разлика између алгоритама експанзије у зависности од тога да ли је Nk 6 или Nk > 6. Алгоритам за избор кључа рунде користи 6 низова од по 4 бајта за сваку рунду, првих 6 за прву рунду, других 6 за другу, итд.
64
Слаби, као и делимично слаби кључеви не могу да се појаве код Rijndael-а, пошто алгоритми шифровања и дешифровања користе различите компоненте. Ова шифра је такође отпорна на линеарну и диференцијалну криптоанализу, као и на неке друге публиковане нападе на блок-шифре.
65
Подручја примене блок шифара
Блок-шифре су погодне за шифровање кратких порука – кључеви, идентификациони подаци, потписи, лозинке, итд. Нису погодне за шифровање великих количина података, као што су форматирани текст, листинзи програма, табеле, и нарочито графичке датотеке пошто се структура таквих докумената лако одређује.
66
Начини рада блок шифара – криптографски модови рада
Електронска кодна књига (Electronic Codebook, ECB) Уланчавање шифрованих блокова (Cipher Block Chaining, CBC) Шифрат у повратној спрези (Cipher Feedback, CFB) Излазни низ у повратној спрези (Output Feedback, OFB)
67
Електронска кодна књига
68
Уланчавање шифрованих блокова
69
На почетку се у померачки регистар уводи n бита иницијалног вектора (IV), који не мора да се дежи у тајности али је битно да се генерише на случајан начин. У овом моду рада, блок-шифра се претвара у секвенцијалну шифру, једнаке поруке се шифрују на различите начине променом IV, пропагација грешака у преносу се ограничава, а простор који разапиње кључ се не мења.
70
Уланчавање шифрованих блокова
71
Шифрат у повратној спрези
72
На почетку се у померачки регистар уводи n бита иницијалног вектора (IV) који не мора да се држи у тајности, али је погодно да се генерише на случајан начин. Отворени текст се дели на блокове од по m бита. Блокови се сабирају по модулу 2, бит за бит, где m може да варира између 1 и n. Померачки регистар дужине n бита се помера улево m бита после шифровања сваког блока. У овом начину рада блок-шифра се претвара у секвенцијалну шифру, једнаке поруке се могу шифровати на различите начине променоом вектора IV, ограничава се пропагација грешака у преносу, простор који разапиње кључ не мења се, а шифра је самосинхронишућа.
73
Шифрат у повратној спрези
74
Излазни низ у повратној спрези
75
На почетку се у померачки регистар дужине n бита уводи иницијални вектор (IV) који мора да се држи у тајности и да буде случајан. Отворени текст се дели на блокове од по m бита. Блокови од по m бита се сабирају по модулу 2, бит за бит, при чему дужина блока може да варира између 1 и n. Померачки регистар дужине n бита се помера улево m бита после шифровања сваког блока. У овом моду рада, блок-шифра се претвара у секвенцијалну шифру, која се користи као генератор шифарске секвенце, једнаке поруке се могу шифровати на различите начине променом вектора IV, нема пропагације грешака, простор који разапиње кључ се удвостручава и шифра није самосинхронишућа.
76
Излазни низ у повратној спрези
77
Мултипликација блок шифре
Једини начин на који се може повећати простор који разапиње кључ блок-шифре је процедура мултипликације шифре. Ради се о понављању шифре n пута, користећи n међусобно независних кључева.
78
Очигледно је да се на овакав начин безбедност повећава, али не увек пропорционално дужини кључа. На пример, за DES, ефективна дужина кључа приближно износи бита, уместо 56n. Наиме, ако би n било једнако 3, дужина кључа би била 112 бита.
79
Треба имати у виду такође да тако спрегнута шифра не сме да формира алгебарску групу. У том случају би две сукцесивне шифре са два различита кључа биле еквивалентне једној јединој шифри. Може се показати да ни DES ни Rijndael не чине алгебарску групу при мултипликацији.
80
Triple DES (ili 3DES)
81
Асиметрични шифарски системи
Шифарски систем тајним кључем је фамилија парова функција за сваки кључ k из скупа кључева K, дефинисана на следећи начин:
82
M и X су скупови отворених текстова и шифрата, респективно
За сваки отворени текст m из M важи:
83
Да би се користио овакав систем, корисници A и B се договоре да узму тајни кључ k из K. Ако A жели да пошаље поруку m из M кориснику B, шифрује је помоћу функције Ek, и резултат c се шаље кориснику B. Да би реконструисао оригиналну поруку, B дешифрује примљени шифрат c помоћу функције Dk,
84
У криптографији се сматра “лаким" прорачун који се може извршити у кратком времену.
За проблеме који се не могу решити у прихватљивом временском периоду, користећи најбољи познати алгоритам и најбољу расположиву технологију користи се термин “тешки" или “интрактабилни". Парови функција морају бити “лаки" за израчунавање за кориснике и морали би бити “тешки" за израчунавање за криптоаналитичара који познаје само c, тако да не може да реконструише ни m ни k.
85
Проблеми у криптографији са тајним кључевима
Дистрибуција кључева – два корисника морају да изаберу тајни кључ пре почетка комуникације и да за његово преношење користе сигуран канал. Овакав сигуран канал није увек на рсполагању.
86
Манипулација кључевима – У мрежи са n корисника, сваки пар корисника мора да има свој сопствени тајни кључ, што чини укупно кључева за ту мрежу. Немогућност реализације процедуре дигиталног потписа – У шифарским системима са тајним кључевима нема могућности, у општем случају, за дигитално потписивање порука, тако да онај који прима поруку не може да буде сигуран да је онај који му је послао поруку заиста њен аутор.
87
Појам система са јавним кључем
Ради увођења шифарских система са јавним кључевима, дефинише се једносмерна функција (One-Way Function, OWF) таква да је “лако" израчунати док је “тешко" израчунати За једносмерну функцију се каже да поседује замку (Trapdoor One-Way Function, TOF) ако се може лако инвертовати под условом да се познаје додатна информација. Таква додатна информација се назива замка.
88
Шифарски систем са јавним кључем се дефинише као фамилија једносмерних функција са замком, за сваки кључ k из K, таква да се замка може лако одредити. За свако k из K потребно је дефинисати ефикасан алгоритам за израчунавање али такав да је одређивање k и интрактабилно.
89
Ради имплементације шифарског система са јавним кључем, ако је дата фамилија једносмерних функција са замком, сваки корисник U изабере на случајан начин кључ u из K и публикује помоћу кога може да се израчуна је његов јавни кључ, док је замка неопходна за инвертовање његов тајни кључ.
90
Ако корисник A жели да пошаље поруку m другом кориснику B, пронађе у регистру јавних кључева јавни кључ корисника B, и пошаље кориснику B. Како једино B може да инвертује једино он може да реконструише поруку m
91
Проблем са системима са јавним кључевима састоји се у томе што није доказана егзистенција ни једносмерних функција ни једносмерних функција са замком. Упркос томе, постоје две функције које се сматрају кандидатима за функције са поменутим својствима. Производ целих бројева, чија инверзна функција је факторизација добијеног броја, Дискретна експоненцијација, чија је инверзна функција дискретни логаритам. Ове две функције су лаке за израчунавање, док се верује да то није случај са њиховим инверзним функцијама.
92
На пример, ако је дат број n, верује се да је тешко одредити његову декомпозицију на просте факторе и, са друге стране, ако су дати бројеви a и b, верује се да је тешко израчунати x тако да је На тај начин, сигурност система са јавним кључевима који се данас користе у пракси зависи од броја операција потребног да би се инвертовале поменуте функције и још увек није доказано да не постоји алгоритам за њихово лако инвертовање.
93
Појам система са јавним кључевима увели су Diffie и Hellman 1976
Два корисника, A и B, изаберу јавно коначну мултипликативну групу, G, реда n и један њен елемент A генерише случајан број a, израчуна у G и пошање овај елемент кориснику B.
94
B генерише случајан број b, израчуна у G и пошаље овај елемент кориснику A.
A прими и израчуна у G . B прими и израчуна у G. На тај начин, A и B поседују заједнички тајни елемент из групе G Криптоаналитичар S може да познаје G, n, и треба да израчуна елемент Али проблем је у томе што је тај прорачун еквивалентан израчунавању дискретног логаритма. Зато се верује да је “тежак".
95
Пример Нека је p прост број 53. Претпоставимо да је и нека је један од њених генератора. Протокол Diffie-Hellman је следећи низ операција: A бира израчунава и шаље 45 кориснику B.
96
B бира израчунава и шаље 12 кориснику A. A прима 12 и израчунава B прима 45 и израчунава Приватни кључ или тајна информација коју сада деле A и B је 21.
97
Криптоаналитичар S познаје , 2, 45 i 12, али не може да реконструише да је информација коју деле A и B једнака 21 зато што мора да израчуна дискретни логаритам да би то одредио.
98
Rivest-Shamir-Adleman (RSA) алгоритам
Сваки корисник U изабере два проста броја (данас се препоручује да ти бројеви имају више од 200 цифара) p и q и рачуна То значи да је група коју користи корисник U
99
Ред те групе је: Кориснику U је лако да израчуна овај ред, пошто зна p и q. Затим U изабере позитиван број e, такав да је узајамно прост са редом групе, тј. такав да је НЗД
100
Помоћу генерализованог Еуклидовог алгоритма корисник U израчуна инверзни елемент од e у
, d. Значи при чему је Јавни кључ корисника U је пар док је његов приватни кључ број d. Бројеви p, q и такође морају да се држе у тајности.
101
Ако корисник A жели да пошаље поруку m из M другом кориснику B, користи јавни кључ корисника B, да би израчунао вредност коју шаље кориснику B. Да би реконструисао поруку, B рачуна
102
Пример: Размотримо кодирање алфабета које трансформише слова A до Z у бројеве 0 до 25 (користићемо енглески алфабет). Желимо да пошаљемо поруку кориснику B. Корисник B бира два проста броја: и , рачуна што значи да ради са групом
103
Ред ове групе је: B бира број и верификује да је НЗД Затим одређује инверзни елемент од по модулу Овај број је Значи јавни кључ корисника B је: док остале вредности држи у тајности.
104
Да бисмо послали поруку кориснику B, морамо да одредимо на првом месту њену дужину.
Имаћемо у виду да се кодовање слова алфабета врши у бази 26. Како порука мора да буде елемент групе са којом радимо, њена дужина не може да пређе вредност Зато ако се има у виду да је порука може да има највише три слова.
105
Ако желимо да пошаљемо дужу поруку, морамо да је поделимо на групе од по три слова.
У пракси је дужина поруке много већа, пошто је n број са много више цифара.
106
Ако, на пример, желимо да пошаљемо кориснику B поруку m="YES", процедура је следећа:
Претпостаимо да смо корисник A чији је јавни кључ и чији је приватни кључ при чему је Да бисмо послали поруку m, морамо да је кодујемо, тј. да је изразимо у бази 26 тако да буде елемент групе која се користи, што значи да припада
107
Сада шифрујемо m јавним кључем корисника B:
Декодујемо шифровану поруку: Значи, кориснику B се шаље следећи текст: "BFIC".
108
Да би B могао да реконструише поруку, мора да кодује примљене податке у бази 26, а затим да реализује следеће операције: Сада може да реконструише m m се декодује и добија се оригинални текст
109
У пракси, ради смањења сложености операција у шифарском систему RSA, обично се бира мали јавни кључ, тако да се порука може послати на најбржи могући начин. Многи корисници користе унутар својих јавних кључева исти експонент (најчешће коришћени експоненти су 3 и 216+1). Ова чињеница не компромитује безбедност шифарског система и омогућава да шифровање порука буде много брже него дешифровање.
110
Са алгоритамске тачке гледишта, ако је k број бита модула n, за извршење операција са јавним кључем потребно је корака, а за генерисање кључева потребно је корака. Због тога је у практичној реализацији софтвера шифарски систем са тајним кључем DES најмање 100 пута бржи од RSA, а у практичној реализацији хардвера DES је између 1000 и пута бржи од RSA. Ипак, шифарски систем RSA се користи у пракси за потребе технологије дигиталног потписа.
111
Primer zadatka: Parametri RSA algoritma.
Operacije sa privatnim i javnim ključem. Ukoliko su vrednosti parametara u RSA algoritmu: p=17, q=11, javni eksponent e=3. Odrediti vrednost parametra n (modulus) i privatnog eksponenta d?
112
Rešenje: a) Parametri RSA algoritma su:
p, q, dva prosta broja (privatni, generisani). n=p*q (javni, izračunava se) e pri čemu NZD((p-1)*(q-1),e)=1 (javni, odabira se) d *e1mod (p-1)*(q-1), (privatni, izračunava se)
113
Rešenje: Operacije sa privatnim i javnim ključem. Javni ključ KU={e,n}
Privatni ključ KR={d} važeće su sledeće relacije za poruke otvorenog teksta M za poruke šifrata C, i celobrojne vrednosti e i d operacija sa javnim ključem: operacija sa privatnim ključem:
114
Rešenje: c) Modulus n = p*q => n=17*11=187 tj.
3 * d mod (17-1)*(11-1) = 1, 3 * d mod 160 = 1 Niz brojeva x za koje je x mod 160 =1 je 161 mod 160 =1, 321 mod 160 =1, 481 mod 160 =1, 641 mod 160 =1, 801 mod 160 =1, . stoga proizvod 3*d je najmanji broj x koji zadovoljava da je 3*d = x gde je d celobrojna pozitivna vrednost tj. Prvi kandidat 3*d = => ne postoji ceo broj d koji zadovoljava jednačinu Sledeći kandidat 3*d = => d = 321/3 = 107.
115
Hash функције Шифарски системи са јавним кључевима, као и системи за дигитални потпис могу бити веома спори. Такође, у неким случајевима, дужина дигиталног потписа може бити већа или једнака дужини саме поруке која се потписује. Да би се решили ови проблеми користе се hash функције.
116
Hash функција је израчунљива функција која примењена на поруку m променљиве дужине даје њену репрезентацију (отисак) фиксне дужине која се назива њеном hash вредношћу. Hash функције се дефинишу на следећи начин: У општем случају, је много мањих димензија од m. На пример, m може да има дужину од једног мегабајта, док може имати свега 128 или 160 бита.
117
Једносмерна hash функција је hash функција H дефинисана тако да је за сваку компримовану поруку тешко реконструисати оригиналну поруку m за коју важи Дакле, једносмерна hash функција је hash функција која је такође и једносмерна (One Way). Ако је hash функција једносмерна, тј. Тешка за инвертовање, такође се назива и резиме функција (Message-digest function). У том случају, уобичајено је да се вредност назива резиме од m, или отисак поруке m.
118
Употребом hash функција, проблем дужине поруке или дигиталног потписа се решава тако што се уместо да се шифрује или дигитално потписује цела порука m, потписује се или шифрује само резиме поруке Hash функције које се највише користе у криптографске сврхе су MD2, MD4 i MD5 (Message Digest), које је предложио Rivest. Ове функције дају резимее дужине 128 бита. Поред њих, веома је популарна и SHA-1 (Secure Hash Algorithm) функција (NIST) која даје отисак поруке дужине 160 бита.
119
MD5 алгоритам MD5 алгоритам процесира улазну поруку у блоковима од 512 бита, подељеним у 16 подблокова дужине 32 бита. Наиме, прво се порука проширује на тај начин да се добије порука која је по дужини тачно 64 бита краћа од одговарајућег мултипла од 512 бита. Проширивање је врло једноставно, прво се на крај поруке дода један бит јединице, праћен захтеваним бројем нула. Затим се 64-битна репрезентација дужине поруке прикључи резултату. Излаз алгоритма представља скуп од 4 32-битна блока, спојена тако да једнозначно формирају 128-битну hash вредност.
120
MD5 алгоритам (наставак)
Алгоритам се састоји од следећих корака: Прво се порука обради тако да је њена дужина тачно мултипл од 512 бита Затим се иницијализују 4 32-битне променљиве (тзв. променљиве уланчавања) А=0x B=0x89abcdef C=0xfedcba98 D=0x Затим почиње главна петља алгоритма која се извршава за све блокове дужине 512 бита дате поруке.
121
MD5 алгоритам (наставак)
Четири иницијалне променљиве се копирају у променљиве a, b, c и d. Главна петља се састоји од 4 фазе које су веома сличне. Свака фаза користи различиту операцију 16 пута, која се састоји од примене одређене нелинеарне функције над три од четири променљиве a, b, c или d. Затим се тако добијени резултат додаје четвртој променљивој, подблоку поруке и једној константи. Добијени резултат се ротира улево променљиви број бита и додаје се једној од четири променљиве a, b, c или d. На крају резултат замењује једну од променљивих a, b, c или d.
122
MD5 алгоритам (наставак)
123
MD5 алгоритам (наставак)
Постоје четири нелинеарне функције, по једна се користи у свакој операцији (различита у свакој фази): F(X,Y,Z) = (X ^ Y) v (( X) ^ Z) G(X,Y,Z) = (X ^ Z) v (Y ^ ( Z) H(X,Y,Z) = X Y Z I(X,Y,Z) = Y (X v ( Z )) где наведени функцијски знаци представљају ( - XOR функција, ^ - AND функција, v - OR функција, и - NOT функција).
124
MD5 алгоритам (наставак)
Ако Мј представља j-ти подблок поруке, j =0, …, 15, а <<< s представља функцију циркуларног шифтовања за s бита, тада се поменуте четири операције могу представити на следећи начин: FF(a,b,c,d,Mj,s,ti) означава: a = b + ((a + F(b,c,d) + Mј + ti) <<< s) GG(a,b,c,d,Mj,s,ti) означава: a = b + ((a + G(b,c,d) + Mј + ti) <<< s) HH(a,b,c,d,Mj,s,ti) означава: a = b + ((a + H(b,c,d) + Mj + ti) <<< s) II(a,b,c,d,Mj,s,ti) означава: a = b + ((a + I(b,c,d) + Mj + ti) <<< s) Након претходно описаног поступка, a, b, c и d се додају на A, B, C и D, респективно, и алгоритам наставља са наредним блоком података. Крајњи резултат се формира конкатенацијом од добијених A, B, C и D.
125
MD5 алгоритам (наставак)
126
SHA-1 алгоритам SHA-1 алгоритам такође процесира улазну поруку у блоковима од 512 бита, подељеним у 16 подблокова дужине 32 бита. Прво се порука проширује на исти начин као и у MD5 алгоритму, тако да се добије порука која је по дужини тачно 64 бита краћа од одговарајућег мултипла од 512 бита. Наиме, прво се на крај поруке дода један бит јединице, праћен захтеваним бројем нула. Затим се 64-битна репрезентација дужине поруке прикључи резултату. Излаз алгоритма представља скуп од 5 32-битна блока, спојена тако да једнозначно формирају 160-битну hash вредност.
127
SHA-1 алгоритам (наставак)
Алгоритам се састоји од следећих корака: Прво се порука обради тако да је њена дужина тачно мултипл од 512 бита Затим се иницијализују 5 32-битне променљиве (тзв. променљиве уланчавања) А=0x B=0xefcdab89 C=0x98badcfe D=0x Е=0xc3d2elf0 Затим почиње главна петља алгоритма која се извршава за све блокове дужине 512 бита дате поруке.
128
SHA-1 алгоритам (наставак)
5 иницијалних променљивих се копира у променљиве a, b, c, d и e. Главна петља се састоји од 4 фазе које су веома сличне. Свака фаза користи различиту операцију 20 пута, која се састоји од примене одређене нелинеарне функције над три од пет променљивих a, b, c, d или e. Затим се тако добијени резултат процесира слично као и у MD5 алгоритму.
129
SHA-1 алгоритам (наставак)
Блок поруке се трансформише од битних речи (М0, ..., М15) у битних речи (W0, …, W79) према следећем: Wt=Mt за t=0 до 15 Wt=(Wt-3 Wt-8 Wt-14 Wt-16) <<< 1, за t=16 до 79 Главна петља се може описати: За t=0 до 79 if 0 ≤ i ≤ 19 then f := (b and c) or ((not b) and d) k := 0x5A827999 else if 20 ≤ i ≤ 39 f := b xor c xor d k := 0x6ED9EBA1 else if 40 ≤ i ≤ 59 f := (b and c) or (b and d) or (c and d) k := 0x8F1BBCDC else if 60 ≤ i ≤ 79 k := 0xCA62C1D6 TEMP=(a<<<5)+F(b,c,d)+e+Wt+Kt e=d d=c c=b<<<30 b=a a=TEMP
130
Secure Hash Standard 1. Name of Standard: Secure Hash Signature Standard (SHS) (FIPS PUB 180-2). 2. Category of Standard: Computer Security Standard, Cryptography. 3. Explanation: This Standard specifies four secure hash algorithms - SHA-1, SHA-256, SHA-384, and SHA for computing a condensed representation of electronic data (message) + SHA-224 (2004). When a message of any length < 264 bits (for SHA-1 and SHA-256) or < 2128 bits (for SHA-384 and SHA-512) is input to an algorithm, the result is an output called a message digest. The message digests range in length from 160 to 512 bits, depending on the algorithm. Secure hash algorithms are typically used with other cryptographic algorithms, such as digital signature algorithms and keyed-hash message authentication codes, or in the generation of random numbers (bits).
131
Secure Hash Standard The four hash algorithms specified in this standard are called secure because, for a given algorithm, it is computationally infeasible 1) to find a message that corresponds to a given message digest, or 2) to find two different messages that produce the same message digest. Any change to a message will, with a very high probability, result in a different message digest. This will result in a verification failure when the secure hash algorithm is used with a digital signature algorithm or a keyed-hash message authentication algorithm. This standard supersedes FIPS 180-1, adding three algorithms (+ SHA-224 (2004)) that are capable of producing larger message digests. The SHA-1 algorithm specified herein is the same algorithm that was specified previously in FIPS 180-1, although some of the notation has been modified to be consistent with the notation used in the SHA-256, SHA-384, and SHA-512 algorithms.
132
Secure Hash Standard Each algorithm can be described in two stages: preprocessing and hash computation. Preprocessing involves padding a message, parsing the padded message into m-bit blocks, and setting initialization values to be used in the hash computation. The hash computation generates a message schedule from the padded message and uses that schedule, along with functions, constants, and word operations to iteratively generate a series of hash values. The final hash value generated by the hash computation is used to determine the message digest.
133
Secure Hash Standard The four algorithms differ most significantly in the number of bits of security that are provided for the data being hashed – this is directly related to the message digest length. When a secure hash algorithm is used in conjunction with another algorithm, there may be requirements specified elsewhere that require the use of a secure hash algorithm with a certain number of bits of security. For example, if a message is being signed with a digital signature algorithm that provides 128 bits of security, then that signature algorithm may require the use of a secure hash algorithm that also provides 128 bits of security (e.g., SHA-256).
134
Secure Hash Standard
135
SHA-1 SHA-1 may be used to hash a message, M, having a length of l bits, where 0 < l < 264. The algorithm uses a message schedule of eighty 32-bit words, 2) five working variables of 32 bits each, and 3) a hash value of five 32-bit words. The final result of SHA-1 is a 160-bit message digest. The words of the message schedule are labeled W0, W1,…, W79. The five working variables are labeled a, b, c, d, and e. SHA-1 also uses a single temporary word, T.
136
SHA-256 SHA-256 may be used to hash a message, M, having a length of l bits, where 0 < l < 264. The algorithm uses a message schedule of sixty- four 32-bit words, 2) eight working variables of 32 bits each, and 3) a hash value of eight 32-bit words. The final result of SHA-256 is a 256-bit message digest. The words of the message schedule are labeled W0, W1,…, W63. The eight working variables are labeled a, b, c, d, e, f, g, and h. SHA- 256 also uses two temporary words, T1 and T2.
137
SHA-512 SHA-512 may be used to hash a message, M, having a length of l bits, where 0 < l < 2128. The algorithm uses a message schedule of eighty 64-bit words, 2) eight working variables of 64 bits each, and 3) a hash value of eight 64-bit words. The final result of SHA-512 is a 512-bit message digest. The words of the message schedule are labeled W0, W1,…, W79. The eight working variables are labeled a, b, c, d, e, f, g, and h. SHA-512 also uses two temporary words, T1 and T2.
138
SHA-384 SHA-384 may be used to hash a message, M, having a length of l bits, where 0 < l < 2128. The algorithm is defined in the exact same manner as SHA-512, with the following two exceptions: The initial hash value has different value; and 2. The 384-bit message digest is obtained by truncating the final hash value, to its leftmost 384 bits.
139
SHA-224 SHA-224 may be used to hash a message, M, having a length of l bits, where 0 < l < 264. The function is defined in the exact same manner as SHA-256, with the following two exceptions: For SHA-224, the initial hash value has different value, 2. The 224-bit message digest is obtained by truncating the final hash value to its leftmost 224 bits.
140
NIST стандард дигиталног потписа (Digital Signature Standard, DSS)
NIST FIPS PUB DSS се базира на криптографији са јавним кључем која користи два кључа: јавни и приватни кључ. DSS укључује три алгоритма за дигитални потпис: RSA, DSA (Digital Signature Algorithm), ECDSA (Elliptic Curve DSA).
141
DSА - Digital Signature Algorithm
DSA генерисање кључева, DSA генерисање потписа, DSA верификација потписа.
142
DSА генерисање кључева
Страна А у комуникацији извршава следеће: Избор простог броја q таквог да је 2159 < q < 2160. Избор 1024 битног простог броја p са особином q|p-1. Избор елемента h Zp* и израчунавање g=h(p-1)/q mod p; поновити израчунавање све док g1. Избор случајног целог броја x [1, q-1]. Израчунати y=gx mod p. Јавни кључ А је: (p,q,g,y). Приватни кључ А је: x.
143
DSA генерисање потписа
У циљу потписивања поруке m А извршава следеће: Избор случајног целог броја k [1, q-1]. Израчунати r=(gk mod p) mod q. Израчунати k-1 mod q. Израчунати s= k-1 (h(m)+xr) mod q, где h означава SHA-1 хеш вредност. Ако је s=0, вратити се на почетни корак. Дигитални потпис поруке m је уређени пар целих бројева (r,s).
144
DSA верификација потписа
У циљу верификације потписа поруке m, B извршава следеће: Узима јавни кључ А: (p,q,g,y). Израчунати w=s-1 mod q и h(m). Израчунати u1=h(m)w mod q и u2=rw mod q. Израчунати v=(gu1yu2 mod p) mod q. Верификација дигиталног потписа је успела ако и само ако је v=r.
145
ECDSА – Elliptic Curve DSA
ECDSA генерисање кључева, ECDSA генерисање потписа, ECDSA верификација потписа.
146
ECDSА генерисање кључева
Страна А у комуникацији извршава следеће: Избор елиптичне криве Е која је дефинисана на простором Zp. Број тачака елиптичке криве E треба да буде дељив са великим простим бројем n. Izbor tačke P E(Zp) реда n. Избор случајног целог броја d [2, n-2]. Израчунати Q=dP. Јавни кључ А је: (E,P,n,Q). Приватни кључ А је: d.
147
ECDSA генерисање потписа
У циљу потписивања поруке m А извршава следеће: Избор случајног целог броја k [2, n-2]. Израчунати kP=(x1,y1) и r=x1 mod n. Ако је r=0 вратити се на корак 1. Израчунати k-1 mod n. Израчунати s= k-1 (h(m)+dr) mod n, где h означава SHA-1 хеш вредност. Ако је s=0, вратити се на почетни корак. Дигитални потпис поруке m је уређени пар целих бројева (r,s).
148
ECDSA верификација потписа
У циљу верификације потписа поруке m, B извршава следеће: Узима јавни кључ А: (E,P,n,Q). Верификује да су r и s цели бројеви у интервалу [1, n-1]. Израчунати w=s-1 mod n и h(m). Израчунати u1=h(m)w mod n и u2=rw mod n. Израчунати u1P+u2Q=(x0,y0) и v=x0 mod n. Верификација дигиталног потписа је успела ако и само ако је v=r.
149
Дигитални потпис H1 M M1 H S S EA DB H Приватни кључ пошиљаоца
HASH трансф. H1 M M1 порука М HASH трансф. H S S EA DB H Приватни кључ пошиљаоца Јавни кључ пошиљаоца
150
Дигитална енвелопа Alice’s random SYM key Digital envelope (1) Bob’s
public key (3) (2)
151
Digital Envelope (cont’d)
Message decryption (e.g. DES) *#$fjda^j u539! 3tt389E &* ... A quick brown fox jumped ... Symmetric Key Bob’s Private Key Asymmetrical algorithm (e.g. RSA)
152
PKCS (Public Key cryptographic Standard)
Documents: PKCS #1:RSA Cryptography Standard PKCS #2: Note below PKCS #3:Diffie-Hellman Key Agreement Standard PKCS #4: Note below PKCS #5:Password-Based Cryptography Standard PKCS #6:Extended-Certificate Syntax Standard PKCS #7:Cryptographic Message Syntax Standard PKCS #8:Private-Key Information Syntax Standard PKCS #9:Selected Attribute Types PKCS #10:Certification Request Syntax Standard PKCS #11:Cryptographic Token Interface Standard PKCS #12:Personal Information Exchange Syntax Standard PKCS #13: Elliptic Curve Cryptography Standard PKCS #15: Cryptographic Token Information Format Standard Note: PKCS #2 and PKCS #4 have been incorporated into PKCS #1
153
Suitable algorithms This material is dedicated to an overview of the algorithms and related parameters deemed suitable for creating signature keys, for hashing data to be signed and for generating and verifying qualified electronic signatures, and the date until which this suitability is pronounced valid. The security of a qualified electronic signature depends primarily on the strength of the algorithms used. The algorithms described in the following are deemed suitable for qualified electronic signatures for the next seven years (i.e. until the end of 2014) at least.
154
Suitable Hash Algorithms
The following hash functions with different hash lengths (e.g. SHA-224 is a 224-Bit hash function) are suitable for guaranteeing long-term security: SHA-224, SHA-256, SHA-384, SHA-512 [2]. These four hash functions are suitable for application in qualified electronic signature procedures in the coming seven years, i.e. until the end of 2014 (at least). The table below summarises the suitability of the hash functions. * i.e. for the generation and verification of qualified certificates but not for the generation and verification of other qualified signed data. ** i.e. for the generation of qualified certificates containing serial numbers with ≥ 20 bit entropy but not for the generation and verification of other qualified signed data. *** exclusively for the verification of qualified certificates.
155
Suitable Signature Procedures
The following signature algorithms are suitable to meet the requirements of the Signature Act: RSA [4] DSA [1], [4] DSA variants based on elliptic curves, most notably: ECDSA [1], [5], [10], [11], ECKDSA, ECGDSA [11], Nyberg-Rueppel signatures [19], [6].
156
RSA The table below summarises the minimum bit lengths.
157
DSA The table below summarises the DSA bit lengths.
158
a) DSA variants based on groups E(Fp)
The table below summarises the bit lengths of DSA variants based on groups E(Fp).
159
b) DSA variants based on groups E(F2m)
The table below summarises the bit lengths for DSA variants based on groups E(F2m).
160
ХВАЛА НА ПАЖЊИ
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.