logo

Algoritmo di crittografia RSA

L'algoritmo di crittografia RSA è un tipo di algoritmo di crittografia a chiave pubblica. Per comprendere meglio l'RSA, comprendiamo innanzitutto cos'è l'algoritmo di crittografia a chiave pubblica.

Algoritmo di crittografia a chiave pubblica:

L'algoritmo di crittografia a chiave pubblica è anche chiamato algoritmo asimmetrico. Gli algoritmi asimmetrici sono quegli algoritmi in cui mittente e destinatario utilizzano chiavi diverse per la crittografia e la decrittografia. Ad ogni mittente viene assegnata una coppia di chiavi:

    Chiave pubblica Chiave privata

IL Chiave pubblica viene utilizzato per la crittografia e il file Chiave privata viene utilizzato per la decrittazione. La decrittografia non può essere eseguita utilizzando una chiave pubblica. Le due chiavi sono collegate, ma la chiave privata non può essere derivata dalla chiave pubblica. La chiave pubblica è ben nota, ma la chiave privata è segreta ed è nota solo all'utente che la possiede. Significa che tutti possono inviare un messaggio all'utente utilizzando la chiave pubblica dell'utente. Ma solo l'utente può decrittografare il messaggio utilizzando la sua chiave privata.

L'algoritmo a chiave pubblica funziona nel modo seguente:

Algoritmo di crittografia RSA
  • I dati da inviare vengono crittografati dal mittente UN utilizzando la chiave pubblica del destinatario previsto
  • B decrittografa il testo cifrato ricevuto utilizzando la sua chiave privata, che è nota solo a B. B risponde ad A crittografando il suo messaggio utilizzando la chiave pubblica di A.
  • A decifra il testo cifrato ricevuto utilizzando la sua chiave privata, che solo lui conosce.

Algoritmo di crittografia RSA:

RSA è l'algoritmo a chiave pubblica più comune, dal nome dei suoi inventori Rivest, Shamir e Adelman (RSA).

Algoritmo di crittografia RSA

L'algoritmo RSA utilizza la seguente procedura per generare chiavi pubbliche e private:

  • Seleziona due numeri primi grandi, p e Q .
  • Moltiplica questi numeri per trovare n = pxq, Dove N è chiamato modulo per la crittografia e la decrittografia.
  • Scegli un numero È meno di N , tale che n è relativamente primo a (p - 1) x (q -1). Significa che È E (p - 1) x (q - 1) non hanno divisori comuni tranne 1. Scegli 'e' tale che 1 mcd (e,d(n)) =1
  • Se n = pxq, allora la chiave pubblica è . Un messaggio di testo in chiaro M è crittografato utilizzando la chiave pubblica. Per trovare il testo cifrato dal testo semplice viene utilizzata la seguente formula per ottenere il testo cifrato C.
    C = mÈcontro n
    Qui , M deve essere inferiore a N . Un messaggio più grande (>n) viene trattato come una concatenazione di messaggi, ciascuno dei quali viene crittografato separatamente.
  • Per determinare la chiave privata, utilizziamo la seguente formula per calcolare la d tale che:
    DÈmod {(p - 1) x (q - 1)} = 1
    O
    DÈmodφ(n) = 1
  • La chiave privata è . Un messaggio di testo cifrato C viene decrittografato utilizzando la chiave privata. Per calcolare il testo semplice M dal testo cifrato c la seguente formula viene utilizzata per ottenere il testo semplice m.
    m = cDcontro n

Prendiamo qualche esempio dell'algoritmo di crittografia RSA:

Esempio 1:

Questo esempio mostra come possiamo crittografare il testo in chiaro 9 utilizzando l'algoritmo di crittografia a chiave pubblica RSA. Questo esempio utilizza i numeri primi 7 e 11 per generare le chiavi pubblica e privata.

Spiegazione:

Passo 1: Seleziona due numeri primi grandi, p e Q .

p = 7

q = 11

Passo 2: Moltiplica questi numeri per trovare n = pxq, Dove N è chiamato modulo per la crittografia e la decrittografia.

Per prima cosa calcoliamo

n = pxq

n = 7×11

n = 77

Passaggio 3: Scegli un numero È meno quello N , tale che n è relativamente primo a (p - 1) x (q -1). Significa che È E (p - 1) x (q - 1) non hanno divisori comuni tranne 1. Scegli 'e' tale che 1

In secondo luogo, calcoliamo

φ (n) = (p - 1) x (q-1)

φ (n) = (7 - 1) x (11 - 1)

φ(n) = 6 x 10

φ(n) = 60

Scegliamo ora il primo relativo e di 60 come 7.

inurl:.git/head

Quindi la chiave pubblica è = (7, 77)

Passaggio 4: Un messaggio di testo in chiaro M è crittografato utilizzando la chiave pubblica. Per trovare il testo cifrato dal testo semplice viene utilizzata la seguente formula per ottenere il testo cifrato C.

Per trovare il testo cifrato dal testo semplice viene utilizzata la seguente formula per ottenere il testo cifrato C.

