== Terms == ||big endian / little endian ||||<(>[http://www.cs.umass.edu/~verts/cs32/endian.html endian-ness] || ||compression function||||<(> see Csce877Ch11Notes || ||HMAC||||<(> A Message Authentication Code based on a cryptographic Hash function or HMAC for short. NOTE: MD5 and SHA-1 are cryptographic hash functions || ||MD4 ||||<(> Precursor to MD5 || ||MD5 ||||<(> Message Digest algorithm number 5. developed by Ron Rivest at MIT. Most widely used secure hash algorithm until a few years ago when brute force caught up to it - still widely used though!|| ||RIPEMD-160 ||||<(> Yet another message-digest algorithm developed as a response to some of the MD4/5 problems. Developed RACE Integrity Primitives Evaluation project in Europe.|| ||SHA-1,256,384,512|| The number 1 corresponds to a 160-bit message digest. Each of the other numbers correspond directly to the size of the message digest. SHA is a NIST standard secure hash algorithm that works on 512-bit blocks. || == Review Questions == '''12.1 What is the difference between little endian and big endian format?''' "Little Endian" means that the low-order byte of the number is stored in memory at the lowest address, and the high-order byte at the highest address. (The little end comes first.) For example, a 4 byte LongInt Byte3 Byte2 Byte1 Byte0 will be arranged in memory as follows: Base Address+0 Byte0 Base Address+1 Byte1 Base Address+2 Byte2 Base Address+3 Byte3 Intel processors (those used in PC's) use "Little Endian" byte order. "Big Endian" means that the high-order byte of the number is stored in memory at the lowest address, and the low-order byte at the highest address. (The big end comes first.) Our LongInt, would then be stored as: Base Address+0 Byte3 Base Address+1 Byte2 Base Address+2 Byte1 Base Address+3 Byte0 Motorola processors (those used in Mac's) use "Big Endian" byte order. '''12.2 What arithmetical and logical functions are used in MD5?''' Logical: and, or, not, xor Mathematical: +, *, mod Bit-Ops: Left circular shift '''12.3 What arithmetical and logical functions are used in SHA-1?''' Logical: and, or, not, xor Mathematical: +, mod Bit-Ops: Left circular shift '''12.4 Ditto for RIPEMD-160?''' Logical: and, or, not, xor Mathematical: +, mod Bit-Ops: left cirular shift, permutation. '''12.5 Why has there been an interest in developing a message authentication code derived from a cryptographic hash function as opposed to one derived from a symmetric cipher?''' 1. Cryptographic hash functions such as MD5 and SHA-1 generally execute faster in software than symmetric block ciphers such as DES 1. Library code for cryptographic hash functions is widely available. 1. There are no export restrictions from the U.S. or other countries for cryptographic hash functions, whereas symmetric block ciphers, even when used for MACs, are restricted. '''12.6 What changes in HMAC are required in order to replace one underlying hash function with another?''' Just unplug the current module that performs the hash function and plug in a different module.