AI_DESX_CBCPadIV8

AI_DESX_CBC_IV8

AI_DESX_CBC_IV8

Purpose:

This AI allows you to perform DESX encryption or decryption in CBC mode with an 8-byte initialization vector on data that is a multiple of 8 bytes long. This algorithm takes 24 bytes of keying material. The first 8 bytes of the key form a standard 56-bit DES key, the second 8 bytes become the input whitening, and the last 8 bytes become the output whitening. The DESX algorithm has 64-bit input and output blocks like DES and it is used in all the same modes. Internally, the plaintext is XORed with the input whitening before running it through a DES encryption; and the output of DES is XORed with the output whitening to produce the output block of DESX. Decryption

reverses those steps. Seefor the same algorithm type with padding.

Type of information this allows you to use:

an 8-byte initialization vector for the DESX-CBC encryption algorithm, as defined by RSA Security Inc.

Format of info supplied to B_SetAlgorithmInfo:

pointer to an unsigned char array that holds the 8 bytes of the initialization vector.

Format of info returned by B_GetAlgorithmInfo:

pointer to an unsigned char array that holds the 8 bytes of the initialization vector.

Crypto-C procedures to use with algorithm object:

B_EncryptInit, B_EncryptUpdate, B_EncryptFinal, B_DecryptInit,

B_DecryptUpdate, and B_DecryptFinal. You may pass (B_ALGORITHM_OBJ)NULL_PTR for all randomAlgorithm arguments.

Algorithm methods to include in application’s algorithm chooser:

AM_DESX_CBC_ENCRYPT for encryption and AM_DESX_CBC_DECRYPT for decryption.

C h a p t e r 2 A l g o r i t h m I n f o Ty p e s

39

Page 49
Image 49
RSA Security 5 manual AIDESXCBCIV8