A digitális aláíráshoz az RSA kétkulcsú titkosítási eljárást használják. Ennek a módszernek a segítségével végzik mind a bekódolást és kikódolást. Az RSA eljárásban az üzentetet (itt például a digitális pénz) hatványra emelik a megfeleõ kulccsal. A hatványraemelés után az eredmény modulusát vesszük. Ez a modulus megfelelõen nagy (általában legalább 150 bit hosszúságú)
Amikor a rendszer elindul, a bank generál magának két nagy prímszámot, p-t és q-t. A számok szorzata lesz a használandó modulus pq.
Az RSA renszer lényege azon a számelméleti tételen alapszik, hogy
x^(p-1)(q-1) = 1 (mod pq)
Az így keletkezõ x ezután nem osztható sem p-vel, sem q-val.
A következõ lépésben a kulcskészítõ választ magának két kulcsot, e-t és d-t. e lesz a publikus kulcs, és d a privát kulcs.
ed = 1 (mod (p-1)(q-1))
Ezek után egy szöveg lekódolva az egyik kulccsal, csak a másik kulccsal nyitható ki
(x^d)^e = x (mod pq)
A kulcskészítõ ezután reklámozhatja e-t minden felhasználó felé, együtt a modulussal, hiszen ebbõl senki sem tudja kideríteni se p-t, se q-t, se d-t.
Vak aláírást akkor kell használnunk, ha a másik féllel nem akarjuk tudatni, hogy mit ír alá. A téma kapcsán arról van szó, hogy a banknak nem szabad megtudnia az aláírandó pénz sorszámát, ugyanakkor az egész pénzt hitelesíteni kell. Erre szolgál a vak aláírás protokoll. Az itt bemutatott protokoll nem teljes, hiszen csak azt mutatom meg, hogy lehet egy ilyen aláírást szerezni, és nem azt, hogy ezt hogyan lehet a célra használni. Ez még kidolgozásra szorul, és csak egy késõbbi verzióban lesz behozva. A mostani verzió egy ugyanezen az elven alapuló, de lassab és kevésbé biztonságos protokollt fog használni.
a*(b^K)
(a*(b^K))^K-1 = (a^K-1)*b
Ehhez az kell, hogy a kódolási mûvelet asszociatív legyen. Bõvebb anyag az irodalmakban található.
Jelölések:
a
Az aláírandó objektum b
A véletlen faktor K
A Bank publikus kulcsa K-1
A Bank privát kulcsa