Newsgroup: it.comp.sicurezza.crittografia
Titolo: Passwordsafe o Keepass

Il primo usa come algoritmo Blowfish, mentre il secondo AES e Twofish.
Personalmente me ne intendo poco di sicurezza e tantomeno quale algoritmo di 
criptazione offra maggior sicurezza e perchè, ma leggendo qua e là, Keepass 
sembra garantire maggior sicurezza.
Uso da tempo Passwordsafe e non voglio sostituirlo con Keepass anche se 
offre molte cose in più, ma vorrei un vostro parere se il DB di Password 
Safe 2.14 utilizzato con un ottima password alfanumerica lunga circa 10 
caratteri possa essere in qualche modo "aperto".
Insomma, vado via liscio senza problemi o è il caso di gurdare qualcosa di 
più evoluto (es. Keepass)?
Grazie in anticipo per le risposte.
Ciao 


______________________|________________________________________________
GnuPG RSAv4 4096 - Fingerprint:FA68CF697EA63865AAFA805F68703AD40609D743

 due piů nuovi.
Attenzione a queste affermazioni in un ng di crittografia! :-)
Tieni anche presente che blowfish ha i blocchi da 64 bit (rispetto ai 128 
dell'AES); questo gioca in suo netto sfavore soprattutto quando puoi tentare 
attacchi di crittoanalisi. In alcuni casi la dimensione dei blocchi č piů 
importante dell'entropia della chiave.
Cristiano 

 chiave.
Sono assolutamente d'accordo con te. AES, Twofish e Serpent (blocchi
da 128 bit e chiavi da 256 bit) sono sulla carta molto meglio di
tutti gli algoritmi della generazione precedente con blocchi da 64
bit e chiavi da 128 bit (come Blowfish). 
Però è anche vero che l'unico modo per valutare la sicurezza di un
algoritmo, in assenza di una dimostrazione matematica della sua
inviolabilità (che esiste solo per OTP), è controllare se resiste a
tutti gli attacchi conosciuti e a quelli nuovi che mano a mano
vengono inventati. 
In questo senso, Blowfish ha "retto" molto più a lungo di AES & Co.,
per il semplice fatto che è molto più vecchio. Da un certo punto di
vista, quindi, qualcuno potrebbe considerare AES & Co. ancora troppo
giovani. 
Non ho detto che questo sia il *mio* punto di vista. Io uso
tranquillamente AES ogni volta che posso (KeePass, GnuPG, TrueCrypt,
ecc.) e lo preferisco a Blowfish. Nel mio messaggio ho sottolineato
quel "paradosso" solo per mettere in guardia sulla totale inutilità
del porsi il problema di dover scegliere tra Blowfish e AES,
inutilità che permane almeno fino a quando si useranno password da
10 caratteri alfanumerici. 
Non mi stancherò mai di ripeterlo: anche se è possibile, è inutile
cercare di rinforzare ulteriormente quello che è già l'anello più
forte della catena. 


 forte della catena.
E qui siamo certamente d'accordo.
Cristiano 

 superiore).
Però, se non ricordo male, Serpent era proprio quello più difficile
da implementare tra i tre finalisti (e quindi, paradossalmente, più
esposto a errori e bug di implementazione). 


 Cristiano
grazie e ciao
Roberto
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 esposto a errori e bug di implementazione).
D'accordo, ma non possiamo tornare ad usare l'RC5 perché l'AES, essendo più 
"complicato", è più soggetto ad errori d'implementazione! :-)
Inoltre, per verificare le implementazioni di algoritmi crittografici 
esistono sempre i test vector e gli autori stessi pubblicano spesso i 
programmi d'esempio dei loro sistemi crittografici.
Non è un paradosso dire che un algoritmo complicato ha una maggiore 
probabilità di avere bug d'implementazione, ma sarebbe un paradosso non 
usare serpent in favore dell'RC5 solo perché il secondo è enormemente più 
semplice del primo.
Cristiano 

 quindi se ha controindicazioni e' bene che io lo sappia.
Nemmeno io sono un esperto e di blowfish non ne so nulla (o quasi), ma 
considerando che un algoritmo simmetrico non fa altro che "mischiare" i bit 
in chiaro per ottenere i bit cifrati basandosi piů o meno pesantemente sulla 
chiave utente, sembra ragionevole pensare che rimettere a posto 64 bit č piů 
semplice che rimettere a posto 128 bit; certamente il metodo usato per 
mischiarli ha il suo grande peso.
Cristiano 

 Non capisco che intendi; perché (2^64)! e non soltanto 2^64?
