我是靠谱客的博主 老迟到灯泡,最近开发中收集的这篇文章主要介绍SHA3(Keccak)设计、大小端与实现SHA3设计、大小端与实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SHA3设计、大小端与实现

看NIST提供的SHA3中间值文档会发现非常奇怪,并不符合常见的设计文档中的大端表示法方,与FIPS202中多速率填充也并不一致,附录中是这样填充的M || 0x06 || 0x00 … || 0x80或者M || 0x86。

这是为了在实现中方便为了在小端平台上直接将8bit字节转换为64bit长整数类型而设计的。

在这里插入图片描述

我们在实现r=576,c= 1024,b=1600下的SHA3时,一个lane大小为64bits,即一个uint64_t数据类型,我们将其简化变短一点,按照文档的大端表示填充会如下所示:
在这里插入图片描述

而按照M || 0x06 || 0x00 … || 0x80或者M || 0x86填充后可以发现直接将字符串放入lanes中,会有如下的效果,

在这里插入图片描述

可以发现填充经过小端的自动转换后变得正确了,然而这种实现下起始端也变了,这样我们在实现的时候循环移位的方向就需要与大端表时的方向相反。

ref

Examples with Intermediate Valueshttps://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/example-values

FIPShttps://csrc.nist.gov/publications/detail/fips/202/final

https://cryptologie.net/article/387/byte-ordering-and-bit-numbering-in-keccak-and-sha-3/

-bit-numbering-in-keccak-and-sha-3/

最后

以上就是老迟到灯泡为你收集整理的SHA3(Keccak)设计、大小端与实现SHA3设计、大小端与实现的全部内容,希望文章能够帮你解决SHA3(Keccak)设计、大小端与实现SHA3设计、大小端与实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部