Awesome Cryptography
A curated list of cryptography resources and links.
Contents
Theory
Algorithms
Symmetric encryption
- π 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.
Asymmetric encryption
- π 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
- π 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.
Hash functions
- π 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
- π How to Generate Secure Random Numbers in Various Programming Languages.
- π Password Insecurity - This article is written for everybody who is interested in password security.
- π Secure Account Recovery Made Simple.
Books
- π A Graduate Course in Applied Cryptography - The book covers many constructions for different tasks in cryptography.
- An Introduction to Mathematical Cryptography - Introduction to modern cryptography.
- π Applied Cryptography: Protocols, Algorithms and Source Code in C - This cryptography classic provides you with a comprehensive survey of modern cryptography.
- π Crypto101 - Crypto 101 is an introductory course on cryptography.
- π Cryptography Engineering - Learn to build cryptographic protocols that work in the real world.
- π Handbook of Applied Cryptography - This book is intended as a reference for professional cryptographers.
- Introduction to Modern Cryptography - Introductory-level treatment of cryptography written from a modern, computer science perspective.
- π OpenSSL Cookbook - The book about OpenSSL.
- π Practical Cryptography for Developers - Developer-friendly book on modern cryptography (hashes, MAC codes, symmetric and asymmetric ciphers, key exchange, elliptic curves, digital signatures) with lots of code examples.
- π Real World Cryptography - This book teaches you applied cryptographic techniques to understand and apply security at every level of your systems and applications.
- Security Engineering - There is an extraordinary textbook written by Ross Anderson, professor of computer security at University of Cambridge.
- π Serious Cryptography - A Practical Introduction to Modern Encryption by Jean-Philippe Aumasson.
- π The Code Book - This book is a digest of the history of cryptography, covering both ancient times, and newer cryptography methods. There are exercises at the end and the solution of those was rewarded with $10.000.
- π The Cryptoparty Handbook - This book provides a comprehensive guide to the various topics of the computer and internet security.
- Understanding Cryptography - Often overlooked, this book is a boon for beginners to the field. It contains plenty of exercises at the end of each chapter, aimed at reinforcing concepts and cementing ideas.
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
1630β
131π΄
Awesome crypto-papers) β A curated list of cryptography papers, articles, tutorials and howtos.910β
73π΄
Awesome HE) β A curated list of homomorphic encryption libraries, software and resources.
Tools
Standalone
- Bcrypt - Cross-platform file encryption utility.
6597β
384π΄
blackbox) - safely store secrets in Git/Mercurial/Subversion.30631β
3343π΄
certbot) - Previously the Let's Encrypt Client, is EFF's tool to obtain certs from Let's Encrypt, and (optionally) auto-enable HTTPS on your server. It can also act as a client for any other CA that uses the ACME protocol.?β
?π΄
Coherence) - Cryptographic server for modern web apps.10425β
1074π΄
cryptomator) - Multi-platform transparent client-side encryption of your files in the cloud.- π 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.
62β
7π΄
ironssh) - End-to-end encrypt transferred files using sftp/scp and selectively share with others. Automatic key management works with any SSH server. Encrypted files are gpg compatible.1798β
321π΄
Nipe) - Nipe is a script to make Tor Network your default gateway.14713β
818π΄
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.
Plugins
Git
7865β
457π΄
git-crypt) - Transparent file encryption in git.- π 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
1679β
725π΄
crypto-algorithms) - Basic implementations of standard cryptography algorithms, like AES and SHA-1.- libgcrypt - Cryptographic library developed as a separated module of GnuPG.
151β
67π΄
libkcapi) - Linux Kernel Crypto API User Space Interface Library.11789β
1686π΄
libsodium) - Modern and easy-to-use crypto library.1460β
436π΄
libtomcrypt) - Fairly comprehensive, modular and portable cryptographic toolkit.34β
7π΄
libVES.c) - End-to-end encrypted sharing via cloud repository, secure recovery through a viral network of friends in case of key loss.34β
16π΄
milagro-crypto-c) - Small, self-contained and fast open source crypto library. It supports RSA, ECDH, ECIES, ECDSA, AES-GCM, SHA2, SHA3 and Pairing-Based Cryptography.- π monocypher - small, portable, easy to use crypto library inspired by libsodium and TweetNaCl.
- π NaCl - High-speed library for network communication, encryption, decryption, signatures, etc.
54β
27π΄
nettle) - is a cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space.23778β
9616π΄
OpenSSL) - TLS/SSL and crypto library.- π 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.
528β
119π΄
RHash) - Great utility for computing hash sums.1796β
140π΄
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.3944β
1270π΄
tiny-AES128-C) - Small portable AES128 in C.2128β
759π΄
wolfSSL) - Small, fast, portable implementation of TLS/SSL for embedded devices to the cloud.554β
200π΄
XKCP) β is a repository that gathers different free and open-source implementations of the cryptographic schemes defined by the Keccak team.8188β
735π΄
xxHash) - Extremely fast hash algorithm.
C++
64β
11π΄
=nil; Crypto3) - Modern Cryptography Suite in C++17 (complete applied cryptography suite starting with block ciphers and ending with threshold cryptography, zk proof systems, etc).- π Botan - Cryptography library written in
C++20
. 4437β
1433π΄
cryptopp) - Crypto++ Library is a free C++ class library of cryptographic schemes.3β
0π΄
HElib) - Software library that implements homomorphic encryption (HE).- Nettle - Low-level cryptographic library.
4434β
720π΄
s2n) - Implementation of the TLS/SSL protocols.
C-sharp
- π Bouncy Castle - All-purpose cryptographic library.
?β
?π΄
libsodium-net) - Secure cryptographic library, port of libsodium for .NET.- π Microsoft .NET Framework Cryptography Model - The .NET Framework implementations of many standard cryptographic algorithms.
228β
55π΄
PCLCrypto) - Provides cryptographic APIs over algorithms implemented by the platform, including exposing them to portable libraries.565β
49π΄
SecurityDriven.Inferno) - .NET crypto done right.130β
31π΄
StreamCryptor) - Stream encryption & decryption with libsodium and protobuf.
Clojure
- π buddy-core - Cryptographic Api.
?β
?π΄
clj-crypto) - Wrapper for Bouncy Castle.218β
11π΄
pandect) - Fast and easy-to-use Message Digest, Checksum and HMAC library for Clojure.87β
1π΄
secrets.clj) - A Clojure library designed to generate cryptographically strong random numbers suitable for managing data such as passwords, account authentication, security tokens, and related secrets.
Common Lisp
20β
0π΄
crypto-shortcuts) - Collection of common cryptography functions.- ironclad - Collection of common crypto shortcuts.
39β
7π΄
trivial-ssh) - SSH client library for Common Lisp (Built on libssh2).
Delphi
?β
?π΄
DelphiEncryptionCompendium) - Cryptographic library for Delphi.- π LockBox - LockBox 3 is a Delphi library for cryptography.
763β
323π΄
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
59β
25π΄
cipher) - Elixir crypto library to encrypt/decrypt arbitrary binaries.532β
55π΄
cloak) - Cloak makes it easy to use encryption with Ecto.1280β
67π΄
comeonin) - Password authorization (bcrypt) library for Elixir.34β
2π΄
elixir-rsa) -:public_key
cryptography wrapper for Elixir.2β
1π΄
elixir_tea) - TEA implementation in Elixir.134β
45π΄
ex_crypto) - Elixir wrapper for Erlang:crypto
and:public_key
modules. Provides sensible defaults for many crypto functions to make them easier to use.18β
5π΄
exgpg) - Use gpg from Elixir.232β
37π΄
pot) - Erlang library for generating one time passwords compatible with Google Authenticator.18β
2π΄
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.
111β
16π΄
dkeyczar) - Port of Google's Keyczar cryptography library to Go.153β
37π΄
gocrypto) - Example source code for the Practical Crypto with Go book.?β
?π΄
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).589β
165π΄
kyber) - Advanced crypto library for the Go language.
Haskell
- Cryptography - Collaborative Hackage list.
- π Cryptography & Hashing - Official Website of Haskell.
1099β
118π΄
cryptol) - The Language of Cryptography.- π Cryptonite - Haskell repository of cryptographic primitives.
19β
52π΄
HsOpenSSL) - OpenSSL binding for Haskel.16β
9π΄
scrypt) - Haskell bindings to Colin Percival's scrypt implementation.
Haxe
- haxe-crypto - Haxe Cryptography Library.
JavaScript
?β
?π΄
asmCrypto) - JavaScript implementation of popular cryptographic utilities with performance in mind.?β
?π΄
bcrypt-Node.js) - Native implementation of bcrypt for Node.js.121β
9π΄
cifre) - Fast crypto toolkit for modern client-side JavaScript.4822β
1112π΄
closure-library) - Google's common JavaScript library.1168β
378π΄
cryptico) - Easy-to-use encryption system utilizing RSA and AES for JavaScript.15198β
2341π΄
crypto-js) - JavaScript library of crypto standards.320β
78π΄
cryptojs) - Provide standard and secure cryptographic algorithms for Node.js.4898β
791π΄
forge) - Native implementation of TLS in JavaScript and tools to write crypto-based and network-heavy webapps.- π 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.
285β
89π΄
javascript-crypto-library) - JavaScript Crypto Library provides web developers with an extensive and efficient set of cryptographic functions.491β
57π΄
js-nacl) - Pure-JavaScript High-level API to Emscripten-compiled libsodium routines.6496β
2031π΄
jsencrypt) - JavaScript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.708β
142π΄
JShashes) - Fast and dependency-free cryptographic hashing library for Node.js and browsers (supports MD5, SHA1, SHA256, SHA512, RIPEMD, HMAC).3170β
645π΄
jsrsasign) - The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation.?β
?π΄
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).928β
140π΄
libsodium.js) - libsodium compiled to pure JavaScript, with convenient wrappers.7β
1π΄
libVES.js) - End-to-end encrypted sharing via cloud repository, secure recovery through a viral network of friends in case of key loss.16β
10π΄
milagro-crypto-js) - MCJS is a standards compliant JavaScript cryptographic library with no external dependencies except for the random seed source. Compatible for Node.js and browser. It supports RSA, ECDH, ECIES, ECDSA, AES-GCM, SHA2, SHA3, Pairing-Based Cryptography and New Hope.- noble - high-security, easily auditable set of contained cryptographic libraries and tools. Zero dependencies each.
121β
6π΄
noble-ciphers) β cryptographic ciphers, including AES-SIV, Salsa20, ChaCha, Poly1305 and FF1542β
50π΄
noble-curves) β elliptic curve cryptography, including Weierstrass, Edwards, Montgomery curves, pairings, hash-to-curve, poseidon hash, schnorr, secp256k1, ed25519, ed448, p521, bn254, bls12-381 and others. Also 4kb672β
103π΄
noble-secp256k1),366β
46π΄
noble-ed25519)438β
34π΄
noble-hashes) β SHA2, SHA3, RIPEMD, BLAKE2/3, HMAC, HKDF, PBKDF2 & Scrypt
7239β
552π΄
node.bcrypt.js) - bcrypt for Node.js.5536β
782π΄
OpenPGP.js) - OpenPGP implementation for JavaScript.265β
21π΄
PolyCrypt) - Pure JS implementation of the WebCrypto API.275β
37π΄
rusha) - High-performance pure-javascript SHA1 implementation suitable for large binary data, reaching up to half the native speed.7133β
1274π΄
sjcl) - Stanford JavaScript Crypto Library.1706β
349π΄
TweetNaCl.js) - A port of TweetNaCl / NaCl for JavaScript for modern browsers and Node.js.621β
146π΄
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.
30β
5π΄
GDH) - Generalized Diffie-Hellman key exchange Java library for multiple parties built on top of the Vert.x framework.1097β
160π΄
Google Keyczar) - Easy to use, yet safe encryption framework with key versioning.13434β
1230π΄
Google Tink) - A small crypto library that provides a safe, simple, agile and fast way to accomplish some common crypto tasks.?β
?π΄
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 algorithm.
19120β
6061π΄
Keycloak) - Open Source Identity and Access Management For Modern Applications and Services.2614β
230π΄
keywhiz) - A system for distributing and managing secrets.2362β
672π΄
pac4j) - Security engine.318β
23π΄
Password4j) - A Java user-friendly cryptographic library for hashing and checking passwords with different Key derivation functions (KDFs) and Cryptographic hash functions (CHFs).- Project Kalium - Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium.
425β
199π΄
scrypt) - Pure Java implementation of the scrypt key derivation function and a JNI interface to the C implementations, including the SSE2 optimized version.44β
3π΄
securitybuilder) - Fluent Builder API for JCA/JSSE objects.
Julia
9β
13π΄
Crypto.jl) - Library that wraps OpenSSL, but also has pure Julia implementations for reference.40β
50π΄
MbedTLS.jl) - Wrapper around the mbed TLS and cryptography C libary.49β
34π΄
Nettle.jl) - Julia wrapper around nettle cryptographic hashing/ encryption library providing MD5, SHA1, SHA2 hashing and HMAC functionality, as well as AES encryption/decryption.46β
38π΄
SHA.jl) - Performant, 100% native-julia SHA1, SHA2-{224,256,384,512} implementation.
Lua
341β
74π΄
lua-lockbox) - Collection of cryptographic primitives written in pure Lua.94β
71π΄
LuaCrypto) - Lua bindings to OpenSSL.
OCaml
84β
28π΄
Digestif) - is a toolbox that implements various cryptographic primitives in C and OCaml.284β
67π΄
ocaml-tls) - TLS in pure OCaml.
Objective-C
1131β
198π΄
CocoaSecurity) - AES, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, Base64, Hex.?β
?π΄
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).651β
101π΄
ObjectivePGP) - ObjectivePGP is an implementation of OpenPGP protocol for iOS and macOS. OpenPGP is the most widely used email encryption standard.3349β
526π΄
RNCryptor) - CCCryptor (AES encryption) wrappers for iOS and Mac.
PHP
- π halite - Simple library for encryption using
libsodium
. 21β
5π΄
libsodium-laravel) - Laravel Package Abstraction usinglibsodium
.3699β
362π΄
PHP Encryption) - Library for encrypting data with a key or password in PHP.?β
?π΄
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).60β
13π΄
TCrypto) - TCrypto is a simple and flexible PHP 5.3+ in-memory key-value storage library.
Python
1096β
197π΄
bcrypt) - Modern password hashing for your software and your servers.512β
162π΄
charm) - Framework for rapidly prototyping cryptosystems.19β
3π΄
Crypto-Vinaigrette) - Quantum resistant asymmetric key generation tool for digital signatures.- π cryptography - Python library which exposes cryptographic recipes and primitives.
- π cryptopy - Pure python implementation of cryptographic algorithms and applications.
355β
64π΄
django-cryptography) - Easily encrypt data in Django.879β
350π΄
ecdsa) - An easy-to-use implementation of ECC with support for ECDSA and ECDH.1399β
145π΄
hashids) - Implementation of hashids in Python.- paramiko - Python implementation of the SSHv2 protocol, providing both client and server functionality.
243β
15π΄
Privy) - An easy, fast lib to correctly password-protect your data.2624β
468π΄
pycryptodome) - Self-contained Python package of low-level cryptographic primitives.126β
66π΄
PyElliptic) - Python OpenSSL wrapper. For modern cryptography with ECC, AES, HMAC, Blowfish.1019β
222π΄
pynacl) - Python binding to the Networking and Cryptography (NaCl) library.?β
?π΄
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).
R
32β
14π΄
rscrypt) - Package for a collection of scrypt cryptographic functions.
Ruby
1898β
292π΄
bcrypt-ruby) - Ruby binding for the OpenBSD bcrypt() password hashing algorithm, allowing you to easily store a secure hash of your users' passwords.979β
83π΄
RbNaCl) - Ruby binding to the Networking and Cryptography (NaCl) library.?β
?π΄
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).
Rust
4476β
301π΄
BLAKE3) - is official Rust and C implementations of the BLAKE3 cryptographic hash function.25β
13π΄
botan-rs) - Botan bindings for Rust.219β
29π΄
cryptoballot) - Cryptographically secure online voting.?β
?π΄
dalek cryptography) - Fast yet safe mid-level API for ECC, Bulletproofs, and more.1066β
49π΄
mundane) - is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant.4289β
552π΄
ockam) - is a Rust library for end-to-end encryption and mutual authentication.140β
19π΄
octavo) - Highly modular & configurable hash & crypto library.535β
29π΄
orion) - is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe code.417β
38π΄
proteus) - Axolotl protocol implementation, without header keys, in Rust.2211β
93π΄
rage) - is a simple, modern, and secure file encryption tool, using the age format.139β
23π΄
recrypt) - A pure-Rust library that implements cryptographic primitives for building a multi-hop Proxy Re-encryption scheme, known as Transform Encryption.3500β
647π΄
ring) - Safe, fast, small crypto using Rust & BoringSSL's cryptography primitives.1352β
352π΄
rust-crypto) - Mostly pure-Rust implementation of various cryptographic algorithms.1280β
708π΄
rust-openssl) - OpenSSL bindings for Rust.5233β
571π΄
rustls) - Rustls is a new, modern TLS library written in Rust.638β
177π΄
sodiumoxide) - Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium).123β
12π΄
suruga) - TLS 1.2 implementation in Rust.449β
171π΄
webpki) - Web PKI TLS X.509 certificate validation in Rust.
Scala
33β
4π΄
recrypt) - Transform encryption library for Scala.202β
52π΄
scrypto) - Cryptographic primitives for Scala.352β
56π΄
tsec) - A type-safe, functional, general purpose security and cryptography library.
Scheme
3β
0π΄
chicken-sodium) - Bindings to libsodium crypto library for Chicken Scheme.- π crypto-tools - Useful cryptographic primitives for Chicken Scheme.
- π guile-gnutls - GnuTLS bindings for GNU Guile.
55β
12π΄
guile-ssh) - libssh bindings for GNU Guile.- π industria - Motley assortment of cryptographic primitives, OpenSSH, DNS.
Swift
9942β
1631π΄
CryptoSwift) - Crypto related functions and helpers for Swift implemented in Swift programming language.476β
89π΄
IDZSwiftCommonCrypto) - Wrapper for Apple's π CommonCrypto library written in Swift.39β
20π΄
OpenSSL) - Swift OpenSSL for macOS and Linux.37β
6π΄
SweetHMAC) - Tiny and easy to use Swift class to encrypt strings using HMAC algorithms.505β
179π΄
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).
Resources
Blogs
- 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.
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-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.
- Cryptolab - is a set of cryptography related tools.
- CrypTool - Great variety of ciphers, encryption methods and analysis tools are introduced, often together with illustrated examples.
- π CyberChef - a web app for encryption, encoding, compression, and data analysis.
- 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.
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.
Contributing
Your contributions are always welcome! Please take a look at the contribution guidelines first.
License
awesome-cryptography
by @sobolevn
To the extent possible under law, the person who associated CC0 with
awesome-cryptography
has waived all copyright and related or neighboring
rights to awesome-cryptography
.
You should have received a copy of the CC0 legalcode along with this work. If not, see π https://creativecommons.org/publicdomain/zero/1.0/.
Source
5247β
686π΄
sobolevn/awesome-cryptography)