Hydra è un'organizzazione segreta. È composto da diversi direttori nella parte superiore e da molti agenti al di sotto di essi.
Un direttore invia agenti in missioni segrete. Durante queste missioni, la comunicazione è chiazzata e inaffidabile. Gli agenti si affidano a messenger non fidati per recapitare i messaggi ai direttori. I messaggi includono il # dell'agente (33, ecc.). Il contenuto di questi messaggi non è segreto, ma è fondamentale che non siano falsi.
Prima che l'Agente se ne vada, il Direttore gli rilascia la chiave segreta che l'Agente "firma" con i suoi messaggi per verificare l'autenticità. Gli agenti hanno chiavi diverse e non dovrebbero essere in grado di falsificare i messaggi come altri agenti. Queste chiavi sono buone per sei mesi. I direttori rifiutano qualsiasi messaggio firmato con una chiave rilasciata più di 6 mesi fa.
I registi mantengono comunicazioni minime tra loro. Non sanno quando gli altri rilasciano le chiavi agli agenti, anche se devono essere in grado di verificare in modo indipendente l'autenticità dei messaggi ricevuti da questi agenti.
I registi condividono una chiave top-secret che possono usare per creare le chiavi per gli agenti.
Devo implementare questo sistema.
Ci sono alcuni termini per ciò che sta accadendo?
Quali primitive crittografiche dovrebbero essere usate, e come e dove vengono applicate?
Credo che userò un HMAC, ma i molteplici livelli di chiavi in gioco mi rendono le cose meno chiare.