beautypg.com

Freescale Semiconductor MCF5480 User Manual

Page 609

background image

Overview

MCF548x Reference Manual, Rev. 3

Freescale Semiconductor

22-7

The MDEU also supports HMAC computations, as specified in RFC 2104.

With any hash algorithm, the larger message is mapped onto a smaller output space, therefore collisions

are potential, albeit not probable. The 160-bit hash value is a sufficiently large space such that collisions

are extremely rare. The security of the hash function is based on the difficulty of locating collisions. That

is, it is computationally infeasible to construct two distinct but similar messages that produce the same

hash output.
This block is useful in many applications including hashing messages to generate digital signatures or

computation of a shared secret. The digital signature is typically computed on a small input, however if

the data to be signed is large, it is inefficient to sign the entire data. Instead, the large input data is hashed

to a smaller value which is then signed. If the message is also sent to the verifying authority along with the

signature, the verifying authority can verify the signature by recovering the hash value from the signature

using the public key of the sender, hashing the message itself, and then comparing the computed hash value

with the recovered hash value. If they match, then the verifying authority is confident that the data was

signed by the owner of the private key that matches the public key, where the private key presumably is

only known by the sender. This provides a measure of authentication and non-repudiation.
A conceptual block diagram of the MDEU module is shown in

Figure 22-6

. Multiple input blocks are

written to the MDEU module, and at the end, the hash value is read as the 160-bit output for SHA-160,

256-bit output for SHA-256, or 128-bit output for MD5.

Figure 22-6. MDEU Hashing Process

...

SHA160

160-bit constant

512-bit

block 1

512-bit

block 2

512-bit

block n-1

512-bit

block n

160-bit

value

Plaintext blocks

Hash value

MD5

128-bit constant

128-bit

value

Hash value

Output
Register

SHA256

256-bit constant

256-bit

value

Hash value

This manual is related to the following products: