Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-cryptography

A curated list of cryptography resources and links.
https://github.com/sobolevn/awesome-cryptography

Last synced: 3 days ago
JSON representation

  • Resources

    • Blogs

      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • A Few Thoughts on Cryptographic Engineering - Some random thoughts about crypto.
      • Bristol Cryptography Blog - Official blog for the University of Bristol cryptography research group. It's a group blog, primarily targeted towards cryptographers and crypto students.
      • Charles Engelke's Blog - WebCrypto Blog Posts.
      • Root Labs rdist - Nate Lawson and his co-authors write on a variety of topics including hardware implementation, cryptographic timing attacks, DRM, and the Commodore 64.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Schneier on security - One of the oldest and most famous security blogs. Bruce covers topics from block cipher cryptanalysis to airport security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
      • Salty Hash - Covers topics on encryption, data control, privacy, and security.
    • Web-tools

      • Cryptolab - is a set of cryptography related tools.
      • Boxentriq - Easy to use tools for analysis and code-breaking of the most frequent ciphers, including Vigenère, Beaufort, Keyed Caesar, Transposition Ciphers, etc.
      • CrypTool - Great variety of ciphers, encryption methods and analysis tools are introduced, often together with illustrated examples.
      • factordb.com - Factordb.com is tool used to store known factorizations of any number.
      • keybase.io - Keybase maps your identity to your public keys, and vice versa.
    • Mailing lists

      • metzdowd.com - "Cryptography" is a low-noise moderated mailing list devoted to cryptographic technology and its political impact.
      • Modern Crypto - Forums for discussing modern cryptographic practice.
      • randombit.net - List for general discussion of cryptography, particularly the technical aspects.
    • Web-sites

      • Applied Crypto Hardening - A lot ready to use best practice examples for securing web servers and more.
      • Cryptocurrencies Dashboard - A dashboard of most active cryptocurrencies discussed on Reddit.
      • Cryptography Stackexchange - Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography.
      • Cryptohack - A platform with lots of interactive cryptography challenges, similar to Cryptopals.
      • Cryptopals Crypto Challenges - A series of applied cryptography challenges, starting from very basic challenges, such as hex to base 64 challanges, and gradually increasing the difficulty up to abstract algebra.
      • Eliptic Curve Calculator - simple form that allows to calculate elliptic curve public keys and signatures. Features include ability to create custom curves and different signature types
      • Garykessler Crypto - An Overview of Cryptography.
      • IACR - The International Association for Cryptologic Research is a non-profit scientific organization whose purpose is to further research in cryptology and related fields.
      • Learn Cryptography - Dedicated to helping people understand how and why the cryptographic systems they use everyday without realizing work to secure and protect their privacy.
      • Subreddit of Cryptography - This subreddit is intended for links and discussions surrounding the theory and practice of strong cryptography.
      • TikZ for Cryptographers - A collection of block diagrams of common cryptographic functions drawn in TikZ to be used in research papers and presentations written in LaTeX.
      • WebCryptoAPI - This specification describes a JavaScript API for performing basic cryptographic operations in web applications, such as hashing, signature generation and verification, and encryption and decryption.
      • Cryptopals Crypto Challenges - A series of applied cryptography challenges, starting from very basic challenges, such as hex to base 64 challanges, and gradually increasing the difficulty up to abstract algebra.
  • Theory

    • Algorithms

      • 3DES - Symmetric-key block cipher (or Triple Data Encryption Algorithm (TDEA or Triple DEA), which applies the Data Encryption Standard (DES) cipher algorithm three times to each data block.
      • AES - Symmetric-key block cipher algorithm and U.S. government standard for secure and classified data encryption and decryption (also known as Rijndael).
      • Blowfish - Symmetric-key block cipher, designed in 1993 by Bruce Schneier. Notable features of the design include key-dependent S-boxes and a highly complex key schedule.
      • DH - A method of exchanging cryptographic keys securely over a public channel. Unlike RSA, the Diffie-Hellman Key Exchange is not encryption, and is only a way for two parties to agree on a shared secret value. Since the keys generated are completely pseudo-random, DH key exchanges can provide forward secrecy (https://en.wikipedia.org/wiki/Forward_secrecy).
      • ECC - Public-key cryptosystems based on the algebraic structure of elliptic curves over finite fields.
      • RSA - One of the first practical public-key cryptosystems and is widely used for secure data transmission. In RSA, this asymmetry is based on the practical difficulty of factoring the product of two large prime numbers, the factoring problem.
      • Transform Encryption (aka Proxy Re-Encryption) - Transform encryption uses three mathematically related keys: one to encrypt plaintext to a recipient, a second to decrypt the ciphertext, and a third to transform ciphertext encrypted to one recipient so it can be decrypted by a different recipient.
      • MD5 - Widely used hash function producing a 128-bit hash value. MD5 was initially designed to be used as a cryptographic hash function, but it has been found to suffer from extensive vulnerabilities. It can still be used as a checksum to verify data integrity, but only against unintentional corruption.
      • SHA1 - Cryptographic hash function designed by the NSA. SHA-1 produces a 160-bit hash value known as a message digest. SHA-1 is no longer considered secure against well-funded opponents.
      • SHA2 - Set of hash functions designed by the NSA. SHA-256 and SHA-512 are novel hash functions computed with 32-bit and 64-bit words, respectively. They use different shift amounts and additive constants, but their structures are otherwise virtually identical, differing only in the number of rounds.
      • SHA3 - Cryptographic hash function that produces a fixed-size output, typically 224, 256, 384, or 512 bits, from variable-size input data. It is part of the SHA-3 family of cryptographic algorithms designed to resist attacks from quantum computers and offers security properties such as pre-image resistance, second pre-image resistance, and collision resistance.
    • Articles

    • Books

    • Courses

      • A Self-Study Course In Block-Cipher Cryptanalysis - This paper attempts to organize the existing literature of block-cipher cryptanalysis in a way that students can use to learn cryptanalytic techniques and ways to break algorithms, by Bruce Schneier.
      • Applied Cryptography - Cryptography is present in everyday life, from paying with a credit card to using the telephone. Learn all about making and breaking puzzles in computing.
      • Crypto Strikes Back! - This talk will cover crypto vulnerabilities in widely-deployed systems and how the smallest oversight resulted in catastrophe.
      • Cryptography - A practical oriented course in Cryptography by University of Maryland College Park.
      • Cryptography - Stanford University - This course explains the inner workings of cryptographic primitives and how to correctly use them. Students will learn how to reason about the security of cryptographic constructions and how to apply this knowledge to real-world applications.
      • Cryptography I - The course begins with a detailed discussion of how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic. We will examine many deployed protocols and analyze mistakes in existing systems.
      • Cybrary Cryptography - This online course we will cover how cryptography is the cornerstone of security, and how through its use of different encryption methods, such as ciphers, and public or private keys, you can protect private or sensitive information from unauthorized access.
      • Harvard's Cryptography Lecture notes - An introductory but fast-paced undergraduate/beginning graduate course on cryptography, Used for Harvard CS 127.
      • Journey into cryptography - The course of cryptography by Khan Academy.
      • Practical Aspects of Modern Cryptography - Practical Aspects of Modern Cryptography, Winter 2006 University of Washington CSE.
      • Theory and Practice of Cryptography - Introduction to Modern Cryptography, Using Cryptography in Practice and at Google, Proofs of Security and Security Definitions and A Special Topic in Cryptography.
    • Other lists

  • Tools

    • Standalone

      • Bcrypt - Cross-platform file encryption utility.
      • Databunker - API based personal data or PII storage service built to comply with GDPR and CCPA.
      • gpg - Complete and free implementation of the OpenPGP standard. It allows to encrypt and sign your data and communication, features a versatile key management system. GnuPG is a command line tool with features for easy integration with other applications.
      • Nipe - Nipe is a script to make Tor Network your default gateway.
      • sops - sops is an editor of encrypted files that supports YAML, JSON and BINARY formats and encrypts with AWS KMS, GCP KMS, Azure Key Vault and PGP.
      • ves - End-to-end encrypted sharing via cloud repository, secure recovery through a viral network of friends in case of key loss.
      • Nipe - Nipe is a script to make Tor Network your default gateway.
      • Bcrypt - Cross-platform file encryption utility.
    • Plugins

      • git-secret - Bash-tool to store your private data inside a git repository.
    • Playgrounds

      • Cryptography Playground - A simple web tool to play and learn basic concepts of cryptography like, hashing, symmetric, asymmetric, zkp etc.
  • Frameworks and Libs

    • C

      • libgcrypt - Cryptographic library developed as a separated module of GnuPG.
      • monocypher - small, portable, easy to use crypto library inspired by libsodium and TweetNaCl.
      • NaCl - High-speed library for network communication, encryption, decryption, signatures, etc.
      • PolarSSL - PolarSSL makes it trivially easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) products, facilitating this functionality with a minimal coding footprint.
      • themis - High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption). Ported on many languages and platforms, suitable for client-server infastructures.
      • tiny-AES128-C - Small portable AES128 in C.
      • PolarSSL - PolarSSL makes it trivially easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) products, facilitating this functionality with a minimal coding footprint.
    • C++

      • Botan - Cryptography library written in `C++20`.
      • Nettle - Low-level cryptographic library.
      • s2n - Implementation of the TLS/SSL protocols.
      • s2n - Implementation of the TLS/SSL protocols.
    • C-sharp

    • Clojure

    • Common Lisp

      • ironclad - Collection of common crypto shortcuts.
    • Delphi

      • DelphiEncryptionCompendium - Cryptographic library for Delphi.
      • LockBox - LockBox 3 is a Delphi library for cryptography.
      • SynCrypto - Fast cryptographic routines (hashing and cypher), implementing AES, XOR, RC4, ADLER32, MD5, SHA1, SHA256 algorithms, optimized for speed.
      • TForge - TForge is open-source crypto library written in Delphi, compatible with FPC.
    • Elixir

      • comeonin - Password authorization (bcrypt) library for Elixir.
      • siphash-elixir - Elixir implementation of the SipHash hash family.
    • Erlang

      • crypto - Functions for computation of message digests, and functions for encryption and decryption.
      • public_key - Provides functions to handle public-key infrastructure.
    • Go

      • crypto - Official Website Resources.
      • goThemis - Go wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
    • Haskell

    • Ruby

      • RbNaCl - Ruby binding to the Networking and Cryptography (NaCl) library.
      • bcrypt-ruby - Ruby binding for the OpenBSD bcrypt() password hashing algorithm, allowing you to easily store a secure hash of your users' passwords.
      • Ruby Themis - Ruby wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
      • RbNaCl - Ruby binding to the Networking and Cryptography (NaCl) library.
      • bcrypt-ruby - Ruby binding for the OpenBSD bcrypt() password hashing algorithm, allowing you to easily store a secure hash of your users' passwords.
    • Haxe

    • JavaScript

      • asmCrypto - JavaScript implementation of popular cryptographic utilities with performance in mind.
      • bcrypt-Node.js - Native implementation of bcrypt for Node.js.
      • cifre - Fast crypto toolkit for modern client-side JavaScript.
      • closure-library - Google's common JavaScript library.
      • IronNode - Transform encryption library, a variant of proxy re-encryption, for encrypting to users or groups, and easily adding strong data controls to Node.js apps.
      • IronWeb - Transform encryption library, a variant of proxy re-encryption, for easily managing end-to-end encryption securely in the browser.
      • jsThemis - JavaScript wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
      • node.bcrypt.js - bcrypt for Node.js.
      • URSA - RSA public/private key OpenSSL bindings for Node.
    • Java

      • Apache Shiro - Performs authentication, authorization, cryptography and session management.
      • Bouncy Castle - All-purpose cryptographic library. JCA provider, wide range of functions from basic helpers to PGP/SMIME operations.
      • Flexiprovider - Powerful toolkit for the Java Cryptography Architecture.
      • Java Themis - Java/Android wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
      • jbcrypt - jBCrypt is an implementation the OpenBSD Blowfish password hashing
    • Julia

      • MbedTLS.jl - Wrapper around the mbed TLS and cryptography C libary.
      • Nettle.jl - Julia wrapper around nettle cryptographic hashing/
      • SHA.jl - Performant, 100% native-julia SHA1, SHA2-{224,256,384,512} implementation.
    • Objective-C

      • ObjC Themis - ObjC wrapper on Themis for iOS and macOS. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
      • RNCryptor - CCCryptor (AES encryption) wrappers for iOS and Mac.
    • PHP

      • halite - Simple library for encryption using `libsodium`.
      • PHP Themis - PHP wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
    • Python

      • cryptography - Python library which exposes cryptographic recipes and primitives.
      • cryptopy - Pure python implementation of cryptographic algorithms and applications.
      • paramiko - Python implementation of the SSHv2 protocol, providing both client and server functionality.
      • pythemis - Python wrapper on Themis. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).
    • Rust

      • ockam - is a Rust library for end-to-end encryption and mutual authentication.
      • rustls - Rustls is a new, modern TLS library written in Rust.
      • sodiumoxide - Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium).
      • ockam - is a Rust library for end-to-end encryption and mutual authentication.
    • Scheme

    • Swift

      • CryptoSwift - Crypto related functions and helpers for Swift implemented in Swift programming language.
      • IDZSwiftCommonCrypto - Wrapper for Apple's [CommonCrypto](https://opensource.apple.com/source/CommonCrypto/) library written in Swift.
      • OpenSSL - Swift OpenSSL for macOS and Linux.
      • SweetHMAC - Tiny and easy to use Swift class to encrypt strings using HMAC algorithms.
      • Swift-Sodium - Swift interface to the Sodium library for common crypto operations for iOS and macOS.
      • SwiftSSL - Elegant crypto toolkit in Swift.
      • SwiftThemis - Swift wrapper on Themis for iOS and macOS. High level crypto library for storing data (AES), secure messaging (ECC + ECDSA / RSA + PSS + PKCS#7) and session-oriented, forward secrecy data exchange (ECDH key agreement, ECC & AES encryption).