SIDH
Supersingular Isogeny Diffie-Hellman
SIKE
Supersingular Isogeny Key Encapsulation
Got through round 3 of the NIST PostQuantum process
Broken in 2021 by researchers using difficult elliptic curve theory.
SSL/TLS
Secure Socket Layer/Transport Layer Security
Secure Communication Example
Starting with a message in a chest
1. Lock the chest with padlock A
2. Send to B
3. Lock the chest with padlock B
4. Send to A
5. Unlock padlock A
6. Send to B
7. Unlock padlock B
And then B ends up with the message without anyone inbetween having been able to read it
Diffie-Hellman Algorithm
Represent data as intergers modulo a large prime P
1. A will rase x to a power a (x^a)
2. Send to B
3. B will raise to a power b (x^ab)
4. Send to A
5. Take ath root (x^b)
6. Send to B
7. Take bth root (x)
B now has the unencrypted message
If we could take logarithms the message could be unecrypted by a third party but for an appropriate P we can’t do that efficiently.
Secure Key Agreement
Everyone knows both large prime P and x
1. A and B pick their powers
2. Raise x to them
3. Exchange results
4. Raise results to their powers
Now both A and B have x^ab which they can use as a key for an efficient cipher such as AES
RSA Public/Private Key Communication
Man-in-the-middle
In Diffie–Hellman (and many others), our attacker E can pretend to be B to A, and A to B, so each thinks they have a secure channel to the other, whereas in fact they have a secure channel via E, who decrypts and re-encrypts the messages. This is why TLS requires signatures to prevent this.
Meet-in-the-middle
If ek (m) is implemented as ek1 (ek2 (m)), you might think we had to guess all combinations of (k1, k2). But under a Known Plaintext Attack (we know m and c, and want k), we compute (and store!) ek1 (m) for all possible k1, then start computing dk2 (c) and look for a match.
DES
2DES
3DES
AES
Hashes
An n-bit hash function reduces an arbitrary message to an n-bit
string: h(m) ∈ [0, 2n − 1].
Collision Resistance
it is hard to find two messages m1 != m2 with h(1) == h(m2)
Pre-image Resistance
given v is it hard to find m with h(m) = v
SHA-1
descendant of MD5, deprecated in 2010
SHA-2
comes in a variety of size, e.g. SHA224
varying strengths, still viable
SHA-3
current hashing algorithm recommendation
Password Hashing
want a slower hashing algorithm to make brute force and dictionary attacks harder
often slowed down by performing the hash 10000 times
Argon is a password specific hash
Cryptographically Secure Pseudo-Random Numbers
requirements
* next bit - given the first k bits of a random sequence there is no polynomial-time algorithm that can predict the (k+1)th bit with probability of success non-negligibly better than 50%
* state compromise - if part or all of its state has been revealed it hsould be impossible to reconstruct the stream of random numbers prior to the revelation
CSPRNGs
* ChaCha2.0 - Linux
* AES in counter mode
CSPRNG Warnings
require a random seed to start them off
see difference between /dev/random and /dev/urandom
Cloudflare Seeds
cloudflare uses physical randomness to generate the seeds
* main HQ - lava lamps
* london HQ - double pendulum
* singapore HQ - uranium radioactive decay
ECB
Electronic Codebook
each message block is encoded separately, c_i := e_k(m_i), this is open to frequency and pattern attacks