Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

crypt::rc4(3pm) [debian man page]

RC4(3pm)						User Contributed Perl Documentation						  RC4(3pm)

NAME
Crypt::RC4 - Perl implementation of the RC4 encryption algorithm SYNOPSIS
# Functional Style use Crypt::RC4; $encrypted = RC4( $passphrase, $plaintext ); $decrypt = RC4( $passphrase, $encrypted ); # OO Style use Crypt::RC4; $ref = Crypt::RC4->new( $passphrase ); $encrypted = $ref->RC4( $plaintext ); $ref2 = Crypt::RC4->new( $passphrase ); $decrypted = $ref2->RC4( $encrypted ); # process an entire file, one line at a time # (Warning: Encrypted file leaks line lengths.) $ref3 = Crypt::RC4->new( $passphrase ); while (<FILE>) { chomp; print $ref3->RC4($_), " "; } DESCRIPTION
A simple implementation of the RC4 algorithm, developed by RSA Security, Inc. Here is the description from RSA's website: RC4 is a stream cipher designed by Rivest for RSA Data Security (now RSA Security). It is a variable key-size stream cipher with byte- oriented operations. The algorithm is based on the use of a random permutation. Analysis shows that the period of the cipher is overwhelmingly likely to be greater than 10100. Eight to sixteen machine operations are required per output byte, and the cipher can be expected to run very quickly in software. Independent analysts have scrutinized the algorithm and it is considered secure. Based substantially on the "RC4 in 3 lines of perl" found at http://www.cypherspace.org A major bug in v1.0 was fixed by David Hook (dgh@wumpus.com.au). Thanks, David. AUTHOR
Kurt Kincaid (sifukurt@yahoo.com) Ronald Rivest for RSA Security, Inc. BUGS
Disclaimer: Strictly speaking, this module uses the "alleged" RC4 algorithm. The Algorithm known as "RC4" is a trademark of RSA Security Inc., and this document makes no claims one way or another that this is the correct algorithm, and further, make no claims about the quality of the source code nor any licensing requirements for commercial use. There's nothing preventing you from using this module in an insecure way which leaks information. For example, encrypting multilple messages with the same passphrase may allow an attacker to decode all of them with little effort, even though they'll appear to be secured. If serious crypto is your goal, be careful. Be very careful. It's a pure-Perl implementation, so that rating of "Eight to sixteen machine operations" is good for nothing but a good laugh. If encryption and decryption are a bottleneck for you, please re-write this module to use native code wherever practical. LICENSE
This is free software and may be modified and/or redistributed under the same terms as Perl itself. SEE ALSO
perl, <http://www.cypherspace.org>, <http://www.rsasecurity.com>, <http://www.achtung.com/crypto/rc4.html>, <http://www.columbia.edu/~ariel/ssleay/rrc4.html> perl v5.12.4 2011-09-17 RC4(3pm)

Check Out this Related Man Page

rc4(n)								 RC4 Stream Cipher							    rc4(n)

__________________________________________________________________________________________________________________________________________________

NAME
rc4 - Impementation of the RC4 stream cipher SYNOPSIS
package require Tcl 8.2 package require rc4 ?1.1.0? ::rc4::rc4 ?-hex? -key keyvalue ?-command lst? ?-out channel? [ -in channel | -infile filename | string ] ::rc4::RC4Init keydata ::rc4::RC4 Key data ::rc4::RC4Final Key _________________________________________________________________ DESCRIPTION
This package is an implementation in Tcl of the RC4 stream cipher developed by Ron Rivest of RSA Data Security Inc. The cipher was a trade secret of RSA but was reverse-engineered and published to the internet in 1994. It is used in a number of network protocols for securing communications. To evade trademark restrictions this cipher is sometimes known as ARCFOUR. COMMANDS
::rc4::rc4 ?-hex? -key keyvalue ?-command lst? ?-out channel? [ -in channel | -infile filename | string ] Perform the RC4 algorithm on either the data provided by the argument or on the data read from the -in channel. If an -out channel is given then the result will be written to this channel. Giving the -hex option will return a hexadecimal encoded version of the result if not using an -out channel. The data to be processes can be specified either as a string argument to the rc4 command, or as a filename or a pre-opened channel. If the -infile argument is given then the file is opened, the data read and processed and the file is closed. If the -in argument is given then data is read from the channel until the end of file. The channel is not closed. If the -out argument is given then the processing result is written to this channel. If -command is provided then the rc4 command does not return anything. Instead the command provided is called with the rc4 result data appended as the final parameter. This is most useful when reading from Tcl channels as a fileevent is setup on the channel and the data processed in chunks Only one of -infile, -in or string should be given. PROGRAMMING INTERFACE
::rc4::RC4Init keydata Initialize a new RC4 key. The keydata is any amount of binary data and is used to initialize the cipher internal state. ::rc4::RC4 Key data Encrypt or decrypt the input data using the key obtained by calling RC4Init. ::rc4::RC4Final Key This should be called to clean up resources associated with Key. Once this function has been called the key is destroyed. EXAMPLES
% set keydata [binary format H* 0123456789abcdef] % rc4::rc4 -hex -key $keydata HelloWorld 3cf1ae8b7f1c670b612f % rc4::rc4 -hex -key $keydata [binary format H* 3cf1ae8b7f1c670b612f] HelloWorld set Key [rc4::RC4Init "key data"] append ciphertext [rc4::RC4 $Key $plaintext] append ciphertext [rc4::RC4 $Key $additional_plaintext] rc4::RC4Final $Key proc ::Finish {myState data} { DoStuffWith $myState $data } rc4::rc4 -in $socket -command [list ::Finish $ApplicationState] AUTHORS
Pat Thoyts BUGS, IDEAS, FEEDBACK This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category rc4 of the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for either package and/or documentation. SEE ALSO
aes(n), blowfish(n), des(n) KEYWORDS
arcfour,, data integrity, encryption, rc4, security, stream cipher COPYRIGHT
Copyright (c) 2003, Pat Thoyts <patthoyts@users.sourceforge.net> rc4 1.1.0 rc4(n)
Man Page