Cryptographic Concepts (part 1) Flashcards
Define cryptography.
Cryptography is the study of mathematical technique related to the aspects of information security.
What are the 3 main properties of information security?
What about a 4th?
- confidentiality - you want to keep things secret; don’t want others to know what you are emailing
- data integrity - don’t want someone to intercept your email and modify it before it arrives at the recipient, or you want the recipient to be able to tell that it was modified
- data origin authentication - want to be able to verify that the sender actually sent us the message that we received
- entity authentication - verify who you are talking to; just because someone logged in with your password doesn’t mean it was you
How does cryptography enforce the following properties of information security?
- Confidentiality
- Data Integrity
- Data Origin Authentication
- Entity Authentication
- Encrypt your data, hoping no one else but the receipient(s) can decrypt it.
- Use a cryptographic hash function, which generates a specific hash based on the data. If any bit of the data has changed, then the hash changes, so you know the data has altered.
- To know that a document came from the person you think it did, they have to sign it with a digital signature.
- To authenticate someone, you need cryptographic protocols to identify that someone is who they say they are. Not just that they know the account username and password.
Define non-repudiation.
A digital signature has the property of non-repudiation, which prevents an entity from denying previous commitments or actions.
(i.e. Once you’ve sent an email, you cannot deny that it was you who sent it. There is mathematical proof!)
Define symmetric key encryption.
Symmetric key encryption is when the secret key used by the sender and receiver is the same.
What are the two basic types of cryptography?
- Transposition (or permutation) ciphers, where you rearrange the letters in a seemingly random, but reversible manner, to create the ciphertext.
- Substitution ciphers, where you map the letters to other letters to create the ciphertext.
(Substitution is the predominant form of encryption. But just because permutation ciphers are weak doesn’t mean they’re useless. There will be times when we use a permutation cipher as a part of a larger, more complicated cipher.)
Define one-to-one.
A function is 1-1 if each element in the codomain Y is the image of at most one element in the domain X.
Definie onto.
A function is onto if each element in the codomain Y
is the image of at least one element in the domain X
Define bijection.
A function is a bijection if it is one-to-one and onto.
i.e. every element in the domain maps to a unique element in the codomain; so X and Y are the same size
Define a one-way function.
[MEMORIZE THE EXACT WORDING OF THIS DEFINITION]
A one-way function should be:
- Easy to compute the f(x) values for all values of x.
- Computationally infeasible to calculate the x values for all values of y.
[When you are writing an encryption function to generate ciphertext, you want your encryption function to be a one-way function.]
Define a trapdoor one-way function.
(So given the trapdoor information, for any y you can compute an x)
What is the unique factorization problem?
This is the problem of factoring the product of two large prime numbers.
(It turns out that this is one of the hardest problems in mathematics, which is why RSA is so difficult to crack. Many trapdoor-oneway functions used in cryptography are baseed off of this problem.)
Define a permutation.
Let S be a finite set of elements. A permutation p on S is a bijection from S to itself, (i.e. p: S –> S).
How do you compute the inverse of a permutation function?
Simply reverse the arrows in the function mapping and switch the columns.
(The inverse permutation function will also be a permutation function, since it will map S back to S.)
How do you programmatically compute the inverse permutation function array from a permutation array?