NAME
Crypt::TEA - Tiny Encryption Algorithm
SYNOPSIS
use Crypt::TEA;
$tea = Crypt::TEA->new($key);
$ciphertext = $tea->encrypt($plaintext);
$plaintext = $tea->decrypt($ciphertext);
DESCRIPTION
This module implements TEA encryption, as described by David J. Wheeler and Roger M. Needham in <http://www.ftp.cl.cam.ac.uk/ftp/papers/djw-rmn/djw-rmn-tea.html>.
TEA is a 64-bit symmetric block cipher with a 128-bit key and a variable number of rounds (32 is recommended). It has a low setup time, and depends on a large number of rounds for security, rather than a complex algorithm.
The module supports the Crypt::CBC interface, with the following functions.
Functions
- blocksize
-
Returns the size (in bytes) of the block (8, in this case).
- keysize
-
Returns the size (in bytes) of the key (16, in this case).
- new($key, $rounds)
-
This creates a new Crypt::TEA object with the specified key (assumed to be of keysize() bytes). The optional rounds parameter specifies the number of rounds of encryption to perform, and defaults to 32.
- encrypt($data)
-
Encrypts $data (of blocksize() bytes) and returns the corresponding ciphertext.
- decrypt($data)
-
Decrypts $data (of blocksize() bytes) and returns the corresponding plaintext.
SEE ALSO
<http://www.vader.brad.ac.uk/tea/tea.shtml>
Crypt::CBC, Crypt::Blowfish, Crypt::DES
ACKNOWLEDGEMENTS
- Dave Paris, for taking the time to discuss and review the initial version of this module, making several useful suggestions, and contributing tests.
AUTHOR
Abhijit Menon-Sen <ams@wiw.org>
Copyright 2001 Abhijit Menon-Sen. All rights reserved.
This is free software; you may redistribute and/or modify it under the same terms as Perl itself.