Skip to content

Engineering study of SHA-256 algorithm parallelized using pyCUDA

License

Notifications You must be signed in to change notification settings

ChristopheBrown/HASH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HASH

HASH stands for Hardware Acceleration of Secure Hashing. This repo is an engineering study of SHA-256 algorithm parallelized using python and pyCUDA.

The cpu source code (developed with anaconda python 3.7) implementation adapts from the SHA-256 wikipedia artcile pseudocode here: https://en.wikipedia.org/wiki/SHA-2#Pseudocode

contact: cb3534@columbia.edu

The cpu implementation is unit tested and is consistent with hashing algorithms that can be found online.

To run:

  • Ensure CUDA, Python, matplotlib, and numpy are installed and runnable on your machine.
  • Clone this repo
  • Open "gpu/sha256.py" and modify the "files" array in main to run the code with whichever files you like. Large files will take longer
  • Run "python sha256.py"
  • Optional, modify the matplotlib code at the bottom to produce graphs. By default, the plot for the execution time of the copy phase will display. More details are in the included PDF.

Useful links in making this:

About

Engineering study of SHA-256 algorithm parallelized using pyCUDA

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages