Al bht lt i Algebra och talteori

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.