Al b och Algebra h ttalteori lt i MMGL31 Föreläsning 8 VT 2010 Samuel Bengmark Repetition • Primtal på formen an-1 • Mersenneprimtal • Perfekta tal • Samband mellan jämna perfekta tal och Mersenneprimtal Idag Hur beräkna 452929≡1147 ? • Multipliciera 928 gånger och reducera mod 1147 varje gång. Går men är jobbigt. • Smartare med succesiv kvadrering. Visar med exempel Beräkna 452929≡1147 ? 1 Skapar 1. Sk listan li t i i 0 2ï 1 452 2 mod 1147 452 1 2 2 4 138 692 3 4 5 8 16 32 565 359 417 6 64 7 128 692 565 8 256 9 512 359 417 2. Skriver 929 som summa av 2-potenser 929 512 256 128 32 1 3. Får multiplikation av 5 faktorer 452 929 452 512 452 256 452128 452 32 4521 1147 417 359 565 417 452 1147 417 359 565 417 452 1147 593 565 417 452 1147 121 417 452 1147 1136 452 1147 763 4. Slutsats 452929 ≡1147 763 Tänk gärna binärt! 929 512 256 128 32 1, dvs 929 på decimalform 1110100001 på binär form ï 2i i 0 2 1 452 mod 1147 929 på binär form 452 1 1 2 2 4 138 692 0 0 3 4 5 8 16 32 565 359 417 0 0 1 6 64 7 128 692 565 0 1 8 256 9 512 359 417 1 1 452 929 417 359 565 417 452 1147 417 359 565 417 452 1147 353 565 417 452 1147 121 417 452 1147 1136 452 1147 763 Succesiv kvadrering av ak mod n 1. 2 2. 3. Reducera först exponenten till ett värde r < (n) med hjälp av Euler formel, dvs så att ar ≡n ak. j B äk alla Beräkna ll värden ä d a, a2, a4, … , a2 , en kvadrering k d i fö för varje nytt värde tills 2j<r och reducera i varje steg till ett värde mellan 0 och n n. Skriv r på binär form, dvs r c j 2 j c j 1 2 j 1 ... c2 2 2 c1 2 c0 , 4. ci {0,1} Får a n a n a k r c j 2 j c j 1 2 j 1 ... c2 2 2 c1 2 c0 n (a ) (a 2j cj Vilket är produkten av högst j tal i Zn. 2 j 1 c j 1 ) 2 2 c2 ...( a ) ( a 2 ) c1 a c0 Lösa ekvation xk ≡m b Använder Eulers formel och invers till k modulo (m). 1. Beräkna (m) och finn invers k-1 till k modulo (m) (den finns omm SGD(k,(m))=1) 2. Då är bk en lösning eftersom -1 -1 k -1k k k k x =(b ) =b =b1+r(m)≡m b Det siste steget gäller enligt Eulers formel om SGD(b,m)=1 Uppgift 17.1 17 1 Uppgift : Lös x329 ≡1147 452 Lösning: 1. Beräknar (1147)=(31·37)=(31)·(37)=30·36=1080 2. Beräkna invers till 329 mod 1080, dvs 329· x≡1080 1 ⇔ x≡1080 929 3. Beräknar 452929≡1147 763, mha succesiv kvadrering. 4. Då SGD(452,1147)=1 har vi inte fått en falsk lösning, men kontrollera gärna genom succ. kvad. att 763329≡1147 452. 5. Slutsats x≡1147 763 är en lösning Förutsättningarna viktiga! • Patologiskt exempel x3 ≡8 2 RSA krypto RSA-krypto Utgår ifrån att även för stora n är • xk är lätta att beräkna med hjälp av bara x, k och n, genom successiv kvadrering Men • xk≡n a är mycket svår att beräkna utan att ha (n), vilken ä svårt är å t att tt beräkna b äk utan t att tt ha h primtalsfaktorisering i t l f kt i i av n. Exempel: ”då då ba” ba • Välj sätt att koda bokstäver som tal a b c d e f g h i j k l m n … 11 12 13 14 15 16 17 18 19 20 21 22 23 24 … • • • • Välj två primtal p och q, i detta exempel p=11, q=13 Beräkna m=pq=143 Beräkna (m)=(143)=(11)(13)=10· 12=120. Välj k∈ Z φ(m)*, k=7 och beräknar k-1 ≡120 103. • Publicerar m=143 samt k=7 • Håller (143)=120 och k-1 ≡8 103 hemliga. Kunden • Text kodas till en sekvens siffror. då ab → 1438391112 • Sekvens delas upp i bitar så att ingen bit representerar ett tal ≥ 143, dvs s=(14,38,39,111,2) • Varje V j bit bi öpphöjs ö höj i 7 och h få får • (a1,a2, …, an)=(147,387, 397,1117,27) ≡143 (53 25 52 45 128) (53,25,52,45,128). • Sekvensen (53,25,52,45,128) skickas till banken. Banken • Banken får (a1,a2, …, an) ≡143 (53,25,52,45,128). • Banken beräknar (53103,25103, 52103,45103,128103,25103) ≡143 (14,38,39,111,2) • Wow!! Öppen nyckel • Alla vet krypteringsnyckeln (m och k). • Dekrypteringsnycklarna känner bara mottagaren till (k-1,(m)). • För att beräkna dekryperingsnycklarna utifrån krypteringsnycklarna måste man för stora m kunna faktorisera m i sina primtalsfaktorer. • Om p och q har 200 siffror var tar det ca 75 år för världens idag snabbaste datorsystem att hitta faktorerna. Krypto ägaren tex banken Krypto-ägaren, • Välj sätt att koda bokstäver som tal, tex a b c d e f g h i j k l m n … 11 12 13 14 15 16 17 18 19 20 21 22 23 24 … Även blanksteg kan få sin egen siffra, låt säga 39. • Välj två stora primtal p och q (minst 200 siffror var) • Beräkna m=pq, samt (m)=(p-1)(q-1). • Välj k så att SGD(k,(m))=1, och kan då även beräkna inversen k-1 till k modulo (m). • Publicerar m, k (och valt sätt att koda bokstäver som siffror) iff ) (men ( publicerar bli absolut b l t iinte t (m) ( ) och h k-11). ) Kunden • Text kodas till en sekvens siffror. • Sekvens delas upp i bitar så att ingen bit representerar ett tal ≤ m, m dvs d s (b1,b b2,…,b bN) där bi ≤ m. m • Varje bit bi öpphöjs i k mod m och (a1,a a2, …, an)=(b1k,b b2k, …, bnk) skickas till banken. Banken • Banken vill ta reda på bi och löser därför -1 k k genom beräkna ai ekvationen x ≡m ai g • Banken får då att -1 1 -1 1 k kk 1+ ( ) ≡ b x ≡m ai ≡m bi ≡m bi1+r(m) m i FLS som primtalstest? Vi vett att tt fö för primtal i t l p gäller äll att tt för fö ∀a ≡p 0 gäller äll ap-11 ≡p 1. 1 Definition Att tal a ≡m 0 sådant att am-1 ≡m 1 kallas ett FLS-vittne för m. OBS Ett FLS-vittne vittnar om att m är sammansatt. De flesta tal har gott om FLS-vittnen Exempel Carmichaeltal Det finns dock sammansatta tal som helt saknar FLSvittnen. Definition S Sammansatta tt tal t l som saknar k FLS-vittnen FLS itt kallas k ll Carmichaeltal. Exempel I uppgift ift 10 10.3 3 såg å vii att tt 561 ä är ett tt sådant åd t eftersom ft a560≡5611 för alla 0<a<561. Ett annatt exempell ä är 1105 1105. Korselts kriterium Sats Ett udda sammansatt tal n är ett Carmichael-tal omm för var primtalsfaktor i t l f kt p i n gäller äll att tt 1. p2 | n 2 p-1|n-1 2. 1| 1 Rabin-Millers Rabin Millers följdsats till FLS Sats Låt p vara ett tt udda dd primtal i t l och h p-1=2 1 2kq, q udda. dd För varje a≡p0 gäller då att aq ≡p1 eller k-1 aq ≡p-1 eller a2q≡p-1 eller a4q≡p-1 eller … eller a2 q≡p-1 Bevis: Enligt FLS är ap-1≡p1. Titta på sekvensen av succesiva k-1q kq q 2q 4q 2 2 kvadrater: a , a , a ,…, a , a . Eftersom det sista talet är 1 finns två möjligheter 1. aq ((och alla andra i sekvensen)) är 1 2. något tal i sekvensen är ej 1 men när det kvadreras blir det 1. Då måste talet vara -1. ( Vi är i en kropp) Rabin Miller test Rabin-Miller Definition Låt n vara ett udda tal och n-1=2kq, q udda. Ett tal a kallas ett Rabin-Miller vittne för n om k-1q q 2q 4q 2 a ≡n±1 och a ≡n-1 och a ≡n-1 och … och a ≡n-1 Sats Varje udda sammansatt tal har gott om Rabin-Miller vittnen. Minst 75% av alla mellan 1 och n-1 är Rabin-Miller vittnen. itt H man iinte Har t hitt hittatt ett tt vittne itt efter ft att tt h ha provatt d drygtt 25% av talen vet man att det är primt.