SlideShare a Scribd company logo
RSA
Primtal och kryptering
Vad är RSA?
Hur beräknar man
nycklarna?
Exempel på
dekryptering
RSA står för Rivest, Shamir och Adleman,
vilket är efternamnen på de tre personer
som uppfann krypteringsmetoden.
RSA är ett monoalfabetiskt, asymmetriskt
substitutionskrypto där tecknen måste bytas
ut mot siffror.
Vad är RSA?
Substitutionskrypton byter ut
tecken eller teckenkombinationer
i en text mot andra tecken.
Ett krypto som är monoalfabetiskt byter ut
tecknen enligt ett förutbestämt mönster, ett så
kallat kryptoalfabete. En del kryptoalfabeten
har dock flera möjliga sätt att kryptera enskilda
tecken. Vanliga tecken som ”T” kanske har fem
möjligheter, medan ”Z” bara har en.
Krypton med fler än ett kryptoalfabete
kallas pollyalfabetiska.
Vad är RSA?
Asymmetriska krypton kallas ofta för
public-key-krypton, då det hela går ut på
att den som har skapat nycklarna ger ut
en ”öppen” krypteringsnyckel till hela
världen och behåller en hemlig
dekrypteringsnyckel.
En nyckel är den information som
krävs för att man skall kunna
använda en krypteringsmetod
RSA använder avancerad matematik basserad på
primtal och moddulär aritmetik för att skapa en
metod som kräver olika nycklar vid kryptering och
dekryptering.
Vad är RSA?
Teckenkodningen där bokstäver och
andra tecken blir till siffror är viktig i
RSA, eftersom metoden endast kan
behandla siffror.
Den enklaste formen av teckenkodning är
ASCII, American Standard Code for Information
Interchange, som listar binära tal på sju bitar
som motsvarar de flesta av alla tecken som
används till vardags. Latin_1 är en liknande
standard för teckenkodning som med en
åttonde bit även innehåller samtliga
specialtecken som används i de europeiska
språken, exempelvis Å, Ä och Ö.
A = 1000001 = 65
Vad är RSA?
• Välj två primtal, P och Q.
• Beräkna N så att N = P*Q
• Beräkna R så att R = (P-1)*(Q-1)
• Välj ett tal E. Divisionen E/R får INTE
gå att förkorta, och E får varken
vara 1 eller R.
• Beräkna talet D så att D är den
multiplikativa inversen till E mod R
N används vid både kryptering och
dekryptering. E är den publika
nyckeln och D är den privata. Alla
tal som inte ingår i den publika
nyckeln måste hållas absolut
hemliga.
Hur beräknar man
nycklarna?
Låt oss välja P = 17 och Q = 11. Det
ger att N = 187 och R = 160.
Eftersom 7 är ett primtal kan vi sätta det som vårt
E, då en division med primtal inte kan förkortas.
Den öppna nyckeln är alltså 187 och 7.
Man bör dock vänta med att sända ut
den till dess att man vet att både
kryptering och dekryptering fungerar.
Hur beräknar man
nycklarna?
D är svårast att beräkna, men ett sätt är
att använda Euklides utökade algoritm.
X 1 2
1 160 = 22 *7 + 6 0
2 7 = 1 * 6 + 1 1
3 6 = 6 * 1 + 0 0 – 1 * 22 mod 160 = 138
4 1 – 138 * 1 mod 160 = 23 = D
I kolumn 1 börjar man med R
och E (160 och 7), och beräknar
kvoten och resten (22 och 6) vid
R/E. På nästa rad är det istället
E som delas på den föregående
resten, och så vidare till dess att
resten blir 0. Om resten på
raden innan slutet (dvs rad 2 i
nuläget) inte är 1, har man gjort
någonting fel. Kontrollera att P
och Q är primtal, samt om
övriga tal uppfyller sina
respektive krav.
Kolumn 2 börjar alltid med 0 och 1. På
övriga rader (exempel: rad 3) tar man
resultatet för två rader sedan (0) minus
resultatet på förra raden (1) multiplicerat
med kvoten i kolumn 1 för två rader sedan
(22. I exemplet blir detta -22). Detta
beräknar man sedan modulus R, och det
resultat man får på raden efter att kolumn
1 fick resten 0 blir talet D (I det här fallet
på rad 4).
Hur beräknar man
nycklarna?
Modulär aritmetik
När man räknar med modulus är det i första hand
resten vid heltalsdivision man är ute efter. På
föregående sida hade vi exemplet 160/7 (R/E). På en
miniräknare ger detta ungefär 22,86. Om man då
multiplicerar 7 med 22 får man 154, vilket är 6 mindre
än 160. Alltså är resten 6, och 160 mod 7 = 6.
I kolumn 2 blir det lite klurigare. På rad 3 har vi (-22) mod 160, och
vid en division får vi kvoten (-0,1375). Vi multiplicerar 160 med det
närmsta mindre heltalet (-1) och får då -160. Precis som tidigare tar
vi det ursprungliga talet minus det vi beräknat, alltså (-22)-(-160),
och får då 138. (-22) mod 160 = 138.
Hur beräknar man
nycklarna?
Antag att vi har mottagit texten
75 84 126 76 110
Den matematiska formel som används vid kryptering
är 𝑇 𝐾 = 𝑇 𝐸 𝑚𝑜𝑑 𝑁 där 𝑇 𝐾 är kryptotexten och 𝑇 är
klartexten. För att vända formeln byter man ut 𝐸 mot
𝐷 för att få formeln 𝑇 = 𝑇 𝐾
𝐷
𝑚𝑜𝑑 𝑁
Till att börja med skall vi alltså räkna ut
vad 7523
𝑚𝑜𝑑 187 blir, enligt det resultat vi
fick när vi räknade ut våra nycklar.
Exempel på
dekryptering
7523
𝑚𝑜𝑑 187
= 753 𝑚𝑜𝑑 187
× 754
𝑚𝑜𝑑 187 5
𝑚𝑜𝑑 187 𝑚𝑜𝑑187
= 421875 𝑚𝑜𝑑 187
× 31640625 𝑚𝑜𝑑 187 5 𝑚𝑜𝑑 187 𝑚𝑜𝑑 187
= 3 × 385 𝑚𝑜𝑑 187 𝑚𝑜𝑑 187
= 3 × 79235168 𝑚𝑜𝑑 187 𝑚𝑜𝑑 187
= 3 × 89 𝑚𝑜𝑑 187 = 267 𝑚𝑜𝑑 187 = 80
Det första dekrypterade talet blev alltså 80.
Modulär aritmetik förklaras i kapitlet om nycklarna
Exempel på
dekryptering
Samma uträkningar görs för övriga tal.
8423
𝑚𝑜𝑑 187 = 101
12623
𝑚𝑜𝑑 187 = 114
7623 𝑚𝑜𝑑 187 = 32
11023
𝑚𝑜𝑑 187 = 66
Nu vet vi att texten
75 84 126 76 110
egentligen betyder
80 101 114 32 66
Exempel på
dekryptering
Om allt gått rätt till är det nu bara den
enklaste biten kvar av dekrypteringen.
Enligt de instruktioner som medföljde
nycklarna skall man använda
teckenkodningen ASCII för att omvandla
talen till bokstäver.
Med hjälp av Google kan man snabbt hitta en
lista över ASCII-tecken, där man kan utläsa att
80 = P
101 = e
114 = r
32 = (blanksteg)
66 = B
Du kan läsa om
ASCII i kapitlet
om RSA-kryptot
Exempel på
dekryptering
Tack för er uppmärksamhet.
Jag hoppas att det går att
förstå sig på.
Ett arbete utfört på:
2014
Lästips;
• Singh, Simon, 1999, Kodboken, Norstedts, Stockholm, ISBN 91-1-
300708-4
• Skansholm, Jan, 2010, Java direkt med Swing, Studentlitteratur, Lund,
ISBN 978-91-44-06074-3
• Szabo, Attila, Larson, Niclas, Viklund, Gunilla, Dufåker, Daniel och
Marklund, Mikaela, 2013, Matematik Origo 5, Sanoma Utbildning,
Stockholm, ISBN 978-523-2104-1

