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 256, 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: AES256 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: c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558
IV: 00000000000000000000000000000000
Expected ciphertext: 46f2fb342d6f0ab477476fc501242c5f
Computed ciphertext: 46f2fb342d6f0ab477476fc501242c5f OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 2

Input plaintext: 00000000000000000000000000000000
Key: 28d46cffa158533194214a91e712fc2b45b518076675affd910edeca5f41ac64
IV: 00000000000000000000000000000000
Expected ciphertext: 4bf3b0a69aeb6657794f2901b1440ad4
Computed ciphertext: 4bf3b0a69aeb6657794f2901b1440ad4 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 3

Input plaintext: 00000000000000000000000000000000
Key: c1cc358b449909a19436cfbb3f852ef8bcb5ed12ac7058325f56e6099aab1a1c
IV: 00000000000000000000000000000000
Expected ciphertext: 352065272169abf9856843927d0674fd
Computed ciphertext: 352065272169abf9856843927d0674fd OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 4

Input plaintext: 00000000000000000000000000000000
Key: 984ca75f4ee8d706f46c2d98c0bf4a45f5b00d791c2dfeb191b5ed8e420fd627
IV: 00000000000000000000000000000000
Expected ciphertext: 4307456a9e67813b452e15fa8fffe398
Computed ciphertext: 4307456a9e67813b452e15fa8fffe398 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 5

Input plaintext: 00000000000000000000000000000000
Key: b43d08a447ac8609baadae4ff12918b9f68fc1653f1269222f123981ded7a92f
IV: 00000000000000000000000000000000
Expected ciphertext: 4663446607354989477a5c6f0f007ef4
Computed ciphertext: 4663446607354989477a5c6f0f007ef4 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 6

Input plaintext: 00000000000000000000000000000000
Key: 1d85a181b54cde51f0e098095b2962fdc93b51fe9b88602b3f54130bf76a5bd9
IV: 00000000000000000000000000000000
Expected ciphertext: 531c2c38344578b84d50b3c917bbb6e1
Computed ciphertext: 531c2c38344578b84d50b3c917bbb6e1 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 7

Input plaintext: 00000000000000000000000000000000
Key: dc0eba1f2232a7879ded34ed8428eeb8769b056bbaf8ad77cb65c3541430b4cf
IV: 00000000000000000000000000000000
Expected ciphertext: fc6aec906323480005c58e7e1ab004ad
Computed ciphertext: fc6aec906323480005c58e7e1ab004ad OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 8

Input plaintext: 00000000000000000000000000000000
Key: f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9
IV: 00000000000000000000000000000000
Expected ciphertext: a3944b95ca0b52043584ef02151926a8
Computed ciphertext: a3944b95ca0b52043584ef02151926a8 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 9

Input plaintext: 00000000000000000000000000000000
Key: 797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e
IV: 00000000000000000000000000000000
Expected ciphertext: a74289fe73a4c123ca189ea1e1b49ad5
Computed ciphertext: a74289fe73a4c123ca189ea1e1b49ad5 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 10

Input plaintext: 00000000000000000000000000000000
Key: 6838d40caf927749c13f0329d331f448e202c73ef52c5f73a37ca635d4c47707
IV: 00000000000000000000000000000000
Expected ciphertext: b91d4ea4488644b56cf0812fa7fcf5fc
Computed ciphertext: b91d4ea4488644b56cf0812fa7fcf5fc OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 11

Input plaintext: 00000000000000000000000000000000
Key: ccd1bc3c659cd3c59bc437484e3c5c724441da8d6e90ce556cd57d0752663bbc
IV: 00000000000000000000000000000000
Expected ciphertext: 304f81ab61a80c2e743b94d5002a126b
Computed ciphertext: 304f81ab61a80c2e743b94d5002a126b OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 12

Input plaintext: 00000000000000000000000000000000
Key: 13428b5e4c005e0636dd338405d173ab135dec2a25c22c5df0722d69dcc43887
IV: 00000000000000000000000000000000
Expected ciphertext: 649a71545378c783e368c9ade7114f6c
Computed ciphertext: 649a71545378c783e368c9ade7114f6c OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 13

Input plaintext: 00000000000000000000000000000000
Key: 07eb03a08d291d1b07408bf3512ab40c91097ac77461aad4bb859647f74f00ee
IV: 00000000000000000000000000000000
Expected ciphertext: 47cb030da2ab051dfc6c4bf6910d12bb
Computed ciphertext: 47cb030da2ab051dfc6c4bf6910d12bb OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 14

Input plaintext: 00000000000000000000000000000000
Key: 90143ae20cd78c5d8ebdd6cb9dc1762427a96c78c639bccc41a61424564eafe1
IV: 00000000000000000000000000000000
Expected ciphertext: 798c7c005dee432b2c8ea5dfa381ecc3
Computed ciphertext: 798c7c005dee432b2c8ea5dfa381ecc3 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 15

Input plaintext: 00000000000000000000000000000000
Key: b7a5794d52737475d53d5a377200849be0260a67a2b22ced8bbef12882270d07
IV: 00000000000000000000000000000000
Expected ciphertext: 637c31dc2591a07636f646b72daabbe7
Computed ciphertext: 637c31dc2591a07636f646b72daabbe7 OK
DECIPHERING Deciphered text: 00000000000000000000000000000000 OK

 

KeySbox, test# 16

Input plaintext: 00000000000000000000000000000000
Key: fca02f3d5011cfc5c1e23165d413a049d4526a991827424d896fe3435e0bf68e
IV: 00000000000000000000000000000000
Expected ciphertext: 179a49c712154bbffbe6e7a84a18e220
Computed ciphertext: 179a49c712154bbffbe6e7a84a18e220 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
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