殷爱菡,熊 松,王胜凯
(华东交通大学信息工程学院,江西 南昌 330013)
近年来无线通信正在迅速发展,笔记本式计算机,PAD等终端手持设备以其方便灵活性在无线通信中迅速发展,但无线通信的安全至关重要,现在越来越多的焦点转向用户身份的安全认证。在用户被授权接入网络以前,GSM和UMTS等蜂窝网使用对称加密算法去执行认证和会话密钥管理。对于无线局域网[1](WLAN),对称加密算法RC4的WEP(Wired Equivalent Privacy)协议中说明:即使对无线接入控制采用对称加密技术的认证机制,安全漏洞还是很容易被发现。同时对于克服安全漏洞的无线通信的公钥加密认证协议相继被提出,但大多计算复杂度都很高,后来有人提出使用ECC(Elliptic Curve Cryptosystems)方法进行加密和会话,尽管减少了一些计算复杂度,但没有对用户会话密钥进行检验,网络没有得到认证,用户无法辨认。
本文使用了对称加密算法AES和非对称加密算法NTRU和HASH函数在无线网络中构建双向认证和会话密钥管理协议。NTRU[2]是一种新的公钥加密体制。它是一个在多项式环Z[X]/(XN-1)上的密码系统。NTRU的优点是在高安全等级时有较高的加解密速度、签名验证速度和密钥生成速度,因此被使用在无线网络环境中。NTRU的安全是基于多项式环上的最近向量问题,也是一个NP问题。
相比有线,无线传输的信息更容易被窃取和篡改,一些常见的无线通信威胁包含窃听移动用户身份和用户谈话内容,假装合法用户,追踪用户位置。因此,安全认证是非常重要的,所以无线网络基本安全要求是:1)无线传输信息保密;2)用户位置信息保密;3)防止认证中的伪装;4)防止重复攻击;5)防止不可抵赖性服务。
此外,由于非对称加密有一定的计算复杂度,认证机制应该有更少的计算复杂度和用户存储要求。交换信息应该保持在有限带宽范围。
协议主要符号名称及其代表意义如表1所示。
由于 NTRU[3]系统工作在多项式环 R=Z[X]/(XN-1),元素F∈R将被看成一个多项式或向量
表1 协议主要符号名称及其代表意义
使用“*”表示在R中的卷积运算。例如,设F∈R和G∈R,使H=F*G可表示为
因为H=F+G,在多项式环R=Z[X]/(XN-1)计算H的系数为
本文使用NTRU加密算法和签名算法构建认证协议,在 NTRU 算法中基本的安全参数{N,p,q,Lf,Lg,Lm}能共享,系统参数为{Dmin,Dmax,Lφ,Lw}。通常指定 P=3,p 和 q 互为素数。在参数中,{Lf,Lg,Lφ,Lw,Lm}被指定为N-1阶多项式样本空间。Dmin和Dmax是验证NSS签名的边界参数。Dev(a,b)表示在多项式环a(mod q)和b(mod q)系数不同的个数。
假设在协议中有一个发证机构CA(Certifying Authority)创造和分发证书给用户和网络认证服务器AS(Authentication Server)。CA包含一个请求接入的临时身份,这个身份可能是用户或AS。文中不区分MS即用户和订阅者。
在用户和AS执行真正的注册之前,首先从CA获得自己的证书,也就是初始化。文中假设发布证书是足够安全的。
在初始化中,CA发布证书给用户和AS,CA先为NSS签名算法产生公钥和私钥对,随机选择两个多项式:f∈Lf,g∈Lg满足 f=f0+pf1和 g=g0+pg1,f0和 g0通常是固定的(f0=1和g0={1,-1})。然后计算公钥
CA产生公钥PKCA=h,保密私钥SKCA=f。假设用户和AS都知道f0和g0。
在用户初始化过程中,用户首先选择两个随机多项式SKu∈Lf和gu∈Lg,然后根据加密算法计算公钥PKu。用户保留公私钥对,然后通过安全信道发送信息,信息包含公钥和IDu给CA,在CA收到信息后,CA使用私钥和NSS签名算法时信息进行签名,信息是HASH函数对公钥、临时身份TIDu和作为用户证书Cu的有限期限tu的串联,用户的CA有唯一的TIDu,成功后,CA发送证书Cu,PKCA,TIDu和tu给用户,收到后,用户核查证书信息。
同理在初始化中提到的AS也从CA得到Cs,TIDs,ts和PKCA。
在初始化完成后,认证过程开始执行。图1显示了详细的执行过程。
图1 双向认证协议图
步骤1:用户发送信号给服务器尝试登入,在图中省略这步,接入后,AS选择随机多项式rs。然后AS发送证书Cs同时携带公钥PKs,临时身份TIDs和证书有效时间ts和rs给用户。
步骤2:在步骤1收到信息后,用户首先核查ts是否有效。假如不是,认证过程将被终止。反之,用户根据NSS签名算法[4]核查AS的证书,在核查中,用户选择3个随机多项式: φu,ru1,ru2,其中 ru1是作为密钥[5],加密签名ru2防止中间攻击,并且ru2被用作对验证AS的应答。然后,用户通过NTRU加密算法加密ru1||ru2得到eu。
随后,用户通过签名HASH函数的摘要,即串联TIDu,TIDs,eu和 rs计算 su,这是作为使用 NSS 签名的应答。最后,用户发送 eu和 Cu,TIDu,PKu,tu,su给 AS。
步骤3:收到用户的信息后,AS核查tu,假如过期,认证终止。反之,验证用户的证书,首先用HASH函数计算用户的PKu,TIDu和tu,得到mu。然后根据NSS,核查Dev(f0*mu,Cu)∈[Dmin,Dmax]是真的还是假的,假如是真的,还需要核查 Dev[g0*mu,Cu*PKCA(mod q)]是否在[Dmin,Dmax]中。假如都通过了,则验证了用户的证书。然后解密eu去获得ru1和ru2。为了判断ru1的正确性,和核查用户的身份篡改和假扮,AS仍然需要验证签名su。假如所有以上验证都通过了,用户通信是合法的,然后产生ru2的签名ss,用户可以使用ss验证AS的身份,然后发送用对称密钥ru1加密的签名ss给用户。
步骤4:在收到加密数据后,用户计算D(E(ru1,ss),ru1)去获得AS的签名ss。然后用户通过NSS签名算法验证AS的身份。假如通过了,用户和AS之间的验证就完成了。最后通过TIDu,TIDs,ru2和rs获得会话密钥Ksu
该方案很好地满足了上文描述的安全要求,在协议的时间认证过程中真实的身份没有传输,只有使用临时的身份,因此,攻击者不能窃取用户的身份和发送追踪攻击。攻击者可以在无线通信时通过中断信息传输来攻击协议,攻击者也能获得用户和AS的公钥,但是很难从公钥找到私钥,因为很难在最大格中找到最短向量。所以,攻击者不能找到加密信息,并且伪造签名。协议也能防止攻击者假冒用户或AS,用户到AS的应答被用户签名,攻击者不能得到用户的私钥和伪造签名,因此,这种攻击也是失败的。
直到认证结束,两边都能计算会话密钥。每一次认证,会话密钥是不同的,因为随机数ru2是被保密和更新的。随机数的更新使得会话密钥更新,因此协议能有效抵制已知明文攻击。用户侧协议的计算复杂度比其他协议更低,因为通过NTRU加密的基本运算仅仅涉及小于255的数。NTRU加密和解密比ECC[6]快大约2个数量级。
此外,仍然可以优化算法提高协议安全,通过采用填补技术,NTRU能防止选择密文攻击,使得方案更安全。通过低汉明权重的使用,加密解密和签名速度能被提高。
以下NTRU算法的实现完全采用Java语言编写[7],JDK为SUN公司提供的J2SE5.0,模拟器为SUN公司提供的WTK2.2。试验用PC的CPU为AMD Athlon 2.20 GHz。试验分别对 RSA(Rivest-Shamir-Adleman)、ECC和NTRU进行加密数据分析,结果如表2所示。
表2 数据分析表
由表2可见,在相对安全级下,NTRU在加解密速度上较ECC[8]和RSA算法有明显优势,所以使用NTRU算法加快了加密速度,解决了在双向认证过程的延时问题,使无线通信加密过程在安全状态下运行。
下图2为3种加密算法签名认证过程的时延曲线,其中NTRU比ECC和RSA明显时延短,最后趋于稳定。
图2 3种加密算法签名认证时延曲线图
本文提出了运用NTRU公钥加密算法、对称加密算法和HASH函数的一种新的双向认证方案,该协议不仅能克服一些常见的安全漏洞,也能满足无线非对称加密的需求。目前NTRU算法仍然在发展,有待完善,其安全等级高、速度快、计算复杂度低等特性,使其适于为将来的无线通信网络提供安全保障。
[1]张斌,汤红波,张汝云,等.下一代无线局域网安全性研究[J].电视技术,2007,31(1):62-64.
[2]HOFFSTEIN J,PIPHER J,SILVERMAN J H.NTRU:a ring based public key cryptosystem.[C]//Proc.Algorithmic Number Theory.Berlin:Spring er-Verlag,1998:267-288.
[3]HOFFST EIN J,PIPHER J,SILVERMAN J H.NTRU:a new high speed public key cryptosystem [C ]//Proc.ANTS.Berlin:Springer-Verlag,1998:267-288.
[4]JEFFREY H,JILL P,SILVERMAN J H.NSS:the NTRU signature scheme[C]//Proc.Eurocrypt2001.[S.l.]:Springer- Verlag,2001:211-228.
[5]DAEMEN J,RIJNDEAN V.高级加密标准(AES)算法-RIJNDEAL的设计[M].北京:清华大学出版社,2003.
[6]MENEZES A J,OORSCHOT P C,VANSTONE S A.应用密码学手册[M].北京:电子工业出版社,2005.
[7]徐迎晓.安全性编程实例[M].北京:清华大学出版社,2004.
[8]金纯,聂增丽.数字电视多媒体消息业务认证系统安全研究[J].电视技术,2011,35(11):01-04.