gnu.crypto.prng

Class ARCFour

Implemented Interfaces:
Cloneable, IRandom

public class ARCFour
extends BasePRNG

RC4 is a stream cipher developed by Ron Rivest. Until 1994 RC4 was a trade secret of RSA Data Security, Inc., when it was released anonymously to a mailing list. This version is a descendent of that code, and since there is no proof that the leaked version was in fact RC4 and because "RC4" is a trademark, it is called "ARCFOUR", short for "Allegedly RC4".

This class only implements the keystream of ARCFOUR. To use this as a stream cipher, one would say:

    out = in ^ arcfour.nextByte();

This operation works for encryption and decryption.

References:

  1. Schneier, Bruce: Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition. (1996 John Wiley and Sons), pp. 397--398. ISBN 0-471-11709-9
  2. K. Kaukonen and R. Thayer, "A Stream Cipher Encryption Algorithm 'Arcfour'", Internet Draft (expired), draft-kaukonen-cipher-arcfour-03.txt

Version:
$Revision: 1.2 $

Field Summary

static String
ARCFOUR_KEY_MATERIAL
The attributes property name for the key bytes.
static int
ARCFOUR_SBOX_SIZE
The size of the internal S-box.

Fields inherited from class gnu.crypto.prng.BasePRNG

buffer, initialised, name, ndx

Constructor Summary

ARCFour()
Default 0-arguments constructor.

Method Summary

Object
clone()
Returns a clone copy of this instance.
void
fillBlock()
void
setup(Map attributes)

Methods inherited from class gnu.crypto.prng.BasePRNG

clone, fillBlock, init, isInitialised, name, nextByte, nextBytes, setup

Field Details

ARCFOUR_KEY_MATERIAL

public static final String ARCFOUR_KEY_MATERIAL
The attributes property name for the key bytes.


ARCFOUR_SBOX_SIZE

public static final int ARCFOUR_SBOX_SIZE
The size of the internal S-box.

Field Value:
256

Constructor Details

ARCFour

public ARCFour()
Default 0-arguments constructor.

Method Details

clone

public Object clone()
Returns a clone copy of this instance.
Specified by:
clone in interface IRandom
Overrides:
clone in interface BasePRNG

Returns:
a clone copy of this instance.


fillBlock

public void fillBlock()
            throws LimitReachedException
Overrides:
fillBlock in interface BasePRNG


setup

public void setup(Map attributes)
Overrides:
setup in interface BasePRNG


Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.