Machtsverheffen als geheimschrift

advertisement
Machtsverheffen als
geheimschrift
dr Gerard Tel
Universiteit Utrecht
Nationale
Wiskundedagen 2003
1
Overzicht
Cryptografie vroeger
 Sleuteluitwisseling met getallen
 ElGamal geheimschrift: machten
 ElGamal breken: logaritme
 Generator met samengestelde orde
 RSA: worteltrekken
 Discussie, afsluiting

2
Cryptografie in de oudheid

Caesar aan generaal:

Vijand ziet boodschap
maar kent z niet
Aanvallen!
+ z (Caesar)
Ddqydoohq!
- z (Gen)
Aanvallen!
Aanvallen!
Sleutel: z
Symmetrisch
3
Cryptografie in 2003

Email, telefoon, betaalverkeer, disk

Alice, Bob en Oscar

Ez(x) ingewikkelder dan x + z

Probleem:
sleuteluitwisseling
4
Sleuteluitwisseling
Alice en Bob hebben z
Oscar ziet z niet
Zonder ontmoeting?
5
Public-keycryptografie
Diffie en Hellman

Twee sleutels

Encryptie: publiek
Decryptie: geheim



(1976)
Pretty Good Privacy
RSA en ElGamal
6
Diffie-Hellman: (ga)k = (gk)a
Vast: g = 2.51
random keuze
Links: a = 0.023
Rechts: k = 14.85
Bereken b = 2.51a
Bereken u = 2.51k
b = 1.021
u = 861300
afronden
grootte
Bereken z = 861300a
1.36
z = 1.369
Bereken z = 1.021k
1.36
z = 1.362
????
7
Modulair rekenen

Modulus vast getal m = 499
498
250 *+498
350== 1600 orde(498)
wordt 101= 2
250 ^
*3
350
87500
wordt 175
139
= =1
orde(139)
=3
250 ^ 350 = 1901… wordt 437
360 ^ 6 =
1
orde(360) = 6
Generator g = 4
 Orde q = 83 want g83 = 1

8
Modulair Diffie-Hellman
Vast: g = 4
Alice: a = 40
Bob: k = 71
Bereken b = 4a
Bereken u = 4k
b = 187
u = 77
Bereken z = 77a
z = 118
Bereken z = 187k
1. Afronden
z = 118
2. Grootte
3. Random
9
Hoeveel rekenwerk?
Alice: tweemaal macht
ga
en
ua
Bob: tweemaal macht
gk
en
bk
Oscar: ziet g, b en u;
z=u
??(log b)
Kost: 1 macht en 1 log
b = ga
u = gk
z = ga*k = ua
10
Wat kost machtsverheffen?
Hoeveel vermenigvuldigingen: g21?
g21
= ((g10)2) * g
2 verm uit g10
= (((g5)2)2) * g
1 verm uit g5
= ((((g2)2 * g)2)2) * g
2 verm uit g2
Vermenigvuldigingen: 6
11
Indiaas machtsverheffen
Eerste 1:
gratis
Een 0:
1 verm.
Schrijf 21 binair: 10101
 g1
= g,
 g10
= g1 * g1,
 g101
= g10 * g10 * g,
 g1010
= g101 * g101,
 g10101 = g1010 * g1010 *
Lengte:
lg q
0 en 1:
Half om
half
gratisEen 1:
2 verm.
1 verm.
2 verm.
1 verm.
g, 2 verm.
Kosten:
1.5 lg q
12
3log
10 berekenen op rijm
Het relaas van 3kus en 10a
De fout-fracties scheiden w’in tweeerlei soort
Verdeling:
in die te klein zijn, en die te groot zijn
de fractie vijf tweede blijkt boven de maat;
waarom dat zo is, valt vrij simpel te zeggen
want 3kus hoog vijf wint van 10a-kwadraat
y < 5/2
want
35/2 > 10
Net zo is twee-eerste (da’s 2 dus) te klein, omdat drie-tot-de-twee-de haalt niet tien-hoog-een.
Maar neem je elf-vijfde dan zit j’er weer boven
want drie-tot-de-elfde slaat vijfde-macht-van-tien.
y > 2/1
want 32 < 101
y < 11/5
want 311 > 105
Elke reele functie is effectief inverteerbaar
13
De discrete logaritme


