RSA enkripcija. Primjer algoritma rsa enkripcije. EDS i javni ključ

U drugom dijelu ćemo se osvrnuti na popularni RSA algoritam, gdje se za enkripciju koristi javni ključ. Ali prvo vas želim još jednom upozoriti. Kôd naveden u ovom članku je samo u informativne svrhe. Kriptografija je vrlo opsežno i složeno područje, i kako ne biste imali problema, ne preporučam šifriranje podataka pomoću mog obrta.

U drugom dijelu ćemo se osvrnuti na popularni RSA algoritam, gdje se za enkripciju koristi javni ključ. Ali prvo vas želim još jednom upozoriti. Kôd naveden u ovom članku je samo u informativne svrhe. Kriptografija je vrlo prostrano i složeno područje, i kako ne biste imali problema, ne preporučam šifriranje podataka pomoću mog obrta.

RSA algoritam

Šifriranje javnog ključa

Šifriranje javnog ključa koristi se posvuda. Ako ste ikada nešto platili online, već ste koristili ovu metodu (nadam se!). Odmah se postavlja pitanje kako funkcionira ova zaštita. Ako unesem broj svoje kreditne kartice da nešto kupim, zašto nitko osim primatelja ne može vidjeti ove podatke? Dat ću vam metaforu. Za otvaranje sefa potreban vam je ključ (ili čekić, ali srećom su sefovi i brave zaštićeni od ovakvih stvari). Kod šifriranja pomoću javnog ključa događa se ista stvar. Pokazujete bravu da je svi vide, ali samo nekolicina odabranih ima ključ od ove brave, a vrata je gotovo nemoguće otvoriti drugim metodama.

RSA je jedan od algoritama koji implementiraju gornju shemu. Osim toga, možemo koristiti ovaj algoritam za provjeru autentičnosti našeg identiteta. Ako nekome pošaljete šifriranu poruku pomoću vašeg privatnog ključa, primatelj može koristiti vaš javni ključ za dešifriranje vaše poruke. Ova tehnologija vam omogućuje da potpišete poruke i time potvrdite autentičnost pošiljatelja.

Demo program baziran na RSA algoritmu

Shema Rivest-Shamir-Adleman (RSA) trenutno je jedina široko prihvaćena shema šifriranja javnog ključa u praksi.

RSA shema je blok šifra u kojoj su i otvoreni tekst i šifrirani tekst cijeli brojevi od 0 do P- 1 za neke P.

Čisti tekst je šifriran u blokovima, od kojih svaki sadrži binarnu vrijednost manju od nekog zadanog broja P. To znači da duljina bloka ne smije biti veća od log2(“). U praksi se bira duljina bloka jednaka 2 k bitovi gdje 2k Shema koju su razvili Rivest, Shamir i Adleman temelji se na izrazima moći. Šifriranje i dešifriranje za blok otvorenog teksta M i blok šifriranog teksta C mogu se predstaviti kao sljedeće formule:

I pošiljatelj i primatelj moraju znati vrijednost P. Pošiljatelj zna značenje e, a samo primatelj zna vrijednost d. Dakle, ova shema je algoritam šifriranja javnog ključa KU= (e, p), i privatni ključ KR = (d, p).

Da bi se ovaj algoritam mogao koristiti za šifriranje javnog ključa, moraju biti ispunjeni sljedeći zahtjevi:

Moraju postojati vrijednosti e, d I P,što M izd = M(mod P) za sve M n.

Trebalo bi biti relativno lako izračunati IVT i Od c1 za sve vrijednosti M p.

Mora biti gotovo nemoguće odrediti d dostupno njezin str.

Prvo ćemo analizirati prvi zahtjev, a ostatak razmotriti kasnije. Potrebno je pronaći odnos oblika

Ovdje se savršeno uklapa zaključak iz Eulerovog teorema: za bilo koja dva takva prosta broja R I q i tako bilo koja dva cijela broja Pete,što n=pqn0 i proizvoljan cijeli broj do vrijede slijedeći odnosi:

