首页 > 文章中心 > 正文

可信网络通信与防破解

可信网络通信与防破解

1相关工作

以RSA为代表的非对称加密体系,本质都是利用具备单向性质的数论原理。目前流行的非对称加密算法主要有两大类:一是基于大素数因子分解问题,其中最典型的就是RSA;二是基于离散对数问题,较常见的有ECC和ELGamal。利用这些数学原理,再筛选足够长度的密钥,黑客想要通过计算机进行暴力破解,需要花费难以想象的时间。RSA加密算法自1977年提出以来,已经承受了黑客30多年的暴力破解攻击,计算机的计算能力的愈强,RSA算法则愈不安全。在现在计算能力如此发达的今天,GPU计算,云协同计算,量子计算,无一不在质疑着RSA的安全性。1999年,RSA-155(512bits)被成功分解。2002年,RSA-158也被成功因数分解。2009年12月12日,编号为RSA-768也被成功分解。目前,银行业所使用到的RSA加密算法,至少也为RSA-2048,甚至是RSA-4096级别。

2简化的RSA可信网络通信系统

为了介绍基于RSA体系的可信网络通信模型,我们需要引入Alice和Bob这两个人来进行解释。

2.1RSA公钥与私钥的产生

假设Alice想要通过一个不可靠的网络(如公众WiFi)接收Bob的一条私人讯息。她可以用以下的方式来产生一个公钥和一个私钥:

(1)随意选择两个大的质数p和q,p不等于q,计算N=pq;

(2)根据欧拉函数,求得r=φ(N)=φ(p)φ(q)=(p-1)(q-1);

(3)选择一个小于r的整数e,求得e关于模r的模反元素,命名为d;

(4)将p和q的记录销毁。至此,(N,e)是公钥,(N,d)是私钥。Alice将她的公钥(N,e)传给Bob,而将她的私钥(N,d)藏起来。

2.2加密消息

假设Bob想给Alice送一个消息m,他知道Alice产生的N和e。他使用起先与Alice约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。用下面这个公式他可以将n加密为c:ne≡c(modN)计算c并不复杂。Bob算出c后就可以将它传递给Alice。3.3解密消息Alice得到Bob的消息c后就可以利用她的密钥d来解码。她可以用以下这个公式来将c转换为n:cd≡n(modN)得到n后,她可以将原来的信息m重新复原。

2.4解码的原理

cd≡ne-d(modN)以及ed≡1(modp-1)和ed≡1(modq-1)。由费马小定理可证明(因为p和q是质数)ne-d≡n(modp)和ne-d≡n(modq)这说明(因为p和q是不同的质数,所以p和q互质)ne-d≡n(modpq)。

3具备防御暴力破解能力的可信通信系统设计

为了使上文提及的可信网络通信系统在实际生产系统中安全应用,我们需要进行一些改进。

3.1非对称加密

协商密钥,对称加密传输内容众所周知,非对称加密算法的速度远远慢于对称加密算法。在实际的网络生产系统中,所有通讯内容全部使用非对称加密,会带来可观的性能开销,对于计算能力珍贵的设备(如智能手机)完全不可接受,但是对称加密算法(如AES)却有极其优秀的性能表现。因此,我们可以仅使用RSA算法来协商后续对称加密是所使用的完全随机的密钥。协商完成后,将后续的安全性交给AES加密算法。同时,珍贵的计算能力也决定了我们不能使用太高级别的RSA加密算法。目前实际的网络生产系统中,绝大多数使用的是RSA-1024甚至更低级别的加密,少部分使用到了RSA-2048级别。

3.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的值,即可保证持久的防暴力破解能力。

3.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,依然能够保证本系统具备持续的防御暴力破解能力。

4结束语

本文提出的系统结合了RSA算法和对称加密算法的优点,使得该系统既能发挥对称加密算法速度快的优点,又能发挥公钥算法的优势,能够在智能设备上快速,高效的建立可信的通讯通道。同时在这个系统里,引入了RSA公钥私钥对更新机制,大大提升了了本系统安全性,也使本系统具备持续的防御暴力破解能力。

作者:黄劭琼薛质金玮斌单位:上海交通大学信息安全学院