Cryptography 密码学-AES和DES S盒

Cryptography 密码学-AES和DES S盒,cryptography,aes,des,Cryptography,Aes,Des,我正在为大学做一些密码学复习练习(准备考试),这个问题让我感到困惑: 大多数分组密码实现将S盒视为查找表。 DES使用8个S盒,每个S盒接收6位,输出4位。AES仅用于 一个S盒,接收8位,输出8位需要多少存储空间 在每种情况下? 我。。。你不知道吗?我不确定这个问题到底在问什么。我觉得我可能缺少一些关于存储和s盒的概念 如果有人能解释一下,那就太好了! 谢谢。这似乎是一个有点奇怪的问题,但以下是我认为我应该如何处理这个问题: 如果实现为查找表,它基本上只是一个数组,而“查找”只是索引到数组中

我正在为大学做一些密码学复习练习(准备考试),这个问题让我感到困惑:

大多数分组密码实现将S盒视为查找表。 DES使用8个S盒,每个S盒接收6位,输出4位。AES仅用于 一个S盒,接收8位,输出8位需要多少存储空间 在每种情况下?

我。。。你不知道吗?我不确定这个问题到底在问什么。我觉得我可能缺少一些关于存储和s盒的概念

如果有人能解释一下,那就太好了!
谢谢。

这似乎是一个有点奇怪的问题,但以下是我认为我应该如何处理这个问题:

如果实现为查找表,它基本上只是一个数组,而“查找”只是索引到数组中

因此,数组元素的数量必须与输入可采用的不同值的数量相对应,例如,如果S盒输入为8位,则有28=256个可能的输入值

数组元素本身的大小对应于输出位的数量。现在,我们通常不能定义元素小于8位(1字节)的数组,但我们假设可以对输出进行编码,这样我们就可以构造一个没有“浪费”空间的数组(如果我们必须在8位数组元素中存储一个4位值,就会出现这种情况)

考虑到这一点,我们应该能够如下计算存储:

Storage (in bytes) = Number of S-boxes x 2Number of input bits x (Number of output bits / 8) 存储器(字节)=S盒数x 2输入位数x(输出位数/8) 因此:

DES=8 x 26 x(4/8)=256字节
AES=1 x 28 x(8/8)=256字节您好!谢谢你的回答。我认为这也是一个奇怪的问题。我只是想弄明白你为什么要把产量降低8?(如果答案很明显,很抱歉,但这是我的第一个密码学主题)除以8得到的结果是字节而不是位。哦,当然。对,这是有道理的。我认为这个答案与他们在讲座中介绍的概念相符,所以我想我现在明白了!非常感谢:)这就是为什么我尝试在Java中使用
Byte.SIZE
,而不仅仅是
8
。这个问题似乎离题了,因为它是关于加密的。此问题属于crypto.stackexchange.com主题->实现细节 DES = 8 x 26 x (4 / 8) = 256 bytes AES = 1 x 28 x (8 / 8) = 256 bytes