Windows Source Code - DiceLock 8.0.0.1
Get C++ DiceLock cipher architecture source code packages of DiceLock for Microsoft Visual Studio 2013 and DiceLock-x for Linux with Test Driver Programs and Response Test Vector files to verify that both them work as expected.
DiceLock for Windows and Linux
DiceLock Security governing software licenses are Free/Libre Source Code License and Educational and Research License

DiceLock is protected by US patent 7508945 and European Patent 1182777 where applicable.

DiceLock and DiceLock logo are trademarks or registered trademarks in the EC, USA and others.

License information can be obtained at our corporate web site




 

DiceLock 8.0.0.1 is the C++ DLL for Windows that implements different DiceLock cipher architectures, symmetric ciphers like AES 128, AES 192, AES 256, Camellia 128, Camellia 192, Camellia 256, Serpent 128, Serpent 192, Serpent 256, Twofish 128, Twofish 192, Twofish 256 with CBC, CFB, OFB and XTS operation modes and TDEA and stream ciphers like ARC4, HC 128, HC 256, Sosemanuk, Sosemanuk 128, Sosemanuk 256, Rabbit, Salsa 20/20 128 and Salsa 20/20 256, some of NIST FIPS 800-22b random number tests, and hash algorithms as Md2, Md4, Md5 , Sah 1, Sha 224, Sha 256, Sha 384, Sha 512, Ripemd 128, Ripemd 160, Ripemd 256,and Ripemd 320 and more.

All algorithms can work with default virtual memory or with memory data kept in RAM, not swapped to hard disk.

C++ source code files can be found here.

Included memory management implementations are:

  • DefaultCryptoRandomStream (to work with default virtual memory),
  • PhysicalCryptoRandomStream (memory kept in RAM and not swapped to hard disk file).

DiceLock cipher architecture implementations are:

  • DiceLock Digested,
  • DiceLock Indexed.
  • DiceLock IV Digested,
  • DiceLock IV Indexed.
  • DiceLock XTS Digested,
  • DiceLock XTS Indexed.

DiceLock configurations

DiceLock configurations and algorithms that can be used with each one of them:

Ciphers & operation modes Random number tests Hash algorithms
DiceLockDigested ARC4
ARC4 Discarding initial bytes
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
Discrete Fourier Transform Test
Sha 1
Sha 224
Sha 256
Sha 384
Sha 512
Ripemd 128
Ripemd 160
Ripemd 256
Ripemd 320
Md 2
Md 4
Md 5
DiceLockIndexed ARC4
ARC4 Discarding initial bytes
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
Discrete Fourier Transform Test
DiceLockIVDigested - CBC, CFB and OFB block cipher operation modes making use of:
AES 128
AES 192
AES 256
Camellia 128
Camellia 192
Camellia 256
Serpent 128
Serpent 192
Serpent 256
Twofish 128
Twofish 192
Twofish 256
TDEA
- Stram ciphers:
HC 128
HC 256
Rabbit
Salsa 20/20 128
Salsa 20/20 256
Sosemanuk 128
Sosemanuk 256
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
Discrete Fourier Transform Test
Sha 1
Sha 224
Sha 256
Sha 384
Sha 512
Ripemd 128
Ripemd 160
Ripemd 256
Ripemd 320
Md 2
Md 4
Md 5
DiceLockIVIndexed - CBC, CFB and OFB block cipher operation modes making use of:
AES 128
AES 192
AES 256
Camellia 128
Camellia 192
Camellia 256
Serpent 128
Serpent 192
Serpent 256
Twofish 128
Twofish 192
Twofish 256
TDEA
- Stram ciphers:
HC 128
HC 256
Rabbit
Salsa 20/20 128
Salsa 20/20 256
Sosemanuk 128
Sosemanuk 256
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
Discrete Fourier Transform Test
DiceLockXTSDigested XTS operation mode making use of:
AES 128
AES 192
AES 256
Camellia 128
Camellia 192
Camellia 256
Serpent 128
Serpent 192
Serpent 256
Twofish 128
Twofish 192
Twofish 256
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
Discrete Fourier Transform Test
Sha 1
Sha 224
Sha 256
Sha 384
Sha 512
Ripemd 128
Ripemd 160
Ripemd 256
Ripemd 320
Md 2
Md 4
Md 5
DiceLockXTSIndexed XTS operation mode making use of:
AES 128
AES 192
AES 256
Camellia 128
Camellia 192
Camellia 256
Serpent 128
Serpent 192
Serpent 256
Twofish 128
Twofish 192
Twofish 256
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
Discrete Fourier Transform Test

 

