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, CBC_Mode class (Cipher-block chaining CBC block cipher operation mode algorithm), with ISO_IEC_9797_1 class crypto padding algorithm, verified with Advanced Encryption Standard AES 256, 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 Cipher-block chaining CBC class (computing Cipher-block chaining CBC 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: CBC_Mode class
– CBC crypto padding algorithm: ISO_IEC_9797_1 class
– Block cipher encryption algorithm: AES256 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.

 

CBC_Mode class block cipher operation mode is executed with ISO_IEC_9797_1 class crypto padding algorithm. Encrypted text length is set to 256 and it does match expected ciphertext first 128 bits, remaining 128 bits corresponding to crypto pad data are shown in italic.

Once computed we’ve got the following results:

GFSbox, test# 1

Input plaintext: 014730f80ac625fe84f026c60bfd547d
Key: 0000000000000000000000000000000000000000000000000000000000000000
IV: 00000000000000000000000000000000
Expected ciphertext: 5c9d844ed46f9885085e5d6a4f94c7d7
Computed ciphertext: 5c9d844ed46f9885085e5d6a4f94c7d7827ffc83e3fccf6c89240e7b8a990f28 OK
DECIPHERING Deciphered text: 014730f80ac625fe84f026c60bfd547d OK

 

GFSbox, test# 2

Input plaintext: 0b24af36193ce4665f2825d7b4749c98
Key: 0000000000000000000000000000000000000000000000000000000000000000
IV: 00000000000000000000000000000000
Expected ciphertext: a9ff75bd7cf6613d3731c77c3b6d0c04
Computed ciphertext: a9ff75bd7cf6613d3731c77c3b6d0c04d7a2d2bb7d9cf87cc0f46407b175cb42 OK
DECIPHERING Deciphered text: 0b24af36193ce4665f2825d7b4749c98 OK

 

GFSbox, test# 3

Input plaintext: 761c1fe41a18acf20d241650611d90f1
Key: 0000000000000000000000000000000000000000000000000000000000000000
IV: 00000000000000000000000000000000
Expected ciphertext: 623a52fcea5d443e48d9181ab32c7421
Computed ciphertext: 623a52fcea5d443e48d9181ab32c7421b19a160e9ea741f4c86bb25ab3c5d2ea OK
DECIPHERING Deciphered text: 761c1fe41a18acf20d241650611d90f1 OK

 

GFSbox, test# 4

Input plaintext: 8a560769d605868ad80d819bdba03771
Key: 0000000000000000000000000000000000000000000000000000000000000000
IV: 00000000000000000000000000000000
Expected ciphertext: 38f2c7ae10612415d27ca190d27da8b4
Computed ciphertext: 38f2c7ae10612415d27ca190d27da8b4e5a3b3d9ac6f09d177005dd1dd4ef1c2 OK
DECIPHERING Deciphered text: 8a560769d605868ad80d819bdba03771 OK

 

GFSbox, test# 5

Input plaintext: 91fbef2d15a97816060bee1feaa49afe
Key: 0000000000000000000000000000000000000000000000000000000000000000
IV: 00000000000000000000000000000000
Expected ciphertext: 1bc704f1bce135ceb810341b216d7abe
Computed ciphertext: 1bc704f1bce135ceb810341b216d7abef45b3f36db290531f6e7aadc81a87616 OK
DECIPHERING Deciphered text: 91fbef2d15a97816060bee1feaa49afe 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
CBC_Mode.h
CBC_Mode.cpp
cryptoPads.h
baseCryptoPad.h
baseCryptoPad.cpp
ISO_IEC_9797_1.h
ISO_IEC_9797_1.cpp
blockCiphers.h
baseBlockCipher.h
baseBlockCipher.cpp
baseAES.h
baseAES.cpp
AES256.h
AES256.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