DT
D é n e s T a m á s matematikus TD
független szakértő
e-mail: tdenest@freemail.hu
Piérre Fermat
és a nyilvános
kulcsú rejtjelzés
Szinte hónapra
pontosan 100 évvel Girolamo Cardano
születése után, 1601-ben született meg
Piérre Fermat. Bár Fermat, Cardanohoz hasonlóan sokoldalú tudós volt,
aki nemcsak korának, hanem az egész tudománynak (nem csak a matematikának)
jelentős alakja, mégis nevéhez többnyire csupán a "Fermat sejtés"
tapad. Valószínűleg ez a sejtéshez fűződő különös történetnek köszönhető, amely
szerint Fermatról ránk maradt Diophantosz "Aritmetikájának" egy
1621-ben kiadott példánya, amelyben számos megjegyzést irt a könyv különböző
helyeire. E megjegyzések a Diophantosz által felvázolt problémákkal
kapcsolatosak és igen sok értékes anyagot szolgáltatnak a matematikusoknak,
főleg a számelmélet területéről. Az egyik ilyen megjegyzésben, melyet egy lap margójára irt, Fermat arra utal,
hogy az egyenletnek
nincsenek természetes számokra
zérustól különböző egész megoldásai. A könyv margóján ez olvasható: "Ennek igazán bámulatos bizonyítását
találtam meg, azonban a könyv margója túlságosan keskeny, hogy ide írjam."
Ettől kezdve a
matematikusok és érdeklődő nem matematikusok állandóan igyekeztek a bizonyítást
megtalálni, vagy egy olyan példát keresni, amely megdönti Fermat állítását.
A kételkedők
szerint Fermat nem is bizonyította be ezt a tételt, ezért az 1990-es évek közepéig, amíg a bizonyítást
valóban sikerült megadni, Fermat sejtésnek nevezték. A kételkedők érveit
nagyban alátámasztotta, hogy Fermatnál elég gyakran fordulnak elő téves
matematikai állítások, ilyen például, hogy
"minden alakú szám prím,
ha n
természetes szám", ezeket
nevezzük Fermat számoknak.
A Fermat
sejtés bizonyítási kísérleteire lelkesitőleg hatott, hogy 1908-ban
Wolfskehl német matematikus 100
ezer márkát adott át a Göttingai Tudományos Társaságnak, hogy jutalomként
fizesse ki annak, aki a sejtés bizonyítását megtalálja, vagy téves voltát
bebizonyítja. Több mint 300 éves
szunnyadás után a XX. században több részleges eredményt sikerült elérni elég
nagy, de mégis véges n
értékekre, míg Andrew Wiles amerikai matematikus 1993-ban bejelentette a szenzációt, hogy
sikerült a teljes bizonyítást megtalálnia. Nemsokára kiderült, hogy Wiles
bizonyítása hiányos. Ezt azonban
Richard Taylorral közösen sikerült pótolni 1994-ben, így 1995-ben az
Annals of Mathematics 141.
számában a teljes bizonyítás megjelenhetett. Magyar nyelven is tájékozódhat a
kedves Olvasó Rónyai Lajos
dolgozatából (Matematikai Lapok, új
sorozat 2., 3-4. szám).
Így 1995-óta jogosan beszélhetünk sejtés helyett
nagy Fermat tételről. A "nagy" jelző a "kis"
Fermat tételtől való megkülönböztetésre szolgál, amelyről a következőkben lesz
szó és amelynek "kis" jelzője ellenére alapvető hatása van napjaink
információ titkosítására. Fermat eredetileg a következő tételt mondta ki:
Kis Fermat tétel:
Ha p prímszám és
a nem osztható p-vel, akkor teljesül az (1) kongruencia[1]
(1)
Fermat
bizonyítása azonban ebben az esetben sem maradt fenn. Az első bizonyítás majd
100 évig váratott magára és Leonhard
Eulertől (1707-1783) a XVIII. század
matematikus óriásától származik. Euler egyben a tétel általánosítását is
bebizonyította, így ma Euler-Fermat
tételnek nevezzük, amely így szól:
Euler-Fermat tétel:
Ha egész szám és (a,m)=1,
azaz a és m relatív prímek[2],
akkor
(2)
Hogy ez
valóban a kis Fermat tétel általánosítása, ahhoz a Euler-féle függvény
értelmezéséről kell beszélnünk. jelenti a 0, 1,
2, ..., m-1 számok közül az m-hez
relatív prímek számát.
Például:
Általában igaz
a tétel, hogy ha m=p prímszám, akkor
(3)
Ebből az is
könnyen belátható, hogy ha p
és q különböző prímek,
akkor
(4)
A
prímszámoknak és a számok osztóinak titokzatos szerepet tulajdonítottak az
ókori számmisztikában olyannyira, hogy Püthagorasz és követői, akik e
számmisztika fő hirdetői voltak (i.e. VI-V. század), úgy tartották, hogy "A dolgok természete, lényege: a
szám." De nem csak hirdették,
hanem valóban a természeti és társadalmi jelenségeket mind-mind a számok
csodálatos tulajdonságai "testesítették meg". A pütagoreusok ugyanis
nem a számokat személyesítették meg, hanem a személyes (emberi) tulajdonságokat
"számosították meg".
Tökéletesnek tartottak egy számot, ha az
megegyezett osztói összegével. Tökéletes számok[3]
például a 6=1+2+3 és a 28=1+2+4+7+14
. A pütagoreusok csak néhány tökéletes számot ismertek, így a 496-ról és a 8128-ról is tudták, hogy tökéletes számok. A matematikusok az ókor
óta nem tudják, hogy van-e végtelen sok tökéletes szám.
Az ötödik
tökéletes számot, a 33.550.336-ot a
XV. században találták meg, míg a XVI. század adta a hatodik és hetedik
tökéletes számot, a és a . Látható, hogy a tökéletes számok között, ahogy haladunk
"előre" egyre nagyobb távolságok vannak, így nem meglepő, hogy egyre
nehezebb újabb tökéletes számokat találni. A nyolcadik tökéletes szám
megtalálására a XVIII. századig kellett várni, amikor Leonhard Euler kimutatta,
hogy a is tökéletes szám. A
számítógépek megjelenéséig még négy tökéletes számot sikerült megtalálni a XIX.
században kézi számolással, ezek a , , , tökéletes számok[4].
Modern
számítógépekkel a XX. században már egyre nagyobb tökéletes számokat sikerült
előállítani, például ma már tudjuk, hogy
, , , , , , , is tökéletes számok[5].
De a
pütagoreusok szerint vannak barátságos
számok is. Két szám akkor áll barátságban egymással, ha az egyik osztóinak
összege pontosan a másik számot adja és fordítva. Barátságos számok például
a 220
és 284, ugyanis
220 osztói: 1+2+4+5+10+11+20+22+44+55+110=284
284
osztói: 1+2+4+71+142=220
A barátságos
számok felfedezésének története is sok évszázados történet. Már a régiek
ismerték az 1184 és 1210 barátságos
számpárt, majd Piérre Fermat mutatta ki ugyanezt a 17296 és 18416 számpárról. René Descartes (1596-1650), aki szintén
a matematika egyik óriása volt[6]
fedezte fel a 9363584 és 9437056 barátságos számpárt, majd Euler a XVIII.
században még 61 barátságos számpárt
határozott meg.
A számmisztika
már régen homályba merült, de a harmóniába, a harmonikus szépségbe vetett hit
napjainkig fennmaradt. De fennmaradt az a számtalan örökérvényű gondolat,
tudományos tétel is, amely e misztikus gondolkodás talaján fogant és mégis a
természet mély összefüggéseit írja le. Mint a bemutatott példák is mutatják,
néha olyan mély titkokat sikerült a pütagoreusoknak
"számszerűsíteni", hogy még a mai napig sem tudta az emberiség a
megfejtést megtalálni. Napjaink
kriptográfiája[7] nagy részben
ezekre az évezredes meg nem fejtett titkokra épül.
Igen érdekes
magyar vonatkozásokra derül fény a prímszámokkal és a kis Fermat tétellel
kapcsolatban, Kiss Elemér marosvásárhelyi matematikus és Bolyai kutató
tollából. 1999-ben megjelent könyvében (lásd [8])
egészen új képet kapunk Bolyai Jánosról, eddig ismeretlen dokumentumokra
alapozva. Kiss Elemér könyvéből kiderül, hogy Bolyai János leginkább a
prímszámokkal szeretett foglalkozni, erről így ír Ő maga:
"Az egész számtan sőt az egész tan mezején alig
van szebb és érdekesebb ... s a legnagyobb nyiászok (matematikusok) figyelme és eleje
óta elfoglalt tárgy, mint a főszámok (prímszámok) oly mély homályban rejlő titka."[8]
Bolyai is,
mint a Pütagoreusok óta annyi matematikus, kereste az úgynevezett prímszám
képletet, vagyis olyan formulát, amely közvetlen összefüggést ad meg az n-edik
prímszám értéke és az n
index között. 1855 tájékán még úgy gondolta, hogy sikerült megtalálnia a
titok megfejtését:
"Azt megmutatni, hogy bármely alakú szám prím
mihelyt p prím, ugyanakkor amikor a
-gyel bajlódám, magam is megkísértettem, mert amint irataim
is megmutatják én is abban a sejtelemben voltam, hogy mindig prím, ha p
prím. Ez egy történeti fontosságú felfedezése volna a legelső olyan
függvénynek, mely mindig prímet ad. Azonban ez sem valósul meg, mert
például ..."[9]
Apja (Bolyai
Farkas) ösztönzésére megkísérelte a kis Fermat tétel fordítottját
bebizonyítani, mivel ha ez sikerül, akkor megkapta volna a vágyott
prímszámképletet. A kis Fermat tétel fordítottja azt mondja ki, hogy ha osztható p-vel, akkor p biztosan prímszám. Néhány kísérlet után azonban rádöbbent, hogy a bizonyítás lehetetlen,
mivel a kis Fermat tétel fordítottja általában nem érvényes. Ellenpéldákat
keresve, felfedezte a legkisebb úgynevezett pszeudoprím számot,
a 341-et.
Vannak ugyanis
olyan n összetett számok,
amelyek minden n-hez relatív prím a-ra kielégítik a kis Fermat tételt,
vagyis
(5) ahol n összetett szám és (a,n)=1
Az ilyen n számokat nevezzük Carmichael számoknak,
melyekről csak a XX. század közepén sikerült bebizonyítani, hogy végtelen sok
létezik belőlük.
Az olyan összetett
n számokat, amelyekre az (5)
összefüggés a=2 esetén teljesül,
2-re vonatkozó pszeudoprímeknek, vagy álprímeknek nevezzük.
Az álprímek
történetében Bolyai János fontos szerepet játszott, amely Kiss Elemér kutatásai
nélkül mindmáig ismeretlen maradt volna.
A modern
kriptográfia az 1970-es években újra
"felfedezte" a számelméleti eszközök felhasználásának előnyeit. Az
időpont talán nem véletlen, hiszen ekkorra tehető a globális információs
rendszerek, a globális kommunikáció, az "információ robbanás"
korszakának kezdete, amely óriási kihívást jelentett az információk biztonságos
tárolásával és továbbításával foglalkozóknak.
Íme a
klasszikus titkosítás vázlata:
Titkos
kulcs
Nyílt üzenet[10] Rejtjeles üzenet
Titkosító eljárás
Küldő Fogadó
A Fogadó fél
(ha nem illetéktelen) rendelkezett ugyanazzal a titkos kulccsal és
természetesen a titkosító eljárásnak megfelelő megoldó eljárással, így a
rejtjeles üzenet megoldásának (elolvasásának) vázlata:
Titkos
kulcs
Rejtjeles üzenet Nyílt üzenet
Megoldó eljárás
A klasszikus
titkosítás tehát megfelelő (szigorú) titoktartást és pontos szervezést
igényelt, hiszen a "titkos kulcs" illetéktelen kézbe kerülése,
mindkét irányban végzetes lehetett. Az illetéktelen
küldő képessé vált ugyanis hamis üzenetek küldésére, amely a fogadó oldalán
felismerhetetlen volt, míg az illetéktelenül
a titkos kulcs birtokába jutott fogadó, képes volt a másnak címzett
üzenetet elolvasni. Hétköznapi hasonlattal élve ez olyan, mintha az egy zárral nyitható ajtó kulcsát rosszul dugjuk
el és azt a betörő megtalálja.
Ezen problémák
megakadályozása érdekében a titkos kulcsot rendszeresen változtatták, ami
viszont igen pontos (és titkos!) szervezést igényelt, hiszen erről a
változásról a küldő és fogadó fél "egyszerre" kellett, hogy
értesüljön.
W.S.Jevons
már 1873-ban megjelent könyvében
felvetette (lásd [07])
azt az elvet, hogy vannak bizonyos matematikai műveletek, amelyek elvégzése
nagyon egyszerű (ilyen például az összeadás, vagy a szorzás), de az eredményből
a kiindulási komponensek visszaállítása igen nehéz, sokszor reménytelen.
Illusztrációként bemutatja az azóta róla elnevezett 10 jegyű számot, a Jevons számot (8.616.460.799), amely két
prímszám szorzata, ám a prímtényezők meghatározását (a prímfaktorizációt)
akkor reménytelennek látta[11].
Hogy Jevons ezzel a felvetésével mennyire megelőzte korát, azt mi sem
bizonyítja jobban, mint hogy szinte pontosan
100 év szunnyadás után, az 1970-es évek elején merült fel ismét e
gondolat. Erdős Pál és Surányi János [05]-ben
így fogalmazza meg a problémát:
"Létezhet-e azonban olyan rejtjelzés,
amelyiknél nem lehet kitalálni, hogy hogyan kell azt visszacsinálni ? Első
pillanatban ez valószínűtlennek látszik, mégis az Euler-Fermat tétel, továbbá a
számítógépek rendkívüli teljesítőképessége egy oldalról, a teljesítőképességük
határa a másik oldalról lehetőséget ad erre."
Az világos, hogy
ahhoz, hogy az Euler-Fermat tétel
alkalmazható legyen, az üzenetnek numerikusnak kell lennie, vagyis a betűkből
és egyéb írásjelekből álló szövegeket számokká kell alakítani. Ez azonban
könnyen megtehető a klasszikus helyettesítéses titkositási eljárással, amikor
mindenegyes írásjelnek egy-egy számot feleltetünk meg[12].
Napjaink digitális világában már nem csupán a szöveges üzeneteket, hanem a kép
és hang üzeneteket is számok sorozatává alakítják, így tárolják és továbbítják
a kommunikációs vonalakon, aminek sok más mellett pontosan az az előnye, hogy
jóval biztonságosabb adatvédelem érhető el, mint az úgynevezett analóg
jeleknél.
Ez azt
jelenti, hogy nincs akadálya annak, hogy a továbbiakban üzeneten mindig
számokat értsünk. Így már kézenfekvőbbnek tűnik, hogy a számelmélet
eredményeit, ezen belül az Euler-Fermat
tételt is felhasználjuk a titkosításra. Legyen eljárásunk a következő:
a. Válasszunk
két különböző p, q prímszámot, amelyek
szorzata
(6)
pq=N
b. Ha a
továbbítandó üzenet (mint szám) nagyobb mint
N, akkor bontsuk fel N-nél
kisebb részekre. Egy ilyen rész legyen h. Tehát fennáll, hogy
(7)
c. Legyen
továbbá r és m két pozitív egész szám, amelyekre
(8)
ami pontosan
azt jelenti, hogy
(9)
d. Ekkor
az R(h) rejtjelzés kulcsa legyen legkisebb nemnegativ
maradéka, amely az N-nel való osztáskor keletkezik.
e. Ha az így rejtjelzett
üzenet h’,
akkor a megoldó kulcs M(h’) a legkisebb nemnegativ
maradéka, amely az N-nel való osztáskor keletkezik.
f. Be kell tehát látnunk,
hogy e két kulcs kielégíti az alábbi összefüggést:
(10) R(M(h'))=M(R(h))=h
Nos, a fentiek szerint
igazak az alábbi összefüggések:
(11)
Ha (h,N)=1, akkor az
Euler-Fermat tétel szerint:
(12)
Tehát
(13)
és (7)
szerint a (13) jobb oldala éppen legkisebb nemnegativ
maradéka, azaz ebben az esetben teljesül a
(10) összefüggés.
Vizsgáljuk
most a még lehetséges (h,N)=p
esetet. Ekkor
(14)
ekkor a kis
Fermat tétel alapján
(15)
Szorozzuk be
mindkét oldalt -val:
(16)
Ekkor (14)
folytán most is teljesül:
(17)
Megjegyzések:
- Nyilvánvaló,
hogy a (h,N)=q eset ugyanígy
vezethető le.
- Könnyen
belátható, hogy a kongruencia akkor is fennáll, ha h osztható
N-nel, bár ez a gyakorlatban
soha nem fordul elő.
Beláttuk
tehát, hogy a fenti eljárás kielégíti a
(10) összefüggést, amellyel egy
egészen új elven alapuló titkosításhoz jutottunk. Ezt vették észre az 1970-es évek közepén R.L.Rivest, A.Shamir és L.Adleman az MIT
(Massachusetts Institute of Technology)
munkatársai, majd a részletes kidolgozás után, 1978-ban hozták hozták
nyilvánosságra (lásd [13])
és szabadalmaztatták (lásd [14]). Nevük kezdőbetűi
alapján RSA algoritmusként lett
közismert az egész világon és vált az egyik olyan szoftver és hardver termékké,
amelyből máig a legtöbb példányt használják fel.
Jevons
felvetése tehát 100 évvel később
beteljesedett, Fermat 250 évvel
azelőtti eredményére alapozva. Az RSA
algoritmus valóban a titkosítás egészen új korszakát nyitotta meg, amelyet "nyilvános kulcsú rejtjelzésnek"
hívunk. Miért ?
Mert a cikkünk
elején bemutatott klasszikus titkositási eljárásokkal szemben, itt két kulccsal
dolgozunk, amelyek közül az egyik nyilvánosságra hozható (ez a nyilvános
kulcsnak nevezett N, r pár) anélkül, hogy a rejtjelzés biztonsága
sérülne. Miért hozható
nyilvánosságra N, r ? A válasz érvelésére felhívom a kedves Olvasó
figyelmét, mivel ez egyúttal az RSA algoritmusának lényegét is megadja !
- Jól
választva két elég nagy p,q
prímszámot (ezek ma már többszáz jegyű prímszámok) kiszámíthatjuk N-et és -et.
- Ezután
alkalmasan választott r-rel az euklideszi algoritmust
végrehajtva, ellenőrizzük, hogy teljesül-e.
- Végül r-hez
meghatározzuk azt az m
számot, amelyre (8) teljesül, amihez szintén euklideszi
algoritmust használunk.
Mindezen
műveletek közül a nagy prímszámok megtalálása a legkritikusabb, de ma már elég
gyors eljárásokkal rendelkezünk annak eldöntésére, hogy egy szám prím-e vagy
sem.
Ha tehát N-et
és r-et,
mint nyilvános kulcsot közzé tesszük, akárcsak a telefonkönyvben a
telefonszámokat és p,q,m-et tartjuk csupán titokban (ez a titkos kulcs), akkor ahhoz,
hogy valaki illetéktelenül hozzájusson titkunkhoz, N-et kell
törzstényezőkre bontania. Erről pedig érdemes felidézni Martin Gardner, a
Scientific American világhírű rovatvezetőjének 1977-es gondolatait, amely éppen
R.L.Rivest-re hivatkozik:
"Ha a ma ismert legjobb algoritmust és a
leggyorsabb számítógépeket használjuk, egy ilyen 125 jegyű RSA kulcs
megfejtésére, Rivest becslése szerint a szükséges megfejtési idő
körülbelül 40 quadrillió év! Ez azt
jelenti, hogy praktikusan a belátható jövőben reménytelen az RSA kulcsok
faktorizáció útján történő megfejtése. Ugyanakkor maga Rivest és kollégái is
elismerik, hogy semmilyen elméleti bizonyítékuk nincs arra, hogy az RSA
titkositási eljárás megfejthetetlen."
Érdekes a
gondolatok hasonlósága miatt is felidézni Jevons több mint száz évvel korábbi
nézetét, amelyet a Jevons számmal kapcsolatban írt le [07]-ben:
"Meg tudja mondani az Olvasó, hogy melyik két
szám összeszorzásából adódik a
8.616.460.799 szám ? Úgy gondolom reménytelen, hogy akárki (magamat is beleértve), valaha
megtudja."
Természetesen
akkor még nem voltak másodpercenként millió műveletet végző számítógépek, így a
megoldás csak kézi számolással volt elképzelhető (illetve elképzelhetetlen). A
technika nagyot fejlődött azóta. Ma már számítógéppel egy ekkora szám
faktorizációja nem okoz problémát. Ezért használnak az RSA algoritmusnál
többszáz jegyű számokat, amelyek faktorizációja a mai számítástechnika mellett
ugyanolyan reménytelennek tűnik, mint 1870-ben a Jevons számé.
Ha jól
megfigyelte a kedves Olvasó, a fenti érvelésekben, melyek a rejtjel
megfejthetetlenségéről szóltak, az elméleti érvek mellett igen nagy szerepet kapott a technika korlátaiba vetett remény, amely
nem képes bizonyos határokat meghaladni !
Ezt a reményt
(vagy reménytelenséget) azonban beárnyékolja, hogy például 1996-ban S.W. Golomb amerikai matematikus olyan
egyszerű eljárást adott, amely kézi számolással 56 lépésben megadja a Jevons szám szorzattábontását, azaz kimutatta,
hogy 8.616.460.799 = 96.079 •
89.681 (lásd [06]).
Végül a
prímszámokra vonatkozó néhány érdekes tételt mutatok be (bizonyítás nélkül),
amelyekre építve megadható a
Golomb-féle eljárás jelen szerző által javított változata, ami nem
csupán a Jevons szám faktorizálására használható.
1.Tétel:
Minden 3-nál nagyobb p prímszám 6k+1 vagy
6k-1 alakú, ahol k = 1,2,3,... természetes szám.
E tétel
alapján a természetes számokat
az alábbi módon rendezhetjük hat oszlopba (lásd 1.tábla), ahol az összes prímszám az 1.
és az 5. oszlopban helyezkedik
el. Méghozzá az 1.oszlopban a 6k+1, míg az 5.oszlopban a 6k-1
alakúak.
1.Tábla
6k+1
6k-1
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17
18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34
35 36
37 38 39 40 41 42
43 44 45 46 47 48
49 50 51 52 53 54
55 56 57 58 59 60
61 62 63 64 65 66
67 68 69 70 71 72
73
74 75 76
77 78
79 80 81 82 83 84
85 86 87 88 89 90
91 92 93 94 95
96
97 98 99 100
101 102
. . . .
A fenti
1.tételből érdekes következményként adódik, hogy ha a prímszámokat hatos számrendszerben írjuk fel, akkor minden 6k+1
alakú prímszám 1-re, míg minden
6k-1 alakú prímszám 5-re
végződik. (lásd a 2.táblát)
2. Tábla
6k+1 hatos sz.r. 6k-1
hatos sz.r.
7 11 5 5
13 21 11 15
19 31 17 25
31 51
23 35
37 101 29
45
43 111 41 105
61 141 71 155
. . .
Az 1.tétel
alapján tehát a 3-nál nagyobb prímszámok szempontjából elegendő csupán
a alakú természetes
számokat vizsgálni. Az alábbi
2.tétel szükséges és elegendő
feltételt ad a alakú összetett
számokra, ez a komplementer prímszita.
2.Tétel (Komplementer
prímszita):
Legyenek N, k,
u, v természetes számok,
valamint u,v 1.
N= 6k+1 akkor és csak akkor összetett
szám, ha k = 6uv + u + v, vagy k= 6uv - u - v
N= 6k -1 akkor és csak akkor összetett szám, ha k =
6uv - u + v, vagy
k= 6uv +u - v
A 2.tétel következményeként megkapjuk N kéttényezős felbontását is, azaz
(18) N= 6k+1
N=(6u+1)(6v+1), vagy N= (6u-1)(6v-1)
(19) N=6k-1
N=(6u+1)(6v-1), vagy N=(6u-1)(6v+1)
Fontos
megjegyezni, hogy mivel a komplementer prímszita egyáltalán nem feltételezi a -nél kisebb prímszámok ismeretét, így a (18), (19)
felbontás megtalálására jól alkalmazható osztott (párhuzamos)
algoritmus.
Most térjünk
vissza a Jevons számhoz. S.W. Golomb [06]
cikkében a Jevons szám faktorizációja kapcsán bemutat egy általános eljárást a
két prímtényezős szorzatok prímtényezőinek meghatározására. Ha J jelöli a szorzatot, akkor a módszer
alapötlete így írható
le:
(20)
ahol a és b
természetes számok, p és q
prímszámok.
Az (20) összefüggéshez igen egyszerűen
számolható, hatékony algoritmust mutat be az
a, b számok meghatározására. Az algoritmus
lényeges lépései:
- Képezzük
az kezdőértéket.
- Legyen , ahol k=1,2,3,...
- Képezzük
az sorozatot, amíg
teljes négyzetet kapunk, azaz
(21)
Ekkor
tehát természetes számok
és így teljesül, hogy
(22)
Az eljáráshoz
mindössze egy memóriára van szükség, amelyben az aktuális értéket tároljuk.
Így akár egy zsebszámológép segítségével elvégezhetők a számítások. Igen
meggyőző, hogy a Jevons által 1870-ben megoldhatatlannak tartott feladat,
a J=8.616.460.799 szám faktorizációja, S.W. Golomb
módszerével k=56 lépésben célhoz vezet
és megadja az =92.880, =3199 megoldást[13].
Más
megközelítésben láttuk, hogy a 2.tétel (komplementer prímszita) szintén megadja
bármely alakú összetett szám
két tényezős prímfelbontását[14],
amelynek alakja
(23) (u, v= 1,2,3, ...)
Ha tehát
feltételezzük, hogy J-nek két prímtényezője van (lásd
(20)), akkor fennáll:
(24)
A két
prímtényezőre vonatkozó feltétel, valamint a
2.tétel miatt (24)-ből következik, hogy
(25) ha J=6K+1, akkor
ha J=6K-1, akkor
A két egyenlet
összeadásával adódik:
(26)
(26)-ből
következik, hogy , vagy mindig osztható 3-mal. Ha tehát az kezdőértéket úgy
választjuk, hogy
(27)
azaz osztható 3-mal, akkor a Golomb algoritmus szerint:
(28)
amely (27)
és (28) alapján csak akkor teljesülhet, ha k is osztható
3-mal, vagy . Így a rekurziós lépések számát harmadára csökkenthetjük,
hiszen a k=1,2,3, ... lépések
helyett csak a k=3,6,9, ..., vagy
k=1,4,7,..., illetve k=2,5,8,...
esetek kiszámítására van szükség. A
Jevons szám esetén tehát:
(29) (h=1)
azaz 56
lépés helyett, 19 lépésben előáll a
megoldás.
Ez az eljárás
(és több másik, lásd pl. [01] ) alapvetően
megingatja az RSA módszer elméleti biztonságát. A ma működő információs és
kommunikációs rendszerek (internet, hálózati szoftverek, távközlési hálózatok,
stb.) több mint 80%-ában RSA alapú információ-védelem van. Hogy mennyire nem
alaptalan az aggodalom, azt alátámasztják az utóbbi 1-2 év jelentős (és
sikeres) hacker támadásai, amelyeknek egy része a kulcsok megfejtésén alapult
(lásd [02]).
Szeretném
végül felhívni a figyelmet arra a matematikus és kriptográfus
gondolkodásmódbeli különbségre, hogy a matematikailag kiszámítható kulcstér
mérete, azaz, hogy egy adott típusú kulcsból összesen hány különböző létezik,
csak akkor lenne meggyőző érvként felhasználható, ha a rejtjelfejtési támadások
az úgynevezett "teljes
kipróbálás" módszerét használnák, amelyre szinte sosem kerül sor.
Ekkor lenne érvényes az egyébként rohamosan fejlődő számítástechnikai
kapacitások korlátait jellemző több évezredes és évmilliós érv, amely a
megfejthetetlenség jellemzésére szolgál.
Az érvelés
azonban azt is figyelmen kívül hagyja, hogy a hagyományos számítási kapacitások
egy-számítógépes modellekre épülnek és csak ezek sebesség és tároló kapacitását
veszik figyelembe, míg a már ma is létező
óriási számítógép hálózatok, több száz, ezer, vagy akár százezer gép
kapacitásait integrálják. Ha tehát, mint a jelen szerző által is bemutatott
osztott (párhuzamos) algoritmussal is végezhető támadást alkalmazunk, akkor a
technikai kapacitásokra alapuló érvelés egyre kevésbé tartható. Ilyen
internetes projectek már működnek, például a SETI program keretében, amely a
földönkivüli élet kutatásával foglalkozik és a világűrből érkező, óriás
antennákkal felfogott, óriási mennyiségű adat, több százezer internetre
kapcsolt számítógépen történő osztott feldolgozásával működik. A globális
hálózatok tehát egészen új technikai dimenziókat vezetnek be, amelyek
szükségessé teszik azon módszerek újragondolását, amelyeknél a technikai
korlátok is szerepet kapnak.
Irodalomjegyzék
[01] Dan Boneh: Twenty
years of attack on the RSA cryptosystem.
Notices
of the AMS, February 1999, 203-213.
[02] Dénes Tamás: REJTJELFEJTÉS
Trükkök, módszerek, megoldások
Magyar
Távközlés, XI.évf. 4.szám, 2000. április
[03] T. Dénes:
Complemetary Prime-Sive
P.U.M.A. Vol.12 (2002) No.4. pp. 355-363
[04] Dénes Tamás: Kódtörő ABC
Bagolyvár Könyvkiadó, Budapest, 2002.
[05] Erdős Pál, Surányi János: Válogatott fejezetek a számelméletből
POLYGON, Szeged, 1996.
[06] S.W.Golomb:
On factoring Jevons’ number
CRYPTOLOGIA, (vol XX. no.3.) 1996.
[07] W.S. Jevons: The Principles of Science:
A Treatise on Logic and Scientific Method
Macmillan & Co., London, 1873. Second edition 1877.
[08] Kiss Elemér: Matematikai kincsek Bolyai János kéziratos hagyatékából
Typotex Ltd., Budapest, 1999.
[09] Sain Márton: Nincs királyi út!
(Matematikatörténet)
GONDOLAT, Budapest, 1986.
[10] Bruce Schechter: Agyam nyitva áll! (Erdős
Pál matematikai utazásai)
Vince Kiadó, Park Kiadó, 1999.
[11] Szalay Mihály: Számelmélet
Tankönyvkiadó, Budapest, 1991.
[12] W.Diffie, M.E.Hellman: New directions in cryptography
IEEE Trans. 1976. IT-22.
[13] R.L.Rivest, A.Shamir, L.Adleman: A method for obtaining digital signatures
and public key cryptosystems
Commun. ACM, 1978. 21/2.
[14] R.L.Rivest:
RSA chips (past/present/future)
presented at
Eurocrypt 84, Paris, France, 1984.
[15] Jack Davies: Piérre de Fermat
(1601-1665) Mathematician and
Jurist
Thesis for the
Degree of Master of Philosophy
Faculty of Arts, University of Liverpool,
1996.
[1] azt jelenti, hogy ha a-t c-vel osztjuk, akkor b maradékot kapunk, azaz a=xc+b, ahol x egész szám
[2] Két egész számot (például a és m) relatív prímnek mondunk, ha 1-en kívül nincs közös osztójuk.
Jelölése: (a,m)=1
[3] Már Euklidész (i.e. 300 körül) leírta a tökéletes számokra vonatkozó tételt:
Ha prímszám (azaz 1-en és önmagán kívül nincs más osztója), akkor a szám tökéletes szám.
[4] Ez utóbbi számok leírásához a tizes számrendszerben 40, 60, 80 számjegyre van szükség. Képzelje el K.O., hogy mekkora munkát jelentett ezekkel a számokkal számítógép (vagy akár egyszerű számológép) nélkül számolni !?
[5]
Ezek a számok még a mai modern számítógépek számára is kemény feladatot jelentenek,
hiszen a fenti legutolsó szám pontos leírásához majdnem 30000 tizes
számrendszerbeli számjegyre van szükség. Ezek tehát óriási számok és mégis a
végtelen sok, és végtelenül nagy természetes számokhoz képest mindössze 20
darab. Vajon hány tökéletes szám van még a hátralevő ugyancsak végtelen sok
természetes szám között ? Még 20, vagy
100 ? Egyáltalán véges számú, vagy
végtelen sok ? A feladat egyszerűnek
tűnik, mégis máig megfejtetlen titok.
2. Egy adott számról eldönteni, hogy tökéletes szám-e, aránylag könnyű feladat, de mint láthattuk tökéletes számokat megtalálni nagyon nehéz. Általánosságban is igaz, hogy ismert kulccsal a hozzá tartozó zárat kinyitni könnyű feladat, de egy zárhoz megtalálni számtalan kulcs közül azt, amelyik kinyitja már jóval nehezebb.
[6] Ma már minden általános iskolás gyerek találkozik Vele például a derékszögű koordinátarendszer tanulásakor, amelyet róla neveztek el Descartes-féle koordinátarendszernek.
[7] A kriptográfia a rejtjelzéssel foglalkozó tudomány.
[8] Idézet [8] 77.oldal
[9] Idézet [8] 87.oldal
[10] Klasszikus értelemben nyílt üzenet alatt tetszőleges információ szöveges formában történő megjelenését értjük.
[11] A Jevons szám faktorizációjára e dolgozat végén visszatérünk.
[12] Az egyik legismertebb ilyen eljárás a számitástechnikában nemzetközi szabványként alkalmazott ASCII kód, amely az ABC kis és nagybetűihez, az elválasztó és műveleti jelekhez a 0-255 intervallum számait rendeli hozzá.
[14] A 2.tételből kiderül, hogy ha J-nek két prímtényezője van, akkor mindig alakú. A Jevons szám esetében például: J=8.616.460.799=