Skip to content

Beloumi/Crypto-Eck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Crypto-Eck

cryptographic stuff

This is as a collection of cryptographic stuff, which is yet not included into a library or an application.

Password Hashing:

The package password hashing is still a bit raw. It may perhaps be used in future to compare some password hashing schemes. Bcrypt and Battcrypt require Bouncy Castles lightweight Crypto API.

Pomelo is a Password Hashing Scheme designed by Hongjun Wu. It was submitted to the Password Hashing Competition and became one of the nine finalists. There is also key derivation function described in paper v3.

Battcrypt was designed by Steven Thomas and is also a finalist of the Password Hshing Comptition. This implementation does not contain the key derivation mode.

Catena is a Password-Scrambling Framework designed by Christian Forler, Stefan Lucks and Jakob Wenzel. The Password Hashing Competition gave special recognition to Catena and three other schemes. There are two instances: Catena-Dragonfly and Catena-Butterfly. Both can be used with the round-reduced version H' of Blake2b and also as FULL version.

The latest Realease 1.52 of Bouncy Castle now contains a slightly modified version of this implementation of Bcrypt. It is only available here for comparison reasons.

There are test classes with test vectors for all password hashing schemes. For Catena there is also a performance test class (tests Blake2b and SHA512).

Digests:

Blake2b is a cryptographic hash function, designed by Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn, and Christian Winnerlein.

You can simply use it in this way:

  Blake2b b = new Blake2b(); // no key, no salt, no personalization
  b.update( anyByteArray1 );
  b.update( anyByteArray2 );
  byte[] hash = new byte[64];// full length of hash value
  b.doFinal(hash, 0); // result now holds the hash value (64 byte)

You can also set a 16 byte salt value and a 16 byte personalization string. The Tree Hashing Mode is not implemented. There is also a Java implementation of Joubin Mohammad Houshyar which includs the Tree Hashing Mode and a JCE-Provider. You can find it at: https://github.com/alphazero/Blake2b

SHA512Digest is a modified version of Bouncy Castles SHA512Digest. It is only used for performance comparison. SHA512Digest and LongDigest are under Bouncy Castles MIT-like license.

Author: Axel von dem Bruch

Contact: [email protected]

About

cryptographic stuff

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages