如题。
按照我目前的理解流加密是生成了和明文一样长的密钥,分组加密是分成更小的组来满足密钥长度大于明文长度。应该是满足了完善保密性的要求吧?
为何 wiki 上说 只是这样的改变会缩小密钥空间,因而失去完善保密性。
呢?
另外还有两个问题: 1.密钥需要随机生成,这个生成过程如果使用了伪随机是否也有被猜测出来的可能?但是是在前序密钥被攻破的情况下?
2.由于密钥空间大于或者等于明文空间,所以以穷举法得到的不止一个密钥,所以对方无法确定是哪一个。这个如何理解呢?多个密钥不可以代入尝试一下吗?还是说多个密钥代入实际上都可以通过验证,但是用这个得出的密钥猜测下一次的加密不会成功?
多谢帮助
1
vevlins OP 有个地方看错了:由于密钥空间大于或者等于明文空间,所以以穷举法得到的不止一个密钥=》得到的不止一个明文。
但是这样也可以根据语义等进行比较合理地猜测吧,即使在密码学的意义上而言是不可攻破的 |
2
liuyanjun0826 2018-08-19 12:34:23 +08:00 via Android 1
生出的不是密钥,是密文,你如何做到打出这么多我从未见过的观点
|
3
zjp 2018-08-19 12:39:21 +08:00 via Android
|
4
zjp 2018-08-19 12:45:49 +08:00 via Android 1
|
5
Shura 2018-08-19 17:23:01 +08:00 1
槽点太多,不一一解释了。
流密码和分组密码都不具备你所说的“完善保密性”,只有 OTP(一次一密)被香农证明过是绝对安全的。而这种绝对安全也是指在有限时间内安全,在无限时间,无限计算力的情况下,确实能够将密钥尝试出来,这是无法防御的,所以现代密码学体系的升级主要是让密钥在不影响效率的情况下尽可能的长(ECC 主要是解决效率问题)。 目前计算机的伪随机函数的种子一般都是真随机生成的,所以安全性其实很高了。 “由于密钥空间大于或者等于明文空间,所以以穷举法得到的不止一个密钥,所以对方无法确定是哪一个。”这就是简单的多对一函数,即 f(x1)==f(x2)==y,你通过 y 无法确定是 x1 还是 x2。至于你说的“多个密钥不可以代入尝试一下吗?”。你如何确定你带入密钥的解密结果就是原始消息呢?不是所有的原文都具有可读性。 |