gpt4 book ai didi

algorithm - 计算用于填充 SHA-256 消息的 k

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:19 25 4
gpt4 key购买 nike

我正在实现 SHS VHDL 中的 SHA-256 算法,在用零填充消息时,我无法想出一种方法来求解 k 的方程。该等式在 SHS 描述中概述如下:

Append the bit “1” to the end of the message, followed by k zero bits, where k is the smallest, non-negative solution to the equation l + 1 + k ≡ 448mod512.

我看过等式 k = 448 - (l mod 512 + 1) 如果 l mod 512 小于或等于 448,它就有效,但是如果它越大,你得到 k 的负数。我知道在这种情况下我们只需要附加“1”,用“0”填充直到我们达到 512,然后再用 448 个零填充,然后是消息长度的 64 位二进制表示。

问过类似的问题here用一个例子回答:

Well, if l = 448 (say), the solution to the equation in the spec gives k = 511

我知道 511 是从哪里来的,但我无法确切地弄清楚如何改变等式来得到这个数字。使用上面的等式得到 k = -1。我意识到我可以在 k 为负的情况下将 512 添加到结果 k 中,这将使我得到正确的答案。但是,我想知道是否有一个单线方程可以避免检查它。

谢谢!

最佳答案

我意识到我可以将 512 添加到等式的右侧,然后将整个方程乘以 512:

k = (512 + 448 - (l mod 512 + 1)) mod 512

这会处理否定答案。

关于algorithm - 计算用于填充 SHA-256 消息的 k,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30552039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com