More Related Content

Viewers also liked

3 m brochure
3 m brochure3 m brochure
3 m brochuredeniskhoo
 
Better Care Corporate Presentation
Better Care Corporate PresentationBetter Care Corporate Presentation
Better Care Corporate Presentation
Better Care
 
Nätverkslexikon
NätverkslexikonNätverkslexikon
Nätverkslexikon
Per
 
Hur man gör Powerpointspel
Hur man gör PowerpointspelHur man gör Powerpointspel
Hur man gör Powerpointspel
Per
 
Architect presentation of EGS
Architect presentation of EGSArchitect presentation of EGS
Architect presentation of EGSJames Little
 
컴 발표 과제
컴 발표 과제컴 발표 과제
컴 발표 과제korea9550
 
Collaboration Presentation 'Much Ado About Nothing' Group 54 THEA 1331 Jon Eg...
Collaboration Presentation 'Much Ado About Nothing' Group 54 THEA 1331 Jon Eg...Collaboration Presentation 'Much Ado About Nothing' Group 54 THEA 1331 Jon Eg...
Collaboration Presentation 'Much Ado About Nothing' Group 54 THEA 1331 Jon Eg...Amber Cao
 
Course registration system dfd
Course registration system dfdCourse registration system dfd
Course registration system dfd
Utsav mistry
 

