Opgaven Rekenen met Getallen Security, 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven. 1. Stein s Grootste Gemene Deler: (a) Bereken gcd(432, 136) met de methode van Stein. Laat de tussenstappen zien. (b) Kan de regel voor twee even getallen alleen in het begin voorkomen, of kan die ook nog na toepassing van een andere regel? Geef een voorbeeld of bewijs dat het niet kan. Oplossing: Samenvatting van Stein: Als èèn van de getallen even is, deel die door twee (eventueel: zo vaak tot het oneven is). Als beide even zijn: allebei door twee delen en onthoud hoe vaak je dit doet. Als beide oneven zijn, ga verder met de kleinste en het verschil. Als ze gelijk zijn is het antwoord die waarde, vermenigvuldigd met twee tot de macht het aantal toepassingen van de dubbel-even-regel. (a) Daar gaan we: (432, 136) wordt (216, 68) en dan (108, 34) en dan (54, 17) volgens de dubbel-even regel, die nu drie keer is toegepast. Met de eerste regel gaan we naar (27, 17), met de laatste naar (10, 17), met de eerste naar (5, 17), met de laatste naar (5, 12), met de eerste naar (5, 6) en (5, 3), met de laatste naar (2, 3) en dan komt (1, 3) en (1, 2) en (1, 1). Het komt dus uit op 1 en omdat de dubbel-even-regel drie keer is gebruikt is het antwoord 8. (b) De dubbel-even regel kan alleen in het begin, wanneer beide argumenten even zijn. Heb je eenmaal een oneven argument, dan blijft dat zo. Immers, met 1 oneven argument wordt alleen de andere veranderd dus je houdt minstens 1 oneven. Als beide oneven zijn, ga je verder met o.a. de kleinste, en die is natuurlijk oneven. (Het verschil is juist altijd even.) Beoordeling/Toelichting: Totaal 3pt. Onderdeel (a) levert 2pt voor goed antwoord en juiste beschrijving. Het bewijs bij (b) is goed voor 1pt. 2. Machtsverheffen: Exponentiatie in Z n (berekening van a b mod n uit n, a en b) gebeurt door meerdere malen te vermenigvuldigen en te reduceren modulo n. (a) Hoe vaak moet je vermenigvuldigen voor a 17? Hoe vaak voor a 15? Waarom? (b) Geef de procedure voor Indisch Machtsverheffen, ofwel repeated squaring (mag iteratief of recursief). (c) Waarom is 65537 een geschikte exponent voor RSA? Oplossing: (a) Vijf want a 17 = (((a 2 ) 2 ) 2 ) 2.a. Zes als je gebruikt a 15 = ((a 2.a) 2.a) 2.a, maar als je bedenkt dat a 15 = (a 3 ) 5, kan het ook met vijf. (b) In Haskell-stijl: a 1 = a, a 2b = (a b ) 2, a 2b +1 = (a b ) 2.a. Kost twee vermenigvuldigingen voor elke 1 in b (behalve de eerste) en een voor elke 0 in b. (c) Dit is binair 10000000000000001, dus lekker veel nullen. Het is ook priem. Beoordeling/Toelichting: Voor (a) 1pt, voor (b) 2pt, voor (c) 1pt. Beoordelingscodes: A = Gebruikt een Array van e plaatsen, onhaalbaar. E = Telt eerste 1 mee dus 7 resp 8, 1/2pt. L = Tijd is Lineair in e, onacceptabel, geen punt voor (b).
3. Wortels van 1 modulo 299: (a) Schrijf 1 als som van een 13-voud en een 23-voud. (b) Welke vier getallen in Z 299 hebben kwadraat 1? Oplossing: (a) Gebruik extended Euclides en schrijf de achtereenvolgende resten als lineaire combinatie: 23 = 23 + 0; 13 = 0 + 13; 10 = 23 13; 3 = 23 + 26; 1 = 92 91 (dus 4x23 7x13). De getallen 92 en 91 (aka 208) zijn de W 13 en W 23 die je kunt gebruiken om vanuit subgroepen naar Z 299 te rekenen. (b) Bij elke modulus geldt 1 2 = 1 en ( 1) 2 = 1, dus we hebben de eerste twee wortels 1 en 298 al te pakken. Om de andere twee te vinden gebruiken we CRT en zoeken een getal dat 1 is modulo 13 en 1 modulo 23. Dit is W 13 W 23 = 183. Het vierde getal is 183 ofwel 116. Beoordeling/Toelichting: Totaal te behalen 3pt. Voor (a) 1pt, bij (b) 1 voor de karakterisering van het getal in de subgroepen, en 1 voor het daadwerkelijke antwoord. B = Brute-forcen van wortel geeft 1pt. E = ExtEuc toepassen ; inderdaad, doet moet je ook doen en niet alleen zeggen, 0pt. F = 13x + 23y is andere Formulering, geen antwoord; 0pt. M = Geen Motivatie, 1pt bij (b). P = In Positieve getallen, 13.16 + 23.17, is OK. T = Triviale wortels 1 en 1 geven geen punten. 4. Wortel 27: Welke getallen in Z 131 hebben kwadraat 27? Laat zien hoe je dit polynomiaal berekent; noem stellingen uit het dictaat. Oplossing: Gelukkig is 131 een priemgetal en een viervoud min 1. Voor zulke moduli kun je de wortel van b vinden als b (p+1)/4 (Lemma 6.3). Dat komt hier neer op de 33ste macht. Die exponent is binair 100001, dus volgens de Indische methode moeten we vijf keer kwadrateren en nog vermenigvuldigen met 27, steeds met reductie modulo 131 natuurlijk: 27 1 = 27. 27 2 = 729 = 74. 27 4 = 74 2 = 5476 = 105. 27 8 = 105 2 = 11025 = 21. 27 16 = 21 2 = 441 = 48. 27 32 = 48 2 = 2304 = 77. 27 33 = 27 77 = 2079 = 114. Het zou dus 114 moeten zijn, even checken kan nooit kwaad, kwadraat is 12996 en inderdaad is dit 27. De andere oplossing is dan (dit staat ook in 6.3) natuurlijk 114 ofwel 17. Beoordeling/Toelichting: 2pt voor goede antwoorden met berekening. B = Bruteforcen is niet polynomiaal, 1pt. C = CRT is meestal nutteloos bij priem modulus. G = Geen rekenmethode beschreven, max 1/2pt.
5. Wortels van 1 modulo 1333: (a) Schrijf 1 als som van een 31-voud en een 43-voud. (b) Welke vier getallen in Z 1333 hebben kwadraat 1? Oplossing: (a) Gebruik extended Euclides en schrijf de achtereenvolgende resten als lineaire combinatie: 43; 31; 12 = 43-31; 7 = 86 + 93; 5 = 129 124; 2 = 215 + 217; 1 = 559 558 (dus 13x43 18x31). De getallen 559 en 558 (aka 775) zijn de W 31 en W 43 die je kunt gebruiken om vanuit subgroepen naar Z 1333 te rekenen. (b) Bij elke modulus geldt 1 2 = 1 en ( 1) 2 = 1, dus we hebben de eerste twee wortels 1 en 1332 al te pakken. Om de andere twee te vinden gebruiken we CRT en zoeken een getal dat 1 is modulu 43 en 1 modulo 31. Dit is W 43 W 31 = 1117. Het vierde getal is 1117 ofwel 216. Beoordeling/Toelichting: Totaal te behalen 3pt. Voor (a) 1pt, bij (b) 1 voor de karakterisering van het getal in de subgroepen, en 1 voor het daadwerkelijke antwoord. 6. Wortels en Factoren: Om het getal n = 17741 te factoriseren zoekt Marjan twee getallen met hetzelfde kwadraat mod n. (a) Na enig zoeken ontdekt Marjan dat (in Z 17741 ) geldt 1000 2 = 6504 en 16741 2 = 6504. Kan zij hiermee de factoren van n vinden? Zo ja hoe, en wat zijn ze, zo nee waarom niet? (b) Marjan ontdekt (na nog meer zoeken) dat ook 8379 2 = 6504. Kan zij hiermee de factoren van n vinden? Zo ja hoe, en wat zijn ze, zo nee waarom niet? Oplossing: (a) De twee getallen zijn samen n, oftewel 0, ze zijn dus elkaars tegengestelde en hiermee kun je niets: je hebt twee wortels nodig die ongelijk zijn en niet elkaars tegengestelde. (b) 1000 en 8379 zijn niet aan elkaar gelijk en ook niet tegengesteld. Neem de som: 9379 en bepaal ggd(9379,17741) met uitkomst 113; dit is een deler van n. De andere deler is 17741/113 is 157. Beoordeling/Toelichting: Totaal 3pt. Voor (a) 1 pt. Voor (b) 1pt bij de constatering dat de wortels niet-complementair zijn en dat het dus kan. En 2pt voor de berekening die 113 en/of 157 oplevert. Je moet hier wel de kwadraatstelling voor samengestelde modulus (5.23) gebruiken, dus gewoon roepen 113 is niet genoeg. Je hoeft niet eens de Extended versie van Euclides te gebruiken, want aan alleen de ggd heb je genoeg. Beoordelingscodes: C = Uitrekenen met CRT, dit is niet mogelijk want je kunt alleen in de subgroepen rekenen als je de factoren al kent. M = Motivatie ontbreekt. R = Rekenfout. Z = Zegt compleet, ondubbelzinnig en correct hoe t moet maar geeft getal niet.
7. Inverse: Bepaal met behulp van het algoritme van Euclides een oplossing voor: (a) 38x + 43y = 1 (b) 43x + 5y = 3 (c) 112x + 60y + 32z = 33 Bepaal met behulp van het algoritme van Euclides de inverse voor: (I) 38 in Z 43 (II) 86 in Z 264 (III) 52006 in Z 104729 Oplossing: (a-c) Er zijn meerdere antwoorden mogelijk. Bepaal steeds de GGD van de coefficiënten, bij (a) is dit 1 en krijg je uit Extended Euclides dus gelijk een oplossing. Bij (b) is de GGD ook 1, dus EE geeft oplossingen voor 43+5y = 1 - doe die oplossingen keer 3 om de oplossingen van 43x + 5y = 3 te krijgen. Bij (c) moet je twee keer Euclides toepassen: bepaal eerst de GGD van éń paar getallen, en neem dan de GGD van die GGD en de overgebleven coefficiënt. Goede oplossingen zijn bv: (a) x = 17, y = 15, (b) x = 6, y = 51, (c) is onoplosbaar want alle getallen links zijn even, rhs is oneven. (I-III) Bepaal steeds via Extended Euclides wanneer geldt dat een lineare combinatie van het getal en de modulo gelijk is aan 1. Bepaal aan de hand hiervan de inverse. Voor (I) is dit 17, merk op dat dit overeenkomt met de 17 uit vraag (a). Voor (II) is de GGD groter dan 1, dus is er geen inverse. Voor (III) is de inverse 86909. Beoordeling/Toelichting: 0.5pt per vergelijking. Totaal 3pt.
8. Wortel Funding: Instant Root Incorporated (Inst Inc) ontwikkelt een app voor modulair worteltrekken. Na invoer van een modulus m (max. 3072bits) en een getal b < m, produceert de InstInc app een getal a (als dat bestaat) dat voldoet aan a 2 = b (mod m). De nodige 500.000 euro wil InstInc met crowd funding bij elkaar brengen. (a) Laat zien hoe je door deze app slim te gebruiken, de factoren van m kunt vinden. (b) Denk je dat Inst Inc de investering kan terugverdienen? (c) Bij nadere lezing van het persbericht zie je, dat de nieuwe app alleen zal werken als m een priemgetal is. Denk je nu dat Inst Inc de investering kan terugverdienen? Oplossing: (a) Als m priem is, is m zelf de enige factor en ben je klaar. Als m even is, deel door 2 tot het resultaat oneven is. Als m oneven en samengesteld is, zijn er bij elke b minstens vier getallen met b als kwadraat. Neem een random c en bereken b = c 2, en gebruik de app om een a te vinden met a 2 = c 2. Omdat c random gekozen is, is er een kans van minstens 1/2 dat c noch aan a, noch aan a gelijk is. Herhaal het kiezen van c tot dit optreedt. Je beschikt dan over twee niet-complementaire getallen met gelijk kwadraat, waarmee je een factor van m vindt als ggd(m, a + c). Deze berekening is (exclusief het gebruik van de app) polynomiaal en roept de app verwacht hoogstens tweemaal aan. (b) Nee. Omdat je met een goeie wortels-app kunt factoriseren, denk ik om te beginnen niet dat Inst Inc dat echt kan waarmaken. Als het ze wel is gelukt om dit 3000 jaar oude probleem op te lossen, hebben ze een RSA-kraker in handen waarmee ze het Internet en de rest van de wereld rulen. Ze zijn waarschijnlijk al door de Amerikanen, de Russen, de Chinezen, de Israeli s en de Koreanen ontvoerd, gemarteld en vermoord en bestolen voordat ze hun eerste cent hebben omgezet. (c) Modulo een priemgetal m kun je gemakkelijk de wortel uit b vinden, namelijk als a = b (p+1)/4. Die berekening kun je best in een app programmeren, maar ik geloof niet dat je daarmee een half miljoen kunt verdienen. Beoordeling/Toelichting: Totaal 3pt, 2 voor a en 1/2 voor b en c elk. D = Dat de worteltrektruuk alleen voor viervouden plus Drie geldt is juist maar dat hoefde er niet bij. F = Bij (c): niet nuttig want een priem is niet te factoriseren. Geen goed antwoord, want het is niet gezegd dat factoriseren de enige nuttige toepassing van de app kan zijn. H = Je mag de app ook prijzen als grote doorbraak, maar zeg wel iets over de Haalbaarheid. Je steekt je geld toch ook niet in een Perpetuum Mobiel app? K = Je Kunt weinig met zo n app. Hm, kijk eens in de app store of dat wel zo n sterk argument is om geen geld met de app te kunnen verdienen. M = De gevalsonderscheiding hierboven is niet compleet, want het geval dat m een macht van een priemgetal is, ontbreekt. Bv 625 is niet priem, niet even, en de CRT werkt er niet voor. Maar dit mocht je negeren. Overigens is het in polynomiale tijd te testen of m een priemmacht is. N = De app bewijst dat P = NP; onjuist want Factoriseren is wel in NP, maar voor zover we weten niet NP-compleet. Dus helaas, zelfs als de app zou werken, nog geen millenniumprijs. P = Voor viervouden Plus 1 is worteltrekken niet behandeld, maar zeker niet moeilijk (dat is wel genoemd op HC), dus ook daarmee kun je nog geen half miljoen terugverdienen. T = Je moet Twee wortels van hetzelfde getal hebben. Dat doe je niet door meerdere malen dezelfde b aan te bieden! De app kan deterministisch werken zodat je steeds dezelfde a krijgt. Ook input 1 aanbieden (waarvan je wortels 1 en 1 al kent) is niet goed omdat je nooit weet of je dan een niet-complementaire krijgt. W = Gebruik de W p en W q ; dat kan niet, want die kun je pas vinden als je de factoren kent.
9. Derdemachten: In deze vraag moet je bewijzen dat Z m gesloten is onder het nemen van derdemachten. Geef de definitie van Z m en bewijs dat als a Z m, dan a 3 Z m. Oplossing: Z m is de verzameling getallen in Z m met een inverse. Stel a Z m; per definitie is er een b zodanig dat a.b = 1 (in Z m ). Omdat vermenigvuldiging associatief en commutatief is, geldt a 3.b 3 = (a.b) 3 = 1 3 = 1, dus b 3 is een inverse van a 3, wat bewijst dat a 3 Z m. Beoordeling/Toelichting: Voor compleet bewijs 2pt. D = Alleen Definitie gegeven, hiervoor geen punten. G = Gebruikt Ggd-criterium; mag ook. Redeneer dan: als a geen priemfactoren gemeen heeft met m, dan a 3 ook niet, want die heeft dezelfde factoren als a, alleen meer. V = Gebruik geslotenheid onder Vermenigvuldigen (opgave 5.18). 10. Worteltrekken modulo priemgetal: In deze opdracht is p een priemgetal met p + 1 een viervoud (zoals 7, 11 of 23, maar niet 17 of 29). Als je (a) niet kunt bewijzen, mag je het toch gebruiken in (b). (a) Bewijs dat als y Z p een kwadraat is, dan is y p 1 2 = 1. (b) Laat zien dat je, van een kwadraat y, een wortel kunt vinden als x = y p+1 4. (c) Hoeveel tijd kost worteltrekken modulo een priemgetal van k bits? Oplossing: (a) Als y een kwadraat is, bestaat er een z zdd y = z 2, en dan is y p 1 2 = z p 1 = 1, de laatste stap wegens Lagrange. (b) Voor de berekende waarde geldt x 2 = (y p+1 4 ) 2 = y p+1 2 = y p 1 2 +1 = y p 1 2 y = y, laatste stap ogv (a). (De andere wortel is natuurlijk x.) (c) Machtverheffen kost O(lg p) vemenigvuldigingen (met Indisch machtsverheffen), elk in kwadratische tijd uit te voeren, dus totaal O(k 3 ) tijd. Beoordeling/Toelichting: Voor elke deelvraag een punt. B = Wortel is niet Berekenbaar ; dit is modulo een composiet, met priem modulus kan het wel. G = Groepstheoretisch argument: omdat er p 1 2 kwadraten zijn, doe je Lagrange met φ = p 1 2. Zonder uitleg dat de kwadraten een subgroep vormen geen punt. L = Wortelen is Lineair want 1 1 2k verm.; je vergeet kwadratische factor, 1/2pt. V = Een Voorbeeld is geen bewijs. 11. Lagrange: Piet moet 13 1027 uitrekenen in Z 1536 maar hij is lui en wil zich rekenwerk besparen door de Stelling van Lagrange te gebruiken. (NB: 1536 = 2 9 3.) (a) Hoe luidt de Stelling van Lagrange? (b) Hoeveel is φ(1536)? (c) Geef 13 1027 mod 1536. Oplossing: (a) In Z m geldt b φ(m) = 1. (b) Van de 1536 getallen moet je de even getallen wegstrepen, de helft, en van de rest de drievouden, eenderde, dus je houdt tweederde van de helft, eenderde over: 1536/3 = 512. (c) De exponent is een 512-voud plus 3, dus 13 1027 = 13 3 = 2197 = 661. Beoordeling/Toelichting: Max 3pt, 1 per deelvraag.
12. Kwadraatstelling: Zij p en q oneven priemgetallen en n = p q. (a) Hoeveel getallen in Z p zijn een kwadraat? Waarom? (b) Hoeveel getallen in Z n zijn een kwadraat? Waarom? (c) Hoe kan de structuur van kwadraten helpen bij het factoriseren van n? Oplossing: (a) Z p heeft p 1 getallen, elk met een kwadraat, maar steeds hebben twee getallen hetzelfde kwadraat. Het aantal kwadraten is daarom p 1 2. (b) Z n heeft (p 1)(q 1) getallen, elk met een kwadraat, maar steeds hebben vier getallen hetzelfde kwadraat. Het aantal kwadraten is daarom (p 1)(q 1) 4. (c) Als je twee getallen b en c vindt met hetzelfde kwadraat, maar b is niet ±c, dan kun je een factor berekenen als gcd(b + c, n). Factorisatie-algoritmen beginnen meestal met het zoeken van een niet-triviale wortel van 1. Beoordeling/Toelichting: Voor de juiste aantallen in (a) en (b) elk 1pt, voor de juiste factorformule plus toepassing in (c) 2pt. Beoordelingscodes: H = De Helft waarvan? Aftrek 1/2. K = Een Kwart waarvan? Aftrek 1/2. 13. BurgerServiceNummer: Een negencijferig BSN wordt gecontroleerd (check tegen foutief intypen) door de 11-test: 8 i=1 (c i (1 + i)) mod 11 = c 0, waar c i het cijfer is van de macht 10 i. Voor een achtcijferig BSN wordt de test gebruikt met c 8 = 0. Geef drie geldige BSNs van 9 cijfers die weer een geldig getal opleveren als het laatste cijfer wordt verwijderd. Vertel ook hoe je deze nummers gevonden hebt. Oplossing: Je kunt een rijtje van zeven cijfers c 7... c 1 tot een 8-BSN aanvullen door als laatste cijfer de checksumwaarde c 0 = 7 i=1 (c i (1 + i)) mod 11 toe te voegen; dit mislukt als de uitkomst 10 is (dat is wel een rest modulo 11 maar geen decimaal cijfer), de kans daarop is ongeveer 1 op 11. Je kunt een rijtje van acht cijfers c 8... c 1 tot een 9-BSN aanvullen door als laatste cijfer de checksumwaarde c 0 = 8 i=1 (c i (1 + i)) toe te voegen. Algoritme: neem 7 random cijfers (niet beginnend met 0), vul aan tot 8-BSN, vul aan tot 9-BSN, slaagkans ( 10 11 )2 = 83%. (1) Random getal, digits van 2: 4142135. 8.4 + 7.1 + 6.4 + 5.2 + 4.1 + 3.3 + 2.5 = 96 = 8, dus vul aan met 8: 41421358 is geldige 8-BSN. 9.4 + etc + 3.5 + 2.8 = 132 = 0 dus 414213580 is geldige 9-BSN. (2) Random getal, digits van 3: 7320508. Aanvullen met 4 tot 73205084. Aanvullen met 4 tot 732050844. Beoordeling/Toelichting: Voor drie kloppende antwoorden (check bv op http://cgi.dit.nl/sofi.cgi), met onderbouwing die van inzicht getuigt, 3pt. B = BruteForcen, niet echt spannend, 2pt. L = Let erop dat met Laatste cijfer wordt bedoeld: eenheden, dus behalve 732050844 moet ook 73205084 kloppen, niet 32050844. P = Palindroommethode: vier cijfers, plus reversed, plus een nul geeft kloppend negencijferig: abcddcba0, maar niet altijd is dan bcddcba0 ook geldig (voor welke abcd wel?). U = Antwoorden zonder Uitleg, 1pt.
14. Getalberekeningen: (a) Bereken met Euclides de grootste gemene deler van 2358 en 1599; laat de tussenstappen zien. (b) Modulo 17741 hebben 1000 en 8379 hetzelfde kwadraat. Wat is dat kwadraat? Laat zien hoe je hieruit met een polynomiale berekening de factoren van 17741 kunt vinden. (c) Hoeveel vermenigvuldigingen kost het om a 213 te berekenen? Oplossing: (a) De ggd is 3. De resten bij deling zijn 759, 81, 30, 21, 9, 3 en 0. (b) Kwadrateren en mod 17741 levert 6504 voor beide. Uit de kwadraatstructuur die we kennen uit de CRT volgt dat som of verschil van deze getallen, een factor gemeen hebben met de modulus. Bereken ggd(17741, 9379) geeft 113, dit is een factor. Bereken 17741 / 113 is 157 is de andere factor. (c) De exponent is binair 11010101, dus het kost 7 (lengte min 1) plus 4 (enen min 1) is 11 vermenigvuldigingen. De achtereenvolgens berekende machten zijn (na 1): 2, 3, 6, 12, 13, 26, 52, 53, 106, 212, 213. Beoordeling/Toelichting: Tot 3pt, eentje per deelvraag. A = Anderhalf maal de lengte (of lg(213)), max 1/2. E = Eerste 1 toch meegeteld, 1/2. F = Wat zijn nou de Factoren? Die moet ik wel zien voor volle punten. K = Alleen het Kwadraat geeft nog geen punt. P = Exponent als Product 3x71 en dan (a 3 ) 71 kost ook 11. Er is geen enkele Power-methode die zoiets doet!
15. Worteltjestaart: De bakker moet berekenen hoeveel worteltjes hij voor zijn worteltjestaart nodig heeft. Hij heeft wel een recept, maar hij heeft de modulaire wortel nodig om de goede hoeveelheden te vinden. Op een dag komt er een konijn langs. Het konijn kan modulair wortel trekken, maar wil niet verklappen hoe. Het konijn zegt dat hij wel de modulaire wortel wil uitrekenen zolang hij maar een stukje worteltjestaart krijgt. Eerst moet de bakker de modulus m geven en een getal b < m. Daarna geeft de konijn een getal a (als het bestaat) dat voldoet aan a 2 = b(mod m). (a) Laat zien hoe de bakker slim zijn getallen kan kiezen zodat hij de factoren van m kunt vinden. (b) Nu de bakker de factoren kan vinden, vindt hij dat de factoren van 1333, 31 en 43 zijn. Nu wil hij nog weten welke vier getallen in Z 1333 kwadraat 1 hebben. Welke getallen zijn dit? (c) De bakker denkt dat hij samen met het konijn P = NP heeft bewezen, ze kunnen namelijk samen getallen factoriseren. Kunnen de bakker en het konijn de milleniumprijs gaan innen? Leg uit. Oplossing: (a) Als m priem is, is m zelf de enige factor en ben je klaar. Als m even is, deel door 2 tot het resultaat oneven is. Als m oneven en samengesteld is, zijn er bij elke b minstens vier getallen met b als kwadraat. Neem een random c en bereken b = c 2, en gebruik het konijn om een a te vinden met a 2 = c 2. Omdat c random gekozen is, is er een kans van minstens 1/2 dat c noch aan a, noch aan a gelijk is. Herhaal het kiezen van c tot dit optreedt. Je beschikt dan over twee niet-complementaire getallen met gelijk kwadraat, waarmee je een factor van m vindt als ggd(m, a + c). (b) Bij elke modulus geldt 1 2 = 1 en ( 1) 2 = 1, dus we hebben de eerste twee wortels 1 en 1332 al te pakken. Om de andere twee te vinden gebruiken we CRT en zoeken een getal dat 1 is modulu 43 en 1 modulo 31. Dit is W 43 W 31 = 1117. Het vierde getal is -1117 ofwel 216. (c) Nee want Factoriseren is wel in NP, maar voor zover we weten niet NP-compleet. Dus helaas nog geen millenniumprijs. Maar als konijntje inderdaad kan worteltrekken met een modulus van de bakker, kan hij willekeurige getallen factoriseren, dus ergens zal een prijsje er toch wel in zitten. Beoordeling/Toelichting: 1.5pt voor (a); 1pt voor (b); 1pt voor (c), totaal 3 pt. 16. ModuloFeest: Frank wil graag de twee factoren van n = 17741 vinden, hij heeft een idee om dit te doen. (a) Frank ziet dat geldt 1000 2 = 6504 en 8379 2 = 6504. Kan Frank de factoren van n vinden met deze informatie? (zo nee, waarom niet, zo ja, hoe?) (b) Om een onbekende reden wil Frank graag 78 e machten berekenen in Z157, dus bij een x weten wat de uitkomst is van x 156 2. Kun jij het antwoord zonder rekenmachine achterhalen voor een x die kwadraat is in Z157? (c) Kan zo n x een generator van Z157 zijn? Wanneer wel/niet? Oplossing: (a) 1000 en 8379 zijn niet aan elkaar gelijk en ook niet tegengesteld. Neem de som: 9379 en bepaal ggd(9379, 17741) met uitkomst 113; dit is een deler van n. De andere deler is 17741 113 157. (b) Het is erg toevallig dat Frank interesse heeft in 156 2 (en 157 is dat) dan zegt Euler dat x p 1, want 156 = 157 1. Als p priem is 2 = 1. De uitkomst is dus 1. (c) Omdat x p 1 2 = 1, kan x geen generator zijn. De orde van x is hoogstens p 1 2, een getal is generator als zijn orde p 1 is. Beoordeling/Toelichting: 1pt voor (a), 1pt voor (b), 1pt voor (c). Totaal 3pt.
17. Wortel 7: Welke getallen in Z 131 hebben kwadraat 7? Laat zien hoe je dit (polynomiaal) berekent. Oplossing: Gelukkig is 131 een priemgetal en een viervoud min 1. Voor zulke moduli kun je de wortel van b vinden als b (p+1)/4. Dat komt hier neer op de 33ste macht. De exponent is binair 100001, dus volgens de Indische methode moeten we vijf keer kwadrateren en nog vermenigvuldigen met 7, steeds met reductie modulo 131 natuurlijk: 7 2 = 49. 7 4 = 49 2 = 2401 = 43. 7 8 = 43 2 = 1849 = 15. 7 16 = 15 2 = 225 = 94. 7 32 = 94 2 = 8836 = 59. 7 33 = 7 59 = 413 = 20. Het zou dus 20 moeten zijn, even checken kan nooit kwaad, kwadraat is 400 en inderdaad is dit 7. De andere oplossing is dan natuurlijk 20 ofwel 111. Beoordeling/Toelichting: 2pt voor goede antwoorden met berekening. B = Bruteforcen is niet polynomiaal, 1pt. C = CRT is meestal nutteloos bij priem modulus. G = Geen rekenmethode beschreven, max 1/2pt. 18. Blum-integers: Bewijs: (a) Als p een priemgetal is dat een viervoud min 1 is, dan is 1 geen kwadraat in Z p. (b) Als n een Blum-integer is en a een kwadraat in Z n, dan is van de vier wortels van a er precies één zelf een kwadraat. Oplossing: (a) Dat betekent dus dat het priemgetal p voortkomt uit een zekere a: p = 4a 1. Volgens Eulers criterium (St. 5.20) is een getal x in Z p een kwadraat desda x p 1 2 = 1. In dit geval testen we het getal x = 1, dus ( 1) 4a 1 1 2 moet 1 zijn. Vereenvoudigen van 4a 2 2 = 2a 1 leert ons dat de exponent oneven is, dus ( 1) oneven geeft ons 1 en niet 1 (-1 en 1 zijn verschillend als p een oneven priemgetal is) dus is 1 geen kwadraat. (b) Een Blum-integer n is het product van twee priemgetallen p en q, die elk een viervoud min 1 zijn. Neem een getal b Z n dat het kwadraat is van a. Vanuit de Chinese rest Stelling mogen we a en b representeren met hun resten modulo p en q, dus schrijf (b p, b q ) = (a p, a q ) 2. Getal (b p, b q ) heeft vier wortels, te weten (a p, a q ), ( a p, a q ), (a p, a q ), ( a p, a q ). Ten eerste kun je inzien, dat van deze vier wortels, geen twee (of meer) een kwadraat kunnen zijn. Want het quotient van twee kwadraten is zelf ook een kwadraat (x 2 /y 2 = (x/y) 2 ). En het quotient van twee van de wortels is 1 modulo p of modulo q, en daarmee zeker geen kwadraat (weten we uit a). Waarom is dan minstens eentje ervan wel een kwadraat? Verdeel de Z n in gedachten in groepjes van vier, steeds vier getallen met hetzelfde kwadraat. De φ(n) getallen in Z n hebben samen φ(n)/4 kwadraten (omdat er steeds vier hetzelfde kwadraat hebben), dus evenveel kwadraten als groepjes. Omdat er in een groepje niet meer dan 1 kwadraat zit (eerste deel!) moet er in elk groepje wel eentje zitten. Beoordeling/Toelichting: 1 punt per deelopgave.