Információs társadalom alapismeretek Szabó Péter Gábor Titkosítás és számítástechnika Titkosítás alapfogalmai A Colossus
Kriptográfia A rejtjelezés két fı lépésbıl áll: 1) az üzenet titkosítása (kódolás) 2) a titkos üzenet megfejtése (dekódolás). A legtöbb titkosítási eljárás korábban olyan volt, hogy aki tudta, hogy az 1)-et hogyan kell végrehajtani az egyben azt is tudja, hogy a másodikat hogyan kell csinálni, így a kódolás módját szigorúan titokban kellett tartani. Ha az kiderül, más egyszerően csak megfordítja az eljárást és akkor megfejti vele az üzenetet. 2
Nyilvános kulcsú titkosírás Az 1970-es évek közepén R. Merkle, W. Diffie és M. Hellman arra jöttek rá, hogy az elıbbi érvelés nem egészen helyes. Gyenge pontja: az egyszerően. Tegyük fel, hogy olyan a titkosító eljárás, hogy a megfordítását nagyon nehéz visszacsinálni (vannak ilyen dolgok az életben: pl. keménytojásfızés). A titkosító eljárást ilyenkor nyugodtan nyilvánosságra lehet hozni. 3
Csapóajtófüggvény Legyen U a titkos üzenet. A kódolás ebbıl egy f(u) titkos üzenetet állít elı. Az üzenet dekódolása azt jelenti, hogy keresünk egy olyan inverz függvényt, amelyre f f-et csapóajtófüggvénynek nevezzük, ha f könnyen számolható, de az inverze csak nagyon nehezen (gyakorlati szempontból egyáltalán nem). 1 f 1 ( f ( U )) = U. 4
Csapóajtófüggvény A csapóajtófüggvény az elıbbi formájában még nem hasznos, mivel a dekódolónak is így éppen olyan nehéz a megfejtése, mint bárki másnak. Ezért módosítunk egy kicsit a definíción. Legyen f olyan, hogy egyetlen titokban tartott többletinformáció segítségével már az inverz is könnyen számolható legyen. Ezt az információt persze nem szabad senkinek kiadni, csak annak aki elolvashatja az üzenetet. 5
Az RSA 150-200 jegyő számok prímtényezıre való felbontása most még nagyon nehéz feladat. Ha összeszorzunk két 100 jegyő prímet, és csupán a szorzat értékét hozzuk nyilvánosságra, akkor annak a tudásnak, hogy a szorzat milyen prímtényezıkbıl áll, a földkerekségen csak mi leszünk az egyetlen birtokosai (hacsak a titkunkat el nem áruljuk valakinek). 6
Az RSA Tegyük fel, hogy a takarítónı tévedésbıl kidobta a p és q számokat, de a pq szorzat megmaradt. Hogyan nyerhetjük vissza a tényezıket? Csakis a matematika vereségeként érzékelhetjük, hogy ennek legreményteljesebb módja a szeméttelep átguberálása és memohipnotikus technikák alkalmazása. Ifj. Hendrik W. Lenstra 7
Az RSA módszer lényege Választunk két nagy (kb. 150-200 jegyő) prímszámot: p és q. Kiszámoljuk p és q szorzatát, legyen ez n, valamint a (p-1)(q-1) szorzatot is. Keressünk egy olyan e számot, amely relatív prím a (p-1)(q-1)-hez. Számítsuk ki az e-nek a (p-1)(q-1) számra vonatkozó f inverzét, vagyis amelyre teljesül: ef 1(mod ( p 1)( q 1)). 8
Az RSA módszer lényege Titokban tartjuk az f értékét. (Természetesen p-t és q-t is de azokat késıbb közvetlenül nem használjuk, így akár el is felejthetjük ıket.) Nyilvánosságra hozzuk: az n és e értékét. 9
Mit tesz az, aki titkos üzenetet akar küldeni nekünk? Adott a P üzenet, ezt kell titkosítani. Elıször is átalakítja egy számmá. Pl. P-t 26-os számrendszerbeli számként kezeli (az angol ábécét használva), vagy egyszerő behelyettesítést használ: 01= A, 02= B, 26= Z. (00=helyköz) P-t ezután n-nél legalább 1 jeggyel rövidebb blokkokra darabolja: p p,..., 1, 2 p k 10
Az RSA módszer lényege e e e Kiszámolja a p1, p2, K, pk (mod n) maradékokat. Ezek lesznek az elküldendı c, c, 1 2 K, c k üzenetblokkok. Mindegyikre teljesül, hogy n-nél kisebb szám és e p1 c1 ( mod n) e p c ( mod n) Tehát a rejtjeles üzenet a M p 2 e k c 2 k ( mod n) c, c, 2 K, c 1 k. 11
Hogyan olvassuk el az üzenetet? Minden c, c, 1 2 K, c k üzenetblokkra kiszámoljuk annak f kitevıjő hatványának n-nel vett osztási maradékát. (f-et csak mi ismerjük.) c c M c f 1 f 2 f k p p p 1 2 k ( mod n) ( mod n) ( mod n) Vegyük észre, hogy a dekódolás egyértelmő. 12
Hogyan lehet feltörni az RSA-t? (Legalábbis mit kellene tudnunk ehhez?) Világos, hogy f ismeretében bárki megfejtheti az üzenetet. De ha f titkos, ki lehet-e találni? Emlékeztetıül: ef 1(mod ( p 1)( q 1)). Ha p-t és q-t tudnánk, akkor csak a fenti kongruenciát kellene megoldani és megvan az f. Csakhogy ha p és q nagy prímszámok, akkor n faktorizálása még számítógéppel is reménytelen, legalábbis nem ismert olyan algoritmus amivel ezt a feladatot hatékonyan meg lehet oldani. 13
Kérdezhetné valaki Nekem igazából nem a p-re és a q-ra, hanem a (p-1)(q-1) szorzatra van szükségem. Mi van akkor ha ezt a szorzatot esetleg matematikailag úgy is meg lehet határozni, hogy p és q továbbra is ismeretlen? Azonban (p-1)(q-1) kiszámolása valamint p és q meghatározása egyenértékő probléma pq = n p + q = pq ( p 1)( q 1) + 1 14
Egy további kérdés lehetne Mi van akkor ha f nemcsak így számolható? ef 1(mod ( p 1)( q 1)). Ki tudja??? Mindenesetre ma úgy sejtik, hogy az n faktorizációja és az RSA feltörése ekvivalensek abban az értelemben, hogy ha az egyiket meg tudnánk hatékonyan csinálni, akkor a másikat is. 15
Az RSA a gyakorlatban A gyakorlatban az RSA-t a számolási idı miatt általában nem maguknak az üzeneteknek a továbbítására használják. Helyette az üzeneteket valamilyen klasszikus módszer szerint rejtjelezik, de gyakran változtatják a kulcsot. Az RSA szerepe az új kulcs biztonságos elküldésében van. 16
Az RSA feltörése A kód felfedezıi a Scientific American lapban 1977-ben kitőzték az alábbi feladatot és 100$ jutalmat ajánlottak fel a megoldónak. A rejtjelezett üzenet: C= 9686 9613 7546 2206 1477 1409 2225 4355 8829 0575 9991 1245 7431 9874 6951 2093 0816 2982 2514 5708 3569 3147 6622 8839 8962 8013 3919 9055 1829 9451 5781 5154 A nyilvánosságra hozott kitevı: e=9007. 17
Az RSA feltörése A feltörés az alábbi 129 jegyő n szám faktorizálásával történt: n = 114381625757888867669235779976146612010218296721242362 562561842935706935245733897830597123563958705058989075 147599290026879543541 n = 34905295108476509491478496199038981334177646384933878439908 20577 32769132993266709549961988190834461413177642967992942539798 288533 18
Az RSA feltörése Az így meghatározott titkos kitevı: f = 10669861436857802444286877132892015478070990663393786280 1226224496 631063125911774470873340168597462306553968544513 27710 9053606095 A hatványozás után a rejtjelezett üzenet: P = 20080500130107090300231518041900011805001917210501130919 0800151919090618010705 00 =szóköz, 01=A, 02=B,, 26=Z 19
Az RSA feltörése A megfejtés THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE A VARÁZSSZÓ A KÉNYESGYOMRÚ HALÁSZSAS 20
1. Szorgalmi feladat Nyilvános kódoló kulcsaink: n =19177 e = 6353 A következı üzenetet kapjuk: 10571 6069 13022 2854 16022 Fejtsük meg az üzenetet a titokban tartott f=17 dekódoló kulcs segítségével. 21
2. Szorgalmi feladat A következı üzenetet egy n =13843 e = 8165 nyilvános kulcsokkal rendelkezı RSAfelhasználónak küldték. Törjük fel a kódot! 9297 6932 5968 3966 216 2883 9247 13194 13461 5652 3882 5255 8905 22
Enigma 23
Lorenz SZ40 24
Colossus 25
Irodalomjegyzék Megyesi László, Bevezetés a számelméletbe, Polygon, Szeged,1997. Megyesi Zoltán, Titkosírások, Szalay Könyvkiadó és Kereskedıház Kft., 1999. Révay Zoltán, Titkosírások. Fejezetek a rejtjelezés történetébıl, Lazi Könyvkiadó, Szeged, 2001. Simon Singh, Kódkönyv. A rejtjelezés és a rejtjelfejtés története, Park Könyvkiadó, 2002. Ian Stewart, A matematika problémái, Akadémiai Kiadó, Bp., 1991. 26