DT
D é n e s T a m á s matematikus TD
független
szakértő
e-mail: tdenest@freemail.hu
A Public Key System és az RSA biztonsági kérdései
(Megjelent: Híradástechnika,
2002/1. 47-55)
„Nem tulzás
azt állítani,
az absztrakt
rejtjelzés azonos
az absztrakt
matematikával.”
A.A.Albert [37]
Kulcsszavak: Public Key System, RSA,
rejtjelzés biztonsága, prímfaktorizáció, prímszita
A nyilvános kulcsú titkosító eljárások (Public Key
System: PKS) első gondolata 1976-ban jelent meg [20]-ban.
Míg a klasszikus rejtjelzésben a
rejtjeles szöveg és a rejtjelzési kulcs a visszaállítást (megoldást)
egyértelműen lehetővé teszi, addig a PKS-nél a rejtjeles szöveg és a nyilvános
kulcs ismerete nem teszi lehetővé a megoldást. A megoldáshoz szükséges a kulcs
inverzének az ismerete is amit titokban tartanak.
A PKS létrehozóinak elgondolása az volt, hogy a K kulcs ismeretéből, ennek K-1 inverze csak nagyon nehezen legyen
meghatározható. Merkle és Hellman [39]-ben
azt fejtegették, hogy K-1 meghatározása
gyakorlatilag lehetetlen. A PKS működését úgy kell elképzelni, hogy a telefonkönyvhöz hasonlóan közreadnak egy
névsort és mindenki neve mellett a hozzá tartozó K érték szerepel, míg az Ő egyéni (titkos) K-1 kulcsát (amelyet feltételezés szerint K ismeretében szinte lehetetlen
kiszámítani) csak az érintett ismeri.
A PKS előnyei: nem kell központi kulcs elosztás, nem
kell kulcs váltás, az összes viszonylatot nem lehet egyszerre árulás útján
megfejteni, a fejtésnél nem alkalmazhatók a szokásos statisztikai eljárások
stb..
Ennek a tanulmánynak az a célja, hogy a PKS néhány hátrányát, azaz a matematikai konstrukció támadhatóságát is kimutassa, vagyis a PKS kritikai elemzését adja, különös tekintettel az RSA[1]-ra.
Néhány
általános megállapítás a PKS hátrányairól
Minden rejtjelzési eljárás készítője számít arra,
hogy eljárása a nyilvánosság, így az ellenség előtt is ismertté válik, ezért
felkészül a fejtés kivédésére. Mégis a gyakorlatban az eljárás megismerése igen
fáradságos. A PKS első hátrányaként tekinthetjük, hogy az eljárás megismerésére
nem kell jelentős időt, fáradtságot és pénzt fordítani. Egy második hátrány,
hogy a PKS biztonsága azon múlik, hogy a K-ból
a K-1 –be vezető függvényt
(one-way function, trap door) valóban milyen nehéz meghatározni.
A knap-sack eljárás mutatja, hogy itt mennyire lehet tévedni a biztonság megítélésében. Az IEEE 1983. évi információ-elméleti konferenciáján Desmedt előadásában pont azt a knap-sack feladatot fejtette meg néhány perc alatt, amelyet a hallgatóság körében ülő a knap-sack rendszert bevezető Hellman gyarkorlatilag megoldhatatlannak tartott. Később Desmedt közölte eredményeit [15]-ben, majd [62]-ben Shamir foglalta össze a Merkle-Hellman féle algoritmus (knap-sack) gyengéit.
Shamir véleménye szerint módszere csak az
alapeljárásra ad fejtési eljárást, az iterált változatra nem, de a készítők nem
voltak felkészülve ilyen gyors és látványos vereségre. Ugyancsak intő jel, hogy
az algoritmus kis teljesítményű számítógépen is futtatható (lásd [62])..
A biztonság ugyanakkor megköveteli egy
rejtjel rendszertől, hogy ellenálljon bármilyen nagy sebességű vagy akár
párhuzamos működésű célgépeknek is (lásd [05]).
A.Shamir [62]-ben azt írja, hogy „A rejtjel rendszer akkor válik használhatatlanná, ha a kulcsok többsége hathatósan fejthető.” Sajnos ezzel a gyakorlatban elfogadhatatlan állásponttal sok, nem gyakorlati szakember is egyetért. Ez ugyanis a teljes kipróbálás módszerét (brute force) tekinti a megfejthetőség abszolút mércéjének, ami csak a legkedvezőtlenebb esetet jelenti.
Ebből a szempontból nem csupán érdekes történeti
tény, hogy a „one-way function” gondolata nem egészen új, hiszen azt csírájában
már a Hill-féle eljárás is tartalmazta [28],
[29],
melynek lényege: Legyen a nyílt szöveg egy A
nxn méretű mátrix formában írva, a kulcs K egy ugyancsak nxn
méretű invertálható mártrix, ekkor a rejtjeles szöveg R=AK
megfejthető, mivel RK-1=AKK-1=A.
Látható tehát, hogy 1929-ben a mátrix invertálás, a biztonság szempontjából
elegendően nehéz feladatnak tűnt, ami ma már nagy n esetén sem az. Így elképzelhető, hogy a ma megfelelő biztonságot
nyújtó PKS eljárások a számítástechnika ismert ütemű fejlődését figyelembe
véve, belátható időn belül megfejthetővé válnak. Ez azt mutatja, hogy azok az
eljárások, amelyek alapvetően a kulcstér rendkívül nagy számosságára és a kulcs
teljes kipróbálással való megkeresésére alapoznak, legfeljebb átmeneti
biztonságot adhatnak.
A továbbiakban megmutatjuk, hogy a PKS és ezen belül
az RSA biztonságát tovább gyengíti, hogy a kulcsokat nem a teljes kulcstérben,
hanem annak csak bizonyos tulajdonságú részhalmazaiban kell keresni.
Az RSA algoritmus
A Merkle-Hellman eljárás után nem sokkal újabb PKS
került nyilvánosságra [53]. Ezt az eljárást a
szerzők nevének kezdő betűi után RSA (Rivest-Shamir-Addleman) rendszernek
szokás nevezni. Az RSA rendszer a következő módon jellemezhető:
Válasszunk két különböző, nagy (legalább 100
decimális jegyű) prímszámot, p-t és q-t. Ezután válasszunk véletlenszerűen
egy e számot, amely (p-1)-hez és (q-1)-hez egyaránt relatív prím. Legyen N=pq
, ekkor j(N)=(p-1)(q-1). Ezután határozzuk meg azt
az egyetlen d számot, amelyre
fennáll, hogy ed º 1 mod j(N) .
Ha N és e ismert például egy telefonkönyvszerű
listából, akkor egy M üzenetet úgy
rejtjelzünk, hogy az üzenetet felosztjuk k=[logN
+
1]
hosszúságú blokkokra, legyen X egy
ilyen blokk, akkor R(X)=
Xe mod N lesz a
rejtjelzett üzenet egy blokkja. A címzett (és csak ő) ismeri d-t így a megoldás R(X)d =Xed =X adódik.
A rejtlejzés igen egyszerű Knuth szerint [31]
Xe mod N kiszámítása
ismételt négyzetre emeléssel legfeljebb [2
log2 (e)] mod
N szerinti szorzást igényel. E tanulmány későbbi részében ugyanakkor látni
fogjuk, hogy nagy e és N értékekre (ez igaz már a fent
megjelölt nagyságrendre) az RSA nem ad kellő gyorsaságot folyamatos szöveg
rejtjelzésére, így azt inkább elektronikus aláírásra, vagy kulcstovábbításra
használják.
Az RSA eljárás igen nagy népszerűsítést kapott a
Scientific American 1977. augusztusi számában, ahol M.Gardner, az USA
nagytekintélyű népszerűsítő matematikusa írt cikket [23],
hasonló lelkesedést mutatott [63] is. Az egyébként
kitűnő [58]
kötet is úgy írt a 115. oldalon, hogy egy 100 jegyű szám faktorizációja a
leggyorsabb számítógépen is 40 trillió évet venne igénybe, ami 2000-szer
hosszabb idő mint a világegyetem fennállásának ideje. Bár a szerző
tárgyilagosan hozzáteszi, hogy vannak olyan vélemények, amelyek ezzel
ellentétesek [49],
[05].
Bár érdemes megjegyezni, hogy a faktorizációs
probléma megoldása és az RSA megfejthetősége közötti azonosság csak
feltételezés. Ezt igyekszünk ebben a tanulmányban megcáfolni. A következőkben
fel kívánjuk vázolni, hogy a faktorizációs probléma megoldásának csak igen
speciális esetét igényli az RSA megfejtése. Továbbá a faktorizációs probléma
megoldásának helyzete a gépi háttér fejlődésével évről évre jelentősen
változik.
Ezzel kapcsolatosak
M.Gardner [23]-ből származó 1977-es gondolatait: „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 mefejté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 titkosítási eljárás megfejthetetlen.”
Prímfaktorizáció
A faktorizációs probléma két lépésben közelíthető [72].
Az első lépés egy N számról
eldönteni, hogy prímszám-e, majd megtalálni N
prímtényezőit. A prímtesztek igen előrehaladott állapotban vannak, egy 200
jegyből álló számra vonatkozóan sikerült olyan algoritmust készíteni, amely
néhány másodpercen belül eldönti, hogy N
prím-e vagy sem [12].
Mai ismereteink szerint a legjobb prím tesztre vontkozó algoritmus exp(c) bit műveletet igényel, míg a leggyorsabb faktorizációs
algoritmus idő igénye exp(c).
Annak eldöntésében, hogy a vizsgált N prím-e vagy összetett szám, segít
Fermat egy híres tétele, amely szerint, ha N
prím és (a,N)=1 (a és N
relatív prímek), akkor fennáll, hogy aN-1º1 mod N. Ebből következik, hogy ha faktorizáció elvégzése nélkül találunk
olyan a számot amelyre fennáll, hogy aN-1 nem kongruens 1 mod N, akkor
N összetett szám.
Itt kell megjegyezni, hogy Fermat eme tételének
teljesülése, N prím voltának csak
szükséges, de nem elégséges feltétele. Azokat az összetett N számokat amelyekre a fenti kongurencia teljesül, legalább egy (a, N)=1 esetén, álprímnek szokás nevezni. Sarrus
1819-ben megmutatta, hogy 341 álprím,
mivel egyrészt teljesül a 2340º 1 mod 341 kongurencia, másrészt fennáll, hogy 341=11x31.
Érdekes megjegyezni, hogy ugyanezt felismerte már Bolyai János is ([30]
79.oldal). H.C.Pocklington már 1914-ben használta a fent leírt módszert prím
szitaként.
Egy N
páratlan álprímszámot erősnek nevezünk az a
bázisra vonatkozóan, ha , ahol a Jacobi szimbolumot
jelöli[2].
Az N
álprímet akkor nevezzük Carmichael számnak, ha aN-1º1 mod N az összes a-ra teljesül, ha (a,N)=1
fennáll. D.H. Lehmer [35]-ban megmutatta, hogy
nem létezik erős Carmichael szám. A legtöbb prímszitálási eljárás Fermat
tételéből, vagy ennek valamilyen általánosításából indul ki. A prímszitálási
eljárások meggyorsítása érdekében olyan valószínűségi eljárások is elterjedtek
amelyek az álprímeket, illetve az erős álprímeket is prímnek tekintik, vagyis
csak bizonyos valószínűséggel döntik el egy adott számról, hogy prím-e vagy
sem. A prímteszteknek egy valószínűségi megközelítése található például [22]-ben,
ennek segítségével egy N páratlan
egészről egy multiprocesszoros gépen m=6(mlog2N)
lépésben nagy valószínűséggel el lehet dönteni, hogy prím-e. Nevezetesen az
említett algoritmus (amit Solovay-Strassen próbának neveznek) biztosan
megállapítja, ha egy N szám
összetett, de ha N prím, akkor
legfeljebb valószínűséggel
összetettnek tekinti.
A Solovay-Strassen próbához legyen N>1
páratlan szám és tekintsük az kongruenciát, ahol a Jacobi-szimbólumot
jelöli. Ha N prím, akkor a fenti
kongruencia minden esetben teljesül, ha a
nem osztható N-nel. Ha N összetett, akkor a fenti kongruencia
egy mod N teljes maradékrendszer
elemeinek kevesebb, mint a felére teljesül.
A történelmi hűség kedvéért meg kell említeni, hogy
a valószínűségi eljárás gondolata már [47]-ben
is felmerült. A [47]-ben
és a [68]-ban
közölt algoritmusokat egy időben, egymástól függetlenül közölték. Néhány évvel
később M.O.Rabin [51]-ben
lényegében ugyanezt a valószínűségi prímszita gondolatot ismétli meg, bár a
Rabin féle algoritmus nem azonos a Solovay-Strassen féle algoritmussal. Az
algoritmus ismertetésére azért térünk ki, mert gyakorlati tapasztalatok szerint
jobb eredményeket ad, mint a Solovay-Stressen algoritmus. A Rabin féle
valószínűségi prímszita a következőkkel jellemezhető:
Legyen N=2rd+1,
ahol d páratlan. Válasszunk egy 1 és N-1
közé eső a-t véletlenszerűen.
Fogadjuk el a-t prímnek, ha a
következő két kongruencia közül legalább az egyik teljesül:
valamely j-re
(). Ha egyik kongurencia sem teljesül akkor a-t nem fogadjuk el prímnek. Az eljárás
különböző véletlenszerűen választott a-ra
megismételhető.
A prím szitálás, majd ennek gépesítése már sok évtizede foglalkoztatja a rejtjelfejtőket. [56]-ból megtudhatjuk, hogy a német rejtjelfejtés már az 1930-as években felfigyelt D.H.Lehmer amerikai matematikus mechanikus működésű prím szitájára [18]. A folytatás már az elektronikus számítógépek megjelenésének idejére esett. D.H.Lehmer eredményei [33], [34]-ben találhatók, melyek egyik alapgondolata, hogy a prímszitálásra felhasználható a Wilson tétel, mely szerint
(N-1)!+1º0 mod N fennállása N prím voltára szükséges és elégséges feltételt ad.
[44]-ben található tétel szerint, ha N nem prímszám, akkor az általánosított Riemann sejtés igazságából következik, hogy létezik olyan , amely a-ra mint bázisra N egy erős álprím. (A tétel használhatóságát rontja, hogy ma sem tudjuk, hogy az általánosított Riemann sejtés igaz-e?) További prímszám szitáló algoritmusok találhatók [12]-ben.
A prímsziták sorát jelen szerző eredményével zárjuk,
amely szerint bizonyítást nyert a következő tétel [19]: Legyenek
N, k, u, v természetes számok, valamint u,v 1, ekkor
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
Erre a tételre épül a CPS, azaz a Complementary Prime Sieve (Komplementer Prímszita).
Ugyanakkor [72]-ben
a szerző bemutatja, hogy zsebszámológépen is igen rövid idő alatt lehet 20
jegyű számokat faktorizálni.
Történetileg a XX. század első harmadáról datálható, ám mai szemmel is elég hatékonynak mondható faktorizációs eljárás alapját a következő eredmény képezi:
Ha x2ºy2 mod N, akkor x-y és N legnagyobb közös osztója, N-nek egy nem triviális osztója lehet. Ezt a módszert CFRAC-nak nevezik. A
módszer igen régen ismert, [72] a történetet az
1920-as évekig vezeti vissza, de véleményem szerint a CFRAC gondolata régebbi,
mivel már Fermatnak Marsennéhez írt 1638. december 26-án kelt levelében is
szerepelt. Igazi fellendüléshez a nagy teljesítményű számítógépek megjelenésére
volt szükség. A CFRAC módszer egy N
számot kb. művelettel
faktorizál. Nyilvánvalóan a CFRAC nem más, mint négyzetgyökvonás mod N
maradékosztályok szorzás félcsoportjában. Például 72º22 mod 15, vagyis 4-nek
legalább két gyöke van mod 15, a 7 és a 2. Az adott esetben adódik, hogy (7-2)(7+2) º0 mod 15 vagyis (5,15)=5 és (9,15)=3 osztói 15-nek.
Később látni fogjuk és ki fogjuk használni, hogy a mod N maradék osztályok szorzás
félcsoportja ZN (a bennünket érdeklő N=pq esetben) csoportok egyesítéseként állítható elő vagyis Zpq
inverz félcsoport, ezért a négyzetgyökvonás itt is végeredményben csoportban
történik. Számos algoritmus ismeretes az x2ºy2 mod N diofantikus kongruencia megoldására.
[48]-ban egy új
faktorizációs eljárás került bevezetésre, a Quadratikus szita [17],
amely nagyon hasonlít CFRAC-hoz. A quadratikus szitát az 1970-es évek végének
szuperszámítógépére, a CRAY-1 gépre alkalmazták[3]
és sikerült a 3128+1, 2253-1, 1064+1, 3124+1,
53, 55, 55 és 58 jegyű számoknak a 235-nél nagyobb prímfaktorait
egyenként kb. 8 óra gépidővel meghatározni. A CRAY-2 1985-ben megjelent
számítógép sebessége több mint hatvanszorosan meghaladja a CRAY-1 sebességét.
Így ezzel a sebességgel az ismertetett faktorizációs feladat megoldásához 8 perc
volt szükséges. A számítástechnika rohamos fejlődését jellemzi, hogy a mai
szuperszámítógépek sebessége a tera, azaz a 1012 művelet per
secundum tartományban mozog, ami a CRAY-1 sebességének az ezerszerese, így egy
ilyen gépen a fenti feladat már fél percet sem vesz igénybe.
Végül, ha tekintetbe vesszük, hogy az RSA lényegéből
fakad az, hogy a modulus speciális szerkezetű (két azonos nagyságrendű prímszám
szorzata) továbbá, hogy a faktorizáció Monte Carlo módszer segítségével
tökéletesen megfelel, akkor az RSA biztonságának értékelésénél igen nagy
óvatossággal lehet csak nyilatkozni és nem lehet az [58]-ban
és a [23]-ben
leírt értékeléssel egyetérteni. Ezekre az értékelésekre igaz ugyanis Giordono
Bruno 1585-ből származó megállapítása, mely szerint „Si non é vero, é molto ben trovato”, azaz „Ha nem is igaz, jól van kitalálva”.
Érdemes megjegyezni ugyanakkor, hogy a
prímfaktorizációra szolgáló célgépek építésénél még vannak sebesség tartalékok.
A kínai maradéktételen alapuló aritmetikák alapvető összefoglaló műve [69].
Az RSA támadása
prímfaktorizáció felhasználása nélkül
Az előző fejezetben leírtuk, hogyan juthatunk el j(N) meghatározásához prímfaktorizáció segítségével. Ebben a fejezetben igazoljuk, hogy az RSA megfejtéséhez nem szükséges feltétlenül j(N) meghatározása, illetve, hogy j(N) meghatározható N faktorizációja nélkül is. A következőkben néhány gondolatot mutatunk be annak alátámasztására, hogy j(N) meghatározása sem szükségszerű. A gondolatok kifejtéséhez meg kell vizsgálni közelebbről a mod N maradékosztályok szorzás félcsoportját ZN-t és az , ha (a,N)=1 (Kis Fermat tétel) néhány általánosítását.
Absztrakt algebrai megfontolásokból adódik, hogy N=pq esetén . Eme négy komponens mindegyike csoport és az 1-t kivéve elemidegenek. Ez az egyes komponensek rendjét vizsgálva könnyen látható, hiszen
pq=(p-1)(q-1)+p+q+1-2=pq-q-p+1+p+q-1=pq.
Ha találunk egy olyan a elemet amely Zp-ben vagy Zq-ban van, akkor (a,N)¹1 miatt (a,N)=p vagy (a,N)=q adódik és a teljes rendszer megfejtését megkapjuk.
Tehát feltehetjük, hogy . Mivel a rendje j(N), tehát a rendje osztója j(N)-nek és ezért fennáll, hogy , ha (a,N)=1. Ez a rövid és triviális okfejtés a kis Fermat tétel egy félcsoportelméleti bizonyításának is tekinthető.
Ismeretes azonban, hogy ilyen általános kitevő j(N) osztói között is van, ezek közül a legkisebb általános kitevőt nevezik Carmichael számnak, mivel a fogalmat először Carmichael vezette be [11], j(N) helyettesítése Carmichael számmal [64]-ben is kifejtett gondolat. (ott ezt Haupt kitevőnek nevezik.)
Az N-hez tartozó Carmichael számot jelölje l(N), ekkor l(N)=1, ha N=1, l(N)=2d-2, ha N=2d és d>2, l(N)=j(N), ha N=2,4,pd (p páratlan prímszám). Ha , akkor , ahol [ ] jelöli a legkisebb közös többszöröst. A fentiek miatt fennáll, hogy , ha (a,N)=1.
Az RSA rendszer fejtési kísérleteinél tehát l(N)-t is lehet használni j(N) helyett. Ez l(N)£ j(N) miatt előnyös. Következésképpen az RSA felhasználójának törekedni kell arra, hogy a hányados kicsi legyen (vagyis a rendszer erről az oldalról ne legyen könnyen támadható).
A kis Fermat tételnek számos másfajta általánosítása is létezik.
Rédei Lászlótól származik a következő tétel tetszőleges a-ra (lásd [66]):
Már Gauss is tudta, hogy tetszőleges a esetén , ahol m a Möbius függvényt jelöli (lásd [64] továbbá Gauss Werke T2, 1863, S222).
Singmaster [66]-ben azt bizonyította be, hogy esetén legyen L(N)=max(e1,e2….en), akkor tetszőleges N-re és a-ra fennáll, hogy .
Ugyancsak [66]-ben található a következő tétel: Legyen r>s, akkor áll fenn arºas mod N minden a-ra, ha l(N)-nek r-s osztója.
Az eddig áttekintett általánosításokban j(N) értékét helyettesítettük egy kisebb értékkel. Az RSA támadása szempontjából az itt leírt általánosított Fermat tételek jelentősége az, hogy a j(N)-nél kisebb hatványkitevők megkönnyíthetik az egyes alapokra vonatkozó teljes kipróbálást.
Egy további általánosítás leírásakor szükségünk lesz a következő definícióra: az A gyűrű (félcsoport) a elemét akkor nevezzük regulárisnak (esetenként Neumann regulárisnak), ha van A-nak legalább egy olyan x eleme, hogy fennálljon az axa=a egyenlőség. José Morgado több cikkében [41],[40] azzal foglalkozott, hogy jellemezze ZN-ben a reguláris elemeket. Morgado főtétele szerint a ZN-beli elem akkor és csak akkor reguláris, ha (a,N) = (a2,N). Ebből következik, hogy ha N négyzetmentes, akkor ZN összes eleme reguláris. Ezért négyzetmentes N esetén bármely a-ra létezik legalább egy olyan x, hogy az a2xºa mod N kongruencia teljesül. A fenti kongruencia, illetve a belőle nyerhető a2x-a = cN diofantikus egyenlet az RSA rendszer elleni támadásokba jelentős szerepet játszik.
A kis Fermat tétel általánosításainak egy másik csoportját azok az általánosítások képezik, amelyek Zn helyett egy másik félcsoportban vagy gyűrűben érvényesek. Nyilvánvaló, hogy az RSA rendszer elleni támadásnál a kis Fermat tételnek csak azok az általánosításai hasznosak, amelyek Zn-ben érvényesek, azonban az RSA-hoz hasonló, de más algebrai sturktúrában operáló rejtjelző eljárások vizsgálatához hasznos lehet Zn-től eltérő algebrai struktúrákban a kis Fermat tétel általánosítási lehetőségeinek vizsgálata.
Schwarz mutatott rá [59]-ban arra, hogy tetszőleges véges félcsoport S tetszőleges a elemére igaz, hogy ak = ak+d , ahol az ak,…,ak+d-1 elemek egy d-edrendű ciklikus csoportot alkotnak. Schwarz arra hívja fel a figyelmet, hogy az ak = ak+d képlet a legáltalánosabb formája a kis Fermat tételnek, félcsoportokban.
Ugyancsak [59]-ben található, hogy ZN-ben a kis Fermat tétel általánosításának alakja mellett felírható a még általánosabb képlet nevezetesen:
, ahol v(N)=max(d1,d2,…,dr), ha
Könnyű látni, hogy az RSA-nál N=pq miatt v(N)=1, tehát Zpq bármely eleme által generált részstruktúra csoport.
[59]-ban a szerző megvizsgálta a kis Fermat tétel általánosítását Bn egy részfélcsoportjára Cn-re. Cn elemei az olyan nxn méretű Boole mátrixok, amelyek sorai egymás ciklikus permutáltjai. Schwarz [59]-ban kimutatta, hogy ha A eleme Cn-nek, akkor fennáll, hogy An-1=A2n-1.
Schwarz eredménye azért is érdekes a rejtjelzés szempontjából, mert a kétdimenziós rejtjelzés (képek rejtjelzése) egyre nagyobb elméleti és gyakorlati figyelmet kap. További érdekességet kölcsönöz a fentieknek Ecker [21]-ben kifejtett véleménye, amely szerint a Zn feletti mátrixok multiplikatív félcsoportja az RSA rendszer kiterjesztésének legtöbbet ígérő útja. Ebből a szempontból érdemes megemlíteni, hogy Davis tetszőleges mátrixokra is általánosította a kis Fermat tételt.
[64]-ben mutattak rá a szerzők az RSA rendszer olyan gyengeségére, amely a megfejtésre bizonyos esetben, a faktorizációs probléma megkerülésével is lehetőséget ad. Ez a módszer a felülrejtjelzés, vagyis a rejtjeles szövegen a rejtjelzés ismételt elvégzése. Legyen ugyanis a nyílt szöveg C , a rejtjelzési kitevő e, akkor a rejtjeles szöveg Ce.
Mivel C relatív prím az N modulushoz, azaz , tehát Ce is relatív prím N-hez, így Ce hatványozásával megkapjuk C-t. Könnyű belátni ugyanis, hogy ha valamilyen s-re, akkor . [64]-ben arra mutattak rá a szerzők, hogy igen nagy N és e esetén is lehet s nagyon kicsi. Erre konkrét példát mutattam be [17]-ben, ahol N hatvan decimális számjegyből áll és az ezzel titkosított üzenet hét lépésben megfejthető.
Simmonsnak [64] megjelenése után komoly nézeteltérése volt az NSA-val és valószínűleg ennek tulajdonítható, hogy Rivest [54]-ben kifejtett érvelését Simmons [65]-ben elfogadta. Rivest ugyanis azt állította, hogy ha az RSA javaslói [53]-ban leírt feltételeit kiegészítjük azzal, hogy j(p’) és j(q’) legnagyobb közös osztója legyen kicsi és j(p’)-nek, valamint j(q’)-nek legyen nagy prímfaktora p’’ illetve q’’, akkor az eljárás biztonságos. Rivest végeredményben az erős prímek használatát javasolta.
Nem lehet másra vélni Simmons beletörődését ebbe a tarthatatlan érvelésbe, mint az NSA hatásának. Annak bizonyítására, hogy nem teljesen alaptalan a feltételezésünk, álljon itt a Cryptologia 1978. évfolyamának 193-194 oldalon található szerkesztőségi közleménye, amely szerint az Institute for Defence Analysis (IDA) titkos ülése (az ülésről szóló híradást lásd Science 14 april 1978) úgy döntött, hogy az RSA gyengeségeinek megvitatása nem célszerű a nyilvánosság előtt. Az NSA álláspontját nem a konkrét esetre vonatkozóan, hanem általánosságban jól tükrözi [43], [36].
A [64]-ben indított támadást az RSA ellen, a svéd Herlestam folytatta [27]-ban. Rivest újra válaszolt [55]-ban, de a további támadásokat (lásd [03],[67]) már válasz nélkül hagyta. Összességében megállapítható, hogy Rivest a viszont támadást azért hagyta abba, mert védekezése és kiegészítő feltételei sem küszöbölik ki az RSA rendszer támadhatóságát.
Könnyű látni, hogy a felülrejtjelzés azt az egyszerű tényt használja ki, hogy egy véges csoport összes elemeit egy a rendhez relatív prím hatványra emelve, újra az adott csoportot kapjuk. [64]-ben a szerzők másik gondolata ZN-ben az alacsony rendű elemek meghatározása, mivel ez a felülrejtjelzéssel kombinálva szolgálhatja az RSA rendszernek, a modulus prímfaktorizációja nélküli megfejtését.
Mullin ezredes [42]-ben egy látszólag teljesen elméleti kérdést vizsgál, amelyről a következőkben megmutatjuk, hogy mennyire gyakorlativá tehető.
Mullin a következő formulát vezeti le: j(N)d(N)=(N-d-1)(N+d-1), ahol d(N) N osztóinak összegét jelöli, N=pq , ahol p és q prímek, továbbá p-q=d, d³1. Az előbbi összefüggést diofantoszi definiáló relációnak nevezi, majd vizsgálja, hogy milyen feltételek mellett megfordítható a diofantoszi definiáló reláció. Azt, hogy nem minden esetben megfordítható, a következő példán látható: N=24, d=7 esetén fennáll, hogy j(24)d(24)=16x30. Ennek ellenére 24 nem két prímszám szorzata és nem létezik két olyan prím, amelynek különbsége 7.
Ugyanakkor d=2 esetében az iker prímeket karakterizálja a diofantoszi definiáló reláció, vagyis N akkor és csak akkor egy ikerprím pár szorzata, ha j(N)d(N)=(N-3)(N+1). [42] szerint a diofantoszi definiáló reláció megfordítása igaz d=1, 2, 6, 11, 12 esetében is. Példa: p=5, q=7, ekkor N=35, j(N)=24, d(N)=48, tehát 24x48=1152=(35-3)(35+1)=32x36
A következőkben néhány olyan eredményt mutatunk be, ami kapcsolódik [42]-höz és aminek jelentős gyakorlati jelentősége is van. [42] alapötletének a jelen tanulmány szerzője azt tartja, hogy p+q helyett 2p-d-vel lehet számolni, ugyanis tudjuk, hogy ha N=pq=p(p-d), akkor
N=p2-pd és j(N)=N+1-2p+d adódik.
Világos, hogy p csak akkor lehet egész szám, ha létezik olyan t egész szám, hogy fennálljon a d2 + 4N = t2 összefüggés. Ily módon egy olyan speciális diofantikus egyenletet nyerünk, amelynek vizsgálata a babilóniai időkre, (IBN AL HUSAIN idejére) nyúlik vissza. Néhány évszázaddal később ezt Palermoi János problémájaként ismerték és Leonardo Pisano (Fibonacci) és Fermat foglalkoztak a probléma megoldásával. (Lásd Scritti di Leonardo Pisano, Roma, Publ. de Boncompagni 1962 T.2.p272 Fermat Oeveres Ed P.Tannery et Ch.Henry. Paris 1891-1922 T.3. ch 4.)
IBN AL HUSAIN, majd később Leonardo Pisano és Fermat is megmutatta, hogy az RSA megfejtése szempontjából fontos d2+4N=t2 már korábban felírt diafontikus egyenletben N nem lehet négyzetszám.[4]
Fermat azt is észrevette, hogy a fenti tételből következik a később róla elnevezett sejtés (xn+yn=zn) igazsága n=4 esetben.
Könnyen látható, hogy a vizsgált diafonikus egyenlet lényegében azonos a CFRAC-nál szereplő kongurenciával. Ezért az a korábban leírt kétségünk, hogy a CFRAC nem a Williams által [72]-ben leírt módon az 1920-as évekből való, hanem sokkal régebbi, nem csak Fermat-val támasztható alá, hanem IBN AL HUSAIN tevékenységével is.
Mullin gondolatához hasonló megközelítést alkalmazott D.N.Lehmer (Bull. Amer.Math.Soc. 13(1906-7) 501-502), aki feltette, hogy N=p(p-d) és . Ezzel a megkötéssel igen gyors algoritmust dolgozott ki p és q meghatározására.
Az RSA egy további gyengesége, hogy véletlenszerű kompromisszumok felülrejtjelzésével az általános megoldási kitevő egyes osztói meghatározhatók és az általános kitevő az egyes rész megoldásokból nyert kitevők szorzatával közelíthető.
Ha a tervezett RSA rendszerben valaki két helyre ugyanazt a C nyilt szöveget kívánja rejtjelezve eljuttatni, akkor rejtjeles szövegek keletkeznek, ha feltesszük, hogy (e1,e2)=1, akkor az s1e1+s2e2=1 diofantikus egyenletnek van egész megoldása és az könnyen kiszámítható. Ha viszont s1 és s2 ismert, akkor C úgy nyerhető, hogy . Ebből következik, hogy az RSA rendszer körtávirati formában nem alkalmazható.
Jelen tanulmányban már több alkalommal foglalkoztunk az x2 º y2 mod N kongruenciákkal, illetve az x2–y2=cN típusú diofantikus egyenletekkel. Annak ellenére, hogy ezek megoldására kidolgozott algoritmusok vannak, fel kívánjuk hívni a figyelmet, hogy a megoldáshoz vezető egyik út, ha az egész megoldások helyett racionális megoldásokkal is megelégszünk. (Van olyan eset, amikor egész megoldás nincsen csak racionális). Egy példán keresztül mutatjuk be a racionális megoldást. Tekintsük az x2–y2=cN egyenletet és legyen c=1, N=5, akkor , mivel . Így 5 „racionális prím” felbontása
Az RSA rejtjelzés nemcsak mint önálló eljárás kerül felhasználásra, hanem elektronikus aláírásként (electronic signature) is, valamint a DES kulcs szétosztó eljárásaival kombinálva (lásd pl. [50],[53],[38]).
Az RSA részleges megfejtése
Az eddigiek során olyan eljárásokat vettünk számba, amelyek bizonyos feltételek teljesülése esetén az RSA-val rejtjelzett üzenetet úgy tudják megfejteni, hogy az eredeti nyilt szöveg hiba nélkül előálljon. A rejtjelfejtésben erre sokszor nincsen szükség, mert ha egy C nyílt szöveg helyett egy olyan C’ nyílt szöveget sikerül előállítani, amely kevés hibát tartalmaz (azaz C és C’ közötti Hamming távolság kicsi), akkor a nem mesterséges nyelvek redundanciája miatt, C egyrészt hiba nélkül visszaállítható, másrészt C egyes töredékeinek visszaállítása is bírhat operatív értékkel. Dénes J. [16]-ban a leképezésekre és permutációkra vonatkozóan bevezette a k-rendet, amely pontosan a következőt jelenti:
Jelölje Sn , illetve Tn a szimmetrikus csoportot, illetve az n-ed fokú szimmetrikus félcsoportot, és elemei Tn-nek illetve Sn-nek. Az a és b közötti távolságot d(a,b)-val jelöljük és d(a,b)=m akkor, ha pontosan m olyan különböző i érték létezik, hogy bi¹ci. (Nyilvánvaló, hogy Sn két eleme között hasonlóan definiálhatjuk a távolságot.)
aÎTn k-rendjét, 0k-t úgy definiáljuk, hogy legyen az a legkisebb r pozitív egész szám, amelyre fennáll, hogy ar=b és d(b,e)=k ahol e az a által generált ciklus félcsoport idempotensét jelöli. (aÎSn esetén a k-rendjét hasonló módon lehet definiálni.)
Zn-ben az elemek k-rendjét hasonló módon lehet definiálni. Legyen C egy nyílt szöveg és Ce=M a rejtjelzett szöveg. A jelen tanulmány szerzőjének az a sejtése, hogy amennyiben felülrejtjelzéssel nem C-t keressük, hanem egy olyan C’-t amelyre fennáll, hogy d(C,C’)£ k, akkor az egyébként gondos körültekintéssel kiválasztott RSA paraméterek sem jelentenek védelmet a részleges megfejtés ellen.
Az RSA értékelése
Keveset tudunk a hivatásos rejtjelfejtők (pl. NSA) álláspontjáról. Az a kevés információ, amely nyilvánosságra került publikációkból nyerhető arra mutat, hogy az NSA a DES-t részesíti előnybe a PKS-sel szemben. Ugyanakkor komoly erőfeszítéseket tesz, hogy a rejtjelzési kutatásokat ellenőrizni tudja. Már a hagyományos távközlő csatornán keresztüli rejtjelzésre is komoly nyomás nehezedik azáltal, hogy az űrtávközlés elterjedésével, üzleti okokból, a rejtjelzésre kerülő üzenetek mennyisége ugrásszerűen megnőtt.
Az űrtávközlés [73] szerint nem csak a klasszikus értelemben vett rejtjelzési problémákat veti fel, hanem az úgynevezett „titok megosztást” is. Ezt a fogalmat Shamir [60]-ban vezette be. Annak megelőzésére, hogy egy titok (pl. rejtjel kulcs) műszaki hiba miatt vagy árulás miatt elveszhessen, osszuk fel az S titkot (egy 0,1 sorozatot) n részre, ezeket jelölje S1, S2,…,Sn. Az űrtávközlésben minden egyes Si egy állomást jelölhet. A titok megosztó rendszer lényege az, hogy S egyértelműen visszaállítható az egyéni kulcsok közül bármely k<n ismeretéből, ugyanakkor k-1 vagy kevesebb egyéni kulcsból S egyértelműen nem állítható vissza.
A titok megosztó rendszerek között PKS is előfordul, de [73]-ban sikerült megmutatni, hogy a titok megosztó rendszerek egységes tárgyalását ortogonális latin négyzetek segítségével lehet megvalósítani.
A rejtjelzés ugrásszerű elterjedéséből és újszerűségéből adódó megnövekvő hatósági feladatok indították az USA kormányát új irányelvek kiadására. További nehézséget jelent, hogy a rejtjelzés híradástechnikai csatornán keresztüli módján kívül megjelentek a számítógépes háttértárakban (pl. mágneslemezen) levő adatok rejtjelzése, valamint a „smart card”-ok is ebbe a kategóriába tartoznak.
I R O D A L O M
[01] F.L. Bauer: Cryptology methode and maxims, Cryptography, Prog, Burg. Feuersten, Ed. T. Beth Lecture Notes in computer science 149, 1982, 31-48
[02] H.J.Beker, F.C. Piper: Communications security. A. survey of cryptography. IEEE Proc. 129(1982) No.6 357-376
[03] G.R. Blakley, I. Borosh: Riveat Shamir Adlemann public key cryptosystems do not always ponceal message. Computers and Mathematics with applications 5(1979) 169-178.
[04] D.Boneh-R.Venkatesan: Breaking RSA may not be equivalent to factoring. In: Advances in Cryptology, Proc. Eurocrypt ’98, 1998. pp 25-34.
[05] G. Brassard: A note on the complexity of cryptography.
IEEE Trans. IT-25 1979. 232-233
[06] G.Brassard: A Time-Luck Trade off in Relativized Cryptography. Journal of Computer and System Sciences 22(1981) 280-311
[07] G. Brassard: Relativized Cryptography. IEEE Trans. IT 29(1983) 877-893
[08] R.P. Brent, J.H.Pollard: Factorization of the eighth Fermat number. Math.Comp 36(1981). 627-630
[09] Stephen Budiansky: ELMÉK HARCA (A Második Világháború Kódfejtésének Teljes Története), Vince Könyvkiadó, Budapest, 2005.
[10] N.P.Callas: An application of computers to cryptography. Cryptologia 2(1978) 350-364
[11] R.D. Carmichael: Note on a new number theory function. Amer. Math. Soc. Bull. 16(1910) 232-238
[12] R.Crandall-C.Pomerance: Prime Numbers (A Computational Perspective), Springer, New York, 2000.
[13] D.W. Davies, W.L. Price, G.I. Parkin: An evaluation of public key cryptosystems. Information Privacy 2(1980) 138-154
[14] D.D.Denning: Digital signatures with RSA and other Public-Key Cryptosystems.Communications ACM 27(1984) 388-395
[15] Y.Desmedt, J. Vandewalle, R.Govaerts: Critical analysis of the security of Knapsack
public key Algorithm.
IEEE Transaction of Information Theory 1984. 601-611
[16] J. Dénes: Research problem 27. Periodica Math. Hung 11(1980) 177-178
[17] Dénes Tamás: Új eredmények az RSA kulcsok megfejtéséhez, Híradástechnika, 2002/1. 47-55
[18] Dénes Tamás: Titkos-számítógép-történet, Aranykönyv Kiadó, Budapest, 2003.
[19] T. Dénes: Complementary prime-sieve, PUre
Mathematics and Applications, Vol.12 (2002), No. 2, pp. 197-207
[20] W.Diffie, M. E. Hellmann: New directions in cryptography.
IEEETrans. Infor. Th. IT-22 Nov. 1976. 644-654
[21] A. Ecker: Finite semigroupe and the RSA-Cryptosystem. Cryptography-Proc. Burg Feuersten, Ed. T. Beth, Lecturs Notes in Computer Science 149,(1982) 353-369
[22] Freud Róbert-Gyarmati Edit: Számelmélet, Nemzeti Tankönyvkiadó, Budapest, 2000.
[23] M. Gardner: A new kind of cipher that would take millions of years to break. Scientific American 237(1977) No2. 120-124
[24] J.A. Gordon: The use of intractable problems in cryptography. Information Privacy 2(1980) 178-184
[25] N.E. Hellman: An overview of public key cryptography, IEEE Communications Society, 16(1978), 24-31
[26] M.E. Hellmann: The mathematics of public-key cryptography. Scientific American 214(1979) 2 szám 130-139
[27] T. Herlestam: Critical remarks on some public-key cryptosystems. BIT 18(1978) 493-496.
[28] L. S. Hill: Cryptography in an algebraic alphabet. Amer. Math. Monthly 36(1929) 306-312
[29] L.S. Hill: Concerning certain linear transformation apparatus of cryptography. Amer. Math. Monthly 38 (1931) 135-154
[30] Kiss Elemér: Matematikai kincsek Bolyai János kéziratos hagyatékából, Typotex Kiadó, Budapest, 1999.
[31] D.E. Knuth: The art of computer programming. Vol 2 Seminumarical algorithms.
Addison-Wesley 1969.
[32] S.Landau: Prímes codes and the National Security Agency, Notices Amer. Math.Soc. Jan. 1983. 7-10
[33] D.H. Lehmer: A photo-electric number sieve, Amer. Math. Monthly(1933) 661-667
[34] D.H. Lehmer: The sieve problem for all pupose computer. Math. Tablea other aids of computation (1953) 6-14
[35] D.H. Lehmer: Strong Carmichael numbers. Journal of the Australian Math. Soc.Ser.A 21(l976)508-511
[36] C.Lim-P.Lee: A key recovery attack on discrete log-based schemes using a prime order subgroup. In: Advances in Cryptology, Proc. Crypto ’97, Spriger-Verlag, 1997. pp. 249-265.
[37] J. Massey: Applied digital information theory. ETH Zürich 1985.
[38] S.M. Mátyás: Digital signatures. An overview. Computer Networks 3(1979) 87-94
[39] R.C Merkle, M.E. Hellmann: Hiding information and signatures in trapdoor knapsacks.
IEEE Trans. IT-24 sept. 1978 525-530
[40] J.Morgado: A property of the Euler j-function concacning the integers which are regular modulo n. Portugalia Mathematica 35(1974) 185-191
[41] J.Morgado: Another generalization of Euler’s theorism. Portugalis Mathematica 35(1975) 241-243
[42] A.A. Mullin: A note on the mathematics of Public-key cryptosystems. Computer and Security 3(1984) 45-47
[43] National Security Agency: Public cryptography. Signal August 1981 67-77.
[44] J. L. Nicolas: Treat de prímalité. Expositiones Mathematical 2(1984) 223-234
[45] W. Nöbauer, J. Wiesenbauer: Zahlentheorie, Prugg Verlag, Eisenstadt 1981.
[46] J.M.Pollard: Theorems on factorizations and prímality testing. Proc.Camb.Philos.Soc.76(1974) 521-528
[47] J.M.Pollard: A Monte Carlo method for factorization. BIT 15(1975) 331-334
[48] C. Pomerance: Analysis and comparisions of some integer factoring algorithms. Number Theory and Computers (H.W. Lenstra Jr and R. Tijdeman eds.) Math. Centrum Tracte Number 154. Part I and Number 155 part II. Amsterdam 1983.
[49] J.J. Quisquater, C. Couvreur: Fast dechipherment algorithm for RSA public-key
cryptosystem.
Elekctron. Lett. 18(1982) 905-907.
[50] M.O. Rabin: Digitalized signatures and public key functions as intractable as factorization. MIT Lab. For Computer Sience, Techn. Rep. LCS/TR-212. 1979
[51] M.O. Rabin: Probabilistic algorithm for testing prímality. Journal of Number Thachy 12(1980) 128-138
[52] B.Randell: The Colossue. A History of Computing in the Twentieth Century. Ed.N.Metropolis J. Howlett and Gian Carlo Rota, New York, Academic Press, 1980.
[53] R.L. Rivest, A. Shamir, L. Adleman: A method for obtaining digital signatures and public
key cryptosystems. Comm. ACM 21(1978) 120-126
[54] R.L. Rivest: Remarks on a proposed cryptanalytic attack on the MIT public-key cryptosystem. Cryptologia 2(1978) 62-65
[55] R.L. Rivest: Critical remarke on „Critical remarke on some public-key cryptosystems”. By T. Herlestem. BIT 19(1979) 274-275
[56] H. Rohrbach: Mathematical and mechanical methodes in cryptography, Cryptologia 2(1978) 20-37. angol fordítása a német eredetinek (Matematische und maschinelle methoden bei chiffrieren und deschiffrieren. FIAT Review of German Science, Applied Math. Part I. Wiesbaden 1948. 233-257
[57] C.P. Schnorr: Is the RSA-Scheme Safe? (Abstract) Cryptography. Proc. Burg Feuerstein Ed. T.Beth, Lecture Notes in Computer Science 149(1982) 325-329
[58] M.R. Schroeder: Number theory in science and communication Springer-Verlag, Berlin,
Heidelberg, New York, Tokyo, 1984.
[59] S. Schwarz: The Euler-Fermat theorem for the semigroup of circulant Boolean matrices. Chechoslovak Math. Journal 30(1980) 135-41
[60] A. Shamir: How to share a secret, Comm. of ACM 22(1979) 612-613
[61] A. Shamir: A polinomial time algorithm for breaking Merkle-Hellmann cryptosystems. Proceddings of the 23rd. Annual Symp on the foundations of computer science 145-152
[62] A. Shamir: A polynomial-time algorithm for breaking the basic Merkle-Hellmann
cryptosystem.
IEEE Trans IT-30 sept. 1984. 699-704
[63] D. Shapley: The new unbreakable codes-will they put NSA out of busines? The Washington Post Sunday July 9 1979.
[64] G.J.Simmons, M.J. Morris: Preliminary comments on the MIT public-key cryptosystem. Cryptologia 1 (1977) 406-414
[65] G.J.Simmons: Cryptology, the mathematica of secure communication. Math.Intelligencer 1(1978) 233-246
[66] D. Singmaster: A maximal generalization of Fermat’s theorem. Math. Mag. 39(1966) 103-107
[67] D.R. Smith, J. T. Palmer: Universal fixed messages and the Rivest-Shamir –Adleman cryptosystems. Mathematika 26(1979) 44-52
[68] R.Solovay, V. Strassen: A fast Monte-Carlo test for prímality. SIAM Journal on
Computing 6(1977) 84-85
Erratum 7(1978) p118
[69] N.S.Szabó, R.I. Tanaka: Residue artihmetic and its applications to computer technology. Mc Graw Hill, New York 1967
[70] M.M.Waldrop: NSF Commits to Supercomputers. Science Vol. 228 3 May 1985. 568-571
[71] H.C. Williams-J. Shallit: Factoring integers before computers. In: Proc. Sympos. Appl. Math., Amer. Math. Soc., 1994., pp. 481-531.
[72] H.C. Williams: Factoring on a computer. The Mathematical Intelligencer 6(1984) No.3
29-36
[73] W.W.Wu: Elements of satellite communications.
[1] Az RSA a PKS rendszerek napjainkban legelterjedtebb algoritmusa, amely elnevezés megalkotói nevének, Rivest-Shamir-Addleman kezdőbetűiből áll.
[2] Definíció (Jacobi-szimbólum)
Legyen mñ1 páratlan szám, m=p1p2…pr , ahol a pi számok (nem feltétlenül különböző) pozitív prímek. Legyen továbbá (a,m)=1. Ekkor az Jakobi-szimbólumot mint az Legendre-szimbólumok szorzatát értelmezzük, azaz
Definíció (Legendre-szimbólum)
Az Legendre-szimbólumot a következőképpen értelmezzük:
[3] A CRAY-1 volt az első „vektor” elven, azaz párhuzamos aritmetikával működő szuperszámítógép, amelyet a Cray Research Incorporated épített az 1970-es évek végén. A CRAY-1 100 millió művelet másodpercenkénti elvégzésére volt alkalmas.
[4] Genocchi és Lucas is lényeges eredményeket értek el
ezen a téren. A megoldások, főleg geometriai interpretációjával egy egész könyv
foglalkozik (Leonardo: Négyzetek könyve)