User Tools

Site Tools


rsa

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
rsa [2023/09/25 09:11] – gotovo katarinarsa [2023/11/27 09:22] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====RSA==== ====RSA====
  
-**RSA** je kriptografski sustav javnog-ključa koji pruža enkripciju podataka i sigurnost komunikacije. Kao i kod ostalih sustava javnog ključa, enkripcijski ključ je javan i različit od dekripcijskog ključa, koji je tajan (privatni kjuč). Javni ključ sustava temeljen je na umnošku dvaju velikih prostih brojeva koji su tajni, a od kojih dobivamo i privatni ključ. +**RSA** je kriptografski sustav javnog ključa koji pruža enkripciju podataka i sigurnost komunikacije. Kao i kod ostalih sustava javnog ključa, enkripcijski je ključ javan i različit od dekripcijskog koji je tajan (privatni ključ). Javni ključ sustava temeljen je na umnošku dvaju velikih prostih brojeva koji su tajni, a od kojih dobivamo i privatni ključ. 
  
-Sigurnost RSA sustava se temelji na činjenici da je teško pronaći faktore produkta dvaju velikih prostih brojeva. Ne postoji objavljena metoda koja takav problem pouzdano rješava za dovoljno velik ključ. Napadi na RSA mogući su kod matematičkih (npr. kratak ključ) i implementacijskih (npr. pogreška u računanju) grešaka u korištenju. RSAuz pravilnu upotrebu, stoga smatramo sigurnim.+Sigurnost RSA sustava se temelji na činjenici da je teško pronaći faktore produkta dvaju velikih prostih brojeva. Ne postoji objavljena metoda koja takav problem pouzdano rješava za dovoljno velik ključ. Napadi na RSA mogući su kod matematičkih grešaka u korištenju (npr. kratak ključ) i implementacijskih (npr. pogreška u računanju). Zato RSA uz pravilnu upotrebu smatramo sigurnim.
  
 RSA algoritam se odvija u 4 koraka: generiranje ključa, distribucija ključa, enkripcija i dekripcija. RSA algoritam se odvija u 4 koraka: generiranje ključa, distribucija ključa, enkripcija i dekripcija.
Line 20: Line 20:
 c<sup>d</sup> ≡ (m<sup>e</sup>)<sup>d</sup>  ≡ m mod(n) c<sup>d</sup> ≡ (m<sup>e</sup>)<sup>d</sup>  ≡ m mod(n)
  
-Glavni problem RSA sustava je resursna i vremenska zahtjevnost generiranja većih ključeva, što je zašto se u praksi u pravilu koristi samo kao sustav javnog ključa za sigurnost komunikacije (e-maildigitalni potpisi...), dok se tajnost samih podataka osigurava kombiniranjem RSA sa simetričnim enkripcijskim algoritmima.+Glavni problem RSA sustava je resursna i vremenska zahtjevnost generiranja većih ključeva. Zato se u praksi RSA često koristi samo za sigurnu razmjenu tajnog ključa, a daljnja komunikacija se odvija koristeći simetriču kriptografiju (npr. pomoću RSA-a se razmjeni tajni AES ključ kojim se nastavlja daljnja komunikacija).
  
-===PRIMJER: Zadatak sa Hacknite platforme – Mod n je potreban?===+===PRIMJER: Zadatak Hacknite platforme – Mod n je potreban?===
 <file> <file>
 Nepoznatom kriptografskom tehnikom je šifrirana vrlo bitna poruka. Doduše... kako pročitati poruku ako je Nepoznatom kriptografskom tehnikom je šifrirana vrlo bitna poruka. Doduše... kako pročitati poruku ako je
Line 51: Line 51:
  
 c<sup>d</sup> ≡ (m<sup>e</sup>)<sup>d</sup>  ≡ m mod(n) \\ c<sup>d</sup> ≡ (m<sup>e</sup>)<sup>d</sup>  ≡ m mod(n) \\
-c<sup>d</sup> ≡ (m<sup>e</sup>)<sup>d</sup>    /d√\\ +c<sup>d</sup> ≡ (m<sup>e</sup>)<sup>d</sup>    /<sup>d</sup>√\\ 
-c = m<sup>e</sup> /e√\\ +c = m<sup>e</sup>                 /<sup>e</sup>√\\ 
-m = e√c\\+m = <sup>e</sup>√c\\
  
-Sada kada znamo matematički najlakši način dekripcije poruke, možemo napisati jednostanu python skriptu koja će nam dati rješenje.+Sada kada znamo matematički najlakši način dekripcije poruke, možemo napisati jednostavnu skriptu koja će nam dati rješenje. Skripta računa broj m (//plaintext//) i, budući da je u zadatku rečeno da je poruka pisana u heksadekadskom zapisu, pretvara m u heksadekadski broj. Nakon toga dekodira poruku i ispisuje rješenje.
  
 <code python> <code python>
Line 78: Line 78:
 novi problem: poznatih brojeva je još manje nego u prošlom zadatku, a ne zna ni kako faktorizirati velike novi problem: poznatih brojeva je još manje nego u prošlom zadatku, a ne zna ni kako faktorizirati velike
 brojeve. Doduše, čuo je kako bi alat https://gitlab.inria.fr/cado-nfs/cado-nfs mogao biti od pomoći. brojeve. Doduše, čuo je kako bi alat https://gitlab.inria.fr/cado-nfs/cado-nfs mogao biti od pomoći.
-Također, obzirom da broj e nije poznat, pitao je prijatelja za pomoć, a on mu je rekao da je e onaj koji  +Također, obzirom na to da broj e nije poznat, pitao je prijatelja za pomoć, a on mu je rekao da je e  
-se najčešće koristi, što god to značilo. Flag je u formatu CTF2021[brojevi]+onaj koji se najčešće koristi, što god to značilo. Flag je u formatu CTF2021[brojevi]
  
 Zadano: Zadano:
Line 87: Line 87:
 </file> </file>
  
-Da bismo dobili rješenje, moramo prvo naći jiš korisnih brojeva. Stoga ćemo prvo rastaviti n na njegove komponente, tj. na 2 prosta broja p i q. Ovo nije trivijalan zadatak pa ćemo koristiti gotove alate dostupne na internetu kao što su https://gitlab.inria.fr/cado-nfs/cado-nfs.+Da bismo dobili rješenje, moramo prvo naći još korisnih brojeva. Najčešći e je 65537 pa ćemo se njime koristiti. Zadani rastavit ćemo na njegove komponente, tj. na 2 prosta broja p i q. Ovo nije trivijalan zadatak pa ćemo se koristiti gotovim alatima dostupnim na internetu kao što su https://gitlab.inria.fr/cado-nfs/cado-nfs.
  
-Nakon što smo dobili p i q, možemo doći i do m, proučimo matematiku radi koje je to moguće:\\+Nakon što smo dobili e, p i q, možemo doći i do m:\\
 𝜑 = (p - 1)(q - 1)\\ 𝜑 = (p - 1)(q - 1)\\
 d = e-1 mod(𝜑)\\ d = e-1 mod(𝜑)\\
-c<sup>d</sup> = m mod(n) <---vrijedi---> m = c<sup>d</sup> mod(n)\\+c<sup>d</sup> = m mod(n)  <-> m = c<sup>d</sup> mod(n)\\
  
 Programski, to rješenje možemo zapisati kao: Programski, to rješenje možemo zapisati kao:
rsa.1695633086.txt.gz · Last modified: 2025/06/03 10:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki