RSA opgave, kursusgang 10 

 

Spørgsmål 1. 

Skal undersøge om p og q er primtal og om gcd(e,(p-1)(q-1))=1 

 

isprime(73) 

true (1)
 

isprime(83) 

true (2)
 

igcd(13, `*`(`+`(73, -1), `*`(`+`(83, -1)))) 

1 (3)
 

Spørgsmål 2. Find invers til e. Brug Euklids udvidede algoritme. 

igcdex(13, `*`(`+`(73, -1), `*`(`+`(83, -1))), lambda, mu) 

1 (4)
 

lambda 

2725 (5)
 

 

d := `mod`(lambda, `*`(`+`(73, -1), `*`(`+`(83, -1)))) 

2725 (6)
 

Spørgsmål 3. Bob sender til Alice: 

n := `*`(73, 83) 

6059 (7)
 

e := 13 

13 (8)
 

Spørgsmål 4. 

M := 4567 

4567 (9)
 

C := `mod`(`^`(M, e), n) 

1967 (10)
 

Spørgsmål 5. 

`mod`(`^`(C, d), n) 

4567 (11)
 

Alternativ metode: 

Bob kan eventuelt udregne `mod`(`^`(C, d), 73)  og `mod`(`^`(C, d), 83). 

Da 

`mod`(d, 72) 

61 (12)
 

og `mod`(`*`(`^`(C, 72)), 73) = 1  ifølge Fermat Sætning (da 73 ikke går op i C) kan `mod`(`^`(C, d), 73)beregnes som 

`mod`(`*`(`^`(C, 61)), 73) 

41 (13)
 

Tilsvarende, da 

`mod`(d, 82) 

19 (14)
 

kan `mod`(`^`(C, d), 83)beregnes som 

`mod`(`*`(`^`(C, 19)), 83) 

2 (15)
 

M kan nu beregnes ved hjælp af den kinesiske restsætning: 

chrem([41, 2], [73, 83]) 

4567 (16)