Protocolli di scambio di chiavi solo simmetrici gratuiti brevettati?

6

Sto lavorando con un dispositivo embedded in rete con AES-128 e nessuna crittografia a chiave pubblica (1 KB di RAM, 8 KB di flash). Al momento dell'installazione, il dispositivo è precaricato con una chiave AES-128 a lungo termine nota anche al server.

Quali protocolli privi di brevetti esistono per distribuire in modo sicuro una chiave di sessione autenticata utilizzando la chiave simmetrica esistente? (senza terze parti di fiducia)

Janson-Tsudik 2PKDP sembra ideale, ma sembra essere brevettato .

    
posta Joby Taffey 13.04.2011 - 01:37
fonte

3 risposte

5

I protocolli di scambio di chiavi si dividono in due categorie principali. Server- Determinazione della chiave basata e definizione della chiave server-less (penso che comprerò quel libro.). All'interno di queste due categorie troverai protocolli che usano cifrari simmetrici o asimmetrici o entrambi. Esistono numerosi protocolli di scambio di chiavi documentati su Protocollo di sicurezza Open Repository (SPORE) , che è un risorsa molto interessante.

Una buona scelta per la chiave basata sul server L'istituzione è il Needham-Schroeder Symmetric Protocol che può essere eseguito interamente con AES e viene utilizzato in Kerberos.

Per la creazione di una chiave senza server è necessario consultare Calcoli BAN in calcestruzzo modificati con Andrew Secure RPC . È vecchio, tuttavia non credo che questo protocollo sia stato compromesso.

Tu dovresti usare SSL / TLS quando possibile, ma richiederà più di 1kb di memoria.

    
risposta data 13.04.2011 - 04:19
fonte
1

Scambio di chiavi Diffie Hellman. Il brevetto è scaduto ed è gratuito.

    
risposta data 13.04.2011 - 05:54
fonte
1

Un protocollo semplice: il server seleziona N (128 bit), un nonce, usato una sola volta. Quindi invia E_K (N), E_K (N + 1) al client (utilizzando la chiave del dispositivo K che il server conosce). Il dispositivo client li decrittografa, controlla che differiscano di 1 (mod 2 ^ 128) e calcola H (N) (un hash con output a 128 bit, ad esempio MD5) e invia E_K (H (N)) ed E_K (H (N) +1). Il server li decrittografa, fa il controllo di differenza, e quindi il client e serve l'uso H (H (N)) come chiave comune per quella sessione. Presumo che tu voglia un protocollo a 2 vie, ma questo può essere adattato anche a più parti.

    
risposta data 13.04.2011 - 10:59
fonte

Leggi altre domande sui tag