openssl chiave blowfish limitata a 256 bit?

3

Ottengo il seguente errore se do una chiave che è maggiore di 64 caratteri esadecimali (64 * 4 = 256 bit).

Inbaseaquesto documento ufficiale , blowfish è in grado di supportare chiavi da 32 a 448 bit.

Variable key length: 32 bits to 448 bits

È possibile aggirare questa limitazione? Cosa c'è che non va?

La dimensione effettiva della chiave è abbastanza grande, ma mi piacerebbe avere la massima sicurezza possibile.

Grazie,

    
posta Jonas 13.12.2012 - 17:08
fonte

4 risposte

4

Per il programma della riga di comando di OpenSSL ( openssl enc ) , l'algoritmo scelto sceglie anche la chiave dimensione (motivo per cui hanno opzioni separate per aes-128, aes-192 e aes-256). Semplicemente non hanno questa opzione per Blowfish.

The enc program only supports a fixed number of algorithms with certain parameters. So if, for example, you want to use RC2 with a 76 bit key or RC4 with an 84 bit key you can't use this program.

openssl enc -bf usa sempre una chiave a 128 bit:

Blowfish and RC5 algorithms use a 128 bit key.

La documentazione per le funzioni Blowfish dice che puoi usare una chiave a lunghezza variabile, quindi presumibilmente se hai scritto il tuo programma compilato contro OpenSSL, puoi usare qualsiasi dimensione della chiave che desideri:

BF_set_key() sets up the BF_KEY key using the len bytes long key at data.

Se puoi scegliere il tuo algoritmo e vuoi una chiave più lunga per qualsiasi motivo, OpenSSL eseguirà AES con chiavi fino a 256 bit: ( openssl enc -aes-256 ).

Considerato quanto sopra, ti aspetteresti che OpenSSL si lamenti quando superi 32 caratteri (32 * 4 = 128), ma sembra ignorare silenziosamente qualsiasi dato dopo i primi 32 caratteri:

blong@ubuntu:~$ openssl enc -bf -iv 0 -P -K 000000000000000000000000000000012345
salt=0700000000000000
key=00000000000000000000000000000001
iv =0000000000000000

Ho inviato una segnalazione di bug, perché sembra che stiano cercando di catturare questo caso, ma l'errore è per > 128 caratteri invece di > 128 bit .

    
risposta data 13.12.2012 - 21:30
fonte
1

Sopra 128 bit non necessari. Con 128 bit ci sono 2 ^ 128 chiavi possibili, divise per 100 miliardi di test al secondo (che richiederebbe una formidabile farm GPU) e ci vorrebbe qualcuno 7,8 * 10 ^ 9 volte l'età dell'universo per decifrarlo (circa 10 ^ 20 anni).

Ma in tutta serietà mi chiedo perché ci sia un limite alla dimensione della chiave.

    
risposta data 18.03.2014 - 21:59
fonte
0

Non esiste una sicurezza migliore di "non posso romperlo ora, non posso romperlo neanche tra 40 anni". Le chiavi a 128 bit offrono già questo livello di sicurezza. non otterrai "maggiore sicurezza" utilizzando chiavi più grandi. Otterrai solo chiavi più grandi.

(I tasti più grandi di 128 bit esistono principalmente per strutture amministrative inflessibili e silenziose che si sentono insicuri nella loro virilità collettiva.)

    
risposta data 28.12.2012 - 16:52
fonte
0

Capisco la matematica dietro le lunghezze chiave ma la ricerca recente mi fa iniziare a cercare chiavi più lunghe. I cluster che utilizzano GPU per accelerare i calcoli stanno già colpendo centinaia di miliardi di chiavi al secondo. Le chiavi a 128 bit sono ancora abbastanza oggi (probabilmente) ma il loro tempo sta per finire.

    
risposta data 28.12.2012 - 21:54
fonte

Leggi altre domande sui tag