This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
A mode of operation describes the process of encrypting each of these blocks, and generally usesÂ randomization based on an additional input value. And thatÂ enable the repeated and secure use of aÂ block cipherÂ under a singleÂ key.Â A block cipher by itself allowsÂ encryptionÂ only of a single data block of the cipher's block length. When targeting a variable-length message; the data must first be partitioned into separate cipher blocks.
Modes of operation have primarily been defined for encryption andÂ authentication.Â Historically, encryption modes have been studied extensively in regard to their error propagation properties under various scenarios of data modification. Later development regardedÂ integrity protectionÂ as an entirely separate cryptographic goal from encryption. Some modern modes of operation combine encryption and authentication in an efficient way, and are known asÂ authenticated encryptionÂ modes.
While modes of operation are commonly associated withÂ symmetric encryptionÂ they may also be applied toÂ public-key encryptionÂ primitives such asÂ RSAÂ in principle (though in practice public-key encryption of longer messages is generally realized usingÂ hybrid encryption)
The modes may be used in conjunction with any symmetric key block cipher algorithm that is approved by a Federal Information Processing Standard (FIPS). The five modes-the Electronic Codebook (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB), and Counter (CTR) modes ,it can provide data confidentiality.
The input to the encryption processes of the CBC, CFB, and OFB modes includes, in addition to the plaintext, a data block called the initialization vector (IV), denoted IV. The IV is used in an initial step in the encryption of a message and in the corresponding decryption of the message.
The IV need not be secret; however, for the CBC and CFB modes, the IV for any particular execution of the encryption process must be unpredictable, and, for the OFB mode, unique IVs must be used for each execution of the encryption process.
2.8.2-The Cipher Block Chaining Mode:
The Cipher Block Chaining (CBC) mode is a confidentiality mode whose encryption process features the combining ("chaining") of the plaintext blocks with the previous cipher text blocks.
The CBC mode requires an IV to combine with the first plaintext block. The IV need not be secret, but it must be unpredictable. In CBC encryption, the first input block is formed by exclusive-ORing the first block of the plaintext with the IV. The forward cipher function is applied to the first input block, and the resulting output block is the first block of the cipher text. This output block is also exclusive ORed with the second plaintext data block to produce the second input block, and the forward cipher function is applied to produce the second output block. This output block, which is the second cipher text block, is exclusive-ORed with the next plaintext block to form the next input block. Each successive plaintext block is exclusive-ORed
with the previous output/cipher text block to produce the new input block. The forward cipher function is applied to each input block to produce the cipher text block. 
In CBC decryption, the inverse cipher function is applied to the first cipher text block, and the resulting output block is exclusive-ORed with the initialization vector to recover the first plaintext block. The inverse cipher function is also applied to the second cipher text block, and the resulting output block is exclusive-ORed with the first cipher text block to recover the second plaintext block. In general, to recover any plaintext block (except the first), the inverse cipher function is applied to the corresponding cipher text block, and the resulting block is exclusive ORed with the previous cipher text block. In CBC encryption, the input block to each forward cipher operation (except the first) depends on the result of the previous forward cipher operation, so the forward cipher operations cannot be performed in parallel. In CBC decryption, however, the input blocks for the inverse cipher function, i.e., the cipher text blocks, are immediately available, so that multiple inverse cipher operations can be performed in parallel.
2.8.3-The Counter Mode:
The Counter (CTR) mode is a confidentiality mode that features the application of the forward cipher to a set of input blocks, called counters, to produce a sequence of output blocks that are exclusive-ORed with the plaintext to produce the cipher text, and vice versa. The sequence of counters must have the property that each block in the sequence is different from every other block. This condition is not restricted to a single message: across all of the messages that are encrypted under the given key, all of the counters must be distinct. In CTR encryption, the forward cipher function is invoked on each counter block, and the resulting output blocks are exclusive-ORed with the corresponding plaintext blocks to produce the cipher text blocks. For the last block, which may be a partial block of u bits, the most significant u bits of the last output block are used for the exclusive-OR operation; the remaining b-u bits of the last output block are discarded. In CTR decryption, the forward cipher function is invoked on each counter block, and the resulting output blocks are exclusive-ORed with the corresponding cipher text blocks to recover the plaintext blocks. For the last block, which may be a partial block of u bits, the most significant u bits of the last output block are used for the exclusive-OR operation; the remaining b-u bits of the last output block are discarded.
In both CTR encryption and CTR decryption, the forward cipher functions can be performed in parallel; similarly, the plaintext block that corresponds to any particular cipher text block can be recovered independently from the other plaintext blocks if the corresponding counter block can be determined. Moreover, the forward cipher functions can be applied to the counters prior to the availability of the plaintext or cipher text data.
2.8.4-CCM (Counter with Cipher Block Chaining-Message Authentication Code):
This Recommendation specifies an algorithm, Counter with Cipher Block Chaining-Message
Authentication Code, abbreviated CCM that can provide assurance of the confidentiality and authenticity of data. CCM is based on an approved symmetric key block cipher algorithm whose block size is 128 bits, such as the Advanced Encryption Standard (AES) algorithm currently specified in Federal Information Processing Standard (FIPS) Pub. 197. Thus, CCM cannot be used with the Triple Data Encryption Algorithm, Whose block size is 64 bits. CCM can be considered a mode of operation of the block cipher algorithm. As with other modes of operation, a single key to the block cipher must be established beforehand among the parties to the data, thus, CCM should be implemented within a well-designed key management structure. The security properties of CCM depend, at a minimum, on the secrecy of the key.
CCM is intended for use in a packet environment, i.e., when all of the data is available in storage before CCM is applied; CCM is not designed to support partial processing or stream processing.
The input to CCM includes three elements:
1) Data that will be both authenticated and encrypted, called the payload;
2) Associated data, e.g., a header, that will be authenticated but not encrypted; and
3) a unique value, called a nonce, that is assigned to the payload and the associated data.
CCM consists of two related processes:
Both combine two cryptographic primitives: counter mode encryption and cipher block chaining based authentication. Only the forward cipher function of the block cipher algorithm is used within these primitives. In generation-encryption, cipher block chaining is applied to the payload, the associated data, and the nonce to generate a message authentication code (MAC); then, counter mode encryption is applied to the MAC and the payload to transform them into an unreadable form, called the cipher text. Thus, CCM generation-encryption expands the size of the payload by the size of the MAC. In decryption-verification, counter mode decryption is applied to the purported cipher text to recover the MAC and the corresponding payload; then, cipher block chaining is applied to the payload, the received associated data, and the received nonce to verify the correctness of the MAC. Successful verification provides assurance that the payload and the associated data originated from a source with access to the key.
A MAC provides stronger assurance of authenticity than a checksum or an error detecting code.
The verification of a (non-cryptographic) checksum or an error detecting code is designed to detect only accidental modifications of the data, while the verification of a MAC, as occurs in CCM, is designed to detect intentional, unauthorized modifications of the data, as well as accidental modifications.
This specification of CCM is intended to be compatible with the use of CCM within the draft amendment to the IEEE Standard 802.11 for wireless local area networks. [41,42]
2.8.5-Underlying Block Cipher Algorithm:
The CCM algorithm depends on the choice of an underlying symmetric key block cipher algorithm. The CCM algorithm is thus a mode of operation (mode, for short) of the symmetric key block cipher. The underlying block cipher algorithm shall be approved, and a secret key for the block cipher algorithm shall be generated uniformly at random, or close to uniformly at random, i.e., so that each possible key is (nearly) equally likely to be generated. Moreover, the key should be established for the parties to the information by an approved key establishment method. The key shall be kept secret and shall only be used for the CCM mode. The total number of invocations of the block cipher algorithm during the lifetime of the key shall be limited to 261 Key establishments and key management is outside the scope of this Recommendation.
For any given key, the underlying block cipher algorithm of the mode consists of two functions that are inverses of each other. As part of the choice of the block cipher algorithm, one of the two functions of the block cipher algorithm is designated as the forward cipher function. The inverse of this process is called the inverse cipher function; however, the CCM mode does not require the inverse cipher function.
The forward cipher function is a function on bit strings of a fixed bit length; the strings are called blocks, and their length is called the block size. For CCM, the block size of the block cipher algorithm shall be 128 bits; currently, the AES algorithm is the only approved block cipher algorithm with this block size. [43,44]