Workshop: Geheimschrift op de TI-83+
description
Transcript of Workshop: Geheimschrift op de TI-83+
Workshop:Workshop:Geheimschrift Geheimschrift op de TI-83+op de TI-83+
Gerard TelGerard Tel
Universiteit UtrechtUniversiteit Utrecht
Kom hier met je TI-83 of TI-
84 het programma
ophalen!
Workshop Elgamal 2
Wat gaan we doen?Wat gaan we doen?1. Achtergrondweetjes opfrissen en drie
kandidaten zoeken2. Uitleg en demo:
Elgamal geheimschrift3. Waarom werkt het zo goed?4. Prijsvraag: gedwongen samenwerken
Workshop Elgamal 3
Wat gaan we doen?Wat gaan we doen?1. Achtergrondweetjes opfrissen en drie
kandidaten zoeken2. Uitleg en demo:
Elgamal geheimschrift3. Waarom werkt het zo goed?4. Prijsvraag: gedwongen samenwerken
Workshop Elgamal 4
Een beetje WiskundeEen beetje Wiskunde• Rekenen modulo priem p (95917)
met 0, 1, … p-2, p-1• Eindig veel getallen,
delen door elk getal ≠0• Normale rekenregels geldig
(ga)k = (gk)a
Praktijk: p heeft ~617 cijfers!!
VermenigvuldigingstabelVermenigvuldigingstabel
(7) 1 2 3 4 5 6
1 1 2 3 4 5 6
2 2 4 6 1 3 5
3 3 6 2 5 1 4
4 4 1 5 2 6 3
5 5 3 1 6 4 2
6 6 5 4 3 2 1
Workshop Elgamal 5
• “Sudoku”• Delen kan• Machten:• 54 = (52)2
= 42 =
Workshop Elgamal 6
Een beetje InformaticaEen beetje Informatica• Wat kun je uitrekenen? (En hoe?)• Macht y = ga in 5.log(a) verm• Logaritme met grondtal g: gx = b
niet berekenbaar!! Kost ~3.√a verm
|a| Macht Log
5 25 1000
50 250 3E25
100 500 3E50
Workshop Elgamal 7
Een beetje TI-83, 83+, 84+Een beetje TI-83, 83+, 84+• Grafisch• Programmeerbaar• Algemeen in VWO
• Drie Teams, elk met TI83/84 en Elgamal programma
Workshop Elgamal 8
Een beetje CryptografieEen beetje Cryptografie• Caesar Code, boodschap x• Zender en ontvanger
gebruiken dezelfde sleutel: symmetrische code
• Gebruik TI-83:Hoofdmenu, 1:Caesar
• Team 1 kiest sleutel z• Team 1, 2 stel sleutel in (2:)
Workshop Elgamal 9
Demo Caesar codeDemo Caesar code• Team 2: Verzin boodschap x• Team 2: Versleutel x (4: ) en
vertel codebericht y• Team 1: Ontsleutel y (5: )
Formules: Encz(x) = x.zDecz(y) = y/z
Wat weet Team 3 (zaal)?
Workshop Elgamal 10
Wat gaan we doen?Wat gaan we doen?1. Achtergrondweetjes opfrissen en drie
kandidaten zoeken2. Uitleg en demo:
Elgamal geheimschrift3. Waarom werkt het zo
goed?4. Prijsvraag: gedwongen
samenwerken
Workshop Elgamal 11
Public Key codesPublic Key codes• Caesar: T2 gebruikt z voor
versleutelen, T3 voor ontsleutelen
• Idee: Encb(x), Deca(y)Key pair met a secret, b public
Hoofdmenu, 2: Elgamal• T1: 1: Sleutel maken, vertel b• T2: 2: Invoer public, b• T3: Voer ook b in
Workshop Elgamal 12
Team 3 en zaal
Team 2:Team 1:
Key pair alleen voor Team 1Key pair alleen voor Team 1• Team 2 maakt ook een key pair
• Team 1 voert b2 in (met 2: )
Totaal nu 4 sleutels:
a1a2b2b1
Nooit vertellen!
Workshop Elgamal 13
Relatie tussen Relatie tussen aa en en bb• Relatie: b = ga
• Reken van a naar b:Machtsverheffen(in sleutelgeneratie)
• Reken van b naar a:Logaritme: onmogelijk
Website met httpsWebsite met https• Bv. gmail DigiD bancaire sites• Adresbalk
• Website en browser berekenen samen een geheim getal z
• Versleutel gegevens met z
• Post-DigiNotar tijdperk Workshop Elgamal 14
Workshop Elgamal 15
Versleutelen: gebruik Versleutelen: gebruik bbOpdracht:• T2:
- boodschap x,- Elgamal, 3:
• Uitkomst: 2 getallen (u, v)
• Vertel u en v
Versleuteling:1. Random blinder z2. v = x.z (Caesar!)3. Hint u bevat
de blinder zinformatie over
die T1 kan gebruiken
Random kBlinder z = bk
Hint u = gk
Workshop Elgamal 16
Ontsleutelen: gebruik Ontsleutelen: gebruik aaOpdracht:• T1:
- Elgamal, 4: - Voer u en v in
• Uitkomst: 1 getal x• x aan T2
(Gelijk???)
Ontsleuteling:1. Blinder z = ua
2. Boodschap x = v/z
Versleutel-Blinder:z = bk = (ga)k
Ontsleutel-Blinder:z = ua = (gk)a
Workshop Elgamal 17
Afluisteren?Afluisteren?Gezien:1. Public b = ga
2. Hint u = gk
3. Product v = x.z
Niet te berekenen:1. Secret a2. Blinder z3. Getal x
T3 ziet de communicatie maar niet de secrets
Workshop Elgamal 18
Wat gaan we doen?Wat gaan we doen?1. Achtergrondweetjes opfrissen en drie
kandidaten zoeken2. Uitleg en demo:
Elgamal geheimschrift3. Waarom werkt het zo goed?4. Prijsvraag: gedwongen samenwerken
Workshop Elgamal 19
Prijsvraag: samenwerkenPrijsvraag: samenwerken• Versleutelen met b:
nodig a = log(b) voor ontsleutelen• Kies een random getal b …?
Niemand kan ooit ontsleutelen!
• Stel in als b: Product b1.b2
Versleutel getal op snoepwaar.• Vertel mij getal op reep!
Workshop Elgamal 20
Zijn er veel sleutels nodig?Zijn er veel sleutels nodig?Symmetrisch z: 1 Public a1 b1 a2 b2: 4
Een sleutel per gebruikerspaar:
½ n(n-1)
sleutels
Een sleutelpaar per gebruiker:
2 n
sleutels
Nou is het vast erg veilig?Nou is het vast erg veilig?• Als T2 de goede b
(van T1) heeft: JA!• Aanval: T3 maakt
zelf a en b, stuur b naar T2
• Zet T1 buitenspel!Phishing
• Certificaten
• 2011: ruim 600 certificaataanbieders
• 1 rotte appel bederft hele systeem
Workshop Elgamal 21
Workshop Elgamal 22
RSA en ElgamalRSA en ElgamalElgamal• Versleutelen kiest
random k• Opnieuw
versleutelen van dezelfde x geeft ander resultaat
• Boodschap raden en zelf versleutelen kan niet!
RSA• Versleutelen is
deterministisch• Prijsvraag:
versleutel 80 t/m 200, vergelijk resultaat
Belangrijk voor veiligheid als er maar weinig boodschappen mogelijk zijn.
Stemming: JA / NEE
Workshop Elgamal 23
Stemmen met ElgamalStemmen met ElgamalHomomorfie• Versleutel:
Encb(x1): (u1, v1)Encb(x2): (u2, v2)
• Vermenigvuldig:(u, v) = (u1u2, v1v2)
• Ontsleutel:Deca(u, v): x1x2
Geheime stemming• JA: versleutel g
NEE: versleutel 1• Vermenigvuldig
alle stemmen: u = u1u2…un
v = v1v2…vn
• Ontsleutel (u, v) geeft g#JA
Workshop Elgamal 24
Manipuleerbaarheid: VeilingManipuleerbaarheid: VeilingWerking van veiling• Representeer bod
met macht: gr
• Gesloten veiling: versleuteld bod
• Bod r: (gk, bk.gr)• Ontcijfer berichten
en kies hoogste
Overbied bod (u1, v1):
• Bereken (u2, v2) als Encb(g)
• Bied (u1u2, v1v2)
• Win met onbekende prijs!
Workshop Elgamal 25
Wat gaan we doen?Wat gaan we doen?1. Achtergrondweetjes opfrissen en drie
teams maken2. Uitleg en demo:
Elgamal geheimschrift3. Waarom werkt het zo goed?4. Prijsvraag: gedwongen samenwerken
Workshop Elgamal 26
Sleutel bij Sleutel bij bb = = bb11bb22
• Omdat b1 = ga1 en b2 = ga2 is b = g??
• Omdat b1 = ga1 en b2 = ga2 is b = g(a1+a2)
• Vind x = v/u(a1+a2)
zonder elkaar a1 of a2 te vertellen
Workshop Elgamal 27
Het Elgamal programmaHet Elgamal programma• Te gebruiken in VWO klas• Programma, workshop-
boekje, uitleg, deze slides op website
• Programma uitbreidbaar• Boekje heeft ideeën voor
experimenten/scripties
www.staff.science.uu.nl/~tel00101/Cryptografie/Elgamal/
Workshop Elgamal 28
ConclusiesConclusies• Symmetrische of
public-key crypto• Elgamal gebaseerd
op discrete log• Demo op TI-83+
• ??: Boek of collegeBOL: Crypotgrafie
Workshop Elgamal 29
Oplossing PrijsvraagOplossing Prijsvraag• Ontsleutelen is: v delen door ua
• u(a1+a2) is: ua1.ua2
• Deel eerst door ua1 en dan door ua2
• Team 1: bereken v’ = Deca1(u, v)Team 2: bereken x = Deca2(u, v’)
Workshop Elgamal 30
Overzicht van formulesOverzicht van formules• Constanten:
Priemgetal p, grondtal g• Sleutelpaar:
Secret a en Public b = ga
• Encryptie: (u, v) = (gk, x.bk) met bDecryptie: x = v/ua met a
• Prijsvraag: b = b1b2. Ontsleutelen?