gdje je φ(n) Eulerova funkcija čija je vrijednost jednaka broju pozitivnih cijelih brojeva manjim od P i koprimeran s P.

U slučaju jednostavnog R I q imamo f (pq) - (str - 1 )(q - jedan). Stoga se traženi omjer dobiva pod uvjetom

Ovo je ekvivalentno sljedećim odnosima:

oni. njezina d međusobno su inverzni po modulu φ(n). Imajte na umu da, prema pravilima aritmetike u klasama ostataka, to može biti slučaj samo kada d(i stoga e) je kopriman s φ(u). U ekvivalentnom zapisu (f(/7), d)=.

Sada imamo sve za predstavljanje RSA sheme. Komponente kruga su:

R I q- dva prosta broja (tajni, odabrani);

p-pq(otvoreno, izračunato);

takav e, da (f(i), e)= 1,1 e

d = e l(mod f(/?)) (tajno, izračunato).

Privatni ključ se sastoji od (d,n), i otvoren od (e, p). Pretpostavimo da je korisnik A objavio svoj javni ključ, a sada će mu korisnik B poslati poruku M.

Zatim korisnik B izračunava šifriranu poruku

Nakon što je primio taj šifrirani tekst, korisnik A ga dešifrira izračunavanjem

Ovdje ima smisla dati obrazloženje za ovaj algoritam. Bili izabrani njezina d takav da

Dakle, izgleda kc>(n)+. Ali prema posljedicama Eulerovog teorema, za bilo koja dva takva prosta broja R I qu cijeli brojevi n = pqn M da su O odnosi ispunjeni

Zato

Sada imamo

Tablica 10.1 sažima RSA algoritam, a na sl. 10.1 prikazan je primjer njegove primjene. U ovom primjeru, ključevi se izračunavaju na sljedeći način:

  • 1. Biraju se dva prosta broja: p-7 wq- 17.
  • 2. Izračunati p =pq= 7 x 17 = 119.
  • 3. Izračunajte f (n) - (p -) (q - 1) = 96.
  • 4. Odabir e, kopriman s φ (P)= 96 i manje od f(i); u ovom slučaju = 5.
  • 5. Ovo je definirano d,što de= 1 (mod 96) i d 96. Odgovarajuća vrijednost bila bi d= 77, jer je 77 x 5 = 385 = 4 x 96 + 1.
  • 6. Rezultat je javni ključ KU= (5, 119) i privatni ključ KR = (77, 119).

Ovaj primjer pokazuje upotrebu ovih ključeva s unosom otvorenog teksta M = 19. Za šifriranje, 19 se podiže na petu potenciju, što rezultira 2 476 099. Dijeljenjem sa 119 dobije se ostatak od 66. Dakle, 19 119), i tako šifrirani tekst bit će 66. Nakon dešifriranja ispada da


Riža. 10.1.

Tablica 10.1

RSA enkripcija jedan je od prvih praktičnih kriptosustava s javnim ključem koji se naširoko koristi za siguran prijenos podataka. Njegova glavna razlika od sličnih usluga je u tome što je ključ za šifriranje javan i razlikuje se od ključa za dešifriranje koji se čuva u tajnosti. U tehnologiji, RSA se temelji na praktičnoj teškoći faktoring reprodukcije dvaju velikih prostih brojeva (problem faktoringa).

Povijest stvaranja

Naziv RSA dolazi od početnih slova imena Rivest, Shamir i Adleman, znanstvenici koji su prvi javno opisali prezimena 1977. godine. Clifford Cox, engleski matematičar koji je radio za britanske obavještajne službe, prvi je razvio ekvivalentni sustav 1973. godine, ali s njega je skinuta oznaka tajnosti tek 1997. godine.

