Sto rivedendo per un esame di sicurezza del computer. Ecco uno scenario semplice:
Supponiamo che qualcuno suggerisca il modo seguente per confermare che entrambi siete in possesso della stessa chiave segreta. Si crea un flusso di bit casuale della lunghezza della chiave, lo si XOR con la chiave e lo si invia sul canale. Il tuo partner XORs il blocco in entrata con la chiave, (che dovrebbe essere lo stesso della tua chiave) e lo rimanda indietro. Tu controlli e se ciò che ricevi è la tua stringa casuale originale, hai verificato che il tuo partner ha la stessa chiave segreta, ma nessuno di voi ha mai trasmesso la chiave. C'è un difetto in questo schema? Perché o perché no?
- a causa dello XOR, non penso sia possibile ottenere lo stesso hash da chiavi diverse (questo significherebbe che è una brutta funzione ...)
Poi c'è questa estensione sullo scenario:
Dimentichi di usare una chiave e semplicemente usa un flusso di bit casuale per XOR con il messaggio e il tuo partner usa lo stesso flusso di bit casuale (facendo leva sul fatto che per un dato seme, l'output di un generatore di numeri casuali è esattamente ripetibile e completamente deterministico.) C'è qualche difetto possibile con questo schema?
- Direi che questo rompe una delle regole fondamentali di un buon hash: non è casuale. Destra? So che non è davvero possibile generare veri valori casuali ... è un difetto praticabile qui?