300 likes | 450 Views
Workshop: Geheimschrift op de TI-83+. Kom hier met je TI-83 of TI-84 het programma ophalen!. Gerard Tel Universiteit Utrecht. Wat gaan we doen?. Achtergrondweetjes opfrissen en drie kandidaten zoeken Uitleg en demo: Elgamal geheimschrift Waarom werkt het zo goed?
E N D
Workshop:Geheimschrift op de TI-83+ Kom hier met je TI-83 of TI-84 het programma ophalen! Gerard Tel Universiteit Utrecht
Wat gaan we doen? • Achtergrondweetjes opfrissen en drie kandidaten zoeken • Uitleg en demo:Elgamal geheimschrift • Waarom werkt het zo goed? • Prijsvraag: gedwongen samenwerken Workshop Elgamal
Wat gaan we doen? • Achtergrondweetjes opfrissen en drie kandidaten zoeken • Uitleg en demo:Elgamal geheimschrift • Waarom werkt het zo goed? • Prijsvraag: gedwongen samenwerken Workshop Elgamal
Een 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!! Workshop Elgamal
Vermenigvuldigingstabel • “Sudoku” • Delen kan • Machten: • 54 = (52)2 = 42 = Workshop Elgamal
Een 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 Workshop Elgamal
Een beetje TI-83, 83+, 84+ • Grafisch • Programmeerbaar • Algemeen in VWO • Drie Teams, elk met TI83/84 en Elgamal programma Workshop Elgamal
Een 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
Demo 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
Wat gaan we doen? • Achtergrondweetjes opfrissen en drie kandidaten zoeken • Uitleg en demo:Elgamal geheimschrift • Waarom werkt het zo goed? • Prijsvraag: gedwongen samenwerken Workshop Elgamal
Public 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
Key pair alleen voor Team 1 • Team 2 maakt ook een key pair • Team 1 voert b2 in (met 2: ) Totaal nu 4 sleutels: Team 1: Team 2: Team 3 en zaal a2 a1 b1 b2 Nooit vertellen! Workshop Elgamal
Relatie tussen a en b • Relatie: b = ga • Reken van a naar b:Machtsverheffen(in sleutelgeneratie) • Reken van b naar a:Logaritme: onmogelijk Workshop Elgamal
Website 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
Opdracht: T2:- boodschap x,- Elgamal, 3: Uitkomst: 2 getallen (u, v) Vertel u en v Versleuteling: Random blinder z v = x.z (Caesar!) Hint u bevatde blinder z Versleutelen: gebruik b informatie over die T1 kan gebruiken Random k Blinder z = bk Hint u = gk Workshop Elgamal
Opdracht: T1:- Elgamal, 4: - Voer u en v in Uitkomst: 1 getal x x aan T2(Gelijk???) Ontsleuteling: Blinder z = ua Boodschap x = v/z Ontsleutelen: gebruik a Versleutel-Blinder: z = bk = (ga)k Ontsleutel-Blinder: z = ua = (gk)a Workshop Elgamal
Gezien: Public b = ga Hint u = gk Product v = x.z Niet te berekenen: Secret a Blinder z Getal x T3 ziet de communicatie maar niet de secrets Afluisteren? Workshop Elgamal
Wat gaan we doen? • Achtergrondweetjes opfrissen en drie kandidaten zoeken • Uitleg en demo:Elgamal geheimschrift • Waarom werkt het zo goed? • Prijsvraag: gedwongen samenwerken Workshop Elgamal
Prijsvraag: 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.b2Versleutel getal op snoepwaar. • Vertel mij getal op reep! Workshop Elgamal
Symmetrisch z: 1 Public a1b1a2 b2: 4 Zijn er veel sleutels nodig? Een sleutel per gebruikerspaar: ½ n(n-1) sleutels Een sleutelpaar per gebruiker: 2 n sleutels Workshop Elgamal
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
Elgamal 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 RSA en Elgamal Belangrijk voor veiligheid als er maar weinig boodschappen mogelijk zijn. Stemming: JA / NEE Workshop Elgamal
Homomorfie Versleutel:Encb(x1): (u1, v1)Encb(x2): (u2, v2) Vermenigvuldig:(u, v) = (u1u2, v1v2) Ontsleutel:Deca(u, v): x1x2 Geheime stemming JA: versleutel gNEE: versleutel 1 Vermenigvuldig alle stemmen:u = u1u2…unv = v1v2…vn Ontsleutel (u, v) geeft g#JA Stemmen met Elgamal Workshop Elgamal
Werking 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! Manipuleerbaarheid: Veiling Workshop Elgamal
Wat gaan we doen? • Achtergrondweetjes opfrissen en drie teams maken • Uitleg en demo:Elgamal geheimschrift • Waarom werkt het zo goed? • Prijsvraag: gedwongen samenwerken Workshop Elgamal
Sleutel bij b = b1b2 • Omdat b1 = ga1 en b2 = ga2is b = g?? • Omdat b1 = ga1 en b2 = ga2is b = g(a1+a2) • Vind x = v/u(a1+a2)zonder elkaar a1 of a2 te vertellen Workshop Elgamal
Het 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
Conclusies • Symmetrische of public-key crypto • Elgamal gebaseerd op discrete log • Demo op TI-83+ • ??: Boek of collegeBOL: Crypotgrafie Workshop Elgamal
Oplossing 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
Overzicht 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? Workshop Elgamal