November 2014
S M T W T F S
« Oct    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Recent Posts

DiceLock-x 8.0.0.1 for Linux, OFB_Mode class (Output feedback OFB block cipher operation mode algorithm)verified with Advanced Encryption Standard AES 128, KeySbox test set and PhysicalCryptoRandomStream class (memory pages kept in RAM, not swapped to file)

DiceLock-x 8.0.0.1 for Linux is the cryptographic architecture that ensures that ciphertext it’s not just encrypted but also randomized.

DiceLock cipher architecture presents two main configurations:
Dicelock Digested, and
Dicelock Indexed.

DiceLock encryption architecture improves symmetric ciphers like block cipher as Advanced Encryption Standard, Camellia, Serpent, Twofish (128, 192 and 256 bit key lengths) with different block cipher operation modes (like CBC, CFB, OFB and XTS) and stream ciphers as HC 128, HC 256, Rabbit, Salsa 20/20, Sosemanuk and others.

DiceLock (both configurations) makes use of the following random number tests: Frequency Test, Block Frequency Test, Cumulative Sum Forward Test, Cumulative Sum Reverse Test, Runs Test, Longest Run Of Ones Test, Rank Test, Universal Test, Approximate Entropy Test, Serial Test and Discrete Fourier Transform Test.

Additionally DiceLock Digested configuration makes use currently of following hash digest algorithms: Sha 1, Sha 224, Sha 256, Sha 384, Sha 512, Ripemd 128, Ripemd 160, Ripemd 256, Ripemd 320, Md2, Md4 and Md5.

Previous version DiceLock-x 7.0.0.1 for Linux incorporated XTS-AES (XEX-based tweaked-codebook mode with ciphertext stealing XTS block cipher operation mode algorithm) for Advanced Encryption Algorithm (AES) for 128 and 256 bit symmetric keys.

New version DiceLock-x 8.0.0.1 for Linux has made significant improvements:
- added block encryption ciphers like Camellia, Serpent and Twofish with all accepted key lengths of 128, 192 and 256 bits,
- added stream ciphers like Rabbit, Salsa 20/20 with 128 and 256 bit key lengths, and general Sosemanuk, as well as Sosemanuk with 128 and 256 bit key lengths,
- added old hash algorithms like Message Digest 2, Message Digest 4 and Message Digest 5,
- modified DiceLockIndexed and DiceLockDigested classes to be used with encryption ciphers that does not make use of initialization vector (IV),
- created DiceLockIVDigested and DiceLockIVIndexed classes to be used with encryption ciphers that makes use of initialization vector (IV),
- extended DiceLockXTSDigested and DiceLockXTSIndexed classes to be use with newly added Camellia, Serpent and Twofish block ciphers and all three key lengths (128, 192 and 256 bit key lengths),
- added old encryption ciphers like DEA (Data Encryption Algorithm), TDEA (Triple Data Encryption Algorithm), and ARC4 (alleged RC4) for compatibillity reasons.

As the new version DiceLock-x 8.0.0.1 for Linux is developed, all individual components must be tested and verified, and in this article we verify Output feedback OFB class (computing Output feedback OFB block cipher algorithm).

At the bottom of the post you can find C++ source code being used to perform this test.


Verified DiceLock-x 8.0.0.1 for Linux

Verification components:

– Block cipher operation mode encryption algorithm: OFB_Mode class
– Block cipher encryption algorithm: AES128 class
– Test set : KeySbox
– Bit stream memory management: PhysicalCryptoRandomStream class (memory pages kept in RAM, not swapped to file)

Memory characteristic used in this test:

PhysicalCryptoRandomStream class makes use of AWE (Address Windowing Extensions) that uses physical nonpaged memory, so memory is not swapped to hard disk.
In order to use PhysicalCryptoRandomStream class, which works with AWE it requires that “Lock Pages In Memory” Windows security setting policy permission must be granted in “Local Policy Settings” to the account executing the program, and in some versions the program must have “Run this program as an administrator” “Privilege Level” option checked.

 

