Titkos´ıt´asi rendszerek CCA-biztons´aga Doktori (PhD) ´ertekez´es
´ szerz˝o: MARTON Gy¨ongyv´er t´emavezet˝o: Dr. Peth˝o Attila Debreceni Egyetem Term´eszettudom´anyi Doktori Tan´acs Informatikai Tudom´anyok Doktori Iskola Debrecen, 2013
Ezen ´ertekez´est a Debreceni Egyetem Term´eszettudom´anyi Doktori Tan´acs Informatikai Tudom´ anyok Doktori Iskola Elm´eleti sz´am´ıt´ astudom´ any, adatv´edelem ´es kriptogr´afia programja keret´eben k´esz´ıtettem a Debreceni Egyetem term´eszettudom´anyi doktori (PhD) fokozat´ anak elnyer´ese c´elj´ ab´ ol. Debrecen, 20 . . . . . . ........................ M´arton Gy¨ongyv´er jel¨olt
Tan´ us´ıtom, hogy M´ arton Gy¨ ongv´er doktorjel¨olt 20 . . . - 20 . . . k¨oz¨ott a fent megnevezett Doktori Iskola Elm´eleti sz´am´ıt´astudom´any, adatv´edelem ´es kriptogr´ afia programj´anak keret´eben ir´any´ıt´asommal v´egezte munk´ aj´ at. Az ´ertekez´esben foglalt eredm´enyekhez a jel¨olt ¨on´all´o alkot´ o tev´ekenys´eg´evel meghat´aroz´oan hozz´aj´arult. Az ´ertekez´es elfogad´ as´ at javasolom. Debrecen, 20 . . . . . . ........................ Dr. Peth˝o Attila t´emavezet˝o
Titkos´ıt´asi rendszerek CCA-biztons´aga ´ Ertekez´ es a doktori (PhD) fokozat megszerz´ese ´erdek´eben az informatika tudom´any´agban ´Irta: M´ arton Gy¨ ongyv´er okleveles informatikus K´eszz¨ ult a Debreceni Egyetem Informatikai Tudom´anyok Doktori Iskol´aja, Elm´eleti sz´ am´ıt´ astudom´ any, adatv´edelem ´es kriptogr´afia programja keret´eben T´emavezet˝ o: Dr. Peth˝o Attila A doktori szigorlati bizotts´ ag: eln¨ok:
Dr.
.....................
.....................
tagok:
Dr.
.....................
.....................
Dr.
.....................
.....................
A doktori szigorlat id˝ opontja: 20 . . . . . . . . . . . . . . . Az ´ertekez´es b´ır´ al´ oi: Dr. . . . . . . . . . . . . . . . . . . . . .
.....................
Dr.
.....................
.....................
Dr.
.....................
.....................
A b´ır´al´obizotts´ ag: eln¨ok:
Dr.
.....................
.....................
tagok:
Dr.
.....................
.....................
Dr.
.....................
.....................
Dr.
.....................
.....................
Dr.
.....................
.....................
Az ´ertekez´es v´ed´es´enek id˝ opontja: 20 . . . . . . . . . . . . . . .
Tartalomjegyz´ek 1. Bevezet˝ o 1.1. Titkos´ıt´ asi alapfogalmak . . . . . . . . . . . . . . . . . . . . ´ 1.2. Attekint˝ o . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Defin´ıci´ ok, jel¨ ol´esek . . . . . . . . . . . . . . . . . . . . . . .
11 11 15 17
2. Szimmetrikus titkos´ıt´asi rendszerek biztons´aga 2.1. Bevezet˝ o. . . . . . . . . . . . . . . . . . . . . . . . 2.2. Passz´ıv t´ amad´ oval szembeni biztons´ag . . . . . . . 2.3. Akt´ıv t´ amad´ oval szembeni biztons´ag . . . . . . . . 2.3.1. V´ alasztott ny´ılt sz¨ oveg alap´ u t´amad´as . . . 2.3.2. V´ alasztott rejtjelezett sz¨oveg alap´ u t´amad´as 2.4. Szimmetrikus titkos´ıt´ asi rendszerek oszt´alyoz´asa . 2.4.1. Folyamtitkos´ıt´ o rendszerek . . . . . . . . . 2.4.2. Blokktitkos´ıt´ o rendszerek . . . . . . . . . .
. . . . . . . .
21 21 22 24 25 26 27 27 28
3. Hash f¨ uggv´enyek ´es u ¨zenethiteles´ıt˝o k´odok 3.1. Hash f¨ uggv´enyek . . . . . . . . . . . . . . . . . . . . . . . . ¨ 3.2. Uzenethiteles´ ıt˝ o k´ odok . . . . . . . . . . . . . . . . . . . . .
31 31 35
4. Aszimmetrikus titkos´ıt´asi rendszerek biztons´aga 4.1. A matematikai modell . . . . . . . . . . . . 4.2. Egyir´ any´ u f¨ uggv´enyek . . . . . . . . . . . . 4.3. Kriptogr´ afiai felt´etelez´esek . . . . . . . . . . 4.3.1. A faktoriz´ aci´ os felt´etelez´es . . . . . .
41 41 43 44 44
7
. . . .
. . . .
. . . .
. . . .
. . . . . . . .
. . . .
. . . . . . . .
. . . .
. . . . . . . .
. . . .
. . . . . . . .
. . . .
. . . .
4.3.2. Az RSA-felt´etelez´es . . . . . . . . . . . . . 4.3.3. A kvadratikus marad´ek felt´etelez´es . . . . . 4.3.4. A diszkr´et logaritmus felt´etelez´es . . . . . . 4.3.5. A d¨ ont´esi Diffie–Hellman-felt´etelez´es . . . . 4.4. Biztons´ ag´ertelmez´esek . . . . . . . . . . . . . . . . 4.4.1. V´ alasztott ny´ılt sz¨ oveg alap´ u t´amad´as . . . 4.4.2. V´ alasztott rejtjelezett sz¨ oveg alap´ u t´amad´as 4.5. Hibrid rendszerek . . . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
45 45 46 46 47 47 48 50
5. CCA-biztons´ag´ u kulcsbe´agyaz´asi mechanizmusok 5.1. Az RSA-rendszer . . . . . . . . . . . . . . . 5.2. A Rabin-rendszer . . . . . . . . . . . . . . . 5.3. A Blum–Goldwasser-rendszer . . . . . . . . 5.4. Az ElGamal-rendszer . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
55 55 59 62 67
6. Az u ´j kulcsbe´agyaz´asi mechanizmus 6.1. Bevezet˝ o. . . . . . . . . . . . . . 6.2. Az u ´j CPA-biztons´ ag´ u rendszer . 6.2.1. A rendszer le´ır´ asa . . . . 6.2.2. A rendszer helyess´ege . . 6.2.3. A rendszer biztons´ aga . . 6.2.4. A rendszer hat´ekonys´ aga . 6.3. Az u ´j CCA-biztons´ ag´ u rendszer . 6.3.1. A rendszer le´ır´ asa . . . . 6.3.2. A rendszer helyess´ege . . 6.3.3. A rendszer biztons´ aga . . 6.3.4. A rendszer hat´ekonys´ aga .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
73 73 74 74 75 76 78 78 78 80 81 87
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
7. Kulcsbe´agyaz´asi mechanizmusok implement´aci´oja
89
¨ 8. Osszefoglal´ o
95
9. Summary
99
Irodalomjegyz´ek
103
8
A. Refer´alt nemzetk¨ ozi foly´ oiratban megjelent cikkek
111
B. Lektor´alt egyetemi jegyzet
113
C. Tudom´anyos konferencia k¨ otetben megjelent cikkek
115
D. Tudom´anyos konferenci´akon elhangzott el˝oad´asok
117
E. K¨osz¨onetnyilv´an´ıt´asok
119
10
1. fejezet
Bevezet˝ o 1.1. Titkos´ıt´asi alapfogalmak A kriptogr´ afi´ an bel¨ ul k´et, k¨ ul¨ onb¨oz˝o elven m˝ uk¨od˝o titkos´ıt´asi rendszert k¨ ul¨ onb¨ oztet¨ unk meg: a szimmetrikus vagy titkos kulcs´ u (privatekey/symmetric encryption) ´es az aszimmetrikus vagy nyilv´anos kulcs´ u titkos´ıt´asi (public-key/asymmetric encryption) rendszert. A gyakorlatban legt¨obbsz¨ or hibrid rendszereket alkalmaznak, azaz ezek egy¨ uttes haszn´alata mer¨ ul fel, ha k´et egym´ ast´ ol t´ avol es˝o f´el (sz´am´ıt´og´ep, t´ablag´ep, mobiltelefon) szeretne bizalmas inform´ aci´ ocser´et megval´os´ıtani. Ezt els˝osorban az´ert teszik, mert a szimmetrikus titkos´ıt´ok hat´ekonys´aga messzemen˝oen jobb, mint az aszimmetrikus titkos´ıt´ okk´e, a szimmetrikus titkos´ıt´ok, pedig nem tudj´ak megoldani a k´et t´ avoli f´el biztons´agos kulcscser´ej´et. Mindk´et rendszer eset´eben a titkos´ıtand´o inform´aci´ot a szakirodalom ny´ılt sz¨ovegnek (plaintext) nevezi, a titkos´ıtott inform´aci´ot, pedig rejtjelezett sz¨ovegnek (ciphertext) ([29], [18], [44]). Ahhoz, hogy a rendszerben a megfelel˝ o titkos´ıtott inform´ aci´ ot l´etrehozzuk egy kulcsnak nevezett inform´aci´o ker¨ ul felhaszn´ al´ asra, amelynek alkalmaz´asi m´odja, a fent le´ırtak alapj´an k´et nagy csoportra osztja a titkos´ıt´o algoritmusokat. A rejtjelezett sz¨oveg el˝o´ all´ıt´ as´ at rejtjelez´esnek vagy titkos´ıt´asnak (encryption) nevezz¨ uk, a ny´ılt sz¨oveg vissza´ all´ıt´ as´ anak folyamat´ara a visszafejt´es (decryption) megnevez´est fogjuk haszn´ alni. A Kerckhoffs-elv szerint [37] a rendszerek ´altal 11
el˝o´ırt titkos´ıt´o algoritmusok nyilv´ anosak, s˝ot standard el˝o´ır´asok alapj´an kell ˝oket implement´ alni, protokollokban felhaszn´alni. A titkos´ıt´o rendszerek eset´eben ´eppen ez´ert pontosan specifik´alt form´aban kell megadni a kulcsgener´al´as, titkos´ıt´ as ´es visszafejt´es algoritmusait, illetve matematikai eszk¨oz¨okkel kell bizony´ıtani ezen algoritmusok helyes m˝ uk¨od´es´et ´es biztons´ag´at. Titkos´ıt´o rendszerek eset´eben, tulajdonk´eppen k´etf´ele biztons´agr´ol besz´elhet¨ unk, felt´etel n´elk¨ uli biztons´ agr´ol vagy inform´aci´oelm´eleti biztons´agr´ol (information-theoretic security) vagy m´ask´eppen mondva t¨ok´eletes biztons´ agr´ ol (perfect security) ´es sz´am´ıt´astechnikai biztons´agr´ol (computational security). Ezen fogalmak alatt a k¨ovetkez˝o bekezd´esekben le´ırtakat ´ertj¨ uk ([7], [45]). Az inform´ aci´ oelm´eleti biztons´ ag eset´eben a kriptorendszert t´amad´o f´el sz´am´ıt´asi kapacit´ as´ ara nem adunk korl´atot, azaz azt felt´etelezz¨ uk, hogy a t´amad´ o korl´ atlan sz´ am´ıt´ asi kapacit´assal rendelkezik. A fentiek alapj´an, inform´ alisan azt mondjuk, hogy egy titkos´ıt´o rendszer t¨ok´eletesen biztons´agos, ha egy t´ amad´ o korl´ atlan sz´am´ıt´asi kapacit´as´at felt´etelezve sem t¨orhet˝o fel a rendszer. Az OTP (one-time pad) titkos´ıt´o rendszert lesz´am´ıtva, amelynek egyik v´ altozat´ at Vernam mutatta be 1917-ben [63], ´es amely implement´ al´ as szempontj´ ab´ ol sz´amos neh´ezs´eget vet fel, a l´etez˝o titkos´ıt´o rendszerek egyike sem rendelkezik inform´aci´oelm´eleti biztons´aggal. Gyakorlati megval´ os´ıthat´ os´ ag szempontj´ab´ol a modern kriptogr´afia feladja az olyan titkos´ıt´ o rendszerek szerkeszt´es´enek ig´eny´et, amelyek t¨ok´eletesen biztons´ agosak. Az inform´ aci´ oelm´eleti biztons´ag helyett a gyakorlatban is kivitelezhet˝ o sz´ am´ıt´ astechnikai biztons´ag´ u rendszerek megval´os´ıt´asa a c´el. A sz´am´ıt´astechnikai biztons´ ag azt jelenti, hogy a kriptorendszerek biztons´ag´at olyan felt´etelek mellett garant´alj´ak, amikor a t´amad´onak sz´am´ıt´astechnikai kapacit´ asa korl´ atozott. Ez oly m´odon val´os´ıthat´o meg, hogy a rendszerek biztons´ ag´ at olyan matematikai probl´em´ak biztos´ıtj´ak, amelyek megold´ asa neh´ez, pontosabban megold´asukra nem ismert polinomi´alis idej˝ u algoritmus. Sz´ am´ıt´astechnikai biztons´ag eset´eben, term´eszetesen a t´ amad´ o er˝ oforr´ asair´ ol is azt felt´etelezz¨ uk, hogy polino´ mi´alisan korl´atozottak. Eppen ez´ert egy kriptorendszer sz´am´ıt´astechnikai biztons´aga szoros kapcsolatban ´ all a visszavezethet˝os´eg fogalm´aval, azaz ha 12
egy kriptorendszer biztons´ aga visszavezethet˝o valamely j´ol ismert feladatra, amely nem oldhat´ o meg polinomi´alis id˝oben, akkor azt mondjuk, hogy a kriptorendszer sz´ am´ıt´ astechnikailag biztons´agos. Ezek alapj´ an term´eszetesen mer¨ ul fel az NP-teljes neh´ezs´eg˝ u matematikai feladatok alkalmaz´ asa kriptogr´afiai rendszerekben, Az els˝o titkos´ıt´o rendszerek k¨ oz¨ ott, ´eppen ez´ert sz´ amos olyan rendszert is tal´alunk amelyeknek h´ atter´eben NP-teljes probl´em´aj´ u feladat ´all. Legismertebb ezek k¨oz¨ott a h´ atizs´ ak feladaton alapul´ o titkos´ıt´o rendszer [42]. Ezen feladatok alkalmaz´asa, azonban nem mindig vezetett sikerre, mert az NP-teljes feladatok megoldhat´ os´ aga ´ altal´ aban a legrosszabb bemenet eset´en sz´am´ıt neh´ez feladatnak, a kriptogr´ afi´ aban pedig olyan matematikai probl´em´ak alkalmasak, amelyek az ´ atlagos esetben is nehezen megoldhat´onak sz´am´ıtanak [57]. A nagy dimenzi´ oj´ u r´ acsokban, a legr¨ovidebb vektor megkeres´es´en alapul´o kriptorendszerek, azonban kiv´etelt k´epeznek. Az 1990-es ´evek v´eg´en, t¨obb ilyen kriptorendszert is kidolgoztak, p´eld´aul az Ajtai-Dwork kriptorendszert [2]. Ezeknek a rendszereknek a kidolgoz´asa t¨obb szempontb´ol is l´enyeges, az egyik szempont, hogy fontos sz´eles´ıteni a neh´ez matematikai probl´em´akon alapul´o kriptorendszerek ter¨ ulet´et, a m´asik szempont, hogy ezek a rendszerek l´enyegesen gyorsabbak, mint a sz´elesk¨orben elterjedt, a faktoriz´aci´on ´es diszkr´et logaritmuson alapul´ o kriptorendszerek. Az ´ertekez´es tov´ abbi r´esz´eben a titkos´ıt´o rendszerek biztons´aga alatt mindig sz´ am´ıt´ astechnikai biztons´ agot fogunk ´erteni. A titkos´ıt´ o rendszerek eset´eben a t´amad´o lehet˝os´egei k¨ ul¨onb¨oz˝o sz´am´ıt´astechnikai biztons´ agi szintet hat´aroznak meg, ´altal´aban n´egy nagy csoportba szokt´ ak felosztani a lehets´eges t´amad´asi t´ıpusokat [40]: • • • •
rejtjelezett sz¨ oveg alap´ u t´ amad´as (ciphertext-only attack) ismert ny´ılt sz¨ oveg alap´ u t´ amad´as (known-plaintext attack) v´alasztott ny´ılt sz¨ oveg alap´ u t´amad´as (chosen-plaintext attack) v´alasztott rejtjelezett sz¨ oveg alap´ u t´amad´as (chosen-ciphertext attack)
A rejtjelezett sz¨ oveg alap´ u t´ amad´as eset´en a t´amad´o egyetlen kiindul´asi pontja a rendelkez´es´ere ´ all´ o rejtjelezett sz¨oveg, illetve adott esetben a rejtjelezett sz¨ ovegek. Ez alapj´ an pr´ ob´alja meghat´arozni a ny´ılt sz¨oveget, a rendszerben alkalmazott kulcsot vagy k¨ovetkeztetni ezekre. 13
Az ismert ny´ılt sz¨ oveg alap´ u t´ amad´ as eset´en a t´amad´o t¨obb ny´ılt sz¨oveg ´es ezeknek megfelel˝ o rejtjelezett sz¨ oveg p´ arral rendelkezik. A t´amad´o ezeknek az inform´aci´ oknak a birtok´ aban pr´ ob´al k¨ovetkeztetni a rendszerben alkalmazott kulcsra vagy egy rejtjelezett sz¨oveg tartalm´ara. A jelenlegi szabv´ anyok szerint, azok a rendszerek, amelyek nem ´allnak ellen a fenti k´et t´ amad´ asi t´ıpusnak, a legkisebb biztons´agi szintet sem biztos´ıtj´ak. A fenti k´et t´ amad´ asi t´ıpust passz´ıv t´amad´ask´ent kategoriz´alja a kriptogr´afia ([7], [36], [24]). A v´alasztott ny´ılt sz¨ oveg alap´ u t´ amad´as eset´eben a t´amad´onak lehet˝os´ege van tetsz˝ oleges sz´ am´ u rejtjelez´est v´egezni, a saj´at maga ´altal kiv´alasztott, szerkesztett ny´ılt sz¨ ovegen ´es ezek alapj´an pr´ob´al k¨ovetkeztetni a rendszer bemeneti param´etereire, azaz a kulcsra vagy a ny´ılt sz¨ovegre. A tov´abbiakban azokat a rendszereket, amelyek biztons´agosak a v´alasztott ny´ılt sz¨oveg alap´ u t´ amad´ assal szemben CPA-biztons´ag´ u rendszereknek fogjuk h´ıvni. A v´alasztott rejtjelezett sz¨ oveg alap´ u t´amad´as eset´eben a t´amad´onak lehet˝os´ege van tetsz˝ oleges sz´ am´ u visszafejt´est v´egezni, a saj´at maga ´altal kiv´alasztott, szerkesztett rejtjelezett sz¨ ovegen ´es ezek alapj´an pr´ob´al k¨ovetkeztetni a rendszer bemeneti param´etereire, azaz a kulcsra vagy a ny´ılt sz¨ovegre. A tov´ abbiakban azokat a rendszereket, amelyek biztons´agosak a v´alasztott rejtjelezett sz¨ oveg alap´ u t´ amad´assal szemben, CCA-biztons´ag´ u rendszereknek fogjuk h´ıvni. Az utols´o k´et t´ amad´ asi t´ıpus eset´eben megk¨ ul¨onb¨oztetj¨ uk ezek adapt´ıv form´aj´at is, mint sokkal er˝ osebb t´ amad´ asi t´ıpusokat, ami azt jelenti, hogy a t´amad´onak arra is lehet˝ os´ege van, hogy a kiv´alaszt´asra ker¨ ul˝o ny´ılt, illetve rejtjelezett sz¨ oveget az alapj´ an hat´ arozza meg, hogy mi volt a kor´abbi rejtjelez´es, illetve visszafejt´es eredm´enye. Ez ut´obbi t´amad´asi t´ıpust akt´ıv t´amad´ask´ent tartja sz´ amon a kriptogr´ afia ([7], [36], [24]). Fontos megjegyezni, hogy napjainkban is sz´amos olyan titkos´ıt´o rendszert haszn´alnak, amelyek nem ´ allnak ellen a v´alasztott rejtjelezett sz¨oveg alap´ u t´amad´asnak. Sok´ aig ez a t´ amad´ asi t´ıpus, val´oban csak az elm´eleti kriptogr´afi´anak jelentett megoldatlan probl´em´at, de az 1998-as RSA elleni sikeres Bleichenbacher-t´ amad´ as ´ ota [9] az aszimmetrikus titkos´ıt´o rendszerek alkalmaz´asakor figyelembe kell venni a v´alasztott rejtjelezett sz¨oveg ´ alap´ u t´amad´assal szembeni biztons´ agot is. Eppen ez´ert az elm´ ult t´ız 14
´evben fokozott hangs´ uly tev˝ od¨ ott az aszimmetrikus titkos´ıt´o rendszerek ´atalak´ıt´as´ ara, oly m´ odon hogy azok ellen´alljanak a fenti k´et t´amad´asi t´ıpusnak, ugyanakkor pedig, hogy meg˝orizz´ek a megfelel˝o hat´ekonys´agukat [50]. Mint eml´ıtett¨ uk, a gyakorlatban titkos´ıt´o rendszerekk´ent legt¨obbsz¨or hibrid rendszereket alkalmaznak, ami azt jelenti, hogy a tulajdonk´eppeni adathalmaz titkos´ıt´ as´ ara szimmetrikus kriptogr´afiai technik´akat alkalmaznak, a titkos´ıt´ o kulcsok cser´ej´et, pedig aszimmetrikus kriptogr´afiai technik´aval oldj´ ak meg. Ez ut´ obbira a szakirodalom bevezette a kulcsbe´agyaz´asi mechanizmus (key encapsulation mechanism) elnevez´est [21]. Jelen ´ertekez´es keret´en bel¨ ul t¨ obb aszimmetrikus titkos´ıt´asi rendszert fogunk megvizsg´ alni, fokozott hangs´ ulyt fektetve arra is, hogy mit jelent a v´alasztott ny´ılt sz¨ oveg alap´ u, illetve a v´alasztott rejtjelezett sz¨oveg alap´ u t´amad´as egy szimmetrikus titkos´ıt´ asi rendszerben, illetve egy aszimmetrikus titkos´ıt´ asi rendszerben. Mivel a fenti elm´eleti fogalmakhoz nem kapcsol´odik sz´eles k¨ orben elfogadott magyar terminol´ogia, az els˝o h´arom fejezetben fokozott hangs´ ulyt fektet¨ unk az ide kapcsol´od´o ´ertelmez´esek ´es t´etelek prec´ız, magyar megfogalmaz´as´ara. Az ´ertekez´es keret´en bel¨ ul javasolunk egy u ´j kulcsbe´agyaz´asi, mechanizmust, amelynek megadjuk a specifik´aci´oj´at, hat´ekonys´ag´at, bizony´ıtjuk helyess´eg´et, CPA ´es CCA-biztons´ ag´at, ´es r´eszletezz¨ uk implement´aci´os lehet˝os´egeit. Az ´ertekez´esben kit´er¨ unk arra is, hogy ¨osszehasonl´ıtsuk implement´aci´os lehet˝os´egek, illetve hat´ekonys´ ag szempontj´ab´ol az u ´j kulcsbe´agyaz´asi mechanizmust az elm´ ult ´evekben publik´alt CCA-biztons´ag´ u aszimmetrikus rendszerekkel, pontosabban a Cramer–Shoup [20], az RSA–OAEP [6], az SAEP [14], ´es a Hofheinz- ´es t´ arsai [35] rendszerekkel.
´ 1.2. Attekint˝ o Az ´ertekez´es els˝ o fejezete jelen bevezet˝ot tartalmazza, amely felv´azolja az ´ertekez´es f˝ obb mondanival´ oj´ at kit´erve ´altal´anos jelleg˝ u inform´alis ´ertelmez´esek, jel¨ ol´esek megad´ as´ ara.
15
A m´asodik fejezet a szimmetrikus titkos´ıt´asi rendszerek matematikai modellj´enek bemutat´ asa ut´ an r´ at´er a passz´ıv ´es akt´ıv t´amad´oval szembeni biztons´agfogalmak form´ alis ´ertelmez´es´ere. Az akt´ıv t´amad´oval szembeni biztons´ag eset´eben k¨ ul¨ onbs´eget tesz¨ unk a v´alasztott ny´ılt sz¨oveg alap´ u, illetve a v´alasztott rejtjelezett sz¨ oveg alap´ u t´amad´asok k¨oz¨ott. A harmadik fejezetben a hash f¨ uggv´enyekkel ´es u ¨zenethiteles´ıt˝o k´odokkal szembeni k¨ ovetelm´enyeket fogalmazzuk meg, kihangs´ ulyozva az univerz´alis hash f¨ uggv´eny (universal hash function), a c´el u ¨tk¨oz´esmentes hash f¨ uggv´eny (target collision-resistant hash function) ´es az u ¨tk¨oz´esmentes hash f¨ uggv´eny (collision-resistant hash function) k¨oz¨otti k¨ ul¨onbs´egeket, ezt els˝osorban az´ert tessz¨ uk, mert az ´ertekez´esben t´argyal´asra ker¨ ul˝o titkos´ıt´o rendszerek c´el-¨ utk¨ oz´esmentes hash f¨ uggv´enyt haszn´alnak. A negyedik fejezet az aszimmetrikus titkos´ıt´o rendszerek matematikai modellj´enek a le´ır´ asa ut´ an megadja az egyir´any´ u f¨ uggv´enyek ´ertelmez´es´et, majd az ´ertekez´esben t´ argyal´ asra ker¨ ul˝ o titkos´ıt´o rendszerek biztons´ag´at meghat´aroz´o kriptogr´ afiai felt´etelez´eseket: a faktoriz´aci´os felt´etelez´est (factorization assumption), az RSA-felt´etelez´est (RSA assumption), a kvadratikus marad´ek felt´etelez´est (quadratic residuosity assumption), a diszkr´et logaritmus felt´etelez´est (discrete logarithm assumption), ´es a d¨ont´esi Diffie– Hellman-felt´etelez´est (Decisional Diffie–Hellman assumption). Az akt´ıv ´es passz´ıv t´amad´oval szembeni biztons´ ag´ertelmez´esek megad´asa ut´an a hibrid rendszerek biztons´ ag´ at is t´ argyaljuk. Az ¨ot¨odik fejezet azokat az aszimmetrikus titkos´ıt´o rendszereket mutatja be, amelyeknek CCA-biztons´ ag´ u verzi´ oj´at implement´altuk, ´es amelyek hat´ekonys´ag´at ¨ osszevetett¨ uk az ´ altalunk szerkesztett kulcsbe´agyaz´asi mechanizmus hat´ekonys´ ag´ aval. Ezek a rendszerek a k¨ovetkez˝oek: • • • •
az ElGamal- ´es Cramer–Shoup-rendszer, az RSA- ´es RSA–OAEP-rendszer, a Rabin- ´es SAEP-rendszer, a Blum–Goldwasser ´es Hofheinz- ´es t´arsai rendszere.
A hatodik fejezet az ´ertekez´es legf˝ obb eredm´eny´et az u ´j kulcsbe´agyaz´asi mechanizmus CPA, illetve CCA-biztons´ ag´ u verzi´oj´at mutatja be. A kulcsbe´agyaz´asi mechanizmus alapj´ aul a Rabin-titkos´ıt´o [54] ´es a Hofheinz ´es
16
t´arsai [35], ´ altal szerkesztett rendszerek szolg´altak. A CCA-biztons´ag´ u kulcsbe´agyaz´ asi mechanizmus a [48] cikkben ker¨ ult publik´al´asra. A fejezet keret´en bel¨ ul megadjuk az u ´j mechanizmus specifik´aci´oj´at, helyess´eg´et, hat´ekonys´ ag´ at, illetve bizony´ıtjuk a rendszer biztons´ag´at. A hetedik fejezet az ¨ ot¨ odik fejezetben, illetve a hatodik fejezetben le´ırt CCA-biztons´ ag´ u rendszerek implement´aci´oj´ara t´er ki. Itt megadjuk az implement´ aci´ ohoz haszn´ alt hardver- ´es szoftverkonfigur´aci´ot, majd rendszerenk´ent kit´er¨ unk az implement´ al´ as specifikusabb r´eszeire ´es t´abl´azatokba foglalva felt¨ untetj¨ uk a fut´ asi id˝ ok eredm´enyeit.
1.3. Defin´ıci´ ok, jel¨ ol´esek A polinomi´ alis idej˝ u algoritmus, illetve a probabilisztikus ´es determinisztikus algoritmus fogalmak az ´ertekez´es fejezeteiben fontos szerepet fognak ´ j´atszani. Eppen ez´ert megadjuk ezek form´alis ´ertelmez´es´et. 1.1. defin´ıci´ o. Egy A(·) algoritmus fut´ asi ideje, az n bithossz´ us´ ag´ u bemenet f¨ uggv´eny´eben polinomi´ alis, ha l´ep´essz´ ama O(nk ), ahol n ´es k nem negat´ıv eg´esz sz´ amok. Ekkor azt mondjuk, hogy az algoritmus polinomi´ alis idej˝ u, ([24], [36]). 1.2. defin´ıci´ o. Egy A(·) algoritmus, a bemenet f¨ uggv´eny´eben determinisztikus, ha el˝ ore meghat´ arozott l´ep´esekb˝ ol ´ all, ahol a v´egrehajt´ as minden helyzet´eben egy´ertelm˝ uen meghat´ arozhat´ o az aktu´ alis l´ep´es ut´ ani k¨ ovetkez˝ o l´ep´es, ([24], [36]). 1.3. defin´ıci´ o. Egy A(·) algoritmus, az x bemenet f¨ uggv´eny´eben probabilisztikus, ha ([24], [36]): • az x bemenet mellett, egy x-t˝ ol f¨ uggetlen, v´eletlenszer˝ uen gener´ alt r bitsorozatot is megadunk, ahol az r bitsorozat a 0 ´es 1 ´ert´ekeket egym´ ast´ ol f¨ uggetlen¨ ul, 1/2 val´ osz´ın˝ us´eggel veheti fel, • az A(x) algoritmusnak megadhat´ o egy determinisztikus kiterjeszt´ese, amelynek a x bemenet mellett az r bitsorozat is a bemenete lesz, jel¨ olj¨ uk ezt AD (x, r)-rel, 17
• az A(·) algoritmus kimenete nem egy konstans ´ert´ek, hanem egy val´ osz´ın˝ us´egi v´ altoz´ o lesz, pontosabban annak az esem´enynek a val´ osz´ın˝ us´ege, hogy az A algoritmus az x bemeneten az y kimenetet hat´ arozza meg a k¨ ovetkez˝ o lesz: Pr[A(x) = y] = Pr[{r|AD (x, r) = y}]. 1.1. megjegyz´es. Egy probabilisztikus algoritmus v´eletlen d¨ ont´eseket hozhat a fut´ asi ideje alatt, ´es minden olyan algoritmus, amely v´eletlen sz´ amokat haszn´ al probabilisztikus algoritmus. 1.2. megjegyz´es. A probabilisztikus, illetve determinisztikus algoritmus prec´ızebb definici´ oja a probabilisztikus, illetve determinisztikus Turing-g´ep fogalm´ anak bevezet´es´evel adhat´ o meg [39], amire jelen ´ertekez´esben nem t´er¨ unk ki. Az elhanyagolhat´ o f¨ uggv´eny fogalma t¨obb helyen is megtal´alhat´o a kriptogr´afiai szakirodalomban ([21], [18], [64]), jelen ´ertekez´esben ez alatt a k¨ovetkez˝oket fogjuk ´erteni: 1.4. defin´ıci´o. Egy f f¨ uggv´eny elhanyagolhat´ o (negligible), ha b´ armely (·) polinom eset´eben l´etezik egy k0 eg´esz sz´ am u ´gy, hogy b´ armely k > k0 eg´esz 1 sz´ amra fenn´ all: f (k) < (k) . Az ´ertekez´esben haszn´ alt jel¨ ol´esek k¨ oz¨ ul, pedig fontosnak tartjuk megeml´ıteni az al´abbiakat. R
1. Ha A egy halmaz, akkor x ← − A jel¨ oli, hogy x v´eletlenszer˝ uen, egyenletes eloszl´ as eset´en lett kiv´ alasztva. R 2. Ha A egy probabilisztikus algoritmus, akkor az x ← − A jel¨ol´es azt jelenti, hogy az A algoritmus x kimenet´et v´eletlenszer˝ uen hat´arozta meg. 3. Az 1k , k darab egym´ as mell´e ´ırt 1-est jel¨ol, amelyet a szakirodalomnak megfelel˝ oen gyakran fogunk algoritmusoknak megadni bemeneti param´eterk´ent ([21][36]). Ezt a jel¨ ol´est akkor alkalmazzuk, amikor azt szeretn´ek jelezni, hogy az algoritmus fut´asi ideje akkor is polinomi´alis k szerint, ha nincs az algoritmusnak bemenete vagy ez nagyon r¨ovid. 18
4. A | · | jel¨ ol´eshez h´ aromf´ele jelent´est is t´ars´ıtunk, melyet az adott helyeken nem jel¨ ol¨ unk explicit m´odon, felt´etelezve, hogy a kontextus alapj´ an ez kik¨ ovetkeztethet˝ o. Az eml´ıtett h´arom jelent´estartalom a k¨ovetkez˝ o: abszol´ ut´ert´ek, bithossz, ´es elemsz´am. 5. Az || oper´ ator ¨ osszef˝ uz´est jelent.
19
20
2. fejezet
Szimmetrikus titkos´ıt´asi rendszerek biztons´aga 2.1. Bevezet˝ o Szimmetrikus titkos´ıt´ as m´ ar az ´ okorban is l´etezett, azonban a legt¨obb XX. sz´azad el˝ otti titkos´ıt´ o rendszer (Caesar, Playfair, Vigenere, stb.) a mai sz´am´ıt´og´epes eszk¨ oz¨ okkel k¨ onnyen felt¨orhet˝o. A jelenleg, gyakorlatban haszn´alt rendszerek (3DES, AES, Salsa20) ([40], [22], [8]) j´ol meghat´arozott biztons´agi k¨ ovetelm´enyeknek tesznek eleget. Ezen k¨ovetelm´enyek form´alis megad´as´ahoz el˝ osz¨ or sz¨ uks´eges a szimmetrikus rendszerek matematikai ´ertelmez´ese ([17], [36]). 2.1. defin´ıci´ o. Jel¨ olje SKE azt a szimmetrikus titkos´ıt´ asi rendszert, amely egy (K, M, C) halmazh´ armas felett, h´ arom algoritmussal ´ertelmezhet˝ o, ahol M a ny´ılt sz¨ ovegek egy v´eges halmaza, C a rejtjelezett sz¨ ovegek egy v´eges halmaza, K a titkos´ıt´ o kulcsok egy v´eges halmaza. A h´ arom eml´ıtett algoritmus, pedig a k¨ ovetkez˝ o: • Gen, a kulcsgener´ al´ o probabilisztikus algoritmus, amely polinomi´ alis R k id˝ oben az 1 bemeneten meghat´ arozza a key titkos´ıt´ o kulcsot: key ← − k Gen(1 ), ahol key ∈ K, k ∈ Z≥0 a rendszer biztons´ agi param´etere (legt¨ obb esetben a gener´ alt kulcs bithossza), 21
• Enckey a probabilisztikus rejtjelez˝ o algoritmus, amely polinomi´ alis id˝ oben v´egzi a rejtjelez´est, a key titkos´ıt´ o kulcs alapj´ an, az m ∈ M R ny´ılt sz¨ ovegen, meghat´ arozva a c ∈ C rejtjelezett sz¨ oveget: c ← − Enckey (m), • Deckey a determinisztikus, visszafejt˝ o algoritmus, amely polinomi´ alis id˝ oben v´egzi a visszafejt´est, a key titkos´ıt´ o kulcs alapj´ an a c rejtjelezett sz¨ ovegen: m ← Deckey (c). A rendszer helyess´ege ´erdek´eben megk¨ovetelj¨ uk, hogy teljes¨ ulj¨on Deckey (Enckey (m)) = m, minden key ∈ K ´es minden m ∈ M eset´eben. Fontos megjegyezni, hogy a kulcs ´es ny´ılt sz¨oveg ´ert´ek´enek a meghat´aroz´asa egym´ ast´ ol f¨ uggetlen esem´enyek, tulajdonk´eppen el˝obb r¨ogz´ıtj¨ uk a kulcsot, majd azt´ an ker¨ ul meghat´ aroz´ asra a ny´ılt sz¨oveg. A szimmetrikus titkos´ıt´ asi rendszerek biztons´ag´anak ´ertelmez´es´et t¨obbf´elek´eppen is meg lehet adni, els˝ osorban aszerint csoportos´ıtj´ak a biztons´ag´ertelmez´eseket, hogy milyen t´ıpus´ u t´amad´oval kell sz´amolni egy adott titkos´ıt´asi rendszer eset´eben. A k¨ ovetkez˝o fejezetben form´alisan megadjuk a passz´ıv t´ amad´ oval szembeni biztons´ag´ertelmez´est, majd az akt´ıv t´amad´oval szembeni biztons´ ag´ertelmez´est.
2.2. Passz´ıv t´amad´ oval szembeni biztons´ag A passz´ıv t´amad´ oval szembeni biztons´ ag ´ertelmez´es´ehez sz¨ uks´eg van egy k´ıs´erletre. Az al´ abbi k´ıs´erletben az A t´ amad´o egy probabilisztikus, polinomi´alis idej˝ u algoritmust jelent, ahol a k´ıs´erlet az A t´amad´o ´es k¨ornyezete, a kih´ıv´o k¨oz¨ott j´ atsz´ odik le. 2.1. k´ıs´erlet. 1. A kih´ıv´ o a Gen kulcsgener´ al´ o algoritmussal meghat´ arozza a key titkos´ıt´ o kulcsot, 2. az A t´ amad´ o, k´et azonos hossz´ us´ ag´ u u ¨zenetet hat´ aroz meg, jel¨ olj¨ uk ezeket m0 , m1 -gyel, amelyeket ´ atad a kih´ıv´ onak, R 3. a kih´ıv´ o b ← − {0, 1} v´ alaszt´ as alapj´ an az Enckey (·) titkos´ıt´ o algorit∗ R mussal meghat´ arozza az mb titkos´ıtott ´ert´ek´et: c ← − Enckey (mb ), 22
amelyet ´ atad az A t´ amad´ onak; nevezz¨ uk ezt a c∗ titkos´ıtott ´ert´eket kih´ıv´ o rejtjelezett sz¨ ovegnek (challenge ciphertext), 4. az A t´ amad´ o meghat´ aroz egy ˆb ∈ {0, 1} kimeneti ´ert´eket. 2.2. defin´ıci´ o. Az SKE szimmetrikus titkos´ıt´ asi rendszerben az A t´ amad´ o pas 1 ˆ el˝ onye a k¨ ovetkez˝ ok´eppen adhat´ o meg: AdvSKE,A (k) = | Pr[b = b] − 2 |, ahol a b ´es ˆb ´ert´ekeket a 2.1. k´ıs´erletben hat´ aroztuk meg. A passz´ıv t´ amad´ oval szembeni biztons´agot a k¨ovetkez˝o ´ertelmez´es adja meg [21]: 2.3. defin´ıci´ o. Az SKE szimmetrikus titkos´ıt´ asi rendszer akkor biztons´ agos egy passz´ıv t´ amad´ oval szemben, ha b´ armely A probabilisztikus, polinomi´ alis idej˝ u, passz´ıv t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Advpas SKE,A (k) ≤ f (k), ahol Advpas ertelmez´esn´el adtuk meg. SKE,A (k)-t a 2.2. ´ Az SKE szimmetrikus titkos´ıt´asi rendszer passz´ıv t´amad´oval szembeni biztons´ ag ´ertelmez´es´enek megadhatjuk egy alternat´ıv defin´ıci´oj´at is [21]. Jel¨olj¨ uk a tov´ abbiakban Expr(0)-val azt az esem´enyt, amikor ˆb = 1, azon felt´etel mellett, hogy a kih´ıv´ onak b = 0 volt a v´alaszt´asa, ´es jel¨olj¨ uk Expr(1)-gyel azt az esem´enyt, amikor ˆb = 1, azon felt´etel mellett, hogy a kih´ıv´o a b = 1 ´ert´eket v´ alasztotta. Ekkor az A t´ amad´ o el˝ onye a k¨ ovetkez˝ok´eppen ´ertelmezhet˝o: Adv0
pas SKE,A (k)
= 21 | Pr[Expr(0)] − Pr[Expr(1)]|.
2.4. defin´ıci´ o. Az SKE szimmetrikus titkos´ıt´ asi rendszer akkor biztons´ agos egy passz´ıv t´ amad´ oval szemben, ha b´ armely A probabilisztikus, polinomi´ alis idej˝ u, passz´ıv t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Adv0
pas SKE,A (k)
23
≤ f (k)
A k´et ´ertelmez´es k¨ oz¨ otti ekvivalencia a k¨ovetkez˝o egyenl˝os´eg alapj´an l´athat´o be: Adv0
pas SKE,A (k)
=
1 2
· | Pr[ˆb = 1|b = 0] − Pr[ˆb = 1|b = 1]|
1 2
· |1 − Pr[ˆb = 0|b = 0] − Pr[ˆb = 1|b = 1]| =
1 2
· |1 − 2 · Pr[b = ˆb]|
=
− Pr[b = ˆb]|
=
| 12
=
Advpas SKE,A (k). 2.1. megjegyz´es. A k´es˝ obbi biztons´ ag´ertelmez´esek eset´eben is megadhat´ o hasonl´ o alternat´ıv defin´ıci´ o.
2.3. Akt´ıv t´amad´ oval szembeni biztons´ag Szimmetrikus titkos´ıt´ asi rendszerek eset´eben az akt´ıv t´amad´o jelenl´ete k´et k¨ ul¨onb¨oz˝o t´amad´ asi t´ıpust hat´ aroz meg, az egyikben a t´amad´o lehet˝os´egei korl´atozva vannak, oly m´ odon, hogy csak titkos´ıt´ast tud v´egezni, ez lesz a v´alasztott ny´ılt sz¨ oveg alap´ u t´ amad´ as. A m´asodik esetben a t´amad´o tetsz˝oleges rejtjelezett sz¨ ovegek visszafejt´es´et is tudja k´erni, kiv´eve a kih´ıv´o rejtjelezett sz¨oveg visszafejt´es´et. Ezt fogjuk v´alasztott rejtjelezett sz¨oveg alap´ u t´amad´asnak h´ıvni. Az akt´ıv t´amad´ oval szembeni biztons´ag eset´eben a t´amad´o, a kih´ıv´on kereszt¨ ul egy titkos´ıt´ o, illetve egy visszafejt˝o or´akulum ig´enyeit veheti ig´enybe. Ez azt jelenti, hogy a kih´ıv´ o a megfelel˝o kulcs felhaszn´al´as´aval, amely term´eszetesen nem ismert a t´ amad´o ´altal, megadja a t´amad´o ´altal szolg´altatott bemenetre, a k´ıv´ ant titkos´ıt´ as, illetve visszafejt´es eredm´eny´et. Megjegyezz¨ uk, hogy az or´ akulumra, mint fekete dobozk´ent viselked˝o algoritmusra, a tov´ abbiakban az ¨ osszes biztons´ag´ertelmez´esn´el sz¨ uks´eg van.
24
2.3.1. V´alasztott ny´ılt sz¨oveg alap´ u t´amad´as A v´alasztott ny´ılt sz¨ oveg alap´ u t´amad´assal szembeni biztons´ag ´ertelmez´es´ehez sz¨ uks´eges megadni a k¨ovetkez˝o k´ıs´erlet l´ep´essorozat´at, amely k´ıs´erlet az A t´ amad´ o ´es k¨ ornyezete, a kih´ıv´o k¨oz¨ott j´atsz´odik le. 2.2. k´ıs´erlet. 1. A kih´ıv´ o a Gen kulcsgener´ al´ o algoritmussal meghat´ arozza a key titkos´ıt´ o kulcsot, 2. az A t´ amad´ o tetsz˝ oleges bemeneten, tetsz˝ oleges sz´ am´ u titkos´ıt´ ast v´egez, ahol a titkos´ıt´ ast a kih´ıv´ o Enckey (·) algoritmus´ aval v´egzi, 3. az A t´ amad´ o, k´et azonos hossz´ us´ ag´ u u ¨zenetet hat´ aroz meg, jel¨ olj¨ uk ezeket m0 , m1 -gyel, amelyeket ´ atad a kih´ıv´ onak, R 4. a kih´ıv´ ob← − {0, 1} v´ alaszt´ as alapj´ an meghat´ arozza az mb titkos´ıtott ∗ R ´ert´ek´et: c ← − Enckey (mb ), amelyet ´ atad az A t´ amad´ onak, 5. az A t´ amad´ o tetsz˝ oleges bemeneten, tetsz˝ oleges sz´ am´ u titkos´ıt´ ast v´egez, ahol a titkos´ıt´ ast a kih´ıv´ o Enckey (·) algoritmus´ aval v´egzi, 6. az A t´ amad´ o meghat´ aroz egy ˆb ∈ {0, 1} kimeneti ´ert´eket. 2.5. defin´ıci´ o. Az SKE szimmetrikus titkos´ıt´ asi rendszerben az A t´ amad´ o cpa 1 ˆ el˝ onye a k¨ ovetkez˝ ok´eppen adhat´ o meg: AdvSKE,A (k) = | Pr[b = b] − 2 |, ahol a b ´es ˆb ´ert´ekeket a 2.2. k´ıs´erletben hat´ aroztuk meg. A v´alasztott ny´ılt sz¨ oveg alap´ u t´amad´assal szembeni CPA-biztons´agot a k¨ovetkez˝ o ´ertelmez´es adja [21]: 2.6. defin´ıci´ o. Az SKE szimmetrikus titkos´ıt´ asi rendszer CPA-biztons´ ag´ u, ha b´ armely A probabilisztikus, polinomi´ alis idej˝ u t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Advcpa SKE,A (k) ≤ f (k), ahol Advcpa ertelmez´esn´el adtuk meg. SKE,A (k)-t a 2.5. ´
25
2.3.2. V´alasztott rejtjelezett sz¨oveg alap´ u t´amad´as A v´alasztott rejtjelezett sz¨ oveg alap´ u t´amad´assal szembeni biztons´ag ´ertelmez´es´ehez sz¨ uks´eges megadni a k¨ ovetkez˝o k´ıs´erlet l´ep´essorozat´at, amely k´ıs´erlet az A t´ amad´ o ´es k¨ ornyezete, a kih´ıv´o k¨oz¨ott j´atsz´odik le. 2.3. k´ıs´erlet. 1. A kih´ıv´ o a Gen kulcsgener´ al´ o algoritmussal meghat´ arozza a key titkos´ıt´ o kulcsot, 2. az A t´ amad´ o tetsz˝ oleges sz´ am´ u titkos´ıt´ ast, illetve visszafejt´est v´egez, a kih´ıv´ o Enckey (·) titkos´ıt´ o ´es Deckey (·) visszafejt˝ o algoritmus´ aval, 3. az A t´ amad´ o, k´et azonos hossz´ us´ ag´ u u ¨zenetet hat´ aroz meg, jel¨ olj¨ uk ezeket m0 , m1 -gyel, amelyeket ´ atad a kih´ıv´ onak, R 4. a kih´ıv´ ob← − {0, 1} v´ alaszt´ as alapj´ an meghat´ arozza az mb titkos´ıtott ∗ R ´ert´ek´et: c ← − Enckey (mb ), amelyet ´ atad az A t´ amad´ onak, 5. az A t´ amad´ o tetsz˝ oleges sz´ am´ u titkos´ıt´ ast, illetve visszafejt´est v´egez, a kih´ıv´ o Enckey (·) titkos´ıt´ o ´es Deckey (c) visszafejt˝ o algoritmus´ aval, ahol a visszafejt´est k¨ ul¨ onb¨ oz˝ o c bemenetekre k´eri, azzal a megk¨ ot´essel, hogy c 6= c∗ , 6. az A t´ amad´ o meghat´ aroz egy ˆb ∈ {0, 1} kimeneti ´ert´eket. 2.7. defin´ıci´o. Az SKE szimmetrikus titkos´ıt´ asi rendszerben az A t´ amad´ o cca 1 ˆ el˝ onye a k¨ ovetkez˝ ok´eppen adhat´ o meg: AdvSKE,A (k) = | Pr[b = b] − 2 |, ahol ˆ a b ´es b ´ert´ekeket a 2.3. k´ıs´erletben hat´ aroztuk meg. A v´alasztott rejtjelezett sz¨ oveg alap´ u t´amad´assal szembeni CCAbiztons´agot a k¨ ovetkez˝ o ´ertelmez´es adja [21]: 2.8. defin´ıci´o. Az SKE szimmetrikus titkos´ıt´ asi rendszer CCA-biztons´ ag´ u, ha b´ armely A probabilisztikus, polinomi´ alis idej˝ u t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Advcca SKE,A (k) ≤ f (k), ahol Advcca ertelmez´esn´el adtuk meg. SKE,A (k)-t a 2.7. ´
26
2.4. Szimmetrikus titkos´ıt´asi rendszerek oszt´alyoz´asa A szimmetrikus titkos´ıt´ o rendszereken bel¨ ul megk¨ ul¨onb¨oztet¨ unk folyamtitkos´ıt´o (stream-cipher) ´es blokktitkos´ıt´o (block-cipher) rendszereket. Mindk´et rendszer eset´eben a titkos´ıt´ashoz sz¨ uks´eges egy titkos adat, a titkos´ıt´o kulcs. Amiben elt´er egym´ ast´ol a k´et rendszer az az adathalmaz feldolgoz´as´ anak m´ odja. A k´et k¨ ul¨ onb¨ oz˝ o titkos´ıt´ asi rendszer term´eszetesen k¨ ul¨onb¨oz˝o biztons´agi el˝ o´ır´ asokat hat´ aroz meg, ´eppen ez´ert k¨ ul¨on t´argyaljuk a folyamtitkos´ıt´ okkal, illetve a blokktitkos´ıt´okkal szembeni biztons´agi k¨ovetelm´enyeket.
2.4.1. Folyamtitkos´ıt´o rendszerek A folyamtitkos´ıt´ o rendszerek alatt azokat a rendszereket ´ertj¨ uk, amelyek valamely probabilisztikus algoritmus seg´ıts´eg´evel, kiindulva egy kezdeti titkos adatb´ol, a titkos´ıt´ o kulcsb´ ol, gener´ alnak egy 0 ´es 1 ´ert´ekekb˝ol ´all´o ´alv´eletlen bitsorozatot. A gener´ alt bitsorozatot kulcsfolyamnak nevezik, amelyet azt´an legt¨ obbsz¨ or bitenk´enti (mod 2) ¨osszead´ast v´egezve hozz´aadnak a ny´ılt sz¨oveghez. E m˝ uveletre a tov´abbiakban a ⊕ jelet fogjuk haszn´alni. Megjegyezz¨ uk, hogy a kulcsfolyam ´es ny´ılt sz¨oveg ¨osszead´asa t¨ort´enhet (mod 2n ) szerint is, ahol n pozit´ıv eg´esz sz´am, pl. a Salsa20 eset´eben n = 32. K¨ozismert azonban, hogy szoftver szintj´en nem lehet v´eletlen biteket el˝o´all´ıtani, ez´ert azon algoritmusokat amelyekr˝ol azt ´all´ıtjuk, hogy v´eletlen bitsorozatot ´ all´ıtanak el˝ o u ´gy h´ıvjuk, hogy ´alv´eletlen bitsorozat gener´atorok, hiszen az ´ altaluk el˝ oa´ll´ıtott bitsorozatok igaz´ab´ol ´alv´eletlen ´ert´ekek. A titkos´ıtott rendszer biztons´ aga f¨ ugg az ´alv´eletlen bitsorozat gener´ator kimenet´et˝ ol, illetve meghat´ arozza a ⊕ m˝ uvelet tulajdons´aga. A k¨ovetkez˝o t´etel [61] magyar´ azatot ad arra, hogy titkos´ıt´o rendszerek eset´eben mi´ert haszn´alhat´ o a ⊕ m˝ uvelet: 2.1. t´etel. Legyen X ∈ {0, 1}k ´es Y ∈ {0, 1}k k´et f¨ uggetlen, egyenletes eloszl´ as´ u val´ osz´ın˝ us´egi v´ altoz´ o. Akkor a Z = X ⊕ Y val´ osz´ın˝ us´egi v´ altoz´ o k is egyenletes eloszl´ as´ u lesz a {0, 1} halmazon. 27
A fenti t´etel alapj´ an levonhatjuk azt a k¨ovetkeztet´est, hogy a folyamtitkos´ıt´ok biztons´ aga igaz´ ab´ ol az ´ alv´eletlen bitsorozatot gener´al´o algorit´ must´ol f¨ ugg. Eppen ez´ert az elm´ ult ´evekben folyamtitkos´ıt´o rendszerek alatt azokat az elj´ ar´ asokat ´ertj¨ uk, amelyek meghat´arozz´ak az ´alv´eletlen bitsorozat el˝o´all´ıt´ as´ anak m´ odj´ at. Ilyen gener´atorok az RC4 [28], a Salsa20 [8], a Legendre szimb´ olumot felhaszn´al´o Goubin, Mauduit ´es S´ark¨ozy ´altal le´ırt gener´ atorcsal´ ad [33] vagy a n´egyzetreemel´es f¨ uggv´enyen alapul´o Blum-Blum-Shub [10] gener´ ator, stb. A tov´abbiakban megadjuk az ´ alv´eletlen bitsorozat gener´ator azon ´ertelmez´es´et, amelynek ha eleget tesz az ´alv´eletlen gener´ator, akkor biztons´agosan alkalmazhat´ o kriptogr´ afiai rendszerekben ([36], [61]). 2.9. defin´ıci´o. Legyen G egy determinisztikus polinomi´ alis idej˝ u algoritmus, amely az x ∈ {0, 1}k bemeneten egy y ∈ {0, 1}l hossz´ us´ ag´ u kimeneti bitsorozatot ´ all´ıt el˝ o, ahol k < l. Ha b´ armely probabilisztikus polinomi´ alis idej˝ u R D algoritmusra ´es b´ armely r ← − {0, 1}l bitsorozat eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny, a k¨ ovetkez˝ o tulajdons´ aggal: R
| Pr[D(r) = 1] − Pr[D(G(x)) = 1]| ≤ f (k), ahol x ← − {0, 1}k , akkor azt mondjuk, hogy a G algoritmus kriptogr´ afiailag biztons´ agos ´ alv´eletlen bitsorozat gener´ ator.
2.4.2. Blokktitkos´ıt´o rendszerek Blokktitkos´ıt´o rendszerek eset´eben egyszerre t¨obb byte-t¨omb¨ot titkos´ıtunk, a titkos´ıt´as pedig ugyannak a f¨ uggv´enynek vagy permut´aci´onak a t¨obbsz¨ori v´egrehajt´as´at jelenti, a k¨ ul¨ onb¨ oz˝ o byte-t¨ omb¨ok¨on. A rendszer biztons´ag´at az alkalmazott f¨ uggv´eny vagy permut´ aci´o hat´arozza meg, illetve a titkos´ıtott byte-t¨omb¨ ok ¨ osszef˝ uz´es´enek m´ odja. A byte-t¨omb¨ ok ¨ osszef˝ uz´es´enek m´ odj´ara sz´amos j´ol kidolgozott biztons´agos technika l´etezik [61], amelyre jelen ´ertekez´esben nem t´er¨ unk ki, az alkalmazott f¨ uggv´eny vagy permut´ aci´ o biztons´ag´anak vizsg´alata, pedig az ´alv´eletlen f¨ uggv´enyek fogalm´ ahoz kapcsol´odik. Az ´alv´eletlen f¨ uggv´eny fogalm´anak a bevezet´es´ehez a k¨ ovetkez˝ okre van sz¨ uks´eg ([7], [24], [36]):
28
Jel¨olj¨ uk F uncX,Y -al azon halmazt, amely tartalmazza az ¨osszes olyan f¨ uggv´enyt, amely az X = {0, 1}N bemenetet az Y = {0, 1}M kimenetbe k´epezi le, ahol |X| = N ´es |Y | = M . Legyen F a k¨ ovetkez˝ o, k´et bemeneti param´eterrel rendelkez˝o f¨ uggv´eny: F : {0, 1}k × {0, 1}N → {0, 1}M . Minden egyes key ∈ {0, 1}k -ra, melyet el˝ore r¨ogz´ıt¨ unk meghat´arozunk egy Fkey : {0, 1}N → {0, 1}M kulcsos f¨ uggv´enyt, u ´gy hogy: Fkey (x) = F (key, x). A kiv´alasztott key ´ert´ek lesz a titkos´ıt´o kulcs, Fkey pedig, eleget kell tegyen azon tulajdons´ agnak, hogy az Fkey (x), x ∈ {0, 1}N bemenetre polinomi´alis id˝oben meghat´ arozza az y ∈ {0, 1}M kimeneti ´ert´eket. Abban az esetben ha N = M , akkor Fkey permut´ aci´ o. Inform´ alisan az F ´ alv´eletlen f¨ uggv´eny azt jelenti, hogy a f¨ uggv´eny polinomi´alis id˝ oben meg tudja hat´ arozni tetsz˝oleges bemenete eset´en a kimeneti ´ert´ek´et, ´es nem szerkeszthet˝o olyan polinomi´alis idej˝ u algoritmus, amely k¨ ul¨ onbs´eget tudna tenni az Fkey ´es egy, a F uncX,Y f¨ uggv´enycsal´adb´ol v´eletlenszer˝ uen kiv´ alasztott f¨ uggv´eny k¨oz¨ott. Az F f¨ uggv´eny ´ alv´eletlen viselked´es´et, pedig a k¨ovetkez˝o form´alis defin´ıci´oval adhatjuk meg [7]: 2.10. defin´ıci´ o. Az F f¨ uggv´eny ´ alv´eletlen f¨ uggv´eny, ha b´ armely probabilisztiR kus, polinomi´ alis idej˝ u D algoritmusra ´es b´ armely key ← − {0, 1}k eset´eben, l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny, a k¨ ovetkez˝ o tulajdons´ aggal: | Pr[D(G(·)) = 1] − Pr[D(Fkey (·)) = 1]| ≤ f (k), R
ahol G ← − F uncX,Y . A blokktitkos´ıt´ o rendszereknek a folyamtitkos´ıt´okkal szembeni egyik el˝onye, hogy a titkos´ıt´ as folyamata p´arhuzamos´ıthat´o, a biztons´agi krit´eriumok sokkal jobban tanulm´anyozottak, h´atr´anyuk, pedig, hogy lass´ ubbak.
29
30
3. fejezet
Hash f¨ uggv´enyek ´es u ¨zenethiteles´ıt˝ o k´ odok A lehets´eges t´ amad´ asi t´ıpusok alapj´ an a bizalmas inform´aci´ocsere nem mindig biztos´ıtja egy adott u ¨zenet hiteles volt´at. Abban az esetben, ha egy akt´ıv t´amad´ oval is sz´ amolni kell, akkor a rejtjelez´es mellett sz¨ uks´eges mind a k¨ uld˝o f´el, mind az elk¨ uld¨ ott u ¨zenet hiteles´ıt´ese. Ennek megval´os´ıt´as´ara t¨obbf´ele technika is l´etezik, az egyik a hash f¨ uggv´enyek alkalmaz´asa, a m´asik az u ¨zenethiteles´ıt˝ o k´ odok.
3.1. Hash f¨ uggv´enyek A hash f¨ uggv´enyeket (hash function) a kriptogr´afia t¨obb ter¨ ulet´en is alkalmazz´ak. A kriptogr´ afi´ aban alkalmazott hash f¨ uggv´enyek az adatok integrit´as´ anak vizsg´ alat´ at biztos´ıtj´ ak. Gyakorlatban, legink´abb a digit´alis al´a´ır´asokn´ al alkalmazz´ ak, de a CPA-biztons´ag´ u, illetve CCA-biztons´ag´ u titkos´ıt´o rendszerekn´el is fontos szerepet kapnak. A hash f¨ uggv´eny egy tetsz˝ oleges hossz´ us´ag´ u u ¨zenetre egy r¨ogz´ıtett hossz´ us´ag´ u kimenetet hat´ aroz meg, amelyet ellen˝orz˝o ¨osszegnek, lenyomatnak is szoktak h´ıvni ([41], [53]).
31
Jel¨olje, ahogy a 2.4.2. szakaszban is, F uncX,Y az ¨osszes olyan f¨ uggv´eny halmaz´at, amelyek ´ertelmez´esi tartom´ anya X, ´es ´ert´ektartom´anya Y . Felt´etelezve, hogy |X| = N, |Y | = M ´es N ≥ M , akkor nyilv´anval´o, hogy teljes¨ ul: |F uncX,Y | = M N . A H : X → Y hash f¨ uggv´enyt mindig a F uncX,Y halmazb´ol v´alasztjuk ki. Felt´etelezve, hogy az u ¨zenet, amelynek meg szeretn´enk hat´arozni a hash ´ert´ek´et x, akkor y = H(x)-szel jel¨ olj¨ uk a kisz´amolt hash ´ert´eket. A kriptogr´ afi´ aban alkalmazhat´ o hash f¨ uggv´enyek h´arom fontos tulajdons´agnak kell eleget tegyenek, ami azt jelenti, hogy az al´abbi h´arom feladat egyike se legyen megoldhat´ o polinomi´ alis id˝oben: 1. feladat, egyir´ any´ u, ˝ osk´ep tulajdons´ ag (preimage, one-way property): BEMENET: legyen H : X → Y hash f¨ uggv´eny ´es y ∈ Y egy elem. KIMENET: az x ´ert´ek, azzal a tulajdons´aggal, hogy H(x) = y. 2. feladat, gyeng´en u ¨tk¨ oz´esmentes, m´ asodik ˝osk´ep tulajdons´ag (second preimage property): BEMENET: legyen H : X → Y hash f¨ uggv´eny ´es x ∈ X egy elem. KIMENET: az x1 ´ert´ek, azzal a tulajdons´aggal, hogy x 6= x1 ´es H(x) = H(x1 ). 3. feladat, u ¨tk¨ oz´esmentes tulajdons´ ag (collision-resistant property): BEMENET: legyen H : X → Y hash f¨ uggv´eny KIMENET: az x, x1 ´ert´ekek, azzal a tulajdons´aggal hogy x 6= x1 ´es H(x) = H(x1 ). 3.1. megjegyz´es. B´ armely hash f¨ uggv´eny, amely u ¨tk¨ oz´esmentes tulajdons´ ag´ u ugyanakkor gyeng´en u ¨tk¨ oz´esmentes tulajdons´ ag´ u is. B´ armely hash f¨ uggv´eny, amely gyeng´en u ¨tk¨ oz´esmentes tulajdons´ ag´ u ugyanakkor egyir´ any´ u tulajdons´ ag´ u is. A CPA, CCA-biztons´ ag ´ertelmez´esekn´el a szakirodalom [5] bevezeti a v´eletlen or´akulum modellt, amely a hash f¨ uggv´enyek egy ide´alis eset´et modellezi. Inform´ alisan ez azt jelenti, hogy a hash f¨ uggv´eny, az F uncX,Y f¨ uggv´enyhalmazb´ ol v´eletlenszer˝ uen ker¨ ul kiv´alaszt´asra ´es a hash ´ert´ek meghat´aroz´asa egy or´ akulum megk´erdez´ese sor´an val´os´ıthat´o meg, azaz nem alkalmazhat´o matematikai formula vagy algoritmus a hash ´ert´ek meghat´aroz´as´ara. A val´ os ´eletben term´eszetesen nem l´etezik ilyen f¨ uggv´eny, 32
viszont szerkeszthet˝ o olyan hash f¨ uggv´eny, amelynek viselked´ese hasonl´o a v´eletlen or´ akulum´ehoz. Form´ alisan ezt azt jelenti, hogy [61]: R
3.1. t´etel. Legyen H : X → Y hash f¨ uggv´eny, ahol H ← − F uncX,Y ´es legyen X0 ⊆ X. Felt´etelezz¨ uk tov´ abb´ a, hogy a H(x) ´ert´ek csak az x ∈ X0 esetekben ker¨ ult meghat´ aroz´ asra. Ha a hash f¨ uggv´eny viselked´ese hasonl´ oa v´eletlen or´ akulum´ehoz, akkor fenn´ all, hogy Pr[H(x) = y] = 1/M , minden x ∈ X \ X0 ´es y ∈ Y elemre. Mivel az u ¨tk¨ oz´esmentes tulajdons´ag a hash f¨ uggv´enyek legfontosabb tulajdons´ aga, az u ´jabb szakirodalom [7] a hash f¨ uggv´enyek u ¨tk¨oz´esmentes tulajdons´ ag´ ara vonatkoz´ oan, ´ arnyaltabb ´ertelmez´eseket is megad. Ahhoz, hogy ezek form´ alis ´ertelmez´es´et meg lehessen adni, a hash f¨ uggv´eny fogalma mellett be kell vezetni a kulcsos hash f¨ uggv´eny fogalm´at [7]. A kulcsos hash egy olyan f¨ uggv´eny, amely a k¨ovetkez˝o hash f¨ uggv´enycsal´ adb´ ol ker¨ ul kiv´ alaszt´ asra: Hash : K × X → Y . Minden egyes key ∈ K-ra meghat´ arozhat´o egy Hkey : X → Y kulcsos hash f¨ uggv´eny, ahol a key meghat´ aroz´ asa egy probabilisztikus, polinomi´alis idej˝ u algoritmussal t¨ ort´enik. Ilyenkor azt mondjuk, hogy a kulcsos hash f¨ uggv´eny a f¨ uggv´enycsal´ ad egy p´eld´ anya. Egy hash f¨ uggv´enycsal´ ad biztons´ag´anak vizsg´alatakor legf˝ok´eppen azt figyelik, hogy egy t´ amad´ onak milyen es´elye van arra, hogy u ¨tk¨oz´est tal´aljon a f¨ uggv´enycsal´ ad egy p´eld´ anya eset´en. Aszerint, hogy mikor ker¨ ul a t´amad´o birtok´aba a key ´ert´ek t¨ obbf´ele tulajdons´ag´ u hash f¨ uggv´eny ´ertelmezhet˝o [7]. Ha a key ´ert´ek birtokl´ asa el˝ ott ker¨ ulnek kiv´alaszt´asra az x, illetve x1 ´ert´ekek, akkor univerz´ alis (universal) hash f¨ uggv´eny ´ertelmezhet˝o, amelyet a szakirodalom a CR0-val jel¨ ol (ahol az x ´es x1 ´ert´ekek jelent´ese a 3. feladatnak megfelel˝ o). Form´ alisan az A t´amad´o el˝ony´et a k¨ovetkez˝o val´osz´ın˝ us´eggel ´ertelmezhetj¨ uk: R
R
AdvCR0,A (Hkey ) = Pr[(x, x1 ) ← − A(·), key ← −K: x 6= x1 , Hkey (x) = Hkey (x1 )].
33
3.1. defin´ıci´o. Egy Hkey : X → Y kulcsos hash f¨ uggv´eny univerz´ alis hash f¨ uggv´eny, ha b´ armely probabilisztikus polinomi´ alis idej˝ u A algoritmus eset´en l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy AdvCR0,A (Hkey ) ≤ f (k), ahol az A algoritmus fut´ asi ideje k f¨ uggv´enye. Ha az x ´ert´ek a key birtokl´ asa el˝ ott, az x1 ´ert´ek pedig a key birtokl´asa ut´an ker¨ ul kiv´ alaszt´ asra akkor a c´el-¨ utk¨oz´esmentes hash (target collision-resistant) f¨ uggv´eny ´ertelmezhet˝ o, amelyet a szakirodalom CR1gyel jel¨ol. Form´ alisan az A t´ amad´ o el˝ ony´et a k¨ovetkez˝o val´osz´ın˝ us´eggel ´ertelmezhetj¨ uk: R
R
R
AdvCR1,A (Hkey ) = Pr[(x, st) ← − A(·), key ← − K, x1 ← − A(key, st) : x 6= x1 , Hkey (x) = Hkey (x1 )], ahol st azt az inform´ aci´ ot jelenti, amelyet a t´amad´o megpr´ob´al megszerezni. 3.2. defin´ıci´o. Egy Hkey : X → Y kulcsos hash f¨ uggv´eny c´el-¨ utk¨ oz´esmentes hash f¨ uggv´eny, ha b´ armely probabilisztikus polinomi´ alis idej˝ u A algoritmus eset´en l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy AdvCR1,A (Hkey ) ≤ f (k), ahol az A algoritmus fut´ asi ideje k f¨ uggv´enye. Ha az x ´es x1 ´ert´ekek a key birtokl´asa ut´an ker¨ ulnek kiv´alaszt´asra, akkor az u ¨tk¨oz´esmentes hash f¨ uggv´eny (collision-resistant) ´ertelmezhet˝o, amelyet a szakirodalom CR2-vel jel¨ ol. Form´alisan az A t´amad´o el˝ony´et a k¨ovetkez˝o val´osz´ın˝ us´eggel ´ertelmezhetj¨ uk: R
R
AdvCR2,A (Hkey ) = Pr[key ← − K, (x, x1 ) ← − A(key) : x 6= x1 , Hkey (x) = Hkey (x1 )]. 3.3. defin´ıci´o. Egy Hkey : X → Y kulcsos hash f¨ uggv´eny u ¨tk¨ oz´esmentes hash f¨ uggv´eny, ha b´ armely probabilisztikus polinomi´ alis idej˝ u A algoritmus eset´en l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy AdvCR2,A (Hkey ) ≤ f (k), ahol az A algoritmus fut´ asi ideje k f¨ uggv´enye. Meg´allap´ıthat´ o, hogy egy CR2 t´ıpus´ u hash f¨ uggv´eny egyben CR1 t´ıpus´ u is, egy CR1 t´ıpus´ u, pedig CR0 is egyben, ami alapj´an fenn´allnak a k¨ovetkez˝o egyenl˝ otlens´egek: 34
AdvCR0,A0 (Hkey ) ≤ AdvCR1,A1 (Hkey ), ahol A0 tetsz˝oleges t´ amad´ o algoritmus, amelynek fut´asi ideje ugyanaz mint az A1 t´amad´ o algoritmusnak. AdvCR1,A1 (Hkey ) ≤ AdvCR2,A2 (Hkey ), ahol A1 tetsz˝oleges t´ amad´ o algoritmus, amelynek fut´asi ideje ugyanaz mint az A2 t´amad´ o algoritmusnak. A kriptogr´ afi´ aban sz´eles k¨ orben alkalmazott SHA hash f¨ uggv´enycsal´ad p´eld´anyair´ ol azt felt´etelezik, hogy CR2 t´ıpus´ u hash f¨ uggv´enyek. ¨ oz´esmentes tulajdons´ Utk¨ aggal rendelkez˝o hash f¨ uggv´enyeket norma f¨ uggv´enyekb˝ ol kiindulva B´erczes, K¨odm¨on ´es Peth˝o is szerkesztett [16], amelyet a Kripto Kft. Codefish n´even hozott kereskedelmi forgalomba. A f¨ uggv´eny viselked´es´et a k´es˝obbiekben is tanulm´anyozt´ak [15] ´es bizony´ıtott´ ak el˝ ok´epellen´ all´ os´ ag´at, illetve hogy j´o statisztikai tulajdons´agokkal rendelkezik. Meg´ allap´ıtott´ak azt is, hogy a f¨ uggv´eny nem rendelkezik a lavinahat´ as tulajdons´aggal a szigor´ uan vett ´ertelemben, de ezt aszimptotikusan megk¨ ozel´ıti.
¨ 3.2. Uzenethiteles´ ıt˝ o k´ odok Az u ¨zenethiteles´ıt˝ o k´ od (messages authentication code) egy olyan f¨ uggv´eny, amely egy titkos inform´ aci´ o, a MAC-kulcs alapj´an, a bemeneti u ¨zenetre (bit-szekvenci´ ara) egy r¨ ogz´ıtett hossz´ us´ag´ u ellen˝orz˝o ¨osszeget egy MAC´ert´eket hat´ aroz meg [52]. Az u ¨zenethiteles´ıt˝o k´od egyike a legfontosabb kriptogr´afiai primit´ıvnek, hiszen a bizalmas inform´aci´ocsere lehet˝os´ege mellett az u ¨zenet val´ odis´ ag´ at is garant´alni kell, amit u ¨zenethiteles´ıt˝o k´odok alkalmaz´as´ aval lehet el´erni. Az u ¨zenethiteles´ıt˝o k´od szerepe teh´at, hogy ne lehessen a bemeneti u ¨zenet egyetlen bitj´et se megv´altoztatni, se kit¨or¨olni, se u ´j bitet hozz´ aadni. A tov´ abbiakban MAC-k´odk´ent fogunk hivatkozni az u ¨zenethiteles´ıt˝ o k´ odra, amelynek form´alis ´ertelmez´ese a k¨ovetkez˝o [36]:
35
3.4. defin´ıci´o. Egy MAC-k´ od h´ arom algoritmussal ´ertelmezhet˝ o, egy (K, M, T ) halmazh´ armas felett, ahol K a MAC-kulcsok halmaza, M az u ¨zenetek halmaza, T a MAC-´ert´ekek (a ”tag”-ek) halmaza. A h´ arom eml´ıtett algoritmus, pedig a k¨ ovetkez˝ o: • Gen, a kulcsgener´ al´ o, probabilisztikus algoritmus, amely polinomi´ alis id˝ oben az 1k bemeneten meghat´ arozza a MAC-kulcsot, jel¨ olj¨ uk a R tov´ abbiakban ezt key-el: key ← − Gen(1k ), ahol key ∈ K, ´es k a rendszer biztons´ agi param´etere, a gener´ alt kulcs bithossza, • M ackey , az u ¨zenethiteles´ıt˝ o k´ odot el˝ o´ all´ıt´ o, probabilisztikus algoritmus, a MAC-f¨ uggv´eny, amely polinomi´ alis id˝ oben a key, MAC-kulcs R alapj´ an meghat´ arozza az m ∈ M u ¨zenetre a t MAC-´ert´eket: t ← − M ackey (m), ahol t ∈ T , • V erkey , a determinisztikus, ellen˝ orz˝ o algoritmus, amely az key, m, t bemeneti ´ert´ekekre leellen˝ orzi a t MAC-´ert´ek validit´ as´ at: V erkey (m, t) → 1, ha az u ¨zenet s´ertetlen, m´ ask´epp null´ at hat´ aroz meg. Ha a MAC-f¨ uggv´eny bemenet´enek hossza N bit, akkor a lehets´eges bemenetek sz´ama 2N . Ha a MAC-f¨ uggv´eny kimenete egy M -bites ´ert´ek, akkor ez azt jelenti, hogy 2M k¨ ul¨ onb¨ oz˝ o MAC-´ert´eket lehet meghat´arozni. Mivel N ´altal´aban sokkal nagyobb, mint M , a lehets´eges u ¨zenetek 2N sz´ama M ´ is sokkal nagyobb, mint a lehets´eges MAC-´ert´ekek 2 sz´ama. Atlagosan N −M minden MAC-´ert´eket 2 k¨ ul¨ onb¨ oz˝ o bemenet hat´aroz meg. A MAC-f¨ uggv´eny, hasonl´ o egy titkos´ıt´o f¨ uggv´enyhez, azzal a k¨ ul¨onbs´eggel, hogy az inverz, a visszafejt˝ o f¨ uggv´enyt nem kell ´ertelmezni. Ezekb˝ol a tulajdons´ agokb´ ol kifoly´ olag a biztons´agi el˝o´ır´asok egy MACf¨ uggv´ennyel szemben m´ asok ´es nem is olyan szigor´ uak, mint egy titkos´ıt´o f¨ uggv´eny eset´eben. A MAC-f¨ uggv´ennyel szemben a k¨ovetkez˝o k¨ovetelm´enyek ´allap´ıthat´ oak meg [47]: • A MAC-f¨ uggv´eny bemenete egy olyan m u ¨zenet, amelynek hossz´ara nincs korl´ at meg´ allap´ıtva, a kimenet hossza, amelyet jel¨olj¨ unk M -mel, pedig sokkal r¨ ovidebb. Biztons´ agi okokb´ol az M ≥ 128, 256, . . . bit. • A Kerchoffs-elv alapj´ an a MAC-f¨ uggv´eny le´ır´asa nyilv´anos, a rendszer egyetlen titkos inform´ aci´ oja a key. 36
• Adott MAC-f¨ uggv´eny, adott m bemenet ´es key eset´eben a M ackey (m) ´ert´ek polinomi´ alis id˝ oben meghat´arozhat´o kell, hogy legyen. • Adott MAC-f¨ uggv´eny ´es adott m bemenet eset´eben sem a M ackey (m) ´ert´ek, sem a key kulcs nem hat´arozhat´o meg polinomi´alis id˝oben 1/2N -n´el nagyobb val´ osz´ın˝ us´eggel; m´eg abban az esetben sem, ha a t´amad´ o t¨ obb (mi , M ackey (mi )) p´arral rendelkezik, ahol az mi bemenetek a t´ amad´ o´ altal tetsz˝ olegesen szerkesztett u ¨zenetek. Ahhoz, hogy a kommunik´ aci´ oban r´esztvev˝o felek sz´am´ara egyar´ant biztos´ıtva legyen a bizalmas inform´ aci´ ocsere ´es az ny´ılt sz¨oveg s´ertetlens´ege, k´etf´ele technika l´etezik a MAC-´ert´ek ´es a rejtjelezett sz¨oveg egy¨ uttes meghat´aroz´as´ ara. Az els˝ o technika szerint a ny´ılt sz¨oveg ut´an hozz´af˝ uzz¨ uk a ny´ılt sz¨ovegre kisz´amolt MAC-´ert´eket ´es ezen u ´j ´ert´ekre alkalmazunk egy Enc titkos´ıt´o f¨ uggv´enyt. A m´ asodik technika szerint el˝obb alkalmazzuk az Enc titkos´ıt´o f¨ uggv´enyt a ny´ılt sz¨ ovegen ´es az ´ıgy kapott rejtjelezett sz¨ovegre sz´amoljuk ki a MAC-´ert´eket, majd ezt a k´et ´ert´eket egym´as ut´an f˝ uzz¨ uk. Mindk´et esetben a titkos´ıt´ o f¨ uggv´eny ´es a MAC-f¨ uggv´eny kulcsa k¨ ul¨onb¨oz˝ o kell legyen. A k´et technika k¨ ul¨ onb¨ oz˝ o t´ amad´asi lehet˝os´egeket hat´aroz meg. A MAC-´ert´ek kisz´ am´ıt´ asa sor´ an az u ¨zenetet blokkokra osztj´ak, amelyeket standard el˝ o´ır´ asoknak megfelel˝oen ¨osszel´ancolnak [7]. A t´amad´asi lehet˝os´egeket az u ¨zenet blokkjaira alkalmazott l´ancol´asi technika is meghat´arozza. A MAC-f¨ uggv´enyek elleni t´ amad´asi lehet˝os´egeket a szakirodalom [60] k´et csoportra osztja: kriptoanal´ızisen alapul´o t´amad´asok ´es brute-force t´ıpus´ u t´amad´ asok. A kriptoanal´ızis sor´ an a t´ amad´ o a MAC-f¨ uggv´enyek szerkeszt´es´en´el alkalmazott technik´ ak gyenges´egeit veszi t´amad´asba. A brute-force t´ıpus´ u t´ amad´ asok eset´eben a t´amad´o vagy a MAC-kulcsot pr´ob´alja meghat´ arozni vagy egy ´erv´enyes MAC-´ert´eket akar el˝o´all´ıtani a bemeneti u ¨zenet ismeret´enek hi´ any´ aban. A t´amad´o keres´esi technik´at alkalmaz az ¨ osszes lehets´eges bemeneti, kimenetei ´ert´ekp´arok k¨oz¨ott.
37
Abban az esetben, ha a MAC-kulcs meghat´aroz´asa a c´el, akkor a t´amad´o a k¨ovetkez˝ ok´eppen j´ ar el. Ha felt´etelezz¨ uk, hogy a MAC-kulcs hossza |key| bit ´es a t´ amad´ o rendelkezik egy u ¨zenet ´es a neki megfelel˝o MAC-´ert´ek p´arral, akkor a t´ amad´ as abb´ ol ´all, hogy a t´amad´o meghat´arozza az ¨osszes lehets´eges kulcs ´ert´ekekre a megfelel˝o MAC-´ert´eket ´es ¨osszehasonl´ıtja, hogy melyik tal´ al az eredeti MAC-´ert´ekkel. Ez azt jelenti, hogy minden kulcs´ert´ekre meg kell hat´ arozza a MAC-´ert´eket, azaz 2|key| MAC´ert´eket kell el˝o´ all´ıtson. A MAC-´ert´ek szerkeszt´esi m´odj´ab´ol kifoly´olag fenn´all az a lehet˝ os´eg, hogy t¨ obb kulcs´ert´ekre ugyanazt a MAC-´ert´eket kapja, ebben az esetben egy u ´j (¨ uzenet, MAC-´ert´ek) p´arra kell elv´egezni a sz´am´ıt´asokat. Abban az esetben, ha egy ´erv´enyes MAC-´ert´eket akar el˝o´all´ıtani, akkor a MAC-´ert´ek nagys´ agrendje hat´ arozza meg a brute-force t´amad´as kivitelezhet˝os´eg´et. Ha a MAC-´ert´ek bithossza M , akkor az el˝o´all´ıthat´o MAC´ert´ekek sz´ama 2M . Figyelembe v´eve a sz´ am´ıt´ og´epek jelenlegi sz´am´ıt´asi kapacit´as´at, a minim´alis biztons´ agi k¨ ovetelm´eny egy MAC-k´oddal szemben az, hogy fenn´alljon: min(|key|, M ) ≥ 128 bit. A MAC-k´ odok biztons´ ag´ anak form´alis ´ertelmez´ese is megadhat´o [36] amelyr˝ol azonban fontos megjegyezni, hogy er˝os megk¨ot´est tartalmaz, melyet nem minden gyakorlatban haszn´alt MAC-k´od teljes´ıt. Az ´ertelmez´eshez sz¨ uks´eges megadni egy k´ıs´erlet l´ep´essorozat´at, ahol a k´ıs´erlet az A t´amad´o ´es k¨ ornyezete, a kih´ıv´ o k¨ oz¨ ott j´atsz´odik le. 3.1. k´ıs´erlet. 1. A kih´ıv´ o a Gen kulcsgener´ al´ o algoritmussal meghat´ arozza az key MAC-kulcsot, 2. az A t´ amad´ o tetsz˝ oleges sz´ am´ u MAC-´ert´eket hat´ aroz meg a kih´ıv´ o M ackey (·) algoritmusa seg´ıts´eg´evel; jel¨ olj¨ uk a meghat´ arozott MAC´ert´ekek halmaz´ at M-el, 3. az A t´ amad´ o meghat´ aroz egy (m, t) ´ert´ekp´ art, amelyet ´ atad a kih´ıv´ onak, 4. ha V erkey (m, t) = 1 ´es m 6∈ M, akkor az A t´ amad´ o megadja a b = 1 ´ert´eket, m´ ask´epp egy b 6= 1 ´ert´eket hat´ aroz meg.
38
3.5. defin´ıci´ o. Az AdvM AC,A (k) = P r[b = 1] val´ osz´ın˝ us´eggel az A t´ amad´ o el˝ ony´et ´ertelmezz¨ uk, ahol a b ´ert´eket a 3.1. k´ıs´erletben hat´ aroztuk meg. 3.6. defin´ıci´ o. A MAC-k´ od biztons´ agos, ha b´ armely A probabilisztikus, polinomi´ alis idej˝ u t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy hogy: AdvM AC,A (k) ≤ f (k). A gyakorlatban k´et fajta MAC-f¨ uggv´enyt szoktak alkalmazni, az egyik hash f¨ uggv´enyeken alapul´ o MAC-f¨ uggv´eny, a HMAC [4], a m´asik a CBC m´odban alkalmazott blokktitkos´ıt´ o rendszereken alapul´o MAC-f¨ uggv´eny [60].
39
40
4. fejezet
Aszimmetrikus titkos´ıt´asi rendszerek biztons´aga 4.1. A matematikai modell Aszimmetrikus vagy nyilv´ anos kulcs´ u titkos´ıt´asi rendszereket az 1970-es ´evek k¨ozepe ´ ota alkalmaznak a kriptogr´afi´aban, pontosabban Diffie ´es Hellman 1976-os cikke ´ ota [25]. A legt¨ obb ma is sz´eles k¨orben alkalmazott rendszer matematikai alapjait ekkor fektett´ek le, viszont a l´etez˝o rendszerekkel szembeni biztons´ agi elv´ ar´ asok az´ ota igencsak megv´altoztak [38]. Ez´ert sz´amos algoritmus, protokoll implement´al´asa az els˝o specifik´aci´ok ´ota, jelenleg m´as m´ odon t¨ ort´enik. P´eld´ aul az RSA eset´eben a jelenlegi standardok az RSA–OAEP alapj´ an adj´ ak meg a titkos´ıt´o algoritmus specifik´aci´oj´at [6]. Az ElGamal-titkos´ıt´ onak a Cramer ´es Shoup ´altal aj´anlott rendszer jelenti a biztons´ agos verzi´ oj´ at [21], a Rabin-titkos´ıt´o egyik biztons´agos verzi´oj´at, pedig Boneh ´ırta le [14]. A t¨ obbsz¨ or¨ os titkos´ıt´as (multiple encryption) egyik biztons´agos haszn´ alat´ anak m´ odj´ at Dodis ´es Katz adt´ak meg [26], amelyre a kor´abbi szakirodalomban t¨ obbsz¨ or tal´alunk nem biztons´agos aj´anl´asokat is. Hogy megadhassuk a jelenlegi biztons´agi elv´ar´asoknak is megfelel˝o biztons´aghoz kapcsol´ od´ o ´ertelmez´eseket el˝osz¨or az aszimmetrikus titkos´ıt´asi rendszerek matematikai ´ertelmez´es´et adjuk meg. 41
4.1. defin´ıci´o. Jel¨ olje P KE azt az aszimmetrikus titkos´ıt´ asi vagy nyilv´ anos kulcs´ u titkos´ıt´ asi rendszert, amely h´ arom algoritmussal ´ertelmezhet˝ o, a ((P K, SK), M, C) felett, ahol M a ny´ılt sz¨ ovegek egy v´eges halmaza, C a rejtjelezett sz¨ ovegek egy v´eges halmaza, P K a nyilv´ anos kulcsok egy v´eges halmaza, ´es SK a titkos kulcsok v´eges halmaza. A h´ arom eml´ıtett algoritmus, pedig a k¨ ovetkez˝ o: • Gen, a probabilisztikus kulcsgener´ al´ o algoritmus, amely polinomi´ alis id˝ oben, az 1k bemeneten meghat´ arozza a (pk, sk) kulcsp´ art: R k (pk, sk) ← − Gen(1 ), ahol pk ∈ P K a nyilv´ anos kulcs ´es sk ∈ SK a titkos kulcs ´es k ∈ Z≥0 a rendszer biztons´ agi param´etere, amely legt¨ obb esetben a gener´ alt kulcs bithossza, • az Encpk a probabilisztikus rejtjelez˝ o algoritmus, amely polinomi´ alis id˝ oben v´egzi a rejtjelez´est, az m ∈ M bemenetre; a pk nyilv´ anos R kulcs ismeret´eben meghat´ arozza a c ∈ C rejtjelezett sz¨ oveget: c ← − Encpk (m), • a Decsk a visszafejt˝ o algoritmus, amely polinomi´ alis id˝ oben, determinisztikusan v´egzi a visszafejt´est, az sk titkos kulcs alapj´ an a c ∈ C rejtjelezett sz¨ ovegen: m ← Decsk (c); hiba eset´eben, kimenetk´ent visszautas´ıt´ ou ¨zenetet ad. A rendszer helyess´ege ´erdek´eben megk¨ovetelj¨ uk, hogy adott (pk, sk) kulcsp´ar ´es m ny´ılt sz¨ ovegre fenn´ alljon, hogy Decsk (Encpk (m)) = m. A rendszer helyess´eg´et illet˝ oen, a jelenlegi szakirodalom [21] enn´el sokkal ´arnyaltabban fogalmaz, m´egpedig a k¨ ovetkez˝o k¨ovetelm´enyeket ´ırja el˝o meg: • adott m ∈ M ny´ılt sz¨ oveg ´es c ∈ C rejtjelezett sz¨oveg eset´eben a (pk, sk) ∈ P K × SK kulcsp´ar nem megfelel˝o, ha fenn´all: Decsk (Encpk (m)) 6= m, • annak a val´ osz´ın˝ us´ege, hogy a Gen kulcsgener´al´o algoritmus nem megfelel˝o (pk, sk) kulcsp´ art gener´ al a k bemenet f¨ uggv´eny´eben elhanyagolhat´ oan n˝ o.
42
4.2. Egyir´any´ u f¨ uggv´enyek Aszimmetrikus rendszerek szerkeszt´es´ehez egyir´any´ u f¨ uggv´enyekre (oneway function) van sz¨ uks´eg. Az egyir´any´ u f¨ uggv´enyek olyan f¨ uggv´enyek, amelyekre fenn´ all, hogy a f¨ uggv´eny b´armely bemeneti ´ert´ek´ere hat´ekony ki´ert´ekel´esi algoritmus adhat´ o meg, m´asfel˝ol az inverz elem meghat´aroz´as´ ara nem ismert hat´ekony algoritmus. Form´ alisan a k¨ ovetkez˝ o ´ertelmez´es adhat´o meg [18]: 4.2. defin´ıci´ o. A g : X → Y f¨ uggv´eny egyir´ any´ u, ha fenn´ all a k¨ ovetkez˝ o k´et tulajdons´ ag: 1. (hat´ekony ki´ert´ekel´es) l´etezik egy polinomi´ alis idej˝ u algoritmus, amely az x ∈ X bemenetre meghat´ arozza a g(x) ∈ Y ´ert´eket, 2. (neh´ez az inverz elem meghat´ aroz´ asa) b´ armely probabilisztikus polinomi´ alis idej˝ u A algoritmus eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy: R
Pr[g(A(g(x), 1k )) = g(x)] ≤ f (k), ahol x ← − X. A gyakorlatban egyir´ any´ u f¨ uggv´enyek csak bizonyos felt´etelez´esek mellett l´eteznek. Ahhoz, hogy felt´etelez´esek n´elk¨ uli egyir´any´ u f¨ uggv´enyek l´etez´es´er˝ol besz´elhess¨ unk sz¨ uks´eges lenne a h´ıres N P 6= P ´all´ıt´as bizony´ıt´asa ([39], [56]). Az eml´ıtett felt´etelez´esek az angol kriptogr´afiai terminol´ogi´aban basic assumption n´even ismertek. Abban az esetben, ha a g f¨ uggv´eny bijekt´ıv, ´es az X ´ertelmez´esi tartom´any megegyezik az Y ´ert´ek tartom´annyal, azt mondjuk, hogy a g egyir´any´ u permut´ aci´ o. Kriptorendszerek szerkeszt´es´ehez, azonban nem mindig el´egs´egesek az egyir´any´ u f¨ uggv´enyek, sz¨ uks´eges az egyir´any´ u csap´oajt´o f¨ uggv´eny (one-way trapdoor function) fogalm´ anak ´ertelmez´ese. Az egyir´ any´ u csap´ oajt´ o f¨ uggv´enyek olyan f¨ uggv´enyek, amelyekre igaz, hogy a f¨ uggv´eny b´ armely bemeneti elem´ere hat´ekony ki´ert´ekel´esi algoritmus adhat´o meg, m´ asfel˝ ol az inverz elem meghat´aroz´as´ara nem ismert hat´ekony algoritmus, csak abban az esetben ha adott egy plusz inform´aci´o is. Form´ alisan a k¨ ovetkez˝ o ´ertelmez´es adhat´o meg [18]: 43
4.3. defin´ıci´o. A g : X → Y f¨ uggv´eny egyir´ any´ u csap´ oajt´ o f¨ uggv´eny, ha fenn´ allnak a k¨ ovetkez˝ o tulajdons´ agok: 1. l´etezik egy Gen algoritmus, amely polinomi´ alis id˝ oben, az 1k bemeneten meghat´ arozza a td plusz inform´ aci´ ot, 2. l´etezik egy polinomi´ alis idej˝ u algoritmus, amely az x ∈ X bemenetre meghat´ arozza a g(x) ∈ Y ´ert´eket, 3. b´ armely probabilisztikus polinomi´ alis idej˝ u A algoritmus eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy: R
Pr[g(A(g(x), 1k )) = g(x)] ≤ f (k), ahol x ← − X, 4. l´etezik egy determinisztikus polinomi´ alis idej˝ u B algoritmus, amely eset´eben fenn´ all: R
g(B(g(x), td, 1k )) = g(x), ahol x ← − X.
4.3. Kriptogr´afiai felt´etelez´esek A k¨ovetkez˝okben megadjuk azokat a felt´etelez´eseket, amelyeket az ´ertekez´es sor´an tanulm´anyozott rendszerek eset´eben haszn´alunk ([36], [18]). Ezen felt´etelez´esek alapj´ an kijelenthet˝ o, hogy l´etezik egyir´any´ u f¨ uggv´eny.
4.3.1. A faktoriz´aci´os felt´etelez´es A faktoriz´aci´os felt´etelez´es (factoring assumption) a k¨ovetkez˝oket ´all´ıtja: legyen Genf act egy algoritmus, amely polinomi´alis id˝oben, az 1k bemeneten R meghat´arozza az (n, p, q) sz´ amh´ armast: (n, p, q) ← − Genf act (1k ) u ´gy, hogy p, q k-bites pr´ımsz´ amok ´es n = p · q. 4.4. defin´ıci´o. A faktoriz´ aci´ os felt´etelez´es, a Genf act algoritmus ´ altal gener´ alt ´ert´ekek f¨ uggv´eny´eben, azt jelenti, hogy b´ armely probabilisztikus, polinomi´ alis idej˝ u A algoritmus eset´eben, l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Pr[A(n) = (p, q)] ≤ f (k). 44
4.3.2. Az RSA-felt´etelez´es Az RSA-felt´etelez´es (RSA assumption) a k¨ovetkez˝oket ´all´ıtja: legyen GenRSA egy algoritmus, amely polinomi´alis id˝oben, az 1k bemeneten megR hat´arozza az (n, p, q, e, d) sz´ am¨ ot¨ ost: (n, p, q, e, d) ← − GenRSA (1k ) u ´gy, hogy: • n = p · q, ´es p, q k-bites pr´ımsz´amok, R all: e · d ≡ 1 (mod (p − 1) · (q − 1)). • e← − Z∗n , ´es d-re fenn´ 4.5. defin´ıci´ o. Az RSA-felt´etelez´es, a GenRSA algoritmus ´ altal gener´ alt ´ert´ekek f¨ uggv´eny´eben, azt jelenti, hogy b´ armely probabilisztikus, polinomi´ alis idej˝ u A algoritmus eset´eben, l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Pr[A(n, e) = d] ≤ f (k).
4.3.3. A kvadratikus marad´ek felt´etelez´es A kvadratikus marad´ek felt´etelez´es (quadratic residuosity assumption) a k¨ovetkez˝ oket ´ all´ıtja: legyen GenQR egy algoritmus, amely polinomi´alis id˝ oben, az 1k bemeneten meghat´arozza az (n, p, q) sz´amh´armast: R (n, p, q) ← − GenQR (1k ) u ´gy, hogy p, q k-bites pr´ımsz´amok ´es n = p · q. Jel¨olj¨ uk QRn -el a kvadratikus marad´ekok halmaz´at (mod n) szerint, form´alisan: QRn = {x ∈ Z∗n |∃z ∈ Z∗n : z 2 = x (mod n)}.
Jel¨olj¨ uk QNR+1 amok halmaz´at, amelyek nem kvadratikus n -el azon sz´ marad´ekok (mod p) ´es (mod q) szerint sem, ahol form´alisan: ∗ ∗ 2 QNR+1 es u2 = x (mod q)}. n = {x ∈ Zn |¬∃z, u ∈ Zn : z = x (mod p) ´
4.6. defin´ıci´ o. Annak az eld¨ ont´ese, hogy egy sz´ am kvadratikus marad´ek vagy sem, a GenQR algoritmus ´ altal gener´ alt ´ert´ekek f¨ uggv´eny´eben, azt jelenti, hogy b´ armely probabilisztikus, polinomi´ alis idej˝ u A algoritmus eset´eben, l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy | Pr[A(n, xqr ) = 1] − Pr[A(n, xqnr ) = 1]| ≤ f (k), ahol R
R
xqr ← − QRn ´es xqnr ← − QNR+1 n . 45
4.3.4. A diszkr´et logaritmus felt´etelez´es A diszkr´et logaritmus felt´etelez´es (discrete logarithm assumption, DL assumption) a k¨ ovetkez˝ oket ´ all´ıtja: legyen GenDL egy algoritmus, amely polinomi´alis id˝ oben, az 1k bemeneten meghat´arozza az (G, p, g) elemeket R − GenDL (1k ) u (G, p, g) ← ´gy, hogy: • G egy ciklikus csoport, amelynek rendje egy k-bites sz´am: p, • g a G csoport gener´ ator eleme. 4.7. defin´ıci´o. Az diszkr´et logaritmus felt´etelez´es, a GenDL algoritmus ´ altal gener´ alt ´ert´ekek f¨ uggv´eny´eben, azt jelenti, hogy b´ armely probabilisztikus, polinomi´ alis idej˝ u A algoritmus eset´eben, l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Pr[A(G, p, g, h) = x] ≤ f (k), ahol fenn´ all, hogy g x = h.
4.3.5. A d¨ont´esi Diffie–Hellman-felt´etelez´es A d¨ont´esi Diffie–Hellman-felt´etelez´es (Decisional Diffie-Hellman assumption, DDH assumption) a k¨ ovetkez˝ oket ´ all´ıtja: legyen GenDDH egy algoritmus, amely polinomi´ alis id˝ oben, az 1k bemeneten meghat´arozza az (G, p, g) R elemeket (G, p, g) ← − GenDDH (1k ) u ´gy, hogy: • G egy ciklikus csoport, amelynek rendje egy k-bites sz´am: p, • g a G csoport gener´ ator eleme. 4.8. defin´ıci´o. A d¨ ont´esi Diffie–Hellman-felt´etelez´es, a GenDDH algoritmus ´ altal gener´ alt ´ert´ekek f¨ uggv´eny´eben, azt jelenti, hogy b´ armely probabilisztikus polinomi´ alis idej˝ u A algoritmus eset´eben, l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy | Pr[A(G, p, g, g x , g y , g z ) = 1] − Pr[A(G, p, g, g x , g y , g xy ) = 1]| ≤ f (k), ahol R
x, y, z ← − Zp .
46
4.4. Biztons´ag´ertelmez´esek Az aszimmetrikus titkos´ıt´ ok eset´eben a biztons´ag ´ertelmez´esekor figyelembe kell venni, hogy a t´ amad´ o rendelkezik a nyilv´anos kulccsal, ez´ert b´armikor, tetsz˝oleges sz´ am´ u titkos´ıt´ ast tud v´egrehajtani, amelynek eredm´eny´et megvizsg´alva sikeres t´ amad´ ast kezdem´enyezhet. A t´amad´ as sor´ an, azon plusz inform´aci´o, amely a nyilv´anos kulcs ismeret´et jelenti, l´enyegesen megv´ altoztatja az aszimmetrikus titkos´ıt´as eset´eben a biztons´ agi krit´eriumokat [43]. Ez a plusz inform´aci´o azt is jelenti, hogy az aszimmetrikus rendszerekn´el a k´et legfontosabb t´amad´asi t´ıpus amelyet meg kell vizsg´ alni a v´alasztott ny´ılt sz¨oveg alap´ u t´amad´as ´ ´es a v´alasztott rejtjelezett sz¨ oveg alap´ u t´amad´as. Eppen ez´ert, jelen ´ertekez´esben nem t´er¨ unk ki a passz´ıv t´amad´oval szembeni biztons´agi krit´eriumokra. Mindk´et t´ amad´ asi t´ıpus eset´eben megfogalmazhat´oak az ´altal´anos biztons´ agi k¨ ovetelm´enyek, megadhat´oak a biztons´ag´ertelmez´esek, amelyek azonban sokszor nagyon er˝ os megk¨ot´eseket tartalmaznak, ´ıgy egy adott helyzetben a kriptogr´ afiai rendszer tervez´esekor d˝ol el, hogy hogyan ´erdemes betartani ezeket a biztons´ agi krit´eriumokat.
4.4.1. V´alasztott ny´ılt sz¨oveg alap´ u t´amad´as A v´alasztott ny´ılt sz¨ oveg alap´ u t´amad´as eset´eben felt´etelezz¨ uk, hogy a t´amad´ o a titkos´ıt´ o algoritmus seg´ıts´eg´evel meg tudja hat´arozni egy tetsz˝oleges ny´ılt sz¨ oveg rejtjelezett ´ert´ek´et, ahol a kiv´alaszt´asra ker¨ ul˝o ny´ılt sz¨ovegeket a t´ amad´ o hat´ arozza meg. A t´amad´as adapt´ıv form´aja azt jelenti, hogy a t´ amad´ o´ altal aszerint ker¨ ulnek kiv´alaszt´asra a ny´ılt sz¨ovegek, hogy mi volt egy kor´ abbi titkos´ıt´ as eredm´enye. Ahogy a szimmetrikus titkos´ıt´asn´al, u ´gy itt is a biztons´ ag´ertelmez´es megad´asa egy k´ıs´erlet kimeneti eredm´eny´enek a vizsg´ alat´ aval t¨ ort´enik [21]. A sz¨ uks´eges l´ep´essorozat, a megfelel˝o k´ıs´erlet eset´eben a k¨ovetkez˝o, ahol a k´ıs´erlet az A t´ amad´ o ´es k¨ ornyezete, a kih´ıv´o k¨oz¨ott j´atsz´odik le. 4.1. k´ıs´erlet. 1. A kih´ıv´ o a Gen kulcsgener´ al´ o algoritmussal meghat´ arozza a (pk, sk) kulcsp´ art, majd a pk nyilv´ anos kulcsot ´ atadja az A t´ amad´ onak, 47
2. az A t´ amad´ o tetsz˝ oleges sz´ am´ u titkos´ıt´ ast v´egez a pk nyilv´ anos kulcs ismeret´eben, ahol a titkos´ıt´ ast a kih´ıv´ o Encpk (·) algoritmus´ aval v´egzi, 3. az A t´ amad´ o, k´et azonos hossz´ us´ ag´ u u ¨zenetet hat´ aroz meg, jel¨ olj¨ uk ezeket m0 , m1 -gyel, amelyeket ´ atad a kih´ıv´ onak, R 4. a kih´ıv´ ob← − {0, 1} v´ alaszt´ as alapj´ an az Encpk (·) algoritmussal megR hat´ arozza az mb titkos´ıtott ´ert´ek´et: c∗ ← − Encpk (mb ), amelyet ´ atad az ∗ A t´ amad´ onak; nevezz¨ uk ezt a c titkos´ıtott ´ert´eket kih´ıv´ o rejtjelezett sz¨ ovegnek (challenge ciphertext), 5. az A t´ amad´ o tetsz˝ oleges sz´ am´ u titkos´ıt´ ast v´egez a pk nyilv´ anos kulcs ismeret´eben, ahol a titkos´ıt´ ast a kih´ıv´ o Encpk (·) algoritmus´ aval v´egzi, 6. az A t´ amad´ o meghat´ aroz egy ˆb ∈ {0, 1} kimeneti ´ert´eket. 4.9. defin´ıci´o. A P KE aszimmetrikus titkos´ıt´ asi rendszerben a A t´ amad´ o ˆb] − 1 |, ahol el˝ onye a k¨ ovetkez˝ ok´eppen adhat´ o meg: Advcpa (k) = | Pr[b = P KE,A 2 a b ´es ˆb ´ert´ekeket a 4.1. k´ıs´erletben hat´ aroztuk meg. A v´alasztott ny´ılt sz¨ oveg alap´ u t´ amad´assal szembeni CPA-biztons´agot a k¨ovetkez˝o ´ertelmez´es adja: 4.10. defin´ıci´o. A P KE aszimmetrikus titkos´ıt´ asi rendszer CPA-biztons´ ag´ u, ha b´ armely A, probabilisztikus, polinomi´ alis idej˝ u t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Advcpa P KE,A (k) ≤ f (k).
4.4.2. V´alasztott rejtjelezett sz¨oveg alap´ u t´amad´as Egy sokkal er˝osebb biztons´ ag´ertelmez´es a v´alasztott rejtjelezett sz¨oveg alap´ u t´amad´assal szembeni biztons´ agot ´ertelmezi, amely sor´an a t´amad´o tetsz˝oleges sz´am´ u rejtjelez´est ´es visszafejt´est is el tud v´egezni egy rejtjelez˝o, illetve visszafejt˝ o or´ akulum seg´ıts´eg´evel ([21], [11]). A t´amad´as adapt´ıv form´aja azt jelenti, hogy a t´ amad´ onak arra is lehet˝os´ege van, hogy a kiv´alaszt´asra ker¨ ul˝ o ny´ılt sz¨ ovegeket, illetve rejtjelezett sz¨ovegeket az alapj´an hat´arozza meg, hogy mi volt a kor´abbi rejtjelez´es, illetve visszafejt´es eredm´enye.
48
A v´ alasztott rejtjelezett sz¨ oveg alap´ u t´amad´assal szembeni biztons´ag´ertelmez´es´ehez, a megfelel˝ o k´ıs´erlet, a k¨ovetkez˝o l´ep´essorozatb´ol fog ´allni, ahol a k´ıs´erlet az A t´ amad´ o ´es k¨ornyezete, a kih´ıv´o k¨oz¨ott j´atsz´odik le. 4.2. k´ıs´erlet. 1. A kih´ıv´ o a Gen kulcsgener´ al´ o algoritmussal meghat´ arozza a (pk, sk) kulcsp´ art, majd a pk nyilv´ anos kulcsot ´ atadja az A t´ amad´ onak, 2. az A t´ amad´ o tetsz˝ oleges sz´ am´ u titkos´ıt´ ast, illetve visszafejt´est v´egez a kih´ıv´ o Encpk (·) titkos´ıt´ o ´es Decsk (·) visszafejt˝ o algoritmus´ aval, 3. az A t´ amad´ o, k´et azonos hossz´ us´ ag´ u u ¨zenetet hat´ aroz meg, jel¨ olj¨ uk ezeket m0 , m1 -gyel, amelyeket ´ atad a kih´ıv´ onak, R 4. a kih´ıv´ ob← − {0, 1} v´ alaszt´ as alapj´ an az Encpk (·) titkos´ıt´ o algoritmus∗ R sal meghat´ arozza az mb titkos´ıtott ´ert´ek´et: c ← − Encpk (mb ), amelyet ´ atad az A t´ amad´ onak; nevezz¨ uk ezt a c∗ titkos´ıtott ´ert´eket kih´ıv´ o rejtjelezett sz¨ ovegnek (challenge ciphertext), 5. az A t´ amad´ o tetsz˝ oleges sz´ am´ u titkos´ıt´ ast, illetve visszafejt´est v´egez a kih´ıv´ o Encpk (·) titkos´ıt´ o ´es Decsk (·) visszafejt˝ o algoritmus´ aval, k¨ ul¨ onb¨ oz˝ o c bemenetekre, azzal a megk¨ ot´essel, hogy c 6= c∗ , 6. az A t´ amad´ o meghat´ aroz egy ˆb ∈ {0, 1} kimeneti ´ert´eket. 4.11. defin´ıci´ o. A P KE aszimmetrikus titkos´ıt´ asi rendszerben az A t´ amad´ o ˆb] − 1 |, ahol el˝ onye a k¨ ovetkez˝ ok´eppen adhat´ o meg: Advcca (k) = | Pr[b = P KE,A 2 a b ´es ˆb ´ert´ekeket a 4.2. k´ıs´erletben hat´ aroztuk meg. A v´alasztott rejtjelezett sz¨ oveg alap´ u t´amad´assal szembeni CCAbiztons´agot a k¨ ovetkez˝ o ´ertelmez´es adja: 4.12. defin´ıci´ o. A P KE aszimmetrikus titkos´ıt´ asi rendszer CCA-biztons´ ag´ u, ha b´ armely A, probabilisztikus, polinomi´ alis idej˝ u t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Advcca P KE,A (k) ≤ f (k). A fenti k´et biztons´ ag´ertelmez´es alapj´an a k¨ovetkez˝o k¨ovetkeztet´eseket vonhatjuk le [32]: 49
• Azok az aszimmetrikus titkos´ıt´ o rendszerek amelyekn´el a titkos´ıt´o Encpk (·) algoritmus determinisztikus nem biztos´ıtj´ak se a CPAbiztons´agot, se a CCA-biztons´ agot, • nem lehet olyan aszimmetrikus titkos´ıt´o rendszert szerkeszteni, amely t¨ok´eletes biztons´ ag´ u.
4.5. Hibrid rendszerek A bizalmas inform´ aci´ ocsere megval´ os´ıt´ asa ´erdek´eben, a gyakorlatban gyakran alkalmaznak hibrid rendszereket. Ez els˝osorban azt jelenti, hogy a tulajdonk´eppeni inform´ aci´ o titkos´ıt´ as´ ahoz szimmetrikus titkos´ıt´asi technik´at, a titkos´ıt´ ashoz sz¨ uks´eges kulcs, a titkos´ıt´o kulcs cser´ej´ehez, pedig aszimmetrikus titkos´ıt´ asi technik´ at haszn´ alnak. Ennek sz¨ uks´egess´ege az´ert fontos, mert nagy adathalmaz titkos´ıt´ as´ ahoz nem vehet˝ok ig´enybe a nagy sz´am´ıt´asi kapacit´ ast ig´enyl˝ o aszimmetrikus titkos´ıt´o rendszerek, viszont a szimmetrikus titkos´ıt´ asi technik´ ak nem biztos´ıtj´ak hat´ekonyan a kulcscser´et. Az aszimmetrikus titkos´ıt´ o rendszerek megoldj´ak a szimmetrikus titkos´ıt´o rendszerek probl´em´ aj´ at: lehet˝ os´eget adnak hogy k´et, egym´assal, egy nyilv´anos csatorn´ an kereszt¨ ul kommunik´ al´o egys´eg kicser´elje a titkos´ıt´ashoz sz¨ uks´eges titkos´ıt´ o kulcsot u ´gy, hogy az ne ker¨ ulhessen illet´ektelen egys´eg birtok´aba. Titkos´ıt´asi rendszerek eset´eben fontos k¨ ul¨onbs´eget tenni a k¨ovetkez˝o k´et eset k¨oz¨ott: • megengedett a titkos´ıt´ ashoz gener´ alt kulcs t¨obbsz¨ori felhaszn´al´asa, • nem megengedett a titkos´ıt´ ashoz gener´alt kulcs t¨obbsz¨ori felhaszn´al´asa, azaz minden egyes titkos´ıt´ashoz m´as ´es m´as kulcsot kell gener´alni. A fenti k´et eset m´ as biztons´ agi krit´eriumokat hat´aroz a szimmetrikus, illetve az aszimmetrikus titkos´ıt´ o rendszerek eset´eben, ´eppen ez´ert fontosnak tartjuk a k¨ ovetkez˝ oket megjegyezni [36]:
50
4.1. megjegyz´es. Egy determinisztikus, szimmetrikus titkos´ıt´ o rendszer nem tudja biztos´ıtani a passz´ıv t´ amad´ oval szembeni biztons´ agot, ha megengedett a kulcs t¨ obbsz¨ ori felhaszn´ al´ asa. 4.2. megjegyz´es. Egy szimmetrikus titkos´ıt´ o rendszer, amely biztons´ agos egy passz´ıv t´ amad´ oval szemben, elvesz´ıti passz´ıv t´ amad´ oval szembeni biztons´ ag´ at, ha megengedj¨ uk a kulcs t¨ obbsz¨ ori felhaszn´ al´ as´ at. 4.3. megjegyz´es. Egy szimmetrikus titkos´ıt´ o rendszer, amely CPAbiztons´ ag´ u meg˝ orzi CPA-biztons´ ag´ at, ha megengedj¨ uk a kulcs t¨ obbsz¨ ori felhaszn´ al´ as´ at. 4.4. megjegyz´es. Egy aszimmetrikus titkos´ıt´ o rendszer, ha biztons´ agos egy passz´ıv t´ amad´ oval szemben, akkor CPA-biztons´ ag´ u is lesz, mivel a t´ amad´ onak mindig lehet˝ os´ege van tetsz˝ oleges sz´ am´ u titkos´ıt´ ast v´egezni, hiszen a titkos´ıt´ o kulcs, azaz a nyilv´ anos kulcs publikus. Ez term´eszetesen nem ´ıgy van a szimmetrikus titkos´ıt´ o rendszerek eset´eben. 4.5. megjegyz´es. Egy aszimmetrikus titkos´ıt´ o rendszer, amely CPAbiztons´ ag´ u meg˝ orzi CPA-biztons´ ag´ at, ha megengedj¨ uk a nyilv´ anos kulcsok t¨ obbsz¨ ori felhaszn´ al´ as´ at. 4.6. megjegyz´es. Egy determinisztikus, aszimmetrikus titkos´ıt´ o rendszer nem lehet CPA-biztons´ ag´ u. 4.13. defin´ıci´ o. Azokat a rendszereket, ahol minden egyes titkos´ıt´ ashoz m´ as kulcsot gener´ alnak egyszeri titkos´ıt´ o (one-time encryption) rendszereknek h´ıvj´ ak. Ugyanez alkalmazhat´ o a M ac-k´odokra is, azaz: 4.14. defin´ıci´ o. Azokat a M ac-k´ odokat, ahol minden M ac-´ert´ek el˝ o´ all´ıt´ as´ ahoz m´ as kulcsot gener´ alnak egyszeri M ac-k´ odoknak (one-time message authentication code) h´ıvj´ ak. Hibrid rendszerek, prec´ız matematikai defin´ıci´oj´at, ´es CCA-biztons´ag´ u hibrid rendszerek szerkeszt´esi m´ odj´at, t¨obbek k¨oz¨ott Cramer ´es Shoup is megadt´ ak [21]. Az ´ altaluk ismertetett elj´ar´as aszimmetrikus titkos´ıt´asi technik´ aval biztos´ıtja, a kommunik´alni k´ıv´an´o felek k¨oz¨ott, egy 51
v´eletlenszer˝ uen gener´ alt ´ert´ek, a titkos´ıt´ o kulcs megoszt´as´at amely kulcs felhaszn´al´as´aval, szimmetrikus titkos´ıt´ ast alkalmazva, megoldhat´o k´et egys´eg k¨oz¨ott a bizalmas inform´ aci´ ocsere. Cikk¨ ukben bevezett´ek a kulcsbe´agyaz´asi mechanizmus (key encapsulation mechanism) fogalm´at, amely a titkos´ıt´o kulcs gener´al´as´ at ´es megoszt´ as´ at biztos´ıtja. Bebizony´ıtott´ ak, hogy egy CCA-biztons´ag´ u aszimmetrikus titkos´ıt´asi rendszert kombin´ alva egy CCA-biztons´ ag´ u egyszeri szimmetrikus titkos´ıt´asi rendszerrel CCA-biztons´ ag´ u hibrid rendszert eredm´enyez. CCA-biztons´ ag´ u szimmetrikus rendszerek szerkeszt´es´en´el sz¨ uks´eg van egyszeri szimmetrikus titkos´ıt´ o rendszerekre, illetve egyszeri M ac-k´odokra. CCA-biztons´ ag´ u aszimmetrikus rendszerek szerkeszt´es´en´el sz¨ uks´eg van egyir´any´ u csap´ oajt´ o f¨ uggv´enyekre ´es hash f¨ uggv´enyekre. Jelen ´ertekez´esben, ahogyan az u ´jabb szakirodalom is teszi, a hibrid rendszereken bel¨ ul az aszimmetrikus titkos´ıt´as illetve visszafejt´es megnevez´esek helyett a kulcsbe´ agyaz´ asi algoritmus (key encapsulation algorithm), illetve kulcskibont´ asi algoritmus (key decapsulation algorithm) neveket fogjuk haszn´alni. Ezek ut´an form´ alisan is megadhat´ o egy hibrid titkos´ıt´o rendszer matematikai modellje: 4.15. defin´ıci´o. Jel¨ olje HKE azt a hibrid titkos´ıt´ asi rendszert, amely h´ arom algoritmussal ´ertelmezhet˝ o, a ((P K, SK), M, C) felett, ahol • Gen, a probabilisztikus kulcsgener´ al´ o algoritmus, amely polinomi´ alis R k id˝ oben, az 1 bemeneten meghat´ arozza (pk, sk) kulcsp´ art: (pk, sk) ← − Gen(1k ), ahol pk ∈ P K a nyilv´ anos kulcs ´es sk ∈ SK a titkos kulcs ´es k ∈ Z≥0 a rendszer biztons´ agi param´etere, • Az EncHKE (pk, m) titkos´ıt´ o a k¨ ovetkez˝ o k´et algoritmusb´ ol ´ all: – az EncKEM egy CCA-biztons´ ag´ u kulcsbe´ agyaz´ asi algoritmus, amely polinomi´ alis id˝ oben, probabilisztikusan, a pk bemeneten el˝ o´ all´ıt egy ´ert´eket, a titkos´ıt´ o kulcsot ´es annak egy titkos´ıtott ´ert´ek´et: (key, cipher) ← EncKEM (pk), – az EncSKE egy CCA-biztons´ ag´ u egyszeri szimmetrikus titkos´ıt´ asi rendszer, amely a key ´es m bemenetre meghat´ arozza az m titkos´ıtott ´ert´ek´et: c ← EncSKE (key, m). 52
– Az EncHKE (pk, m) algoritmus kimenete: (c, cipher). • A DecHKE (sk, c, cipher) visszafejt˝ o algoritmus a k¨ ovetkez˝ oket v´egzi: – ha a (c, cipher) nem egy helyes titkos´ıtott ´ert´ek, akkor az algoritmus REJECT, elutas´ıt´ o kimeneti ´ert´ekkel le´ all, – ellenkez˝ o esetben megh´ıvja a DecKEM , determinisztikus, kulcskibont´ asi algoritmust: ∗ ha a DecKEM REJECT, elutas´ıt´ o kimeneti ´ert´ekkel le´ all, akkor a visszafejt˝ o DecHKE algoritmus is le´ all REJECT, elutas´ıt´ o kimeneti ´ert´ekkel, ∗ ellenkez˝ o esetben az sk, cipher bemenetre meghat´ arozza a key ´ert´ek´et: key ← DecKEM (sk, cipher), – megh´ıvja a determinisztikus, egyszeri szimmetrikus titkos´ıt´ o algoritmust, amely a key, c bemenetre meghat´ arozza az m ´ert´ek´et: m ← DecSKE (key, c), – DecHKE (sk, c, cipher) algoritmus kimenete: m. A rendszer helyess´ege ´erdek´eben megk¨ovetelj¨ uk, hogy mind a kulcsbe´agyaz´asi mechanizmus, mind a szimmetrikus titkos´ıt´o rendszer helyes legyen. A szimmetrikus titkos´ıt´ o rendszer helyess´eg´et az 2.9. defin´ıci´on´al adtuk meg, a kulcsbe´ agyaz´ asi mechanizmus helyess´ege, pedig az aszimmetrikus titkos´ıt´ ok matematikai modellj´en´el le´ırt helyess´eg alapj´an adhat´o meg. Egy kulcsbe´ agyaz´ asi mechanizmus eset´eben, teh´at a rendszer helyess´eg´et a k¨ ovetkez˝ o k¨ ovetelm´enyek ´ırj´ak le: • a (pk, sk) ∈ P K × SK kulcsp´ar nem megfelel˝o, ha b´armely R (key, cipher) ← − EncKEM (pk) eset´eben fenn´all: DecKEM (sk, cipher) 6= key • annak a val´ osz´ın˝ us´ege, hogy a Gen kulcsgener´al´o algoritmus nem megfelel˝ o (pk, sk) kulcsp´ art gener´al, a k bemenet f¨ uggv´eny´eben, elhanyagolhat´ oan n˝ o. Ezek ut´ an megadhat´ o a hibrid rendszerek form´alis CCA-biztons´ag ´ertelmez´ese [21]: 53
4.1. t´etel. A 4.11. defin´ıci´ oval megadott HKE hibrid rendszer CCA-biztons´ ag´ u, ha az EncSKE , DecSKE algoritmusok ´ altal defini´ alhat´ o szimmetrikus titkos´ıt´ asi rendszer CCA-biztons´ ag´ u, ´es ha a Gen, EncKEM , DecKEM algoritmusok ´ altal defini´ alhat´ o kulcsbe´ agyaz´ asi mechanizmus, azaz aszimmetrikus titkos´ıt´ asi rendszer is CCA-biztons´ ag´ u. 4.7. megjegyz´es. Egy CCA-biztons´ ag´ u szimmetrikus titkos´ıt´ asi rendszer u ´gy szerkeszthet˝ o, ha egy passz´ıv t´ amad´ oval szemben biztons´ agos szimmetrikus titkos´ıt´ o rendszerhez hozz´ acsatolunk egy egyszeri u ¨zenethiteles´ıt˝ o k´ odot. Fontos megjegyezni, azt is hogy a szimmetrikus titkos´ıt´ ashoz haszn´ alt kulcs ´es az u ¨zenethiteles´ıt˝ o k´ od l´etrehoz´ as´ ahoz sz¨ uks´eges kulcs k¨ ul¨ onb¨ oz˝ o kell, hogy legyen. A CCA-biztons´ ag´ u kulcsbe´ agyaz´ asi mechanizmusok szerkeszt´es´ehez hash f¨ uggv´enyeket alkalmaznak. Aszerint, hogy az alkalmaz´asra ker¨ ul˝o hash f¨ uggv´eny viselked´ese milyen felt´etelez´esek seg´ıts´eg´evel van defini´alva megk¨ ul¨onb¨oztetj¨ uk a v´eletlen or´ akulum modellt ´es a standard modellt. A v´eletlen or´ akulum (random oracle) modellben olyan hash f¨ uggv´eny alkalmaz´as´aval bizony´ıthat´ o a CCA-biztons´ag, amelyr˝ol felt´etelezik, hogy teljesen v´eletlenszer˝ uen viselkedik. Ebben a modellben nem k¨ovetelik meg a hash f¨ uggv´enyt˝ ol, hogy a 3.1. alfejezetben ismertetett tulajdons´agoknak ´ eleget tegyen. Eppen ez´ert a v´eletlen or´akulum modellben bizony´ıtott CCA-biztons´ag´ u titkos´ıt´ o rendszerek heurisztikus bizony´ıt´asok, ´es sokszor nem bizonyulnak biztons´ agosnak. Hat´ekonys´ag szempontj´ab´ol viszont nagyon el˝ony¨os az alkalmaz´ asuk. A standard modellben bebizony´ıtott CCA-biztons´ag eset´en a hash f¨ uggv´enyt˝ol azt kell elv´ arni, hogy a f¨ uggv´eny a 3.1. alfejezetben ismertetett tulajdons´ agoknak tegyen eleget. Ezek a bizony´ıt´asok megb´ızhat´o biztons´agot garant´ alnak csup´ an a standard felt´etelez´eseket, mint pl. u ¨tk¨oz´esmentess´eg, faktoriz´ aci´ os felt´etelez´es, diszkr´et logaritmus felt´etelez´es ´ stb. elfogadva. Eppen ez´ert a standard modellben el´ert CCA-biztons´ag´ u rendszerek sokkal er˝ osebb biztons´ agot garant´alnak, mint a v´eletlen or´akulum modellben bizony´ıtott CCA-biztons´ag´ u rendszerek. Hat´ekonys´ag szempontj´ab´ol viszont kev´esb´e el˝ ony¨ os az alkalmaz´asuk.
54
5. fejezet
CCA-biztons´ag´ u kulcsbe´agyaz´asi mechanizmusok Ebben a fejezetben azokat az aszimmetrikus titkos´ıt´o rendszereket ismertetj¨ uk, amelyek alapul szolg´ altak t¨obb, napjainkban haszn´alatos CCAbiztons´ag´ u kulcsbe´ agyaz´ asi mechanizmusnak. Fontosnak tartjuk megjegyezni, hogy az ´ertekez´es 7. fejezet´eben ezen rendszerek mindegyik´enek megvizsg´ altuk implement´ aci´ os lehet˝os´eg´et, ¨osszevetve ˝oket hat´ekonys´ag szempontj´ ab´ ol a 6. fejezetben bemutat´asra ker¨ ul˝o u ´j kulcsbe´agyaz´asi mechanizmus hat´ekonys´ ag´ aval. Mindegyik rendszern´el bemutatjuk a sz¨ uks´eges algoritmusokat, ´es azt a sikeres t´amad´asi l´ep´essorozatot, amely alapj´an kijelenthet˝ o, hogy a rendszer nem CCA-biztons´ag´ u. Ezeket k¨ovet˝oen, pedig megadunk egy-egy, az u ´jabb szakirodalom ´altal sz´amon tartott, CCA-biztons´ ag´ u kulcsbe´ agyaz´asi verzi´ot ([6], [14], [35], [20]).
5.1. Az RSA-rendszer Az RSA titkos´ıt´ o rendszert 1978-ban publik´alt´ak [55], a rendszer eredeti form´aj´aban nem ´ all ellen se a CPA-t´amad´asnak, se a CCA-t´amad´asnak. Sz´am´ıt´astechnikai biztons´ aga az RSA-felt´etelez´esen alapszik, ahol az ehhez kapcsol´ od´ o ´ertelmez´est a 4.3.2. szakaszban adtuk meg. Megjelen´ese
55
o´ta sz´amos kit´etel l´etezik a kulcsgener´ al´ o, a titkos´ıt´o, illetve visszafejt˝o algoritmusok biztons´ agos haszn´ alat´ ara vonatkoz´oan. Klasszikusan sz´am´ıt´o kit´etelek, amelyek r´eszletes t´ argyal´ asa megtal´alhat´o a ([13], [34], [65]) cikkekben, a k¨ovetkez˝ ok: • • • • •
a kis n modulus problematika, a kis e exponens problematika, k¨ozeli pr´ımek haszn´ alata, kis d exponens haszn´ alata, az n modulus t¨ obbsz¨ ori alkalmaz´ asa, stb.
A rendszer [55]-ben publik´ alt verzi´ oja alapj´an ´es a 4.1. ´ertelmez´es szerint a k¨ovetkez˝ o algoritmusok adhat´ ok meg: R
• Gen, a kulcsgener´ al´ o algoritmus meghat´arozza az (e, n, d) ← − Gen(1k ) ´ert´ekeket, ahol – n = p · q, ´es p, q k-bites pr´ımsz´ amok, R ∗ arozzuk d-t u ´gy hogy: e · d = 1 – legyen e ← − Zn , ´es meghat´ (mod (p − 1) · (q − 1)), – pk = (e, n), sk = d. • az Enc(e,n) rejtjelez˝ o algoritmus polinomi´alis id˝oben, v´egzi a rejtjelez´est, az m ∈ M bemenetre elv´egez egy modul´aris hatv´anyoz´ast: c ← me (mod n), • a Decd visszafejt˝ o algoritmus, polinomi´alis id˝oben v´egzi a visszafejt´est a c ∈ C rejtjelezett sz¨ ovegen elv´egez egy modul´aris hatv´anyoz´ast: m ← cd (mod n). Az RSA biztons´ agos ´es hat´ekony implement´aci´oj´anak ´erdek´eben sz¨ uks´eges megjegyezn¨ unk a k¨ ovetkez˝ oket ([30], [44]): • az RSA kulcsgener´ al´ o algoritmus nagy pr´ımek gener´al´as´at ´ırja el˝o, amit a probabilisztikus Miler-Rabin vagy Solovay-Strassen algoritmusok implement´ al´ as´ aval lehet megoldani, • a d titkos kulcs meghat´ aroz´ as´ ahoz a kiterjesztett euklideszi algoritmust lehet alkalmazni, 56
• a visszafejt´es id˝ oig´eny´enek gyors´ıt´asa a k´ınai marad´ekt´etel alkalmaz´ as´ aval oldhat´ o meg, • a modul´ aris hatv´ anyoz´ as algoritmus´anak bonyolults´aga, ism´etelt n´egyzetre emel´esek ´es szorz´ asok alkalmaz´as´aval: O((log n)3 ). A sikeres CCA-t´ amad´ as l´ep´essorozata a k¨ovetkez˝o lesz, amely egy polinomi´alis idej˝ u, probabilisztikus A t´ amad´o algoritmus ´es k¨ornyezete, a kih´ıv´o k¨oz¨ott j´atsz´ odik le: 5.1. k´ıs´erlet. 1. A kih´ıv´ o futtatja a Gen kulcsgener´ al´ o algoritmust meghat´ arozza az e, n, d ´ert´ekeket, majd a ´tadja az (e, n) nyilv´ anos kulcsot az A t´ amad´ onak, 2. az A t´ amad´ o, k´et azonos hossz´ us´ ag´ u u ¨zenetet hat´ aroz meg, jel¨ olj¨ uk ezeket m0 , m1 -gyel, amelyeket ´ atad a kih´ıv´ onak, R 3. a kih´ıv´ o a b← − {0, 1} v´ alaszt´ as alapj´ an az Enc(e,n) titkos´ıt´ o algorit∗ R mussal meghat´ arozza az mb titkos´ıtott ´ert´ek´et: c ← − Enc(e,n) (mb ), amelyet ´ atad az A t´ amad´ onak; 4. az A t´ amad´ o elv´egzi a k¨ ovetkez˝ oket: R
• gener´ al egy m ´ert´eket: m ← − Z∗n , • kisz´ am´ıtja a c = c∗ · me ´ert´eket, • futtatja a c 6= c∗ bemenetre, a kih´ıv´ o Decd visszafejt˝ o algoritmus´ at, meghat´ arozva ezzel az m ˆ ´ert´eket, • ha m ˆ · m−1 = m0 , akkor ˆb = 0, m´ ask´epp ˆb = 1 lesz az A t´ amad´ o v´ alaszt´ asa. Az A t´ amad´ o, 4.11. ´ertelmez´es szerinti el˝onye 12 , mert fenn´all: m ˆ = (c∗ · me )d = (c∗ )d · me·d = (c∗ )d · m = mb · m. 1 1 1 ˆ es ˆb Form´ alisan Advcca RSA,A (k) = | Pr[b = b] − 2 | = |1 − 2 | = 2 , ahol a b ´ ´ert´ekeket az 5.1. k´ıs´erletben hat´ aroztuk meg. Azok a titkos´ıt´ o rendszerek, ahol a titkos´ıt´o algoritmus determinisztikus, nem rendelkezhetnek a CPA, illetve a CCA-biztons´ag egyik´evel sem.
57
Ez´ert sz¨ uks´eges, hogy a titkos´ıt´ o algoritmust ´atalak´ıtsuk. Ez a folyamat sz¨ uks´egszer˝ uen a rejtjelezett sz¨ oveg adat expanzi´oj´aval fog j´arni. T¨obb ilyen biztons´agtulajdons´ aggal rendelkez˝ o RSA verzi´o l´etezik, de ezek k¨oz¨ ul az egyik legjelent˝ osebb ´es leghat´ekonyabb az RSA–OAEP (RSA-Optimal Asymmetric Encryption Padding). Az RSA–OAEP verzi´ot Bellare ´es Rogaway dolgozt´ak ki [6], ´es megadt´ ak a v´eletlen or´akulum modellben a CCA-biztons´ag bizony´ıt´ as´ at. Az RSA–OAEP-titkos´ıt´ o rendszerben alkalmaz´asra ker¨ ul k´et, egym´ast´ol f¨ uggetlen v´eletlen or´ akulum, a G ´es H f¨ uggv´eny, ahol • G : {0, 1}lH → {0, 1}lG , egy hash f¨ uggv´enyen alapul´o ´al-v´eletlensz´am gener´ator, • H : {0, 1}lG → {0, 1}lH , egy probabilisztikus hash f¨ uggv´eny. A rendszer h´ arom algoritmusa a (P, C, K) halmazh´armas felett van ´ertelmezve, ahol P = {0, 1}lP , C = {0, 1}lH +lG , K = {0, 1}lH +lG , ´es lG , lH pozit´ıv eg´esz sz´ amok, ahol lP < lG , lG < k, lH < k ´es k = lH + lG . • A Gen(1k ) kulcsgener´ al´ o algoritmus, a m´ar le´ırt m´odon meghat´arozza R az e, n, d ´ert´ekeket: (e, n, d) ← − Gen(1k ), ahol pk = (e, n) ´es sk = d. • Az EN C(e,n) (m) titkos´ıt´ o algoritmus probabilisztikusan, polinomi´alis id˝oben meghat´ arozza a c rejtjelezett ´ert´eket, ahol – – – – –
x = m||0lG −lP , R r← − {0, 1}lH , y1 = x ⊕ G(r), y2 = r ⊕ H(x ⊕ G(r)), c = (y1 ||y2 )e (mod n),
• DECsk (c) visszafejt˝ o algoritmus – determinisztikusan, polinomi´ alis id˝oben meghat´arozza az y = cd (mod n) ´ert´eket, majd felosztja y-t yˆ1 ||yˆ2 -re u ´gy, hogy |yˆ1 | = lG ´es |yˆ2 | = lH , – meghat´ arozza r = H(yˆ1 ) ⊕ yˆ2 , – meghat´ arozza yˆ = yˆ1 ⊕ G(r), – ellen˝ orzi, hogy yˆ utols´ o lG − lP bitje nulla-e: 58
∗ ha nem, akkor REJECT kimeneti ´ert´ekkel le´all, ∗ ellenkez˝ o esetben visszat´er´ıti az els˝o lP bitj´et yˆ-nak. A rendszer helyess´ege elemi sz´ am´ıt´asok sor´an ellen˝orizhet˝o, figyelembe v´eve, az ⊕ oper´ ator idempotens tulajdons´ag´at. A rendszer CCA-biztons´ ag´ anak bizony´ıt´asa a k¨ovetkez˝ok´eppen v´azolhat´o fel, r´eszletes bizony´ıt´ as´ ara, amely megtal´alhat´o [6]-ben, jelen ´ertekez´es keret´en bel¨ ul nem t´er¨ unk ki. Ahhoz, hogy az esetleges t´ amad´o az m ny´ılt sz¨oveg b´armilyen bitj´ere vonatkoz´ oan inform´ aci´ ot szerezhessen sz¨ uks´eges a G(r) teljes bitszekvenci´aj´anak a meghat´ aroz´ asa. Ez ut´ obbi, csak k´et esetben lehets´eges: • ha siker¨ ul az r = H(yˆ1 ) ⊕ yˆ2 meghat´aroz´asa, azaz ha siker¨ ul invert´alni az RSA egyir´ any´ u f¨ uggv´enyt vagy ha siker¨ ul u ¨tk¨oz´est tal´alni a H hash f¨ uggv´eny eset´eben, • ha siker¨ ul u ¨tk¨ oz´est tal´ alni a G f¨ uggv´eny eset´eben.
5.2. A Rabin-rendszer A Rabin titkos´ıt´ o rendszert 1979-ban publik´alt´ak [54], a rendszer eredeti form´aj´ aban nem ´ all ellen a CCA-t´amad´asnak, ahol a t´amad´as sor´an nem a ny´ılt sz¨ oveget, hanem a titkos kulcsot hat´arozza meg az A t´amad´o. Sz´am´ıt´astechnikai biztons´ aga a faktoriz´aci´os felt´etelez´esen alapszik, ahol az ehhez kapcsol´ od´ o ´ertelmez´est a 4.3.1. szakaszban adtuk meg. A rendszer [54]-ben publik´ alt verzi´ oja a k¨ ovetkez˝o: R
• Gen, a kulcsgener´ al´ o algoritmus meghat´arozza: (n, p, q) ← − Gen(1k ) ´ert´ekeket, ahol – legyenek p, q k-bites pr´ımsz´amok u ´gy, hogy p ≡ q ≡ 3 (mod 4), – n = p · q, – pk = n, sk = (p, q). • az Encn rejtjelez˝ o algoritmus polinomi´alis id˝oben, v´egzi a rejtjelez´est, az m ∈ M bemenetre: c ← m2 (mod n), • a Dec(p,q) visszafejt˝ o algoritmus, polinomi´a√lis id˝oben v´egzi a visszafejt´est a c ∈ C rejtjelezett sz¨ ovegen: m ← c (mod n). 59
√ 5.1. megjegyz´es. A visszafejt´es, azaz c meghat´ aroz´ asa nem egy´ertelm˝ u: 4 lehets´eges visszafejtett sz¨ oveg k¨ oz¨ ul kell kiv´ alasztani a megfelel˝ ot. Ennek ´erdek´eben alkalmazzuk a k´ınai marad´ekt´etelt, ahol a 4 lehets´eges visszafejtett sz¨ oveg a k¨ ovetkez˝ o: m1 , −m1 , m2 , −m2 ´es ahol: • m1 = (p−1 · p · mq + q −1 · q · mp ) (mod n), • m2 = (p−1 · p · mq − q −1 · q · mp ) (mod n), ahol fenn´ all: mp = c(p+1)/4 (mod p), mq = c(q+1)/4 (mod q) ´es p · p−1 = 1 (mod q), q · q −1 = 1 (mod p). A Rabin-titkos´ıt´ o CCA-biztons´ ag´ u verzi´oj´at, a v´eletlen or´akulum modellben Boneh dolgozta ki [14], ahol biztons´ag´at a faktoriz´aci´os felt´etelez´es alapj´an bizony´ıtotta. A rendszer SAEP (Simplified Asymmetric Encryption Padding) n´even ismert. A rendszer az RSA–OAEP-titkos´ıt´ohoz k´epest j´oval egyszer˝ ubb, egyetlen hash f¨ uggv´enyt alkalmaz: H : {0, 1}lr → {0, 1}lH . A rendszer h´ arom algoritmusa a (P, C, K) halmaz h´armas felett van ´ertelmezve, ahol P = {0, 1}lP , C = {0, 1}lH +lr , K = {0, 1}lH +lr , ´es lH , lr pozit´ıv eg´esz sz´ amok, lP < lH , ´es k = lH + lr . • A Gen(1k ) kulcsgener´ al´ o algoritmus, meghat´aroz egy (k + 2) bites n = p · q sz´ amot, ahol – az n legfels˝ obb hely´ert´ek˝ u k´et bitje 1 ´es 0, – p, q pedig k´et k/2 + 1 bites pr´ımsz´am u ´gy, hogy: p ≡ q ≡ 3 (mod 4), – pk = n ´es sk = (p, q). • Az EN Cpk (m) titkos´ıt´ o algoritmus probabilisztikusan, polinomi´alis id˝oben meghat´ arozza a c rejtjelezett ´ert´eket, ahol – – – –
x = m||0lH −lP , ahol az || oper´ ator ¨osszef˝ uz´est jelent, R lr r← − {0, 1} , y = (x ⊕ H(r))||r, c = y 2 (mod n),
• DECsk (c) visszafejt˝ o algoritmus a k¨ovetkez˝oket v´egzi: 60
– meghat´ arozza yp = c(p+1)/4 (mod p), yq = c(q+1)/4 (mod q) ´ert´ekeket, majd alkalmazza a k´ınai marad´ekt´etelt, y1 , −y1 , y2 , −y2 lesz a 4 megold´as: ∗ y1 = (p−1 · p · yq + q −1 · q · yp ) (mod n), ∗ y2 = (p−1 · p · yq − q −1 · q · yp ) (mod n). – megvizsg´ alja, melyik igaz: yp2 = c (mod p), yq2 = c (mod q), – ha egyik sem teljes¨ ul, akkor REJECT kimeneti ´ert´ekkel le´all, – ezut´ an felt´etelezhet˝ o, hogy a 4 lehets´eges n´egyzetgy¨ok k¨oz¨ ul kett˝ o biztosan nagyobb mint n/2, marad 2 lehets´eges megold´as, legyenek ezek y1 , y2 , – ellen˝ orzi, hogy, ha y1 ´es y2 is nagyobb mint 2k , akkor REJECT kimeneti ´ert´ekkel le´ all, – ellen˝ orzi, hogy ha csak az egyik kisebb mint 2k , akkor legyen ez y1 , majd a k¨ ovetkez˝ o pontn´al megadott sz´am´ıt´assorozatot kell k¨ ovetni, de az y2 ´ert´ekkel nem kell sz´amolni, – ezut´ an felt´etelezhet˝ o, hogy y1 is ´es y2 is kisebb mint 2k : ∗ fel´ırjuk y1 = v1 ||r1 y2 = v2 ||r2 u ´gy, hogy r1 , r2 ∈ {0, 1}lr ∗ meghat´ arozzuk x1 = v1 ⊕ H(r1 ) x2 = v2 ⊕ H(r2 ), ∗ fel´ırjuk x1 = m1 ||t1 ´es x2 = m2 ||t2 u ´gy, hogy m1 , m2 ∈ {0, 1}lP ∗ ha t1 = 0lH −lP ´es t2 = 0lH −lP , akkor REJECT kimeneti ´ert´ekkel le´ all, ∗ ha t1 6= 0lH −lP ´es t2 6= 0lH −lP , akkor REJECT kimeneti ´ert´ekkel le´ all, ∗ ha t1 = 0lH −lP , akkor visszat´er´ıti m1 -et, mint visszafejtett ´ert´eket, ∗ ha t2 = 0lH −lP , akkor visszat´er´ıti m2 -et, mint visszafejtett ´ert´eket. A rendszer CCA-biztons´ ag´ anak bizony´ıt´asa a k¨ovetkez˝ok´eppen v´azolhat´o fel, r´eszletes bizony´ıt´ asra jelen ´ertekez´es keret´en bel¨ ul nem t´er¨ unk ki [14]. Ha siker¨ ul egy olyan A t´ amad´o algoritmust szerkeszteni, amely az R n, lP , lH − lP , lr , c = y 2 (mod n) bemeneti ´ert´ekekre, ahol y ← − {0, . . . , 2k − 1}, meghat´ arozza c egy y ∗ 6= y n´egyzetgy¨ok´et, akkor lehets´eges az n 61
faktoriz´al´asa az n ´es y − y ∗ ´ert´ekek legnagyobb k¨oz¨os oszt´oj´anak a meghat´aroz´as´aval. Coppersmith egy cikke alapj´ an [19] Boneh-nek siker¨ ult, azt bebizony´ıtani, hogy el´egs´eges egy olyan A t´amad´o algoritmust szerkeszteR ni, amely ha 1/3-n´ al nagyobb val´ osz´ın˝ us´eggel megmondja, hogy a c ← − {0, . . . n − 1} sz´ amnak k´et k¨ ul¨ onb¨ oz˝ o n´egyzetgy¨oke van az {0, . . . 2k − 1} halmazon (mod n) szerint, akkor 1/6-n´ al nagyobb a val´osz´ın˝ us´ege annak, hogy az A t´amad´ o algoritmus ´ altal meghat´arozott y, y ∗ -ra fenn´alljon, hogy: y 6= y ∗ , ami alapj´ an lehets´eges az n faktoriz´al´asa.
5.3. A Blum–Goldwasser-rendszer A Blum–Goldwasser titkos´ıt´ o rendszert, amelyre BG-titkos´ıt´o n´even fogunk a tov´abbiakban hivatkozni, 1985-ban publik´alt´ak [12]. A rendszer eredeti form´aj´aban CPA-biztons´ ag´ u, viszont nem ´all ellen a v´alasztott rejtjelezett sz¨oveg alap´ u t´ amad´ asnak. A BG-titkos´ıt´o egy ´alv´eletlen bitsorozat gener´atoron alapszik, a Blum-Blum-Shub gener´atoron, amelyre BBS-gener´ator n´even fogunk a tov´ abbiakban hivatkozni. A BBS gener´atort 1982-ben publik´ alt´ ak [10] ´es bebizony´ıtott´ ak r´ola, hogy kriptogr´afiailag biztons´agos. Biztons´ ag´ at a kvadratikus marad´ek felt´etelez´es (l´asd a 4.3.3. szakaszban), alapj´ an bizony´ıtott´ ak. A 2.9. form´ alis ´ertelmez´es egy alternat´ıv megk¨ozel´ıt´ese a k¨ovetkez˝o [61]: egy ´alv´eletlen bitsorozat gener´ atorr´ol, akkor mondjuk, hogy kriptogr´afiailag biztons´ agos, ha az els˝ o l ´ alv´eletlen bit meghat´aroz´asa ut´an, a kezdeti seed (kezd˝ o´ert´ek) ismeret´enek hi´any´aban, nem lehet 1/2 + ε-n´al nagyobb val´osz´ın˝ us´eggel megmondani, hogy mi lesz az (l + 1)-ig bit, ahol ε nem elhanyagolhat´ o ´ert´ek. A BG-titkos´ıt´ o a BBS ´ altal gener´ alt byte-okat ¨osszeadja a ny´ılt sz¨oveg byte-jaival, bitenk´enti (mod 2) szerinti o¨sszead´ast v´egezve. A tov´abbiakban el˝ obb a BBS-gener´ atort mutatjuk be. Legyen n = p · q, ahol p, q tetsz˝ oleges k-bites pr´ımsz´amok, azzal a tulajdons´aggal, hogy p ≡ q ≡ 3 (mod 4). Jel¨olj¨ uk QRn -el a kvadratikus marad´ekok halmaz´ at (mod n) szerint, amelyet form´alisan a 4.3.3. fejezetn´el adtunk meg. 62
R
Legyen r ← − Z∗n , ´es legyen r0 = r2 (mod n), ekkor teljes¨ ulni fog, hogy r0 ∈ QRn . Az ´ alv´eletlen bitsorozat gener´ator kiindulva a kezdeti r0 , mint seed ´ert´ekb˝ ol ism´etelten alkalmazza a modul´aris n´egyzetreemel´es f¨ uggv´enyt. A v´eletlenszer˝ uen gener´ alt biteket: b1 , b2 , . . . , bl -el jel¨olve, az algoritmus a k¨ovetkez˝ok´eppen v´egzi ezek meghat´aroz´as´at: ri+1 = ri2 (mod n), minden 0 ≤ i ≤ l, ´es bi = ri (mod 2), minden 1 ≤ i ≤ l. Jel¨olj¨ uk BBS(r0 , l)-el a BBS ´ alv´eletlen bitsorozat gener´ator ´altal meghat´arozott bitsorozatot, azaz a b1 ||b2 || . . . ||bl -t, ahol r0 a kezdeti seed ´ert´ek ´es l a gener´ alt bitsorozat hossza. Ezek ut´ an megadhat´ o a BG-titkos´ıt´o, a 4.1. ´ertelmez´es szerinti h´arom algoritmus alapj´ an: R
• A Gen, a kulcsgener´ al´ o algoritmus meghat´arozza az (n, p, q) ← − Gen(1k ) ´ert´ekeket, ahol – legyenek p, q k-bites pr´ımsz´amok u ´gy, hogy p ≡ q ≡ 3 (mod 4), – n = p · q, – pk = n, sk = (p, q), • az Encn probabilisztikus, rejtjelez˝o algoritmus polinomi´alis id˝oben, v´egzi a rejtjelez´est, az m = (m1 ||m2 || . . . ||ml ) ∈ Zl2 bemenetre, ahol mi , i ∈ {1, . . . l} a ny´ılt sz¨ oveg bitjei: Encn (m1 ||m2 || . . . ||ml , r0 ) = c1 ||c2 || . . . ||cl ||rl+1 , ahol – – – –
ci = (mi ⊕ bi ), 1 ≤ i ≤ l, r0 a BBS gener´ ator kezdeti ´ert´eke, b1 , b2 , . . . , bl a BBS gener´ ator ´altal gener´alt ´alv´eletlen bitek, l+1 rl+1 = r02 (mod n),
• a Dec(p,q) determinisztikus, visszafejt˝o algoritmus, polinomi´alis id˝oben v´egzi a visszafejt´est a c = (c1 ||c2 || . . . ||cl ||rl+1 ) ∈ Zl2 × Z∗n rejtjelezett sz¨ ovegen: 63
Dec(p,q) (c1 ||c2 || . . . ||cl ||rl+1 ) = m1 ||m2 || . . . ||ml , ahol – mi = ci ⊕ bi , 1 ≤ i ≤ l, – b1 , b2 , . . . , bl a BBS gener´ ator a´ltal gener´alt ´alv´eletlen bitek, – a BBS gener´ ator kezdeti r0 ´ert´eke, alkalmazva a k´ınai marad´ekt´etelt, a k¨ ovetkez˝ ok´eppen hat´arozhat´o meg: a1 r0 = rl+1 (mod p), ahol a1 = ((p + 1)/4)l+1 (mod p − 1), a2 r0 = rl+1 (mod q), ahol a2 = ((q + 1)/4)l+1 (mod q − 1).
Bebizony´ıthat´ o, hogy minden egyes modul´aris n´egyzetre emel´es eset´en egyetlen bit helyett, ak´ ar log2 (log2 (n)) bit is felhaszn´alhat´o [62]. A Blum–Goldwasser-titkos´ıt´ o CCA-biztons´ag´ u verzi´oj´at, a standard modellben, mint egy hibrid rendszer kulcsbe´agyaz´asi mechanizmusa Hofheinz, Kiltz ´es Shoup dolgozt´ ak ki [35]. A rendszer matematikai alapj´ at a modul´aris n´egyzetreemel´es f¨ uggv´eny t¨obbsz¨ori alkalmaz´ asa k´epezi, amelyet az algoritmus egy v´eletlenszer˝ uen gener´alt ´ert´eken alkalmaz, amelyhez hozz´ a t´arsul egy konzisztencia ellen˝orz˝o elem. A n´egyzetreemel´es f¨ uggv´eny bemeneti ´ert´ek´et a QR+ ol veN halmazb´ szi, ahol a QR+ halmaz a kvadratikus marad´ e kok egy lesz˝ u k´ ıtett csoportj´ at N fogja jelenti, ´es N Blum-eg´esz. A CCA-biztons´ ag´ u kulcsbe´ agyaz´ asi mechanizmus eset´eben a k¨ovetkez˝o Gen kulcsgener´ al´ o algoritmusra van sz¨ uks´eg¨ unk: 5.1. algoritmus. A Gen kulcsgener´ al´ o algoritmus az 1k bemeneten megR hat´ arozza az (N, P, Q) sz´ amh´ armast: (N, P, Q) ← − Gen(1k ) u ´gy, hogy: • N = P · Q, ahol P ≡ Q ≡ 3 (mod 4), ´es • P = 2 · p + 1, Q = 2 · q + 1, ahol p, q pr´ımsz´ amok, azaz P ´es Q biztons´ agos pr´ımek lesznek, • a p ´es a q bithossza k/2 − 1, • az ´ıgy gener´ alt N sz´ amot Blum-eg´esznek, a P, Q pr´ımeket biztons´ agos (safe) pr´ımeknek h´ıvj´ ak. A m´ar eml´ıtett, QR+ uk´ıtett kvadratikus marad´ekok halmaz´anak N lesz˝ form´alis ´ertelmez´es´ehez felhaszn´ aljuk a 4.3.3. szakaszn´al ´ertelmezett QRN halmazt, ahol N az 5.1. algoritmus ´ altal gener´alt ¨osszetett sz´am: 64
5.1. defin´ıci´ o. QR+ am abszol´ ut ´ert´ek´et N = {|x| : x ∈ QRN }, ahol |x| az x sz´ jel¨ oli. A kulcsbe´ agyaz´ asi mechanizmus egy c´el-¨ utk¨oz´esmentes hash f¨ uggv´enyt lH is haszn´al, amelyet a k¨ ovetkez˝ ok´eppen jel¨ol¨ unk: H : QR+ → {0, 1} . N A kulcsbe´ agyaz´ asi mechanizmus h´arom algoritmusa, pedig a k¨ovetkez˝o, ahol a m˝ uveleteket QR+ egezz¨ uk: N -ben v´ • A Gen kulcsgener´ al´ o algoritmus az 1k bemeneten meghat´arozza az (N, P, Q, g, X, α) sz´ am¨ ot¨ ost, ahol – az (N, P, Q) ´ert´ekeket az 5.1. algoritmussal hat´aroztuk meg, l +l R R – g← − QR+ − {1, . . . , (N − 1)/4}, ´es X = g α·2 H L , N, α ← – az lH az alkalmazott hash f¨ uggv´eny kimenet´enek bithossza, az lL ´ert´ek, pedig a BBS ´ altal gener´alt bitek sz´am´at jelenti, – az algoritmus kimeneti ´ert´ekei a pk = (N, g, X), ´es sk = α. • Az Encpk probabilisztikus kulcsbe´agyaz´asi algoritmus, polinomi´alis id˝oben meghat´ arozza (key, cipher) kimenetet, ahol: R
– r← − {1, . . . , (N − 1)/4}, l – K = g r·2 H , key = BBS(K, lL ), – cipher = (R, S), ahol l
R = g r·2 H
+lL
, h = H(R), S = (g h · X)r .
• A Decsk (cipher) determinisztikus kulcskibont´asi algoritmus, polinomi´alis id˝ oben a k¨ ovetkez˝ oket v´egzi: – ha nem teljes¨ ul, hogy R ∈ QR+ es S ∈ QR+ N, ´ N , akkor REJECT kimeneti ´ert´ekkel le´ all az algoritmus, – ellenkez˝ o esetben meghat´arozza h = H(R), – ha nem teljes¨ ul az lH +lL
S2
lH +lL
= Rh+α·2
(5.1)
egyenl˝ os´eg, akkor az algoritmus REJECT kimeneti ´ert´ekkel le´all, – ellenkez˝ o esetben meghat´arozza a K ´ert´eket, mint kimeneti ´ert´eket a k¨ ovetkez˝ ok´eppen: lH −c
K = (S a · Rb−aα )2 65
, ahol
(5.2)
az a, b, c ´ert´ekeket a k¨ ovetkez˝ o diofantikus egyenletb˝ol, a kiterjesztett euklideszi algoritmussal [3] lehet meghat´arozni: 2c = a · h + b · 2lH +lL . A rendszer helyess´ege a k¨ ovetkez˝ o elemi sz´am´ıt´asok elv´egz´ese sor´an l´athat´o be. Az R ´es S ´ert´ekek a k¨ ovetkez˝ o form´ aban ´ırhat´oak fel: l
S = (g h · g α·2 H l +l R = g r·2 H L .
+lL
)r ,
Az (5.1) egyenl˝ os´eg helyess´eg´enek a bel´at´as´ahoz a k¨ovetkez˝ok ´ırhat´oak fel:
l
S2 H
+lL
lH +lL
Rh+α·2
l
+l
l
+l
= g (h+α·2 H L )·r·2 H L , l +l l +l = g r·2 H L ·(h+α·2 H L ) .
A kulcs kisz´ am´ıt´ as´ anak helyess´ege a k¨ovetkez˝ok´eppen ellen˝orizhet˝o: S a · Rb−a·α S · R−α S a · Rb−a·α l −c a (S · Rb−a·α )2 H
= = = =
(S · R−α )a · Rb , l +l l +l g hr · g rα·2 H L · g −rα·2 H L = g hr , l +l l +l c g hra · g br·2 H L = g r(ha+b·2 H L ) = g r·2 , c l −c g r·2 ·2 H = g rlH .
A rendszer CCA-biztons´ ag´ anak bizony´ıt´asa a k¨ovetkez˝ok´eppen v´azolhat´o fel, r´eszletes bizony´ıt´ asa, amelyre nem t´er¨ unk ki, a [35] cikkben tal´alhat´o meg. Ha felt´etelezz¨ uk, hogy l´etezik egy D t´amad´o algoritmus, amely egy v´eletlenszer˝ uen gener´ alt N ´ert´ek ismeret´eben 1/2 + ε val´osz´ın˝ us´eggel, ahol ε nem elhanyagolhat´ o ´ert´ek, meg tudja k¨ ul¨onb¨oztetni egym´ast´ol a BBS ´altal gener´alt biteket egy ugyanolyan lL hossz´ u, v´eletlenszer˝ uen gener´alt bitsorozatt´ol, akkor szerkeszthet˝ o egy olyan probabilisztikus, polinomi´alis A t´amad´o algoritmus, amely nem elhanyagolhat´o val´osz´ın˝ us´eggel faktoriz´alni tudja az N sz´ amot; ezzel, pedig ellent mondunk a faktoriz´aci´os felt´etelez´esnek.
66
5.4. Az ElGamal-rendszer Az ElGamal titkos´ıt´ o rendszert T. ElGamal publik´alta, ´es bizony´ıtotta, hogy a rendszer ellen´ all a CPA-t´ amad´asnak, viszont a CCA-t´amad´asnak nem [27]. CPA-biztons´ ag´ at a diszkr´et logaritmus felt´etelez´es alapj´an bizony´ıtotta, ahol az ehhez kapcsol´ od´o ´ertelmez´est a 4.3.4. szakaszban adtuk meg. A diszkr´et logaritmus probl´em´ahoz kapcsol´od´o felvet´esek egyik r´eszletes t´ argyal´ asa a [51] cikkben is olvashat´o. A rendszer minden olyan ciklikus algebrai csoportban implement´alhat´o, ahol fenn´all a d¨ont´esi Diffie– Hellman-felt´etelez´es, ahol az ehhez kapcsol´od´o ´ertelmez´est pedig a 4.3.5. szakaszban adtuk meg. A rendszer [27]-ben publik´ alt verzi´oja alapj´an ´es a 4.1. ´ertelmez´es szerint a k¨ ovetkez˝ o algoritmusok adhat´ok meg: • Gen, a kulcsgener´ al´ o algoritmus meghat´aroz egy G ciklikus csoportot, amelynek rendje a q, majd R
– meghat´ arozza a g gener´ ator elemet ´es az α ← − {0, . . . , q − 1} sz´ amot, – legyen A = g α , ´es – pk = (g, A), sk = α. • az Enc(G,g,A) probabilisztikus rejtjelez˝o algoritmus polinomi´alis id˝oben v´egzi a rejtjelez´est az m ∈ G bemenetre: c ← Enc(G,g,A) (m), ahol R
– β← − {0, . . . , q − 1}, B = g β , – c = (c1 , c2 ), ahol c1 = B, c2 = Aβ · m. • a Decα determinisztikus visszafejt˝o algoritmus polinomi´alis id˝oben v´egzi a visszafejt´est a c ∈ G rejtjelezett sz¨ovegen: m ← Decα (c), ahol – m = (cα1 )−1 · c2 . A sikeres CCA-t´ amad´ as l´ep´essorozata a k¨ovetkez˝o lesz, amely egy polinomi´alis idej˝ u, probabilisztikus A t´ amad´o algoritmus ´es k¨ornyezete, a kih´ıv´o k¨oz¨ott j´atsz´ odik le: 5.2. k´ıs´erlet. 67
1. A kih´ıv´ o futtatja a Gen kulcsgener´ al´ o algoritmust, meghat´ arozza a G, q, g, α, A ´ert´ekeket, majd ´ atadja az (G, g, A) nyilv´ anos adatokat az A t´ amad´ onak, 2. az A t´ amad´ o, k´et azonos hossz´ us´ ag´ u u ¨zenetet hat´ aroz meg, jel¨ olj¨ uk ezeket m0 , m1 -gyel, amelyeket ´ atad a kih´ıv´ onak, R 3. a kih´ıv´ o a b ← − {0, 1} v´ alaszt´ as alapj´ an az Enc titkos´ıt´ o algoritR ∗ mussal meghat´ arozza az mb titkos´ıtott ´ert´ek´et: c = (c∗1 , c∗2 ) ← − Enc(G,g,A) (mb ), amelyet ´ atad az A t´ amad´ onak, 4. az A t´ amad´ o elv´egzi a k¨ ovetkez˝ oket: • v´eletlenszer˝ uen gener´ alja β-t ´es m-t: R
R
β← − {0, . . . , q − 1}, m ← − {0, . . . , q − 1}, • kisz´ am´ıtja c1 = c∗1 · g β , ´es c2 = c∗2 · m · Aβ ´ert´ekeket, • futtatja a c = (c1 , c2 ) bemenetre, ahol c 6= c∗ , a kih´ıv´ o Decα (·) visszafejt˝ o algoritmus´ at, meghat´ arozva ezzel az m ˆ ´ert´eket, • ha m ˆ · m−1 = m0 , akkor ˆb = 0, m´ ask´epp ˆb = 1 lesz az A t´ amad´ o v´ alaszt´ asa. Az A t´amad´ o 4.11. ´ertelmez´es szerinti el˝onye 12 , mert fenn´all: m ˆ (cα1 )−1 · c2 ((c∗1 · g β )α )−1 · c∗2 · m · Aβ ((c∗1 )α )−1 · g −β·α · c∗2 · m · g α·β ((c∗1 )α )−1 · c∗2 · m mb · m.
= = = = =
1 1 1 ˆ Form´alisan Advcca ElGamal,A (k) = | Pr[b = b] − 2 | = |1 − 2 | = 2 , ahol a b ´es ˆb ´ert´ekeket a 5.2. k´ıs´erletben hat´ aroztuk meg. Standard modellben az ElGamal CCA-biztons´ag´ u verzi´oj´at Cramer ´es Shoup dolgozt´ak ki [21]. Az ElGamal egy m´asik fontos CCA-biztons´ag´ u verzi´oja a DHIES [1]. A Cramer ´es Shoup ´altal szerkesztett rendszer CCA-biztons´ag´ at, a szerz˝ ok a d¨ ont´esi Diffie–Hellman-felt´etelez´es alapj´an bizony´ıtott´ak, illetve felt´etelezt´ek, hogy az alkalmazott hash f¨ uggv´eny c´elu ¨tk¨oz´esmentes hash f¨ uggv´eny (l´ asd a 3.2. ´ertelmez´est). Fontos megjegyezni, hogy ez volt az els˝ o hat´ekony CCA-biztons´ag´ u kulcsbe´agyaz´asi
68
mechanizmus. T¨ obb verzi´ oja is l´etezik, aszerint hogy az alkalmaz´asra ker¨ ul˝o hash f¨ uggv´eny milyen tulajdons´ag´ u: univerz´alis hash f¨ uggv´eny, c´elu ¨tk¨oz´esmentes hash f¨ uggv´eny vagy u ¨tk¨oz´esmentes hash f¨ uggv´eny. Abban az esetben amikor az alkalmaz´asra ker¨ ul˝o hash f¨ uggv´eny c´elu ¨tk¨oz´esmentes hash f¨ uggv´eny a Cramer ´es Shoup titkos´ıt´o h´arom algoritmusa a k¨ ovetkez˝ o: • Gen, a kulcsgener´ al´ o algoritmus meghat´aroz egy G ciklikus csoportot, amelynek rendje q, majd: – meghat´ arozza a g1 , g2 gener´ator elemeket, – v´eletlenszer˝ uen meghat´ aroz ¨ot sz´amot: R
(x1 , x2 , y1 , y2 , α) ← − {0, . . . , q − 1}, amelyek alapj´ an kisz´ am´ıtja a k¨ovetkez˝o ´ert´ekeket: e = g1x1 · g2x2 , f = g1y1 · g2y2 ´es A = g1α – a nyilv´ anos adatok: (G, q, g1 , g2 ), – a nyilv´ anos kulcs: pk = (e, f, A), – a titkos kulcs: sk = (x1 , x2 , y1 , y2 , α). • az Enc(G,q,g1 ,g2 ,e,f,A) probabilisztikus rejtjelez˝o algoritmus polinomi´alis id˝ oben, v´egzi a rejtjelez´est az m ∈ G bemenetre: (a1 , a2 , c, d) ← Enc(G,q,g1 ,g2 ,e,f,A) (m), ahol – – – –
R
legyen β ← − {0, . . . , q − 1}, a1 = g1β , a2 = g2β , β c = A · m, h = H(a1 , a2 , c), ahol H c´el-¨ utk¨oz´esmentes hash f¨ uggv´eny, β β·h d=e ·f .
• a Dec(x1 ,x2 ,y1 ,y2 ,α) determinisztikus visszafejt˝o algoritmus polinomi´alis id˝oben v´egzi a visszafejt´est az (a1 , a2 , c, d) rejtjelezett sz¨ovegen: m ← Dec(x1 ,x2 ,y1 ,y2 ,α) (a1 , a2 , c, d), ahol – meghat´ arozza: h = H(a1 , a2 , c),
69
– ha nem ´ all fenn a k¨ ovetkez˝ o egyenl˝os´eg: d = a1x1 +y1 ·h · a2x2 +y2 ·h ,
(5.3)
akkor REJECT elutas´ıt´ o kimeneti ´ert´ekkel le´all az algoritmus, ellenkez˝ o esetben ∗ meghat´ arozza: m = c · (aα1 )−1 . (5.4) A rendszer helyess´ege n´eh´ any elemi sz´am´ıt´as sor´an ellen˝orizhet˝o, a d ´ert´eke, a (5.3) egyenl˝ os´egben a k¨ ovetkez˝ o form´aban ´ırhat´o fel: d eβ · f β·h (g1x1 · g2x2 )β · (g1y1 · g2y2 )β·h g1β·x1 · g2β·x2 · g1β·y1 ·h · g2β·y2 ·h ax1 1 +y1 ·h · ax2 2 +y2 ·h .
= = = =
Az 5.4 egyenl˝ os´eg pedig a k¨ ovetkez˝ o form´aban ´ırhat´o fel: c · (aα1 )−1 = (Aβ · m) · (aα1 )−1 = g1αβ · m · (g1βα )−1 = m. A rendszer CCA-biztons´ ag´ anak bizony´ıt´asa a k¨ovetkez˝ok´eppen v´azolhat´o fel, r´eszletes bizony´ıt´ asra jelen ´ertekez´es keret´en bel¨ ul nem t´er¨ unk ki [20]. Ha felt´etelezz¨ uk, hogy l´etezik egy A t´ amad´o, amely egy v´eletlenszer˝ uen gener´alt nyilv´anos kulcs ismeret´eben 1/2 + ε val´osz´ın˝ us´eggel (ahol ε nem elhanyagolhat´o ´ert´ek) meg tud k¨ ul¨ onb¨ oztetni egym´ast´ol bizonyos rejtjelezett sz¨ovegeket, akkor szerkeszthet˝ o egy olyan probabilisztikus, polinomi´alis B t´amad´ o algoritmus, amely nem elhanyagolhat´o val´osz´ın˝ us´eggel β βλ β λ λ z k¨ ul¨onbs´eget tesz a (g1 , g1 , g1 ) ´es (g1 , g1 , g1 ) k¨oz¨ott amellyel ellent mondunk a d¨ont´esi Diffie–Hellman-felt´etelez´esnek, ahol β, z v´eletlenszer˝ uen meghat´arozott ´ert´ekek. 5.2. megjegyz´es. A CS rendszerben az (5.3) egyenl˝ os´eg a k¨ ovetkez˝ o form´ aban is fel´ırhat´ o, ahol alkalmazhat´ o a g2 = g1λ jel¨ ol´es: 70
(g1β )x1 +y1 ·h · (g2β )x2 +y2 ·h = ax1 1 +y1 ·h · a2x2 +y2 ·h .
(5.5)
Az (5.5) egyenl˝ os´eget csak azok a rejtjelezett sz¨ ovegek el´eg´ıtik ki, amelyek eset´eben fenn´ all, hogy logg1 a1 = logg2 a2 , ´es nagyon kicsi a val´ osz´ın˝ us´ege annak, hogy egy olyan rejtjelezett sz¨ oveg is teljes´ıtse az (5.5) egyenl˝ os´eget, amelyre ez nem ´ all fenn, ami alapj´ an megszerkeszthet˝ o a B algoritmus. 5.3. megjegyz´es. Abban az esetben, ha az m ´ert´eke valamely hibrid rendszer keret´en bel¨ ul v´eletlenszer˝ uen ker¨ ul kiv´ alaszt´ asra, a fenti titkos´ıt´ o, kulcsbe´ agyaz´ asi mechanizmusnak tekinthet˝ o. Ez a kor´ abban t´ argyalt titkos´ıt´ o rendszerek mindegyik´ere igaz.
71
72
6. fejezet
Az u ´j kulcsbe´agyaz´asi mechanizmus 6.1. Bevezet˝ o Az ´ertekez´es keret´en bel¨ ul bemutat´asra ker¨ ul˝o CPA-biztons´ag´ u ´es CCAbiztons´ag´ u kulcsbe´ agyaz´ asi mechanizmusok alapj´aul a Rabin-titkos´ıt´o ´es a Hofheinz ´es t´ arsai [35], ´ altal szerkesztett rendszerek szolg´altak. A CCAbiztons´ag´ u kulcsbe´ agyaz´ asi mechanizmus a [48] cikkben ker¨ ult publik´al´asra. Kriptogr´ afiai rendszerek szerkeszt´es´en´el Rabin [54] alkalmazta el˝osz¨or a n´egyzetreemel´es f¨ uggv´enyt ´es bebizony´ıtotta, hogy ennek a f¨ uggv´enynek az invert´al´asa ugyanolyan neh´ez matematikai feladat, mint az eg´esz sz´amok faktoriz´aci´ os probl´em´ aja. Az 5.2. alfejezetben bemutattuk, hogy az eredeti rendszer teljesen v´edtelen egy v´alasztott rejtjelezett sz¨oveg alap´ u t´amad´assal szemben. A fejezetben bemutat´asra ker¨ ul˝o kulcsbe´agyaz´asi mechanizmusok szint´en a n´egyzetreemel´es f¨ uggv´enyen alapulnak, azzal a k¨ ul¨onbs´eggel, hogy az alkalmazott egyir´any´ u f¨ uggv´enyek, bemeneti ´ert´ek¨ uket egyik esetben a QRN halmazb´ol, m´asik esetben a QR+ ol N halmazb´ + veszik, ahol a QRN halmazt az 5.1. ´ertelmez´essel adtuk meg. A rendszerek CPA-biztons´ ag´ at, illetve CCA-biztons´ag´at be tudtuk bizony´ıtani
73
a faktoriz´aci´os felt´etelez´esb˝ ol, illetve az alkalmazott hash f¨ uggv´eny c´elu ¨tk¨oz´esmentes tulajdons´ ag´ ab´ ol kiindulva. A faktoriz´aci´os felt´etelez´esen alapul´o titkos´ıt´ o rendszerek biztons´ ag´ at a [49] cikkben t´argyaltuk. A tov´abbiakban el˝ osz¨ or megadjuk a CPA-biztons´ag´ u kulcsbe´agyaz´asi mechanizmus szerkeszt´es´enek l´ep´essorozat´at, majd a fejezet m´asodik fel´eben a CCA-biztons´ ag´ u kulcsbe´ agyaz´ asi mechanizmust mutatjuk be. Mindk´et kulcsbe´ agyaz´ asi mechanizmus eset´eben a k¨ovetkez˝o Gen kulcsgener´al´o algoritmusra van sz¨ uks´eg¨ unk: 6.1. algoritmus. A Gen kulcsgener´ al´ o algoritmus az 1k bemeneten megR hat´ arozza az (N, P, Q) sz´ amh´ armast: (N, P, Q) ← − Gen(1k ) u ´gy, hogy: • N = P · Q, ahol P, Q pr´ımsz´ amok, u ´gy hogy – P ≡ Q ≡ 3 (mod 4),´es – P = 2 · p + 1, Q = 2 · q + 1, ahol p, q szint´en pr´ımsz´ amok, • A p ´es a q bithossza k/2 − 1, A fenti Gen kulcsgener´ al´ o algoritmus ´altal gener´alt ´ert´ekek f¨ uggv´eny´eben a faktoriz´ aci´ os felt´etelez´es a k¨ovetkez˝o form´aban jelenthet˝o ki: 6.1. defin´ıci´o. B´ armely probabilisztikus polinomi´ alis idej˝ u A algoritmus eset´eben, l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy AdvF AC,A (k) = Pr[A(N ) = (P, Q)] ≤ f (k),
6.2. Az u ´j CPA-biztons´ag´ u rendszer 6.2.1. A rendszer le´ır´asa Az u ´j kulcsbe´agyaz´ asi mechanizmus egy c´el-¨ utk¨oz´esmentes hash f¨ uggv´enyt lG fog haszn´alni, jel¨ olj¨ uk ezt G : QRN → {0, 1} -val. Az u ´j CPA-biztons´ ag´ u kulcsbe´ agyaz´asi mechanizmus, a 4.15. ´ertelmez´es szerinti h´ arom algoritmusa a k¨ovetkez˝o: • A Gencpa al´ o algoritmus, amely meghat´arozza az KEM egy kulcsgener´ R k (N, P, Q) ← − Gen(1 ) ´ert´ekeket, ahol 74
– az N, P, Q ´ert´ekeket a 6.1. algoritmussal hat´arozta meg, – pk = N , ´es sk = (P, Q). • Az Enccpa agyaz´ asi algoritmus az N bemeneten a k¨ovetKEM kulcsbe´ kez˝ oket v´egzi: R
– gener´ alja r-t: r ← − {1, . . . , (N − 1)}, – meghat´ arozza: K = r2 (mod N ) ∈ QRN , ´es key = G(K), ahol G : QRN → {0, 1}lG c´el-¨ utk¨oz´esmentes hash f¨ uggv´eny, 2 – meghat´ arozza: cipher = K (mod N ), – az algoritmus kimeneti ´ert´eke (key, cipher). • A Deccpa asi algoritmus a (P, Q) ´es cipher bemeneti KEM kulcskibont´ ´ert´ekeken a k¨ ovetkez˝ oket v´egzi: – a K´ınai marad´ekt´etelt alkalmazva meghat´arozza a K ´ert´ek´et, megoldva a k¨ ovetkez˝ o kongruencia rendszert: K = cipher(P +1)/4 (mod P ), K = cipher(Q+1)/4 (mod Q), – az algoritmus kimeneti ´ert´eke a key = G(K) lesz.
6.2.2. A rendszer helyess´ege A rendszer helyess´eg´enek bizony´ıt´ as´ahoz sz¨ uks´eg van a f˝o n´egyzetes gy¨ok fogalm´anak az ´ertelmez´es´ere [61]: 6.2. defin´ıci´ o. Az x ∈ {1, . . . , N } sz´ amot az y kvadratikus marad´ek f˝ o n´egyzetes gy¨ ok´enek nevezz¨ uk, ha x szint´en kvadratikus marad´ek (mod N ) szerint. Sz¨ uks´eges tov´ abb´ a a k¨ ovetkez˝ o t´etelt is kijelenten¨ unk, amelynek bizony´ıt´asa megtal´ alhat´ o [61]-ben. 6.1. t´etel. Ha a P, Q pr´ımsz´ amokra teljes¨ ul, hogy P ≡ Q ≡ 3 (mod 4), akkor b´ armely x kvadratikus marad´ek eset´en egyetlen olyan n´egyzetes gy¨ oke van az x-nek, amely szint´en kvadratikus marad´ek (mod N ) szerint. Ezut´ an bel´ athat´ o az u ´j rendszer helyess´ege a k¨ovetkez˝ok alapj´an: 75
• mivel N = P · Q ´es P ≡ Q ≡ 3 (mod 4), igaz, hogy a cipher tetsz˝oleges, kvadratikus marad´ek (mod P ) szerinti n´egyzetes gy¨oke meghat´arozhat´ o a k¨ ovetkez˝ o k´eplettel: ±cipher(P +1)/4 (mod P ), • de cipher-nek (mod P ) szerint cipher(P +1)/4 (mod P ) a f˝o n´egyzetes gy¨oke, • hasonl´oan cipher-nek (mod Q) szerint cipher(Q+1)/4 (mod Q) a f˝o n´egyzetes gy¨ oke, • alkalmazhat´ o ezek ut´ an a k´ınai marad´ekt´etel, teh´at K = r2 (mod N ) 2 a cipher = K (mod N ) f˝ o n´egyzetes gy¨oke, (mod N ) szerint.
6.2.3. A rendszer biztons´aga Az u ´j rendszer CPA-biztons´ ag´ anak bizony´ıt´as´ahoz a k¨ovetkez˝o k´ıs´erletet ´ertelmezz¨ uk, amely k´ıs´erlet egy polinomi´alis idej˝ u, probabilisztikus A t´amad´o ´es a k¨ornyezete k¨ oz¨ ott, a kih´ıv´ o k¨oz¨ott j´atsz´odik le: 6.1. k´ıs´erlet. k 1. A kih´ıv´ o futtatja a Gencpa al´ o algoritmust, megKEM (1 ) kulcsgener´ hat´ arozza az (N, (P, Q)) ´ert´ekeket, majd a az N ´ert´eket ´ atadja az A t´ amad´ onak, 2. az A t´ amad´ o tetsz˝ oleges sz´ am´ u alkalommal megh´ıvja a kih´ıv´ o Enccpa (N ) ´ e s G(·) algoritmusait, KEM 3. a kih´ıv´ o elv´egzi a k¨ ovetkez˝ oket:
• • • • •
meghat´ arozza: (key ∗ , cipher∗ ) ← Enccpa KEM (pk), R gener´ al egy u ´ert´eket: u ← − QRN , a (key ∗ )-t c0 -val jel¨ oli, a (G(u))-t c1 -gyel jel¨ oli, ´ atadja az A t´ amad´ onak a (cb , cipher∗ ) titkos´ıtott ´ert´ekp´ art, ahol R b← − {0, 1},
4. az A t´ amad´ o tetsz˝ oleges sz´ am´ u alkalommal megh´ıvja a kih´ıv´ o Enccpa (N ) ´ e s G(·) algoritmusait, KEM 5. az A t´ amad´ o meghat´ aroz egy ˆb ∈ {0, 1} kimeneti ´ert´eket. Jel¨olj¨ uk a tov´ abbiakban Expr(0)-val azt az esem´enyt, amikor ˆb = 1, azon felt´etel mellett, hogy a kih´ıv´ onak b = 0 volt a v´alaszt´asa, ´es jel¨olj¨ uk 76
Expr(1)-gyel azt az esem´enyt, amikor ˆb = 1 azon felt´etel mellett, hogy a kih´ıv´o a b = 1 ´ert´eket v´ alasztotta. A tov´ abbiakban a k¨ ovetkez˝ o f¨ uggv´enyt defini´aljuk: 1 Advcpa KEM,A (k) = 2 | Pr[Expr(0)] − Pr[Expr(1)]|,
amely alapj´ an a CPA-biztons´ ag ´ertelmez´ese a k¨ovetkez˝o lesz: 6.3. defin´ıci´ o. Az u ´j kulcsbe´ agyaz´ asi mechanizmus CPA-biztons´ ag´ u, ha b´ armely probabilisztikus, polinomi´ alis idej˝ u A t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Advcpa KEM,A (k) ≤ f (k). Ezek ut´ an a k¨ ovetkez˝ o t´etelt jelenthetj¨ uk ki: 6.2. t´etel. Ha a fenti k´ıs´erletben a G a 3.2. ´ertelmez´es szerint defini´ alt c´elu ¨tk¨ oz´esmentes hash f¨ uggv´eny, azaz ha fenn´ all, hogy b´ armely probabilisztikus polinomi´ alis B t´ amad´ o algoritmus eset´en l´etezik egy fB (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy R
R
AdvCR1,B (G) = P r[x ← − QRN , y ← − B(x) : x 6= y, G(x) = G(y)] ≤ fB (k) ´es ha a 6.1. ´ertelmez´es szerint megadott faktoriz´ aci´ os felt´etelez´est elfogadjuk, akkor l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Advcpa KEM,A (k) ≤ f (k). Bizony´ıt´ as. Minden olyan esetben, amikor az A t´amad´o a G hash f¨ uggv´eny ki´ert´ekel´es´et a K pontra k´eri ismernie kell a K ´ert´ek´et, amelyet r2 -b˝ol tud kisz´am´ıtani (ez az´ert igaz, mert r ´ert´ek´et v´eletlenszer˝ uen hat´arozzuk meg, ´es mert felt´etelezt¨ uk, hogy G u ¨tk¨oz´esmentes hash f¨ uggv´eny). Ha azonban a fenti esem´eny nem elhanyagolhat´o val´osz´ın˝ us´eggel k¨ovetkezik be, akkor szint´en nem elhanyagolhat´o val´osz´ın˝ us´eggel k¨ovetkezett be, hogy az A t´amad´ o meghat´ arozta a K ´ert´ek´et K 2 ´es N ismeret´eben. Ez viszont akkor k¨ovetkezhet be, ha az A t´ amad´o nem elhanyagolhat´o val´osz´ın˝ us´eggel oldotta meg a faktoriz´ aci´ os probl´em´at.
77
6.2.4. A rendszer hat´ekonys´aga Biztons´agos pr´ımek gener´ al´ asa ´ altal´ aban id˝oig´enyes feladat, de gyors´ıtani lehet az algoritmust a [66] alapj´ an. A kulcsbe´agyaz´ asi algoritmus k´et modul´aris n´egyzetre emel´est v´egez a kulcskibont´asi algoritmus, pedig k´et modul´aris hatv´anyoz´ast v´egez. K¨ovetkez´esk´eppen mindk´et algoritmus fut´asi ideje nagyon j´o hat´ekonys´ag´ u.
6.3. Az u ´j CCA-biztons´ag´ u rendszer 6.3.1. A rendszer le´ır´asa Az u ´j kulcsbe´agyaz´ asi mechanizmus k´et c´el-¨ utk¨oz´esmentes hash f¨ uggv´enyt lH → {0, 1} -val, a m´ a sikat G : fog haszn´alni, jel¨ olj¨ uk az egyiket H : QR+ N + lG QRN → {0, 1} -vel. A QR+ ertelmez´essel defini´altunk, t¨obb N halmaznak, amelyet az 5.1. ´ olyan tulajdons´ aga is van, amely kriptogr´afiai szempontb´ol hasznos, ´es amelyekre a tov´ abbi bizony´ıt´ asok sor´ an sz¨ uks´eg¨ unk lesz [35]. Ezek a k¨ovetkez˝oek: • QR+ ıv m˝ uveletre n´ezve ciklikus csoportot alkot, amelyN a multiplikat´ nek rendje φ(N )/4, ahol φ(N ) = (P − 1) · (Q − 1), • hat´ekonyan eld¨ onthet˝ o, hogy egy elem hozz´atartozik a QR+ N halmazhoz vagy sem: az adott elemr˝ ol ellen˝orizni kell, hogy benne van-e az {1, . . . , (N − 1)/2} halmazban, illetve, hogy a Jacobi szimb´oluma (mod N ) szerint 1-e. • a QR+ uli kvadratikus marad´ekok meghat´aroz´as´anak N halmazon bel¨ probl´em´aj´ anak neh´ezs´ege ekvivalens a faktoriz´aci´os probl´em´aval, • a QR+ uli n´egyzetreemel´es f¨ uggv´eny egy permut´aci´o lesz N halmazon bel¨ + a QRN -ben, • egy egyenletes eloszl´ as szerint, v´eletlenszer˝ uen gener´alt g ∈ QR+ N elem nagy val´osz´ın˝ us´eggel gener´ ator elem lesz; annak a val´osz´ın˝ us´ege, hogy a g nem lesz gener´ ator elem, a k¨ ovetkez˝o: (p + q − 1)/(p · q) ≤ 2−k+2 . 78
6.1. megjegyz´es. Megjegyezz¨ uk, hogy a fenti korl´ at bizony´ıt´ as´ an´ al fontos szerepet kap, az hogy P = 2 · p + 1, Q = 2 · q + 1, ahol p, q is pr´ımsz´ amok [35] ´eppen ez´ert az u ´j CCA-biztons´ ag´ u rendszer szerkeszt´es´ehez, a fenti m´ odon el˝ o´ all´ıtott pr´ımeket kell haszn´ alni. A szakirodalom, ahogy a 5.1. algoritmusn´ al is eml´ıtett¨ uk, az N sz´ amot Blum-eg´esznek, a P, Q pr´ımeket, pedig biztons´ agos (safe) pr´ımeknek nevezi. Az u ´j CCA-biztons´ ag´ u kulcsbe´agyaz´asi mechanizmus, a 4.15. ´ertelmez´es szerinti h´ arom algoritmusa a k¨ovetkez˝o, ahol a m˝ uveleteket QR+ -ben v´ e gezz¨ u k:: N k al´o algoritmus, amely egyenletes eloszl´as A Gencca KEM (1 ) egy kulcsgener´ szerint, v´eletlenszer˝ uen az 1k bemeneten a k¨ovetkez˝ok´eppen gener´alja a pk nyilv´anos kulcsot ´es az sk titkos kulcsot: • gener´ al egy N ¨ osszetett sz´ amot a 6.1. algoritmus szerint, R R • gener´ alja g-t ´es α-t a k¨ ovetkez˝ ok´eppen: g ← − QR+ − {1, . . . , (N − N, α ← lH α·2 2 1)/4}, majd meghat´ arozza X-t: X = (g ) • az algoritmus kimeneti ´ert´ekei a pk = (N, g, X), ´es sk = α. Az Enccca agyaz´ asi algoritmus az N, g ´es X bemeneti KEM kulcsbe´ ´ert´ekeken a k¨ ovetkez˝ oket v´egzi: R
• gener´ alja r-t: r ← − {1, . . . , (N − 1)/4}, l lG • meghat´ arozza: K = g r·2 H , ´es key = G(K), ahol G : QR+ N → {0, 1} c´el-¨ utk¨ oz´esmentes hash f¨ uggv´eny, lH • meghat´ arozza S = (g h ·X)r , ahol h = H(K 2 ), ´es H : QR+ N → {0, 1} , c´el-¨ utk¨ oz´esmentes hash f¨ uggv´eny, 2 • meghat´ arozza az R = K ´ert´eket, • az algoritmus kimeneti ´ert´eke (key, cipher), ahol cipher = (R, S). A Deccca asi algoritmus az α ´es cipher = (R, S) bemeneti KEM kulcskibont´ ´ert´ekeken a k¨ ovetkez˝ oket v´egzi: • ha a k¨ ovetkez˝ o tartalmaz´ as nem ´all fenn: + (R, S) ∈ QR+ N × QRN ,
79
akkor az algoritmus REJECT elutas´ıt´o kimeneti ´ert´ekkel le´all, ellenkez˝o esetben – meghat´ arozza a h = H(R) ´ert´eket, – ha a k¨ ovetkez˝ o egyenl˝ os´eg nem ´all fenn: 1+lH
S2
1+lH
= Rh+α·2
,
(6.1)
akkor az algoritmus REJECT elutas´ıt´o kimeneti ´ert´ekkel le´all, ellenkez˝ o esetben ∗ kiterjesztett euklideszi algoritmussal, meghat´arozza az a, b, c ´ert´ekeket a k¨ ovetkez˝ o diofantikus egyenletb˝ol: 2c = a · h + b · 21+lH , ahol 2c a h ´es 21+lH legnagyobb k¨oz¨os oszt´oja lesz (a diofantikus egyenlet megoldhat´ o lesz, mert fenn´all 0 < h < 2lH , amib˝ ol k¨ ovetkezik, hogy c < lH ), ∗ az algoritmus kimenete a key ´ert´ek lesz, ahol l −c key = G((S a · Rb−a·α )2 H ). A Deccca asi algoritmusnak, ha az α ´es cipher = (R, S) KEM kulcskibont´ bemeneti ´ert´ekek mellett megadjuk bemeneti param´eterk´ent a P ´es Q ´ert´ekeket is, akkor a (6.1) egyenl˝ os´eg elv´egz´ese ut´an a key ´ert´ek´enek, hat´ekonyabb m´ odon val´ o meghat´ aroz´ asa, a k¨ovetkez˝ok´eppen is t¨ort´enhet: • a k´ınai marad´ekt´etelt alkalmazva meghat´arozzuk a K ´ert´ek´et, megoldva a k¨ ovetkez˝ o kongruencia rendszert: K = R(P +1)/4 (mod P ), K = R(Q+1)/4 (mod Q), • az algoritmus kimeneti ´ert´eke a key = G(K) lesz.
6.3.2. A rendszer helyess´ege Az u ´j rendszer helyess´ege n´eh´ any elemi sz´am´ıt´as sor´an ellen˝orizhet˝o. Egyszer˝ uen bel´ athat´ o, hogy az S ´es R ´ert´ekek a k¨ovetkez˝o form´aban ´ırhat´oak fel: 80
l
S = (g h · X)r = g r·(h+2·α·2 H ) , l R = g 2·r·2 H . Az (6.1) egyenl˝ os´eg helyess´eg´enek a bel´at´as´ahoz a k¨ovetkez˝o sz´am´ıt´asok v´egezhet˝oek el: 1+lH
S2 R
h+α·21+lH
l
l
= g 2·2 H ·r·(h+2·α·2 H ) , l l = g (h+α·2·2 H )·2·r·2 H .
A kulcs kisz´ am´ıt´ as´ anak helyess´ege a k¨ovetkez˝ok´eppen ellen˝orizhet˝o: S a · Rb−a·α = = = l −c (S a · Rb−a·α )2 H =
l
l
l
g a·r·h+a·r·2·α·2 H · g b·2·r·2 H −a·α·2·r·2 H l g r·(a·h+b·2·2 H ) c g r·2 , l g r·2 H .
6.3.3. A rendszer biztons´aga Az u ´j rendszer CCA-biztons´ ag´ anak bizony´ıt´as´ahoz a k¨ovetkez˝o k´ıs´erletet ´ertelmezz¨ uk, amely k´ıs´erlet egy polinomi´alis idej˝ u probabilisztikus A t´amad´o ´es a k¨ ornyezete, a kih´ıv´ o k¨ oz¨ott zajlik: 6.2. k´ıs´erlet. k 1. A kih´ıv´ o futtatja a Gencca al´ o algoritmust, megKEM (1 ) kulcsgener´ hat´ arozza az N, g, X, α ´ert´ekeket, majd az N, g, X ´ert´ekeket, ´ atadja az A t´ amad´ onak, 2. az A t´ amad´ o tetsz˝ oleges sz´ am´ u alkalommal megh´ıvja a kih´ıv´ o Deccca (α, ·) ´ e s G(·), H(·) algoritmusait, KEM 3. a kih´ıv´ o elv´egzi a k¨ ovetkez˝ oket:
• • • • •
meghat´ arozza (key ∗ , cipher∗ ) ← Enccca KEM (N, g, X), R + gener´ al egy u ´ert´eket: u ← − QRN , a (key ∗ )-t c0 -val jel¨ oli, a (G(u))-t c1 -gyel jel¨ oli, R ´ atadja az A t´ amad´ onak a (cb , cipher∗ ) ´ert´ekp´ art, ahol b ← − {0, 1}, 81
4. az A t´ amad´ o tetsz˝ oleges sz´ am´ u alkalommal, k¨ ul¨ onb¨ oz˝ o cipher ´ert´ekekre megh´ıvja a kih´ıv´ o Deccca (α, cipher) ´ e s G(·), H(·) algoKEM ritmusait, azzal a megk¨ ot´essel, hogy cipher 6= cipher∗ , 5. az A t´ amad´ o meghat´ aroz egy ˆb ∈ {0, 1} kimeneti ´ert´eket. Jel¨olj¨ uk a tov´ abbiakban Expr(0)-val azt az esem´enyt, amikor a t´amad´o a´ltal meghat´arozott kimeneti ´ert´ek 1, azon felt´etel mellett, hogy a kih´ıv´onak b = 0 volt a v´alaszt´ asa, ´es jel¨ olj¨ uk Expr(1)-gyel azt az esem´enyt, amikor a t´amad´o ´altal meghat´ arozott kimeneti ´ert´ek 1, azzal a felt´etellel, hogy a kih´ıv´o a b = 1 ´ert´eket v´ alasztotta. A tov´abbiakban a k¨ ovetkez˝ o f¨ uggv´enyt defini´aljuk: 1 Advcca KEM,A (k) = 2 | Pr[Expr(0)] − Pr[Expr(1)]|,
amely alapj´ an a CCA-biztons´ ag ´ertelmez´ese a k¨ovetkez˝o lesz: 6.4. defin´ıci´o. Az u ´j kulcsbe´ agyaz´ asi mechanizmus CCA-biztons´ ag´ u, ha b´ armely probabilisztikus, polinomi´ alis idej˝ u A t´ amad´ o eset´eben l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy Advcca KEM,A (k) ≤ f (k). Ezek ut´an a k¨ ovetkez˝ o t´etelt jelenthetj¨ uk ki: 6.3. t´etel. Ha a fenti k´ıs´erletben a H ´es G a c´el-¨ utk¨ oz´esmentes hash f¨ uggv´enyek, azaz ha fenn´ all, hogy b´ armely probabilisztikus polinomi´ alis B1 t´ amad´ o algoritmus eset´en l´etezik egy fB1 (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy R
R
AdvCR1,B1 (H, k) = P r[x ← − QRN , y ← − B1 (x) : x 6= y, H(x) = H(y)] ≤ fB1 (k) ´es ha fenn´ all, hogy b´ armely probabilisztikus polinomi´ alis B2 t´ amad´ o algoritmus eset´en l´etezik egy fB2 (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy R
R
AdvCR1,B2 (G, k) = P r[x ← − QRN , y ← − B2 (x) : x 6= y, G(x) = G(y)] ≤ fB2 (k) ´es ha a 6.1. ´ertelmez´es szerint megadott faktoriz´ aci´ os felt´etelez´est elfogadjuk, akkor l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy 82
Advcca KEM,A (k) ≤ f (k). Ahhoz, hogy a 6.3. t´etel bizony´ıt´as´at megadhassuk, el˝obb tov´abbi k´et t´etelt jelent¨ unk ki ´es bizony´ıtunk be, a 6.4. ´es a 6.5. t´etelt. 6.4. t´etel. Ha elfogadjuk a 6.1. ´ertelmez´es szerinti faktoriz´ aci´ os felt´etelez´est, ´es ha a G hash f¨ uggv´eny c´el-¨ utk¨ oz´esmentes tulajdons´ ag´ u, akkor l´etezik egy f (k) elhanyagolhat´ o f¨ uggv´eny u ´gy, hogy b´ armely probabilisztikus polinomi´ alis idej˝ u D t´ amad´ o algoritmus eset´en fenn´ all: AdvDDS,D (k) = | Pr[D(N, K 2 , G(K)) = 1] − Pr[D(N, K 2 , G(u)) = 1]| ≤ f (k), R
ahol K a kulcsbe´ agyaz´ asi algoritmus sor´ an meghat´ arozott ´ert´ek ´es u ← − + QRN . Inform´ alisan ez azt jelenti, hogy ha szerkeszt¨ unk egy olyan D algo2 ritmust, amely k¨ ul¨ onbs´eget tud tenni az (N, K , G(K)) ´es (N, K 2 , G(u)) sz´amh´armasok k¨ oz¨ ott, akkor a D algoritmus alkalmas lesz arra, hogy faktoriz´alja az N ´ert´ek´et. A tov´ abbiakban ezt a t´ıpus´ u algoritmust D-tulajdons´ag´ u algoritmusnak fogjuk h´ıvni. Bizony´ıt´ as. Legyen D egy olyan algoritmus, amelyr˝ol felt´etelezz¨ uk, hogy k¨ ul¨onbs´eget tud tenni az (N, K 2 , G(K)) ´es (N, K 2 , G(u)) sz´amh´armasok k¨oz¨ott • bemeneti ´ert´ekk´ent a D algoritmusnak megadjuk az (N, K 2 , V ) sz´amh´ armast, ahol V vagy a G(K) vagy G(u) ´ert´eket veszi fel, ´es R ahol u ← − QR+ N, • a D algoritmus t¨ obb, egyenletes eloszl´as szerint v´eletlenszer˝ uen gener´ alt bemeneti ´ert´ekekre meghat´arozza a G hash f¨ uggv´eny kimenet´et, • minden olyan esetben, amikor a D algoritmus a G f¨ uggv´eny ki´ert´ekel´es´et a K pontban v´egzi ismernie kell a K ´ert´ek´et, amelyet K 2 -b˝ ol tud kisz´ am´ıtani (ez az´ert igaz, mert felt´etelezt¨ uk, hogy G u ¨tk¨ oz´esmentes hash f¨ uggv´eny),
83
• ha azonban a fenti esem´eny nem elhanyagolhat´o val´osz´ın˝ us´eggel k¨ovetkezik be, akkor szint´en nem elhanyagolhat´o val´osz´ın˝ us´eggel k¨ovetkezett be az az esem´eny is, hogy a D algoritmus meghat´arozta a K ´ert´ek´et K 2 ´es N ismeret´eben, • ha a D algoritmus nem elhanyagolhat´o val´osz´ın˝ us´eggel hat´arozta meg a K ´ert´ek´et a K 2 ´es N ismeret´eben, akkor a D algoritmus nem elhanyagolhat´ o val´ osz´ın˝ us´eggel oldotta meg a faktoriz´aci´os probl´em´at, ami viszont ellentmond a faktoriz´ aci´os felt´etelez´esnek. A fenti gondolatmenet alapj´ an kijelenthet˝o, hogy: AdvDDS,D (k) ≤ AdvF AC,A (k) + AdvCR1,B (k).
azaz a AdvDDS,D (k) f¨ uggv´eny k szerint elhanyagolhat´o. 6.5. t´etel. Ha A egy probabilisztikus, polinomi´ alis idej˝ u t´ amad´ o algoritmus, amely felt¨ ori az u ´j rendszer CCA-biztons´ ag´ at, akkor szerkeszthet˝ o egy probabilisztikus polinomi´ alis idej˝ u D algoritmus, amely D-tulajdons´ ag´ u vagy szerkeszthet˝ o egy probabilisztikus polinomi´ alis idej˝ u B algoritmus, amely felt¨ ori a H f¨ uggv´eny u ¨tk¨ oz´esmentes tulajdons´ ag´ at. Form´ alisan ez a k¨ ovetkez˝ oket jelenti: Advcca KEM,A (k) ≤ AdvDDS,D (k) + AdvCR1,B (k) + f (k),
ahol f (k) elhanyagolhat´ o f¨ uggv´eny. Bizony´ıt´ as. A t´etel bebizony´ıt´ asa ´erdek´eben a k¨ovetkez˝ok´eppen j´arunk el: szerkeszt¨ unk egy D algoritmust, amely szimul´alja az A t´amad´o bemenet´et. Tudjuk, hogy a D algoritmus bemenete vagy (N, K 2 , G(K)) vagy (N, K 2 , G(u))), ahol a D algoritmus megh´ıvja az A algoritmust a k¨ovetkez˝o bemenetekkel: • az (N, g, X) nyilv´ anos kulccsal, ´es a • (key ∗ , cipher∗ ) bemenettel, ha a D bemenete (N, K 2 , G(K)) vagy a (G(u), cipher∗ ) bemenettel, ha a D bemenete (N, K 2 , G(u)), ahol a g, X, key ∗ , cipher∗ ´ert´ekeket a D hat´arozta meg, a k¨ovetkez˝ok´eppen: R
R
– g← − QR+ es β ← − {1, . . . (N − 1)/4)}, N, ´ 84
∗
l
– h∗ = H(K 2 ), X = g β·2·2 H −h , – cipher∗ = (R∗ , S ∗ ), ahol R∗ = K 2 , ´es S ∗ = (K 2 )β , – key ∗ = G(K). Mivel g ∈ QR+ osz´ın˝ us´eggel gener´ator elem, a 6.3.1. szakaszN nagy val´ ban megadott tulajdons´ agok szerint, felt´etelezhetj¨ uk, hogy: l
• X fel´ırhat´ o mint: (g α·2 H )2 , ahol α ismeretlen, de α fel´ırhat´o β − h∗ /(2 · 2lH ) alakba, ∗ l • R∗ fel´ırhat´ o mint: g r ·2·2 H , ahol r∗ ismeretlen, ∗ ∗ • S ∗ fel´ırhat´ o mint: (g h · X)r , mert fenn´all: ∗
∗
∗
∗
l
(g h · X)r = (g h · g β·2·2 H −h )r • key ∗ fel´ırhat´ o mint: g r
∗
·2lH
∗
.
Amikor az A elk¨ uldi a cipher = (R, S) ´ert´ek´et D-nek, hogy D meghat´arozza a key ´ert´ek´et, D le tudja ellen˝orizni, hogy az cipher ´ert´ek konzisztens-e vagy sem, elv´egezve a k¨ovetkez˝o egyszer˝ u sz´am´ıt´asokat: ∗
l
S 2·2 H = Rh−h
+β·2·2lH
,
ahol a h ´ert´eke meghat´ arozhat´ o, mert h = H(R). Ha az (R, S) ´ert´ek p´ ar nem konzisztens, akkor REJECT visszautas´ıt´o kimeneti ´ert´ekkel le´ all. Ha az (R, S) ´ert´ek p´ ar konzisztens, akkor D k´et k¨ ul¨onb¨oz˝o esetet tud megk¨ ul¨onb¨ oztetni: 1. h 6= h∗ . Ebben az esetben a k¨ovetkez˝o diofantikus egyenletb˝ol, a kiterjesztett euklideszi algoritmussal, D megtudja hat´arozni az a1 , b1 , c1 ´ert´ekeket: 2c1 = a1 · (h − h∗ ) + b1 · 2 · 2lH . A key meghat´ aroz´ as´ at, pedig a k¨ovetkez˝ok´eppen v´egzi: l
G(S a1 · Rb1 −a1 ·β )2 H
−c1
.
2. h = h∗ . Ebben az esetben tov´ abbi k´et alesetet k¨ ul¨onb¨oztet¨ unk meg: 85
• Ha fenn´ all a k¨ ovetkez˝ o egyenl˝os´eg: R = R∗ , akkor igaz az is ∗ hogy S = S , viszont nem megengedett az (R∗ , S ∗ ) bemenet. • Ha fenn´ all R 6= R∗ , akkor a D algoritmus u ¨tk¨oz´est tal´alt, ami csak kis val´ osz´ın˝ us´eggel k¨ ovetkezhet be. K¨ovetkez´esk´eppen a pk = (N, g, X), ´es (R∗ , S ∗ ) ´ert´ekek eloszl´asa abban az esetben, amikor D algoritmus szimul´alja az A bemenet´et, majdnem mindig ugyanolyan eloszl´ as´ u, mint a 6.2. k´ıs´erlet eset´eben. Annak a val´osz´ın˝ us´ege, hogy nem ugyanolyan eloszl´as´ uak a pk, ´es (R∗ , S ∗ ) ´ert´ekek a k¨ovetkez˝o: 2−k+3 [35]. Ezek alapj´ an kijelenthet˝ o, hogy: | Pr[D(N, K 2 , G(K)) = 1] − Pr[Expr(0)]| ≤ AdvCR1,B (k) + 2−k+3 , | Pr[D(N, K 2 , G(u)) = 1] − Pr[Expr(1)]| ≤ AdvCR1,B (k) + 2−k+3 , ahol Expr(0) ´es Expr(1) ugyanazokat az esem´enyeket jel¨olik, mint a 6.2. k´ıs´erletben. Ebb˝ol k¨ovetkezik: Advcca KEM,A (k) =
1 | Pr[Expr(0)] 2
− Pr[Expr(1)]|
≤ 12 (AdvDDS,D (k)+ +| Pr[D(N, K 2 , G(K)) = 1] − Pr[Expr(0)]|+ +| Pr[D(N, K 2 , u) = 1] − Pr[Expr(1)]|) ≤ AdvDDS,D (k) + AdvCR1,B (k) + 2−k+3 . Kor´abban azonban bebizony´ıtottuk, hogy: • AdvCR1,B (k) elhanyagolhat´ o k szerint, • AdvDDS,D (k) elhanyagolhat´ o k szerint. Ezeknek k¨ ovetkezm´enyek´ent, a 6.4. ´ertelmez´esnek megfelel˝oen az u ´j kulcsbe´agyaz´asi mechanizmus CCA-biztons´ag´ u. 86
6.3.4. A rendszer hat´ekonys´aga Biztons´agos pr´ımek gener´ al´ asa ´ altal´aban id˝oig´enyes feladat, de gyors´ıtani lehet az algoritmust [66] alapj´ an. A kulcsbe´ agyaz´ asi algoritmus k´et modul´aris hatv´anyoz´ast v´egez, nagy hatv´ anykitev˝ ovel ´es n´eh´ any szorz´ast, illetve hatv´anyoz´ast kis hatv´anykitev˝ ovel. A kulcskibont´ asi algoritmus egy modul´aris hatv´anyoz´ast v´egez nagy hatv´anykitev˝ ovel ´es hasonl´ oan a kulcsbe´agyaz´asi algoritmushoz n´eh´any szorz´ast, illetve hatv´ anyoz´ ast kis hatv´anykitev˝ovel. Az algoritmus fut´asi ideje gyors´ıthat´ o a k´ınai marad´ekt´etel alkalmaz´as´aval, ha megadjuk a P ´es Q pr´ımeket, mint bemeneti ´ert´ekeket az algoritmusnak. K¨ovetkez´esk´eppen a kulcskibont´asi algoritmus majdnem k´etszer olyan gyors, mint a kulcsbe´ agyaz´ asi algoritmus, ami nagyon alkalmass´a teszi az algoritmust olyan alkalmaz´ asok sz´ am´ara, ahol a szerver v´egzi a kulcskibont´asi folyamatot (mint ahogyan az ´altal´aban t¨ort´enni szokott).
87
88
7. fejezet
Kulcsbe´agyaz´asi mechanizmusok implement´aci´ oja Ebben a fejezetben t¨ obb CCA-biztons´ag´ u kulcsbe´agyaz´asi algoritmus implement´ aci´ oj´ at mutatjuk be, C++ programoz´asi k¨ornyezetben, illetve ¨osszehasonl´ıtjuk ezen rendszerek hat´ekonys´ag´at, fut´asi id˝oket m´erve a kulcsgener´ al´ as, kulcsbe´ agyaz´ asi ´es kulcskibont´asi algoritmusok eset´eben. Konkr´etan • • • • •
a Cramer–Shoup, a tov´ abbiakban mint CS-rendszer, az RSA–OAEP, az SAEP, a Hofheinz- ´es t´ arsai, a tov´ abbiakban mint HKS-rendszer, a 6. a fejezetben bemutatott kulcsbe´agyaz´asi mechanizmus implement´ aci´ oj´ ara t´er¨ unk ki.
Kriptogr´afia rendszerek implement´ aci´oj´aval, pontosabban az RSA-titkos´ıt´o implement´ aci´ oj´ aval funkcion´ alis programoz´asi nyelvben a [46] cikkben is foglalkoztunk. Az eredm´enyeket amelyeket itt tesz¨ unk k¨ozz´e a k¨ovetkez˝o konfigur´aci´oj´ u g´eppel m´ert¨ uk, ahol a rendszer hardverkonfigur´aci´oja a k¨ovetkez˝o volt:
89
processzor: Intel(R)CoreTM i3-2310M 2.10GHz, a rendszer t´ıpusa: 64-bites oper´ aci´ os rendszer, RAM mem´ oriam´eret: 4.00GB. A rendszer szoftverkonfigur´ aci´ oja: oper´aci´os rendszer: Windows 7 Enterprise, Service Pack 1, programoz´ asi k¨ ornyezet: Visual Studio 2010 Professional, Microsoft Visual C++ 2010. Az implement´ aci´ o sor´ an a k¨ ovetkez˝ o ny´ılt forr´ask´od´ u programcsomagokat, k¨onyvt´arcsomagokat haszn´ altuk: • NTL, static library [58], • SHA1, SHA2, HMAC and Key Derivation in C [31], • Crypto++ [23]. A nagy sz´ amok ´ abr´ azol´ as´ ara ´es a vel¨ uk v´egzett aritmetikai m˝ uveletek elv´egz´es´ere, a Shoup ´ altal fejlesztett, NTL ny´ılt forr´ask´od´ u k¨onyvt´arcsomagot haszn´ altuk. Az NTL magas hat´ekonys´ag´ u C++ k¨onyvt´arcsomag, amely lehet˝ ov´e teszi k¨ ul¨onb¨oz˝o adatszerkezetek ´es algoritmusok alkalmaz´ as´ at tetsz˝ oleges nagys´ agrend˝ u eg´esz sz´amok, vektorok, m´atrixok, polinomok eset´eben. A k¨ onyvt´ arcsomag k¨onnyed´en install´alhat´o Unix, Windows ´es Macintosh g´epekre egyar´ant. A tetsz˝oleges hossz´ us´ag´ u, el˝ojeles nagy sz´ amok ´ abr´ azol´ as´ ara haszn´ alt oszt´aly a ZZ nevet viseli. Az oszt´aly keret´en bel¨ ul alkalmazhat´ oak az alapvet˝o aritmetikai m˝ uveletek, de a kriptogr´afi´ aban hasznos, komplexebb f¨ uggv´enyek egy r´esze is implement´alva van, pl: pr´ımtesztel´es, modul´ aris hatv´anyoz´as, modul´aris inverz meghat´aroz´as, stb. A rendszerek implement´ al´ asa sor´ an az SHA-256, illetve SHA-384 hash f¨ uggv´enyek ker¨ ultek alkalmaz´ asra. A biztons´ag n¨ovel´ese ´erdek´eben ezen k¨onnyed´en lehet v´ altoztatni, nagyobb kimeneti ´ert´eket el˝o´all´ıt´o SHA hash f¨ uggv´enyt alkalmazva. Megjegyezz¨ uk, hogy a jelenlegi standard k¨ovetelm´enyek a 256, illetve 384 bites kimenti hash ´ert´ekeket megfelel˝onek tartj´ak. A tov´abbiakban minden egyes rendszern´el k¨ ul¨on felt¨ untetj¨ uk, hogy milyen nagys´agrend˝ u kimeneti hash ´ert´ekekkel dolgoztunk, azaz mikor alkalmaztuk az SHA-256, ´es mikor az SHA-384-es hash f¨ uggv´enyeket.
90
A hash f¨ uggv´eny ny´ılt forr´ ask´odja B. Gladman munk´aja, a hash f¨ uggv´enyek hat´ekonys´ aga pedig a fejleszt˝o nyilv´anos weboldal´an tal´alhat´oak meg [31]. A Cryptoo++ kriptogr´ afiai s´em´ak implement´al´as´at tartalmaz´o C++ oszt´alyk¨onyvt´ ar. A val´ os alkalmaz´ asok eset´eben haszn´alt kriptogr´afiai primit´ıvek szinte mindegyik´et implement´alt´ak a fejleszt˝ok. Wei Dai kezdte el, napjainkban azonban t¨ obben is bekapcsol´odtak a fejleszt´es´ebe. T¨obb platformon futtathat´ o, pl. MSVC 6.0-2012, GCC 3.3 - 4.7, stb. Az oszt´alyk¨onyvt´ ar t¨ obb verzi´ oj´ at szabv´anyk´ent fogadta el a NIST. Az ´altalunk implement´ alt rendszerek eset´eben az oszt´alyk¨onyvt´ar primit´ıvei k¨oz¨ ul az RSA–OAEP implement´ aci´ ot haszn´ altuk fel. A Cramer–Shoup-rendszer A CS rendszer implement´ al´ asa sor´ an a Z∗p ciklikus csoporttal dolgoztunk, ahol a p pr´ımsz´ am, alakja 2·q+1, ahol q szint´en pr´ımsz´am. Ez a kit´etel a gener´ator elemek meghat´ aroz´ as´ an´ al is fontos szerepet kap. A szakirodalom a p pr´ımet biztons´ agos (safe) pr´ımnek h´ıvja, a q pr´ımet pedig Sophie–Germainpr´ımnek. Az NTL k¨ onyvt´ arcsomag t¨obb olyan f¨ uggv´ennyel rendelkezik, amely pr´ımeket gener´ al, A k¨ ovetkez˝o f¨ uggv´eny, amelynek h´arom alakja is haszn´alhat´ o, egy l hossz´ us´ ag´ u Sophie–Germain pr´ımet gener´al, ahol annak a val´osz´ın˝ us´ege, hogy sem a q, sem a 2·q +1 sz´am nem lesz ¨osszetett kisebb, mint 2−err : void GenGermainPrime(ZZ& q, long l, long err = 80); ZZ GenGermainPrime_ZZ(long l, long err = 80); long GenGermainPrime_long(long l, long err = 80); Biztons´ agos pr´ımek gener´ al´ asa id˝oig´enyes feladat, ahogy ez a m´er´esi eredm´enyekb˝ ol is leolvashat´ o, de sz´ amos rendszer biztons´aga ´erdek´eben ez fontos k¨ovetelm´eny. A kulcsgener´ al´ as id˝oig´eny´et m´eg az is lass´ıtja, hogy a titkos´ıt´as sor´ an sz¨ uks´eg van k´et gener´ator elemre. A Z∗p ciklikus csoportban a gener´ator elem meghat´ aroz´ as´ at a k¨ovetkez˝o tulajdons´agot figyelembe v´eve v´egezt¨ uk: egy g 6= ±1 (mod p) sz´ am akkor ´es csakis akkor lesz gener´ator elem (mod p) szerint, ha fenn´ all a k¨ovetkez˝o egyenl˝os´eg ([61], [59]): g q 6= 1 (mod p). 91
A k´et gener´ator elem meghat´ aroz´ asa ´erdek´eben el kell teh´at v´egezni egy-egy modul´aris hatv´ anyoz´ ast. A rendszerre vonatkoz´ o m´er´esi eredm´enyek a 7.1. t´abl´azatban tal´alhat´oak, ahol a q nagys´ agrendje a kulcsm´eret oszlopban felt¨ untetett ´ert´ek. A rendszer implement´ al´ asa sor´ an az NTL k¨onyvt´arcsomagot ´es B. Gladman SHA-256 hash f¨ uggv´eny implement´aci´oj´at haszn´altuk fel. A ny´ılt sz¨oveg egy v´eletlenszer˝ uen gener´alt p-n´el kisebb pozit´ıv eg´esz sz´am lesz. Az RSA–OAEP-rendszer Az RSA–OAEP implement´ aci´ o, a standardk´ent elismert Crypto++ k¨onyvt´arcsomag r´esze. A kulcsgener´ al´ as egy n = p · q ¨osszetett sz´amot hat´aroz meg, ahol p, q nem lesz biztons´ agos-pr´ım, ´eppen ez´ert enn´el az implement´aci´on´ al a kulcsgener´ al´ as ideje j´ oval kisebb nagys´agrend˝ u. A rendszerre vonatkoz´ o m´er´esi eredm´enyek a 7.2. t´abl´azatb´ol olvashat´oak le. A ny´ılt sz¨oveg egy v´eletlenszer˝ uen gener´alt, 256 bites pozit´ıv eg´esz sz´am lesz. Az SAEP rendszer A kulcsgener´al´as egy n = p · q ¨ osszetett sz´amot hat´aroz meg, ahol p, q nem lesz biztons´agos pr´ım. A rendszer azonban el˝o´ırja, hogy a p, q pr´ımekre fenn´alljon: p ≡ q ≡ 3 (mod 4), illetve, hogy az n = p · q ¨osszetett sz´am legfels˝obb hely´ert´ek˝ u k´et bitje 1, illetve 0 legyen. Ezek term´eszetesen lass´ıtj´ak a kulcsgener´al´as id˝ oig´eny´et. A rendszer implement´ al´ asa sor´ an az NTL k¨onyvt´arcsomagot ´es B. Gladman SHA-384 hash f¨ uggv´eny implement´aci´oj´at haszn´altuk fel. A rendszerre vonatkoz´ o m´er´esi eredm´enyek a 7.3. t´abl´azatban tal´alhat´oak. A ny´ılt sz¨oveg egy v´eletlenszer˝ uen gener´alt, 256 bites pozit´ıv, eg´esz sz´am lesz. A v´eletlenszer˝ uen gener´ alt r ´ert´ek (ahol az r szerep´et a 5.2. fejezetben megadott SAEP rendszern´el specifik´altuk) nagys´agrendje aszerint fog v´altozni, hogy mekkora k ´ert´ekkel (kulcs m´erettel) dolgozik az algoritmus. Fenn´ all, hogy r = k − 384, ahol a k a 7.3. t´abl´azatban megadott kulcsm´eret.
92
A HKS rendszer A kulcsgener´ al´ as egy N = P · Q ¨ osszetett sz´amot hat´aroz meg, ahol P, Q biztons´agos pr´ımek lesznek, azaz fenn´all: P = 2 · p + 1, Q = 2 · q + 1 ´es p, q is pr´ımsz´ amok. A rendszer azt is el˝ o´ırja, hogy a P, Q pr´ımekre fenn´alljon: P ≡ Q ≡ 3 (mod 4). A kulcsgener´ al´ as id˝ oig´eny´et lass´ıtja az is, hogy a P, Q ´ert´ekek mellett tov´abbi k´et ´ert´eket kell meghat´ arozni, az X-et ´es az α-t, ahol az X eset´eben sz¨ uks´eges egy modul´ aris hatv´ anyoz´ as elv´egz´ese. A rendszer implement´ al´ asa sor´an az NTL k¨onyvt´arcsomagot ´es B. Gladman SHA-256 hash f¨ uggv´eny implement´aci´oj´at haszn´altuk fel. A rendszerre vonatkoz´ o m´er´esi eredm´enyek a 7.4. t´abl´azatban tal´alhat´oak. A kulcsbe´ agyaz´ asi algoritmus egy 256 bites hossz´ us´ag´ u kulcsot fog meghat´arozni. Az u ´j rendszer A kulcsgener´ al´ as egy N = P · Q ¨ osszetett sz´amot hat´aroz meg, ahol P, Q biztons´agos pr´ımek lesznek, azaz fenn´all: P = 2 · p + 1, Q = 2 · q + 1 ´es p, q is pr´ımsz´ amok. A rendszer azt is el˝ o´ırja, hogy a P, Q pr´ımekre fenn´alljon: P ≡ Q ≡ 3 (mod 4). A kulcsgener´ al´ as id˝ oig´eny´et, az N ´ert´ek´enek a meghat´aroz´asa mellett az is befoly´ asolja, hogy sz¨ uks´eges tov´abbi k´et ´ert´ek meghat´aroz´asa: az X ´es az α el˝ o´ all´ıt´ asa. Az X eset´eben sz¨ uks´eges egy modul´aris hatv´anyoz´as elv´egz´ese, kisebb hatv´ anykitev˝ ovel, mint a HKS rendszer eset´eben. A titkos´ıt´ as ´es visszafejt´es id˝ oig´eny´et a modul´aris hatv´anyoz´ashoz sz¨ uks´eges exponens nagys´ agrendje hat´arozza meg, ami az u ´j rendszer eset´eben kisebb nagys´ agrend˝ u lesz, mint a HKS rendszer eset´eben. Az u ´j rendszer implement´ al´ asa sor´an az NTL k¨onyvt´arcsomagot ´es B. Gladman SHA-256 hash f¨ uggv´eny implement´aci´oj´at haszn´altuk fel. A rendszerre vonatkoz´ o m´er´esi eredm´enyek a 7.5. t´abl´azatban tal´alhat´oak. A kulcsbe´ agyaz´ asi algoritmus egy 256 bites hossz´ us´ag´ u kulcsot fog meghat´arozni. A 7.1, 7.2, 7.3, 7.4, 7.5. t´ abl´ azatokban tal´alhat´o m´er´esi eredm´enyek 20 bemeneti adat ´ atlag´ anak az ´ert´ek´et mutatj´ak, ahol a kulcsm´eret bitben, a kulcsgener´ al´ as, a titkos´ıt´ as ´es a visszafejt´es ideje m´asodpercben ker¨ ult meghat´aroz´ asra. 93
7.1. t´abl´ azat. A Cramer–Shoup-rendszer m´er´esi eredm´enyei kulcsm´eret kulcsgener´ al´ as titkos´ıt´as visszafejt´es 256 0.21 0 0.01 512 4.30 0.04 0.05 1024 50.47 0.24 0.26
7.2. t´abl´ azat. Az RSA–OAEP-rendszer m´er´esi eredm´enyei kulcsm´eret kulcsgener´ al´ as titkos´ıt´as visszafejt´es 512 0.02 0 0 1024 0.07 0 0 2048 0.31 0 0.01 4096 2.55 0 0.04
7.3. t´ abl´ azat. Az SAEP-rendszer m´er´esi eredm´enyei kulcsm´eret kulcsgener´ al´ as titkos´ıt´as visszafejt´es 512 0.15 0 0 1024 2.07 0 0.01 2048 11.30 0 0.09
7.4. t´ abl´ azat. A HKS-rendszer m´er´esi eredm´enyei kulcsm´eret kulcsgener´ al´ as titkos´ıt´as visszafejt´es 512 0.40 0.04 0.02 1024 8.07 0.11 0.11 2048 131.33 0.68 0.53
7.5. t´abl´azat. Az u ´j CCA-biztons´ ag´ u rendszer m´er´esi eredm´enyei kulcsm´eret kulcsgener´ al´ as titkos´ıt´as visszafejt´es 512 0.39 0.02 0.01 1024 8.13 0.09 0.06 2048 125.59 0.66 0.44 94
8. fejezet
¨ Osszefoglal´ o Jelen ´ertekez´es a titkos´ıt´ o rendszerek v´alasztott ny´ılt sz¨oveg alap´ u t´amad´assal (chosen plaintext attack), illetve v´alasztott rejtjelezett sz¨oveg alap´ u t´ amad´ assal (chosen ciphertext attack) szembeni biztons´ag´at t´argyalta. A v´alasztott t´ema aktualit´ as´ at az adja, hogy a l´etez˝o titkos´ıt´o rendszerek ´atalak´ıt´ asa oly m´ odon, hogy azok ellen´alljanak a v´alasztott rejtjelezett sz¨oveg t´ıpus´ u t´ amad´ asnak a jelen kriptogr´afia akt´ıv kutat´asi ter¨ ulet´et k´epezik ([6], [7], [13], [20], [35]). Az ´ertekez´es els˝ o fel´eben megadtuk a t´em´ahoz kapcsol´od´o ´ertelmez´esek ´es t´etelek form´ alis defin´ıci´ oit, ´es mivel a t´argyalt fogalmakhoz nincsen sz´eles k¨orben elfogadott magyar terminol´ogia fokozottan oda figyelt¨ unk ezek prec´ız, magyar megfogalmaz´ as´ ara. Konkr´etan a k¨ovetkez˝o fogalmakkal foglalkoztunk: • a szimmetrikus titkos´ıt´ asi rendszerek matematikai modellj´evel, a passz´ıv ´es akt´ıv t´ amad´ oval szembeni biztons´ag fogalmakkal, ahol az akt´ıv t´ amad´ oval szembeni biztons´ag eset´eben k¨ ul¨onbs´eget tett¨ unk a v´alasztott ny´ılt-sz¨ oveg alap´ u, illetve a v´alasztott rejtjelezett-sz¨oveg alap´ u t´ amad´ asok k¨ oz¨ ott, • a hash f¨ uggv´enyekkel ´es u ¨zenethiteles´ıt˝o k´odokkal szembeni k¨ovetelm´enyekkel, kihangs´ ulyozva az univerz´alis hash f¨ uggv´enyek (universal hash function), a c´el u ¨tk¨oz´esmentes hash f¨ uggv´enyek (target 95
collision-resistant hash function) ´es az u ¨tk¨oz´esmentes hash f¨ uggv´enyek (collision-resistant hash function) k¨ oz¨otti k¨ ul¨onbs´egeket, • az aszimmetrikus titkos´ıt´ o rendszerek matematikai modellj´evel, a v´alasztott ny´ılt-sz¨ oveg alap´ u, illetve a v´alasztott rejtjelezett-sz¨oveg alap´ u t´amad´ ashoz kapcsol´ od´ o biztons´ag´ertelmez´esekkel, • a hibrid rendszerek matematikai modellj´evel ´es a v´alasztott rejtjelezett-sz¨ oveg alap´ u t´ amad´ashoz kapcsol´od´o biztons´ag ´ertelmez´es´evel. Az ´ertekez´es tov´ abbi r´esz´eben azokat a matematikai probl´em´akat t´argyaltuk amelyek alapj´ aul szolg´ alnak a mai biztons´agos kriptorendszereknek, ´es amelyeket a szakirodalomban felt´etelez´esek form´aj´aban fogalmaztak meg. Jelen ´ertekez´esben a k¨ ovetkez˝ o felt´etelez´esek form´alis defin´ıci´oit adtuk meg ([18], [24], [36]): • • • • •
faktoriz´aci´ os felt´etelez´es, RSA felt´etelez´es, kvadratikus marad´ek felt´etelez´es, diszkr´et logaritmus felt´etelez´es, d¨ont´esi Diffie–Hellman-felt´etelez´es.
Ezek ut´an megadtunk egy u ´j kulcsbe´agyaz´asi mechanizmus CPA, illetve CCA-biztons´ ag´ u verzi´ ot. Megjegyezz¨ uk, hogy az u ´j kulcsbe´agyaz´asi mechanizmus alapj´ aul a Rabin-titkos´ıt´ o [54] ´es a Hofheinz ´es t´arsai [35], ´altal szerkesztett rendszerek szolg´ altak. A CCA-biztons´ag´ u kulcsbe´agyaz´asi mechanizmus a [48] cikkben ker¨ ult publik´al´asra. Az ´ertekez´es keret´en bel¨ ul megadtuk az u ´j kulcsbe´agyaz´asi mechanizmus specifik´ aci´ oj´ at, helyess´eg´et, hat´ekonys´ag´at, illetve bizony´ıtottuk a rendszer biztons´ ag´ at. Kit´ert¨ unk m´eg a szakirodalom ´altal sz´amon tartott CCA-biztons´ ag´ u kulcsbe´ agyaz´ asi mechanizmusok specifik´aci´oira, ¨osszehasonl´ıtva ezen rendszereket, hat´ekonys´ag szempontj´ab´ol, az u ´j kulcs be´agyaz´asi mechanizmus hat´ekonys´ ag´ aval. Megadtuk C++ programoz´asi k¨ornyezetben a rendszerek mindegyik´enek implement´aci´oj´at, fut´asi id˝oket m´erve a megfelel˝ o algoritmusok eset´eben. Az implement´ aci´ o k´ odja let¨ olthet˝ o a k¨ovetkez˝o c´ımr˝ol: http://www. ms.sapientia.ro/~mgyongyi/PhD/PhdSource.zip 96
A t´argyalt rendszerek a k¨ ovetkez˝oek voltak, ahol vizsg´altuk az eredeti titkos´ıt´o rendszert, ´es annak CCA-biztons´ag´ u verzi´oj´at: • • • •
az ElGamal- ´es Cramer–Shoup-rendszer ([27], [20]), az RSA- ´es RSA–OAEP-rendszer ([55], [6]), a Rabin- ´es SAEP-rendszer ([54], [14]), a Blum–Goldwasser ´es Hofheinz- ´es t´arsai rendszere ([12], [35]).
Megjegyezz¨ uk, hogy: • A Cramer–Shoup-rendszer biztons´aga a d¨ont´esi Diffie–Hellmanfelt´etelez´esen ´es az alkalmazott hash f¨ uggv´eny u ¨tk¨oz´esmentes tulajdons´ ag´ an alapszik. • Az RSA–OAEP-rendszer biztons´aga az RSA felt´etelez´esen ´es az alkalmazott v´eletlenszer˝ u hash f¨ uggv´eny u ¨tk¨oz´esmentes tulajdons´ag´an alapszik. • Az SAEP-rendszer biztons´ aga a faktoriz´aci´os felt´etelez´esen ´es az alkalmazott v´eletlenszer˝ u hash f¨ uggv´eny u ¨tk¨oz´esmentes tulajdons´ag´an alapszik. • A Hofheinz- ´es t´ arsai kulcsbe´ agyaz´asi mechanizmusa a faktoriz´aci´os felt´etelez´esen ´es az alkalmazott hash f¨ uggv´eny u ¨tk¨oz´esmentes tulajdons´ ag´ an alapszik. • Az u ´j kulcsbe´ agyaz´ asi mechanizmus biztons´aga a faktoriz´aci´os felt´etelez´esen ´es az alkalmazott hash f¨ uggv´eny u ¨tk¨oz´esmentes tulajdons´ ag´ an alapszik. Az u ´j kulcsbe´ agyaz´ asi mechanizmus biztons´ag´at, az u ´jabb szakirodalomban haszn´ alt bizony´ıt´ asi m´ odszer alapj´an adtuk meg, amely szerint defini´alni kell egy k´ıs´erletet, amely egy polinomi´alis idej˝ u, probabilisztikus t´amad´ o ´es a k¨ ornyezete, a kih´ıv´ o k¨oz¨ott j´atsz´odik le. A CCA-biztons´ag a k´ıs´erlet lehets´eges kimeneti ´ert´ekeinek a vizsg´alat´aval bizony´ıthat´o. K¨ovetkeztet´esk´eppen az u ´j kulcsbe´agyaz´asi mechanizmusr´ol elmondhatjuk, hogy biztons´ agos, hat´ekonys´ag szempontj´ab´ol pedig nem marad alul a jelenleg standardk´ent haszn´ alt rendszerekhez k´epest. Fontosnak tartjuk azt is megeml´ıteni, hogy az u ´j kulcsbe´agyaz´asi mechanizmussal sz´eles´ıtett¨ uk a CCA-biztons´ag´ u kulcsbe´agyaz´asi mechanizmusok ter´et. 97
98
9. fejezet
Summary This thesis examines the security of encryption systems, it focuses mainly on two types of attacks on chosen plaintext attack and chosen ciphertext attack. The importance of the chosen topic relies in the fact that transforming encryption systems so as to be secure against chosen ciphertext attack in cryptography is an active research field ([6], [7], [13], [20], [35]). In the first half of the the thesis we give the formal definitions of the concepts used in the dissertation. Namely we introduce the followings: • the mathematical model of symmetric encryption systems, the formal definition of security against passive and active attack where, in the case of active attack, we make a distinction between chosen plaintext attack and chosen ciphertext attack, • the hash functions and message authentication codes and the requirements on them, highlighting the differences between universal hash function, target collision resistant hash function and collision resistant function, • the mathematical model of asymmetric encryption systems, the formal definition of security against chosen plaintext attack and chosen ciphertext attack, • the mathematical model of hybrid encryption systems, the formal definition of security against chosen ciphertext attack. 99
We mention that in most of the protocols asymmetric encryptions are used to generate and interchange the keys of two remote parties. And for the encryption of actual data symmetric encryption technics are used. The newer literature introduces key-encapsulation, respectively the dataencapsulation terms for these. In the next chapter we introduce the mathematical problems that are the basis of many cryptosystems and are known in cryptography as basic assumptions. We give the formal definition of the following basic assumptions ([18], [24], [36]): • • • • •
factorization assumption, RSA assumption, quadratic residuosity assumption, discrete logarithm assumption, decisional Diffie–Hellman-assumption.
Consequently we describe the main result of the dissertation, the CPA and CCA version of a new key encapsulation mechanism. We mention that the mechanism is based on Rabin-encryption [54] and on the system constructed by Hofheinz et al [35]. The new CCA-secure key encapsulation mechanism was published in [48]. Within the framework of the thesis we give a detailed description of the proposed mechanism, we present its soundness and efficiency as well as the proof of security. We present some CCA-secure key encapsulation mechanisms, which are considered important in the recent area of cryptography, and we compare these systems with the new key encapsulation mechanism. We give the C++ implementations of the systems and we measure the running times of the corresponding algorithms. The implementation can be downloaded from the following address: http://www.ms.sapientia.ro/~mgyongyi/PhD/PhdSource.zip The asymmetric encryption systems and the corresponding CCA-secure versions of them implemented are the following: • the ElGamal, and Cramer–Shoup system ([27], [20]), • the RSA and RSA–OAEP system ([55], [6]), • the Rabin and SAEP system ([54], [14]), 100
• the Blum–Goldwasser and HKS system ([10], [35]). We mention the following: • The security of the Cramer–Shoup-cryptosystem relies in the decisional Diffie–Hellman-assumption and the collision-resistant properties of the underlying hash function. • The security of the RSA–OAEP-scheme relies in the RSA assumption and in the security of hash functions maintained as a random oracle. • The security of the SAEP-system depends on the factorization assumption and on the security of hash functions maintained as a random oracle. • The security of the HKS key encapsulation mechanism relies in the factorization assumption and the underlying target collision-resistant hash function. • The security of the new key encapsulation mechanism relies in the factorization assumption and the underlying target collision-resistant hash function. The security proof of the new key encapsulation mechanism given in the thesis is based on the proof technic used in the recent literature. So we define an experiment going on between a probabilistic polynomial time adversary and his environment, called a challenger. The CCA-security can be proved by examining the possible outputs of the experiment. Consequently, the new key encapsulation mechanism is secure and in terms of efficiency does not lag behind the systems accepted as standard. It is important to mention that the new key encapsulation mechanism broadens the space of CCA-secure key encapsulation mechanisms.
101
102
Irodalomjegyz´ek [1] M. Abdalla, M. Bellare, and P. Rogaway. The Oracle Diffie-Hellman Assumptions and an Analysis of DHIES. Topics in Cryptology - CTRSA 2001, LNCS 2020, pages 143–158, 2001. [2] M. Ajtai and C. Dwork. A public-key cryptosystem with wortscase/awerage-case equivalence. In STOC ’97 (El Paso, TX), ACM (electronic), pages 284–293, 1999. [3] A. Bege and Z. K´ asa. Algoritmikus kombinatorika ´es sz´ amelm´elet. Presa Universitar˘ a Clujean˘ a, 2006. [4] M. Bellare, R. Canetti, and H. Krawczyk. Keying hash functions for message authentication. Advances in Cryptology, CRYPTO ’96, 1996. [5] M. Bellare and P. Rogaway. Random oracles are practical: A paradigm for designing efficient protocols. Proceedings of 1st ACM Conference on Computer and Communications Security, pages 62–73, 1993. [6] M. Bellare and P. Rogaway. Optimal Asymmetric Encryption. Advances in Cryptology, EUROCRYPT ’94, pages 92–111, 1994. [7] M. Bellare and P. Rogaway. Introduction to Modern Cryptography. 2005. [8] D.J. Bernstein. The salsa20 family of stream ciphers. http://cr.yp.to/snuffle/salsafamily-20071225.pdf.
103
[9] D. Bleichenbacher. Chosen Ciphertext Attacks Against Protocols Based on the RSA encryption Standard PKCS#1. Advances in Cryptology, Proceedings of CRYPTO ’98, pages 1–12, 1998. [10] L. Blum, M. Blum, and M. Shub. Comparison of two pseudo-random number generators. Advances in Cryptology, Proceedings of CRYPTO ’82, pages 61–78, 1982. [11] M. Blum, P. Feldman, and S. Micali. Proving Security Against Chosen Ciphertext Attacks. Advances in Cryptology, Proceedings of CRYPTO ’88, pages 256–268, 1984. [12] M. Blum and S. Goldwasser. An effcient probabilistic public-key encryption scheme which hides all partial information. Advances in Cryptology, Proceedings of CRYPTO ’84, pages 289–302, 1985. [13] D. Boneh. Twenty Years of attacks on the RSA cryptosystem. Notices of the American Mathematical Society, 46 (2):203–213, 1999. [14] D. Boneh. Simplified OAEP for the RSA and Rabin functions. Lecture Notes in Computer Science, Proceedings of CRYPTO ’01, 213:275–291, 2001. [15] A. B´erczes, J. Foll´ ath, and A. Peth˝o. On a family of collision-free functions. Tatra Mountains Mathematical Publications, 47:1–13, 2010. [16] A. B´erczes, J. K¨ odm¨ on, and A. Peth˝o. A one-way function based on norm form equations. Periodica Mathematica Hungarica, 49:1–13, 2004. [17] J.A. Buchmann. Introduction to cryptography. Springer, 2002. [18] L. Butty´an and T. Vajda. Kriptogr´ afia ´es alkalmaz´ asai. Typotex, 2004. [19] D. Coppersmith. Small Solutions to Polynomial Equations, and Low Exponent RSA Vulnerabilities. Journal of Cryptology, 10 (4):233–260, 1997.
104
[20] R. Cramer and V. Shoup. A practical practical public-key cryptosystem provably secure against adaptive chosen ciphertext attack. Advaces in Cryptology, Proceedings of CRYPTO ’98, 33:13–25, 1998. [21] R. Cramer and V. Shoup. Design and analysis of practical public-key encryption schemes secure against adaptive chosen ciphertext attack. SIAM Journal of Computing, pages 167–226, 2003. [22] J. Daemen and V. Rijmen. The Block Cipher Rijndael. Proceedings of the The International Conference on Smart Card Research and Applications, pages 277–284, 2000. [23] W. Dai. Crypto++ Library. http://www.cryptopp.com/. [24] H. Delfs and H. Knebl. Introduction to cryptography. Principles and Applications. Springer, 2002. [25] W. Diffie and M.E. Hellman. New Directions in Cryptography. IEEE Transactions on Information Theory, IT–22:644–654, 1976. [26] Y. Dodis and J. Katz. Chosen-Ciphertext Security of Multiple Encryption. 3378:188–209, 2005. [27] T. ElGamal. A Public-Key Cryptosystem and a Signatures Scheme Based on Discrete Logarithms. IEEE Transactions on Information Theory, IT–31:469–472, 1985. [28] S.R. Fluhrer, I. Mantin, and A. Shamir. Weaknesses in the Key Scheduling Algorithm of RC4. Proceeding SAC ’01 Revised Papers from the 8th Annual International Workshop on Selected Areas in Cryptography, pages 1–24, 2001. [29] J. Foll´ ath, A. Huszti, and A. Peth˝o. Informatikai biztons´ ag ´es kriptogr´ afia. 2010. http://www.inf.unideb.hu/∼pethoe/Jegyzet PA 20110508.pdf. [30] R. Freud and E. Gyarmati. Sz´ amelm´elet. Nemzeti Tank¨onyvkiad´o, 2000. 105
[31] B. Gladman. SHA1, SHA2, HMAC and Key Derivation in C. http://gladman.plushost.co.uk/oldsite/cryptography technology/sha. [32] S. Goldwasser and S. Micali. Probabilistic encryption. Journal of Computer and System Sciences, 28(2):270–299, 1984. [33] L. Goubin, C. Mauduit, and A. S´ ark¨ ozy. Construction of large families of pseudorandom binary sequences. J. Number Theory, 106:59–69, 2004. [34] J. Hastad. On using RSA with Low Exponent in a Public Key Network. CRYPTO ’85 Advances in Cryptology, pages 403–408, 1985. [35] D. Hofheinz, E. Kiltz, and V. Shoup. Practical Chosen Ciphertext Secure Encryption from Factoring. Journal of Cryptology, Online FirstT M , 2011. [36] J. Katz and Y. Lindell. Introduction to Modern Cryptograhy. Chapman & HallCRC Press, 2008. [37] A. Kerckhoffs. La cryptographie militaire. Journal des sciences militaires, IX:5–38, 1883. [38] N. Koblitz and A. J. Menezes. A survey of public-key cryptosystems. SIAM Review, 46:599–634, 2004. [39] L. Lov´asz. Algoritmusok bonyolults´ aga. Nemzeti Tank¨onyvkiad´o, 2001. [40] A. J. Menezes, P. C. van Oorschot, and S.A. Vanstone. Handbook of applied cryptography. CRC Press, Boca Raton, Florida, 1997. [41] R. C. Merkle. A fast software one-way hash function. Journal of Cryptology, 3:43–48, 1990. [42] R. C. Merkle and M. Hellman. Hiding information and signatures in trapdoor knapsacks. Information Theory, IEEE Transactions, 24 (5):525–530, 1978.
106
[43] S. Micali, C. Rackoff, and B. Sloan. The notion of security for probabilistic cryptosystems. SIAM Journal on Computing, pages 412–426, 1988. [44] Gy. M´ arton. Kriptogr´ afiai alapismeretek. Scientia Kiad´o, 2008. [45] Gy. M´ arton. Nyilv´ anos kulcs´ u kriptorendszerek biztons´ag´ahoz kapcsolod´ o ´ertelmez´esek. Sz´ amokt 2010 konferenciak¨ otet, 20. Nemzetk¨ ozi sz´ am´ıt´ astechnika ´es oktat´ as konferencia, pages 183–187, 2010. [46] Gy. M´ arton. Public-key cryptography in functional programming context. Acta Universitatis Sapientiae, Informatica, 2:99–111, 2010. ¨ [47] Gy. M´ arton. Uzenethiteles´ ıt˝ o k´ odok ´es a CCA t´amad´as. Sz´ amokt 2011 konferenciak¨ otet, 21. Nemzetk¨ ozi sz´ am´ıt´ astechnika ´es oktat´ as konferencia, pages 229–233, 2011. [48] Gy. M´ arton. CCA-secure key-encapsulation mechanism based on the factoring assumption. Tatra Mountains Mathematical Publications, 53:137–146, 2012. [49] Gy. M´ arton. A faktoriz´ aci´ os probl´em´an alapul´o titkos´ıt´o rendszerek biztons´ aga. Sz´ amokt 2012 konferenciak¨ otet, 22. Nemzetk¨ ozi sz´ am´ıt´ astechnika ´es oktat´ as konferencia, pages 314–315, 2012. [50] M. Naor and M. Yung. Public-key cryptosystems provably secure against chosen ciphertext attack. Proceedings of the 22nd Annual ACM Symposium on Theory of Computing, pages 427–437, 1990. [51] A. M. Odlyzko. Discrete logarithms: The past and the future. Designs, Codes, and Cryptography, 19:129–145, 2000. [52] B. Preneel. Analysis and Design of Cryptographic Hash Function. PhD thesis, Katholieke Universiteit Leuven. [53] B. Preneel. The state of cryptographic hash functions. Lecture Notes in Computer Science, 1561:158–182, 1999.
107
[54] M. O. Rabin. Digitalized Signatures and Public-Key Functions as Intractable as Factorization. MIT Laboratory for Computer Science LCS/TR-212, 1979. [55] R.L. Rivest, A. Shamir, and L.M. Adleman. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21 (2):120–126, 1978. [56] L. R´onyai, G. Ivanyos, and R. Szab´ o. Algoritmusok. Typotex, 2004. [57] A. Shamir. A polynomial-time algorithm for breaking the basic Merkle - Hellman cryptosystem. Information Theory, IEEE Transactions, 30 (5):699–704, 1984. [58] V. Shoup. A library for doing number theory. http://www.shoup.net/ntl/. [59] V. Shoup. Searching for primitive roots in finite fields. Mathematics of Computation, 58:369–380, 1992. [60] W. Stallings. Cryptography and Network Security. Principles and Practice. Prentice Hall, 2010. [61] D. R. Stinson. Cryptography. Theory and Practice. HallCRC Press, 2006.
Chapman &
[62] U.V. Vazirani and V. Vazirani. Efficient and secure pseudo-random number generation. Advances in cryptology, Proceedings of CRYPTO 84, pages 193–202, 1985. [63] G.S. Vernam. Cipher printing telegraph systems for secret wire and radio telegraphic communications. Journal of the IEEE, 55:109–115, 1926. [64] V. Vill´anyi. RSA signatures schemes with sublimal-free public-key. Tatra Mountains Mathematical Publications, 41:19–32, 2008. [65] M.J. Wiener. Cryptanalysis of short RSA secret exponents. Information Theory, IEEE Transactions, 36 (3):553–558, 1990. 108
[66] M.J. Wiener. Safe prime generation with a combined sieve. Crypto Eprint Archive entry 2003: 186, 2003.
109
110
A f¨ uggel´ek
Refer´alt nemzetk¨ ozi foly´ oiratban megjelent cikkek ´ 1. MARTON Gy¨ ongyv´er: Public-key cryptography in functional programming context, Acta Universitatis Sapientiae Informatica, vol 2. Nr. 1, 2010, 99-112, ISSN 1844-6086 [Zbl 1197.68043] ´ ´ ´ ´ 2. KATAI Zolt´ an, KOVACS Lehel Istv´an, KASA Zolt´an, MARTON Gy¨ongyv´er, FOGARASI Kinga and FOGARASI Ferenc: Cultivating algorithmic thinking: an important issue for both technical and HUMAN sciences, Teaching Mathematics and Computer Science, 2011, 9/1. [Zbl MathEduc 2012a.00772] ´ 3. MARTON Gy¨ ongyv´er: CCA-secure key-encapsulation mechanism based on factoring assumption, Tatra Mountains Mathematical Publications, vol 53, 2012, 137–146, ISSN 1210-3195 [Zbl 06135378]
111
112
B f¨ uggel´ek
Lektor´alt egyetemi jegyzet ´ 1. MARTON Gy¨ ongyv´er: Fundamentals of cryptography (in Hungarian), Sapientia-EMTE, Scientia, Cluj-Napoca, 2008, ISBN 978-9731970-00-4
113
114
C f¨ uggel´ek
Tudom´anyos konferencia k¨ otetben megjelent cikkek ´ 1. MARTON Gy¨ ongyv´er, The security of electronic voting, Proceedings of Sz´ amokt 2007, 17th International Conference on Computers and Education, Oradea (Nagyv´ arad), Romania, 2007, ISSN 1842-4546. ´ 2. MARTON Gy¨ ongyv´er, Recursion, dynamic programming, functional programming, Proceedings of Sz´amokt 2008, 18th International Conference on Computers and Education, Sumuleu Ciuc (Cs´ıksomly´o), Romania, 2008, ISSN 1842-4546. ´ 3. MARTON Gy¨ ongyv´er, Methods and tools for teaching cryptography, Proceedings of Infodidact 2009, 2th Methodological Conference on Informatics, Szombathely, Hungary, 2009. ´ 4. MARTON Gy¨ ongyv´er, Eligible problems in cryptography, Proceedings of Sz´ amokt 2009, 19th International Conference on Computers and Education, Tg. Mures (Marosv´as´arhely), Romania, 2009, ISSN 1842-4546.
115
´ 5. MARTON Gy¨ ongyv´er, Definitions related to the security of publickey cryptosystems, Proceedings of Sz´amokt 2010, 20th International Conference on Computers and Education, Satu-Mare (Szatm´arn´emeti), Romania, 2010, ISSN 1842-4546. ´ 6. MARTON Gy¨ ongyv´er, Message authentication codes and CCAattack, Proceedings of Sz´ amokt 2011, 21th International Conference on Computers and Education, Cluj-Napoca (Kolozsv´ar), Romania, 2011, ISSN 1842-4546. ´ 7. MARTON Gy¨ ongyv´er, Security of Encryption Systems based o Factoring Assumptions, Proceedings of Sz´amokt 2012, 22th International Conference on Computers and Education, Alba-Julia (Gyulafeh´erv´ar), Romania, 2012, ISSN 1842-4546
116
D f¨ uggel´ek
Tudom´anyos konferenci´akon elhangzott el˝ oad´asok ´ 1. MARTON Gy¨ ongyv´er: Functional programming and cryptography, ”The day of science in Transylvania” conference, Miercurea Ciuc, Romania, 2006. ´ 2. MARTON Gy¨ ongyv´er: Experience in teaching functional programming, ”MINICONF” conference, Tg-Mures, Romania, 2007. ´ 3. MARTON Gy¨ ongyv´er: The role of functional programming in cryptography, Central European Functional Programming School, Cluj Napoca, Romania, 2007. ˝ ´ 4. GYORFI Eugen, MARTON Gy¨ongyv´er: Algebra of the 2D and 3D Cutting/Packing patterns, 6th ESICUP international conference, Valencia, Spain, 2009. ´ 5. MARTON Gy¨ ongyv´er: Cryptography based on problems of graph theory, 1st ”Sapientia MatInfo” International Conference, Tg.Mures, Romania, 2009.
117
´ 6. MARTON Gy¨ ongyv´er: Technics used in cryptosystems to achieve CCA-security, 2nd ”Sapientia MatInfo” international conference, Tg.Mures, Romania, 2011. ´ 7. MARTON Gy¨ ongyv´er: Remarks on Blum-Goldwasser public-key encryption system, 11th Central European Conference on Cryptology, Debrecen, Hungary, 2011. ´ 8. MARTON Gy¨ ongyv´er: Chosen ciphertext security of public-key encryption systems, 9th Joint Conference on Mathematics and Computer Science, Si´ ofok, Hungary, 2012. ´ 9. MARTON Gy¨ ongyv´er: CCA-secure key-encapsulation mechanism based on the factoring assumption, 12th Central European Conference on Cryptology - TatraCrypt, Smolenice, Slovakia, 2012.
118
E f¨ uggel´ek
K¨ osz¨ onetnyilv´an´ıt´asok Ez´ uton szeretn´em megk¨ osz¨ onni mindazon szem´elyeknek a seg´ıts´eg´et, akik k¨ozvetlen¨ ul vagy k¨ ozvetett m´odon hozz´aj´arultak PhD ´ertekez´esem elk´esz´ıt´es´ehez. ´ K¨osz¨on¨om Dr. Peth˝ o Attila Tan´ ar Urnak, hogy t´emavezet˝om volt, hogy sz´amos alkalommal seg´ıtette tudom´anyos munk´amat u ´gy szakmai szigor´ us´aggal, mint erk¨ olcsi ´es anyagi t´amogat´assal. K¨osz¨on¨om a Sapientia Egyetem vezet˝os´eg´enek ´es a Matematika-Informatika Tansz´ek tan´ arainak azt a kitart´ o bizalmat mellyel az elm´ ult ´evekben, mint koll´eg´ak t´ amogatt´ ak tudom´ anyos tev´ekenys´egemet. K¨osz¨on¨om a Debreceni Egyetemnek, hogy biztos´ıtotta sz´amomra a tand´ıjmentess´eget a Doktori Iskola levelez˝o programj´anak keret´en bel¨ ul. K¨osz¨on¨om a Kutat´ asi Programok Int´ezet´enek (Kolozsv´ar) azon anyagi ¨ ond´ıjprogram keret´en bel¨ t´amogat´ast, amelyet a Sapientia Doktori Oszt¨ ul ny´ ujtott sz´ amomra. K¨osz¨on¨om csal´ adomnak azt a felel˝ oss´egteljes hozz´a´all´ast mellyel seg´ıtett´ek ezen ´ertekez´es elk´esz¨ ul´es´et. 119