Newsgroup: it.comp.sicurezza.crittografia
Titolo: Miglior algoritmo per partizioni criptate?

Attualmente uso alcune partizioni criptate create con o.s. linux debian
lenny in aes256.
su linux le monto comodamente con uno scriptino del tipo
losetup -e AES256 /dev/loopX /dev/XXX
e poi un mount
Tuttavia ho necessita' di accedere alle stesse partizioni anche da
macchine windows, e in effetti uso FreeOTFE che va benone.
Tuttavia ogni tanto leggo di qualche problema con le licenze e i
supporti ai moduli aes per linux, e in effetti oggi ho aggiornato il
kernel dai repository e ho avuto qualche piccolo inconveniente con i
moduli aes. Quindi mi chiedevo se esistono sistemi piu' "standard" e
interoperabili, come ad esempio algoritmi migliori...
truecrypt a suo tempo l'ho scartato per la necessitą di avere X,
compilare moduli per il kernel... io ho la necessitą di usare qualcosa
che sia facilmente trovabile in tutti i kernel 2.6.x e altrettanto
comodo come la versione portabile (da chiavetta usb per intenderci) di
freeotfe.
Anche solo l'algoritmo di criptazione... forse blowfish?
che differenze ci sono rispeto aes?
grazie
Alb

Beh, AES è lo standard come algoritmo, di conseguenza è il più testato
e studiato; in alternativa anche gli altri finalisti del contest AES
(Serpent e Twofish) sono attualmente considerati molto sicuri ed hanno
alle spalle una mole di knowhow sufficiente per sceglierli in
tranquillità.
Blowfish lavora su blocchi di 64 bit (gli altri citati su blocchi di
128 bit) per cui per il birthday paradox se ne sconsiglia l'impiego
per cifrare notevoli molti di dati (da alcune centinaia di MB in su),
per cui è da scartare per questo tipo di applicazioni dato che
tipicamente i volumi da cifrare sono più grandi.
L'implementazione di tutti questi algorimi (Blowfish in sola lettura)
in Truecrypt è sempre stata buona e molto controllata data la
diffusione del software, per cui non ci dovrebbero essere grosse
sorprese.
Diciamo che è una valida pietra di paragone per le applicazioni OTFE
sia per Linux che per Windows e IMHO può valere la pena di affrontare
qualche difficoltà in più per utilizzarlo, con AES o in alternativa
Twofish o Serpent.

 (Serpent e Twofish) sono attualmente considerati molto sicuri ed hanno
Grazie, allora penso continuero' a usare il sistema attuale.

 losetup -e AES256 /dev/loopX /dev/XXX
Non vorrei sbagliare, ma mi sembra che tu stia usando cryptoloop.
Stai attento che questo sistema è vulnerabile (vedi ad esempio:
http://en.wikipedia.org/wiki/Cryptoloop
).
Su GNU/Linux al momento il sistema più sicuro e al tempo stesso
standardizzato è dm-crypt+cryptsetup+luks.
Probabilmente è necessario specificare la modalità operativa di AES
(CBC, LRW, XTS) per aumentare ulteriormente la sicurezza, ma per questo
attendo pareri da persone più ferrate sull'argomento di me.
-- 
Lurkos

CBC è vulnerabile a watermarking attacks. Niente di preoccupante a mio
avviso, però essendoci di meglio...
LRW presentava un piccolo flaw (che non conosco) e l'IEEE nello
standard P1619 che parla delle cifrature per hd (anche altre memorie
in realtà) ha deciso di passare a XTS che è considerato lo standard
più sicuro in questo ambito.
------Dettagli su XTS------
In pratica XTS consiste nel
1)prendere l'indice del settore, buttarlo dentro ad AES con una chiave
(key2), il risultato lo chiamiamo tweak
2)moltiplicare il tweak per la potenze crescenti (partendo da zero) di
un polinomio irriducibile (la potenza viene incrementata di uno ad
ogni passaggio per questo punto)
3)xorarci il plaintext
4)passare il plaintext xor tweak ad AES con una chiave (key1 diversa
da key2)
5)xorare il risultato col tweak
loopare dal 2 al 5 finche non si finisce il settore
Poi vabbè bisogna aggiungerci il ciphertext stealing se necessario,
cioè se la dimensione del settore non è multipla di un blocco di aes
(16 byte) (notare che in XTS il ciphertext stealing è diverso da
quello nel draft del NIST sul CBC Ciphertext Stealing).
Suby