首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成AES (AES-256)查找表

生成AES (AES-256)查找表
EN

Stack Overflow用户
提问于 2013-02-27 00:50:00
回答 2查看 7.4K关注 0票数 5

我正在尝试使用nVidia CUDA在CTR模式下实现AES-256。我已经成功地编码了用于密钥扩展的CPU代码,现在我需要实现实际的AES-256算法。我的问题是如何生成这些表?我知道我需要4 KB来存储这些表,这不是问题。我花了一整天的时间试图找到这些表,但没有成功。我在PDF中发布了一个链接,其中提到了查找表T0、T1、T2和T3,但我不知道这些是什么。它还提到了轮键4、5、6和7,但我也不明白这些索引是指什么。

我最接近于弄清楚如何生成这些查找表的方法是从this project。在代码内部,有一条注释说:

代码语言:javascript
复制
Te0[x] = S [x].[02, 01, 01, 03];
Te1[x] = S [x].[03, 02, 01, 01];
Te2[x] = S [x].[01, 03, 02, 01];
Te3[x] = S [x].[01, 01, 03, 02];

然而,我不能完全确定我是否知道这个符号是什么意思(它是矩阵乘法还是其他什么?)。我唯一认识到的是混合列部分常量矩阵,以及S-box矩阵。

既然有人指出了这一点,那么现在编辑一下--一个查找实现怎么会变得更慢呢?在这里不使用查找表来实现AES是明智的吗?

EN

回答 2

Stack Overflow用户

发布于 2013-03-22 05:00:21

T表是以矩阵形式对AES轮变换的直接描述。要构建它们,请参阅原始的Rijndael NIST proposal,第5.2.1节。

票数 2
EN

Stack Overflow用户

发布于 2015-07-11 16:18:38

如果任何人仍然感兴趣,可以在Go编程语言的标准库- http://golang.org/src/crypto/aes/const.go#L80中找到这些查找表

还有关于如何在同一个包的测试文件中生成表的说明。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15094722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档