tion. The CRC process result is usually attached as part of the packet's trailer, SO in this case, a new trailer would have to be calculated and attached instead. However, that was difficult. This marked the beginning of a new era in communications secu- rity-the era of protocol-sensitive encryption. The IPsec effort decided to implement this idea, taking security one layer higher and securing IP packets. Hashing The term hashing function in cryptography denotes a one-way mathematical procedure that takes an input bitstream of arbitrary length and produces a fixed-length output called the hash. Hashing func- tions are also known in the industry by several other names, such as message digest (MD), compres- sion or contraction function, cryptographic checksum, fingerprint, message integrity check (MIC), and manipulation detection code (MDC). The term one-way means that hashing functions cannot be inverted-in other words, given the hash output, the input bitstream that produced it cannot be found. Good hashing functions have several spectacular characteristics. First, their collision probability very low. In other words, given an input and its hash, it is extremely difficult and highly unlikely that another bitstream input that produces the same hash output will be found. Second, given a bit- stream input of arbitrary length and its corresponding hash, even a subtle change of only one bit at the input will produce a new hash by changing on average around half of the bits of the original hash. Third, hashing algorithms are supposed to be public knowledge and should not be kept secret. The use of hashes is an outstanding mechanism that can ensure the integrity of transmitted infor- mation. By calculating the hash of an underlying piece of information and by attaching the hash the transmitted information, the recipient is given an opportunity to verify the integrity of the transmission. This can be done locally by calculating the hash of the received data and by comparing the received hash with the locally calculated o