Hmac
SHA1標準步驟
我是一名電腦工程專業的學生,我想為大學項目實現加密功能。我想用 C 實現我個人的 WPA2 雜湊生成器實現(並將其上傳到我的 FPGA)。主要目標是使用這種 FPGA 作為 Hashcat 的替代方案來破解密碼。
為此,我需要各種加密雜湊函式的實現,如 SHA1 和 HMAC-SHA1遵循一個精確的標準:
- sha1_init
- sha1_update
- sha1_transform
- sha1_final
我沒有在網上找到任何具體的實施標準,所以我想知道您是否有任何關於此的資訊:上述標準是一回事嗎?如果是這樣,我在哪裡可以找到有關它的一些指南?
將跳過有關 SHA-1 的(不)安全性的正常講座。
定義 SHA-1 的標準是NIST FIPS 180(最近的修訂版),它指定瞭如何將位串填充為適合在為 SHA-1 指定的壓縮函式中處理的形式,它也指定了。
截至 2019 年,所有目前的 SHA 系列雜湊函式都是單次傳遞的——這意味著一旦處理完消息,您就不必回退到消息的開頭或任何前一部分,這是一個理想的屬性並非所有計算系統(想想嵌入式)都能夠儲存所有消息並通過它們兩次。
我們有充分的理由相信任何未來的散列函式,無論是由 NIST 標準化(例如在輕量級加密過程中)還是任何其他機構(來自 IETF 的 CFRG)都將繼續是單通道的。
您看到的 API 反映了這一點:
- 它初始化用於計算特定消息雜湊的工作上下文,
- 它使用“更新”功能向其提供數據,並且
- 它通過填充消息來完成它並處理剩餘的數據塊。
您看到的“轉換”部分通常不會導出到外部模組,僅由更新和終結函式在內部呼叫。