2

Click here to load reader

Cifrari asimmetrici

Embed Size (px)

Citation preview

Page 1: Cifrari asimmetrici

CIFRARI ASIMMETRICI DATI SUI PRINCIPALI CIFRARI ASIMMETRICI

RSA

ALGO RI MO G

1. Scelta di due interi primi grandi e sicuri: 𝑝, 𝑞 (eventualmente test di Miller-Rabin)

2. Calcola 𝑛 = 𝑝 × 𝑞

3. Calcola Φ 𝑛 = Φ 𝑝 × Φ 𝑞 = 𝑝 − 1 × (𝑞 − 1)

4. Sceglie un intero 𝑒 tale che 𝑀𝐶𝐷 Φ 𝑛 , 𝑒 = 1

5. Calcola 𝑑 = 𝑒−1𝑚𝑜𝑑 Φ(n)

6. Rende pubblica la coppia 𝑒, 𝑛

7. Utilizza come privata la coppia 𝑑, 𝑛

ALGO RIT MO E 𝑐 = 𝑚𝑒 𝑚𝑜𝑑 𝑛

ALGO RIT MO D

𝑚 = 𝑐𝑑 𝑚𝑜𝑑 𝑛 = 𝑚𝑒 𝑑 𝑚𝑜𝑑 𝑛 = 𝑚𝑒 𝑑 𝑚𝑜𝑑 𝑛 = 𝑚 𝑚𝑜𝑑 𝑛 = 𝑚

DEBO LEZZE

Cycling attack

Testi unconcealed hanno 𝑚𝑒 ≡ 𝑚

ELGAMAL

ALGO RI MO G

1. Scelta di un numero primo 𝑝 di un suo generatore 𝑔 un numero a caso 1 ≤ 𝑢 ≤

𝑝 − 2

2. Chiave pubblica : 𝑝, 𝑔, 𝑔𝑢 𝑚𝑜𝑑 𝑝

3. Chiave privata: 𝑢

ALGO RIT MO E

1. Scelta di un numero casuale 𝑟 < 𝑝

2. Calcolo di 𝑐 = 𝑚 × 𝑔𝑢 𝑟 𝑚𝑜𝑑 𝑝

3. Calcolo di 𝑅 = 𝑔𝑟 𝑚𝑜𝑑 𝑝

4. Trasmissione di 𝑐 ∥ 𝑅

ALGO RIT MO D

1. Calcolo 𝑟 = 𝑅𝑝−1−𝑢 𝑚𝑜𝑑 𝑝

2. Calcolo 𝑚 = 𝑐 × 𝑟 𝑚𝑜𝑑 𝑝

DEBO LEZZE

Unico svantaggio: ogni messaggio viene sdoppiato e quindi i dati da passare sono doppi.

Page 2: Cifrari asimmetrici

CIFRARIO IBRIDO Invece di usare DH si può effettuare uno scambio di chiavi basandosi su un sistema a chiave

pubblica. Lo scambio di chiavi avviene quindi come segue:

1. Scelta di una chiave one-time 𝑘

2. Scelta di un algoritmo simmetrico CS

3. Scelta di un algoritmo asimmetrico CA

4. Calcolo di 𝐸𝑃𝑈(𝑘 ∥ 𝐶𝑆) con CA

5. Calcolo di 𝐸𝑘 𝑚 con CS

6. Invio del messaggio 𝐸𝑃𝑈(𝑘 ∥ 𝐶𝑆) ∥ 𝐸𝑘 𝑚

Nel contempo il ricevente fa questi passi.

1. Usa CA per calcolare 𝐷𝑆𝑈 𝐸𝑃𝑈 𝑘 ∥ 𝐶𝑆 e viene a conoscenza di k e CS

2. Usa CS per calcolare 𝐷𝑘 𝐸𝑘 𝑚 = 𝑚

BLUM-GOLDWASSER

ALGO RIT MO G

1. Scelta di 𝑝, 𝑞 ≡ 3 (𝑚𝑜𝑑 4)

2. Calcolo 𝑛 = 𝑝 × 𝑞

3. Calcolo 𝑎, 𝑏 tali che 𝑎𝑝 + 𝑏𝑞 𝑚𝑜𝑑 Φ 𝑛 = 1 (Algoritmo esteso di Euclide)

4. Chiave Pubblica: {𝑛}

5. Chiave Privata: 𝑝, 𝑞, 𝑎, 𝑏

ALGO RIT MO E

Chi vuole inviare un messaggio sceglie a caso il valore 𝑥0, uno dei residui quadratici modulo

n, e genera altri 𝑡 residui quadratici, con 𝑡 = ln 𝑛 , iterando la funzione pseudo-

unidirezionale

𝑥𝑖+1 = 𝑥𝑖2 𝑚𝑜𝑑 𝑛

Il messaggio m viene inoltre suddiviso in blocchi di ln 𝑡 bit.

Ad ogni iterazione sono trasmessi i bit risultanti dall’EX-OR degli ℎ bit meno significativvi di

𝑥𝑖 e dei bit del blocco 𝑚

ALGO RIT MO D

Una volta individuato il seed ricostrisce il flusso di chiave con un generatore identico a

quello usato in trasmissione e impiega h EX-OR per rimettere in chiaro i blocchi di testo

cifrato.