CHIAVI
Le chiavi sono parametri che consentono di rendere segrete le trasformazioni per la sicurezza
flowchart LR
A((M))
B((k))
C{{T}}
D((y))
A & B--> C --> D
In questo modo solo il possessore della chiave e in grado di riprodurre la trasformazione,e sempre possibile eseguire un attacco di forza bruta per risalire al valore della chiave ma la complessità computazionale del problema e esponenziale in funzione della dimensione della chiave
IMPLEMENTAZIONE DI E
Le trasformazioni E e S sono implementabili per mezzo dell’ utilizzo di chiavi:
---
title: E with keys
---
flowchart LR
subgraph source
A((A))
B{{E}}
end
subgraph destination
C{{D}}
D((B))
end
A --M--> B
A --source k--> B
B --> C
C --M--> D
D --dest k--> C
---
title: S with keys
---
flowchart LR
subgraph source
A((A))
B{{S}}
end
subgraph destination
C{{V}}
D((B))
end
A --M--> B
A --source k--> B
B --> C
C --M--> D
D --dest k--> C
RELAZIONI TRA LE CHIAVI
Le chiavi possono essere
- simmetriche chiave della sorgente e della destinazione sono uguali o derivabili
- asimmetriche chiave della sorgente e della destinazione sono diverse e in questo caso si parla di coppie di chiavi (e.g. chiave pubblica/privata)
CHIAVI SIMMETRICHE
Le chiavi asimmetriche necessitano di una gestione accurata in quanto la sicurezza di un protocollo dipende dalla sicurezza delle chiavi stesse, la chiave simmetrica deve quindi essere segreta e integra
CHIAVI ASIMMETRICHE
Per una coppia di chiavi asimmetriche devono essere garantite proprietà diverse a seconda della chiave:
- chiave pubblica: integrità autenticità
- chiave privata: riservatezza e integrità
Una caratteristica fondamentale e che dalla chiave pubblica non deve essere possibile risalire alla chiave privata (e.g. la chiave pubblica deve essere generata da una one way function)
AMMINISTRAZIONE DI CHIAVI
Per mantenere la riservatezza di una chiave e necessario un meccanismo che sia in grado di proteggerla da occhi indiscreti all’ interno di un calcolatore
flowchart LR
subgraph M
G[S cifrato]
end
subgraph P
A{{H}}
B{{Dk}}
C{{Ek}}
D{{RNG}}
E{{Tk}}
F[passphrase]
H[M]
I[C]
end
F --> A
A --> B & C
D --S-->C
C --> G
G --> B
B --S--> E
H -->E
E -->I
In questo schema la chiave viene generata per mezzo di un RNG, cifrata per mezzo della hash della passphrase e salvata in memoria, in fase di cifratura questa viene decifrata e utilizzata