De eerbaarheid van de priemgetallen
Volmaakte getallen en een Franse monnik
Historici kibbelen nog een beetje over wanneer juist de mens de priemgetallen ontdekt heeft, maar we kunnen wel stellen dat ze voor het eerst uitgebreid bestudeerd zijn in de Griekse oudheid. Een getal zoals 6 werd door de Grieken (en nog altijd) een samengesteld getal genoemd omdat het kan ontbonden worden als product van andere getallen: 6 = 2 × 3. Priemgetallen zijn enkel deelbaar door 1 en zichzelf en spelen dus binnen de getaltheorie de rol van basiselementen zoals de atomen in de chemie. Maar deze metafoor is niet erg geslaagd, want er bestaat niet zoiets als een tabel van Mendeljev voor priemgetallen.
Om te beginnen zijn er oneindig veel priemgetallen, reeds in de 3de eeuw voor Christus bewezen door Euclides. Bovendien duiken ze willekeurig op tussen de natuurlijke getallen en schijnen ze zich aan geen enkele wet of regel te storen (zoals “onkruid”, om met Don Zagier te spreken). Anderzijds is het een boeiend tijdverdrijf voor getaltheoretici om juist tussen deze schijnbare willekeur naar patronen te zoeken. Lees bijvoorbeeld onze vroegere blogbijdrage over de eenzaamheid van de priemgetallen. Iets minder bekend (voor het grote publiek) is dat de oude Grieken de samengestelde getallen onderverdeelden in drie categorieën:
Gebrekkige getallen: als de som van de delers (behalve het getal zelf) kleiner is dan het getal. Bijvoorbeeld: 8 is gebrekkig want 1+2+4 < 8.
Overvloedige getallen: als de som van de delers (behalve het getal zelf) groter is dan het getal. Bijvoorbeeld: 12 is overvloedig want 1+2+3+4+6 > 12.
De Grieken hadden deze volmaakte getallen gevonden met behulp van een procedé van Euclides: neem een priemgetal p en bereken 2p-1(2p-1):
p = 3: 22(23−1) = 28
p = 5: 24(25−1) = 496
p = 7: 26(27−1) = 8128.
Helaas liep het mis bij p = 11. Inderdaad, 210(211-1) is niet volmaakt. De reden van het falen is dat 211−1 = 2047 = 23×89 geen priemgetal is, een inzicht dat al aanwezig was bij Euclides.
Maar het was wachten tot de 18de eeuw vooraleer Leonhard Euler (Zwitserse wiskundige buiten categorie) dit mooi verband tussen priemgetallen en volmaakte getallen bewees:
Het is niet moeilijk om aan te tonen dat 2p-1 enkel een priemgetal kan zijn als p een priemgetal is, maar dat dit niet voldoende is wordt geïllustreerd door 211−1 = 2047 = 23×89. | p | Mp |
| 2 | 3 |
| 3 | 7 |
| 5 | 31 |
| 7 | 127 |
| 13 | 8191 |
| 17 | 131071 |
| 19 | 524287 |
| 31 | 2147483647 |
Wie goed heeft opgelet, beseft dat deze lijst meteen ook 8 volmaakte getallen oplevert, via de formule van Euclides-Euler: N = 2p-1(2p-1). Mersenne had ook nog M67, M127 en M257 in zijn lijst opgenomen, maar hiervan ontdekte men achteraf dat M67 en M257 samengestelde getallen zijn. Onze monnik had dus geen foutloos werk afgeleverd, en had bovendien M61, M89 en M107 over het hoofd gezien, die wel priemgetallen waren.
Een priemrecord
In de loop der geschiedenis is deze lijst van Mersennepriemgetallen druppelsgewijs aangevuld. Zoals andere priemgetallen worden ook zij steeds zeldzamer naarmate de getallen langer worden, het is zelfs geenszins zeker dat er oneindig veel Mersennepriemgetallen bestaan. Behalve hun rol in het construeren van volmaakte getallen, zijn Mersennepriemgetallen ook handig in de zoektocht naar grote priemgetallen.
Juist vanwege het ontbreken van enige regelmaat of formule voor priemgetallen is het zelfs voor de snelste supercomputers uitputtend werk om voor een groot getal (van pakweg een miljoen cijfers) na te gaan of het al dan niet een priemgetal is.
Deze maand werd in de betere kranten en tijdschriften melding gemaakt van een opmerkelijk record: op 25 januari 2013 heeft Curtis Cooper, een wiskundige uit Missouri, een priemgetal met 17.425.170 cijfers ontdekt. Dit is het grootste tot nu toe bekende priemgetal, en bovendien een Mersennepriemgetal: 257.885.161-1.
Dit is geen toeval, alle vorige records van de laatste 20 jaar waren ook Mersennepriemgetallen. Het zit namelijk zo dat voor getallen van de vorm Mp = 2p-1 de zogenaamde Lucas-Lehmertest ontwikkeld is, waarmee ze sneller ontmaskerd worden als een priemgetal dan een ander getal van dezelfde lengte. Opgelet, het blijft een titanenwerk natuurlijk (het vorige record dateert alweer van 5 jaar geleden).
Eigenlijk is Curtis Cooper een deelnemer van het vrijwilligersproject Great Internet Mersenne Prime Search (GIMPS), waarin wereldwijd ongeveer 360.000 computerprocessoren verbonden zijn in een grid-configuratie, die op piekmomenten ongeveer 150 × 1012 berekeningen per seconde maakt.
Het priemgetal dat in 25 januari 2013 gevonden werd door Curtis (en nadien door anderen gecontroleerd) is het 48ste Mersennepriemgetal dat tot nu toe ontdekt werd. En wie weet, misschien het allerlaatste dat sowieso voorhanden is. Misschien heeft God om een of andere reden beslist om ons maar 48 volmaakte getallen te schenken.