RSA korisnik kreira i zatim objavljuje javni ključ na temelju dva velika prosta broja zajedno s pomoćnom vrijednošću. mora biti tajna. Svatko može koristiti javni ključ za šifriranje poruke, ali ako je dovoljno velik, onda samo netko tko poznaje proste brojeve može dekodirati poruku. Poznato je da je otkrivanje RSA enkripcije veliki problem: danas se vodi otvorena rasprava o tome koliko je ovaj mehanizam pouzdan.

RSA je relativno spor algoritam, zbog čega se ne koristi široko za izravne korisnike. Najčešća upotreba ove metode je prijenos u šifriranom obliku javnih ključeva za simetrični ključ za šifriranje, koji zauzvrat može izvoditi operacije masovnog šifriranja i dešifriranja mnogo većom brzinom.

Kada se pojavio kriptosustav u svom modernom obliku?

Ideja kriptosustava asimetričnog ključa pripisuje se Diffieju i Hellmanu, koji su koncept objavili 1976., uvodeći digitalne potpise i pokušavajući primijeniti teoriju brojeva. Njihova formulacija koristi zajedničku tajnu stvorenu eksponencijacijom nekog broja po modulu prostog broja. Međutim, ostavili su otvorenim problem implementacije ove značajke, budući da se principi faktoringa u to vrijeme nisu dobro razumjeli.

Rivest, Adi Shamir i Adleman s MIT-a napravili su nekoliko pokušaja tijekom godine da stvore jednosmjernu funkciju koju je teško dekodirati. Rivest i Shamir (kao informatičari) predložili su mnoge potencijalne značajke, dok je Adleman (kao matematičar) tražio "slabe točke" u algoritmu. Uzeli su mnoge pristupe i na kraju razvili konačni sustav u travnju 1977., danas poznat kao RSA.

EDS i javni ključ

Elektronički digitalni potpis ili EDS sastavni je dio elektroničkih dokumenata. Formira se uz određenu kriptografsku promjenu podataka. Pomoću ovog atributa moguće je provjeriti integritet dokumenta, njegovu povjerljivost, a također i utvrditi tko ga posjeduje. Zapravo, ovo je alternativa uobičajenom standardnom potpisu.

Ovaj kriptosustav (RSA enkripcija) nudi javni ključ, koji se razlikuje od simetričnih. Princip njegovog funkcioniranja je da se koriste dva različita ključa - privatni (kriptirani) i javni. Prvi se koristi za generiranje EDS-a i naknadno dešifriranje teksta. Drugi je za stvarno šifriranje i provjeru digitalnog potpisa.

Korištenje potpisa omogućuje bolje razumijevanje RSA enkripcije, čiji se primjer može navesti kao uobičajeni tajni dokument "skriven od znatiželjnih očiju".

Koja je bit algoritma?

RSA algoritam se sastoji od četiri koraka: generiranje ključeva, distribucija ključeva, šifriranje i dešifriranje. Kao što je već spomenuto, RSA enkripcija uključuje javni ključ i privatni ključ. Open može biti poznat svima i koristi se za šifriranje poruka. Njegova bit leži u činjenici da se poruke šifrirane javnim ključem mogu dešifrirati samo u određenom vremenskom razdoblju korištenjem tajnog ključa.

Zbog sigurnosnih razloga, cijeli brojevi bi trebali biti nasumično odabrani i jednaki po veličini, ali se razlikuju po duljini za nekoliko znamenki kako bi faktoriranje bilo teže. Identični brojevi mogu se učinkovito pronaći pomoću testa njihove jednostavnosti, tako da šifriranje informacija nužno mora postati komplicirano.

Javni ključ se sastoji od modula i javnog eksponenta. Privatno se sastoji od modula i privatnog indikatora, koji se moraju čuvati u tajnosti.

RSA šifriranje datoteka i slabosti