Mon sono stato chiaro nel dire cio' che avevo in mente. 2^64 e'
l' ordinalita' di un blocco blowfish e per ogni specifica chiave
(e le chiavi sono 2^448 secondo la documentazione, ma 2^576 secondo me)
si ha una diversa "funzione di associazione" tra il dominio dei
datagrammi e il dominio dei crittogrammi.
Quanti possibili algoritmi diversi di blocco 64 bits si possono scrivere?
Ad esempio volendoli rappresentare con funzioni discrete che fanno lookup
in immense tabelle di 2^64 elementi, si potrebbero scrivere 2^64 !
tabelle diverse. Se ad esempio il blocco fosse di 2 bits si potrebbero
scrivere solo 24 funzioni diverse, cioe' 4!.
00 - 00
01 - 01
10 - 10
11 - 11
-------
00 - 00
01 - 01
10 - 11
11 - 10
-------
....
....
Sul sito di counterpane e' spiegato come funziona. Poca matematica:
il segreto e' l' acquisizione della chiave che produce delle Sbox
key-dependent. Rete di Feistel di 16 passi. Troughput di 16 clock per
byte su macchine a 32 bits. Credo il piu' veloce, quando non si deve
riacquisire la chiave continuamente.
Ciao


 secondo è enormemente più semplice del primo.
Su questo siamo perfettamente d'accordo.


 perché non ho le competenze necessarie per valutarle in dettaglio...
Non preoccuparti; non le ho nemmeno io. :-)
Cristiano 

 :-)
OK ma, rimanendo sul generale (non parlando di AES, quindi), mi
sembra realistico che una maggiore difficoltà di implementazione
esponga a un maggior numero di (possibili) bug. 
Tu dicevi che, alla fine, è sempre possibile verificare che
l'implementazione sia corretta usando i vettori di test
dell'algoritmo. 
Tale tipo di test è *sicuramente* esaustivo (nel senso che la sua
esaustività può essere dimostrata)? O ci può essere un particolare
tipo di bug che non inficia in alcun modo i vettori di test ma può
compromettere la sicurezza di particolari(-ssimi) tipi di dati da
cifrare? 


 cifrare?
Con i vettori di test verifichi il funzionamento del solo nucleo del 
programma (cioè la primitiva crittografica), poi, però, i bug possono essere 
sparpagliati nel resto del programma; ad esempio, verifichi che tutti i 
vettori (che sono lunghi 1 blocco) funzionano, poi, però, all'atto di 
cifrare un file lungo 1 blocco e 1 byte, il programma, a causa di un bug, 
scarta il byte in "eccesso". Come fai a saperlo?
Il bug è sempre in agguato, ma, come dicevo, non me la sentirei di usare 
l'RC5 piuttosto che il Serpent solo perché il secondo è più "complicato".
Cristiano 

 Puoi dire con che CPU l'hai notato?
