Cifrari asimmetrici

2

Click here to load reader

Transcript of Cifrari asimmetrici

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.