Međutim, postoji niz mehanizama za razbijanje obične RSA. S šifriranjem male vrijednosti i malim brojevima, šifra se može lako razbiti odabirom korijena šifriranog teksta preko cijelih brojeva.

Budući da je RSA enkripcija deterministički algoritam (tj. nema slučajnu komponentu), napadač može uspješno pokrenuti odabrani napad otvorenog teksta na kriptosustav šifriranjem vjerojatnih otvorenih tekstova javnim ključem i provjeravanjem jesu li jednaki šifriranom tekstu. Kriptosustav se naziva semantički sigurnim ako napadač ne može razlikovati dvije enkripcije jedna od druge, čak i ako poznaje odgovarajuće tekstove u proširenom obliku. Kao što je gore opisano, RSA bez dodavanja drugih usluga nije semantički siguran.

Dodatni algoritmi za šifriranje i zaštitu

Kako bi se izbjegli gore navedeni problemi, praktične implementacije RSA obično ugrađuju neki oblik strukturiranih, nasumičnih dopuna prije šifriranja. Time se osigurava da sadržaj ne spada u raspon nesigurnih otvorenih tekstova i da se poruka ne može otkriti slučajnim odabirom.

Sigurnost RSA kriptosustava i enkripcija informacija temelje se na dvama matematičkim problemima: problemu faktoringa velikih brojeva i samom RSA problemu. Potpuno otkrivanje šifriranog teksta i digitalnog potpisa u RSA-u smatra se neprihvatljivim pod pretpostavkom da se oba ova problema ne mogu riješiti zajedno.

Međutim, zbog mogućnosti povrata primarnih faktora, napadač može izračunati tajni indikator iz javnog ključa, a zatim dešifrirati tekst koristeći standardnu ​​proceduru. Iako danas na klasičnom računalu nije pronađena postojeća metoda za faktorizaciju velikih brojeva, nije dokazano da ona ne postoji.

Automatizacija

Alat pod nazivom Yafu može se koristiti za pojednostavljenje ovog procesa. Automatizacija u YAFU-u je najsuvremenija značajka koja kombinira algoritme faktorizacije u inteligentnoj i prilagodljivoj metodologiji koja minimizira vrijeme za pronalaženje faktora proizvoljnih ulaznih brojeva. Većina implementacija algoritma je višenitna, što Yafuu omogućuje da u potpunosti iskoristi prednosti više ili više (uključujući SNFS, SIQS i ECM). Prije svega, to je upravljani alat naredbenog retka. Vrijeme potrošeno na traženje faktora šifriranja pomoću Yafua na običnom računalu može se smanjiti na 103,1746 sekundi. Alat proizvodi obradu s kapacitetom od 320 bita ili više. To je vrlo složen softver koji zahtijeva određenu količinu tehničkih vještina za instalaciju i konfiguraciju. Stoga RSA enkripcija C može biti ranjiva.

Pokušaji hakiranja u moderno doba

Godine 2009. Benjamin Moody je, koristeći RSA-512 bitni ključ, radio na dešifriranju kriptoteksta 73 dana koristeći samo dobro poznati softver (GGNFS) i prosječno stolno računalo (dvojezgreni Athlon64 na 1900 MHz). Kako je pokazalo ovo iskustvo, za proces "prosijavanja" bilo je potrebno nešto manje od 5 gigabajta diska i oko 2,5 gigabajta RAM-a.

Od 2010., najveći faktorizirani RSA broj bio je dug 768 bita (232 decimalne znamenke ili RSA-768). Njegovo otkrivanje trajalo je dvije godine na nekoliko stotina računala u isto vrijeme.

U praksi, RSA ključevi su duži, obično između 1024 i 4096 bita. Neki stručnjaci vjeruju da bi 1024-bitni ključevi mogli postati nepouzdani u bliskoj budućnosti ili bi ih čak mogao razbiti dobro financirani napadač. Međutim, malo tko bi tvrdio da bi 4096-bitni ključevi također mogli biti otkriveni u doglednoj budućnosti.

