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 ~309 cijfers!! Workshop Elgamal
Een beetje Informatica Wat kun je uitrekenen? (En hoe?) Machtsverheffen ga in 5.log(a) verm Logaritme met grondtal g: niet berekenbaar!! Kost ~3.√a verm |a| Exp Log 5 30 3000 50 250 3E25 100 500 3E50 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 Ceasar Code, boodschap x Zender en ontvanger gebruiken dezelfde sleutel: symmetrische code Gebruik TI-83: Hoofdmenu, 1:Ceasar Team 1 kiest sleutel z Team 1, 2 stel sleutel in (2:) Workshop Elgamal
Demo Ceasar code Team 2: Verzin boodschap x Team 2: Versleutel x (4: ) en vertel codebericht y Team 1: Ontsleutel y (5: ) Formules: Encz(x) = x.z Decz(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
Versleutelen: gebruik b Opdracht: T2: - kies getal x, - Elgamal, 3: Uitkomst: 2 getallen (u, v) Vertel u en v Versleuteling: Random blinder z v = x.z (Caesar!) Hint u bevat de blinder z informatie over die T1 kan gebruiken Random k Blinder z = bk Hint u = gk Workshop Elgamal
Ontsleutelen: gebruik a 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 Versleutel-Blinder: z = bk = (ga)k Ontsleutel-Blinder: z = ua = (gk)a Workshop Elgamal
Afluisteren? T3 ziet de communicatie maar niet de secrets Gezien: Public b = ga Hint u = gk Product v = x.z Niet te berekenen: Secret a Blinder z Getal x 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.b2 Versleutel getal op snoepwaar. Vertel mij getal op reep! Workshop Elgamal
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 Workshop Elgamal
RSA en Elgamal RSA Versleutelen is deterministisch Prijsvraag: versleutel 80 t/m 200, vergelijk resultaat Elgamal Versleutelen kiest random k Opnieuw versleutelen van dezelfde x geeft ander resultaat Boodschap raden en zelf versleutelen kan niet! Belangrijk voor veiligheid als er maar weinig boodschappen mogelijk zijn. Stemming: JA / NEE Workshop Elgamal
Stemmen met Elgamal Homomorfie Geheime stemming 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
Manipuleerbaarheid: Veiling Werking van veiling Representeer bod met 2-macht: 2r Gesloten veiling: versleuteld bod Bod r: (gk, bk.2r) Ontcijfer berichten en kies hoogste Overbied bod (u1, v1): Bereken (u2, v2) als Encb(2) Bied (u1u2, v1v2) Win met onbekende prijs! 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 = 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
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 http://www.cs.uu.nl/~gerard/Cryptografie/Elgamal Workshop Elgamal
Conclusies Symmetrische of public-key crypto Elgamal gebaseerd op discrete log Demo op TI-83+ ??: Boek of college 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 b Decryptie: x = v/ua met a Prijsvraag: b = b1b2. Ontsleutelen? Workshop Elgamal