Once computed we’ve got the following results:

KeySbox, test# 1

Input plaintext: 00000000000000000000000000000000
Key: 10a58869d74be5a374cf867cfb473859
IV: 00000000000000000000000000000000
Expected ciphertext: 6d251e6944b051e04eaa6fb4dbf78465
Computed ciphertext: 6d251e6944b051e04eaa6fb4dbf78465 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 2

Input plaintext: 00000000000000000000000000000000
Key: caea65cdbb75e9169ecd22ebe6e54675
IV: 00000000000000000000000000000000
Expected ciphertext: 6e29201190152df4ee058139def610bb
Computed ciphertext: 6e29201190152df4ee058139def610bb OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 3

Input plaintext: 00000000000000000000000000000000
Key: a2e2fa9baf7d20822ca9f0542f764a41
IV: 00000000000000000000000000000000
Expected ciphertext: c3b44b95d9d2f25670eee9a0de099fa3
Computed ciphertext: c3b44b95d9d2f25670eee9a0de099fa3 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 4

Input plaintext: 00000000000000000000000000000000
Key: b6364ac4e1de1e285eaf144a2415f7a0
IV: 00000000000000000000000000000000
Expected ciphertext: 5d9b05578fc944b3cf1ccf0e746cd581
Computed ciphertext: 5d9b05578fc944b3cf1ccf0e746cd581 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 5

Input plaintext: 00000000000000000000000000000000
Key: 64cf9c7abc50b888af65f49d521944b2
IV: 00000000000000000000000000000000
Expected ciphertext: f7efc89d5dba578104016ce5ad659c05
Computed ciphertext: f7efc89d5dba578104016ce5ad659c05 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 6

Input plaintext: 00000000000000000000000000000000
Key: 47d6742eefcc0465dc96355e851b64d9
IV: 00000000000000000000000000000000
Expected ciphertext: 0306194f666d183624aa230a8b264ae7
Computed ciphertext: 0306194f666d183624aa230a8b264ae7 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 7

Input plaintext: 00000000000000000000000000000000
Key: 3eb39790678c56bee34bbcdeccf6cdb5
IV: 00000000000000000000000000000000
Expected ciphertext: 858075d536d79ccee571f7d7204b1f67
Computed ciphertext: 858075d536d79ccee571f7d7204b1f67 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 8

Input plaintext: 00000000000000000000000000000000
Key: 64110a924f0743d500ccadae72c13427
IV: 00000000000000000000000000000000
Expected ciphertext: 35870c6a57e9e92314bcb8087cde72ce
Computed ciphertext: 35870c6a57e9e92314bcb8087cde72ce OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 9

Input plaintext: 00000000000000000000000000000000
Key: 18d8126516f8a12ab1a36d9f04d68e51
IV: 00000000000000000000000000000000
Expected ciphertext: 6c68e9be5ec41e22c825b7c7affb4363
Computed ciphertext: 6c68e9be5ec41e22c825b7c7affb4363 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 10

Input plaintext: 00000000000000000000000000000000
Key: f530357968578480b398a3c251cd1093
IV: 00000000000000000000000000000000
Expected ciphertext: f5df39990fc688f1b07224cc03e86cea
Computed ciphertext: f5df39990fc688f1b07224cc03e86cea OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 11

Input plaintext: 00000000000000000000000000000000
Key: da84367f325d42d601b4326964802e8e
IV: 00000000000000000000000000000000
Expected ciphertext: bba071bcb470f8f6586e5d3add18bc66
Computed ciphertext: bba071bcb470f8f6586e5d3add18bc66 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 12

Input plaintext: 00000000000000000000000000000000
Key: e37b1c6aa2846f6fdb413f238b089f23
IV: 00000000000000000000000000000000
Expected ciphertext: 43c9f7e62f5d288bb27aa40ef8fe1ea8
Computed ciphertext: 43c9f7e62f5d288bb27aa40ef8fe1ea8 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 13