izgledi

Stoga se općenito pretpostavlja da je RSA siguran ako su brojevi dovoljno veliki. Ako je osnovni broj 300 bita ili kraći, šifrirani tekst i digitalni potpis mogu se razložiti unutar nekoliko sati na osobnom računalu pomoću softvera koji je već besplatno dostupan. Pokazalo se da se 512-bitni ključevi mogu razbiti već 1999. pomoću nekoliko stotina računala. Ovih je dana to moguće u roku od nekoliko tjedana korištenjem uobičajeno dostupnog hardvera. Stoga je sasvim moguće da će RSA enkripcija na prstima biti lako razotkrivena u budućnosti, a sustav će postati beznadno zastario.

Službeno je 2003. dovedena u pitanje sigurnost 1024-bitnih ključeva. Trenutačno se preporučuje da bude dugačak najmanje 2048 bita.

RSA koristi dvije vrste ključeva - e i d , gdje je e javni, a d tajni. Pretpostavimo da je P otvoreni tekst, a C šifrirani tekst. Alice koristi C = P e mod n da stvori šifrirani tekst C iz otvorenog teksta P ; Bob koristi P = C d mod n za izdvajanje izvornog teksta (datoteke) koju je dala Alice. Vrlo velik broj modula n nastaje korištenjem procesa generiranja ključeva, o čemu ćemo kasnije raspravljati.

Za enkripciju i dešifriranje koristi se modulo eksponencijacija. Kao što smo već raspravljali u predavanjima 12-13, kada se koristi brzi algoritam, eksponencijacija po modulu je izvediva u polinomskom vremenu. Međutim, pronalaženje modulo logaritma jednako je teško kao faktoriranje broja po modulu. Za to ne postoji polinomski algoritam vremena. To znači da Alice može šifrirati poruku javnim ključem (e) u polinomskom vremenu. Bob ga također može dešifrirati u polinomskom vremenu (jer zna d ). Ali Eve ne može dešifrirati ovu poruku jer bi morala izračunati e-ti korijen od C pomoću modularne aritmetike. Slika 14.5 prikazuje ideju RSA.


Riža. 14.5.

Drugim riječima, Alice koristi jednosmjerna funkcija(povišenje po modulu) s rupom koju poznaje samo Bob. Eve ne zna za rupu, pa ne može dešifrirati poruku. Ako se ikada pronađe polinomski algoritam za e-ti korijenski modul od n , tada eksponencijacija po modulu n više neće biti jednosmjerna funkcija.

Postupak

Slika 14.6 prikazuje opću ideju postupka koji se koristi u RSA.

RSA koristi eksponencijalni modul za šifriranje/dešifriranje. Kako bi napala privatni tekst, Eve mora računati


Riža. 14.6.
Dvije algebarske strukture

RSA koristi dvije algebarske strukture: prsten i grupu.

Prstenovi za šifriranje/dešifriranje. Šifriranje i dešifriranje se vrši pomoću komutativnog prstena s dvije aritmetičke operacije: zbrajanjem i množenjem. U RSA, ovaj prsten je javan jer je modul n javan. Svatko može poslati poruku Bobu pomoću ovog prstena za šifriranje.

Grupe za ključne generacije. RSA koristi multiplikativnu grupu za generiranje ključeva. Grupa podržava samo množenje i dijeljenje (multiplikativna inverzija), koji su potrebni za generiranje javnih i privatnih ključeva. Ova grupa mora biti skrivena jer je njezin modul tajni. Vidjet ćemo da ako Eve pronađe ovaj modul, može lako napasti kriptografski sustav.

RSA koristi dvije algebarske strukture: otvoreni prsten R =< Z n , +, x > i tajna grupa G =< Z (n)* , x >.

Generiranje ključeva