Viewers also liked (10)

3 m brochure
3 m brochure3 m brochure
3 m brochure
 
Better Care Corporate Presentation
Better Care Corporate PresentationBetter Care Corporate Presentation
Better Care Corporate Presentation
 
Nätverkslexikon
NätverkslexikonNätverkslexikon
Nätverkslexikon
 
Hur man gör Powerpointspel
Hur man gör PowerpointspelHur man gör Powerpointspel
Hur man gör Powerpointspel
 
Architect presentation of EGS
Architect presentation of EGSArchitect presentation of EGS
Architect presentation of EGS
 
컴 발표 과제
컴 발표 과제컴 발표 과제
컴 발표 과제
 
Collaboration Presentation 'Much Ado About Nothing' Group 54 THEA 1331 Jon Eg...
Collaboration Presentation 'Much Ado About Nothing' Group 54 THEA 1331 Jon Eg...Collaboration Presentation 'Much Ado About Nothing' Group 54 THEA 1331 Jon Eg...
Collaboration Presentation 'Much Ado About Nothing' Group 54 THEA 1331 Jon Eg...
 
โครงงานวิทยาศาสตร์
โครงงานวิทยาศาสตร์โครงงานวิทยาศาสตร์
โครงงานวิทยาศาสตร์
 
Soal matematika-1-12007
Soal matematika-1-12007Soal matematika-1-12007
Soal matematika-1-12007
 
Course registration system dfd
Course registration system dfdCourse registration system dfd
Course registration system dfd
 

