| 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 fogalmaKé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 algoritmusKé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ó. | 
 
 
 |