C = mÈcontro n

C = 97contro 77

C = 37

Passaggio 5: La chiave privata è . Per determinare la chiave privata, utilizziamo la seguente formula d tale che:

DÈmod {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, che dà d = 43

La chiave privata è = (43, 77)

Passaggio 6: Un messaggio di testo cifrato C viene decrittografato utilizzando la chiave privata. Per calcolare il testo semplice M dal testo cifrato c la seguente formula viene utilizzata per ottenere il testo semplice m.

m = cDcontro n

m = 3743contro 77

m = 9

In questo esempio, testo normale = 9 e testo cifrato = 37

Esempio 2:

In un sistema crittografico RSA, un particolare A utilizza due numeri primi, 13 e 17, per generare le chiavi pubblica e privata. Se la chiave pubblica di A è 35. Allora la chiave privata di A è ……………?.

Spiegazione:

Passo 1: nel primo passaggio, seleziona due numeri primi grandi, P E Q .

p = 13

q = 17

Passo 2: Moltiplica questi numeri per trovare n = pxq, Dove N è chiamato modulo per la crittografia e la decrittografia.

Per prima cosa calcoliamo

n = pxq

n = 13×17

n = 221

Passaggio 3: Scegli un numero È meno quello N , tale che n è relativamente primo a (p - 1) x (q -1). Significa che È E (p - 1) x (q - 1) non hanno divisori comuni tranne 1. Scegli 'e' tale che 1

In secondo luogo, calcoliamo

φ (n) = (p - 1) x (q-1)

φ (n) = (13 - 1) x (17 - 1)

φ(n) = 12 x 16

φ(n) = 192

g.c.d (35, 192) = 1

Passaggio 3: Per determinare la chiave privata, utilizziamo la seguente formula per calcolare la d tale che:

Calcola d = dÈmodφ(n) = 1

d = d x 35 mod 192 = 1

d = (1 + k.φ (n))/e [sia k =0, 1, 2, 3………………]

Metti k = 0

d = (1 + 0 x 192)/35

d = 1/35

Metti k = 1

d = (1 + 1 x 192)/35

d = 193/35

Python genera uuid

Metti k = 2

d = (1 + 2 x 192)/35

d = 385/35

d = 11

La chiave privata è = (11, 221)

Quindi, chiave privata cioè d = 11

Esempio 3:

Un sistema crittografico RSA utilizza due numeri primi 3 e 13 per generare la chiave pubblica = 3 e la chiave privata = 7. Qual è il valore del testo cifrato per un testo semplice?

Spiegazione:

Passo 1: Nel primo passaggio, seleziona due numeri primi grandi, P E Q .

p = 3

q = 13

Passo 2: Moltiplica questi numeri per trovare n = pxq, Dove N è chiamato modulo per la crittografia e la decrittografia.

Per prima cosa calcoliamo

n = pxq

n = 3×13

n = 39

Passaggio 3: Se n = pxq, allora la chiave pubblica è . Un messaggio di testo in chiaro M è crittografato utilizzando la chiave pubblica. Quindi la chiave pubblica è = (3, 39).

Per trovare il testo cifrato dal testo semplice viene utilizzata la seguente formula per ottenere il testo cifrato C.

C = mÈcontro n

C = 53verso 39

C = 125 contro 39

C = 8

Quindi, il testo cifrato generato da testo semplice, C = 8.

Esempio 4:

Un sistema crittografico RSA utilizza due numeri primi, 3 e 11, per generare la chiave privata = 7. Qual è il valore del testo cifrato per un testo in chiaro 5 utilizzando l'algoritmo di crittografia a chiave pubblica RSA?

Spiegazione:

char per stringere java

Passo 1: nel primo passaggio, seleziona due numeri primi grandi, P E Q .

p = 3

q = 11

Passo 2: Moltiplica questi numeri per trovare n = pxq, Dove N è chiamato modulo per la crittografia e la decrittografia.

Per prima cosa calcoliamo

n = pxq

n = 3×11

n = 33

Passaggio 3: Scegli un numero È meno quello N , tale che n è relativamente primo a (p - 1) x (q -1). Significa che È E (p - 1) x (q - 1) non hanno divisori comuni tranne 1. Scegli 'e' tale che 1

In secondo luogo, calcoliamo

φ (n) = (p - 1) x (q-1)

φ (n) = (3 - 1) x (11 - 1)

φ(n) = 2 x 10

φ(n) = 20

Passaggio 4: Per determinare la chiave pubblica, utilizziamo la seguente formula per calcolare la d tale che:

Calcolare e x d = 1 mod φ (n)

e x 7 = 1 contro 20

e x 7 = 1 contro 20

e = (1 + k. φ (n))/ d [sia k =0, 1, 2, 3………………]

Metti k = 0

e = (1 + 0 x 20) / 7

e = 1/7

Metti k = 1

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

La chiave pubblica è = (3, 33)

Quindi, chiave pubblica cioè e = 3