IOTA is adding an additional hashing function, based on Keccak, with conversion to ternary. The following document describes the functionality and specification to be implemented.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
java Create KerlTest.java Aug 8, 2017
javascript
python2
python3
rust
test_vectors
IOTA-Kerl-spec.md
README.md

README.md

IOTA Kerl:

IOTA is adding an additional hashing function, based on Keccak, with conversion to ternary.
The following document describes the functionality and specification to be implemented.

Kerl integration in IOTA:

Kerl is used in IOTA for the following tasks:

Functionality Curl-P-27 Curl-P-81 Kerl
Address generation V^
Signature generation V
Signature verification V
Essence calculation (bundleHash) V
Proof of Work V
Transaction Hash V
Milestone verification V

Curl-P-N: N number of rounds

^ CheckSums are calculated using the last 9 trytes.


Kerl specification:

Kerl Specification: specification and implementation details for kerl

Kerl Test vectors: extensive test vectors for independent implementations

Kerl implementation examples:

Java

JavaScript

Python2

Python3