我试图为纹章密码货币创建一个python包装器,我遇到了SHA 512,我不知道,或者反向搜索也没有用。有人能帮我理解这区别吗。目前,我假设它是任意256个位的SHA512。波纹地址编码

发布于 2018-02-15 05:11:34
SHA-256是一个函数,它有高达$2^{64}的输入位,这些比特被分解为512位块,并且具有256位的输出。它被推测为在(resp. 128-、256-和256位安全级别上)抗碰撞、预映像和第二预映像,但它具有一个不幸的属性,即给定$\operatorname{SHA-256}(m)$,而不是$m$,因此对于任意后缀$m'$,$p$只依赖于$m$的长度计算$\operatorname{sma-256}(m \mathbin\Vert p \mathbin\Vert m')$是相对容易的。
SHA-512是一个函数,它有高达$2^{128}的输入位,这些比特被分解为1024位块,并且具有512位的输出。它被推测为在(resp.) 256-、512-和512位安全级别上抗碰撞、预映像和第二预映像,但它具有一个不幸的属性,即给定$\operatorname{SHA-512}(m)$,而不是$m$,因此对于任意后缀$m'$,$p$只依赖于$m$的长度计算$\operatorname{sma-512}(m \mathbin\Vert p \mathbin\Vert m')$是相对容易的。
“Sha-512Half”可能是SHA-512截断为256位。因此,它占用高达$2^{128}的输入位,分解为512位块,并产生256位的输出。和SHA-256一样,它被推测为在(resp. 128-、256-和256位安全级别)的碰撞-、预图像-和第二预图像抵抗。与SHA-256或SHA-512不同,要计算$\operatorname{SHA-512half}(m \mathbin\Vert m')$ (无论是否带有填充$p$ ),只给$\operatorname{ SHA-512 }$(M)$,而不给$m$,推测至少要花费$2^{255}$ sHA-512。
SHA-256和SHA-512函数除了长度扩展特性外,类似于独立的均匀随机选择函数,而SHA-512和SHA-512函数显然不是独立的,因为SHA-512是相同输入的SHA-512输出的一半。SHA-512/256与SHA-512相似,只不过它使用了不同的初始化向量,类似于另一种独立的均匀随机选择函数。
https://crypto.stackexchange.com/questions/55658
复制相似问题