4.2防御暴力破解 本节所述的防御暴力破解,主要包括两部分的防御。 首先是RSA协商的AES密钥,应具备与加密算法要求完全等同的值域。拿AES256举例,实际应用过程中,常常会出现直接使用密码明文,MD5哈希值作为AES密钥的情况。在密码明文低于8位的情况下,值域z1为264,即使使用MD5哈希值,其值域z2也仅为2128。而实际上,AES256密钥的值域要求z3为2256。可以看到,z1或者z2远远小于z3,减小值域会大大降低AES加密算法的安全性。 在本系统中,我们采用256位的全随机数产生器作为AES密钥,将AES加密算法的暴力破解难度提升至最高水平。 其次是RSA协商过程中使用到的公钥私钥对,应具备持久抵御暴力破解攻击的能力。在考虑了实际生产系统计算能力有限的情况下,本系统引入了RSA公钥私钥对更新机制。具体来说,通过更新机制定期更新RSA公钥私钥队,确保更新时间t1短于当前最强计算力破解当前RSA需要的时间t2。只要t1小于t2,就能保证整个通信系统的安全。当t2随着计算能力的一步步提高而逐步变短时,本系统只需要相应的缩小更新时间t1的值,即可保证持久的防暴力破解能力。 4.3流程综述 同样假设Alice想要通过一个不可靠的网络同Bob收发大量私人讯息。本系统的流程如下所述: (1)Alice首先需要生成一个公钥pub1和私钥pri1,并将公钥pub1通过不可靠网络发送给Bob,自己保存好私钥pri1; (2)然后Alice通过256位随机数产生器得到一个256位的AES密钥pas1; (3)紧接着,Alice使用RSA私钥pri1加密AES密钥pas1,pri1生成的时间t0,当前可知的最强计算能力t2这三个数据,发送给Bob进行通讯协商; (4)Bob收到Alice的协商请求后,使用先前获得的RSA公钥pub1解开数据,得到pas1,t0和t2; (5)Bob接着验证当前时间t-t0是否小于t2,如果不符合要求,则打回通讯协商,要求Alice重新生成新的公钥私钥对,并将公钥pub2再次提供给Bob,接着重新开始协商。直到协商成功完成,Bob通知Alice协商完成; (6)协商完成后,Alice或者Bob想给对方发送私人讯息,只需要选取他们之前协商好的AES密钥pasn,使用AES加密算法加密讯息内容,通过不可靠网络传输; (7)接收方在接收到加密讯息后,也只需要简单的使用pasn解密讯息即可。 从上面的流程中可以看到,通过全随机的AES密钥和RSA公钥私钥对更新机制,即使不使用性能要求非常苛刻的高强度RSA,依然能够保证本系统具备持续的防御暴力破解能力。 5结束语 本文提出的系统结合了RSA算法和对称加密算法的优点,使得该系统既能发挥对称加密算法速度快的优点,又能发挥公钥算法的优势,能够在智能设备上快速,高效的建立可信的通讯通道。同时在这个系统里,引入了RSA公钥私钥对更新机制,大大提升了了本系统安全性,也使本系统具备持续的防御暴力破解能力。 参考文献 [1] 张海燕,RSA算法安全性分析,计算机安全2008.07: 44-48. [2] RSA Labortories. PKCS #1 v2.1: RSA Encryption Standard. June 2002. [3] BRIAN GLADMAN. Implementations of AES(Rijndael) in C/C++ and Assembler[M]. NIST, 2002:1-6. [4] William Stallings. Cryptography and Network Security: Principles and Practice. Second Edition[M]. 北京: 清华大学出版社 , 2002. [5] Diffie W,Hellman M. New Direction in Cryptography[J]. IEEE Transactions on Information Theory, 1976, 22: 664 654. [6] 张淑芬 . R S A 公钥密码体制的安全性分析及其算法实现[J].计算机应用与软件 ,2005,26(5):108-110. |