表示加密文本的单个字符所需的最小位数是多少。
例如,如果我想加密字母'a',我需要多少位。 (假设有许多使用相同密钥的单个加密字符。)
我是否正确地认为这将是钥匙的大小。例如256位?
答案 0 :(得分:3)
虽然这个问题有点模糊,但首先取决于你是使用流密码还是分组密码。
对于流密码,您将获得与输入相同的位数 - 因此输入字母大小的二进制对数是有意义的。分组密码需要固定大小的输入块,因此您可以使用零填充“a”并对其进行加密,从而有效地将块大小设置为最小值,就像您已经提出的那样。
答案 1 :(得分:1)
如果使用一次性打击垫,则可以使用与明文相同的位数。
答案 2 :(得分:1)
这很难回答。你应该首先阅读一些基本原理。你可以用一个比特(霍夫曼编码风格)'加密''a',当然你也可以使用更多比特。没有任何上下文的256位数字是没有意义的。
这是让你入门的东西: Information Theory - 尤其是查看香农的开创性论文 One Time Pad - 臭名昭着的安全但不切实际的加密方案 Huffman encoding - 不加密,但演示了上述观点
答案 3 :(得分:0)
我担心你到目前为止所有答案都是错误的!我似乎无法回答他们,但是问你是否需要更多关于他们错误的信息。这是正确的答案:
大约80位。
“nonce”需要几位(有时称为IV)。加密时,将key,plaintext和nonce组合起来生成密文,并且绝不能两次使用相同的nonce。因此,随机数需要多大取决于您计划使用相同密钥的频率;如果您不使用密钥超过256次,则可以使用8位随机数。请注意,只有加密方需要确保它不使用两次nonce;解密方只需要关心它是否关心防止重放攻击。
有效负载需要8位,因为那是你有多少位明文。
最后,您需要大约64位的身份验证标记。在这个长度上,攻击者必须先尝试平均2 ^ 63个虚假消息才能获得远程端接受的消息。不要以为没有身份验证标签就可以做到;这对整个模式的安全性至关重要。
在EAX或GCM等链接模式下使用AES将这些放在一起,得到80位密文。
密钥大小不是考虑因素。