14.6 Digitale handtekeningen

We hebben in de afgelopen lessen gezien hoe we cryptografie kunnen gebruiken om boodschappen veilig te versturen. In deze paragraaf kijken we naar een andere, maar niet minder belangrijke, toepassing van cryptografie.

Wanneer we een boodschap ontvangen, willen we graag zeker weten dat de afzender inderdaad de persoon is die hij zegt dat hij is. Stel dat een bank een opdracht krijgt waarin staat dat er geld van een bepaalde rekening overgeschreven moet worden naar een andere rekening. De bank wil dan wel graag zeker weten dat de persoon die die opdracht geeft, daartoe gemachtigd is. Hiervoor gebruikt de bank een crypto-systeem. De opdrachtgever moet bepaalde informatie geven die alleen een gemachtigd persoon kan weten.

Door het meesturen van een digitale handtekening kan zekerheid verkregen worden over of de afzender van een bericht is wie hij zegt dat hij is.

Alice verstuurt een bericht aan Bob. Ze stuurt een digitale handtekening mee. De digitale handtekening mag alleen door Alice gemaakt kunnen worden. Dit betekent dat Alice er bepaalde geheime informatie voor nodig moet hebben om de handtekening te kunnen maken. Bob moet de handtekening kunnen controleren en dus heeft hij enige kennis over de informatie van Alice nodig. Hij moet de handtekening immers kunnen onderscheiden van valse handtekeningen. Misschien herken je hierin al de geheime en publieke sleutel die we eerder in de public-key cryptografie tegenkwamen.

Het RSA-cryptosysteem kunnen we gebruiken om een digitale handtekening te maken. De geheime en publieke sleutel worden gekozen als gebruikelijk. 
Noem de geheime sleutel van Alice {n,a} en de publieke sleutel van Alice {n,A} met a*A mod KAlice = 1
Noem de geheime sleutel van Bob {m,b} en de publieke sleutel van Bob {m,B} met b*B mod KBob= 1
Als Alice een geheime boodschap wil versturen aan Bob en ze bovendien wil dat Bob kan zien dat de boodschap echt van haar komt, gaat ze als volgt te werk.

  1. Alice vercijfert haar boodschap s met haar geheime sleutel {n,a}. Ze berekent dus samod n=t.
  2. Vervolgens vercijfert ze het bericht t met de publieke sleutel {m,B} van Bob, ze berekent dustBmod m = c .

 

Reflectie

a) Leg uit waarom het bericht alleen door Alice verstuurd kan zijn.
b) Beschrijf hoe het ontcijferen in zijn werk gaat.
c) Leg uit waarom dit bericht alleen door Bob gelezen kan worden.

klik hier

 

 

Voorbeeld:
Alice kiest priemgetallen pAlice = 41 en qAlice = 53. 
Ga na dat nAlice = 41x53 = 2173 en KAlice = 40 x 52 = 2080

Bob kiest priemgetallen pBob = 47 en qbob = 61.
Ga na dat nBob = 47x61 = 2867 en KBob = 46 x 60 = 2760

Alice kiest de Publieke sleutel {73,2173} en Privé sleutel {57,2173}
Ga na dat 57x73 mod 2080 = 1.

Bob kiest de Publieke sleutel {79,2867} en Privé sleutel {559,2867}
Ga na dat 79x559 mod 2760 =1

Alice verstuurt aan Bob het bericht xxx ik hou van je
De boodschap wordt eerst gecodeerd volgens de ASCII-tabel en daarna verdeeld in blokken van 3 cijfers.
Het eerste blok vercijfert Alice met haar Privé sleutel en daarna vercijfert ze de hele tekst met dePublieke sleutel van Bob. Bob ontcijfert het ontvangen bericht met zijn eigen Privé sleutel en daarna het eerste blok met de Publieke sleutel van Alice.
We bekijken alleen de berekening voor het eerste blok:
De x heeft ASCII-waarde 120.
12057(mod 2173) = 2047, dus het bericht xxx wordt 204720472047
De blokken worden 204 720 472 047
20479(mod 2867) = 2480
72079(mod 2867) = 0736
47279(mod 2867) = 1259
04779(mod 2867) = 0047
Alice stuurt Bob de blokken 2480 0736 1259 0047

Bob ontcijfert:
2480559(mod 2867) = 204
073679(mod 2867) = 720
125979(mod 2867) = 472
004779(mod 2867) = 047. Alice handtekening is dus 204720472047
In blokken wordt dit 2047 2047 2047 en
204773(mod 2173) = 120, de code van x

Merk op dat de lengte van het blok tijdens de berekening verspringt naar een lengte van 4.
 
Opgave 5 

Alice gaat Bob een bericht voorzien van handtekening sturen. 
Alice kiest als haar priemgetallen pa=5 en qa=13 . 
Bob heeft de priemgetallen pb=7 en qb=11 gekozen.
a) Bereken  Ka en Kb.

De geheime sleutel van Alice is 17 en de geheime sleutel van Bob is 13.
b) Bereken de publieke sleutels van Alice en Bob.

Alice wil het geheime bericht "6" versturen aan Bob en voorzien van een digitale handtekening.
c) Bereken welk bericht Alice aan Bob gaat sturen.
d) Voer de ontcijfering van het bericht voor Bob uit.

 

Reflectie

Merk op dat deze manier van boodschappen verzenden erg veel weg heeft van de oplossing waar Diffie in 1975 mee kwam. Het grote verschil is tweeledig: welke verschillen kun je bedenken?

klik hier

 

Bestudeer nu de pagina 14.6A Euler en Fermat.