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.