Digest::EMAC man page on OpenServer

Man page or keyword search:  
man Server   5388 pages
apropos Keyword Search (all sections)
Output format
OpenServer logo
[printable version]

EMAC(3)		      User Contributed Perl Documentation	       EMAC(3)

NAME
       Digest::EMAC

EXAMPLE 1
	   use Digest::EMAC qw(emac hexdigest base64digest);

	   print "Enter key: ";
	   my $key = <STDIN>;
	   chomp $key;

	   print "Enter cipher: ";
	   my $cipher = <STDIN>;
	   chomp $cipher;

	   print "Enter string: ";
	   my $str = <STDIN>;
	   chomp $str;

	   my $mac = emac($key, $cipher, $str);
	   print hexdigest($mac), "\n";
	   print base64digest($mac), "\n";

EXAMPLE 2
	   use Digest::EMAC qw(emac hexdigest base64digest);

	   print "Enter key: ";
	   my $key = <STDIN>;
	   chomp $key;

	   print "Enter cipher: ";
	   my $cipher = <STDIN>;
	   chomp $cipher;

	   print "Enter file: ";
	   my $infile = <STDIN>;
	   chomp $infile;
	   local $/ = undef;
	   open F, $infile;
	   my $data = <F>;

	   my $mac = emac($key, $cipher, $data);
	   close F;
	   print hexdigest($mac), "\n";
	   print base64digest($mac), "\n";

EXAMPLE 3
	   use Digest::EMAC qw(emac hexdigest base64digest);

	   print "Enter key: ";
	   my $key = <STDIN>;
	   chomp $key;

	   print "Enter cipher: ";
	   my $cipher = <STDIN>;
	   chomp $cipher;
	   local $/ = undef;

	   while (<>) {
	       my $mac = emac($key, $cipher, $_);
	       print hexdigest($mac), "\n";
	   }

DESCRIPTION
       This is Encrypted MAC (EMAC), also known as Double MAC (DMAC). Unlike
       HMAC, which reuses an existing one-way hash function, such as MD5,
       SHA-1 or RIPEMD-160, EMAC reuses an existing block cipher to produce a
       secure message authentication code (MAC).

       Using the block cipher, a message is encrypted in CBC mode. The last
       block is taken as the MAC of the message. For fixed-length messages,
       this method is provably secure. In reality, however, messages have
       arbitrary lengths, and this method is not secure. To make secure MACs
       for variable length messages, the last block is encrypted once more
       with a different key. The security of this construction has been proved
       in the paper, ``CBC MAC for Real-Time Data Sources'' by Erez Petrank
       and Charles Rackoff. The security can be proved on the assumption that
       the underlying block cipher is pseudo-random.

       The performance and key-agility of EMAC are reasonable. EMAC is prefer-
       able for short messages because the block length is smaller compared to
       the schemes based on a hash function. EMAC is also chosen as one of the
       NESSIE winners for Message Authentication Codes, along with UMAC, TTMAC
       and HMAC. The current NESSIE specification chooses the AES as block
       cipher.

       Also specified in the paper by Petrank and Rackoff is the construction
       of two encryption keys from a single key. The first subkey is derived
       by encrypting `0' (zero) using the original secret key. To produce the
       second subkey, a `1' (one) is encrypted using the original secret key.
       The first subkey is used in CBC mode to encrypt the entire message. The
       last ciphertext block is then re-encrypted with the second subkey. The
       result is a MAC whose length is equal to the block length of the cipher
       used.

PREREQUISITES
       The module Crypt::CBC is required, plus any block cipher that is capa-
       ble of returning its block size when queried. RC5 is not supported,
       however, because its block size is variable.

       MIME::Base64 is also required for base64 encoding of output.

LICENSE
       This program is free software; you can redistribute it or modify it
       under the terms of the GNU General Public License.

AUTHOR
       Julius C. Duque <jcduque (AT) lycos (DOT) com>

perl v5.8.8			  2004-07-03			       EMAC(3)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server OpenServer

List of man pages available for OpenServer

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net