Voorbeeld:
M = 1104648809 = pa * qb
Stap 1: zoek priemdeler p:
p=2 ? Nee, want M is niet deelbaar door 2.
p=3 ? Nee, want M is niet deelbaar door 3.
p=5 ? Nee, want M is niet deelbaar door 5.
p=7 ? Nee, want M is niet deelbaar door 7.
p=11 ? Ja, want M / 11 = 1104648809 / 11 = 100422619 rest nul
Dit is de stap die bij grote getallen veruit het langste duurt en de snelheid van het kraken bepaalt.
Stap 2: we weten M = 1104648809 = 11
a * q
b. Bepaal nu a:
Deel alle p=11 uit M:
- de eerste keer p=11 uit M delen levert: 1104648809 / 11 = 100422619
- nog een keer door p=11 delen levert: 100422619 / 11 = 9129329
- nog een keer door p=11 delen levert: 9129329 / 11 = 829939
- nog een keer door p=11 delen levert: 829939 / 11 = 75449
- nog een keer door p=11 delen levert: 75449 / 11 = 6859
- nog een keer door p=11 delen levert: 6859 / 11 = 623 rest 6: 6859 is niet deelbaar door 11.
In totaal hebben we M dus 5 keer door 11 kunnen delen, waardoor a=5:
M = 1104648809 = 11
5 * q
b
Stap 3: we weten M = 1104648809 = 11
5 * q
b, bepaal q en b:
Definieer L = M / 11
5 = 6859 = q
b
voor onbekende q en onbekende b.
Als we k oplossen uit L = p
k dan zien we
6859 = 11
k
log(6859) = log(11
k)
log(6859) = k * log(11)
\(k = \frac{\log(6859)}{\log(11)} = 3.683779...\)
Omdat q>p is b<k en kan b dus maximaal 3 zijn.
We beginnen met testen van b=3: L
1/3 = 6859
1/3 = 19.00000000...
En inderdaad: 19
3 = 6859
Dus M = 1104648809 = 11
5 * 19
3
Deze stap 3 gaat snel:
Stel L is van grootte-orde 10
10000 en p van grootte-orde 10
100,
dan is b maximaal log(10
10000) / log(10
100) = 100.
Dat betekent slechts b's testen van b=100 t/m b=2.
N = 209 = p * q
Stap 1: zoek priemdeler p:
p=2 ? Nee, want N is niet deelbaar door 2.
p=3 ? Nee, want N is niet deelbaar door 3.
p=5 ? Nee, want N is niet deelbaar door 5.
p=7 ? Nee, want N is niet deelbaar door 7.
p=11 ? Ja, want N / 11 = 19 rest nul
Nu hebben we p=11, en we weten ook direct q = N / p = 19.
Deze stap kost dus net zoveel tijd als p zoeken in M.
Conclusie
In beide gevallen is de snelheidsbepalende stap gelimiteerd tot
\(\sqrt{p\cdot q} = \sqrt{209} = 14.45...\)
Ofwel: in beide gevallen moeten we in stap 1 maximaal doorgaan met zoeken naar priem p tot de grens van 14, en NIET alle priemgetallen tot
\(\sqrt{M} = \sqrt{p^a\cdot q^b} = \sqrt{1104648809} = 33236.25...\)
Zodra we p gevonden hebben kunnen we p
a uit M delen, en kunnen we vrij eenvoudig q en b bepalen.