Project Overview
This project compares the performance and efficiency of MD5 and MD6 hashing algorithms across different programming environments.
The project aims to evaluate execution time, explore parallelization benefits, and assess the potential of hardware acceleration.
Objectives
- Implement and evaluate MD5 and MD6 hashing algorithms in C++, OpenCL, and Verilog.
- Compare performance across different implementations.
- Explore potential optimizations for each approach.
Implementation Details
- C++ (Sequential):
- MD5 implementation as the golden standard.
- Sequential MD6 implementation.
- C++ (Parallel):
- Parallelized MD6 implementation.
- Verilog:
- Hardware-accelerated MD5 implementation on Nexys A7 FPGA.
- OpenCL:
- GPU-based MD5 implementation.
Outcomes and Results
- Successfully implemented all planned algorithm variations.
- Demonstrated the advantages of parallel processing in MD6.
- Highlighted the potential of hardware acceleration with Verilog implementation.
- The system demonstrated accurate and effective source position estimation in most scenarios.
- Provided insights into trade-offs between software and hardware solutions.
Future Work
- Optimize OpenCL implementation.
- Demonstrated the advantages of parallel processing in MD6.
- Explore alternative cryptographic algorithms.
- Refine hardware implementation to overcome identified challenges.
Project Document
For more detailed information, you can view the full project document here: