Alice: A, chiave privata: pr_A, chiave pubblica: pu_A
Bob: B, chiave privata: pr_B, chiave pubblica: pu_B
vogliamo scambiare messaggi M e garantire:
- integrità: ?
- segretezza: ?
- autenticità: ?
- (non ripudio: ?)
funzioni:
- cri(<messaggio>,<chiave>): cifra il messaggio <messaggio> con la chiave <chiave> e restituisce un <messaggio_cifrato>
- dec(<messaggio_cifrato>,<chiave>): decifra il messaggio <messaggio_cifrato> con la chiave <chiave>
- NB1 le chiavi funzionano solo in coppia, un messaggio cifrato con una chiave puo' essere decifrato solo la chiave complementare della stessa coppia.
- NB2 tutti hanno le chiavi pubbliche di tutti, ognuno possiede solo la propria chiave privata
esercizio1 - autenticità:
- A deve inviare il messaggio M1 a B garantendone l'autenticità
- M2 = cri(M1, pr_A) : A cifra il messaggioi in chiaro M1 con la propria chiave privata e ottiene un messaggio cifrato M2
- A trasmette il messaggio cifrato M2 a B
- M1 = dec(M2, pu_A): B decifra M2 con la chiave pubblica di A e riottiene il messaggio in chiaro M1
- se si decifra con pu_A il messaggio è stato per forza cifrato con pr_A che ha solo A, quindi è garantita l'autenticità
esercizio2: - riservatezza
- A deve inviare il messaggio M1 a B garantendone la riservatezza
- ?
- ?
- ?
- ?
esercizio3: - riservatezza e autenticità
- A deve inviare il messaggio M1 a B garantendone riservatezza e autenticità
- ?
- ?
- ?
- ?
- ?
- ?
- dec(cri(M, pr_A),pu_A) = ?
- dec(cri(M, pr_A),pu_A)==dec(cri(M, pu_A),pr_A)?