July 2014
S M T W T F S
« Jun    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Recent Posts

DiceLock-x 8.0.0.1 for Linux, CFB_Mode class (Cipher feedback CFB block cipher operation mode algorithm), 64-bit CFB mode, verified with TDEA, SubstitutionTable test set and DefaultCryptoRandomStream class (default virtual memory management)

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 feedback CFB class (computing Cipher feedback CFB 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: CFB_Mode class
– Block cipher encryption algorithm: TDEA class
– Test set : SubstitutionTable
– Bit stream memory management: DefaultCryptoRandomStream class (default virtual memory management)

Memory characteristic used in this test:

DefaultCryptoRandomStream class makes use of default virtual memory where the system can move pages of physical memory to and from a paging file on disk (manipulation of physical memory by the system is completely transparent to applications).

 

CFB_Mode class block cipher operation mode is executed as 64-bit CFB mode, that is, each plaintext segment and ciphertext segment consists of 64 bits.

Once computed we’ve got the following results:

Substitution table, # 1

Input plaintext: 0000000000000000
Key: 7ca110454a1a6e577ca110454a1a6e577ca110454a1a6e57
IV: 01a1d6d039776742
Expected ciphertext: 690f5b0d9a26939b
Computed ciphertext: 690f5b0d9a26939b OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 2

Input plaintext: 0000000000000000
Key: 0131d9619dc1376e0131d9619dc1376e0131d9619dc1376e
IV: 5cd54ca83def57da
Expected ciphertext: 7a389d10354bd271
Computed ciphertext: 7a389d10354bd271 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 3

Input plaintext: 0000000000000000
Key: 07a1133e4a0b268607a1133e4a0b268607a1133e4a0b2686
IV: 0248d43806f67172
Expected ciphertext: 868ebb51cab4599a
Computed ciphertext: 868ebb51cab4599a OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 4

Input plaintext: 0000000000000000
Key: 3849674c2602319e3849674c2602319e3849674c2602319e
IV: 51454b582ddf440a
Expected ciphertext: 7178876e01f19b2a
Computed ciphertext: 7178876e01f19b2a OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 5

Input plaintext: 0000000000000000
Key: 04b915ba43feb5b604b915ba43feb5b604b915ba43feb5b6
IV: 42fd443059577fa2
Expected ciphertext: af37fb421f8c4095
Computed ciphertext: af37fb421f8c4095 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 6

Input plaintext: 0000000000000000
Key: 0113b970fd34f2ce0113b970fd34f2ce0113b970fd34f2ce
IV: 059b5e0851cf143a
Expected ciphertext: 86a560f10ec6d85b
Computed ciphertext: 86a560f10ec6d85b OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 7

Input plaintext: 0000000000000000
Key: 0170f175468fb5e60170f175468fb5e60170f175468fb5e6
IV: 0756d8e0774761d2
Expected ciphertext: 0cd3da020021dc09
Computed ciphertext: 0cd3da020021dc09 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 8

Input plaintext: 0000000000000000
Key: 43297fad38e373fe43297fad38e373fe43297fad38e373fe
IV: 762514b829bf486a
Expected ciphertext: ea676b2cb7db2b7a
Computed ciphertext: ea676b2cb7db2b7a OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 9

Input plaintext: 0000000000000000
Key: 07a7137045da2a1607a7137045da2a1607a7137045da2a16
IV: 3bdd119049372802
Expected ciphertext: dfd64a815caf1a0f
Computed ciphertext: dfd64a815caf1a0f OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 10

Input plaintext: 0000000000000000
Key: 04689104c2fd3b2f04689104c2fd3b2f04689104c2fd3b2f
IV: 26955f6835af609a
Expected ciphertext: 5c513c9c4886c088
Computed ciphertext: 5c513c9c4886c088 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 11

Input plaintext: 0000000000000000
Key: 37d06bb516cb754637d06bb516cb754637d06bb516cb7546
IV: 164d5e404f275232
Expected ciphertext: 0a2aeeae3ff4ab77
Computed ciphertext: 0a2aeeae3ff4ab77 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 12

Input plaintext: 0000000000000000
Key: 1f08260d1ac2465e1f08260d1ac2465e1f08260d1ac2465e
IV: 6b056e18759f5cca
Expected ciphertext: ef1bf03e5dfa575a
Computed ciphertext: ef1bf03e5dfa575a OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 13

Input plaintext: 0000000000000000
Key: 584023641aba6176584023641aba6176584023641aba6176
IV: 004bd6ef09176062
Expected ciphertext: 88bf0db6d70dee56
Computed ciphertext: 88bf0db6d70dee56 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 14

Input plaintext: 0000000000000000
Key: 025816164629b007025816164629b007025816164629b007
IV: 480d39006ee762f2
Expected ciphertext: a1f9915541020b56
Computed ciphertext: a1f9915541020b56 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 15

Input plaintext: 0000000000000000
Key: 49793ebc79b3258f49793ebc79b3258f49793ebc79b3258f
IV: 437540c8698f3cfa
Expected ciphertext: 6fbf1cafcffd0556
Computed ciphertext: 6fbf1cafcffd0556 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 16

Input plaintext: 0000000000000000
Key: 4fb05e1515ab73a74fb05e1515ab73a74fb05e1515ab73a7
IV: 072d43a077075292
Expected ciphertext: 2f22e49bab7ca1ac
Computed ciphertext: 2f22e49bab7ca1ac OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 17

Input plaintext: 0000000000000000
Key: 49e95d6d4ca229bf49e95d6d4ca229bf49e95d6d4ca229bf
IV: 02fe55778117f12a
Expected ciphertext: 5a6b612cc26cce4a
Computed ciphertext: 5a6b612cc26cce4a OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 18

Input plaintext: 0000000000000000
Key: 018310dc409b26d6018310dc409b26d6018310dc409b26d6
IV: 1d9d5c5018f728c2
Expected ciphertext: 5f4c038ed12b2e41
Computed ciphertext: 5f4c038ed12b2e41 OK
DECIPHERING Deciphered text: 0000000000000000 OK

 

Substitution table, # 19

Input plaintext: 0000000000000000
Key: 1c587f1c13924fef1c587f1c13924fef1c587f1c13924fef
IV: 305532286d6f295a
Expected ciphertext: 63fac0d034d9f793
Computed ciphertext: 63fac0d034d9f793 OK
DECIPHERING Deciphered text: 0000000000000000 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
defaultCryptoRandomStream.h
defaultCryptoRandomStream.cpp
baseSymmetricCipher.h
baseSymmetricCipher.cpp
baseSymmetricStreamer.h
baseSymmetricStreamer.cpp
blockCipherOperationModes.h
baseBlockCipherOperationMode_with_IV.h
baseBlockCipherOperationMode_with_IV.cpp
CFB_Mode.h
CFB_Mode.cpp
blockCiphers.h
baseBlockCipher.h
baseBlockCipher.cpp
DEA.h
DEA.cpp
internalBuffer.h
internalBuffer.cpp
TDEA.h
TDEA.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