题
什么是表示加密文本的单个字符所需的位的最小数目。
例如,如果我想加密字母“A”,有多少位就需要我。 (假设有使用相同的密钥许多单重加密的字符)。
我说得对不对的思维,这将是关键的大小。例如256比特?
解决方案
恐怕所有你有至今都十分错误的答案!看来我不能答复他们,但如果你需要他们为什么是错误的详细信息,可能会问。这里是正确的答案:
关于80位。
您需要的几个位,为“随机数”(有时称为IV)。当你进行加密,你把钥匙,明文随机数产生密文,你绝不能使用相同的随机数的两倍。所以现时需要有多大取决于你计划使用相同的密钥多久;如果你不会使用该密钥超过256倍,你可以使用一个8位的随机数。请注意,这仅仅是加密方需要确保它不使用一个随机数的两倍;解密侧只需要关心,如果它关心防止重放攻击。
您需要8位有效载荷,因为这就是你的明文多少位有。
最后,需要有关认证标签的64位。在这个长,攻击者尝试在平均2 ^ 63虚假最低的消息,他们得到一个由远端接受之前。不要以为你可以不认证标签做;这是整个模式的安全至关重要。
把这些一起在一个链接模式,如EAX或GCM使用AES,你会得到80个比特的密文的。
的关键尺寸是不是一个考虑因素。
其他提示
虽然问题是有些模糊,首先这将取决于是否使用流密码或块密码。
有关的流密码,你会得到相同的比特数的是你把 - 让你输入字母大小的二进制数才有意义。块密码需要一个固定大小的输入块,因此可能垫您的一个用零和加密的是,有效地具有块大小为最小,像你已经提出。
可以具有相同数目的比特作为明文的如果使用一次性垫。
不隶属于 StackOverflow