Foundations of Network and Computer Security J J ohn Black Lecture #7 Sep 13 th 2005 CSCI 6268/TLEN 5831, Fall 2005.

Slides:



Advertisements
Similar presentations
Hash Function. What are hash functions? Just a method of compressing strings – E.g., H : {0,1}*  {0,1} 160 – Input is called “message”, output is “digest”
Advertisements

Digital Signatures Good properties of hand-written signatures: 1. Signature is authentic. 2. Signature is unforgeable. 3. Signature is not reusable (it.
Session 5 Hash functions and digital signatures. Contents Hash functions – Definition – Requirements – Construction – Security – Applications 2/44.
Foundations of Network and Computer Security J J ohn Black Lecture #9 Sep 22 nd 2005 CSCI 6268/TLEN 5831, Fall 2005.
Foundations of Network and Computer Security J J ohn Black Lecture #7 Sep 14 th 2004 CSCI 6268/TLEN 5831, Fall 2004.
1 Chapter 5 Hashes and Message Digests Instructor: 孫宏民 Room: EECS 6402, Tel: , Fax :
Foundations of Network and Computer Security J J ohn Black Lecture #10 Sep 18 th 2009 CSCI 6268/TLEN 5550, Fall 2009.
Hash functions a hash function produces a fingerprint of some file/message/data h = H(M)  condenses a variable-length message M  to a fixed-sized fingerprint.
Foundations of Network and Computer Security J J ohn Black Lecture #10 Sep 19 th 2007 CSCI 6268/TLEN 5831, Fall 2007.
CMSC 414 Computer and Network Security Lecture 5 Jonathan Katz.
Foundations of Network and Computer Security J J ohn Black Lecture #4 Sep 1 st 2005 CSCI 6268/TLEN 5831, Fall 2005.
Foundations of Network and Computer Security J J ohn Black Lecture #9 Sep 16 th 2009 CSCI 6268/TLEN 5550, Fall 2009.
Kemal AkkayaWireless & Network Security 1 Department of Computer Science Southern Illinois University Carbondale CS 591 – Wireless & Network Security Lecture.
Foundations of Network and Computer Security J J ohn Black Lecture #8 Sep 15 th 2005 CSCI 6268/TLEN 5831, Fall 2005.
Foundations of Network and Computer Security J J ohn Black Lecture #13 Sep 26 th 2007 CSCI 6268/TLEN 5831, Fall 2007.
Secure Hashing and DSS Sultan Almuhammadi ICS 454 Principles of Cryptography.
Foundations of Network and Computer Security J J ohn Black Lecture #5 Sep 7 th 2004 CSCI 6268/TLEN 5831, Fall 2004.
Foundations of Network and Computer Security J J ohn Black Lecture #7 Sep 11 th 2009 CSCI 6268/TLEN 5550, Fall 2009.
Foundations of Network and Computer Security J J ohn Black Lecture #4 Sep 2 nd 2004 CSCI 6268/TLEN 5831, Fall 2004.
Foundations of Network and Computer Security J J ohn Black Lecture #10 Sep 29 th 2005 CSCI 6268/TLEN 5831, Fall 2005.
Foundations of Network and Computer Security J J ohn Black Lecture #6 Sep 9 th 2004 CSCI 6268/TLEN 5831, Fall 2004.
Foundations of Network and Computer Security J J ohn Black Lecture #5 Sep 6 th 2005 CSCI 6268/TLEN 5831, Fall 2005.
Foundations of Network and Computer Security J J ohn Black Lecture #8 Sep 14 th 2007 CSCI 6268/TLEN 5831, Fall 2007.
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
Foundations of Network and Computer Security J J ohn Black Lecture #11 Sep 21 st 2007 CSCI 6268/TLEN 5831, Fall 2007.
Hash Functions Nathanael Paul Oct. 9, Hash Functions: Introduction Cryptographic hash functions –Input – any length –Output – fixed length –H(x)
Foundations of Network and Computer Security J J ohn Black Lecture #12 Sep 24 th 2007 CSCI 6268/TLEN 5831, Fall 2007.
Fall 2010/Lecture 311 CS 426 (Fall 2010) Public Key Encryption and Digital Signatures.
CS526Topic 5: Hash Functions and Message Authentication 1 Computer Security CS 526 Topic 5 Cryptography: Cryptographic Hash Functions And Message Authentication.
Cryptographic Hashing: Blockcipher-Based Constructions, Revisited Tom Shrimpton Portland State University.
Foundations of Network and Computer Security J J ohn Black Lecture #9 Sep 17 th 2007 CSCI 6268/TLEN 5831, Fall 2007.
Foundations of Network and Computer Security J J ohn Black Lecture #14 Oct 1 st 2007 CSCI 6268/TLEN 5831, Fall 2007.
Lecture 15 Lecture’s outline Public algorithms (usually) that are each other’s inverse.
Lecture slides prepared for “Computer Security: Principles and Practice”, 2/e, by William Stallings and Lawrie Brown, Chapter 21 “Public-Key Cryptography.
Message Authentication  message authentication is concerned with: protecting the integrity of a message protecting the integrity of a message validating.
8-1Network Security Chapter 8 roadmap 8.1 What is network security? 8.2 Principles of cryptography 8.3 Message integrity, authentication.
Foundations of Network and Computer Security J J ohn Black CSCI 6268/TLEN 5550, Spring 2015.
CS 4/585: Cryptography Tom Shrimpton FAB
CS526: Information Security Prof. Sam Wagstaff September 16, 2003 Cryptography Basics.
EE515/IS523 Think Like an Adversary Lecture 4 Crypto in a Nutshell Yongdae Kim.
Message Authentication Code July Message Authentication Problem  Message Authentication is concerned with:  protecting the integrity of a message.
Lecture 4.1: Hash Functions, and Message Authentication Codes CS 436/636/736 Spring 2015 Nitesh Saxena.
Chapter 21 Public-Key Cryptography and Message Authentication.
CSCI 172/283 Fall 2010 Hash Functions, HMACs, and Digital Signatures.
A Quick Tour of Cryptographic Primitives Anupam Datta CMU Fall A: Foundations of Security and Privacy.
CIT 380: Securing Computer SystemsSlide #1 CIT 380: Securing Computer Systems Modern Cryptography.
Cryptography and Network Security Chapter 12 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
Foundations of Network and Computer Security J J ohn Black CSCI 6268/TLEN 5550, Spring 2013.
Lecture 5.1: Message Authentication Codes, and Key Distribution
Hash Functions Ramki Thurimella. 2 What is a hash function? Also known as message digest or fingerprint Compression: A function that maps arbitrarily.
Lecture 4.1: Hash Functions, and Message Authentication Codes CS 436/636/736 Spring 2014 Nitesh Saxena.
Key Management Network Systems Security Mort Anvari.
CSCE 715: Network Systems Security Chin-Tser Huang University of South Carolina.
Foundations of Network and Computer Security J J ohn Black CSCI 6268/TLEN 5550, Spring 2014.
Data Integrity / Data Authentication. Definition Authentication (Signature) algorithm - A Verification algorithm - V Authentication key – k Verification.
@Yuan Xue 285: Network Security CS 285 Network Security Hash Algorithm Yuan Xue Fall 2012.
Foundations of Network and Computer Security
Cryptography Lecture 13.
ICS 454 Principles of Cryptography
Foundations of Network and Computer Security
Introduction to Symmetric-key and Public-key Cryptography
Foundations of Network and Computer Security
ICS 454 Principles of Cryptography
Lecture 4.1: Hash Functions, and Message Authentication Codes
Cryptography Lecture 14.
Cryptography Lecture 13.
Cryptography Lecture 13.
Presentation transcript:

Foundations of Network and Computer Security J J ohn Black Lecture #7 Sep 13 th 2005 CSCI 6268/TLEN 5831, Fall 2005

CBC MAC (again) Review: –A common method is the CBC MAC: CBC MAC is stateless (no nonce N is used) Proven security in the ACMA model provided messages are all of once fixed length Resistance to forgery quadratic in the aggregate length of adversarial queries plus any insecurity of AES Widely used: ANSI X9.19, FIPS 113, ISO AES K M1M1 tag M2M2 MmMm

Varying Message Lengths: XCBC There are several well-known ways to overcome this limitation of CBC MAC XCBC, is the most efficient one known, and is provably- secure (when the underlying block cipher is computationally indistinguishable from random) –Uses blockcipher key K1 and needs two additional n-bit keys K2 and K3 which are XORed in just before the last encipherment A proposed NIST standard (as “CMAC”) AES K1 M1M1 tag M2M2 MmMm K2 if n divides |M| K3 otherwise

UMAC: MACing Faster In many contexts, cryptography needs to be as fast as possible –High-end routers process > 1Gbps –High-end web servers process > 1000 requests/sec But AES (a very fast block cipher) is already more than 15 cycles-per-byte on a PPro –Block ciphers are relatively expensive; it’s possible to build faster MACs UMAC is roughly ten times as fast as current practice

UMAC follows the Wegman-Carter Paradigm Since AES is (relatively) slow, let’s avoid using it unless we have to –Wegman-Carter MACs provide a way to process M first with a non-cryptographic hash function to reduce its size, and then encrypt the result Message M hash function hash key encrypt encryption key hash(M) tag

The Ubiquitous HMAC The most widely-used MAC (IPSec, SSL, many VPNs) Doesn’t use a blockcipher or any universal hash family –Instead uses something called a “collision resistant hash function” H Sometimes called “cryptographic hash functions” Keyless object – more in a moment HMAC K (M) = H(K © opad || H(K © ipad || M)) opad is 0x36 repeated as needed ipad is 0x5C repeated as needed

Notes on HMAC Fast –Faster than CBC MAC or XCBC Because these crypto hash functions are fast Slow –Slower than UMAC and other universal-hash-family MACs Proven security –But these crypto hash functions have recently been attacked and may show further weaknesses soon

What are cryptographic hash functions? Output Message e.g., MD5,SHA-1 Hash Function A cryptographic hash function takes a message from {0,1} * and produces a fixed size output Output is called “hash” or “digest” or “fingerprint” There is no key The most well-known are MD5 and SHA-1 but there are other options MD5 outputs 128 bits SHA-1 outputs 160 bits % md5 Hello There ^D A82fadb196cba39eb884736dcca303a6 %

T  A << 5 + g t (B, C, D) + E + K t + W t SHA-1... M1M1 M2M2 MmMm for i = 1 to m do Wt ={Wt ={ t-th word of M i 0  t  15 ( W t-3 ©  W t-8 ©  W t-14 © W t-16 ) << 1 16  t  79 A  H 0 i-1 ; B  H 1 i-1 ; C  H 2 i-1 ; D  H 3 i-1 ; E  H 4 i-1 for t = 1 to 80 do E  D; D  C; C  B >> 2; B  A; A  T H 0 i  A  H 0 i-1 ; H 1 i  B + H 1 i-1 ; H 2 i  C+ H 2 i-1 ; H 3 i  D + H 3 i-1 ; H 4 i  E + H 4 i-1 end return H 0 m H 1 m H 2 m H 3 m H 4 m 512 bits 160 bits

Real-world applications Message authentication codes (HMAC) Digital signatures (hash-and-sign) File comparison (compare-by-hash, eg, RSYNC) Micropayment schemes Commitment protocols Timestamping Key exchange... Hash functions are pervasive

A cryptographic property BAD: H(M) = M mod 701 (quite informal) 1. Collision resistance given a hash function it is hard to find two colliding inputs H M {0,1} n H M’M’ Strings

More cryptographic properties 1. Collision resistance given a hash function it is hard to find two colliding inputs 3. Preimage resistance given a hash function and given an hash output it is hard to invert that output 2. Second-preimage given a hash function and resistance given a first input, it is hard to find a second input that collides with the first 

Merkle-Damgard construction IV M1M1 M2M2 M3M3 h1h1 h2h2 h 3 = H (M) n k Fixed initial value Chaining value Compression function fff k MD Theorem: if f is CR, then so is H

MiMi T  A << 5 + g t (B, C, D) + E + K t + W t... M1M1 M2M2 MmMm for i = 1 to m do Wt ={Wt ={ t-th word of M i 0  t  15 ( W t-3  W t-8  W t-14  W t-16 ) << 1 16  t  79 A  H 0 i-1 ; B  H 1 i-1 ; C  H 2 i-1 ; D  H 3 i-1 ; E  H 4 i-1 for t = 1 to 80 do E  D; D  C; C  B >> 2; B  A; A  T H 0 i  A  H 0 i-1 ; H 1 i  B + H 1 i-1 ; H 2 i  C+ H 2 i-1 ; H 3 i  D + H 3 i-1 ; H 4 i  E + H 4 i-1 end return H 0 m H 1 m H 2 m H 3 m H 4 m 512 bits 160 bits H 0..4 i bits

Hash Function Security Consider best-case scenario (random outputs) If a hash function output only 1 bit, how long would we expect to avoid collisions? –Expectation: 1 £ £ ½ + 3 £ ½ = 2.5 What about 2 bits? –Expectation: 1 £ £ ¼ + 3 £ ¾ ½ + 4 £ ¾ ½ ¾ + 5 £ ¾ ½ ¼ ¼ 3.22 This is too hard…

Birthday Paradox Need another method –Birthday paradox: if we have 23 people in a room, the probability is > 50% that two will share the same birthday Assumes uniformity of birthdays –Untrue, but this only increases chance of birthday match Ignores leap years (probably doesn’t matter much) –Try an experiment with the class…

Birthday Paradox (cont) Let’s do the math –Let n equal number of people in the class –Start with n = 1 and count upward Let NBM be the event that there are No-Birthday-Matches For n=1, Pr[NBM] = 1 For n=2, Pr[NBM] = 1 £ 364/365 ¼.997 For n=3, Pr[NBM] = 1 £ 364/365 £ 363/365 ¼.991 … For n=22, Pr[NBM] = 1 £ … £ 344/365 ¼.524 For n=23, Pr[NBM] = 1 £ … £ 343/365 ¼.493 –Since the probability of a match is 1 – Pr[NBM] we see that n=23 is the smallest number where the probability exceeds 50%

Occupancy Problems What does this have to do with hashing? –Suppose each hash output is uniform and random on {0,1} n –Then it’s as if we’re throwing a ball into one of 2 n bins at random and asking when a bin contains at least 2 balls This is a well-studied area in probability theory called “occupancy problems” –It’s well-known that the probability of a collision occurs around the square-root of the number of bins If we have 2 n bins, the square-root is 2 n/2

Birthday Bounds This means that even a perfect n-bit hash function will start to exhibit collisions when the number of inputs nears 2 n/2 –This is known as the “birthday bound” –It’s impossible to do better, but quite easy to do worse It is therefore hoped that it takes  (2 64 ) work to find collisions in MD5 and  (2 80 ) work to find collisions in SHA-1

The Birthday Bound 1.0 Probability n2n Number of Hash Inputs 2 n/2

Latest News At CRYPTO 2004 (August) –Collisions found in HAVAL, RIPEMD, MD4, MD5, and SHA-0 (2 40 operations) Wang, Feng, Lai, Yu Only Lai is well-known –HAVAL was known to be bad –Dobbertin found collisions in MD4 years ago –MD5 news is big! CU team has lowered time-to-collision to 3 mins (July 2005) –SHA-0 isn’t used anymore (but see next slide)

Collisions in SHA-0 T  A << 5 + g t (B, C, D) + E + K t + W t Wt ={Wt ={ t-th word of M i 0  t  15 ( W t-3  W t-8  W t-14  W t-16 ) << 1 16  t  79 A  H 0 i-1 ; B  H 1 i-1 ; C  H 2 i-1 ; D  H 3 i-1 ; E  H 4 i-1 for t = 1 to 80 do E  D; D  C; C  B >> 2; B  A; A  T H 0 i  H 0 i-1 ; H 1 i  A + H 1 i-1 ; H 2 i  C+ H 2 i-1 ; H 3 i  D + H 3 i-1 ; H 4 i  E + H 4 i-1 end H 0..4 i not in SHA-0 M1,M1, M1’M1’ Collision!

What Does this Mean? Who knows –Methods are not yet understood –Will undoubtedly be extended to more attacks –Maybe nothing much more will happen –But maybe everything will come tumbling down?! But we have OTHER ways to build hash functions

A Provably-Secure Blockcipher-Based Compression Function E MiMi h i-1 hihi n bits

The Big (Partial) Picture Primitives Block Ciphers Hash Functions Hard Problems Stream Ciphers First-Level Protocols Symmetric Encryption Digital Signatures MAC Schemes Asymmetric Encryption Second-Level Protocols SSH, SSL/TLS, IPSec Electronic Cash, Electronic Voting (Can do proofs) (No one knows how to prove security; make assumptions)

Symmetric vs. Asymmetric Thus far we have been in the symmetric key model –We have assumed that Alice and Bob share some random secret string –In practice, this is a big limitation Bootstrap problem Forces Alice and Bob to meet in person or use some mechanism outside our protocol Not practical when you want to buy books at Amazon We need the Asymmetric Key model!

Asymmetric Cryptography In this model, we no longer require an initial shared key –First envisioned by Diffie in the late 70’s –Some thought it was impossible –MI6 purportedly already knew a method –Diffie-Hellman key exchange was first public system Later turned into El Gamal public-key system –RSA system announced shortly thereafter

But first, a little math… A group is a nonempty set G along with an operation # : G £ G ! G such that for all a, b, c 2 G –(a # b) # c = a # (b # c) (associativity) – 9 e 2 G such that e # a = a # e = a (identity) – 9 a -1 2 G such that a # a -1 = e (inverses) If 8 a,b 2 G, a # b = b # a we say the group is “commutative” or “abelian” –All groups in this course will be abelian

Notation We’ll get tired of writing the # sign and just use juxtaposition instead –In other words, a # b will be written ab –If some other symbol is conventional, we’ll use it instead (examples to follow) We’ll use power-notation in the usual way –a b means aaaa  a repeated b times –a -b means a -1 a -1 a -1  a -1 repeated b times –Here a 2 G, b 2 Z Instead of e we’ll use a more conventional identity name like 0 or 1 Often we write G to mean the group (along with its operation) and the associated set of elements interchangeably

Examples of Groups Z (the integers) under + ? Q, R, C, under + ? N under + ? Q under £ ? Z under £ ? 2 £ 2 matrices with real entries under £ ? Invertible 2 £ 2 matrices with real entries under £ ? Note all these groups are infinite –Meaning there are an infinite number of elements in them Can we have finite groups?

Finite Groups Simplest example is G = {0} under + –Called the “trivial group” Almost as simple is G = {0, 1} under addition mod 2 Let’s generalize –Z m is the group of integers modulo m –Z m = {0, 1, …, m-1} –Operation is addition modulo m –Identity is 0 –Inverse of any a 2 Z m is m-a –Also abelian

The Group Z m An example –Let m = 6 –Z 6 = {0,1,2,3,4,5} –2+5 = 1 –3+5+1 = = 3 –Inverse of 2 is = 0 We can always pair an element with its inverse a : a -1 : Inverses are always unique An element can be its own inverse –Above, 0 and 0, 3 and 3

Another Finite Group Let G = {0,1} n and operation is © –A group? –What is the identity? –What is the inverse of a 2 G? We can put some familiar concepts into group-theoretic notation: –Caesar cipher was just P + K = C in Z 26 –One-time pad was just P © K = C in the group just mentioned above

Multiplicative Groups Is {0, 1, …, m-1} a group under multiplication mod m? –No, 0 has no inverse Ok, toss out 0; is {1, …, m-1} a group under multiplication mod m? –Hmm, try some examples… m = 2, so G = {1} X m = 3, so G = {1,2} X m = 4, so G = {1,2,3} oops! m = 5, so G = {1,2,3,4} X

Multiplicative Groups (cont) What was the problem? –2,3,5 all prime –4 is composite (meaning “not prime”) Theorem: G = {1, 2, …, m-1} is a group under multiplication mod m iff m is prime Proof: Ã : suppose m is composite, then m = ab where a,b 2 G and a, b  1. Then ab = m = 0 and G is not closed ! : follows from a more general theorem we state in a moment

The Group Z m * a,b 2 N are relatively prime iff gcd(a,b) = 1 –Often we’ll write (a,b) instead of gcd(a,b) Theorem: G = {a : 1 · a · m-1, (a,m) = 1} and operation is multiplication mod m yields a group –We name this group Z m * –We won’t prove this (though not too hard) –If m is prime, we recover our first theorem

Examples of Z m * Let m = 15 –What elements are in Z 15 * ? {1,2,4,7,8,11,13,14} –What is 2 -1 in Z 15 * ? First you should check that 2 2 Z 15 * It is since (2,15) = 1 –Trial and error: 1, 2, 4, 7, 8 X –There is a more efficient way to do this called “Euclid’s Extended Algorithm” Trust me

Euler’s Phi Function Definition: The number of elements of a group G is called the order of G and is written |G| –For infinite groups we say |G| = 1 –All groups we deal with in cryptography are finite Definition: The number of integers i < m such that (i,m) = 1 is denoted  (m) and is called the “Euler Phi Function” –Note that |Z m * | =  (m) –This follows immediately from the definition of  ()

Evaluating the Phi Function What is  (p) if p is prime? –p-1 What is  (pq) if p and q are distinct primes? –If p, q distinct primes,  (pq) =  (p)  (q) –Not true if p=q –We won’t prove this, though it’s not hard

Examples What is  (3)? –|Z 3 * | = |{1,2}| = 2 What is  (5)? What is  (15)? –  (15) =  (3)  (5) = 2 £ 4 = 8 –Recall, Z 15 * = {1,2,4,7,8,11,13,14}