370 likes | 524 Views
Outline. Brief review Mainstream crypto-algorithms Symmetric encryption algorithms DES Asymmetric encryption algorithms RSA Merkle-Hellman Other crypto-related techniques Digital signature Digital certificate. Acknowledgements. Charles Pfleedger E. Spafford William A. Stein FOLDOC
E N D
Outline • Brief review • Mainstream crypto-algorithms • Symmetric encryption algorithms • DES • Asymmetric encryption algorithms • RSA • Merkle-Hellman • Other crypto-related techniques • Digital signature • Digital certificate CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Acknowledgements • Charles Pfleedger • E. Spafford • William A. Stein • FOLDOC • Sunit Chauhan • Jim Xu, et al. • Shawn Hillis CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Brief Review • Basic Concepts • Encryption • Crypto-system • Symmetric / asymmetric encryption • Cryptographer / crypto-analyst • Crypto-analysis • Breakability CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Brief Review – cont’d • Stream ciphers • Substitution-based ciphers • Mono-alphabetic ciphers: Caesar cipher • Poly-alphabetic ciphers: multiple alphabets • Strengths • Simple • Fast • Low error propagation rate • Weaknesses • Sustainable to frequency-based attacks • Sustainable to pattern-based attacks CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Brief Review – cont’d • Block ciphers • Transposition • Columnar transposition • Double transposition • Fractionated transposition • Strengths • Good diffusion, immune to pattern-based attacks • Weaknesses • Slow • Error propagation rate CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Secure Encryption Systems • Weaknesses of stream and block ciphers • Can be manually broken, although tedious • We will introduce • some “hard” encryption algorithms • Review 3 key, important encryption algs • DES, RSA, M-H • Look at cryptography related techniques CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Sym vs Asym Encryption Algorithms • Symmetric encryption algorithm • Encryption key == decryption key • DES • Asymmetric algorithms • Encryption key != decryption key • Basis of public-key encryption algorithms • RSA, M-H, … CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Data Encryption Standard (DES) • Based on Shannon’s theory of information secrecy • Confusion: info is changed so that output bits have no obvious relation to input bits • Diffusion: spread the effect of one plaintext bits to other cipher-text bits. • History of DES • Developed by US govt for general public use (by National Institute of Standards and Technologies) • Milestones: 1972(CFP) - 1975(IBM) – 1976(NIST) – 2001(AES) • Cracked in 1999 • 56-bit key, Cracked in 22 hours 15 min (1999) • Extensions of DES • Triple-DES, length of key extends to 56*3 • AES, 128, 192, or 256-bit key (2001) CSE870: Advanced Software Engineering: Cheng (Sp 2003)
DES – cont’d • Overview of DES • Repeats 16 cycles of • substitution, for confusion • transposition, for diffusion • Splits data block into 2 pieces: • Scrambles each half independently • Combines key with one half • (key is transformed during each cycle) • Swap 2 halves • Repeat 16 times. CSE870: Advanced Software Engineering: Cheng (Sp 2003)
left right DES – cont’d • Overview of DES – cont’d substitution transposition 16x function F initial phase Plaintext(64bits) inverse initial phase Cipher-text [Shawn Hillis] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
DES – cont’d [NPS.Navy] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Right Half Left Half New Right Half Permuted Key + + Key shifted One Cycle in DES Permuted Data New Left Half (Old Right Half) [Pfleeger97] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
DES – cont’d • Evaluation • Strengths include • fast • simple • standard • Weaknesses include • weak keys, length of key is only 56bit • number of iterations, only 16 • NSA involvement, trapdoor? CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Public Key Systems (PKS) • Traditional key system (symmetric enc system): • Need a key for every pair of users • N*(N-1)/2 keys, grows exponentially with users • Each user has to keep track of many keys • Public key systems (asymmetric enc system) • Each user only has 2 keys: public and private key • M=D(kPRIV,E(kPUB,M)) • Solid mathematical basis: one way functions: • E: M x Ke -> C and D=E-1: C x Kd -> M • Easy for Kd-holders to compute D, while difficult for others • May publish the public key freely • others can ally encrypt mesgs for A with A’s public key CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Some “Hard” theories • Computational complexity • Is number of steps or arithmetic operations required to solve a computational problem • Polynomial time • NP, Non-deterministic polynomial time • NP-hard • NP-complete • Satisfaction problem • Hamilton’s problem • Cryptographers try to • find encryption algorithms that would require NP-complete algorithms to decrypt CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Some “Hard” theories – cont’d • Basic number theory: • Prime factorization • Primes • 1|p, p|p, no other factors • Euclid’s algorithm • The unsolved prime factorization problem problem • Is there an algorithm which can factor any k-digit number n so quickly that it’s running time is bound by a polynomial function of k • Modular Arithmetic • a = b mod N iff N|(a-b) • Inverses [William A. Stein] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Example PKS • Rivest-Shamir-Adelman (RSA): • Based on number theory • Suspected to be NP-complete, not proven • Merkle-Hellman: • Based on knapsack problem • Proven to be NP-complete CSE870: Advanced Software Engineering: Cheng (Sp 2003)
RSA • The most widely used enc and auth algorithm • In IE, Netscape, Notes, SSH Secure Shell, Quicken, etc. • Proposed in 1977 by • Ronald L. Rivest, MIT, now in MIT • Adi Shamir, MIT, now in Weizmann Institute • Leonard Adleman, MIT, now in USC • Now owned by RSA Security CSE870: Advanced Software Engineering: Cheng (Sp 2003)
RSA – cont’d • Based on prime factorization problem • How RSA works • Create public/private keys • Pick large prime numbers p and q, let n=p*q • Let • all the numbers that is co-prime with n form a group, and the size of that group is (p-1)(q-1) • Select e, s.t. • Solve equation, get d, • Public key is (n,e), private key is (n,d) [William A. Stein] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
RSA – cont’d • How RSA works – cont’d • Encrypt/decrypt messages • Encode a phrase into a number • state = 19 + 20*27 + 1*272 + 20*273 + 5*274 • E(x) = xe (mod n) • D(x) = xd (mod n) • Preposition: n,d,e are integers, n is square-free, for each p|n,p-1|de-1, then, for all a, ade = a mod n • D(E(m)) = (me mod n)d mod n = med mod n = m mod n = m [William A. Stein] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
RSA – cont’d • Example • Let p=17, q=19, n = 323 • Let e = 95 • Solve 95*x=1 mod 288, d=191 • E(m) = m95 mod n • D(c) = c191 mod n • Suppose we have string “x”, which is 24 • E(“x”) = E(24) = 2495 mod 323 = 294 • D(294) = 294191 mod 323 = 24 = “x” [William A. Stein] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
RSA – cont’d • Why is it hard to break RSA? • Keep secret, if you wanna get d, you have to factorized n into p and q • RSA challenge • http://www.rsasecurity.com/rsalabs/challenges/factoring/numbers.html • 8 challenges • Problem: 576 – 2048 digits • Prizes: 10k to 200k dollars [William A. Stein] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
RSA – cont’d • Evaluation • Strengths • Algorithm is simple and easy to implement • Supported by RSA Security • Weaknesses • Problem not yet proved to be NP-Complete • Slower than DES CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Merkle-Hellman • Knapsack problem: • Set of positive integers • Target sum • Find subset of integers that equal the target • Proven to be NP-complete. • Encode binary mesg as soln to knapsack problem • Plaintext: 0’s and 1’s • By adding terms corresponding to 1s in plaintext, we can reduce cipher-text to target sum CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Merkle-Hellman – cont’d • Super-increasing sequence: • Each integer is greater than sum of all preceding integers • ak > Sj=1k-1aj • Solution of super-increasing knapsack (e.g., simple knapsack) is easy to find, and unique • Convert simple knapsack into Hard knapsack • Pick super-increasing sequence S of m integers • S =[s1, s2,.., sm] • Choose multiplierwand modulusn, n > Sj=1m-1si • Choose n to be prime • Replace everysjin simple knapsack with term: • hi= w* si mod n • Hard knapsack: H =[h1, h2,.., hm] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Merkle-Hellman - cont’d • Merkle-Hellman is Public key cryptosystem • Each user has public key: • Set of integers of a knapsack problem • Each user has private key • Set of integers for corresponding superincreasing knapsack • Contribution: design of technique to convert super-increasing knapsack into a regular one. • Change numbers in non-obvious, reversible way. CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Merkle-Hellman - cont’d • Encryption alg starts with binary message • P = [p1, p2,.., pk] • Divide message into blocks of m bits, • P0 = [p1, p2,.., pm], P1 = [p1, p2,.., p2m], • Value of m is number of terms in simple or hard knapsack • Encipherment of message P is sequence of targets • Each target is sum of some of the terms of the hard knapsack H • Terms selected correspond to 1 bits in Pi, • Piserves as selection vector for elts of H • Each term of ciphertext isPi * H CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Merkle-Hellman - cont’d • Decryption: • Legitimate recipient knows simple knapsack and values of w and n • H = w * S mod n • C = H * P = w* S* P mod n • To decipher, multiply C by w-1 • w-1 * C = w-1 * H * P = w-1 * w * S * P = S * P mod n • Weaknesses: • How easy is it to determine w or n from H? CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Merkle-Hellman – cont’d • Example • S= [1,2,4,9]; H= [15,13,9,16], • w= 15, n= 17, m = 4; hi= w* si mod n • P = 0100101110100101 • Encode with H as follows: • P = 0100 1011 1010 0101 • [0,1,0,0] * [15,13,9,16] = 13 • [1,0,1,1] * [15,13,9,16] = 40 • [1,0,1,0] * [15,13,9,16] = 24 • [0,1,0,1] * [15,13,9,16] = 29 • Encrypted message as integers: 13,40,24,29, • Public knapsack H = [15,13,9,16] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Evaluation of PKS • Strengths • Harder to break • Easier to manage keys • Weaknesses • Slower • Dependent upon NP-computational theory CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Crypto-related Techniques • Digital signatures • Digital certificates CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Digital Signatures • Digital signature proves integrity of message • by signing the message using PK techniques • How digital signatures work? • The sender • sends M, S=E(hash(M), private) • Message digest functions • MD2, MD4, and MD5 from RSA Security • SHA and SHA-1 from US government • The receiver • compares E(S, public) with hash(M) • M is considered genuine if they match [Jim Xu, et al.] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Digital Signatures – cont’d • Assumption: • it is very rare that two different messages have the same digest CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Digital Certificates • Digital certificates are • frameworks for identification information, and bind identities with public keys • Digital certificates provide foundation for • identification • authentication • non-repudiation [Sunit Chauhan] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Digital Certificates – cont’d • How digital certificates work? • Let a third party, trusted by both sender and receiver, prove the binding of sender and its public key. • Need a hierarchy of trusted certificate authorities (CAs) • Everybody trust root CA • Root CA prove the trustworthiness of a hierarchy of other CAs CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Digital Certificates – cont’d • Example digital certificate • X509 v3 certificate format • Version • Certificate Serial Number • Signature Algorithm Identifier • Issuer Name • Validity Period • Subject Name • Subject Public Key Information • Optional Fields [Chauhan] CSE870: Advanced Software Engineering: Cheng (Sp 2003)
Summary • Symmetric-key encryption algorithms • DES • Public-key encryption algorithms • RSA, Merkel-Hellman • PKS based techniques • Digital signature • Digital certificate CSE870: Advanced Software Engineering: Cheng (Sp 2003)