2016-09-13 2 views
1

Ich habe ein Verschlüsselungsverfahren mit mycrypt und die Chiffre ist 3des, Modus ecb zu ersetzen:Verwenden openssl_encrypt Mcrypt für 3DES-ECB Verschlüsselung

mcrypt_module_open (MCRYPT_3DES, '', 'ecb', '') 

Jetzt habe ich es mit openssl_encrypt verschlüsseln möchten, und ich habe nicht gefunden des3-ecb in openssl_get_cipher_methods() Liste.

+0

Nur FYI, sollten Sie AES nicht jede Form von DES verwenden. –

Antwort

1

jetzt will ich es openssl_encrypt verwenden verschlüsseln, und ich habe nicht des3-ecb in openssl_get_cipher_methods() Liste.

Es ist des-ede3. Symmetrische Verschlüsselung mit einer Blockchiffre benötigt eine Art von mode of operation. Wenn Sie sich die Liste ansehen, sehen Sie etwas wie des-ede3, des-ede3-cbc, des-ede3-cfb und des-ede3-ofb. CBC, CFB und OFB sind alle benannt und die unbenannte Chiffre muss der einzige andere übliche Betriebsmodus sein: EZB.


Nie ECB mode verwenden. Es ist deterministisch und daher nicht semantisch sicher. Sie sollten zumindest einen zufälligen Modus wie CBC oder CTR verwenden. Es ist besser, Ihre Chiffrate zu authentifizieren, so dass Angriffe wie padding oracle attack nicht möglich sind. Dies kann mit authentifizierten Modi wie GCM oder EAX oder mit einem encrypt-then-MAC Schema geschehen.

Verwenden Sie Triple DES nicht mehr. Es bietet bestenfalls 112 Bit Sicherheit, selbst wenn Sie die größte Schlüsselgröße von 192 Bit verwenden. Wenn eine kürzere Schlüsselgröße verwendet wird, stellt sie nur 56 oder 57 Bits Sicherheit bereit. AES wäre schneller (Prozessoren haben einen speziellen AES-NI-Befehlssatz) und noch sicherer mit der niedrigsten Schlüsselgröße von 128 Bit. Es gibt auch eine praktische Grenze für die maximale Chiffretextgröße mit 3DES. Siehe Security comparison of 3DES and AES.

Verwandte Themen