Public-Key Cryptography & RSA Flashcards

1
Q

Private (Symmetric) Key

A

One key
sent to all parties through secure channels
new key when party leaves
all parties equal (so they can forge messages and claim they came from a different party)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Public (Asymmetric) Key

A

Two keys
public to encrypt and verify digital signatures
private to decrypt and digitally sign
parties aren’t equal (encryptor can’t decrypt
verifier can’t create digital signature)
useful for encryption/decryption and/or key exchange and/or digital signature

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Relatively Prime

A

If a and b have a GCD of 1, they are relatively prime

doesn’t necessarily mean either are prime

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

GCD - Prime Factorization

A

One way to find GCD

find prime factorization of each number and check GCD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

GCD - Euclid’s Algorithm

A
Another way to find GCD
no factoring
find larger number modulo smaller one
find smaller one modulo result
find prev result modulo new result until you get 0 second to last result is GCD
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

RSA

A

Ron Rivest, Adi Shamir, Len Adleman
Plaintext/Ciphertext blocks are integers between 0 and n
Size of n usually 1024 bits (309 decimal places)
n = p * q (p and q must be secret, prime, and can’
t equal each other)
When generating keys, e is usually 65537, 3, or 17 (BUT smaller e=simple attack)
(Cheat Sheet)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

RSA - RSA Attacks - Factorization

A

d and m too hard and take too long to compute
n easiest to attack
if e, n, p, and q, known, can compute keys to encrypt/decrypt (d logically equivalent to e^-1 mod( p-1 * q-1 ) )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

RSA - RSA Attacks - Timing

A

Get exact time hardware takes to decrypt something (depends on how many bits are 1 in d or e) to get feel for which bits should be set to what

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

RSA - RSA Attacks - Timing - Blinding

A

Multiply C by random number (C * r^e mod n) after encryption, so during “decryption” attacker will time wrong number
Real decryption is Mb * r^-1 mod n

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

RSA - RSA Attacks - Timing - Random Delay

A

Add random delay to exponentiation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

RSA - RSA Attacks - Chosen Ciphertext

A

Replace real ciphertext with phony one and send to intended recipient
Get “message” from intended recipient and use it to derive the real message
Counter this with OAEP (pad M with psuedo-random bits)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

DH

A

Create and exchange secret shit (like session keys)
Work if and only if both parties can be authenticated
Works because session key is derived the same by both parties
Works because even if p, primitive root, and public values are known, you can’t get private values or session key
(Cheat Sheet)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Primitive Roots

A

Given p > 1, there exists a primitive root a, that {a^j mod p | j = 1, 2, …, p - 1} = {1, 2, …, p-1}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

DH - DH Attacks - Brute Force

A

Have to find discrete logarithm of one of the public keys (infeasible for large p)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

DH - DH Attacks - Man in the Middle

A

Take public values Ya and Yb as they are sent, and replace them with Y1 (to A) and Y2 (to B)
Derive Ka and Kb
When B sends message with session key Kb, Decrypt with Kb, read, then encrypt with Ka so A can decrypt with Ka
Works if no one authenticates the origin of the public keys

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

El Gamal

A

Similar to DH, up until public key generation (Cheat Sheet)