Bob koristi korake prikazane u algoritmu 14.2 za generiranje svojih javnih i privatnih ključeva. Nakon generiranja ključeva, Bob deklarira tuple (e, n) kao svoj javni pristupni ključ: Bob pohranjuje d kao svoj privatni ključ. Bob može odbiti p, q i ; ne mogu promijeniti njegov privatni ključ bez promjene modula. Radi sigurnosti, preporučena veličina za svaki jednostavan p ili q je 512 bita (gotovo 154 decimalne znamenke). Ovo određuje veličinu jedinice, n je 1024 bita (309 znamenki).

14.2. RSA generiranje ključeva

U RSA, tuple (e, n) je javni pristupni ključ; cijeli broj d - tajni ključ.

Šifriranje

Svatko može poslati poruku Bobu koristeći njegov javni pristupni ključ. Šifriranje u RSA može se izvršiti korištenjem algoritma polinomskog vremena, kao što je prikazano u algoritmu 14.3. O algoritmu brzog eksponencijalnosti raspravljalo se u predavanjima 12-13. Veličina izvornog teksta mora biti manja od n; ako je veličina izvornog teksta veća, onda ga treba podijeliti u blokove.

Ispod reza su opisani primjeri odabira "loših" parametara RSA šifre.

“Treba naglasiti da se mora voditi računa o odabiru modula RSA (brojevi n) za svakog dopisnika mreže. S tim u vezi, može se reći sljedeće. Čitatelj to može samostalno provjeriti, poznavajući jednu od tri veličine str, q ili φ(n), lako se može pronaći RSA tajni ključ...”.

Dodajmo ovaj tekst. Ako je izbor modula RSA šifre neuspješan, kao što je učinjeno u primjeru tutoriala ispod, moguće je dešifrirati tekst bez prisutnosti tajnog ključa, tj. bez poznavanja niti jedne od tri imenovane veličine.

Da biste to učinili, dovoljno je imati šifrirani tekst koji je zadao modul šifriranja n, javni ključ ešifrirati i izvesti samo tri koraka napada "čitanja bez ključa". Nakon četvrtog napadačkog koraka utvrđuje se da je izvorni tekst primljen u prethodnom koraku, može se čitati. Pokažimo kako je to lako učiniti.

Najprije navedimo sam primjer sa str. 313-315 iz spomenutog priručnika.

Primjer

Šifriranje kratka originalna tekstualna poruka: RSA.
Primatelj postavlja šifru s karakteristikama n=pq=527, gdje p=17, q=31 I φ(n)=(r –1)(q – 1)=480. Kao javni ključ e bira se broj koji je koprost s φ(n), e=7. Za ovaj broj, korištenjem proširenog Euklidovog algoritma, nalaze se cijeli brojevi u I v, zadovoljavajući odnos e∙u+φ(n)∙v=1:

480=7∙68+4,
7=4∙1+3,
4=3∙1+1,
1=4–3∙1=4–(7–4∙1)∙1=4∙2–7∙1=(480–7∙68)∙2–7∙1=480∙2–7∙137,
v=2, u=–137
.

Ukoliko –137≡343(mod480), onda d=343.

pregled: 7∙343=2401≡1(mod480).

Tekstualna poruka je predstavljena kao niz brojeva sadržanih u intervalu . Za ovo pismo R, S I A kodirani kao 5-bitni binarni brojevi. Serijski brojevi ovih slova u engleskoj abecedi koriste se u njihovom binarnom prikazu:

R=18 10 = (10010) 2, S=19 10 =(10011) 2,
A=1 10 = (00001) 2.

Zatim RSA=(100101001100001) 2. Razbijanje teksta na blokove ograničene duljine daje prikaz dva bloka: RSA=(100101001), (100001)=(M 1 =297, M 2 =33).

Sekvencijski šifrirani blokovi izvornog teksta M 1 \u003d 297, M 2 \u003d 33:
y 1 = E k (M 1) = M 1 e ≡297 7 (mod527) \u003d 474.

