Episode I
Alice és Bob
17. fejezet
Alice és Bob ókori haverja
Az előző fejezetben megismerkedtünk a legfontosabb számelméleti fogalmakkal: oszthatóság, egység, asszociált, felbonthatatlan és prímtulajdonságú elemek. Ezután ismertettük a számelmélet alaptételét, amely azt biztosítja egy integritástartományban, hogy annak minden – nemnulla és nem egység – elemét egyértelműen elő lehessen állítani felbonthatatlan elemek szorzataként. Megemlítettük, hogy ez nem minden integritástartományban teljesül. Végül megmutattuk, hogy ha viszont teljesül, akkor a felbonthatatlanok és a prímek fogalma szükségképpen egybe kell essen. Azt is megemlítettük ugyanakkor, hogy ez csupán szükséges, de nem elégséges feltétel az alaptétel teljesüléséhez.
De vajon milyen elégséges feltételt tudunk mutatni erre vonatkozóan? Az egész számok gyűrűje teljesíti-e ezt a kritériumot? Mit jelent a "legnagyobb közös osztó" fogalma és hogyan lehet villámgyorsan kiszámolni az úgynevezett euklidészi algoritmus segítségével? Mit tudunk mondani erről általános integritástartományokra? Mik azok az euklidészi gyűrűk és mi közük a számelmélet alaptételéhez? Ebben a fejezetben erről lesz szó...
Figyelem! Ez a fejezet erőteljesen épít az előző fejezetben felépített alábbi definíciókra, valamint a hozzájuk kapcsolódó tételekre:
Ezek kontextusba helyezése miatt erőteljesen ajánlott elolvasni az előző fejezetet, mivel gyakran hivatkozni fogunk rájuk.
A modern kriptográfiai eljárások szempontjából alapvető fontosságú, hogy az egész számok gyűrűjében teljesüljön a számelmélet alaptétele. Egyrészt ez teszi lehetővé, hogy minden egész szám egyértelműen előáll az úgynevezett "prímszámok" – amelyek tehát a gyűrű felbonthatatlan elemei – szorzataként, és így a számelméleti kapcsolatot biztosítja a publikus és a titkos kulcsok között ezekben az eljárásokban. Másrészt a prímtényezős felbontás feladatának algoritmikus nehézsége biztosítja azt, hogy egy támadó számára beláthatatlanul sok ideig tartson kiszámítani a titkos kulcsot a hozzá tartozó publikus kulcsból. Ezért ebben a fejezetben alapvető célunk annak igazolása, hogy gyűrűben valóban teljesül a számelmélet alaptétele.
Ennek keretében meg fogunk ismerkedni egy ókorból származó eljárással, az "euklidészi algoritmussal". Ennek segítségével két egész szám úgynevezett "legnagyobb közös osztóját" fogjuk tudni elképesztően hatékonyan kiszámítani. Ez az eljárás a továbbiakban is fontos lesz számunkra, mivel mind az RSA-ban, mind pedig a nagy prímszámok keresését lehetővé tévő úgynevezett "prímtesztelési eljárásokban" alapvető szerepet játszik. Ezután ezt az eljárást fogjuk általánosítani oly módon, hogy ne csak az egész számok gyűrűjén, hanem minden olyan integritástartományon működjön, amely bizonyos kritériumoknak eleget tesz. Ezeket "euklidészi gyűrűknek" fogjuk nevezni. Végül megmutatjuk, hogy minden euklidészi gyűrűben – és így speciálisan az egész számok gyűrűjében is – teljesül a számelmélet alaptétele.
17.1A legnagyobb közös osztó
Először is tisztázzuk, hogy mit értünk két egész szám "legnagyobb közös osztóján". Tegyük fel, hogy és valamilyen egész számok. Azt mondjuk, hogy a egész szám és "közös osztója", ha egyidejűleg teljesülnek a és oszthatóságok. Például a és közös osztói az , , és egész számok, valamint ezek ellentettjei. A "legnagyobb közös osztó" alatt értelemszerűen ezek közül a legnagyobbat, azaz a egész számot értjük. Általánosságban az és egész számok "legnagyobb közös osztóját" -vel szoktuk jelölni. Az iménti példában tehát .
A "legnagyobb közös osztó" definícióját a fentiek alapján tehát a következőképpen adjuk meg.
Kérdés, hogy az iménti megjegyzésben közölt eseten kívül vajon minden más esetben létezik-e a legnagyobb közös osztó. Ennek igazolásához először ismertetünk egy segédtételt.
Ennek a segédtételnek a felhasználásával mostmár könnyen meg tudjuk mutatni, hogy a gyűrűben mindig létezik és legnagyobb közös osztója, amennyiben legalább az egyikük nem .
A legnagyobb közös osztó definíciójával azonban van egy kis probléma. Nevezetesen: felhasználtuk hozzá az egész számok gyűrűjének rendezési relációját. Mi azonban szeretnénk ezt a fogalmat tetszőleges integritástartományokra kiterjeszteni. Ugyanakkor nem szeretnénk csak a definíció kedvéért megkövetelni valamiféle rendezési reláció létezését. Ráadásul a 15.4. szakaszban megemlítettük, hogy bizonyos gyűrűk egyáltalán nem, mások pedig akár végtelen sokféleképpen rendezhetők. Ez utóbbi esetben például nem is lenne egyértelmű, hogy melyik rendezés szerinti legnagyobb közös osztóról beszélünk.
17.2A kitüntetett közös osztó
A most következő definícióban általánosítani fogjuk a legnagyobb közös osztó fogalmát, amely így már tetszőleges integritástartományra átvihető lesz rendezési reláció nélkül is.
Felhívjuk a figyelmet, hogy a legnagyobb közös osztóval ellentétben kitüntetett közös osztóból létezhet több is. Például a 17.1. szakasz elején közölt példában szereplő és egész számoknak a -on kívül a is kitüntetett közös osztója. Szerencsére ez nem fog gondot okozni, mivel az alábbi tétel biztosít egyfajta "egyértelműséget" a kitüntetett közös osztóra.
A definícióból azonnal következnek az alábbi egyszerű állítások.
Jogosan merülhet fel a kérdés az Olvasóban, hogy miért használtuk ugyanazt a jelölést a kitüntetett és a legnagyobb közös osztó esetén, amikor ezek látszólag teljesen különböző fogalmak. Ennek tisztázása érdekében most megmutatjuk, hogy ha két egész számnak egyáltalán létezik kitüntetett közös osztója, akkor az csak a legnagyobb közös osztó valamelyik asszociáltja lehet.
Ez mind szép és jó, azonban vigyázzunk! Ez a tétel csak annyit garantál, hogy ha valamely egész számoknak létezik kitüntetett közös osztója, akkor e számok legnagyobb közös osztója is rendelkezni fog a 17.4. Definíció szereplő "kitüntetett" tulajdonsággal – azaz, hogy ő többszöröse bármely közös osztónak. A legnagyobb közös osztó a 17.3. Tétel alapján egyetlen esetet leszámítva mindig létezik, ám a kitüntetett közös osztó létezése egyáltalán nem magától értetődő.
Szerencsére a gyűrűben valóban mindig létezik a kitüntetett közös osztó, amelyre hamarosan egy úgynevezett "konstruktív bizonyítást" adunk. Ez azt jelenti, hogy a bizonyítás egy meglehetősen hatékony eljárást is fog szolgáltatni a kitüntetett közös osztó kiszámításához. Ez az eljárás az ókorból ered, és "euklidészi algoritmus" néven ismeretes, az alapgondolatát pedig a 17.4. szakaszban fogjuk bemutatni.
Mielőtt azonban erre rátérnénk, vizsgáljuk meg, hogy miért is olyan fontos nekünk a kitüntetett közös osztó létezése egy adott integritástartományban.
17.3A kitüntetett közös osztó jelentősége
Ebben a szakaszban azt fogjuk megmutatni, hogy amennyiben egy integritástartományban bármely két elemnek létezik kitüntetett közös osztója, akkor minden felbonthatatlan eleme prímtulajdonságú, következésképp a 16.18. Tétel alapján teljesül a számelmélet alaptételének egyértelműségi része.
Ehhez szükségünk lesz három segédtételre. Először az oszthatósági reláció egy újabb egyszerű tulajdonságát igazoljuk, amely nagyon hasonló a 16.2. Tétel 7. pontjában megfogalmazott állításhoz, ám annál egy kicsit többet mond. Ez hasznunkra lesz a továbbiakban is.
Például az egész számok gyűrűjében teljesül a oszthatóság, és így a tétel alapján teljesül a oszthatóság is.
Az oszthatóságnak ezt a tulajdonságát most fel fogjuk használni egy, a kitüntetett közös osztóval kapcsolatos fontos összefüggés igazolásához.
Például a gyűrűben , és így .
Végül igazoljuk az úgynevezett "euklidészi lemmát". Ez arra ad feltételt, hogy egy elem mely esetekben osztója egy adott szorzat valamelyik tényezőjének, ha egyébként magának a szorzatnak osztója. A 16.4. szakaszban már megemlítettük, hogy ez általánosságban nem igaz. Például , ugyanakkor sem a , sem pedig a oszthatóság nem teljesül.
A 16.13. Definícióban épp azokat az elemeket neveztük prímeknek, amelyek bármely olyan szorzatra teljesítik ezt a kritériumot, amelynek egyébként osztói. Az euklidészi lemma a prímtulajdonságnál gyengébb feltételt határoz meg erre vonatkozóan. Ez alapján egy elemnek nem feltétlenül kell prímnek lennie ahhoz, hogy egy adott szorzat valamely tényezőjének osztója legyen. Viszont szükséges, hogy a másik tényezőjével a "lehető legkevesebb" közös osztójuk legyen. Először is tisztázzuk, hogy mikor mondjuk két elemről, hogy a "lehető legkevesebb" közös osztójuk van. Ennek az esetnek külön neve is van, amelyet a továbbiakban gyakran fogunk használni.
Ezek után az euklidészi lemma a következőképpen fogalmazható meg.
Például a gyűrűben , és mivel és relatív prímek – azaz –, ezért .
Az euklidészi lemma felhasználásával mostmár igazolhatjuk a kitüntetett közös osztó létezésének jelentőségét a számelmélet alaptétele kapcsán.
Mostmár tehát tudjuk, hogy ha egy integritástartományban bármely két elemnek létezik a kitüntetett közös osztója, akkor minden felbonthatatlan elem prímtulajdonságú. Ebből viszont a 16.18. Tétel miatt következik, hogy teljesül a számelmélet alaptételének egyértelműségi állítása.
A 17.2. szakasz végén a 17.7. Tételben már láttuk, hogy a kriptográfiai szempontból számunkra fontos gyűrűben ha egy elempárnak létezik kitüntetett közös osztója, akkor a legnagyobb közös osztójuk is kitüntetett. Megemlítettük ugyanakkor, hogy ez a tétel még nem garantálja azt, hogy bármely két egész számnak létezik a kitüntetett közös osztója. Ennek igazolására most megismerkedünk egy igen fontos számelméleti algoritmussal.
17.4Az euklidészi algoritmus alapgondolata
Az euklidészi algoritmus az egyik legősibb, igen gyakran használt számelméleti algoritmus. Nevét az ókori görög matematikusról, Euklidészről kapta, aki Kr.e. 300 körül írta le az Elemek című művében. Ez egy rendkívül hatékony módszert határoz meg két egész szám kitüntetett közös osztójának előállítására.
Az általános iskolából nyilván mindenki emlékszik arra a módszerre, amely a két számnak a számelmélet alaptétele szerinti prímtényezős felbontásából indul ki. Mivel a 16.8. Tétel 1. pontja alapján egy egész szám és az ellentettje ugyanúgy viselkedik oszthatóság szempontjából, ezért elegendő csak a pozitív egészekre és a pozitív prímtényezőkre szorítkozni. Ha tehát rendelkezésünkre áll a két szám prímtényezős felbontása, akkor a keresett kitüntetett közös osztó prímtényezős felbontása pontosan azokból a prímtényezőkből fog állni, amelyek mindkét szám felbontásában szerepelnek. Így például a és a kitüntetett közös osztója , mivel a két eredeti szám felbontása:
A két felbontás közös prímtényezői adják a kitüntetett közös osztót, azaz .
Ezzel a módszerrel – bár helyes – két alapvető probléma van. Egyrészt azt még nem bizonyítottuk, hogy a gyűrűben valóban teljesül a számelmélet alaptétele, így azt elméletben még nem használhatnánk. Másrészt viszont – és ez egy jóval nagyobb, gyakorlati probléma – ehhez a módszerhez szükségünk van a két szám prímtényezős felbontására. Ennek meghatározására jelenlegi tudásunk szerint azonban nem létezik hatékony eljárás, habár ez még bizonyításra vár. Hogy mit értünk "hatékony eljárás" alatt, arról a 6., 7. és 8. fejezetekben volt szó részletesen, így azt nem ismételnénk meg. Azonban saját bőrünkön is érzékelhetjük a problémát, ha megpróbáljuk megtalálni például a és a kitüntetett közös osztóját ezzel a módszerrel.
Az említett "iskolás" módszert követve persze elkezdhetjük a prímtényezőkre bontást. Hamar beletörik azonban a bicskánk, mivel ezt a két számot szándékosan nagy prímtényezőkből állítottam össze. Nevezetesen:
Innen persze a közös prímtényezők kiválogatása, és a kitüntetett közös osztó kiszámítása már egyszerű:
Mondhatnánk, hogy számítógéppel pillanatok alatt prímtényezőire bonthatjuk ezt a két számot. Ez minden bizonnyal így is van az ilyen nagyságrendű számok esetén. A problémát az okozza, hogy a bemeneti számjegyek számának növelésével a prímtényezők kiszámításához szükséges idő nagyon meredeken kezd emelkedni. Olyannyira, hogy például egy több száz számjegyből álló szám prímtényezőire bontása még a világ összes számítógépének is beláthatatlanul sok ideig tartana. A kriptográfiában használt RSA-eljárás algoritmikus biztonsága épp a prímtényezős felbontás feladatának e roppant nehézségén alapszik.
Az euklidészi algoritmus ezzel szemben egy olyan eljárást ad két egész szám kitüntetett közös osztójának kiszámítására, amelyhez nincs szükség a két szám prímtényezőire. Az algoritmus alapötlete az oszthatóság tulajdonságairól szóló a 16.2. Tétel 6. és 7. pontjainak egy egyszerű következményén alapul. Nézzük is meg ezt az összefüggést.
Nézzük is meg, hogy miképpen tudunk profitálni ebből az imént kapott összefüggésből. Egyelőre tegyük fel, hogy gyűrűben vagyunk, mind , mind pedig pozitív egészek, valamint . Később majd általánosítani fogjuk az algoritmust tetszőleges esetre, sőt tetszőleges integritástartományra, most azonban a működés alapelvének megértése a cél.
Rajzoljunk fel két "rudat", amelyek méretarányosan tükrözik e két szám nagyságát. Kezdjünk el lenyesegetni -nek megfelelő hosszúságú darabokat az -t jelölő rúdból mindaddig, amíg a maradék kisebb nem lesz, mint , vagy akár el nem tűnik teljesen. Ezt a folyamatot láthatjuk a 17.1. ábrán, amelyen a maradék rudacska hosszának megfelelő számot -gyel jelöltük.
Ha belegondolunk, tulajdonképpen az történt, hogy az pozitív egész számot sikerült kifejeznünk "valahányszor , meg egy kis maradék" alakban, ahol -gyel jelöltük a "valahányszort", -gyel pedig a "maradékot":
Ráadásul – és ez kulcsfontosságú – az maradékra teljesül, hogy legalább , viszont szigorúan kisebb -nél:
A fenti egyenletből az maradékot ki tudjuk fejezni alakban. Ez azért baromi jó, mivel az imént bizonyított 17.13. Tétel alapján a kitüntetett közös osztó egyúttal az és elemek kitüntetett közös osztója is lesz. Az eredeti számok kitüntetett közös osztójának kiszámítását tehát sikerült két kisebb szám kitüntetett közös osztójának kiszámítására visszavezetni. Most folytassuk ugyanezt a lenyesegetős eljárást a és számokkal. Ez látható a 17.2. ábrán kinagyítva.
Ekkor tulajdonképpen a -t sikerült kifejeznünk "valahányszor , meg egy kis maradék" alakban. Ezt az eljárást folytatva a következő sorozathoz jutunk:
Mindeközben pedig a lépések során kapott maradékok így alakulnak:
Továbbá a keresett kitüntetett közös osztóra igaz lesz az alábbi:
A maradékok tehát egyre kisebbek és kisebbek lesznek, miközben mindegyikről tudjuk, hogy -nál semmiképpen sem lehetnek kisebbek. Ezért érezhetően véges számú lépés után valamelyik maradék előbb-utóbb biztosan lesz. A 17.5. szakaszban megmutatjuk, hogy ez valóban a 11.1. Definíció szerinti Peano-axiómarendszer egy következménye. Egyelőre tegyük fel, hogy ez tényleg így van, és az utolsó nemnulla maradék . Ekkor befejezhetjük az eljárást, és mivel , továbbá a 16.2. Tétel 3. pontja miatt ugye teljesül, így alkalmazhatjuk a 17.6. Tétel 4. pontját. Ez alapján gyakorlatilag megkaptuk a keresett kitüntetett közös osztót, ami nem más, mint :
Maradékos osztásnak nevezzük azt a műveletet, melynek során kiszámítjuk, hogy egy szám egy másikkal osztva mennyi maradékot ad. A maradékos osztás – itt nem részletezett digitális áramköri okok miatt – egy számítógép számára rendkívül hatékonyan elvégezhető. Ráadásul megmutatható – habár erre most nem térünk ki –, hogy a fenti algoritmushoz szükséges maradékos osztások száma a kisebbik bemenet számjegyeinek a számával egyenesen arányos. Ez azt jelenti, hogy még az több száz jegyű számok tartományában is nagyságrendileg pár száz maradékos osztásból megkaphatjuk a kitüntetett közös osztót. Egy átlagos számítógép számára ez egy szemvillanás alatt elvégezhető. Ezzel szemben a prímtényezős módszer az idők végezetéig is eltartana ebben a számtartományban.
E gyorsaság demonstrálására nézzük is meg, hogy mennyire gyorsan kapjuk meg a szakasz elején ismertetett példában szereplő és számok kitüntetett közös osztóját. A maradékos osztás műveletét könnyedén el tudjuk végezni a legegyszerűbb kalkulátorral is. Ezt általában a mod – vagy hasonló – feliratú nyomógombbal érhetjük el, és egyetlen lépésben képezni fogja nekünk a képződő maradékot. Például a műveletet elvégezve az eredmény , mivel a -at -mal osztva a maradék .
Az euklideszi algoritmust a két bemeneti számunkon lefuttatva az alábbi lépéseken keresztül jutunk el a keresett kitüntetett közös osztóig:
A keresett kitüntetett közös osztó tehát . Valóban ugyanazt az eredményt kaptuk, mint a prímtényezős felbontást használó módszerrel, csak épp nem sok ezer – vagy épp millió – osztáspróbával, hanem mindössze hét maradékos osztással. Úgy gondolom ez eléggé meggyőző, amikor hatékonyságról beszélünk.
17.5A végtelen leszállás módszere
Hamarosan azt fogjuk megvizsgálni, hogy az imént tanult eljárást hogyan tudjuk olyan integritástartományokra is kiterjeszteni, amelyek nem feltétlenül számokat tartalmaznak. Ehhez először megismerkedünk a "végtelen leszállás" néven ismeretes indirekt bizonyítási módszerrel. Ezzel fogjuk tudni igazolni, hogy az euklidészi algoritmus véges számú lépés után valóban befejeződik. A módszer a természetes számok halmazának egy fontos tulajdonságán alapul. Ám mielőtt ezt ismertetnénk, először egy segédtételt fogunk bizonyítani.
Ezt a segédtételt felhasználva most megmutatjuk a természetes számok halmazának a már említett fontos tulajdonságát.
A fenti tételen kívül szükségünk lesz még egy állításra, amely a -nél szigorúbb reláció tranzitivitását garantálja. A reláció tranzitivitását már igazoltuk a 12.17. Tételben. Nem meglepő módon ez a tulajdonság a relációra is teljesül, így most ezt mutatjuk meg.
Ezek után a fejezet hátralévő részében a 17.15. Tétel utáni megjegyzésben ismertetett végtelen leszállás módszerét fogjuk felhasználni annak megmutatásához, hogy a számelmélet alaptétele teljesül gyűrűk egy speciális osztályában, az úgynevezett "euklidészi gyűrűkben".
17.6Euklidészi gyűrűk
Az euklidészi algoritmus alapgondolatának ismertetésekor a 17.4. szakaszban feltételeztük, hogy az és bemenet egy-egy pozitív egész szám, amelyeknek tehát a kitüntetett közös osztóját keressük. Az alapötletet a 17.13. Tétel szolgáltatta, mely szerint ha és között el tudjuk végezni a maradékos osztást, akkor az kitüntetett közös osztó – amennyiben létezik – asszociáltja lesz a kitüntetett közös osztónak, ahol a maradékos osztás során képződő maradék. Ezek után a és között kell maradékos osztást végezni, így ha a képződő maradék , akkor a kitüntetett közös osztó – amennyiben létezik – asszociáltja lesz az kitüntetett közös osztónak.
Ezt az eljárást tovább folytatjuk mindaddig, míg valamelyik lépésben a képződő maradék nem lesz. Ha az utolsó nemnulla maradék , akkor végülis azt kaptuk, hogy az kitüntetett közös osztó létezik, mivel ő asszociáltja, ami viszont a 17.6. Tétel 4. pontja alapján asszociáltja.
Látható tehát, hogy az kitüntetett közös osztó létezése azon múlik, hogy véges számú lépés után biztosan lesz-e a képződő maradék. Ezt fentebb csak feltételeztük, most azonban a végtelen leszállás módszerével könnyedén adódik. Ugyanis valamely és elemek maradékos osztásánál ugyanis fontos követelmény volt, hogy az elemet úgy tudjuk kifejezni "valahányszor , meg egy kis maradék" alakban, hogy a maradék mindig szigorúan kisebb legyen, mint .
Tegyük fel indirekt, hogy a maradékos osztást mindig el tudjuk végezni ebben az értelemben, ám az eljárás ennek ellenére nem ér véget véges számú lépés után. Ebben az esetben az
sorozat a reláció 17.16. Tétel szerinti tranzitivitása miatt a természetes számoknak egy olyan részhalmaza lenne, amelynek nem lenne minimuma. Ez viszont a 17.15. Tétel alapján ellentmondás. Ha tehát a maradékos osztást el tudjuk végezni minden esetben, akkor az euklideszi algoritmus biztosan lefut véges számú lépés után, és kiszámítja a keresett kitüntetett közös osztót.
Igenám, csakhogy mi tetszőleges integritástartományra szeretnénk kiterjeszteni ezt az algoritmust. Márpedig például az egész számok gyűrűjére nem érvényes a minimumtétel. Más integritástartományok pedig még csak nem is feltétlenül számokból, hanem egyéb objektumokból állhatnak. Sőt, még az is előfordulhat, hogy a "kisebb-nagyobb" relációnak nincs is értelme egy integritástartományon, mert mondjuk még csak nem is rendezhető.
Vegyük azonban észre, hogy minket nem konkrétan a képződő maradékok és a közöttük lévő valamilyen módon értelmezett "kisebb-nagyobb" viszonyok érdekelnek. Ehelyett ezeknek a maradékoknak a – bizonyos absztrakt értelemben vett – "nagysága" az, ami igazán fontos. Ha valahogy sikerülne az adott gyűrű elemeinek "nagyságát" természetes számokkal "mérni" úgy, hogy az euklidészi algoritmus lépései során keletkező maradékok "nagysága" egy szigorúan csökkenő számsorozatot alkosson, akkor nyert ügyünk lenne.
A most következő definíció precízen megfogalmazza, hogy pontosan mit értünk egy ilyen jellegű absztrakt "mérhetőség" alatt, és külön nevet ad az olyan integritástartományoknak, amelyek ebben az értelemben "mérhetőek".
Most azt fogjuk megvizsgálni, hogy miért olyan fontosak az euklidészi gyűrűk a számelmélet alaptétele szempontjából. Például azért, mert – ahogyan azt a most következő tételben ki is mondjuk – ezekben bármely két elemnek létezik kitüntetett közös osztója, és emiatt a 17.12. és a 16.18. Tételek értelmében teljesül bennük a számelmélet alaptételének egyértelműségi állítása.
A 17.8. szakaszban meg fogjuk mutatni, hogy ennél több is igaz. Nevezetesen: nemcsak a számelmélet alaptételének egyértelműségi állítása, hanem a felbontások létezése is garantált euklidészi gyűrűkben. Először azonban azt igazoljuk, hogy az egész számok gyűrűje is euklidészi.
17.7Euklidészi függvény a gyűrűn
A 15.18. Tételben definiált teljes rendezés segítségével most egy függvényt fogunk értelmezni a halmazon, majd megmutatjuk, hogy az egy euklidészi függvény. Nézzük először a kérdéses függvényt.
Amennyiben tehát az egész számokat a mindkét irányban végtelen számegyenesen ábrázoljuk, akkor ez a függvény intuitív módon a egész számtól való távolságot méri ezen az egyenesen. Ez alapján például az és a egész számok egyaránt távolságra vannak a -tól, azaz
Ezt szemlélteti a 17.4. ábra.
Az abszolútérték-függvénynek a következő tétel miatt van jelentősége számunkra.
Most tehát már tudjuk, hogy az egész számok gyűrűje egy euklidészi gyűrű, és így – mint ahogyan azt a 17.6. szakaszban megemlítettük – teljesül benne a számelmélet alaptételének egyértelműségi állítása.
17.8A számelmélet alaptétele euklidészi gyűrűkben
A számelmélet alaptételének egyértelműségi állítása pusztán annyit állít, hogy ha egy elemnek létezik felbontása, akkor az a tényezők sorrendjétől és asszociáltságtól eltekintve egyértelmű a 16.16. Definíció szerinti értelemben. Semmit nem mond azonban arról, hogy bármely elemnek egyáltalán létezik-e ilyen felbontása. Most azt fogjuk igazolni, hogy euklidészi gyűrűkben a felbontás létezése is garantált. Ehhez a kulcsot a következő tétel fogja jelenteni.
Az iménti tételben szereplő monotonitási tulajdonság tehát azt jelenti, hogy egy ilyen euklidészi függvény tetszőleges elem bármely nemnulla többszörösére legalább akkora "nagyságot" fog "mérni", mint magára az elemre. A most következő tétel arra ad választ, hogy mely esetekben teljesül egyenlőség a két oldal között, és mely esetekben nem.
Az iménti két tételt felhasználva már könnyedén beláthatjuk ennek a résznek a főtételét, amely az euklidészi gyűrűk legfontosabb tulajdonságát mondja ki.
Ez a tétel egy elégséges feltételt biztosít ahhoz, hogy egy integritástartományban teljesüljön a számelmélet alaptétele. Megjegyezzük azonban, hogy ez a feltétel nem szükséges az alaptételhez. Léteznek olyan integritástartományok is, amelyekben semmilyen értelemben nem végezhető el a maradékos osztás, és így nem euklidészi gyűrűk, ám mégis teljesül bennük a számelmélet alaptétele.
Ebben a fejezetben megismerkedtünk a kitüntetett közös osztó fogalmával, és az euklidészi algoritmussal, amely azt képes hihetetlen sebességgel kiszámítani. A kitüntetett közös osztó azért volt nagyon fontos számunkra, mert annak létezéséből már következik a számelmélet alaptételének egyértelműségi állítása. Ezért általánosságban is megvizsgáltuk, mi kell ahhoz, hogy az euklidészi algoritmus valamilyen integritástartományon működhessen. Ezzel eljutottunk a maradékos osztás és az euklidészi gyűrű fogalmához, és megmutattuk, hogy az ilyen gyűrűkben mindig teljesül a számelmélet alaptételének mindkét állítása. Ezen túlmenően igazoltuk, hogy az egész számok gyűrűje is euklidészi gyűrű – például az abszolútérték-függvényre, mint euklidészi függvényre nézve.
A 9. fejezetben a Diffie-Hellman kulcscsere protokoll kapcsán már felületesen megismerkedtünk az úgynevezett óra-, vagy becsületesebb nevén moduláris aritmetikával. Ez szintén egy fontos összetevője az aszimmetrikus kulcsú titkosítási eljárásoknak, ezért a következő fejezetben ezt a témakört újra elővesszük. Ám ezt ezúttal a gyűrűk absztrakciós szintjén fogjuk megtenni, melynek keretében megismerkedünk az úgynevezett maradékosztálygyűrűkkel és ideálokkal.