|       Crypto: HW 12      |       Fall 2001      |       Michael Siff       |
For Monday, December 3
Authentication
Consider the following authentication technique: Alice and Bob agree on a secure cryptosystem (let's say one-time pad) and use a key K that only they know. Alice sends Bob a message encrypted with K. Bob decrypts the message using K. Since only Alice and Bob know K, only they could have decrypted the message so it should be authentic - they hope. Consider two versions of this scenario:
Hashing
Consider the following simple hash function: take the input sequence of bits, break them into blocks of the same size, then XOR all the blocks together, and the result is the hash code. For example, suppose our input (broken into byte-sized blocks) is:
01010011 01001111 01010011Taking the exclusive-or of these blocks means lining up the blocks, and summing each column mod 2: (In other words, a one will result if the column has an odd number of ones; a zero will result if the column has an even number of ones.)
01010011
01001111
xor 01010011
-------------
01001111 <- the resulting hash code for the message
In class, we discussed criteria that a hash function should satisfy in order to be useful for message authentication. Some of these criteria are phrased as the following questions concerning potential hash function h(x):
(a) Can h be applied to a block of data of any size?
(b) Does h produce a fixed-length output? (If so, how long is the output?)
(c) Given a message x, is h(x) relatively easy to compute even if x is quite large?
(d) One-way property. Suppose H is the hash code that results from applying h. How difficult is it to compute some x such that h(x) = H?
(e) Weak-collision resistance. Given a message x, and a hash code H that results from applying h (i.e., h(x) = H), how difficult is it to compute some other message y (that is not the same as x) such that h(x) = h(y)?
(ii) f2(x) = (x * x) mod 37
(iii)
f3(x) = x mod 340282366920938463463374607431768211456
(Note: 340282366920938463463374607431768211456 is 2 raised to the
128th power.)
| crypto home | assignments | labs | notes | tools | contact instructor |