A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre. A nyílt kulcsú titkosító algoritmus matematikai alapjait 1976-ban fektette le Ron Rivest, Adi Shamir és Len Adleman. A nevük kezdőbetűi alapján elnevezett RSA algoritmus napjaink egyik leggyakrabban használt adattitkosító eljárása. A szakirodalomban elérhető matematikai alapok felhasználásával magam is elkészítettem a titkosító eljárás ‐ gyakorlatban is jól használható ‐ programját. A kulcsgenerálás algoritmusának pontosabb vizsgálatával sikerült kimutatni, hogy a prímek mellett speciális összetett számok is kiválóan alkalmazhatók kulcsok generálásához, sőt jelentősen csökkenthetik a kulcsok előállításának időtartamát. A dolgozat megmutatja, hogy a Fermat féle prímteszt ‐ annak ellenére, hogy prímek keresésére nem megbízható, mert átbújhatnak rajta összetett számok is ‐ tökéletesen alkalmas megbízható RSA kulcsok generálására. A továbbiakban összefoglaljuk azokat a matematikai tételeket, algoritmusokat, melyek az eljárás elvi alapjait adják.
1. | Az Euler‐Fermat-tétel és az Euler-féle függvény. |
2. | Az diophantoszi egyenlet megoldhatósága és a modális inverz fogalma. |
3. | A rend és a primitív gyök fogalma. |
4. | A kiterjesztett euklideszi algoritmus. |
5. | A kétkulcsos titkosítás alaptétele, kapcsolata a kétkulcsos titkosítással és az elektronikus aláírással. |
6. | Prímek keresése, tesztelése (valószínűségi becslés), ,,Tanúk'' és ,,Cinkosok'' viszonya. |
7. | Carmichael-számok definíciója és tulajdonságai. |
8. | A kétkulcsos titkosítás alaptételének egy fontos általánosítása (CA-tétel). |
9. | Kulcspárgenerálás összetett számokból. |
A cikkben nem bizonyított tételek igazolása megtalálható pl. Freud‐Gyarmati: Számelmélet c. könyvében. A következő mellékletek letölthetők a www.plwsecur.com URL címről. 1. Az a program (PLWSecur.exe), mely a fenti elvek alapján ténylegesen végre is hajtja egy adott fájl vagy mappa titkosítását, illetve annak visszafejtését ‐ ez a program integráltan tartalmazza a kulcsgeneráló modult, de itt a CA tételt még nem alkalmazzuk. 2. Az a különálló kulcsgeneráló modul (KulcsparGen_CA.exe Delphi source kód), mely a CA tételt már alkalmazza. A generált kulcsok természetesen tökéletesen együttműködnek a PLWSecur.exe programmal.
1. Az Euler‐Fermat-tétel és az Euler-féle függvény
Tétel. Ha prím és nem osztható -vel, akkor ‐ (ez a ,,kis'' Fermat-tétel).
Bizonyítás. Az számokat osszuk el -vel és a maradékok legyenek , azaz:
A maradékok között nem lehet két egyenlő, mert ha lenne, akkor osztható lenne -vel, de ez lehetetlen, mert sem , sem nem osztható -vel. A fenti egyenlőségek oldalait összeszorozva , hiszen a jobb oldalon megjelenik a darab különböző maradék szorzataként . Ebből átrendezéssel következik, hogy . Mivel nem osztható -vel, azért osztható -vel, azaz .
Definíció. Legyen az -nél nem nagyobb, nemnegatív, -hez relatív prím számok darabszáma ‐ ez az Euler-féle függvény.
Tétel. Ha és relatív prímek, akkor (Euler tétele ‐ a kis Fermat-tétel Euler-féle általánosítása). A bizonyítás lényegében ugyanaz, mint a kis Fermat-tétel esetében: Legyenek az -hez relatív prím osztási maradékok, és ezek -szorosainak is tekintsük az -nel való osztásnál keletkező maradékait:
Könnyen belátható, hogy az számok az számok egy permutációja. Ehhez elegendő megmutatni, hogy az számok relatív prímek -hez, és nincs közöttük két egyenlő. Ha lenne, akkor is osztható lenne -vel, ami lehetetlen. Ha lenne köztük két egyenlő, akkor osztható lenne -nel, ami szintén lehetetlen, mert és . A fenti kongruenciák szorzatából ‐ a maradékok szorzatával való egyszerűsítés után ‐ következik az állítás. Ha prím, akkor , így belátható, hogy Euler tétele valóban a kis Fermat-tétel általánosítása. Megemlítjük még a függvény néhány ‐ későbbiekben felhasznált ‐ alapvető tulajdonságát:
Tétel. Ha és relatív prímek, akkor . Speciálisan, ha és egymástól különböző prímek, akkor .
Tétel. Tetszőleges és prím esetén .
Bizonyítás. Mivel prím, azért az számok között -vel csak a számok oszthatók, a többi relatív prím -hez. A -vel oszthatók száma , tehát a fenti intervallum -hez relatív prímjeinek száma .
Tétel. Legyen prímtényezős alakja | | Ekkor felírható a következő szorzat alakjában: | |
2. Az diophantoszi egyenlet megoldhatósága és a modális inverz fogalma
Tétel. Legyenek és egész számok. Az diophantoszi egyenletnek akkor és csak akkor van egészekből álló , megoldása, ha és relatív prímek, azaz . Ha és legnagyobb közös osztójára , akkor az egyenlet átírható alakba. Semmilyen , pár nem elégítheti ki az előbbi egyenletet, mert a jobb oldalon álló 1 nem osztható -vel. Legyen . Az általánosság csorbítása nélkül feltehető, hogy és pozitív. Átrendezés után , azaz keresni kell azt az egész számot, amelyre -nak az -val való osztási maradéka 1; megmutatjuk, hogy létezik ilyen szám. A számot szorozzuk meg az számokkal, és képezzük az -val való osztás maradékait:
Belátható, hogy az maradékok a számok egy permutációja, tehát elő kell fordulnia 1-nek is mint osztási maradéknak. Indirekte tegyük fel ugyanis, hogy van köztük két egyenlő, például , ekkor . Mivel , azért nem lehet osztható -val, de akkor ‐ miatt ‐ sem.
1. következmény. Az diophantoszi egyenletnek mindig van megoldása, ha . (Ugyanis, ha és megoldása -nek, akkor és megoldása -nek.)
2. következmény. Az diophantoszi egyenletnek mindig van megoldása. Ez eredetileg Bézout lemmája. A megoldás nem egyértelmű, mert ha és megoldás, akkor és is az. Az számok legnagyobb közös osztóját, illetve az egyenlet egy , megoldását a kiterjesztett euklideszi algoritmussal lehet meghatározni (lásd ott).
Az alakú diophantoszi egyenletek szoros kapcsolatban vannak az alakú kongruenciákkal. Formális okok miatt az kongruencia megoldását tekinthetjük az szám modális multiplikatív inverzének, azaz jelölhetjük így is: . Természetesen ha megoldás, akkor is az ( tetszőleges egész szám lehet).
Tétel. Az kongruenciának akkor és csak akkor van x megoldása, ha . Ha van megoldás, akkor szimmetria okok miatt
Bizonyítás. Tekintsük az diophantoszi egyenletet. Ennek akkor és csak akkor van megoldása, ha . Másrészt, az alakból látszik, hogy az egyenlet éppen azt jelenti, hogy . Következmény. Az Euler‐Fermat-tételt felhasználva, ha , akkor az kongruencia megoldása felírható alakban is. Ez az alak többnyire csak elméleti jelentőségű, mivel konkrét esetekben a modális inverz meghatározásához a kiterjesztett euklideszi algoritmust használjuk; ez eldönti, hogy az feltétel teljesül-e, s ha igen, akkor egyidejűleg megadja az inverzet is.
3. A rend és a primitív gyök fogalma Képezzük egymás utáni (-adik) hatványait . Ha az így képzett számok között megjelenik a 0, akkor minden további szám már 0 marad. Ha nem jelenik meg a 0, akkor előbb-utóbb ciklusba esik, azaz létezik egy legkisebb egész, amelyre lesz. Ekkor a ciklus hossza . (Vegyük észre, hogy ha , akkor 0 nem jelenik meg.) Ha a tetszőlegesen választott és esetében létrejön a fenti típusú ciklus, akkor definíció szerint a ciklus hossza rendje ‐ melynek jelölése (kiejtve ordo ). Könnyen belátható, hogy ha akkor mindig létezik, és az Euler‐Fermat-tétel miatt . Sőt, az is belátható, hogy ha , akkor a ciklikusság miatt osztja -t, speciálisan is mindig fennáll. Ha és , akkor -t primitív gyöknek nevezzük . Ha primitív gyök , akkor a számok maradékai a -hez relatív prím maradékok egy permutációját adják. Most megmutatjuk, hogy a nem csak elégséges, de szükséges feltétel is létezésére, így arra is, hogy primitív gyök legyen . Ennek belátásához csupán azt kell észrevennünk, hogy esetén . Ha létezik , akkor van olyan egész szám, amelyre , így , ezért -nek is teljesülnie kell. Bizonyítás nélkül közöljük a primitív gyök létezésére vonatkozó alábbi tételt: Primitív gyök pontosan (csak) az alakú modulusokra létezik, ahol páratlan prímszám és egész.
4. A kiterjesztett euklideszi algoritmus Két szám legnagyobb közös osztójának meghatározására ‐ nagy számok esetében ‐ a prímtényezős felbontásra alapozott eljárás időben kivárhatatlan. Az , számok legnagyobb közös osztóját (LNKO) a közismert euklideszi algoritmussal lehet hatékonyan meghatározni. Az eljárás kiterjesztésével (veremtechnika alkalmazásával) az egyenlet , megoldását és az kongruenciából az inverzét is gyorsan kiszámíthatjuk. Legyen és két pozitív egész szám, melyekből sorozatos maradékos osztásokkal képezzük a következő nemnegatív egészeket:
Mivel az folyamatosan csökkennek (a páros indexűek monoton csökkenek -tól, míg a páratlan indexűek -től lefelé), ezért az osztás után a maradék 0 lesz. Az értéke , azaz az LNKO. Az, hogy a kiinduló két ( és ) szám közös osztója, következik az algoritmusból, a hátulról induló sorozatos visszahelyettesítésekből. Azt, hogy a kiinduló két ( és ) szám legnagyobb közös osztója a következő módon láthatjuk be: Legyen az és számok egyik közös osztója. Az algoritmusból következik, hogy osztója -nek is, illetve tovább folytatva a gondolatmenetet valamennyi -nek, beleértve -et is. Tehát -et osztja valamennyi közös osztó, ezért a legnagyobb közös osztó. A fenti algoritmus hátulról visszafelé alkalmazva, lehetővé teszi az egyenlet , megoldásainak meghatározását is (ez az algoritmus kiterjesztése). Foglaljuk táblázatba a fenti algoritmus egy-egy sorának számait (, , , ) az alábbiak szerint:
Az , , , oszlopok számait ‐ az -edik sorban ‐ jelöljük -vel.
Vegyük észre, hogy minden sorban az azonosak minden esetén. (Az -edik sort az egységes jelölés végett szúrtuk csak be.) Az diophantoszi egyenlet vizsgálatánál említett 2. következmény (Bézout-lemma) miatt minden sorra igaz, hogy az egyenletnek van , megoldása. Speciálisan az -edik sornál , . Megmutatjuk, hogy az -edik sor , együtthatói származtathatók az -edik sor együtthatóiból, azaz hátulról visszafelé indulva az párból kiszámítható az , pár, azaz meghatározható az diophantoszi egyenlet megoldása. Tegyük fel, hogy az egyenlet , megoldása már ismert. Ugyanezt az összefüggést az -edik sorra alkalmazva . Behelyettesítve a felfelé mutató nyilakkal jelölt egyenlőségeket, valamint felhasználva a sor elemei közötti belső összefüggést:
Az együtthatók egyenlőségéből és , ahonnan átrendezéssel:
vagyis az -edik sor együtthatói kiszámíthatók az -edik sor együtthatóiból, tehát az eljárás végén megkapjuk a keresett , megoldást. Vegyük észre, hogy az algoritmus alkalmazásakor szükségünk van a hányadosokra, melyeket az LNKO meghatározásakor veremben kell elhelyezni. Mivel az kongruencia megoldása ekvivalens az diophantoszi egyenlet megoldásával, a fenti eljárással az modális inverzét is meg tudjuk határozni.
A cikk folytatása a szeptemberi számban lesz olvasható. |
|