• No results found

De ongeldige-krommeaanval

In document Elliptische-krommecryptografie (pagina 38-40)

7 Twistveiligheid en Montgomery-ladders

7.1 De ongeldige-krommeaanval

In definitie 5.1 van het ECDLP namen we aan dat de aanvaller alleen de volgende gegevens heeft.

• Het lichaam Fq,

• De kromme E(Fq), en

• De punten P en Q = mP .

In bepaalde situaties is het echter mogelijk voor Eve om meer gegevens te achterhalen, waarmee ze wel in polynomiale tijd de waarde van m kan achterhalen.

Als voorbeeld hiervan bespreken we enkele aanvallen op het statische Diffie-Hellman- protocol, omschreven in [6]. Het Diffie-Hellman-protocol bespraken we in paragraaf 6.2. Bij dit protocol hebben Alice en Bob allebei een geheim getal, a en b. We kunnen deze getallen als priv´e-sleutels beschouwen. Met ‘statisch’ bedoelen we dat de partijen eenmalig een priv´e-sleutel genereren, en die hergebruiken voor alle interacties. Niet alleen voor de interacties met elkaar, maar voor elke interactie waarbij ze dit protocol gebruiken. Ook het punt P , het lichaam Fq, en de kromme E(Fq) worden hergebruikt.

Als Eve contact opzoekt met Bob via dit protocol, dan zal Bob dezelfde priv´e-sleutel gebruiken als in zijn interacties met Alice. In deze paragraaf bespreken we enkele aan- vallen, waarbij Eve gaat proberen informatie over b te achterhalen door met Bob contact op te nemen. We nemen hierbij aan dat b gekozen is als een getal tussen 0 en ord(P ).

7.1.1 De kleine-ondergroepaanval

Algoritme 7.1 (Kleine-ondergroepaanval). Eve zoekt contact op met Bob, en vraagt hem om bepaalde gegevens te versturen. Ze gebruiken het Diffie-Hellman-protocol om een sleutel te kiezen. Bob gebruikt zijn priv´e-sleutel b om het punt Pb = bP te berekenen,

en stuurt dit naar Eve.

Om informatie te achterhalen over b, wijkt Eve nu expres af van het protocol. In plaats van zelf een getal c te kiezen, en het punt cP naar Bob te sturen, kiest Eve een punt R ∈ E(Fq) met een kleine orde r, en stuurt dit naar Bob. Dit punt is dus niet

noodzakelijk een veelvoud van P .

Bob zal nu het punt bR berekenen, en dat als sleutel gebruiken om zijn bericht te versleutelen. Dat versleutelde bericht stuurt hij naar Eve. Omdat R een kleine orde heeft, hoeft Eve slechts een klein aantal mogelijkheden voor nR langs te gaan om te achterhalen wat de sleutel is waarmee Bob het bericht versleuteld heeft. Dit vertelt Eve de waarde van (b mod r).

Door de kromme E(Fq) en het punt P verstandig te kiezen, kunnen we zorgen dat Eve

weinig heeft aan deze extra gegevens over b. In paragraaf 5.4 over de Pohlig-Hellman- aanval bespraken we dat het belangrijk is om het punt P te kiezen zodat het minstens ´e´en grote priemdeler heeft. We kiezen de kromme E(Fq) zodat

#E(Fq) = kp,

waarbij p een groot priemgetal is. Het getal k noemen we de cofactor. Het punt P wordt dan zo gekozen dat ord(P ) = p.

De meeste informatie die Eve kan behalen met de kleine-ondergroepaanval, is de waarde van (b mod k). Het aantal mogelijkheden voor b wordt door die informatie beperkt tot ongeveer p/k. Door #E(Fq) zo te kiezen dat de cofactor k verwaarloos-

baar klein is relatief tot p, kunnen we zorgen dat Eve weinig winst kan behalen met de kleine-ondergroepaanval.

7.1.2 De ongeldige-krommeaanval

Met een kleine aanpassing kunnen we echter een aanval bedenken die Eve meer op kan leveren. In de kleine-ondergroepaanval koos Eve een punt R dat niet noodzakelijk een veelvoud van P was. Eve kan nog een stap verder gaan, en een punt R kiezen dat niet eens op de kromme E(Fq) ligt. Stel, bijvoorbeeld, dat Alice en Bob gebruik maken van

een kromme in Weierstrassvorm, gegeven door y2 = x3+ Ax + B.

Dan kan Eve een punt R met orde r kiezen op een alternatieve kromme D(Fq) gegeven

door

y2 = x3+ Ax + C.

Merk op dat in de formules voor optelling uit definitie 1.3 nooit de waarde van B wordt gebruikt. Dit betekent dat die formules hetzelfde zijn voor E(Fq) en D(Fq).

Als Eve dus R naar Bob stuurt, en Bob probeert bR te berekenen onder de aanname dat R een punt op E(Fq) is, dan zal hij correct de waarde van bR ∈ D(Fq) berekenen.

Eve kan dus met het punt R ∈ D(Fq) hetzelfde stappenplan volgen als bij de kleine-

ondergroepaanval. Dit geeft Eve (b mod r).

Het voordeel dat Eve hierbij heeft, is dat er minder beperkingen zijn op de waarden die r kan hebben. Als we een punt R uit E(Fq) kiezen, dan zal de orde van R altijd een

deler zijn van #E(Fq). Door ook punten uit andere krommen te kiezen zijn we van deze

beperking af.

Voorbeeld 7.2. Alice en Bob gebruiken, net als in voorbeeld 6.4, de kromme E(F151)

gegeven door y2 = x3 + 9x + 81. Hiervoor geldt dat #E(F151) = 137, een priemgetal.

Eve neemt daarom haar eigen kromme D(F151), gegeven door y2 = x3+ 9x + 93. Deze

kromme heeft een orde van 150, en bevat dus punten van orde 2, 3 en 5.

Zonder die beperkingen voor de waarde die r kan hebben, kunnen we het volgende algoritme opstellen.

Algoritme 7.3 (Ongeldige-krommeaanval). Eve kiest een punt R2 met orde 2 op

een elliptische kromme D2(Fq), en achterhaalt (b mod 2) op dezelfde manier als bij de

kleine-ondergroepaanval. Ze herhaalt het proces met een punt R3 met orde 3 op een

andere kromme om (b mod 3) te achterhalen. Dit blijft ze herhalen voor punten R5,

R7, et cetera. Uiteindelijk weet Eve (b mod r) voor genoeg priemgetallen r om met de

Chinese reststelling b te kunnen achterhalen.

Een simpele verdediging tegen deze aanval zou zijn om van elk aangeleverd punt te controleren of het voldoet aan de vergelijking y2 = x3 + Ax + B. Echter, omdat die controle extra complexiteit introduceert voor Alice en Bob, wordt hij meestal niet ge¨ımplementeerd in protocollen.

Een andere manier om te verdedigen tegen deze aanval is door gebruik te maken van een speciaal soort kromme, genaamd een Montgomery-kromme. Deze krommen introduceren we in de volgende paragraaf. Vervolgens bespreken we in paragraaf 7.3 hoe deze krommen nuttig zijn bij de verdediging tegen de ongeldige-krommeaanval.

In document Elliptische-krommecryptografie (pagina 38-40)