RSA

  • 1. RSA Primtal och kryptering Vad är RSA? Hur beräknar man nycklarna? Exempel på dekryptering
  • 2. RSA står för Rivest, Shamir och Adleman, vilket är efternamnen på de tre personer som uppfann krypteringsmetoden. RSA är ett monoalfabetiskt, asymmetriskt substitutionskrypto där tecknen måste bytas ut mot siffror. Vad är RSA?
  • 3. Substitutionskrypton byter ut tecken eller teckenkombinationer i en text mot andra tecken. Ett krypto som är monoalfabetiskt byter ut tecknen enligt ett förutbestämt mönster, ett så kallat kryptoalfabete. En del kryptoalfabeten har dock flera möjliga sätt att kryptera enskilda tecken. Vanliga tecken som ”T” kanske har fem möjligheter, medan ”Z” bara har en. Krypton med fler än ett kryptoalfabete kallas pollyalfabetiska. Vad är RSA?
  • 4. Asymmetriska krypton kallas ofta för public-key-krypton, då det hela går ut på att den som har skapat nycklarna ger ut en ”öppen” krypteringsnyckel till hela världen och behåller en hemlig dekrypteringsnyckel. En nyckel är den information som krävs för att man skall kunna använda en krypteringsmetod RSA använder avancerad matematik basserad på primtal och moddulär aritmetik för att skapa en metod som kräver olika nycklar vid kryptering och dekryptering. Vad är RSA?
  • 5. Teckenkodningen där bokstäver och andra tecken blir till siffror är viktig i RSA, eftersom metoden endast kan behandla siffror. Den enklaste formen av teckenkodning är ASCII, American Standard Code for Information Interchange, som listar binära tal på sju bitar som motsvarar de flesta av alla tecken som används till vardags. Latin_1 är en liknande standard för teckenkodning som med en åttonde bit även innehåller samtliga specialtecken som används i de europeiska språken, exempelvis Å, Ä och Ö. A = 1000001 = 65 Vad är RSA?
  • 6. • Välj två primtal, P och Q. • Beräkna N så att N = P*Q • Beräkna R så att R = (P-1)*(Q-1) • Välj ett tal E. Divisionen E/R får INTE gå att förkorta, och E får varken vara 1 eller R. • Beräkna talet D så att D är den multiplikativa inversen till E mod R N används vid både kryptering och dekryptering. E är den publika nyckeln och D är den privata. Alla tal som inte ingår i den publika nyckeln måste hållas absolut hemliga. Hur beräknar man nycklarna?
  • 7. Låt oss välja P = 17 och Q = 11. Det ger att N = 187 och R = 160. Eftersom 7 är ett primtal kan vi sätta det som vårt E, då en division med primtal inte kan förkortas. Den öppna nyckeln är alltså 187 och 7. Man bör dock vänta med att sända ut den till dess att man vet att både kryptering och dekryptering fungerar. Hur beräknar man nycklarna?
  • 8. D är svårast att beräkna, men ett sätt är att använda Euklides utökade algoritm. X 1 2 1 160 = 22 *7 + 6 0 2 7 = 1 * 6 + 1 1 3 6 = 6 * 1 + 0 0 – 1 * 22 mod 160 = 138 4 1 – 138 * 1 mod 160 = 23 = D I kolumn 1 börjar man med R och E (160 och 7), och beräknar kvoten och resten (22 och 6) vid R/E. På nästa rad är det istället E som delas på den föregående resten, och så vidare till dess att resten blir 0. Om resten på raden innan slutet (dvs rad 2 i nuläget) inte är 1, har man gjort någonting fel. Kontrollera att P och Q är primtal, samt om övriga tal uppfyller sina respektive krav. Kolumn 2 börjar alltid med 0 och 1. På övriga rader (exempel: rad 3) tar man resultatet för två rader sedan (0) minus resultatet på förra raden (1) multiplicerat med kvoten i kolumn 1 för två rader sedan (22. I exemplet blir detta -22). Detta beräknar man sedan modulus R, och det resultat man får på raden efter att kolumn 1 fick resten 0 blir talet D (I det här fallet på rad 4). Hur beräknar man nycklarna?
  • 9. Modulär aritmetik När man räknar med modulus är det i första hand resten vid heltalsdivision man är ute efter. På föregående sida hade vi exemplet 160/7 (R/E). På en miniräknare ger detta ungefär 22,86. Om man då multiplicerar 7 med 22 får man 154, vilket är 6 mindre än 160. Alltså är resten 6, och 160 mod 7 = 6. I kolumn 2 blir det lite klurigare. På rad 3 har vi (-22) mod 160, och vid en division får vi kvoten (-0,1375). Vi multiplicerar 160 med det närmsta mindre heltalet (-1) och får då -160. Precis som tidigare tar vi det ursprungliga talet minus det vi beräknat, alltså (-22)-(-160), och får då 138. (-22) mod 160 = 138. Hur beräknar man nycklarna?
  • 10. Antag att vi har mottagit texten 75 84 126 76 110 Den matematiska formel som används vid kryptering är 𝑇 𝐾 = 𝑇 𝐸 𝑚𝑜𝑑 𝑁 där 𝑇 𝐾 är kryptotexten och 𝑇 är klartexten. För att vända formeln byter man ut 𝐸 mot 𝐷 för att få formeln 𝑇 = 𝑇 𝐾 𝐷 𝑚𝑜𝑑 𝑁 Till att börja med skall vi alltså räkna ut vad 7523 𝑚𝑜𝑑 187 blir, enligt det resultat vi fick när vi räknade ut våra nycklar. Exempel på dekryptering
  • 11. 7523 𝑚𝑜𝑑 187 = 753 𝑚𝑜𝑑 187 × 754 𝑚𝑜𝑑 187 5 𝑚𝑜𝑑 187 𝑚𝑜𝑑187 = 421875 𝑚𝑜𝑑 187 × 31640625 𝑚𝑜𝑑 187 5 𝑚𝑜𝑑 187 𝑚𝑜𝑑 187 = 3 × 385 𝑚𝑜𝑑 187 𝑚𝑜𝑑 187 = 3 × 79235168 𝑚𝑜𝑑 187 𝑚𝑜𝑑 187 = 3 × 89 𝑚𝑜𝑑 187 = 267 𝑚𝑜𝑑 187 = 80 Det första dekrypterade talet blev alltså 80. Modulär aritmetik förklaras i kapitlet om nycklarna Exempel på dekryptering
  • 12. Samma uträkningar görs för övriga tal. 8423 𝑚𝑜𝑑 187 = 101 12623 𝑚𝑜𝑑 187 = 114 7623 𝑚𝑜𝑑 187 = 32 11023 𝑚𝑜𝑑 187 = 66 Nu vet vi att texten 75 84 126 76 110 egentligen betyder 80 101 114 32 66 Exempel på dekryptering
  • 13. Om allt gått rätt till är det nu bara den enklaste biten kvar av dekrypteringen. Enligt de instruktioner som medföljde nycklarna skall man använda teckenkodningen ASCII för att omvandla talen till bokstäver. Med hjälp av Google kan man snabbt hitta en lista över ASCII-tecken, där man kan utläsa att 80 = P 101 = e 114 = r 32 = (blanksteg) 66 = B Du kan läsa om ASCII i kapitlet om RSA-kryptot Exempel på dekryptering
  • 14. Tack för er uppmärksamhet. Jag hoppas att det går att förstå sig på. Ett arbete utfört på: 2014 Lästips; • Singh, Simon, 1999, Kodboken, Norstedts, Stockholm, ISBN 91-1- 300708-4 • Skansholm, Jan, 2010, Java direkt med Swing, Studentlitteratur, Lund, ISBN 978-91-44-06074-3 • Szabo, Attila, Larson, Niclas, Viklund, Gunilla, Dufåker, Daniel och Marklund, Mikaela, 2013, Matematik Origo 5, Sanoma Utbildning, Stockholm, ISBN 978-523-2104-1