6.1 Basic concepts of cryptography Flashcards
Symmetric encryption
A two-way encryption scheme in which encryption and decryption are both performed by the same key. Also known as shared-key encryption.
Modes of operation
The way a cryptographic product processes multiple blocks.
Asymmetric algorithms
A
Hashing
Hashing is the transformation of a string of characters into a usually shorter fixed-length value or key that represents the original string.
Salt
A random or pseudo-random number or string.
Elliptic curve cryptography
An asymmetric encryption technique that leverages the algebraic structures of elliptic curves over finite fields.
Key exchange
Any method by which cryptographic keys are transferred among users, thus enabling the use of a cryptographic algorithm.
Digital signatures
A message digest that has been encrypted again with a user’s private key.
Diffusion
Means that predictable features of the plaintext should not be evident in the ciphertext
Confusion
Means that predictable features of the plaintext should not be evident in the ciphertext
Collision
When a function produces the same hash value for two different inputs
Steganography
Hiding a message within another message or data
Obfuscation
The art of making a message difficult to understand
Stream vs. block
In a stream cipher, each byte or bit of data in the plaintext is encrypted one at a time.
In a block cipher, the plaintext is divided into equal-size blocks (usually 64- or 128-bit). Each block is then subjected to complex transposition and substitution operations, based on the value of the key used.
Key strength
A
Session keys
A one-time encryption key used to symmetrically encrypt one communication session only
Ephemeral key
Using a different secret key for each session.
Data in transit
The state when data is transmitted over a network. Examples of types of data that may be in transit include website traffic, remote access traffic. In this state, data can be protected by a transport encryption protocol, such as TLS or IPSec.
Data at rest
This state means that the data is in some sort of persistent storage media. Examples of types of data that may be at rest include financial information stored in databases, archived audiovisual media, operational policies and other management documents, system configuration data, and more.
Data in use
This is the state when data is present in volatile memory, such as system RAM or CPU registers and cache. Examples of types of data that may be in use include documents open in a word processing application, database data that is currently being modified, event logs being generated while an operating system is running.
Random/pseudorandom number generation
Uses software routines to simulate randomness. The generator usually uses data from the system, such as mouse and keyboard input timing, process IDs, and hard drive samples, as a seed. The seed state is then passed through a mathematical formula in order to output a pseudorandom number.
Key stretching
A technique to make the key generated from a user password stronger is by—basically—playing around with it lots of times.
Implementation vs. algorithm selection
It is important to realize that just because an algorithm, such as AES, is considered strong does not mean that the implementation of that cipher in a programming library is also strong. The implementation may have weaknesses.
Crypto service provider
(CSP) A cryptographic module that implements Microsoft’s CryptoAPI.