230 likes | 704 Views
Introduction to Cryptography. EE 5900 Fall 03. Outline. Introduction to Cryptography Secret Key Cryptography Public Key Cryptography Hash Algorithms. Cryptography: Definitions. Idea: process data into unintelligible (confidentiality) form, reversible , without data loss
E N D
Introduction to Cryptography EE 5900 Fall 03
Outline • Introduction to Cryptography • Secret Key Cryptography • Public Key Cryptography • Hash Algorithms
Cryptography: Definitions • Idea: process data into unintelligible (confidentiality) form, reversible, without data loss • Other security services: • Integrity checking: no tampering • Authentication: not an imposter • Plaintext encryption ciphertext decryption plaintext • Components: Algorithm + Secret Value (key) • Why need two? Which one to hide?
Secret Key vs. Secret Algorithm • Secret algorithm: additional hurdle • Hard to keep secret if used widely: • Reverse engineering, social engineering • Commercial: published • Wide review, trust • Military: avoid giving enemy good ideas
Computational Difficulty • Algorithm needs to be efficient. • Security of cryptographic algorithm? • Most schemes can be broken: depends on $$$. • e.g. Try all possible keys. • Longer key is often more secure • W/ the advance in computer tech., who benefits more?
Some Trivial Schemes • Caesar cipher: substitution cipher: • A D, B E • Captain Midnight Secret Decoder rings: • shift variable by n: IBM HAL, or : • (letter + offset) mod 26 • only 26 possible ways of secret coding. • Mono-alphabetic cipher: • generalization, arbitrary mapping of one letter to another • 26!, approximately 4 1026 possible pairings of letter • statistical analysis of letter frequencies
Cryptanalysis: Breaking an Encryption Scheme • Ciphertext only: • Exhaustive search until “recognizable plaintext” • Need enough ciphertext • Known plaintext: • Secret may be revealed (by spy, time), thus <ciphertext, plaintext> pair is obtained • Great for mono-alphabetic ciphers • Chosen plaintext: • Choose text, get encrypted • Useful if limited set of messages
Alice’s encryption key Bob’s decryption key encryption algorithm decryption algorithm ciphertext plaintext plaintext K K A B Types of cryptography • Secret-key crypto: sender, receiver keys identical(1 key) • public-key crypto: encryption key public, decryption key private (2 keys) • Hash functions: no key
K K A-B A-B encryption algorithm decryption algorithm ciphertext plaintext plaintext message, m m = K ( ) K (m) A-B A-B K (m) A-B Secret key cryptography Secret key crypto: Bob and Alice share same key K ->Symmetric(conventional) cryptography • Q: how do Bob and Alice agree on key value? • Ciphertext approximately the same length as plaintext • Example: Substitution codes, DES, IDEA • e.g., key is knowing substitution pattern in mono alphabetic substitution cipher A-B
Security Uses of Secret Key Cryptography • Message transmission (confidentiality): • Communicate over insecure channel • Secure storage: crypt • Strong authentication: prove knowledge of key without revealing it (Figure 2-1): • Send challenge r, verify the returned encrypted {r}: response • Fred can obtain chosen <plaintext, cihpertext> pairs • Challenge should chosen from a large pool • Integrity check: fixed-lengthchecksum for message via secret key cryptography • Send MAC/MIC along with the message
Symmetric-key cryptography • Advantages • high data throughput • relatively short key size • primitives to construct various cryptographic mechanisms • Disadvantages • the key must remain secret at both ends. • relatively short lifetime of the key
+ K (m) B - + m = K (K (m)) B B Public key cryptography + Bob’s public key K B - Bob’s private key K B encryption algorithm decryption algorithm plaintext message plaintext message, m ciphertext
Public Key Cryptography (cont’d) • Asymmetric cryptography • Invented/published in 1975 • Two keys: private (d), public (e) • Encryption: public key; Decryption: private key • Digital Signatures: Signing byprivate key; Verification by public key. i.e., encrypt hashh(m) with private key • Authorship (authentication) • Integrity: Similar to MAC/MIC? • Non-repudiation: can’t do with secret key cryptography • Much slower than secret key cryptography • Can do all jobs SKC does • Usually used together w/ secret key cryptography
Security Uses of Public Key Cryptography • Data transmission (confidentiality): • Alice encrypts ma using eB, Bob decrypts to ma using db. • Storage: encrypt w/ your public key • Authentication (p53): • No need to store secrets, only need publickeys. • Secret key cryptography: need to share secret key for every person to communicate with. • Digital Signatures (authentication/integrity/non-repudiation)
Public-key cryptography • Advantages • only the private key must be kept secret • relatively long life time of the key • more security services • relatively efficient digital signature mechanisms • Disadvantages • low data throughput • much larger key sizes
Summary of comparison • public-key cryptography • encryption, signatures (particularly, non-repudiation) and key management • secret-key cryptography • encryption and some data integrity applications • Key sizes • Private keys must be larger (e.g., 1024 bits for RSA) than secret keys (e.g., DES 64 or AES128 bits) • most attack on secret-key systems is an exhaustive key search • public-key systems are subject to “short-cut” attacks (e.g., RSA. factoring 512-bit: 30, 000 MIPS-years)
Hash Algorithms • Message digests, one-way transformations • Idea: input is mangled badly the process can not be reversed (compare w/ secret/public key crypt) • Properties: • Length of h(m) much shorter then length of m • Usually fixed lengths: 48 -128 bits • Easy to compute h(m) • Given h(m), no easy way to find m • Computationally infeasible to find m1, m2 s.t. h(m1) = h(m2) • Example: (m+c)2, take middle n digits
Hash Algorithms (Cont’d) • Password hashing • Doesn’t need to know password to verify it • Store h(p+s), s (salt), and compare it with the user-entered p • Salt makes dictionary attack less convenient • Message integrity ->MAC • Agree on a shared secretp ? • Compute “keyed hash”h(p|m) and send w/ m (p56) • Doesn’t require encryption algorithm, so the technology is exportable • Message Fingerprint: save storage (large data structure) • Downline Load Security: check programs’ hash before running • Digital Signature Efficiency • Much less processor-intensive than best-known public key algorithm