Security Principles and Cryptographic Primitives

Any complete security protocol will rely on a number of cryptographic primitives in order to guarantee all of the necessary security principles we discussed in class.

To recap, those principles are:

Relevant cryptographic primitives are:

Exercise: Last Friday, an intentional backdoor was discovered in liblzma leading to compromising ssh servers. The attack is explained in detail here. An attacker provides a payload - a ciphertext encrypted with a symmetric key. This ciphertext, when decrypted, returns a signature and a command to execute. This signature is derived by signing the command and the server's host key with the attacker's key.

Based on the description above, identify the cryptographic mechanisms and the security principles these mechanisms provide.

Diffie-Hellman Key Exchange:

Consider Diffie-Hellman Key Exchange. Both parties agree on some public parameters: a prime number p and a base g. Both parties choose some private keys. Let assume Alice picks a, and Bob picks b. The end goal is to establish a shared key without leaking it.

The next step is to send each other public keys. Exercise: What will be the public key and How do both parties get the shared key? Why is this hard for Trudy to decrypt the shared keys?

Exercise 1: What will be the public key and How do both parties get the shared key? Why is this hard for Trudy to decrypt the shared keys?

Exercise 2: Let's use p = 17, g = 10, a = 4, b = 3 to see Diffie-Hellman in action!