【问题标题】:A problem about the difference of SHA-1 logical functions between wikipedia and FIPS 180-4关于维基百科和 FIPS 180-4 之间 SHA-1 逻辑函数差异的问题
【发布时间】:2021-10-31 16:19:29
【问题描述】:

wikipedia

standard manual

在计算 SHA-1 时,我们需要一系列逻辑函数,f0, f1,…, f79,

我注意到维基百科和标准手册中的函数定义不同。

奇怪的是,当我选择标准手册中的那些时,SHA-1 结果出错了。

我用了网上的sha-1计算器,发现大家都用wikipedia上写的函数。

为什么?

【问题讨论】:

  • ft(x,y,z)函数,例如0≤t≤19时,wikipedia使用OR运算,而官方定义使用XOR。

标签: ssh sha1 sha


【解决方案1】:

这里是'choose' (0..19) 和'majority' (40..59) 两个版本的真值表('parity' 20..39 和 60..79 两个来源都使用异或) .请找出 ior 结果与 xor 结果不同的行;这些是两个公式产生不同结果的情况。

x y z x^y ¬x^z ior xor
0 0 0 0 0 0 0
0 0 1 0 1 1 1
0 1 0 0 0 0 0
0 1 1 0 1 1 1
1 0 0 0 0 0 0
1 0 1 0 0 0 0
1 1 0 1 0 1 1
1 1 1 1 0 1 1
x y z x^y x^z y^z ior xor
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0
0 1 1 0 0 1 1 1
1 0 0 0 0 0 0 0
1 0 1 0 1 0 1 1
1 1 0 1 0 0 1 1
1 1 1 1 1 1 1 1

提示:没有区别。结果总是一样的,不管你用什么公式,只要你做对了,你就会得到正确的结果。

事实上,在检查我的 180-4 副本时,这甚至在第 4.1 节中就在您引用的部分上方进行了说明:

... [用于 SHA-1、SHA-256 组和 SHA-512 组] 的每个算法都包括 Ch(x, y, z) 和 Maj(x, y, z) 函数;这些函数中的异或运算 (⊕) 可以替换 通过按位或运算 (∨) 并产生相同的结果。

如果你做错了什么,那是因为你做错了什么,但这里没有人是通灵者,所以我们完全不知道你做错了什么。

【讨论】:

  • 非常感谢。我应该在发布问题之前自己完成的真值表工作真的很棒!
猜你喜欢
  • 2017-03-15
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 2021-04-20
  • 2012-09-30
  • 2016-09-15
  • 2019-10-18
相关资源
最近更新 更多