August 2014
S M T W T F S
« Jul    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

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 192, GFSbox 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: AES192 class
– Test set : GFSbox
– 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:

GFSbox, test# 1

Input plaintext: 00000000000000000000000000000000
Key: 000000000000000000000000000000000000000000000000
IV: 1b077a6af4b7f98229de786d7516b639
Expected ciphertext: 275cfc0413d8ccb70513c3859b1d0f72
Computed ciphertext: 275cfc0413d8ccb70513c3859b1d0f72 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

GFSbox, test# 2

Input plaintext: 00000000000000000000000000000000
Key: 000000000000000000000000000000000000000000000000
IV: 9c2d8842e5f48f57648205d39a239af1
Expected ciphertext: c9b8135ff1b5adc413dfd053b21bd96d
Computed ciphertext: c9b8135ff1b5adc413dfd053b21bd96d OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

GFSbox, test# 3

Input plaintext: 00000000000000000000000000000000
Key: 000000000000000000000000000000000000000000000000
IV: bff52510095f518ecca60af4205444bb
Expected ciphertext: 4a3650c3371ce2eb35e389a171427440
Computed ciphertext: 4a3650c3371ce2eb35e389a171427440 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

GFSbox, test# 4

Input plaintext: 00000000000000000000000000000000
Key: 000000000000000000000000000000000000000000000000
IV: 51719783d3185a535bd75adc65071ce1
Expected ciphertext: 4f354592ff7c8847d2d0870ca9481b7c
Computed ciphertext: 4f354592ff7c8847d2d0870ca9481b7c OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

GFSbox, test# 5

Input plaintext: 00000000000000000000000000000000
Key: 000000000000000000000000000000000000000000000000
IV: 26aa49dcfe7629a8901a69a9914e6dfd
Expected ciphertext: d5e08bf9a182e857cf40b3a36ee248cc
Computed ciphertext: d5e08bf9a182e857cf40b3a36ee248cc OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

GFSbox, test# 6

Input plaintext: 00000000000000000000000000000000
Key: 000000000000000000000000000000000000000000000000
IV: 941a4773058224e1ef66d10e0a6ee782
Expected ciphertext: 067cd9d3749207791841562507fa9626
Computed ciphertext: 067cd9d3749207791841562507fa9626 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
AES192.h
AES192.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