Blowfish Cipher Tutorials - Herong's Tutorial Examples - Version 1.21, by Dr. Herong Yang
"bf-ofb" Encryption Verification
A tutorial example is provided to verify OpenSSL 'enc -bf-ofb' command against the Blowfish OFB test vector published at www.schneier.com.
Okay, we have learned that OpenSSL "enc -bf-ofb" command can perform Blowfish encryption in OFB mode on multiple plaintext blocks. Now we needed to verify its output against existing Blowfish OFB test vectors.
When I search the Internet, I only see one published test vector for Blowfish in OFB mode at https://www.schneier.com/code/vectors.txt:
chaining mode test data key[16] = 0123456789ABCDEFF0E1D2C3B4A59687 iv[8] = FEDCBA9876543210 data[29] = "7654321 Now is the time for " (includes trailing '\0') data[29] = 37363534333231204E6F77206973207468652074696D6520666F722000 ofb64 cipher text cipher[29]= E73214A2822139CA62B343CC5B65587310DD908D0C241B2263C2CF80DA
Below is the my test to verify OpenSSL "enc -bf-ofb" cipher against the above test vector:
C:\herong>perl -e "binmode(STDOUT); print pack('H*', '37363534333231204E6F77206973207468652074696D6520666F722000000000')" >> OFB-Test-Vector.txt C:\herong>\local\gnuwin32\bin\openssl enc -bf-ofb -e -K 0123456789ABCDEFF0E1D2C3B4A59687 -iv FEDCBA9876543210 -in OFB-Test-Vector.txt -out cipher.txt -nopad -p salt=0200000000264F01 key=0123456789ABCDEFF0E1D2C3B4A59687 iv =FEDCBA9876543210 C:\herong>perl -e "while (read(STDIN,$_,1)){print unpack('H*',$_);}" < cipher.txt e73214a2822139ca62b343cc5b65587310dd908d0c241b2263c2cf80da 46fbb8 ---------------------------------------------------------- Matched the test vector at schneier.com
Congratulations! The ciphertext matches with what given in the test vector. Now we can confidently say that OpenSSL "enc -bf-ofb" command works correctly.
Last update: 2015.
Table of Contents
OpenSSL "enc -bf-ecb" for Blowfish/ECB Encryption
OpenSSL "enc -bf-cbc" for Blowfish/CBC Encryption
OpenSSL "enc -bf-cfb" for Blowfish/CFB Encryption
►OpenSSL "enc -bf-ofb" for Blowfish/OFB Encryption
"bf-ofb" Cipher with Literal Key
"bf-ofb" Cipher on Multiple Blocks
►"bf-ofb" Encryption Verification
"bf-ofb" Cipher with Salted Key