Attacca le funzioni hash che non soddisfano la proprietà a senso unico


9

Mi sto rivedendo per un corso di sicurezza informatica e sono bloccato su una delle domande passate. Eccolo:

Alice ( A ) vuole inviare un breve messaggio M a Bob ( B ) usando un segreto condiviso Sab per autenticare che il messaggio è arrivato da lei. Propone di inviare un singolo messaggio con due pezzi:

AB:M,h(MSab)
doveh è una funzione hash e indica concatenazione.
  1. Spiega attentamente cosa fa Bob per verificare che il messaggio provenga da Alice e perché (a parte le proprietà di h ) può crederci.
  2. Supponiamo che h non soddisfi la proprietà unidirezionale e che sia possibile generare pre-immagini. Spiega cosa può fare un attaccante e come.
  3. Se la generazione di pre-immagini richiede tempi relativamente lunghi, suggerire una semplice contromisura per migliorare il protocollo senza modificare h .

Penso di conoscere il primo. Bob deve prendere un hash del messaggio ricevuto insieme alla sua chiave condivisa e confrontarlo con l'hash ricevuto da Alice, se corrispondono, questo dovrebbe provare che Alice lo ha inviato.

Non sono sicuro delle seconde due domande però. Per il secondo, la risposta sarebbe che un utente malintenzionato può semplicemente ottenere il messaggio originale con un hash? Non sono sicuro di come sarebbe fatto però.


3
Si prega di dare attribuzione per l'immagine. Inoltre, considera di copiare il testo in modo che possa essere cercato correttamente.
Raffaello

Risposte:


7

Per il secondo, la risposta sarebbe che un utente malintenzionato può semplicemente ottenere il messaggio originale con un hash?

MM,h(MSab)MM

Per la seconda domanda: se è facile generare pre-immagini di , l'avversario potrebbe essere in grado di apprendere la chiave segreta da infrangendo così lo schema. (Nota che questo potrebbe non essere banale. Il processo di inversione potrebbe generare tale che , ma questo non è utile per l'avversario. Inoltre, se l'avversario prova di nuovo a invertire , potrebbe ottenere la stessa pre-immagine.)hSabh(MSab)
M1,S1h(MSab)=h(M1S1)h

Per la terza domanda: ora assumiamo che l'inversione di richieda molto tempo, quindi rendiamo la vita dell'avversario più difficile richiedendogli di invertirla molte volte per rompere lo schema. Ad esempio, usa l'hash volte . Esistono anche altre soluzioni.hkh(h(h(....h(MSab)..))

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.