MD5 Hashing Core

Description

The es1005 hash fully implements the MD5 (Message Digest Algorithm RFC 1321). The core can be used for data authentication in digital broadband, wireless or multimedia system. The MD5 core processes the input message in 512-bit blocks and produce message digest of 128-bit (for md5). The output data is referred to as a “digital signature” or “fingerprint” or “message digest” of input messages

Shared by: venins1
-
Stats
views:
35
posted:
8/26/2012
language:
English
pages:
5
Document Sample
scope of work template
							                       ES1005 – MD5 Hashing Core


  Introduction
  The es1005 hash fully implements the MD5                 Support 1.6 Gb/s of data rate for MD5 at
  (Message Digest Algorithm RFC 1321). The                 200 MHz.
  core can be used for data authentication in              Available in ASIC and FPGA
  digital broadband, wireless or multimedia                Technologies.
  system. The MD5 core processes the input
  message in 512-bit blocks and produce
  message digest of 128-bit (for md5). The             Applications
  output data is referred to as a “digital
  signature” or “fingerprint” or “message
  digest” of input messages                            •   Secure corporate communications

                                                           - Virtual Private Networks (VPN)
  Features                                                 - Storage Area Networks (SAN)
                                                           - Video conferencing
                                                           - Voice services
     Supports MD5 Secure Hash Algorithm
     described in RFC 1321.
     High speed operation. One clock per               •   Secure electronic transactions
     hash step. Full MD5 is computed in
     64+1 cycles.                                          - Medical files
                                                           - Financial files
     Supports message padding
     Allows Time Division Multiplexing (TDM)               - Securities exchange
     of several data streams.                              - eCommerce
     Simple external interface                             - Point-of-Sale
     Simple 32 bit I/O interface
     Outputs message digest from every                 •   Personal mobile communications
     input block of data (512-bit block size)
     Supports user input initialization vectors.           - Video phones
     Minimal gate count.                                   - PDA
                                                           - Point-to-Point Wireless




ES1005                                             1
  Pin Description

         Name    I/O     Width                         Description
   clk          Input      1     System Clock input
   rst_n        Input      1     Asynchronous active low reset
   DataVld      Input      1     Input data port DataIn is sampled every clock when
                                 DataVld is asserted.
   DataIn       Input     32     32-bit message data input
   DataFirst    Input      1     When asserted, indicates first 32 bit of message. This
                                 is used to load initialization vector
   DataLast     Input      1     When asserted, indicates last 32 bit of message for
                                 respective session.
   DataNumb     Input      5     This signal indicates how many bits of the data at
                                 DataIn are to be sampled as message data when
                                 DataLast is asserted. This signal is ignored if
                                 DataLast is not asserted.
   DataLast     Input      1     When asserted, indicates last 32 bit of message for
                                 respective session.
   InitVec      Input      1     When asserted indicates that data presently sampled
                                 at DataIn port is initialization vector. For MD5
                                 initialization vector is 160-bit, so this signal should be
                                 valid for 5 cycles before feeding the message data for
                                 a respective session.
   MsgDgstVld   Output     1     Message Digest ready signal, when asserted
                                 signifies the message digest for current block is
                                 presented at MsgDigest output port.
   MsgDigest    Output    32     Message digest output data. Most significant 32 bits
                                 of data are presented first.
   DataBusy     Output     1     When asserted indicates that the core is busy
                                 computing message digest. Message input data
                                 should not be presented to DataIn.




ES1005                            2
  Functional Description

                     clk
                    rst_n



                  DataVld                                             MsgDgstVld
                 DataBusy                      ES1005
                                             (MD5 CORE)
                  DataFirst                                            MsgDigest
                  DataLast
                 DataNum
                   DataIn
                   InitVec



                                    Figure 1. ES1005 Symbol



  ES1005 fully implements Message Digest             generated on MsgDigest[31:0]. The result is
  (MD5) function described in RFC 1321. It           extracted from the core in 4 consecutive
  accepts any length of packet data up to            cycles.
  2^64 Bits and computes the 128-bit
  message digest value. Input data is fed into       Figure 2 depicts the top level functional
  the core using DataVld, DataFirst and              timing diagrams of ES1005.
  DataLast signals. At the end of MD5
  computation, a 128-bit message digest is




ES1005                                           3
         clk

         DataFirst

         DataVld


         DataLast

         DataIn               D0      D1     DN


         DataNumb                             N


         DataBusy                                     64 cycles atleast


         MsgDgstVld

         MsgDigest                                                          M0        M4
                                                                          Valid for 5 cycles

                            Figure 2. ES1005 Interface Timing Diagram

  The core also pads the data if the input data        padding. The core also allows to load
  is not multiple congruent of 448 bits. This          initialization vector using InitVec valid signal
  makes the usage very simple and no extra             and this can be used to implement HMAC
  hardware is needed to support MD5                    like function.



  Deliverables
      Synthesizable Verilog RTL source code
      Simulation scripts
      Self-checking Test environment
              Test-bench
              Test-vectors
              Expected results
      Synthesis scripts
      User Documentation




ES1005                                            4
  Sales Representatives               About Esencia
  For pricing information:            Esencia Technologies is a leading provider of
                                      pre-verified virtual components for consumer
  Esencia Technologies                electronics and communication markets at
  1235 Wildwood Ave Suite #21         competitive prices.
  Sunnyvale, CA 94089

  Tel (408) 480-8284
  Web: www.esenciaTech.com
  E-mail: sales@esenciaTech.com




ES1005                            5

						
Related docs
Other docs by venins1
java and xml
Views: 186  |  Downloads: 7
The Java Swing Tutorial
Views: 117  |  Downloads: 1
java programming with jdbc and 2nd edition
Views: 167  |  Downloads: 5
Steganography- A Data Hiding Technique
Views: 293  |  Downloads: 10
DATA ENCRYPTION STANDARD (DES)
Views: 19  |  Downloads: 0
Truss IN Mechanics
Views: 65  |  Downloads: 0
Laplace transform: Review
Views: 52  |  Downloads: 0
Function In C++(A real New Defined Defination)
Views: 34  |  Downloads: 0