《不可破解文件加密程序设计》帖中所附的软件为何不可破解?

  首先一个原因程序没有密码正误的检测,许多软件有这种东西,检测密码的正误,发现密码错误给出提示,密码正确则向下运行。这样似乎很合理实际是将自己出卖了,因为破解者可以用穷举法、字典攻击等利用你的程序攻击你,如果文件较大解密是要花费时间的,但密码检测却能快速的查出密码是否正确,所以能够帮助破解者迫害你自己,多么可悲的事啊。本程序则是不做此检测,只要密码符合基本要求(如字节数长度等)就可以向下运行,密码正确则正常解密,密码错误则解密失败。当然在此情况下对程序进行加工后你仍可进行穷举攻击、字典攻击等,但效率却降低了千百倍,麻烦还不止于此,这时你需要自己去判断结果是否是已经解密的。如果是不明身份的目标则麻烦了,也需要根据不同类型的文件特征进行撒网式搜索吧,编的细致点耗时太多,粗糙点则可能漏网。时间耗不起和漏网都可能导致失败。
  明文由真随机数加密形成的密文,如果真随机数是互不关联的未知数,则密文就是铁桶一般,纵然使用所有计算能力和无限长时间分析结果也是零。
  由随机函数加密的密钥文件,虽然是一般的加密方法,但由于加密对象是真随机数组,依然是无法找出漏洞得到信息的,你也可以看成是真随机数组加密了伪随机数组,并且用的是伪随机数组的哪一段也不知道,随机函数用的种子是用户密码算出来的,而用户密码也是未知数。也许你想了明文也是真随机数组加密的,真随机数组用了两次是不是可以找到突破口,事实上没有这个情况,因为明文的加密是从明文中某一点开始计算的,同样真随机数组也是从某一点开始计算的,此两点都是由用户密码算出的。不知道解密后的正确结果是什么想要解密是不可能的。所用主力随机函数的周期是10的38次方数量级的,不做别的,就是用万亿次机巡视一遍数组也需要多少万亿年的时间。
  本程序可以灵活使用,也大大增加了破解难度。例如操作方式不是唯一的,因为明文加密和密钥加密都可以多次进行,大大增加了使用变数,也就是即使密码正确操作过程错误依然不得正解。可以这样记住密码及操作信息:密码 XXXX 操作 X X,例如,密码是:棋院abc123 操作是:3 2,3表示明文加密了三次,密钥加密了2次。操作过程不唯一虽然提高了破解难度,但也造成了使用难度,可根据保密性质酌情使用。
  由上面的分析就知道为什么是不可解密的了。

猜你喜欢

转载自blog.csdn.net/sjd163/article/details/7949524