Crypt::Khazad

Crypt::Khazad is a Crypt::CBC-compliant block cipher.
Download

Crypt::Khazad Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Julius C. Duque
  • Publisher web site:
  • http://search.cpan.org/~jcduque/Crypt-Rainbow-1.0.0/Rainbow.pm

Crypt::Khazad Tags


Crypt::Khazad Description

Crypt::Khazad is a Crypt::CBC-compliant block cipher. Crypt::Khazad is a Crypt::CBC-compliant block cipher.ABSTRACTKhazad is a 128-bit key, 64-bit block cipher, designed by Vincent Rijmen and Paulo S. L. M. Barreto.SYNOPSIS use Crypt::Khazad; $cipher = new Crypt::Khazad $key; $ciphertext = $cipher->encrypt($plaintext); $plaintext = $cipher->decrypt($ciphertext);Khazad is a 128-bit key, 64-bit block cipher. Designed by Vincent Rijmen and Paulo S. L. M. Barreto, Khazad is a NESSIE finalist for legacy-level block ciphers. Khazad has many similarities with Rijndael, and has an extremely high rate of diffusion.This module supports the Crypt::CBC interface, with the following functions.Functionsblocksize 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).encrypt($data) Encrypts 8 bytes of $data and returns the corresponding ciphertext.decrypt($data) Decrypts 8 bytes of $data and returns the corresponding plaintext.EXAMPLE 1 #!/usr/local/bin/perl use diagnostics; use strict; use warnings; use Crypt::Khazad; # key must be 16 bytes long my $key = "0123456789abcdef"; my $cipher = new Crypt::Khazad $key; print "blocksize = ", $cipher->blocksize, " bytes n"; print "keysize = ", $cipher->keysize, " bytes n"; # block must be 8 bytes long my $plaintext1 = "Testing1"; my $ciphertext = $cipher->encrypt($plaintext1); my $plaintext2 = $cipher->decrypt($ciphertext); print "Decryption OKn" if ($plaintext1 eq $plaintext2);EXAMPLE 2 #!/usr/local/bin/perl use diagnostics; use strict; use warnings; use Crypt::CBC; # CBC automatically loads Khazad for us # when using Crypt::CBC, key may be of ANY length my $key = "0123456789abcdef"; # IV must be exactly 8 bytes long my $IV = pack "H16", 0; my $cipher = Crypt::CBC->new({'key' => $key, 'cipher' => 'Khazad', 'iv' => $IV, 'regenerate_key' => 1, 'padding' => 'standard', 'prepend_iv' => 0 }); # when using Crypt::CBC, plaintext may be of ANY length my $plaintext1 = "This is a test"; my $ciphertext = $cipher->encrypt($plaintext1); my $plaintext2 = $cipher->decrypt($ciphertext); print "Decryption OKn" if ($plaintext1 eq $plaintext2);Requirements:· Perl


Crypt::Khazad Related Software