YvesX
2017-08-29 05:14:03 +08:00
机器擅长的是运算,而人工智能借用计算的手段发展了机器的软肋——模式识别。然而现代密码的设计初衷就是:已知模式,使用机器,算不出来……
多说点吧。
对一段密文解密的条件:
1. 知道怎样解密
2. 知道正确的密钥
针对单一算法,经过大量训练,现在的 AI 逆天了顶多把解密算法给折腾出来。实际情形是 AI 会遇到各种各样的密文,要通过密文的统计学特征把他们区分开,并分别找到解密算法……
密码算法也算是智慧结晶了,种类并没有那么多。你会发现与其让 AI 从连加法都不懂开始学习,不如先喂给它一些常见运算。喂完四则运算就想喂线性变换,喂完线性变换就想喂非线性变换……得了那咱也别揣着明白装糊涂了,直接把解密算法告诉 AI 算了。
反正我们就当解密算法是有了,虽然有可能是你直接给的。
但密钥要怎么办呢?
AI 也觉得很无奈啊,现代密码的设计思路就是要让你知道怎样解密也算不出来,能从密文里搞出密钥的算法本身就是毫无安全性可言的,不会被使用。
于是 AI 学不到任何有意义的特征,只能用它洪荒的理解算个鬼知道怎么来的密钥,这样不断尝试。
而现代密码设计保证了你的运算力是不足以猜解出正确密钥的。
所以这整个过程,就是 AI 学习了或者你预设了解密算法,然后瞎猜密钥,并且算不出来。
那么这和你自己硬编码瞎猜有什么区别呢……
值得一提的是,一些传统的简单密码,比如递推几个字符之类的,应该学得会也解得出来。
嗯,因为它们现在本来就可以被秒解……