Skip to content

A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.

Notifications You must be signed in to change notification settings

leadnt/retter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 

Repository files navigation

retter
retter, upholds cryptography
It's a collection of the most important things.


NOTE: retter is not yet finished!!!


About

BLA BLA BLA BLA BLA BLA BLA

Further reading:

Definitions

Avalanche - a measure of how the output bits change based on each input bit. Ideally each input bit will affect each output bit with 1/2 probability.

Realistically, many hash functions do not achieve perfect avalanche and are still useable for many sets of keys.

Cipher - an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure.

List of hash functions

This is a list of hash functions, including cyclic redundancy checks, checksum functions, and cryptographic hash functions.

For each function are included: description, implementations and materials.

Cyclic redundancy checks

A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data.

Checksums

A checksum or hash sum is a small-size datum from an arbitrary block of digital data for the purpose of detecting errors which may have been introduced during its transmission or storage.

Non-cryptographic hash functions

A cryptographic hash function is a hash function which is considered practically impossible to invert, that is, to recreate the input data from its hash value alone.

Cryptographic hash functions

A cryptographic hash function is a hash function which is considered practically impossible to invert, that is, to recreate the input data from its hash value alone.

Name Length Type Authors Information
MD5 128 bits Merkle-Damgård construction Ronald Rivest more
MD5 128 bits Merkle-Damgård construction Ronald Rivest more

Tools

Smhasher

Test your hash functions.

SMHasher is a test suite designed to test the distribution, collision, and performance properties of non-cryptographic hash functions - it aims to be the "DieHarder" of hash testing, and does a pretty good job of finding flaws with a number of popular hashes.

Sage S-box MILP toolkit

Extension of the Toolkit for Counting Active S-boxes using Mixed-Integer Linear Programming (MILP).

This toolkit can be used to prove the security of cryptographic ciphers against linear and differential cryptanalysis. Includes the implementation in Sage for AES, small AES, Present, Led, mCrypton, Klein and Enocoro.

KeccakTools

A set of documented C++ classes to help analyze Keccak-f.

KeccakTools is a set of C++ classes aimed at helping analyze the sponge function family Keccak.

S-box MILP toolkit

Toolkit for Counting Active S-boxes using Mixed-Integer Linear Programming (MILP).

This toolkit can be used to prove the security of cryptographic ciphers against linear and differential cryptanalysis.

Hashclash

Framework for MD5 & SHA-1 Differential Path Construction and Chosen-Prefix Collisions for MD5.

This framework contains tools for the constructions of differential paths for MD5 and SHA-1, including chosen-prefix collisions for MD5.

ARX Toolkit

The ARX toolkit is a set of tools to study ARX ciphers and hash functions.

The ARX toolkit was presented at the SHA-3 conference in March 2012 in Washington, DC.

Information Set Decoding

A tool for information set decoding.

This library, written in C++, is reasonably efficient at finding low weight codewords of a linear code using information set decoding.

S-function Toolkit

Toolkit for the differential cryptanalysis of S-functions.

An increasing number of cryptographic primitives use operations such as addition modulo 2^n, multiplication by a constant and bitwise Boolean functions as a source of non-linearity.

CryptLogVer

Toolkit for SAT-based attacks on cryptographic primitives.

CryptLogVer is a toolkit that can be used to mount SAT-based attacks on cryptographic primitives (block ciphers, stream ciphers, hash functions).

Linear Hull Cryptanalysis of PRESENT

A tool to compute linear hulls for PRESENT.

This tool computes linear hulls for the original PRESENT cipher. It confirms and even improves on the predicted bias (and the corresponding attack complexities) of conventional linear relations based on a single linear trail.

Automated Algebraic Cryptanalysis

A simple tool for the automatic algebraic cryptanalysis of a large array of stream- and block ciphers.

A simple tool for the automatic algebraic cryptanalysis of a large array of stream- and block ciphers. Three tests have been implemented and the best results have led to continued work on a computational cluster.

SYMAES

A Fully Symbolic Polynomial System Generator for AES-128.

SYMAES is a software tool that generates a system of polynomials in GF(2), corresponding to the round transformation and key schedule of the block cipher AES-128.

Tools for Algebraic Cryptanalysis

Tools for the algebraic cryptanalysis of cryptographic primitives.

Algebraic cryptanalysis of cryptographic primitives such as block ciphers, stream ciphers and hash functions usually proceeds in two steps.

Grain of Salt

An automated way to test stream ciphers through SAT solvers.

Grain of Salt is a tool developed to automatically test stream ciphers against standard SAT solver-based attacks. The tool takes as input a set of configuration options and the definition of each filter and feedback function of the stream cipher.

Sage

Free open-source mathematics software system, also containing many modules for cryptography.

Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface. It also contains modules to perform both basic and more advanced computations in cryptography and cryptanalysis.

Libraries

  • C
    • libsodium: a modern and easy-to-use crypto library.
    • AESLib: arduino Library for AES Encryption (source based on avr-crypto-lib).
    • crypto-algorithms: basic implementations of standard cryptography algorithms, like AES and SHA-1.
    • sha3sum: SHA-3 and Keccak checksum utility.
    • cryptlib: an open source cross-platform software security toolkit library.
    • Nettle: a cryptographic library that is designed to fit easily in more or less any context.
  • C++
    • Crypto++: is a free and open source C++ class library of cryptographic algorithms and schemes.
    • NaCl: high-speed software library for network communication, encryption, decryption, signatures, etc.
  • Javascript
    • jsHashes: pure JavaScript implementation of the most extended hash algorithms.
    • javascript-crypto-library: provides web developers with an extensive and efficient set of cryptographic functions.
    • cryptojs: provide standard and secure cryptographic algorithms for NodeJS.
    • hmacsha1.js: a JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined.
  • Clojure
    • pandect: fast and easy-to-use Message Digest, Checksum and HMAC library for Clojure.
  • ActionScript
    • as3corelib: an ActionScript 3 Library that contains a number of classes and utilities.
  • Ruby
    • BozoCrack: a silly & effective MD5 cracker in Ruby.
  • Objective-c
    • CocoaSecurity: encrypt/Decrypt: AES. Hash: MD5, SHA(SHA1, SHA224, SHA256, SHA384, SHA512). Encode/Decode: Base64, Hex.
  • Rust
    • rust-crypto: a (mostly) pure-Rust implementation of various cryptographic algorithms.
  • Java
    • Bouncy Castle: a collection of APIs used in cryptography. It includes APIs for both the Java and the C# programming languages.

Articles

Thanks

  • Dongxia Bai, Tsinghua University in China
  • Mike Sharov (@msharov)

About

A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 61.3%
  • C 33.1%
  • Objective-C 5.5%
  • Other 0.1%