Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security SHA512的安全使用_Security_Cryptography_Sha_Sha512 - Fatal编程技术网

Security SHA512的安全使用

Security SHA512的安全使用,security,cryptography,sha,sha512,Security,Cryptography,Sha,Sha512,我对以下使用SHA512的安全性有疑问: 如果我有两个字符串,x和y。 可以从SHA(x+y)推导SHA(x)和SHA(y)还是反向推导? x+y是字符串x与y相连 提前谢谢 简短的回答是“不”。这将使散列函数(如SHA512)对键控散列方案毫无用处。SHA512可抵抗预映像、第二主映像和前缀预映像 因此: 找到给定SHA512(X)的任何X都很困难 在给定SHA512(X+Y)和Y的情况下,很难找到任何X 在给定SHA512(Y+X)和Y的情况下,很难找到任何X 给定SHA512(X)和S

我对以下使用SHA512的安全性有疑问:

如果我有两个字符串,xy。 可以从SHA(x+y)推导SHA(x)和SHA(y)还是反向推导? x+y是字符串xy相连


提前谢谢

简短的回答是“不”。这将使散列函数(如SHA512)对键控散列方案毫无用处。

SHA512可抵抗预映像、第二主映像和前缀预映像

因此:

  • 找到给定SHA512(X)的任何X都很困难
  • 在给定SHA512(X+Y)和Y的情况下,很难找到任何X
  • 在给定SHA512(Y+X)和Y的情况下,很难找到任何X
给定SHA512(X)和SHA512(Y),也很难计算SHA512(X+Y),因为SHA512不是线性函数

一般来说,SHA512可以抵抗除暴力攻击X以外的所有已知攻击,因为X来自一个小集合——因此,例如,如果SHA512(X)是密码的SHA512,并且密码很弱,则可以通过暴力攻击找到X,但这是因为您选择的X被破坏了,而不是SHA512被破坏了


一般来说,如果X很难猜到,SHA512(X)不会显示X的任何特性。

也许会是解决这个问题的一个更好的论坛。更广泛一点:散列算法应该是不受长度扩展攻击的,而长度扩展攻击正是您所寻找的特性。。。