A prímszámkód titkosítási módszer
A módszer alapját 1975-ben a MIT egyetemen W. Diffie és M. Hellman dolgozta ki,
az ötletük később tökéletesítve terjedt el, amit MIT algoritmusnak is neveznek.
E módszer meglepő módon titkos és nyilvános egyben, és megdöbbentően egyszerűnek
látszik!
Minden bekapcsolódni kívánó vásárol
két nagy prímszámot, jelölje ezeket p és q. Ezeket titokban
tartja. Kiszámítja a kettő szorzataként az a=p*q alapszámot. Továbbá
keres két olyan számot, e-t és f-et, amelyekre igaz, hogy az e*f-1
szám osztható q-1 és p-1 értékkel is.
A rejtjelezéshez mindkét fél nyilvánossá teszi az a alapszámát és az e
nyilvános kódszámát, de szigorúan titokban tartja az f számot. Ezek
legyenek például a következő számok a könnyű számolhatóság érdekében.
Név | p | q | a | e | f |
Aladár | 1 | 5 | 55 | 3 | 27 |
Béla | 13 | 7 | 91 | 5 | 29 |
A táblázat számai eleget tesznek a korábbi feltételeknek.
Az üzenetet elsőként a betűk ASCII-kód alapján, – példánkban a könnyebb
számolhatóság kedvéért 90 levonásával – számmá alakítjuk. Legyen
az üzenet az alma szó.Az a betű ASCII-kódja 97, így ez 07 lesz,
az l betű kódja 108, így ez a 18 lesz stb., tehát a 07181907 jelsort
kapjuk. A kapott jelsort az alapszám jegyszáma szerint csoportosítjuk, azaz
most kettesével. A feladó a címzett nyilvános e kódszámával az e-edik
hatványra emeli a kapott kódszámokat, majd meghatározza a címzett a
alapszámával osztva a maradékot, azaz kiszámítja a ke mod a értéket. Az
üzenet végére még odakódolja a saját titkos f számával dolgozva az
aláírását.
A címzett a kapott üzenetet úgy dekódolja, hogy az a alapszáma mellett a
titkos f számát használja az e helyett, tehát kiszámítja a ke mod a értéket. A kapott szám az üzenet ASCII-kódja! Az aláírásnál pedig a
küldő nyilvános e számát használja és avval dekódolva kapja vissza az
aláírást! Azaz ha a-val és e-vel kódoltunk, akkor csak a-val
és f-fel lehet megfejteni és fordítva. Nézzük
tehát példánkat. A feladó Béla a következőket számítja ki:
07 73 mod 55 = 13 13
18 183 mod 55 = 2 02
19 193 mod 55 = 39 39
07 73 mod 55 = 13 13
Az aláírás legyen a b betű:
08 829 mod 91 = 8 08
Az üzenet tehát összeállt: 1302391308. A címzett, Aladár hasonlóan végzi el a
számításokat:
13 1327 mod 55 = 7 07
02 227 mod 55 = 18 18
39 3927 mod 55 = 19 19
13 1327 mod 55 = 7 07
és az aláírásnál
08 85 mod 91 = 8 08
Azaz visszakaptuk a keresett kódokat és még az aláírást is. Példánk természetesen
egy betűkeverésre emlékeztet, de a valóságban használt 100 jegyűnél nagyobb
prímszámok esetén lényegesen bonyolultabbá válik annál.