Hardware Implementation of Hash Functions



Hash algorithm is a type of cryptographic primitives that is widely used in many security protocols for the purposes like data integrity, digital signature, and authentication. In this chapter, we summarize some techniques to improve the hardware implementation of two commonly used hash algorithms MD5 and SHA-2. We also give an overview of the hardware implementation of the five candidates in the last round of SHA-3 competition.


Hash Function Block Cipher Compression Function Data Flow Graph Message Block 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Rivest R (1992) The MD5 message-digest algorithm. In: The Internet Engineering Task Force (ITEF) Internet Draft, no. RFC-1321, April 1992Google Scholar
  2. 2.
    National Institute of Standards and Technology (1994) Secure hash standard. In: Federal Information Processing Standards Publication 180–1, April 1994Google Scholar
  3. 3.
    Menezes A, Oorschot P, Vanstone S (1996) Handbook of Applied Cryptography, 1st edn. CRC Press, West Palm Beach, FL, USACrossRefGoogle Scholar
  4. 4.
    Damgard I (1990) A design principle for hash functions. In: Proceedings of Cryptology, Crypto ’89, vol 435, pp 416–427Google Scholar
  5. 5.
    Wang X, Feng D, Lai X, Yu H (2004) Collisions for hash functions: MD4, MD5, HAVAL-128 and RIPEMD. Accessed August 2004
  6. 6.
    Wang X, Yu H, Yin YL (2005) Efficient collision search attacks on SHA-0. In: Advances in Cryptology – CRYPTO’05, vol 3621, pp 1–16Google Scholar
  7. 7.
    Wang X, Yin YL, Yu H (2005) Finding collisions in the full SHA-1. In: Advances in Cryptology – CRYPTO’05, vol 3621, pp 17–36Google Scholar
  8. 8.
    Wang X, Hongbo Y (2005) How to break MD5 and other hash functions. In: Advances in Cryptology EUROCRYPT 2005, pp 19–35Google Scholar
  9. 9.
    National Institute of Standard and Technology (2007) Cryptographic hash algorithm competition. Accessed November 2007
  10. 10.
    Matyas SM, Meyer CH, Oseas J (1985) Generating strong one-way functions with cryptographic algorithm. IBM Tech Disclosure Bull 27(10A): 5658–5659Google Scholar
  11. 11.
    Preneel B, Govaerts R, Vandewalle J (1989) Cryptographically secure hash functions: an overview. In: ESAT Internal Report, K. U. LeuvenGoogle Scholar
  12. 12.
    Miyaguchi S, Iwata M, Ohta K (1989) New 128-bit hash function. In: Proceedings 4th International Joint Workshop on Computer Communications, pp 279–288Google Scholar
  13. 13.
    Barreto PSLM, Rijmen V (2000) The Whirpool hash function. pbarreto/WhirlpoolPage.html. Accessed November 2000
  14. 14.
    Nakajima J, Matsui M (2002) Performance analysis and parallel implementation of dedicated hash functions. In: Proceedings of EUROCRYPT 2002, Lecture Notes in Computer Science, vol 2332, pp 165–180Google Scholar
  15. 15.
    Lloyd B et al. (1992) PPP authentication protocols. In: The Internet Engineering Task Force (ITEF) Internet Draft, RFC-1334, October 1992Google Scholar
  16. 16.
    Simpson W (1994) The point-to-point protocol. In: The Internet Engineering Task Force (ITEF) Internet Draft, RFC-1661, July 1994Google Scholar
  17. 17.
    National Institute of Standards and Technology (2002) The keyed-hash message authentication code (HMAC). In: FIPS PUB, vol 198Google Scholar
  18. 18.
    Hoang AT, Yamazaki K, Oyanagi S (2008) Multi-stage pipelining MD5 implementations on FPGA with data forwarding. In: 16th International Symposium on Field-Programmable Custom Computing Machines, pp 271–272, April 2008Google Scholar
  19. 19.
    Wang Y, Zhao Q, Jiang L, Yi S (2010) Ultra high throughput implementations for MD5 hash algorithm on FPGA. In: High Performance Computing and Applications, pp 433–441Google Scholar
  20. 20.
    Chaves R, Kuzmanov G, Sousa L, Vassiliadis S (2006) Improving SHA-2 hardware implementations. In: Cryptographic Hardware and Embedded Systems-CHES 2006, pp 298–310CrossRefGoogle Scholar
  21. 21.
    Jarvinen K, Tommiska M, Skytta J (2005) Hardware implementation analysis of the MD5 hash algorithm. In: Proceedings of the 38th Annual Hawaii International Conference on System Sciences, vol 9, p 298aGoogle Scholar
  22. 22.
    Lee YK, Chan H, Verbauwhede I (2007) Iteration bound analysis and throughput optimum architecture of SHA-256 (384,512) for hardware implementations. In: Proceedings of the 8th international conference on Information security applications, vol 256, pp 102–114Google Scholar
  23. 23.
    Lien R, Grembowski T, Gaj K (2004) A 1 Gbit/s partially unrolled architecture of hash functions SHA-1 and SHA-512. In: Topics in Cryptologyâ CT-RSA 2004, pp 1995–1995Google Scholar
  24. 24.
    Crowe F, Daly A, Kerins T, Marnane W (2005) Single-chip FPGA implementation of a cryptographic co-processor. In: Proceedings. 2004 IEEE International Conference on Field-Programmable Technology (IEEE Cat. No.04EX921), pp 279–285Google Scholar
  25. 25.
    Athanasiou G, Gregoriades A, Panagiotou L, Goutis C, Michail H (2010) High throughput hardware/software co-design approach for SHA-256 hashing cryptographic module in IPSec/IPv6. Global J Comput Sci Technol 10(4): 54–59Google Scholar
  26. 26.
    Dadda L, Macchetti M, Owen J (2004) An ASIC design for a high speed implementation of the hash function SHA-256 (384, 512). In: ACM Great Lakes Symposium on VLSI, pp 421–425Google Scholar
  27. 27.
    Dadda L, Macchetti M, Owen J (2004) The design of a high speed ASIC unit for the hash function SHA-256 (384, 512). In: Proceedings Design, Automation and Test in Europe Conference and Exhibition, vol 256, pp 70–75CrossRefGoogle Scholar
  28. 28.
    Feldhofer M, Wolkerstorfer J (2007) Strong crypto for RFID tags – a comparison of low-power hardware implementations. In: 2007 IEEE International Symposium on Circuits and Systems, pp 1839–1842, May 2007Google Scholar
  29. 29.
    Peris-Lopez P, Hernandez-Castro J, Tapiador J, Ribagorda A (2009) Advances in ultralightweight cryptography for low-cost RFID tags: Gossamer protocol. Inform Security Appl 56–68Google Scholar
  30. 30.
    Kim M, Ryou J, Jun S (2009) Efficient hardware architecture of SHA-256 algorithm for trusted mobile computing. Architecture. Springer Verlag, Berlin, Heidelberg, New York, pp 240–252Google Scholar
  31. 31.
    Perlner R, Chang S, Kelsey J, Nandi M, Paul S, Regenscheid A (2009) Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competition. September 2009Google Scholar
  32. 32.
    Bertoni G, Daemen J, Peeters M, Assche GV (2009) Keccak specifications Version 2. Accessed July 2011
  33. 33.
    Morawiecki P, Srebrny M (2010) A SAT-based Preimage Analysis of Reduced KECCAK Hash Functions. Santa Barbara, CA, 23–24 August 2010Google Scholar
  34. 34.
    Bertoni G, Daemen J, Peeters M, Assche GV (2010) Keccak sponge function family main document. Accessed June 2010
  35. 35.
    Biham E, Dunkelman O (2006) A framework for iterative hash functions: HAIFA. In: Second NIST Cryptographic Hash WorkshopGoogle Scholar
  36. 36.
    Henzen L, Meier W, Raphael C-W, Phan, Aumasson J-P (2009) SHA3 Proposal BLAKE. 7 May 2009Google Scholar
  37. 37.
    Knudsen LR, Matusiewicz K, Mendel F, Rechberger C, Schlaffer M, Søren S, Gauravaram TP (2008) Grøstl – a SHA-3 CandidateGoogle Scholar
  38. 38.
    Lucks S, Schneier B, Whiting D, Bellare M, Kohno T, Callas J, Ferguson JWN (2008) The Skein Hash Function FamilyGoogle Scholar
  39. 39.
    Sheikh F, Mathew SK, Walker RKJ (2010) A Skein-512 hardware implementation. Accessed August 2010
  40. 40.
    Wu H (2009) The Hash Function JH. Accessed July 2011
  41. 41.
    Hanley N, Hamilton M, Lu L, Byrne A, O’Neill M, William P, Baldwin MB (2010) FPGA Implementations of the Round Two SHA-3 Candidates, August 2010Google Scholar
  42. 42.
    Feldhofer M, Kirschbaum M, Plos T, Schmidt J-M, Tillich ASS (2010) Uniform evaluation of hardware implementations of the round-two SHA-3 candidates. In: The Second SHA-3 Candidate ConferenceGoogle Scholar
  43. 43.
    Bertoni G, Daemen J, Peeters M, Assche GV (2010) The Keccak sponge function family: hardware performance. Accessed November 2010
  44. 44.
    Henzen L, Aumasson J-P, Meier W, Phan R VLSI Characterization of the Cryptographic Hash Function BLAKE. Accessed July 2011
  45. 45.
    Beuchat J-L, Okamoto E, Yamazaki T (2010) Compact Implementations of BLAKE-32 and BLAKE-64 on FPGAGoogle Scholar
  46. 46.
    Grøstl – a SHA-3 candidate. Accessed July 2011
  47. 47.
    Baldwin B, Byrne A, Hamilton M et al. (2009) FPGA Implementations of SHA-3 Candidates: CubeHash, Grøstl, LANE, Shabal and Spectral Hash. Accessed July 2011
  48. 48.
    Long M (2009) Implementing Skein Hash Function on Xilinx Virtex-5 FPGA. Accessed February 2009

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  1. 1.Computer Science and Engineering DepartmentUniversity of ConnecticutStorrsUSA

Personalised recommendations