Developer Reference

Contents

ARCFour Functions

ARCFour algorithm functions are deprecated and will be removed in a future Intel® IPP release.
As the RC4* stream cipher, widely used for file encryption and secure communications, is the property of RSA Security Inc., a cipher discussed in this section and resulting in the same encryption/decryption as RC4* is called ARCFour.
The ARCFour stream cipher ([AC]) uses a variable length key of up to 256 octets (bytes). ARCFour operates in the Output Feedback mode (OFB), defined in [NIST SP 800-38A], which creates the keystream independently of both the plaintext and the ciphertext.
The ARCFour algorithm functions, described in this section, use the context
IppsARCFourState
as an operational vehicle to carry variables needed to execute the algorithm: S-Boxes and a current pair of indices.
The typical application code for conducting an encryption or decryption using ARCFour should follow the sequence of operations listed below:
  1. Get the buffer size required to configure the context
    IppsARCFourState
    by calling the function
    ARCFourGetSize
    .
  2. Call the operating system memory allocation service function to allocate a buffer whose size is not less than the one specified by the function
    ARCFourGetSize
    .
  3. Initialize the pointer
    pCtx
    to the
    IppsARCFourState
    context by calling the function
    ARCFourInit
    with the allocated buffer and the respective ARCFour cipher key of the specified size.
  4. Call the
    ARCFourEncrypt
    or
    ARCFourDecrypt
    function to encrypt or decrypt the input data stream, respectively.
  5. Clean up secret data stored in the context.
  6. Call the operating system memory free service function to release the buffer allocated for the
    IppsARCFourState
    context, if needed.
The
ARCFourSpec
context is position-dependent. The
ARCFourPack/ARCFourUnpack
functions transform the position-dependent context to a position-independent form and vice versa.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804