什么是加密技术,加密技术是将信息转变为看不懂的东西,也可能是将有用的东西转变为无用的东西,一般都转化为乱码了。加密软件就是实现这种转变的工具,什么是解密,解密就是恢复加密后的东西为原来的样子,同样加密软件也能完成解密工作。
那什么是破解呢?破解就是采用一些不正当的手段来解密被加密的东西。例如为了保护知识产权或保守秘密一些软件或文件被加密了,正常情况下我们用密码和软件就能将其解密。用其它手段得到软件的使用权或得到文件的秘密就要用到破解了。
如何防止破解的发生呢?实际也是容易的,只要方法得当破解根本就不可能。这里只讨论文件加密,许多加密软件本身设计就是不安全的这样的软件是没有办法做到不被破解的。例如winrar的文件加密就是这样,虽然使用了AES加密算法并且使用了salt技术,但它怕穷举攻击如果密码不长很容易被攻破,密码长了也只是时间长些,这是因为其密文内部保存了被加密文件的信息,只有密码正确才能通过鉴别,这是出卖自己的行为,让破解者能用此作为密码的筛选器,从而找出正确的密码。正确的做法是不提供这类筛选器,但是如果不提供密码鉴别服务又有些不近人情,例如用户密码输入错误了软件也不指出错误,显得人机交互性不好,比较好的办法是检测部分密码的正误,也就是说密码错误可以被指出错误,但能通过检测也不一定是正确的密码,只有密码完全正确才能解密,这样就兼顾了安全性和人机交互性的需要。不提供密码鉴别正误服务是安全加密的基础,在此基础上对文件进行二次加密即可安全,道理很简单乱码是没有判别依据的,对乱码进行加密是无法解密的,即便是使用穷举攻击也是不可能的得逞的,除了掌握正确密码的人其它的攻击都无法解密,这样信息就完全安全了。
简单的说没有内置密码评判标准的加密程序通过二次加密即可保证信息安全,如何实现才能高速快捷呢?推荐第一遍加密用随机函数值作为密钥加密,第二遍采用单表置换加密。不用担心随机函数的随机性和周期问题,这对些破解都起不了什么作用,当然尽量选周期长随机性好的来用更好;而单表置换的运算速度是飞快的也很简单,首先程序中有个原始置换表,在用户密码的作用下对原始置换表进行加工,最后进行替换操作。 两者结合起来效率就高了。或者用现成符合条件的软件来二次加密都是可以的。
责编:微科普