- Enigma
- How I became a cryptographer
- Sage for lattice-based cryptography
- So, you want to be a Cryptographer?
- Using Cryptographic Hardware to Secure Applications
- BitsDeep
- Crypto for Social Good - Class focused on the impact of crypto & privacy on marginalized groups
- Cryptologie
- Applied Cryptography
- The best books on the Enigma Machine
- Cracking codes with Python
- Crypto101
- Crypto: How the Code Rebels Beat the Government - Saving Privacy in the Digital Age
- Cryptography Engineering
- Great Cryptography Books | Simon Singh
- Serious Cryptography
- The Code Book
- The Codebreakers
- The Joy of Cryptography
- Understanding Cryptography - Paar and Pelzl (solutions online)
- A Crash Course in Everything Cryptographic
- A Guide to Post-Quantum Cryptography
- Cryptographic Attacks
- Illustrated X.509 Certificate
- Shor's Algorithm
- ADFGVX Cipher - it combines an adapted Polybius Square with Columnar Transposition
- Beaufort Cipher
- Dorabella Cipher
- List of Cipher types
- Pollux Cipher
- Sarah2 Cipher - Sarah2 is a cipher meant to be implemented by hand with only simple tools.
- Symbol ciphers list
- VIC Cipher
- Voynich manuscript
Notes
- Encryption without padding is insecure
- Encryption: SAEP, OAEP+
- Signature: PSS
- Diffie Hellman relies on:
- Discrete log problem
- Computational DH problem
- Decisional DH problem
- Use this setting for public key crypto (Cramer-Shoup) or signatures (Schnorr, DSA). Mostly used for DH though.
- Really for this setting you just need a group G = of prime order q when DDH problem is hard
- Can also get this structure from the group of points of an elliptic curve
- Advantages
- Much smaller parameters
- Much more efficient operations
- Picking parameters is easier and less error-prone
- Modern protocols use
- ECDH for key exchange
- ECDSA, RSA (legacy) for signatures
- Advantages
- Mod p, every invertible element has order dividing p-1 (with operation multiplication)
Notes
- pick primes p, q
- set N = pq
- set e = 65537
- compute d s.t. e * d ≡ 1 mod (p - 1)(q - 1)
- f: (Z/NZ)x -> (Z/NZ)x
- f: x -> xe mod N
- f-1: y -> yd mod N
- Factoring: given N, find p and q
- RSA problem: given N, e, y, find x s.t.xe = y
- KeyGen: pubkey = (N, e), seckey = d
- Sign M: σ = [Pack(M)]d mod N, Pack in (Z/NZ)x
- Verify: σe ≡ Pack(M) mod N
k <- AE keyspace
c = E Pack(k)e mod N
Decrypt: E Unpack(cd mod N) to get x
- A Graduate Course in Applied Cryptography - Full textbook online
- A Self-Study Course in Block-Cipher Cryptanalysis
- A Tutorial on Linear Differential Cryptanalysis
- Advanced Crypto Notes - Notes from NYU
- Advanced Topics in Cryptography - MIT OCW course
- Advanced Topics in Cryptography: Lattices - notes from MIT
- An Intensive Introduction to Cryptography
- An Introduction to Mathematical Cryptography
- Applied Cryptology
- Attacks on Implementations
- Cryptography Notes - Notes from UC Berkeley
- Cryptography II
- Dan Boneh - Crypto prof at Stanford, has a lot of good resources (including a textbook!)
- Ideal Class Groups (Mini Course)
- Intro to Cryptography Notes - Notes from NYU
- Intro to Cryptography Notes - Notes from Harvard
- Lattice Based Cryptography and Applications - Lattice crypto notes from BIU
- Lattices in Computer Science - Lattice based cryptography notes from NYU
- Lecture Notes on Cryptography - Cryptography Notes by Shafi Goldwasser
- Lessons learned and misconceptions regarding encryption and crypto
- Lightweight Introduction to Lattices
- Oxford Spring School on Lattice-Based Cryptography
- Practical Crypto - Repository for course materials and slides for Practical Cryptographic Systems, JHU CS 445/645.
- Proofs, Arguments and Zero Knowledge -
- Scribed Lecture Notes - Lecture notes from Grad Crypto at University of Maryland
- The Amazing King
- The Joy of Cryptography
- Are ChaCha and Salsa20 considered deterministic
-
All [symmetrical crypto] algorithms are deterministic, without achieving the same result every time they could not work
-
- Crypto books that cover modern cryptography?
- Does a one time pad expose itself as a one time pad?
- Entropy vs randomness
- How are repeated IVs used to crack the key?
- Is there any way to encrypt a file to only open after a certain date? : cryptography
- Nonce reuse vs IV reuse
- Why are finite fields so important in crypto?
- AntiMersenne - Predicting Python's Mersenne twister PRNG for 30c3 CTF, with Python calling Java
- Ciphey - Automatically decode encryptions without a key, decode encodings, and crack hashes
- cribdrag - an interactive crib dragging tool for cryptanalysis on ciphertext generated with reused or predictable stream cipher keys
- Crib Dragging Auto Cracker - The project is to crack crib dragging in an efficient way. It will crib drag 5,000 most common English vocabularies on the cipher text and collect all the words that are partially/entirely recognized as an English word.
- crypto_misc - Paper Implementation, Practice code, Cryptographic some others.
- cryptobin - crypto and puzzle tools
- CryptoGotchas - A collection of common (interesting) cryptographic mistakes and learning resources.
- Crypton - Library consisting of explanation and implementation of all the existing attacks on various Encryption Systems, Digital Signatures, Key Exchange, Authentication methods along with example challenges from CTFs
- Cryptool
- CryptoTools - a suite of cryptographic utilities for convenience that operate entirely on the client side. No calculations take place on the server, nor is any data generated or used here sent to the server.
- Cryptoprograms - Make and decrypt ciphers
- Decodify - It can detect and decode encoded strings, recursively.
- hashID - Identify the different types of hashes used to encrypt data and especially passwords.
- Mersenne Twister Predictor - Predict MT19937 PRNG, from preceding 624 generated numbers. There is a specialization for the "random" of Python standard library.
- Outguess
- RC4-40-brute-office - Guaranteed cracking of M$ Office files using RC4 40-bit encryption
- RC4 Python - A simple encrypt/decrypt Python script using RC4
- Replicated Random
- RSA CTF Tool - RSA attack tool (mainly for ctf) - retreive private key from weak public key and/or uncipher data
- rsa-stream - encrypt/decrypt rsa with streams
- Solve Crypto With Force
- XOR Analyze - Program for cryptanalyzing xor "encryption" with variable key length
- xortool - A tool to analyze multi-byte xor cipher