Security algorithm used by DiceLock that can be used by themselves too:

Symmetric key block cipher implementations are:

  • AES (Advanced Encryption Standard) 128 bit key length,
  • AES (Advanced Encryption Standard) 192 bit key length,
  • AES (Advanced Encryption Standard) 256 bit key length,
  • Camellia 128 bit key length,
  • Camellia 192 bit key length,
  • Camellia 256 bit key length,
  • Serpent 128 bit key length,
  • Serpent 192 bit key length,
  • Serpent 256 bit key length,
  • Twofish 128 bit key length,
  • Twofish 192 bit key length,
  • Twofish 256 bit key length,
  • DEA 64 bit key length,
  • TDEA 192 bit key length.

All previous block ciphers can work with the following block cipher operation modes:

  • CBC, cipher-block chaining,
  • CFB, cipher feedback, and
  • OFB, output feedback.

And all versions of AES, Camellia, Serpent and Twofish can work with:

  • XTS, XEX-based tweaked-codebook mode with ciphertext stealing.

Cryptographic pad implementations are:

  • ANSI.X.923,
  • ISO/IEC.9797.1,
  • PKCS7.

Symmetric key stream cipher implementations are:

  • ARC4 (alleged RC4 cipher),
  • HC 128 bit key length,
  • HC 256 bit key length,
  • Rabbit,
  • Salsa 20/20 128 bit key length,
  • Salsa 20/20 256 bit key length,
  • Sosemanuk,
  • Sosemanuk 128 bit key length, and
  • Sosemanuk 256 bit key length.

Random number test implemented are:

  • 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,
  • Discrete Fourier Transform Test.

Hash algorithms implemented are:

  • Sha 1,
  • Sha 224,
  • Sha 256,
  • Sha 384,
  • Sha 512,
  • Ripemd 128,
  • Ripemd 160,
  • Ripemd 256,
  • Ripemd 320.

DiceLock files:

DiceLock 8.0.0.1 is composed of the following files:

