I forbindelse med RSA-kryptosystemet kræver Alice faktisk Bobs offentlige nøgle for at kryptere en besked beregnet til Bob. RSA-algoritmen er en form for offentlig nøglekryptering, som er afhængig af et par nøgler: en offentlig nøgle og en privat nøgle. Den offentlige nøgle bruges til kryptering, mens den private nøgle bruges til dekryptering. Dette system sikrer, at kun den påtænkte modtager, som besidder den tilsvarende private nøgle, kan dekryptere beskeden.
For at forstå, hvorfor Alice har brug for Bobs offentlige nøgle, er det vigtigt at overveje mekanikken i RSA-algoritmen. RSA, opkaldt efter sine opfindere Rivest, Shamir og Adleman, er baseret på de matematiske egenskaber ved store primtal og modulær aritmetik. Sikkerheden i RSA er afhængig af vanskeligheden ved at faktorisere produktet af to store primtal.
RSA-nøglegenereringsprocessen involverer følgende trin:
1. Nøglegenerering:
– Vælg to forskellige store primtal, og
.
– Beregn . Nummeret
bruges som modul for både offentlige og private nøgler.
– Beregn totienten .
– Vælg et heltal sådan at
og
er coprime til
. Heltallet
er den offentlige eksponent.
– Bestem som den modulære multiplikative invers af
modulo
, dvs.
. Heltallet
er den private eksponent.
Den offentlige nøgle består af parret , og den private nøgle består af parret
.
2. Kryptering:
– For at kryptere en besked for Bob konverterer Alice beskeden til et heltal
sådan at
.
– Alice beregner derefter chifferteksten ved at bruge Bobs offentlige nøgle
med formlen:
.
3. Dekryptering:
– Bob, efter at have modtaget chifferteksten , bruger sin private nøgle
at dekryptere det. Han beregner den oprindelige besked
ved hjælp af formlen:
.
Det grundlæggende princip her er, at mens den offentlige nøgle er kendt af alle, kun Bob kender den private nøgle
. Dette sikrer, at selvom en modstander opsnapper chifferteksten, kan de ikke dekryptere den uden Bobs private nøgle.
Antag for eksempel, at Bob vælger og
. Modulet
is
. Den totiente
is
. Bob vælger
, som er coprime til 3120. Han beregner derefter
sådan at
. Værdien af
viser sig at være 2753. Bobs offentlige nøgle er
, og hans private nøgle er
.
Hvis Alice ønsker at sende beskeden "HEJ" til Bob, konverterer hun først beskeden til et numerisk format. Antag at "HEJ" er repræsenteret som . Hun beregner derefter chifferteksten
ved at bruge Bobs offentlige nøgle:
Efter at have udført den modulære eksponentiering, får Alice chifferteksten . Hun sender
til Bob, som derefter dekrypterer det ved hjælp af sin private nøgle:
Bob henter den originale besked , som han så konverterer tilbage til "HEJ".
Dette eksempel illustrerer nødvendigheden af Bobs offentlige nøgle for at Alice kan kryptere meddelelsen sikkert. Uden den offentlige nøgle kan Alice ikke udføre krypteringen, og RSA-kryptosystemet ville ikke fungere efter hensigten.
RSA-algoritmens sikkerhed afhænger af beregningsmæssige vanskeligheder ved at faktorisere store tal. Mens den offentlige nøgle deles åbent, den private nøgle
forbliver fortroligt. Faktoriseringen af
i dets hovedkomponenter
og
er et svært problem, hvilket gør det praktisk talt umuligt for en modstander at udlede den private nøgle fra den offentlige nøgle.
I praksis er RSA-nøgler typisk 2048 bit eller længere for at sikre sikkerheden. Jo større nøglestørrelsen er, desto sikrere er krypteringen, men dette øger også de beregningsmæssige overhead. Effektive eksponentieringsteknikker, såsom brugen af Chinese Remainder Theorem (CRT) til dekryptering, kan hjælpe med at mindske nogle af beregningsomkostningerne.
RSA-kryptosystemet er afhængig af brugen af offentlige og private nøgler for at sikre sikker kommunikation. Alice har brug for Bobs offentlige nøgle til at kryptere en besked til Bob, hvilket kun gør det muligt for Bob, med sin private nøgle, at dekryptere og læse beskeden. Denne mekanisme danner grundlaget for kryptografi med offentlig nøgle, hvilket giver en sikker metode til at overføre information over potentielt usikre kanaler.
Andre seneste spørgsmål og svar vedr Grundlæggende om EITC/IS/CCF klassisk kryptografi:
- Blev offentlig-nøgle-kryptografi introduceret til brug i kryptering?
- Kaldes sættet af alle mulige nøgler i en bestemt kryptografisk protokol for nøglerummet i kryptografi?
- I en skiftchiffer, erstattes bogstaverne i slutningen af alfabetet med bogstaver fra begyndelsen af alfabetet i henhold til modulær aritmetik?
- Hvad bør en blokchiffer indeholde ifølge Shannon?
- Blev DES-protokollen introduceret for at forbedre sikkerheden i AES-kryptosystemer?
- Afhænger sikkerheden af blokchiffere af at kombinere forvirrings- og diffusionsoperationer mange gange?
- Skal krypterings- og dekrypteringsfunktionerne holdes hemmelige for at kryptografiprotokollen kan forblive sikker?
- Kan kryptanalyse bruges til at kommunikere sikkert over en usikker kommunikationskanal?
- Hører internet, GSM og trådløse netværk til de usikre kommunikationskanaler?
- Er en udtømmende nøglesøgning effektiv mod substitutionschiffere?
Se flere spørgsmål og svar i EITC/IS/CCF Classical Cryptography Fundamentals