Autenticazione One-Time Pad e sicurezza delle informazioni teoriche

1

Sto provando a creare un criptosistema "Informazioni Teoricamente Sicure", ispirato al One-Time Pad.
Ora sto affrontando l'ostacolo dell'autenticazione ...

Quanto è buona questa soluzione (che utilizza il metodo "Encrypt than MAC")? E può questo beneficio della "Sicurezza Teorica delle Informazioni" fornita dall'OTP?

|| = concatenation

OTPKey = (OTPKeyPartForThePlaintext || OTPKeyPartForTheDigest)
ciphertext = (plaintext XOR OTPKeyPartForThePlaintext)
digest = sha256(OTPKey || ciphertext)
encryptedDigest = (digest XOR OTPKeyPartForTheDigest)
message = (ciphertext || encryptedDigest)

Grazie:)

    
posta Riccardo Leschiutta 28.10.2015 - 13:14
fonte

2 risposte

-1

MAC intende offrire integrità e autenticità.

Tuttavia, se si utilizza uno OTP, non è necessaria l'autenticità poiché si conosce solo te e l'altra parte ha la chiave OTP. Questo è necessario solo per la crittografia a chiave pubblica in cui tutti possono crittografare un messaggio che solo tu puoi decodificare. Quindi in questo caso hai bisogno di autenticità, ma per la crittografia simmetrica non c'è bisogno di autenticità e quindi non di MAC.

Hai comunque bisogno di integrità, ma in questo caso ha più senso:

message = ciphertext = (plaintext || sha256 (testo normale)) XOR OTPKey

Quando usi un OTP, non c'è nessun svantaggio nell'usare questo metodo in quanto la struttura creata nel testo in chiaro + sha di testo in chiaro non può essere sfruttata quando si usano gli OTP.

    
risposta data 29.10.2015 - 08:30
fonte
1

L'autore è corretto:

I've already thought about this solution but I think it is vulnerable to known-plaintext attacks... If the plaintext is known, Mallory can hash it and obtain the digest. With (plaintext || digest) he can obtain the whole OTPKey and send to Bob the message he wants.

Se Alice invia:

{plaintext} {sha256 of plaintext}
XOR {OTP keystream}

Mallory può intercettarlo e (sapendo il testo in chiaro) calcolare

 {ciphertext}
 XOR {plaintext} {sha256 of plaintext}

per ottenere {OTP keystream}, che consente loro di calcolare:

 {modified evil message} {sha256 of modified evil message}
 XOR {OTP keystream}

e sostituisci il messaggio con questo creato.

Vedi la risposta a questa domanda: Autenticazione sicura incondizionata

    
risposta data 27.08.2016 - 08:36
fonte

Leggi altre domande sui tag