MD5的全称是- 5, 它是一个安全的散列算法。当输入两个不同的明文时, 就不会得到一个相同的输出值, 故这样的一组输出值不能得到原始的明文。因此, 整个过程是不可逆的运算;正因为这个原因, 要想解密MD5加密算法, 行之有效的只有穷举法, 也就是将可能出现的明文, 利用MD5算法进行重新的散列之后, 把得到的散列值和原始的数据相应的形成一对一的映射表, 然后比较在表中破解密码的MD5算法散列值, 通过匹配从映射表中找出破解密码所对应的原始明文。它的加密过程如图所示。
MD5算法的特点:
(1) 长度固定:不管多长的字符串, 加密后长度都是一样长;
作用:方便平时信息的统计和管理。
(2) 易计算:字符串和文件加密的过程是容易的;
作用:开发者很容易理解和做出加密工具。
(3) 细微性:一个文件, 不管多大, 小到几k, 大到几G, 你只要改变里面某个字符, 那么都会导致MD5值改变;
作用:很多软件和应用在网站提供下载资源, 其中包含了对文件的MD5码, 用户下载后只需要用工具测一下下载好的文件, 通过对比就知道该文件是否有过更改变动。
(4) 不可逆性:无法反向计算出原密码;
作用:基于这个特点, 很多安全的加密方式都是用到, 大大提高了数据的安全性。
几种加密算法的比较
通过对上面几种常用的加密算法的了解, 我们不难通过比较得出以下结论:
(1) 对于DES算法而言, 它最突出的特点便是加密、解密过程迅速, 密钥量短。而在这一点上, RSA由于大多数都进行大数计算, 使得它最快的情况也比DES慢上100倍左右。所以, RSA最大的缺陷便是速度问题。故一般只将其用于少量的数据加密。与此同时, RSA的安全性却十分高, 由于公钥和私钥都是两个大素数 (大于100个十进制位) 的函数, 经过运算可知, 从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 (2) RSA算法的另一优点便是它容易实现密钥管理。RSA算法是世界上第一个能同时用于加密和数字签名的算法, 也易于被人理解和使用。RSA是被研究得最广泛的公钥算法, 从它被提出到现今的三十多年岁月里, 经历了各种各样的攻击和考验, 而逐渐为人们认可, 普遍认为是目前最优秀的公钥方案之一。DSA是基于整数有限域离散对数难题的, 其安全性与RSA相比差不多。DSA多用于签名技术, 而RSA可用于签名和加密。MD5的最大特点便是能够防止明文被他人篡改, 在传输过程中一旦被篡改, 那么计算出的MD5值一定不同, 因此能够检查文件的完整性;其次, 这种加密算法在使用过程中不需要使用秘钥, 相比于上面三种加密算法, MD5使用起来更加的方便。
同时, 针对DES和RSA两种一直广为人们使用的算法来说, 二者在密钥的产生上都存在着不足之处。DES算法尽管产生密钥十分简单, 但必须要做到对密钥进行高度保密, 因而难以做到一次一密。为了保证密钥的秘密性, 还需要经常更换密钥。而RSA算法受到素数产生技术的限制, 产生密钥很麻烦, 因而也难以做到一次一密。随着计算机技术的发展, 二者加密的安全性也同样受到了挑战。攻击DES算法的主要途径是密钥搜索, DES算法使用的是56位长的密钥, 通过计算得知所有可能的密钥数量最多是2的56次方个。随着巨型计算机运算速度的不断提升, DES算法的安全性也逐渐下降。而现今, 人们已能分解140多个十进制位的大素数, 这就对RSA算法的密钥长度提出了很多要求。但随着其长度的增大, 会导致其计算速度更慢, 因此, 诸如此类种种问题便成为无数学者历来研究改进的课题之一。
本次我在通信专业上得到了初步认知与了解, 并将作为一次契机, 使我在此专业上愈行愈远。在将来的研究过程中, 我将主攻对不同加密算法特点的把握, 以及在此基础上更好地改进, 不断完善加密算法, 为通信安全保驾护航。
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需99元,全站资源免费下载 点击查看详情
站 长 微 信: hs105011