-
-
[讨论]安全加密
-
发表于:
2018-10-30 19:35
10695
-
机密的东西为了安全起见,对其进行加密,所谓安全加密是指不能被破解的加密。
有人认为凡是加密都能被破解,那是愚见。能被破解都是自己不严谨造成的。
加密实际就是一种数值变换,一般都是制作一些随机数组作为密钥进行加密的,密钥数组的质量很重要,如果密钥数组能通过NIST检测就算是比较好的。
先看下面的例子:有一个乱码组成的文件,我们对这个文件进行加密,结果依然是乱码。这样的文件就是不可破解的。因为你无法判断解密是否成功 。除非你事先对乱码文件进行了保存,或测量其CRC值,通过比对得到解密是否成功的结论。其实只要密码正确,密文完好无损解密必然会成功的。密文也是一种很娇气的东西,任何损坏都可能造成不能解密的结果。由此得到结论:乱码文件不可破解。因为你没有衡量标准。
有了上面的基础,安全加密就非常容易了,最简单的方式就是对明文进行二次加密。第一次加密就使明文变为乱码文件了,再次加密就完成了安全加密。只要密文完好、软件完好、密码正确,就可以保证解密成功。即使量子计算机来了也不怕,它不是不好解密的问题,而是不能解密对什么攻击都不怕,因为没有前进方向,再强的运算能力也无用武之地。
如果明文本身就是乱码那么一次加密就是安全的。
传统加密软件的致命缺陷:传统加密软件能够将本来不可破解的乱码文件(无任何特征)变为能够破解的东西。它是如何做到的呢?原来它是将明文特征保存在密文中,当你解密时一旦发生错误,它将报告你错误。这样做的结果是对于任何文件使用穷举攻击都能被破解,因为密码长度是有限的,当你穷举了所有情况必定将正解囊括其中。为了一点微不足道的用户体验,出卖加密软件的本分——数据安全,实在是很可悲的事情。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)