CSCE 465 Lecture 22
« previous | Thursday, April 11, 2013 | next »
RSA (cont'd)
Timing Attack (cont'd)
Attacker figures out key bit-by-bit by timing how long each step takes to calculate.
countermeasures:
- slow down computation (already very slow)
- add random delay (still already slow)
- blinding: multiply ciphertext by random number before performing decryption.
Blinding
- compute random number relatively prime to (i.e. )
- comptue
- compute
- compute
Other application in Decryption as a service: multiply ciphertext by random number before sending it to decryption service. Divide by when decrypted "plaintext" is received.
Performance penalty of less than 10% in decryption speed.
Diffie-Hellman Key Exchange
Used for negotiating shared secret key using only public communication. First development of public key cryptography, but not to be used for encryption.
Requirements (can be publicly known):
- Large prime (512 bits):
- Primitive root (generator) of :
- Each party secretly picks a random number and
- each party computes public key and and shares with each other
- Each party raises key to the (random number) power to get as the secret key.
This is secure since computing the discrete logarithm is computationally infeasible.
Limitations
- timing attacks (expensive exponentiation)
- Only useful for key negotiation
- Not used for anything else
Man-In-The-Middle Attack
Trudy impersonates Alice to Bob and chooses own S"a" for negotiations with Bob.
This attack works if all traffic between Alice and Bob is transferred through Trudy (Alice/Trudy have key , and Trudy/Bob</math> have different key )
Authentication Requires already-known secret
Phone-Book Mode: Authenticating D-H Messages
- Alice and Bob each choose a semi-permanent secret number
- publish and for each other to retrieve and generate keys at any time.
- Each key generation must use same , , and random number.
Picking and :
- Advantageous to change periodically.
- Choose large, difficult to factor
- Choose non quadratic residue
Public Key and Certification Authorities (CA)
- A CA is a trusted node that maintains public keys for all nodes (Each node maintains its own private key).
- They also make a lot of money.
- certificate = signed message vouching that particular name goes with particular key:
- [Alice's public key is 876234]carol
- [Carol's public key is 676554]ted 7amp; [Alice's public key is 876234]carol
- Knowing Certification Authority's key validates the alleged public key
PKI = Public Key Infrastructure: supports use of public key cryptography
CA is one of most important components of PKI