Cryptographic Primitive
A cryptographic primitive is a basic building block (algorithm) of cryptography.
- e.g., a single hash function, symmetric cipher, or asymmetric cipher
- a primitive provides a security service:
- data integrity
- authentication
- digital signature
- non-repudiation
- a complete cryptographic system or product uses multiple cryptographic primitives within a cipher suite
- properties of different primitives, and of specific ciphers for each type, impose limitations on their use in different contexts and for different purposes
- Public key cryptography
- can authenticate a sender
- they control a private key that produces messages in a way that no one else can
- Hashing
- proves integrity by computing a unique fixed-size message digest from any variable length input
- these can be combined to make a digital signature
- Public key cryptography
Types of Primitives
- Encryption
- uses an algorithm and a key to hide the meaning of a message
- can be symmetric or asymmetric
- provides the confidentiality security service
- Cryptographic hash function
- outputs a fixed-length string for a variable-length input string
- provides the data integrity security service
- Message Authentication Code (MAC)
- uses a cryptographic hash function and symmetric encryption to provide the data integrity and authenticity security services
- Digital signature
- uses a cryptographic hash function and asymmetric encryption to provide the data integrity, authenticity, and non-repudiation security services
- Shared-secret generation
- aka Diffie-Hellman
- Pseudorandom number generation
- PRNG is a function that outputs a sequence of numbers, such that at any point, the next number cannot be predicted based on the previous numbers
- true RNGs are difficult to realize on computers
- because computers are deterministic
- with each distinct initialization value (seed), a PRNG generates a distinct sequence of numbers
- based on hash functions
- security of a cryptographic algorithm relies on the randomness in the sequence of random numbers used
Cryptographic Primitives
Primitives and Their Security Service