Geen ordening!!
Crypto> [ g^i | i <- [30..38] ]
[345,382,31,124,496,487,451,307,230]
Geen inperking
zoekruimte!
 Algoritme?
 Kosten?

14
Shanks:
grote stappen, kleine stappen
Zoek a =
glog
g = 4, b = 187,
b
a < q = 83
Grote stappen: gi voor veelvouden van t:
Crypto> [g^i | i <- [9,18..90] ]
[169,118,481,451,371,324,365,308,156,416]
g45
g9
Kleine stappen: b * gj voor j < t:
g18
Crypto> [ b*(g^j) | j <- [0..8] ]
g27
[187,249,497,491,467,371,486,447,291]
b
b*g
b*g2
b*g5
b*g8
15
Shanks: Uitkomst en kosten
Botsing: g45 = b * g5
Dus: b = g40
Grote stappen:
q/t
Veelvouden van t tot boven q
Kleine stappen:
Samen:
Minimaal voor t = q : 2q
t
q/t + t
16
Werk per partij:
orde
q
Alice/Bob:
1.5 lg q
Oscar:
2 q
83
10
18
106
30
2000
1012
60
2.000.000
1048
240
2 x 1024
Kan op
SmartCard
Kan niet op
Supercomputer
17
ElGamal encryptie (1985)
Alice
1.
Sleutel maken:
public en secret
Kies a;
bereken b = ga
2.
Publiek
Bob
PGP public key:
a^h479mfjksie$
(dit is b)
Boodschap x
Versleutelen: public
Kies k; u = gk
Ontsleutelen: secret
z = bk; v = x.z
3. Ontvang (u, v)
z = ua ; x = v/z
(u, v)
multiply,
don’t add
Oscar:
b, u, v
18
Samengestelde orde:
Pohlig-Hellman



Bepaal a = hlog b
waar hr = 1
r=c.d
Shanks: 2 r
Gemengde radix:
a = a0 + c . a1
Vind a0 in 2c
en a1 in 2d:
Samen 2(c + d)


Omdat b = ha:
bd = (ha)d
= h(a0 + c. a1)d
= hd.a0 + c.d.a1
= (hd)a0
Dus a0 = h’ log bd
waar h’ = hd,
orde(h’) = c
19
Gekozen-berichtaanval

Oscar zendt nep-bericht

Alice ontsleutelt x

Oscar pikt x
20
Aanval tegen ElGamal




Oscar neemt u met
 Oscar heeft:
samengestelde orde
u, v, x
kan met
nep-u
Stuur (u, v)
 Bereken:
z = v/x
Alice berekent
ulog z
a
a
=
z=u
x = v/z
controleer
Oscar pikt x
dat uq = 1
Behandel een ontsleuteld bericht zo zorgvuldig
als je geheime sleutel, ook als het onzin is!
21
RSA: geheim grondtal

Eerste PK-systeem
Public key (n, e)

Encryptie van x
door Bob:
y = xe (mod n)

Ontsleutelen:
Discrete wortel ey
Rivest, Shamir,
Adleman (1978)
22
Ontsleutelen met Lagrange



n=p.q
φ = (p -1)(q -1)
xφ = 1
(mod n)



Bereken d zo dat
e.d = k.φ +1
yd = (xe)d
= x k.φ +1
= 1k . x = x
Kraken?
Oscar probeert n
te factoriseren.
Neem n 1024 bits. 23
Discussie
Meer informatie:
[email protected]
www.cs.uu.nl/~gerard/Cryptografie
24
Download