Windows Source Code DiceLock 8.0.0.1
DiceLockCipher.h
cryptoRandomStreams.h
baseCryptoRandomStream.h
baseCryptoRandomStream.cpp
defaultCryptoRandomStream.h
defaultCryptoRandomStream.cpp
physicalCryptoRandomStream.h
physicalCryptoRandomStream.cpp
diceLocks.h
DiceLock.h
DiceLock.cpp
DiceLockDigested.h
DiceLockDigested.cpp
DiceLockIndexed.h
DiceLockIndexed.cpp
DiceLockIV.h
DiceLockIV.cpp
DiceLockIVDigested.h
DiceLockIVDigested.cpp
DiceLockIVIndexed.h
DiceLockIVIndexed.cpp
diceLockXTSs.h
DiceLockXTS.h
DiceLockXTS.cpp
DiceLockXTSDigested.h
DiceLockXTSDigested.cpp
DiceLockXTSIndexed.h
DiceLockXTSIndexed.cpp
symmetricCiphers.h
baseSymmetricCipher.h
baseSymmetricCipher.cpp
symmetricStreamers.h
symmetricStreamerSpecialTypes.h
baseSymmetricStreamer.h
baseSymmetricStreamer.cpp
baseSymmetricStreamer_with_IV.h
baseSymmetricStreamer_with_IV.cpp
blockCipherOperationModes.h
baseBlockCipherOperationMode_with_IV.h
baseBlockCipherOperationMode_with_IV.cpp
CBC_Mode.h
CBC_Mode.cpp
CFB_Mode.h
CFB_Mode.cpp
OFB_Mode.h
OFB_Mode.cpp
XTS_Mode.h
XTS_Mode.cpp
blockCiphers.h
baseBlockCipher.h
baseBlockCipher.cpp
baseAES.h
baseAES.cpp
AES128.h
AES128.cpp
AES192.h
AES192.cpp
AES256.h
AES256.cpp
baseCamellia.h
baseCamellia.cpp
camellia128.h
camellia128.cpp
camellia192.h
camellia192.cpp
camellia256.h
camellia256.cpp
baseSerpent.h
baseSerpent.cpp
serpent128.h
serpent128.cpp
serpent192.h
serpent192.cpp
serpent256.h
serpent256.cpp
baseTwofish.h
baseTwofish.cpp
twofish128.h
twofish128.cpp
twofish192.h
twofish192.cpp
twofish256.h
twofish256.cpp
DEA.h
DEA.cpp
TDEA.h
TDEA.cpp
cryptoPads.h
baseCryptoPad.h
baseCryptoPad.cpp
ANSI_X_923.h
ANSI_X_923.cpp
ISO_IEC_9797_1.h
ISO_IEC_9797_1.cpp
PKCS7.h
PKCS7.cpp
streamCiphers.h
baseStreamCipher.h
baseStreamCipher.cpp
ARC4.h
ARC4.cpp
ARC4_Discarding.h
ARC4_Discarding.cpp
baseStreamCipher_with_IV.h
baseStreamCipher_with_IV.cpp
HC128.h
HC128.cpp
HC256.h
HC256.cpp
rabbit.h
rabbit.cpp
baseSalsa20_20.h
baseSalsa20_20.cpp
salsa20_20_128.h
salsa20_20_128.cpp
salsa20_20_256.h
salsa20_20_256.cpp
sosemanuk.h
sosemanuk.cpp
sosemanuk128.h
sosemanuk128.cpp
sosemanuk256.h
sosemanuk256.cpp
keyModifiers.h
baseKeyModifier.h
baseKeyModifier.cpp
increaseKeyModifier_6_0_0_1.h
increaseKeyModifier_6_0_0_1.cpp
decreaseKeyModifier_6_0_0_1.h
decreaseKeyModifier_6_0_0_1.cpp
indexModifiers.h
baseIndexModifier.h
baseIndexModifier.cpp
arithmeticFunctions.h
arithmeticFunctions.cpp
increaseBase0IndexModifier_6_0_0_1.h
increaseBase0IndexModifier_6_0_0_1.cpp
decreaseBase0IndexModifier_6_0_0_1.h
decreaseBase0IndexModifier_6_0_0_1.cpp
randomTests.h
randomTestErrors.h
baseRandomTest.h
baseRandomTest.cpp
mathematicalErrors.h
mathematicalFunctions.h
mathematicalFunctions.cpp
approximateEntropyTest.h
approximateEntropyTest.cpp
blockFrequencyTest.h
blockFrequencyTest.cpp
cumulativeSumForwardTest.h
cumulativeSumForwardTest.cpp
cumulativeSumReverseTest.h
cumulativeSumReverseTest.cpp
discreteFourierTransformTest.h
discreteFourierTransformTest.cpp
frequencyTest.h
frequencyTest.cpp
longestRunOfOnesTest.h
longestRunOfOnesTest.cpp
rankTest.h
rankTest.cpp
runsTest.h
runsTest.cpp
serialTest.h
serialTest.cpp
universalTest.h
universalTest.cpp
randomTestSuite.h
randomTestSuite.cpp
hashes.h
baseHash.h
baseHash.cpp
baseSha32.h
baseSha32.cpp
sha1.h
sha1.cpp
sha224.h
sha224.cpp
sha256.h
sha256.cpp
sha384.h
sha384.cpp
sha512.h
sha512.cpp
baseRipemd.h
baseRipemd.cpp
baseRipemd128X.h
baseRipemd128X.cpp
ripemd128.h
ripemd128.cpp
ripemd256.h
ripemd256.cpp
baseRipemd160X.h
baseRipemd160X.cpp
ripemd160.h
ripemd160.cpp
ripemd320.h
ripemd320.cpp
md2.h
md2.cpp
md4.h
md4.cpp
md5.h
md5.cpp
hashSuite.h
hashSuite.cpp

Obviously all files will be available at http://www.dicelocksecurity.com/ as a single package soon.