Input plaintext: 00000000000000000000000000000000
Key: 6c002b682483e0cabcc731c253be5674
IV: 00000000000000000000000000000000
Expected ciphertext: 3580d19cff44f1014a7c966a69059de5
Computed ciphertext: 3580d19cff44f1014a7c966a69059de5 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 14

Input plaintext: 00000000000000000000000000000000
Key: 143ae8ed6555aba96110ab58893a8ae1
IV: 00000000000000000000000000000000
Expected ciphertext: 806da864dd29d48deafbe764f8202aef
Computed ciphertext: 806da864dd29d48deafbe764f8202aef OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 15

Input plaintext: 00000000000000000000000000000000
Key: b69418a85332240dc82492353956ae0c
IV: 00000000000000000000000000000000
Expected ciphertext: a303d940ded8f0baff6f75414cac5243
Computed ciphertext: a303d940ded8f0baff6f75414cac5243 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 16

Input plaintext: 00000000000000000000000000000000
Key: 71b5c08a1993e1362e4d0ce9b22b78d5
IV: 00000000000000000000000000000000
Expected ciphertext: c2dabd117f8a3ecabfbb11d12194d9d0
Computed ciphertext: c2dabd117f8a3ecabfbb11d12194d9d0 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 17

Input plaintext: 00000000000000000000000000000000
Key: e234cdca2606b81f29408d5f6da21206
IV: 00000000000000000000000000000000
Expected ciphertext: fff60a4740086b3b9c56195b98d91a7b
Computed ciphertext: fff60a4740086b3b9c56195b98d91a7b OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 18

Input plaintext: 00000000000000000000000000000000
Key: 13237c49074a3da078dc1d828bb78c6f
IV: 00000000000000000000000000000000
Expected ciphertext: 8146a08e2357f0caa30ca8c94d1a0544
Computed ciphertext: 8146a08e2357f0caa30ca8c94d1a0544 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 19

Input plaintext: 00000000000000000000000000000000
Key: 3071a2a48fe6cbd04f1a129098e308f8
IV: 00000000000000000000000000000000
Expected ciphertext: 4b98e06d356deb07ebb824e5713f7be3
Computed ciphertext: 4b98e06d356deb07ebb824e5713f7be3 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 20

Input plaintext: 00000000000000000000000000000000
Key: 90f42ec0f68385f2ffc5dfc03a654dce
IV: 00000000000000000000000000000000
Expected ciphertext: 7a20a53d460fc9ce0423a7a0764c6cf2
Computed ciphertext: 7a20a53d460fc9ce0423a7a0764c6cf2 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 21

Input plaintext: 00000000000000000000000000000000
Key: febd9a24d8b65c1c787d50a4ed3619a9
IV: 00000000000000000000000000000000
Expected ciphertext: f4a70d8af877f9b02b4c40df57d45b17
Computed ciphertext: f4a70d8af877f9b02b4c40df57d45b17 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

DiceLock-x 8.0.0.1 for Linux C++ source code used in this test:

DiceLock-x 8.0.0.1 for Linux

DiceLockCipher.h
cryptoRandomStreams.h
baseCryptoRandomStream.h
baseCryptoRandomStream.cpp
physicalCryptoRandomStream.h
physicalCryptoRandomStream.cpp
baseSymmetricCipher.h
baseSymmetricCipher.cpp
baseSymmetricStreamer.h
baseSymmetricStreamer.cpp
blockCipherOperationModes.h
baseBlockCipherOperationMode_with_IV.h
baseBlockCipherOperationMode_with_IV.cpp
OFB_Mode.h
OFB_Mode.cpp
blockCiphers.h
baseBlockCipher.h
baseBlockCipher.cpp
baseAES.h
baseAES.cpp
AES128.h
AES128.cpp



So, DiceLock cipher test and analysis can go on …

DiceLock is a trademark or registered trademark of his owner where applies. DiceLock research is the research to implement Self-corrector randomisation-encryption and method, european patent EP1182777 granted 08/21/2003 and US patent US7508945 granted 03/24/2009.

Leave a Reply