Grote priemgetallen en veilig bankverkeer
Maar kan je daar nu ook iets nuttigs mee doen, met grote priemgetallen? hoor ik je al vragen. Sinds kort wel. En wel als gevolg van een ander probleem ermee, dat zelfs niet met 360.000 computers is op te lossen. We proberen het even uit te leggen.
Het is heel eenvoudig twee grote getallen met elkaar te vermenigvuldigen. Neem bijvoorbeeld 352617 en 273872. Wil je hiervan het product hebben, dan neem je een rekentoestel, je tikt de getallen in en je krijgt je resultaat:
Maar het omgekeerde is lastiger: je krijgt een groot getal, zoek de factoren ervan. Bijvoorbeeld het getal 3141592657389793238462643383. Zelfs als je weet dat dit getal het product is van slechts twee priemfactoren, het is heel moeilijk om die twee factoren te bepalen, want in essentie moet je daarvoor achtereenvolgens de getallen 2,3,4,... als delers testen.
Opmerking: het resultaat is overigens
= 21205634761907 × 148148956287469
Er is iets asymmetrisch aan de zaak, en die asymmetrie kan gebruikt worden om een zeer veilig beveiligingssysteem te maken. We schetsen de grote lijnen.
Het gaat hier om het veilig uitwisselen van informatie tussen twee partijen, laten we het even houden op een bank en haar klanten. Een van de klanten wil informatie doorsturen naar de bank, en allle klanten hebben van de bank een "sleutel" gekregen waarmee ze die informatie kunnen versleutelen. De sleutel bestaat uit 2 getallen, een van beide is het product van 2 grote priemgetallen. We zullen het eenvoudig houden, en met kleine priemgetallen werken, stel 17 en 19, met product 323. Het andere getal is tamelijk willekeurig te kiezen, neem bijvoorbeeld 7. Dus alle klanten kennen die 2 getallen: 7 en 323.
Klant A wil iets doorsturen naar de bank, het kan bijvoorbeeld ook een tekst zijn, of een woord, laten we het houden op het woord BAD (onwaarschijnlijk, ik geef het toe). Wat moet de klant dan doen om deze boodschap te versleutelen?
Eerst moet hij met een welbepaald systeem dat de bank ook kent dit woord omzetten naar een getal, voor de eenvoud zullen we elke letter laten overeenkomen met de plaats ervan in het alfabet.
BAD wordt dan 214.
Dat resultaat verheft de klant tot de zevende macht (7 was het eerste deel van de sleutel), dus de klant berekent:
= 20 554 002 898 923 904
En wat doet de bank daarmee? De bank, die de klantsleutel 7, 323 gegenereerd heeft, heeft zelf een andere sleutel om te decoderen. Deze sleutel is een extra getal dat kan berekend worden uit de klantsleutel 7, 323 maar enkel indien je de priemfactoren kent van 323. Zonder die priemfactoren kan het niet. Dus om de code te breken moet je het tweede deel van de klantsleutel kunnen ontbinden in factoren, en voor een product van twee erg grote priemgetallen, zeg zo'n 300 cijfers elk, is dat op dit ogenblik onmogelijk.
De bank heeft in dit geval sleutel 247. (Waar die vandaan komt, dat laten we in het midden. Maar het bepalen ervan veronderstelt kennis van de ontbinding 323=17 × 19.)
Geschreven in Algemeen | 0 Reacties | Vaste link | Afdrukken














































| 