Rosario Russo ha scritto:
Ciao a tutti,
vi propongo un quesito, se vogliamo, filosofico. Ammettiamo che debba
criptare un dato in due passate (per ragioni che non vi sto a
spiegare), con lo stesso algoritmo a chiavi simmetriche (AES-256).
La prima volta, cifro il dato con la chiave1, la seconda volta con la
chiave2. Diciamo che la chiave2 viene consegnata all'utente finale,
mentre il dato bi-crittografato viene pubblicato su Internet assieme
alla chiave1 su un server web.
Domanda: trovandovi a pubblicare su web una chiave di decifratura
assieme ad un file che e' stato comunque cifrato con quella stessa
chiave, voi crittografereste pure la chiave1 (magari con la stessa
chiave2) oppure la lascereste in chiaro (d'altra parte, anche se
qualcuno la recupera non saprebbe come usarla, poiche' non e' in
possesso della chiave2)?
Naturalmente, solo l'utente che e' in possesso della chiave2 potrebbe
applicarla per decifrare il layer piu' esterno di cifratura e usare la
chiave1 per l'ultimo layer.
Accetto suggerimenti anche con spiegazioni matematiche!
Secondo me è poco elegante usare due volte lo stesso schema simmetrico
con due chiavi differenti.
Non mi convince per due ragioni:
1) Pubblichi C_2=AES_K2(AES_K1(M)) e K1. Se sono un avversario che è in
grado di trovare C_1=AES_K2(M) allora usando K1 posso accedere al M
2)Pubblichi C_2=AES_K2(AES_K1(M)) e CK=AES_K2(K1). Se riesco a rompere
lo schema simmetrico ottenendo K1 da CK allora sono in anche in grado di
accedere a C_1=AES_K2(M) e visto che conosco K1 posso accedere al
messaggio in chiaro.
Secondo me, tanto vale pubblicare il messaggio C=AES_K1(M) mantenendo
segreta K1.
g
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List