Cryptography Reference
In-Depth Information
3
Dedicated Conventional
Cryptographic Primitives
Content
Hash functions:
MD5, SHA, SHA-1
Generic attack against hash funtions:
birthday paradox
Analysis of hash functions:
dedicated attack against MD4
Message authentication codes:
CBC-MAC, HMAC
Pseudorandom generator:
congruential generator
In Chapter 2 we saw several conventional encryption algorithms. They were ded-
icated to
confidentiality
. In this chapter we study other conventional cryptographic
primitives that are dedicated to
integrity
,
authentication
, and
randomness
.
3.1
Cryptographic Hashing
3.1.1 Usage
In computer science, hash functions are used in order to arrange a database so one of
its element can be accessed very efficiently. An entry is usually a pair (
x
y
) where
x
is the entry label and
y
is data. It is stored at the location
h
(
x
) in the database. Later
on, if we want to have access to data related to the label
x
, we just look at the location
h
(
x
). Problems arise when we have two different labels
x
and
x
such that
h
(
x
)
,
h
(
x
).
This is called a
collision
. Efficient hash functions are functions whose domain space is
small and whose
expected
number of collisions is small in practical applications.
=
In cryptography, hash functions are used to protect the
integrity
of data: instead of
protecting the integrity of data of arbitrary length, we want to concentrate on protecting
the integrity of really small bitstrings. Thus, we need to hash the data onto a string of
fixed length which is called the
hashed value
,orthe
message digest
,orthe
fingerprint
,
or even (improperly) the
cyclical redundancy check
(CRC). CRCs are used for error
detection, but “cryptographic CRCs” are different: here the adversary is assumed to be
malicious and no longer a random noise process. Assuming we succeed in protecting
the integrity of the hashed value, we can detect if the data has been modified by hashing
it again and comparing the two hashed values. We can thus use an expensive integrity
channel in order to provide integrity over an insecure channel (see Fig. 3.1).
Search WWH ::
Custom Search