Ovdje smo koristili:

297 7 =((297 2) 3)297≡(mod527)=(200 3 (mod527)297)(mod527)=474,
y 2 = E k (M 2) \u003d M 2 e ≡33 7 (mod527) = 407.

Šifrirani tekst, kao i originalni, dobiva se u obliku dva bloka: y 1 =474; y 2 =407.

Dešifriranje izgleda kao slijed radnji D k (y i)=(y i) d =(y i) 343 (mod 527), i=1,2.

Izračuni eksponencijalnosti d prikladnije je izvesti, preliminarno predstavljajući eksponent kao zbroj potencija broja 2 , naime: 343=256+64+16+4+2+1 .

Koristeći ovaj eksponentni prikaz d=343, dobivamo:

474 2 ≡174 (mod527),
474 4 ≡237 (mod527),
474 8 ≡307 (mod527),
474 16 ≡443 (mod527),
474 32 ≡205 (mod527),
474 64 ≡392 (mod527),
474 128 ≡307 (mod527),
474 256 ≡443 (mod527),

i konačno 474 343 (mod527)=(443∙392∙443∙237∙174∙474) (mod527)=297.

Vrijednost se izračunava na sličan način 407 343 (mod527)=33.

Prebacivanje na doslovni prikaz dešifrirane poruke daje: RSA.

Nakon ispitivanja primjera, priručnik govori o snazi ​​RSA sustava. Potreba za oprezom pri odabiru modula RSA šifre (brojevi n) za svakog dopisnika mreže. Ističe se da je neprihvatljivo zanemariti zahtjeve za odabrane karakteristike sustava šifriranja. Među tim zahtjevima, nažalost, nije naznačen onaj čije kršenje ilustrira navedeni primjer.

Napad na RSA šifru

Razmotrimo primjer napada na RSA šifru. Poslužimo se podacima primjera danog na stranicama 313-315 u udžbeniku "Osnove kriptografije" autora A.P. Alferov, A.Yu. Zubov, A.S. Kuzmin, A.V. Čeremuškin, Moskva. "Helios ARV", 2001.

Neuspjeh (nedopustivost) odabranih parametara sustava u ovom primjeru lako se pokazuje proračunima koji provode napad čitanja izvornog teksta bez ključa. Suština takvog napada je sljedeća. Daje se javni ključ RSA šifre ( e=7, n=527) i šifrirani tekst. U primjeru je šifrirani tekst predstavljen s dva bloka
y = (y 1 = 474, y 2 = 407).

Svaki šifrirani blok se napada pojedinačno, prvo napadamo y 1 =474, nakon što smo ga dešifrirali, napadamo drugi blok y 2 =407.

Zatim se formira ponovljenom enkripcijom uz spremanje rezultata dva uzastopna koraka algoritma napada i korištenjem javnog ključa niza brojčanih vrijednosti i, y 1 = y dostupni šifrirani tekst.

U algoritmu napada šifriranim tekstom određuje se sljedeći broj koraka j, za koji y i e j (mod n)=(y i e j–1 (mod n)) e (mod n)=y i, i>1. Iz posljednje relacije vidimo da pri dizanju na stepen e vrijednosti (y i e j–1 (mod n)) ispada početni shifortekst y i = y 1.

Ali to znači da je otvoreni tekst šifriran u ovom koraku. Izravnim izračunima (ima ih vrlo malo) pomoću kalkulatora na ekranu nalazimo tu vrijednost j, na kojem ciklus šifriranja završava vrijednošću y 1 od koje je ciklus započeo.

Napad na prvi blok y 1 =474šifrirani tekst.
Korak 1:  474 7 (mod527)=382;
Korak 2:  382 7 (mod527)=423;
Korak 3:  423 7 (mod527)=297;
4. korak:   Ovaj korak šifrira već pronađeni izvorni tekst, ali se mora izvršiti jer napadač ne zna izvorni tekst. Znak završetka napada je podudarnost početne vrijednosti šifriranog teksta ( 474 ) i rezultat 4. koraka enkripcije. Upravo se takva slučajnost događa.

297 7 (mod527) = 474 primio početni (prvi) blok šifriranog teksta. Napad na prvi blok uspješno završen y 1 =474. Prethodni rezultat koraka 3 je čisti tekst M 1 \u003d 297.

n=527 r=297 modulo n=527. Napisano je ovako y i \u003d y 1 \u003d 297. Formiramo ostatke snage
(((297 7 (mod527)) 7 (mod527)) 7 (mod527)) 7 =297.

Napad na drugi blok y 2 =407šifrirani tekst.
Korak 1:  407 7 (mod527)=16;
Korak 2:  16 7 (mod527)=101;
Korak 3:  101 7 (mod527)=33;
4. korak:  33 7 (mod527)=407.

Opet, u trećem koraku, dobiva se blok izvornog teksta ( M 2 \u003d 33), ali napadač to ne zna, te izvodi sljedeći (četvrti korak) čiji je rezultat ( 407 ) odgovara početnom šifriranom tekstu y 2 =407.

U biti u prstenu ostataka po modulu n=527 implementirao kratki ciklus obrade odbitka r=33 modulo n=527. Napisano je ovako y i \u003d y 2 \u003d 33.
Formiramo ostatke snage ((33 7 (mod527)) 7 (mod527)) 7 (mod527)=33.

Rezultat napada (izvorni tekst M 1 \u003d 297, M 2 \u003d 33) dobiva se trostrukim šifriranjem zadanog šifriranog teksta. Veći uspjeh napadačkog šifriranog teksta teško je zamisliti.

Nastavljajući raspravu o izboru modula i ostalih parametara šifre, možemo dodati da je modul šifre ( n=527) neki izvorni tekstovi uopće ne dopuštaju šifriranje. U ovom slučaju izbor vrijednosti javnog ključa e ne igra veliku ulogu. Postoje vrijednosti otvorenog teksta koje se uopće ne mogu šifrirati odabranom šifrom s modulom n=527.

Niti jedan od danih e ne može šifrirati obične tekstove predstavljene brojevima
187 , 341 , 154 I 373 .

Primjer (nemogućnost šifriranja vrijednosti nekih izvornih tekstova)

Neka su izvorni tekstovi predstavljeni s četiri bloka y=(y 1 =154, y 2 =187, y 3 =341, y 4 =373). Izlagač e javni ključ šifre može biti bilo koji relativno prost broj s Eulerovom funkcijom φ(n)=φ(527)=480. Međutim, za slučaj koji se razmatra, javni ključ e može se postaviti proizvoljno. Doista, neka e=2, 4, 7, 9, 17, 111 zatim:

154 2 (mod527)=1;
154 4 (mod527)=1;
154 7 (mod527)=154;
154 9 (mod527) = 154;
154 17 (mod527)=154;
154 111 (mod527) = 154;
187 2 (mod527)=187;
187 4 (mod527)=187;
187 7 (mod527)=187;
187 9 (mod527)=187;
187 17 (mod527)=187;
187 111 (mod527)=187;
341 2 (mod527)=341;
341 4 (mod527)=1;
341 7 (mod527) = 341;
341 9 (mod527) = 341;
341 17 (mod527)=341;
341 111 (mod527) = 341;
373 2 (mod527)=1;
373 4 (mod527) = 373;
373 7 (mod527) = 373;
373 9 (mod527) = 373;
373 17 (mod527)=373;
373 111 (mod527) = 373.

Iz razmatranog primjera slijedi jednostavan zaključak. Doista, odabiru parametara procesa enkripcije mora se pristupiti vrlo pažljivo i treba provesti temeljitu preliminarnu analizu takvih parametara. Kako to učiniti je zasebno pitanje i ne razmatra se u okviru ovog rada.