6. labor: az RSA rendszer
|
Publikus kulcsú rendszerek 1. Válasszunk két, legalább 256 bites prímszámot, majd RSA-kulcsként alkalmazva őket titkosítsunk és fejtsünk vissza egy tetszőleges ASCII karaktereket tartalmazó szöveget. A szöveget generáljuk véletlenszerűen, hossza pedig akkor legyen, hogy a szövegnek megfelelő szám kisebb legyen, mint az RSA-modulus. Ugyanazt a szöveget titkosítsuk ötször RSA-val, majd RSA-OAEP-vel. A titkosított bájtszekvenciákat hexa formában írjuk ki a képernyőre. Segéganyagok: 2. Egy titkosított
szöveg RSA módszerrel volt rejtjelezve, ahol a
titkosítást bájtok felett végezték.
Határozzuk meg az eredeti szöveget, ha ismert az RSA modulus, az e = 65537, a modulus egyik osztója a keys.txt állományban
található prímszámok közül az
egyik szám, és az eredeti állomány mérete 44 bájt volt. 3. Ugyanaz a szöveg, három különböző félnek volt RSA-val rejtjelezve elküldve, ahol adottak felek nyilvános kulcsai, illetve a rejtjelezett szövegek. key1.txt
key2.txt
key3.txt
encrypt1.txt encrypt2.txt encrypt3.txt Fejtsük meg a rejtjelezett szöveget, tudva, hogy a rejtjelezést az angol ábécé 26 betűje + a space (melynek kódja 26) felett végezték. Útmutatás: alkalmazzuk a kínai maradéktételt, majd a köbgyököt meghatározó algoritmust. x = nre mod n1,
azaz x = c1 mod n1
Ha meghatároztuk a megfelelő x-et,
akkor visszanyerhető a nr, az alapján,
hogy x = nr3 mod(n1·n2·n3).
x = nre mod n2, azaz x = c2 mod n2 x = nre mod n3, azaz x = c3 mod n3 Plusz adatok 4. Az itt található titkosított szöveg, RSA módszerrel volt rejtjelezve, ahol a titkosítást az angol ábécé 26 betűje és a "space" felett végezték, azaz 27 jelet használtak. Határozzuk meg az eredeti szöveget, ha a nyilvános kulcs: (n = 117909607, e = 65537).
Megjegyzés: A
titkosított szöveg minden betűjének feleltessük
meg a megfelelő számkódot, (számkódtábla),
ahol a space számkódja 26, majd rendre 6-6
számkódból, feltételezve, hogy ezek 27-es
számrendszerbeli számjegyeket jelölnek,
képezzünk egy 276 számrendszerbeli
számot, ahol a 6 értékét: ceil(log 27 117909607)-1
képletből nyertük. Az
így kapott számra alkalmazzuk a visszafejtési
képletet, majd ezt alakítsuk vissza 27-es
számrendszerbeli számjegyekké, úgy hogy
minden nagyszámból pontosan 5 számjegyet
(számkódot) állítsunk elő.
5. A titkosított
file
AES-128-CBC módszerrel volt rejtjelezve, ahol a
titkosítást bájtok felett végeztük.
Határozzuk meg az eredeti GIF filet, ha az AES kulcs
titkosított értékét hexában itt találjuk. Az AES kulcsot
RSA-OAEP-vel titkosítottuk, ahol az RSA-modulus decimális
alakja itt
található, az
RSA-exponens e = 65537, az AES-nél
használt IV hexa értéke, pedig: IV
= 1abcdef234567890123456789abcdef0.
6. Az RSA kriptorendszer visszafejtésének
időigényét gyorsítani lehet, ha alkalmazzuk a
kínai maradéktételt. Alkalmazzuk ezt a
gyorsítási folyamatot az 1-es, vagy 2-es
feladatnál:
feltételezzük, hogy a nyilvános kulcs: (n, e),
a titkos kulcs: (n, d), és n
= p·q dp =
d mod (p-1)
Ha nr az érték, melyet vissza
kell fejteni,
akkor a nrd mod n értéket
megadja az x értéke, ahol
dq = d mod (q-1) Mq úgy hogy q · Mq = 1 mod p Mp úgy hogy p · Mp = 1 mod q x = (Mq· q · xp
+ Mp·
p · xq )mod n
Írjunk programot, melyben összehasonlítjuk a
két visszafejtési algoritmus időigényét.xp = nrdpmod p xq = nrdqmod q 7. A titkosított
file
AES-128-CTR módszerrel volt rejtjelezve, ahol a
titkosítást bájtok felett végeztük.
Határozzuk meg az eredeti JPG filet, ha az AES kulcs
titkosított értékét hexában itt találjuk. Az AES kulcs
értékét RSA-OAEP-vel
titkosítottuk, ahol az RSA-modulus decimális alakja itt található, az
RSA-exponens e = 65537, az AES-nél
használt IV hexa értéke, pedig: IV
= 1abcdef234567890123456789abcdef0.
8. Ugyanaz a szöveg RSA módszerrel, kétszer volt rejtjelezve, ahol a titkosítást bájtok felett végezték. Határozzuk meg az eredeti szöveget, ha tudjuk, hogy a titkosítást különböző exponensekkel (legyenek ezek e és f), de ugyanazzal a modulussal (legyen ez n) végezték, ahol (e, f) = 1. A két rejtjelezett szövegnek megfelelő bináris állomány itt és itt található, a két kulcs, ahol az első érték mindkét esetben a modulus, pedig itt és itt. Útmutatás:
|
|