Nel mio caso:
Intel Pentium 4 HT 3GHz - 1GB di RAM - Windows 2000 SP4 - TrueCrypt v4.1
Questi i miei risultati (la velocità è calcolata in MB/s):
,----- [Buffer Size: 100KB - Sorted by Mean Speed (Desc)]
|
| Algo         Encryption  Decryption     Mean
| -------------------------------------------------------
| Blowfish        69.0        61.1        65.0   -.
| AES             63.4        57.4        60.4    |
| Twofish         57.9        54.5        56.2     > MB/s
| CAST5           42.4        42.6        42.5    |
| Serpent         44.9        34.9        39.9   -'
| [...]
`-----
,----- [Buffer Size:   1MB - Sorted by Mean Speed (Desc)]
|
| Algo         Encryption  Decryption     Mean
| -------------------------------------------------------
| Blowfish        68.1        65.3        66.7   -.
| AES             63.1        56.1        59.6    |
| Twofish         56.0        56.5        56.2     > MB/s
| CAST5           42.0        42.2        42.1    |
| Serpent         38.9        34.4        36.7   -'
| [...]
`-----
,----- [Buffer Size:  10MB - Sorted by Mean Speed (Desc)]
|
| Algo         Encryption  Decryption     Mean
| -------------------------------------------------------
| Blowfish        67.3        66.8        67.1   -.
| AES             61.1        58.3        59.7    |
| Twofish         40.6        41.0        40.8     > MB/s
| CAST5           41.3        35.3        38.3    |
| Serpent         28.4        24.5        26.5   -'
| [...]
`-----
,----- [Buffer Size: 100MB - Sorted by Mean Speed (Desc)]
|
| Algo         Encryption  Decryption     Mean
| -------------------------------------------------------
| Blowfish        44.8        44.9        44.8   -.
| Twofish         40.8        41.1        41.0    |
| AES             36.0        33.9        34.9     > MB/s
| CAST5           31.4        33.7        32.5    |
| Serpent         28.1        24.5        26.3   -'
| [...]
`-----
,----- [Buffer Size: 500MB - Sorted by Mean Speed (Desc)]
|
| Algo         Encryption  Decryption     Mean
| -------------------------------------------------------
| Blowfish        44.0        44.1        44.0   -.
| Twofish         40.3        40.1        40.2    |
| AES             35.8        33.5        34.6     > MB/s
| CAST5           30.8        33.3        32.1    |
| Serpent         27.8        24.0        25.9   -'
| [...]
`-----
Non ho provato con un buffer da 1GB, onde evitare di passare le
festività a far girare il benchmark.  ^_^
Ciao,
un TJL73 e i suoi risultati...
-- 
Vivo il natale come un uragano...
Per quanto mi possa preparare al suo arrivo,
non vedo l'ora che passi...

> Blowfish        44.0        44.1        44.0
Hai notato che stranezza? La velocità diminuisce di colpo (ho quotato solo 
una riga perché il comportamento è uguale per tutti gli algoritmi). Con 
l'Athlon XP 3000+ e 1 GB di RAM ottengo sempre circa 48 MB/s.
Sono pronto a giurare che hai eseguito i test immediatamente uno dopo 
l'altro. Scommetti che se parti subito con quello da 100 MB la velocità 
ritorna intorno ai 67 MB/s? :-)
Cristiano 

 Serpent solo perché il secondo è più "complicato".
Siamo d'accordo.


 esaustivi, no?
Direi di sì. Non mi viene in mente niente che possa renderli non esaustivi 
(eccetto malfunzionamenti hardware).
Cristiano 

 temperature eccezionali. C'hai fatto caso?
In un certo senso, essendo un processore "Mobile", è sempre
"sleeppato" e funziona piena frequenza solo quando è sotto carico.
Ma non può essere questo il problema, se no ripetendo più volte in
sequenza il test tutto dovrebbe andare a posto (dato che già alla
seconda volta la CPU sta andando a piena potenza). 
La cosa strana è questa "fluttuazione" dei risultati di AES... Non è
che abbia una monotonicità, a volte arriva a 34, a volte a 14, in
modo imprevedibile. 
Non è che il codice di TrueCrypt è ottimizzato per P4 e fa strane
cose su un Athlon? Dovrei provare a ricompilare i sorgenti per
Athlon... 
Per la cronaca: non ho mai avuto nessun problema nell'uso normale
del disco cifrato. È solo il benchmark che ha queste stranezze...


 ritorna intorno ai 67 MB/s? :-)
Se ti dicessi che è già ciò che ho fatto?  >_<
Le ho effettuate in quest'ordine: 100MB - 10MB - 1MB - 500MB - 100KB
Poi le ho scritte in ordine di dimensione del buffer.
Per fare una cosa fatta a modino, bisognerebbe riavviare tra un test e
il successivo.
Ciao,
un TJL73 che potrebbe rifare tutto da capo...
-- 
"Non ho la soluzione, ma ammiro il problema."
                                                   -- Ashleigh Brilliant

 Dovrei provare a ricompilare i sorgenti per Athlon...
Buona fortuna! :-)
Cristiano

 un TJL73 che potrebbe rifare tutto da capo...
Ciao
un Cristiano che... Non perderci tempo. :-) 

 un TJL73 che potrebbe rifare tutto da capo...
Ciao


 Dovrei provare a ricompilare i sorgenti per Athlon...
Buona fortuna! :-)
Cristiano 

 Buona fortuna! :-)
Grazie, ne ho bisogno! :-)


 (il P4) durante il test facesse variare il throttle.
Mi sembra che tutte le prove effettuate (per dimensione buffer) abbiano
sempre dato gli stessi esiti... ma anche io "ho una RAM non molto
veloce"...  ;oP
Buon Gatto Silvestro à tulemònd.
Ciao,
un TJL73 che si sta preparando per la grnde abbuffata di stasera...


 Diesel o AIOE.
Ho dato un'occhiata.
Stranamente per utilizzare la versione free di X-Privat è neccessario 
connettersi con la loro dial-up. O_o
AIOE non dà risposta. :-(
Mi resta da provare Diesel. Leggo "Le autorizzazioni all'accesso vengono 
date manualmente, quindi e' possibile che servano alcuni giorni per ricevere 
risposta.", andiamo bene! :-)
Buon anno
Cristiano 

 ;oP
La prima. In effetti ho scritto una frase ambigua; intendevo che io non ho 
buona memoria per ricordarmi dei 37 MB/s.
Cristiano 

 Capisco... ma che velocità dà su AMD?
Athlon-XP 3000+ con WinXP Pro SP2:
36,5 - 36,8 MB/s per AES e 0,8 MB/s in meno per Serpent.
Cristiano 

.
Sarebbe il caso di spostare questa discussione su un gruppo più
appropriato (it-alt.media.internet.news-server), ma lascio a te il
compito di impostare il "FollowUp-To:".
Ciao,
un TJL73 che ha preferito affidarsi a NewsGate...
-- 
"I soldi aiutano a sopportare la poverta`."
                                                      -- Alphonse Allais