Project
Description
Cryptographic hash functions turn arbitrary long messages (e.g. files) into fixed size outputs. This functionality is required for example for digital signatures which electronically sign the hash of a message. Currently NIST (National Institute of Standards and Technology) holds a competition for the next hash function standard. One important aspect is how well a new hash function performs in software on micro-controllers. Sphlib is a set of implementations of various hash functions, including the functions in the current hash competition in both C and Java. The C code is meant to be easily imported into other projects, in particular embedded systems. As we have seen in class, C-compilers do not necessarily produce optimal assembly code. It is therefor common practice to implement time critical routines in assembly language and call them from C. Your task for this project is to identify such time critical routines, implement them in assembly for the MSP 430 and document the speed improvement. In this project we are only considering hash functions with 256-bit output.
In order to evaluate the performance of a hash function, benchmarks are being used. A senior design team of our ECE department is adding the MSP430 micro-controller to the eXternal Benchmarking eXtension (XBX) for the benchmarking tool SUPERCOP (System for Unified Performance Evaluation Related to Cryptographic Operations and Primitives). For this project you will NOT be using the XBX, however, as part of the hash competition, the Sphlib has been ported to XBX and several hash algorithms have been sped-up with assembly routines for the AVR microcontrollers. However, no such improvements have been made as of now for the MSP 430.
Schedule
Deadline | Task |
---|---|
November 18th |
|
December 2nd |
|
December 16th |
|
Assignments
Student | Hash Algorithm | Assembly-Functions | Report |
---|---|---|---|
Anandudu Gantala, Sharath Kumar | BLAKE | ||
Anderson, Paul R. | Shabal | ||
Arllen, David | BlueMidnightWish | ||
Avuthu, Nagarjuna Reddy | JH | ||
Brogan, Namyoung B. | Keccak | ||
Chorney, Michael E. | Skein | ||
Desai, Sneha C. | Luffa | ||
Franco, Fabian | ECHO | ||
Giriyan, Dheeraj | Groestl | ||
Habib, Bilal | CubeHash | ||
Krovvidi, Sri Divya | ECHO | ||
Loop, Brian | CubeHash | ||
Mehta, Aditya A. | Hamsi | L (Wrapper) (C) (asm) | |
Mehta, Arth K. | SIMD | ||
Mohammed, Wasim | SHAvite-3 | ||
Pathak, Dwiti Uday | Hamsi | ||
Ramachandran, Deepak | BlueMidnightWish | ||
Rao, Guruprasad K. | Shabal | ||
Shahid, Rabia | Groestl | ||
Sharif, Malik U. | Keccak | ||
Singh, Maninder Pal | Luffa | ||
Tummala, Harika | SHAvite-3 | ||
Uppu, Ravi Kanth N. | Skein | ||
Venkatachalam, Kannan | BLAKE | ||
Venkitachalam, Ananthkrishnan | Fugue | ||
Wilson, Dean R. | Fugue |
Resources
- NIST SHA-3 Competition
- SHA-3 Zoo, information about Hash Functions
- eXternal Benchmarking eXtension (XBX)
- Sphlib
- IAR Embedded Workbench Kickstart for MSP 430 from Texas Instruments Webpage