differenza tra rc4-40 e rc4 in OpenSSL

1

Stavo testando rc4-40 out con una chiave a 200 bit (25 byte) e, con mia sorpresa, i risultati erano identici a quelli di rc4 :

<?php
$key_size = 25;
$key = '';
for ($i = 0; $i < $key_size; $i++) {
    $key.= chr(mt_rand(0, 255));
}

$a = openssl_encrypt(str_repeat('z', 50), 'rc4-40', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING);
$b = openssl_encrypt(str_repeat('z', 50), 'rc4', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING);

echo $a == $b ? 'good' : 'bad';

Fonte: link

Ho capito, in base a post come RC4 non funziona correttamente con il comando openssl? , that rc4-40 supporta solo le chiavi a 40 bit e rc4 supporta solo le chiavi a 128 bit. Ma qui abbiamo entrambi che supportano apparentemente una chiave da 200 bit.

Anche il link dà l'idea che rc4-40 è fissato a 40-bit e rc4 è fissato a 128 bit (entrambi sembrano discostarsi dal codice precedente):

 rc4                128 bit RC4
 rc4-64             64 bit RC4
 rc4-40             40 bit RC4

Anche se rc4 , in questo esempio, semplicemente le chiavi troncate che dovevano long a 128 bit e rc4-40 troncate più a lungo delle chiavi supportate a 40 bit, è comunque logico che i risultati sarebbero diversi, ma non lo sono.

Quindi perché tutta la letteratura online implica che sono a lunghezza fissa quando i miei test suggeriscono che non lo sono?

    
posta neubert 18.01.2017 - 17:00
fonte

1 risposta

1

Da link :

The export of cryptographic technology and devices from the United States was severely restricted by U.S. law until 1992, but was gradually eased until 2000; some restrictions still remain.
[…]
In 1992, a deal between NSA and the SPA made 40-bit RC2 and RC4 encryption easily exportable using a Commodity Jurisdiction (which transferred control from the State Department to the Commerce Department).

Quindi questo è un resto (e un promemoria) delle volte in cui il software poteva essere esportato con cifrature molto deboli.

    
risposta data 19.01.2017 - 00:31
fonte

Leggi altre domande sui tag