Week 5 Flashcards
What is cryptography?
The study of how codes and ciphers can be used to protect the confidentiality of secret data.
What is a codebook?
Allows you to map from code to characters to decipher a message.
What are ciphers?
Algorithms that take as input a key and your message, and scramble the message using the key so that other parties that have access to the key can decipher it.
What is a modern day use of cryptography that is not for encrypting passwords?
It is used to create digital signatures with the prevention of forgery.
It’s also the basis for cryptocurrency where it prevents the double spending of currency.
What is Homomorphic Encryption?
It’s when you take some input and encrypt it, and you can send the cipher texts to a cloud provider like AWS and you can ask them to compute some function on the input (ML, matrix multiplication, etc.), and it will output the encrypted output.
It allows the cloud to handle computations without ever learning what the inputs are. The only thing it knows is which functions were used.
What is Verifiable Computation?
This is where we have a function f with input x which outputs y and confirms that y = f(x). This is for weak computers like a mobile device that can’t compute function f. You basically are using a cloud to do the computation, and it returns the proof to you. How do we know “y” was calculated correctly?
The only way to check is if you locally compute f(x) but we already said that’s too expensive to do. BUT, cryptography allows the cloud provider to not only give you y, but also a cryptographic proof that y = f(x). Verifying this proof is much more efficient than computing f(x) yourself, so this works.
What is Secure Multiparty Communication?
It lets two parties compute joint results without either knowing the other’s inputs.
What do we need for cryptography?
- Formal definitions of the property/guarantee
- Mathematically precise threat models
- Construction of a cryptosystem
- Mathematical proof showing correctness and security of construction
Generally, how does a cipher work?
Alice and Bob have a communication. They have a shared key for communicating their messages.
If Alice were to send a message to Bob over the internet saying “hey Bob, let’s meet for coffee”, someone could intercept it. So, encryption allows us to leverage this key that they share to encode a message.
How does an encryptopn function work?
It takes two arguments, the message, and a key to encrypt the message. It outputa ciphertext.
How does a decryption function work?
It takes two arguments as input, one is the ciphertext and one is the key with which to decrypt the ciphertext. The output is plaintext.
What is the Plaintext Space?
It is the set of all valid messages that can be created from the available characters within the length of the message.
What is the Ciphertext Space?
It is often times the same as the plaintext space, but it is the set of all possible messages that can be created from the character set in the provided length.
What is the Key Space?
The set of all possible keys.
What is the simplest cipher and how does it work?
The Shift Cipher is simplest. Assume we are working with the english alphabet, {a,…,z}. In this scenario, our key space is Z25 since each letter can assume an integer value of 0 to 25.
You first devise a mechanism for sampling a key from the key space. To do this, pick one randomly.
Then, to encrypt a message, shift each letter in the message by the value of the key k. For example, a = 0, so if the key is 2, then we move to 2 and c = 2, so a encrypts to c.
Decryption works by subtracting, i.e. doing the reverse.