Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> Domanda >> password >> .

Cos'è la crittografia RSA e come risolvere i loro numerici?

RSA (Rivest-Shamir-Adleman) è un criptosistema a chiave pubblica ampiamente usata. Si basa sulla pratica difficoltà di considerare il prodotto di due grandi numeri primi. Ecco una rottura:

Come funziona RSA:

1. Generazione chiave:

*Scegli due numeri primi distinti, *P *e *Q *. Più sono più grandi questi, più è sicura la crittografia.

* Calcola * n =P * Q *. * n* è il modulo.

* Calcola φ (n) =(p-1) (Q-1). Questa è la funzione tozzente di Euler, che rappresenta il numero di numeri interi inferiori a *n *che sono relativamente primi a *n *.

* Scegli un numero intero * e * (esponente pubblico) in modo tale che 1 <* e * <φ (n) e gcd (e, φ (n)) =1 (il più grande divisore comune è 1; * e * e φ (n) sono coprimo). Una scelta comune è 65537 (2 16 + 1).

* Calcola * d * (esponente privato) tale che * d * * e ≡ 1 (mod φ (n)). Questo significa * d * * * e * lascia un resto di 1 quando diviso per φ (n). Questo viene in genere eseguito utilizzando l'algoritmo euclideo esteso.

2. Chiave pubblica: La chiave pubblica è la coppia (*n*,*e*). Questo è condiviso pubblicamente.

3. Chiave privata: La chiave privata è la coppia (*n*,*d*). Questo deve essere tenuto segreto.

4. Crittografia: Per crittografare un messaggio *m *(rappresentato come un numero inferiore a *n *):

* Ciphertext * c * =* m e *(mod *n *)

5. Decrittazione: Per decrittografare il testo cifrato *c *:

* Pianura * m * =* c d *(mod *n *)

Perché funziona: Il teorema di Euler afferma che se *a *e *n *sono coprime, allora *a φ (n) ≡ 1 (mod n)*. La scelta di * d * e l'aritmetica modulare assicurano che la decrittografia recupera correttamente il messaggio originale. La rottura di RSA si basa sul factoring *n *in *p *e *q *, che è computazionalmente impossibile per numeri primi sufficientemente grandi.

Risoluzione dei numerici RSA:

La difficoltà di risolvere i problemi numerici RSA dipende da quali informazioni vengono fornite. Ecco esempi di problemi tipici e come risolverli:

Esempio 1:crittografia

* Problema: Dato * p * =11, * q * =13, * e * =7 e messaggio * m * =5, crittografare il messaggio.

* Soluzione:

1. Calcola * n * =* p * * * q * =11 * 13 =143

2. Calcola φ (n) =(11-1) (13-1) =120

3. Verifica che GCD (7, 120) =1 (sono coprime)

4. Crittografia:*c *=*m e *(mod *n *) =5 7 (Mod 143)

* 5 7 =78125

* 78125 ÷ 143 ≈ 546 con un resto di 67

* Pertanto, * c * =67

Esempio 2:decrittografia

* Problema: Dato * P * =11, * Q * =3, * E * =7 e Ciphertext * C * =10, decrittono il testo cifrato.

* Soluzione:

1. Calcola * n * =* p * * * q * =11 * 3 =33

2. Calcola φ (n) =(11-1) (3-1) =20

3. Trova * d * tale che * d * * * e * ≡ 1 (mod φ (n)) questo significa 7 * * d * ≡ 1 (mod 20). È possibile risolvere questo problema utilizzando l'algoritmo euclideo esteso o per prova ed errore. * d * =3 funziona perché (7 * 3) =21 ≡ 1 (mod 20).

4. Decrypt:*m *=*c d *(mod *n *) =10 3 (Mod 33)

* 10 3 =1000

* 1000 ÷ 33 ≈ 30 con un resto di 10

* Pertanto, * m * =10

Esempio 3:Finding D (Private Exponent)

Trovare "D" richiede spesso l'algoritmo euclideo esteso, che è oltre lo scopo di una semplice spiegazione qui. Tuttavia, per numeri più piccoli, potrebbero funzionare prove ed errori. Stai cercando un numero 'd' che soddisfi la congruenza * d * * e ≡ 1 (mod φ (n)).

Considerazioni importanti:

* numeri grandi: RSA del mondo reale utilizza numeri primi estremamente grandi (centinaia o migliaia di bit). I calcoli manuali sono impossibili; È richiesto un software specializzato.

* Aritmetica modulare: Comprendere l'aritmetica modulare è cruciale per lavorare con RSA. Molti calcolatori e linguaggi di programmazione hanno funzioni integrate per l'esponentezione modulare.

* Sicurezza: La sicurezza di RSA dipende interamente dalla difficoltà di prendere in considerazione un gran numero. Con l'aumentare della potenza di calcolo, anche le dimensioni dei numeri primi utilizzati devono aumentare per mantenere la sicurezza.

Questi esempi illustrano i principi di base. Per problemi più avanzati, probabilmente dovrai utilizzare strumenti computazionali e una comprensione più profonda della teoria dei numeri.

 

Domanda © www.354353.com