Computer security Lecture 7 - Cryptography as security tool
Transcription
Computer security Lecture 7 - Cryptography as security tool
Computer security Lecture 7 Cryptography as security tool “Cryptography” is a Greek word that means “hidden writing” Used to hide message from someone, and sometimes prevent them from creating a new message Key Alice Key Encrypt Decrypt Eve Bob “Cryptography” is a Greek word that means “hidden writing” Used to hide message from someone, and sometimes prevent them from creating a new message Key Alice Key Verify Create MAC Eve Bob Cryptography is today used in other settings too There are situations where participants don’t really trust each other, but a third party Customer Merchant Bank Cryptography is today used in other settings too There are situations where the authorities want access to the communication channel Alice Bob Law enforcement Cryptography I A security tool, not a general solution I Cryptography usually converts a communication security problem into a key management problem I So now you must take care of the key security problem, which becomes a problem of computer security Images of cryptographic tasks Hide information securely, opens with identical keys (symmetric key cryptography) Everyone can hide information, opens with private key (asymmetric key cryptography) Make something visible, but hinder changes (signatures) Enable simple checking of data (hash functions) Terminology I The plaintext is the information in its normal form I The ciphertext or cryptogram is the transformed plaintext I The secret parameter for the encryption (known only to the sender and intended recipients) is called the key I The key decides how the transformation is done Kerckhoff’s principle I A cryptosystem should be secure even if everything about the system, except the key, is public knowledge. Classical crypto example: Caesar cipher I Exchange every plaintext letter into the letter x positions further on in the alphabet I The key is the letter that A is transformed into A B C D E F G H I J K L M N O P Q R S T U V W X Y Z C D E F G H I J K L M N O P Q R S T U V W X Y Z A B Hello world Jgnnq yqtnf Classical crypto example: Caesar cipher I Exchange every plaintext letter into the letter x positions further on in the alphabet I The key is the letter that A is transformed into A B C D E F G H I J K L M N O P Q R S T U V W X Y Z C D E F G H I J K L M N O P Q R S T U V W X Y Z A B Hello world Jgnnq yqtnf Classical crypto example: Caesar cipher I Exchange every plaintext letter into the letter x positions further on in the alphabet I The key is the letter that A is transformed into A B C D E F G H I J K L M N O P Q R S T U V W X Y Z C D E F G H I J K L M N O P Q R S T U V W X Y Z A B Hello world Jgnnq yqtnf Classical crypto example: Caesar cipher I Exchange every plaintext letter into the letter x positions further on in the alphabet I The key is the letter that A is transformed into A B C D E F G H I J K L M N O P Q R S T U V W X Y Z C D E F G H I J K L M N O P Q R S T U V W X Y Z A B Hello world Jgnnq yqtnf Alternative description of Caesar cipher I Replace every plaintext letter with its (zero-offset) position in the alphabet (“A”=0, “B”=1, etc., up to the number of letters n) I Express the key as an integer k using the same system I If the plaintext as an integer is m, the cryptogram as an integer c = m + k modulo n I The cryptogram letter is then the letter corresponding to the number c I The plaintext “H” gives m = 7, and k = 2 results in c = 7 + 2 (mod 26), so cryptogram is “J” Breaking Caesar, example I I Cryptogram: Icnnkc qopkc fkxkuc guv kp rctvgu swcgtwo wpco kpeqnwpv Dgnikcg. . . Try each key, stop trying for each key when the plaintext becomes impossible A B C D E F G H I J I H G F E D C B A Z c b a z y x w v u t n l k j h g f e n l j f e k i g c b a u t o i h m g f n h i c a d i v i K Y s d d L X r c M N O P Q R S T U W V U T S R Q P O q p o n m l k j i b z y x u t z y u t w v r q o n j i c x w a v u b v w q o r w j w V N h s W X Y Z M L K J g f e d r p o r p o o m l g e d u s r s q p t r o m Breaking Caesar, example I I Cryptogram: Icnnkc qopkc fkxkuc guv kp rctvgu swcgtwo wpco kpeqnwpv Dgnikcg. . . Try each key, stop trying for each key when the plaintext becomes impossible A B C D E F G H I J K L M N O P Q R S I H G F E D C B A Z Y X W V U T S R Q c b a z y x w v u t s r q p o n m l k n l k j h g f e d c b z y x n l j f e d z y k i g c b w v Only remaining a u t possible key: o n C o i h c Plaintext:g fGallia estaomnis m divisa in n h partes tres, b quarum incoluntc Belgae, ...w i a o d r i w v j i w T U V P O N j i h u t s u t r q j i x w v u unam v q W X Y Z M L K J g f e d r p o r p o o m l g e d u s r s q p t r o m Simple substitution I Create a table of plaintext characters and their corresponding crypto characters I Crypto characters can be just ordinary letters, but also anything else I Each crypto character must occur only once in the table to enable unique decryption A B C D E F G H I J K L M N O P Q R S T U V W X Y Z G Z E J D Y I T Q A U M B W R F C X H N S L O K P V Breaking simple substitution I Every crypto letter will occur exactly as often as its plaintext counterpart occurs in plaintext. I Every combination of crypto letters (digrams, trigrams etc.) will occur as often as the corresponding plaintext combinations. I Count how often letters, bigrams and trigrams occur in the cryptogram, and try to identify the ones corresponding to common plaintext letters and common letter combinations. I Fill in so that remaining gaps form words. The letter distribution of English is uneven 1 26 A B C D E F G H I J K L M N O P Q R S T UV W XY Z I An even distribution would look like the above The letter distribution of English is uneven 1 26 A B C D E F G H I J K L M N O P Q R S T UV W XY Z I An even distribution would look like the above I But the single letter distribution of English is uneven The letter distribution of English is uneven 1 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö I An even distribution would look like the above I But the single letter distribution of Swedish is uneven Cryptanalysis The goal of cryptanalysis can be I reveal the key I decrypt (part of) cryptograms without the key I encrypt (part of) plaintexts without the key In order to break a cipher you could I Try all possible keys (brute force, exhaustive search) I Use plaintext alphabet statistics I Use both single letter statistics, and digram, trigram, and word statistics I Do calculations adjusted to the algorithm Algorithm strength I This is measured in the amount of work needed to break the cipher I The comparison is with brute force I For Caesar crypto, you need to check 26 keys, or just under 25 values I For simple substitution you need to check 26! keys (≈ 4 × 1026 ), or just over 288 values I But with letter statistics this drops quickly Key size I There are 31536000 seconds in a year ≈ 225 I If you can try one key every microsecond, you can find a 45 bit key in around one year (106 ≈ 220 ) I If you have 1000 such processors, you can find a 55 bit key in around one year I With 1000 processors that try one key every nanosecond, the expected time to find a 128 bit key is more than 1018 years Key length Table 7.4: Security levels (symmetric equivalent) Security (bits) 32 64 72 80 96 Protection Comment Real-time, individuals Very short-term, small org Short-term, medium org Medium-term, small org Very short-term, agencies Long-term, small org Only auth. tag size Not for confidentiality in new systems Legacy standard level 112 Medium-term protection 128 Long-term protection 256 ”Foreseeable future” Smallest general-purpose < 4 years protection (E.g., use of 2-key 3DES, < 240 plaintext/ciphertexts) 2-key 3DES restricted to 106 plaintext/ciphertexts, ≈ 10 years protection ≈ 20 years protection (E.g., 3-key 3DES) Good, generic application-indep. Recommendation, ≈ 30 years Good protection against quantum computers unless Shor’s algorithm applies. From “ECRYPT II Yearly Report on Algorithms and Keysizes (2011-2012)” Strength of algorithms I There is one perfectly secure algorithm: the One Time Pad, which needs a (random secret shared) key as long as the message I Modern ciphers are immune to simple attacks I Algorithm weakness is almost never a problem with approved algorithms today I Badly chosen keys, bad key management, and bad implementations are the current problems Algorithm types There are three basic algorithm types I Stream ciphers, very fast and suited for confidentiality, not data integrity I Block ciphers, can be symmetric key which are fast, and asymmetric that are slower, both suited for confidentiality and integrity (with some precautions) I One way functions, fast, only for data integrity The perfect stream cipher: the One-time-pad I Useful for sending secret data without preserved data integrity I Use a long random bitsequence as key I Add this to the plaintext to form the cryptogram ki mi + ci A practical stream cipher I Useful for sending secret data without preserved data integrity I Use a long pseudo-random bitsequence as key, generated from a short seed (key) k and initial state s0 I Add this to the plaintext to form the cryptogram Sequence generator State: si k ki mi + ci Proper randomness, and sharing it I Generate a pseudorandom “key stream” from a seed, a “real key” much shorter than the full “key stream” added to the message I Make the set of possible seeds, the real keys, so large that exhaustive search is impossible I Eliminate shortcuts to finding this key from the “key stream” Stream ciphers and message integrity I Imagine you are able to intercept the bank transfer that puts your salary into your bank account, and that it is encrypted with a stream cipher, and not authenticated I You know what your salary is, and in what position it is on the bank transfer: ... CR LF SPC SPC SPC SPC SPC SPC 3 0 0 0 0 CR LF ... ... 13 10 32 32 32 32 32 32 51 48 48 48 48 13 10 ... Stream ciphers and message integrity I Imagine you are able to intercept the bank transfer that puts your salary into your bank account, and that it is encrypted with a stream cipher, and not authenticated I You know what your salary is, and in what position it is on the bank transfer: ... CR LF SPC SPC SPC SPC SPC SPC 3 0 0 0 0 CR LF ... ... 13 10 32 32 32 32 32 32 51 48 48 48 48 13 10 ... I You intercept the ciphertext ... 74 112 4 19 235 156 99 113 125 19 1 192 191 25 212 ... Stream ciphers and message integrity I Imagine you are able to intercept the bank transfer that puts your salary into your bank account, and that it is encrypted with a stream cipher, and not authenticated I You know what your salary is, and in what position it is on the bank transfer: ... CR LF SPC SPC SPC SPC SPC SPC 3 0 0 0 0 CR LF ... ... 13 10 32 32 32 32 32 32 51 48 48 48 48 13 10 ... I You intercept the ciphertext ... 74 112 4 19 235 156 99 113 125 19 1 192 191 25 212 ... I The 19 in the ciphertext is at the same position as the first 48 in the cleartext Stream ciphers and message integrity I Imagine you are able to intercept the bank transfer that puts your salary into your bank account, and that it is encrypted with a stream cipher, and not authenticated I You know what your salary is, and in what position it is on the bank transfer: ... CR LF SPC SPC SPC SPC SPC SPC 3 3 0 0 0 CR LF ... ... 13 10 32 32 32 32 32 32 51 51 48 48 48 13 10 ... I You intercept the ciphertext ... 74 112 4 19 235 156 99 113 125 16 1 192 191 25 212 ... I Changing 19 to 16 in the ciphertext changes the first 48 to 51 in the received cleartext. Noone will notice :) Block ciphers I Messages are treated in blocks of characters with fixed block size I The key remains fixed for at least one session mi Block encryption Key ci Data Encryption Standard Input IP L0 R0 k1 Round 1 + f k2 Round 2 + f .. . (14 more rounds) L16 R16 IP−1 Output DES Substitution boxes Ri f 32 bits Expander 48 bits + ki 6 bits S1 S2 S3 S4 S5 4 bits Permutation 32 bits f (Ri , ki ) S6 S7 S8 DES key schedule Key 56 bits Key-permutation C0 D0 Rotation Rotation C1 D1 Each key bit is used in (close to) 14 of 16 rounds Choice k1 48 bits Rotation Rotation .. . .. . DES chip DES chip analysis I I I One problem in particular is RÖS Used key leaking out as electromagnetic radiation or as in Laboration 2, as variations in power consumption Key length Table 7.4: Security levels (symmetric equivalent) Security (bits) 32 64 72 80 96 Protection Comment Real-time, individuals Very short-term, small org Short-term, medium org Medium-term, small org Very short-term, agencies Long-term, small org Only auth. tag size Not for confidentiality in new systems Legacy standard level 112 Medium-term protection 128 Long-term protection 256 ”Foreseeable future” Smallest general-purpose < 4 years protection (E.g., use of 2-key 3DES, < 240 plaintext/ciphertexts) 2-key 3DES restricted to 106 plaintext/ciphertexts, ≈ 10 years protection ≈ 20 years protection (E.g., 3-key 3DES) Good, generic application-indep. Recommendation, ≈ 30 years Good protection against quantum computers unless Shor’s algorithm applies. From “ECRYPT II Yearly Report on Algorithms and Keysizes (2011-2012)” Block ciphers I Messages are treated in blocks of characters with fixed block size I The key remains fixed for at least one session I Direct use (“Electronic Code Book”) makes repeated plaintext blocks produce repeated cipher blocks I Don’t use ECB mi Block encryption Key ci Block cipher in Cipher Block Chaining mode I Most common mode to preserve data integrity I One whole block at a time I Feedback of previous cipher block I Propagates transmission errors (one bit transmission error destroys one whole block plus one more bit) ci−1 c0 = IV mi + Block encryption Key ci Symmetric key cryptography In symmetric key systems, the encryption key is the same as the decryption key Key Alice Key Encrypt Decrypt Eve Bob Asymmetric key cryptography In asymmetric key systems, the encryption key and the decryption key are different Encryption Key Alice Decryption Key Encrypt Decrypt Eve Bob Public key cryptography The encryption key can be public, so that anyone can send secret messages to Bob Public Encryption Key Anyone Secret Decryption Key Encrypt Decrypt Eve Bob Public key cryptography Public Encryption Key Anyone Secret Decryption Key Encrypt Decrypt Bob Eve I Each user has a pair of keys, one public encryption key e, one secret decryption key d I It is computationally hard to calculate d from e I This is achieved by basing the algorithm on a difficult problem from number theory Public key example: RSA I Choose two very large primes p and q, and publish n = pq I Choose a public encryption key e (gcd(e, (p − 1)(q − 1)) = 1) I Calculate the secret decryption key d = e −1 mod (p − 1)(q − 1) I Encrypt with c = me mod n I Decrypt with c d = med = m1 = m mod n e, n Anyone d, n m Encrypt c Decrypt Eve m Bob Key length From “ECRYPT II Yearly Report on Algorithms and Keysizes (2009-2010)” MACs and digital signatures I A Message Authentication Code is a “seal of autenticity” created in a symmetric key system I If the same MAC can be created at the verifier, then the message hasn’t changed in transit I Everyone that can check the MAC can create the MAC Key Alice Key m m,MAC Create MAC Eve Verify m? Bob MACs and digital signatures Secret key Alice Public key m Sign m, s Verify m? Anyone Eve I A Digital Signature is a “seal of autenticity” created in an asymmetric key system I If the Digital Signature can be verified at the verifier, then the message hasn’t changed in transit I Here, only Alice can sign MACs and digital signatures e, n d, n Alice m Sign m, s Verify m? Anyone Eve I In RSA, the secret “decryption” key now is the secret signing key, while the public “encryption” key now is the public verification key I The same pair e, d should not be used both for confidentiality and integrity One-way hash functions I Large messages take time to MAC or sign I A hash function creates an output that is much smaller than the message (or file) I For any hash function, it should be easy to calculate h(x) from x I Then, it is easy to create MACs or digital signatures for h(x) I A one-way function is one where it is easy to calculate y = f (x), but computationally hard to calculate x = f −1 (y ) One-way hash functions I A one-way function is one where it is easy to calculate y = f (x), but computationally hard to calculate x = f −1 (y ) I But a hash function has output much shorter than the input I There must be messages for which the output collides (so f −1 doesn’t exist) I “Collision resistant” does not mean that no two messages get the same hash value, it means it is hard to find two such messages Three kinds of hash functions I For a one-way hash function, it is hard to find a preimage: to calculate x 0 from h(x) so that h(x 0 ) = h(x) I For a weakly collision-resistant hash function, it is hard to find a second preimage: to calculate x 0 from x so that h(x 0 ) = h(x) I For a strongly collision-resistant hash function, it is hard to find a collision: to find x and x 0 (x 0 6= x) such that h(x 0 ) = h(x) Example: RSA digital signatures e, n d, n Alice m Sign m, s Verify m? Anyone Eve I Set up for RSA and choose a collision-resistant hash function I Sign using s = (h(m))d mod n I Verify by checking that h(m) equals s e mod n Standard algorithms? I ISO does not standardize algorithms I NIST (National Institute for Standards and Technology) does register standards for federal use in the US I NIST standards and other well tested algorithms are used as some kinds of de facto standards I Examples are DES, AES and the SHA family De facto standard algorithms I Stream ciphers: The A family in GSM and E family in Bluetooth I Symmetric block ciphers: DES (56 bits), AES (128-256 bits), Blowfish, . . . I Asymmetric ciphers: RSA (any key size) and Elliptic Curve Cryptography (ECC, any key size), . . . I Cryptographic hashes: MD5 (128 bit hashes, weak), SHA-1 (160 bit hashes, deprecated), SHA-2 (224-512 bit hashes), SHA-3 (224-512 bit hashes, ?), . . . Key length Table 7.4: Security levels (symmetric equivalent) Security (bits) 32 64 72 80 96 Protection Comment Real-time, individuals Very short-term, small org Short-term, medium org Medium-term, small org Very short-term, agencies Long-term, small org Only auth. tag size Not for confidentiality in new systems Legacy standard level 112 Medium-term protection 128 Long-term protection 256 ”Foreseeable future” Smallest general-purpose < 4 years protection (E.g., use of 2-key 3DES, < 240 plaintext/ciphertexts) 2-key 3DES restricted to 106 plaintext/ciphertexts, ≈ 10 years protection ≈ 20 years protection (E.g., 3-key 3DES) Good, generic application-indep. Recommendation, ≈ 30 years Good protection against quantum computers unless Shor’s algorithm applies. From “ECRYPT II Yearly Report on Algorithms and Keysizes (2011-2012)” Key length From “ECRYPT II Yearly Report on Algorithms and Keysizes (2009-2010)” Basic questions for crypto users I Is the algorithm strong enough? I Does the algorithm really work against my perceived threat? I What about key management? I What standard algorithm should I use? I NEVER design a cryptosystem on your own I Watch out for snake oil