I am currently working on a project in which we are working on implementing a fast version of SHA256 using VHDL. Currently our solution consists of multiple cores computing SHA256 iteratively in parralel, but we'd like to implement pipelining. We were able to find plenty of papers detailing how such a process would look for the compression function, such as https://www.scitepress.org/papers/2010/29914/29914.pdf, however we're having trouble finding anything regarding pipelining of the extension function. Do any of you have any recommendations/resources on this topic? Thanks!

  • $\begingroup$ There are parallel hashing, you might consider those. $\endgroup$ – kelalaka Oct 19 at 9:41
  • $\begingroup$ To be clear: The extension function in this case is the pre-processing of the input before it's feed into the compression functions? That seems to be a simple counter + padding operation, not much to pipeline there? $\endgroup$ – SEJPM Oct 19 at 9:56
  • $\begingroup$ Sorry, I might have explained myself a bit unclearly - By extension I mean the step after having padded the input into 512 bit chunks where each chunk is fit into a 64 entry message schedule array. At the example en.wikipedia.org/wiki/SHA-2#Pseudocode, this corresponds to the code commented as "Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array" $\endgroup$ – Elliot Solskjaer Oct 19 at 10:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.