Click here to load reader
Upload
marco-montanari
View
132
Download
2
Embed Size (px)
Citation preview
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.
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.