密钥交换协议(共7篇)
密钥交换协议 篇1
摘要:近年来椭圆曲线密码系统成了公开密钥加密体系的一个新的研究领域。椭圆曲线密码系统可以应用于数字签名、网络安全、电子商务等等。本文对椭圆曲线密码体制做了简要介绍, 讨论了该密码体制中明文的嵌入问题, 给出了椭圆曲线密钥交换协议的原理和实现方案, 最后给出了实验结果。
关键词:椭圆曲线,明文嵌入,密钥交换
0 引言
信息已随着计算机技术的迅猛发展, 逐步伸展到交通、工业经济、科学技术、社会安全和公共生活的各个领域, 成为现代社会中不可分割的一部分。保护信息的安全, 特别是保护重要信息的安全, 成为国际社会普遍关注的重大问题。椭圆曲线最初是仅仅作为数学问题被研究的, 直到二十世纪八十年代中期, Neal Koblitz和Victor Miller分别独立提出将椭圆曲线应用到密码体制中, 从那时起, 椭圆曲线越来越多地运用到加密体制中, 由于其所基于的数学问题的困难性被公认是目前已知的公钥密码体制当中每位提供加密强度最高的一种体制, 预计椭圆曲线在不久的将来会取代现有的加密模式。本文首先介绍椭圆曲线, 其后介绍椭圆密码体制中明文嵌入的问题, 之后介绍椭圆曲线密钥交换协议, 最后给出成功嵌入到明文中的点进行密钥交换的过程及结果。
1椭圆曲线
椭圆曲线不是椭圆, 它来源于椭圆积分:
定义:一个域上K的椭圆曲线被定义为维尔斯特拉斯等式:
K上的椭圆曲线E被表示为E (K) 。E上点的数字被表示为#E (K) 。通过改变变量, 不同特征的域上的维尔斯特拉斯等式可以转换 (简化) 成不同的格式。
本文中, 我们使用域K≠2, 3的域且维尔斯特拉斯等式可以被转化成x3+ax+b (a, b∈K其中) 一个三次多项式, 它需要满足条件4a3+27b2≠0 (这点保证此多项式没有重复根) 。一个K上的椭圆曲线E是一组点 (x, y) (x, y∈K的) 集合且满足等式y2=x3+ax+b。
2 椭圆曲线中的明文嵌入
几乎所有的加密系统都需要一种让原文变为可以进行数学操作的数值。为了能使用椭圆曲线密码系统, 我们也需要一个能将明文映射为椭圆曲线上的点的一种方法。只有这样, 椭圆曲线密码系统才可以对那个点进行椭圆曲线操作来产生一个新点作为密文。
将明文嵌入到随机的椭圆曲线中并不容易, 现有的嵌入算法是确定性算法和概率算法。确定性算法是由孙琦与肖戎在1989年提出的, 它只适用于形y2=x3-Dx如这样的特殊曲线。这两种嵌入算法明文有一定的限制性, 总会出现某些明文不能嵌入到曲线的情形。本文提出的算法它的核心思想是利用明文在机器中的机器表示作为输入, 在嵌入过程中变动明文, 具体算法如下:
输入:明文C (字符串型)
输出:明文嵌入曲线得到明文的x, y坐标
3 密钥交换协议的基本思想——保密信盒
保密信盒:设A, B两个人需要进行保密通信, 他们选择一个牢固的信盒。
(1) A把需要发送的信件装入信盒, 用自己的锁锁上信盒, 钥匙自己保管好, 把信盒送给B;
(2) B到信盒后, 由于没有钥匙, 当然不能打开信盒。相反地, 他在信盒的另一个并排的锁环处又加上了自己的锁 (并列) , 钥匙也自己保管起来, 把信盒又回送给A;
(3) A收到信盒后, 打开自己的锁, 把信盒再次送给B;
(4) B收到信盒, 用自己的钥匙打开信盒, 取出信件。
我们看到:
(1) 这是一次无接触信息交换, 不需要密钥的传递过程;
(2) 这是一个两趟协议, 从而是一种非实时通信方式, 不便用于直接通信, 一般用来传递对称密钥, 所以这一协议称为密钥交换协议;
(3) 信盒的设计需要:两把锁可以并列地锁上、打开, 互不影响。
4 ECDH描述
Diffie-Hellman算法是第一个公开密钥算法, 早在1976年就发明了。其安全性源于在有限域上计算离散对数比计算指数更为困难。Diffie-Hellman算法能够用作密钥分配——会话双方A和B能用它产生秘密密钥——但是它不能用于加密或解密信息。
协议如下:
(1) A选取一个大的随机整数x并且发送给B X=gx mod n。
(2) B选取一个大的随机整数y并且发送给A Y=gy mod n。
(3) A计算k=Y x mod n。
(4) B计算k'=X y mod n。
k和k'都等于gxy mod n。
还有许多Diffie-Hellman的变形, 比如三方或多方的DiffieHellman, 扩展Diffie-Hellman算法等等, 在这里不再介绍。椭圆曲线的密钥交换协议 (ECDH) 过程描述如下:
(1) A选择一个比n小的整数nA, 这是A的私有密钥。然后A产生一个公开密钥PA=nA*G;这个公开密钥是E (a, b) 中的一个点。
(2) B以 (1) 的过程选择他的私有密钥并计算他的公开密钥PB。
(3) A产生秘密密钥K=nA*PB。B产生秘密密钥K=nB*PA。
步骤 (3) 的两个计算得到相同的结果, 因为:
nA*PB=nA* (nB*G) =nB* (nA*G) =nB*PA
vlong Random (vlong n) 用于产生随机数。
输入:椭圆曲线的模数p。
输出:p之内的随机数k;
函数ECPoint operator* (vlong k, ECPoint&P) 的功能是进行计算公开密钥和秘密密钥。
5 实验结果
我们选用
P=0X FFFFFFFFF FFFFFFFFF FFFFFFFFF 99DEF836146BC9B1 B4D22831;
作为函数vlong Random (vlong n) 的输入, 数k和P163的基点坐标
X=188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD82FF1012
Y=07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A11E794811
作为函数ECPoint operator* (vlong k, ECPoint&P) 的两个输入。运行结果如下:
第一组测试数据:
A的私钥:
Ka=0X 6FAA94 A258CCCC CC90F812;
A的公开密钥:
PA.X=0X 7F38D43 BDCE8FE3 E325A07 682E973758C37131 82D7B117;
PA.Y=0X B4837BBA 4E512EE4 C6A98031 F0434FBEC512F7E 959D6DE;
B的私钥:
Kb=0X 7344A2 CFD2CCCC CC90F812;
B的公开密钥:
PB.X=0X 67D83CF3 DD3D02C6 EB64791 1F7950FAC9C478CD CF15D268;
PB.Y=0X 89C7F1D3 21188A58 77967682 2183338E6F23BDD4 FCAFDA96;
交换密钥后得到的会话密钥为:
EXCHANGE.X=0X B75DCB1F C81AEB33 524410BAFD11BF91 5625AB6E 946E6F78;
EXCHANGE.Y=0X 599F5D8A A88022EE 74D2EDB72CF2443D 8F418AEA 5AE61C3B;
第二组测试数据:
A的私钥:
Ka=0X E1DB94 EF82CCCC CC90F812
A的公开密钥:
PA.X=0X 7508DB61 63FAF58B 5CC1F535 6D045AB922525EE1 28D2AFC3;
PA.Y=0X 8F233D80 491954B9 D4F7944A 7669163D6C727075 C9411E37;
B的私钥
Kb=0X E47677 9978CCCC CC90F812;
B的公开密钥
PB.X=0X CCC04032 4BC68B74 FD6D3F3 DC369A0C31F48E28 DCF1E368;
PB.Y=0X 281A4755 B1F10DF3 12BAD055 EB9AB98FE6FCEA68 3108692C;
交换密钥后得到的会话密钥为:
EXCHANGE.X=0X E9D7F674 4016757F 1CBD60E2F6C695F5 1EE794D3 CDD9F98E;
EXCHANGE.Y=0X EFE4A6BC 901C0414 6D63AA0D3E3F8B62 883C5C83 30CDB1A8;
第三组测试数据:
A的私钥:
Ka=0X C8A149 DCECCCCC CC90F812;
A的公开密钥:
PA.X=0X 8C94D630 615D0F8C D791763 EB99D6FF208348F4 7A6C029F;
PA.Y=0X AEBFB954 EC38EC47 6116988C 1FF9646046B54C51 C2DEA122;
B的私钥
Kb=0X CBEBDB 85E2CCCC CC90F812;
B的公开密钥
PB.X=0X 39CFA269 D7478FB2 8828AC0A AB1F24EFB9FC0DE DB4A308D;
PB.Y=0X 4E10AE13 F5389F09 BA1A0AE4 B78AC7FB33AAA718 2ED76CC1;
交换密钥后的得到的会话密钥为:
EXCHANGE.X=0X DD63CDA1 C724481D 92887CE9CE5B4A28 44C18D59 DE349291;
EXCHANGE.Y=0X 1D97D8ED 8792E0E3 1C43AF1117E457F3 28BFA61E 7709CF7A;
6 结论
椭圆曲线密码系统的主要优势是它可以用比较短的密钥达到与RSA同样安全的级别。本文讨论了椭圆曲线密钥交换协议, 通过大量实验数据测试, 椭圆曲线密码系统能高效安全地实现密钥交换。
参考文献
[1]Bruce Schneier.应用密码学.北京:机械工业出版社.2000.
[2]Wade Trappe, Lawrence C.Wasington.Introduction to Cryp-tography With Coding Theory, Beijing.Science Press.2004.
[3]赵君卫, 王保保.椭圆曲线密码体制中明文嵌入的研究.微机发展.2003.
[4]Chou-Chen Yang, Ting-Yi Chang, Min-Shiang Hwang, A new anonymous conference key distribution system based on the ellip-tic curve discrete logarithm problem, Computer Standards & Inter-face 25.2003.
[5]W.Diffle and M.Hellman.New dircrions in cryptograpny.IEEE Transaction on Information Theory.1976.
[6]林淑芬.基于椭圆曲线的数据加密系统的实现.厦门大学硕士学位论文.2002.
一个强安全性的三方密钥交换协议 篇2
密钥交换协议的目的是使通信双方用易于记忆的口令与服务器进行认证,建立共同的会话密钥,以能够实现在不安全的信道上安全地进行通信,文献[2]首先提出了一个两方密钥交换协议( 2PAKE) ,初步实现了通信双方的相互认证和密钥交换,但是由于2PAKE协议并不适用于像P2P这样有大量用户需要通信的系统,因此一系列的三方密钥交换协议( 3PAKE) 也随即被提出[2,3,4]。在三方密钥交换协议中,通信双方在可信服务器的帮助下协商好一把会话密钥。3PAKE协议根据用户与服务器共享的口令类型可以分为两类: 对称型和非对称型。对称型指的是用户和服务器共享一个相同的口令,当服务器泄露时,攻击者可以直接得到用户的口令,可以冒充任意一个用户进行攻击; 而在非对称型中,用户独自持有口令,同时与服务器共享对应的验证元,即使服务器发生泄露,攻击者也无法直接获取用户的口令,而是需要一些额外的时间来对验证元进行离线字典攻击以获取真正的用户口令,这也就给了服务器通知用户受到攻击的时间,降低了服务器泄露后的安全风险。在已有的文献中有不少关于基于验证元的三方密钥交换协议的研究,2008年,文献[5]利用双线性对的性质提出了一个高效的基于验证元的3PAKE协议,但随后文献[6]指出其容易受到内部人攻击和重放攻击,并提出了一个改进协议。然而该改进协议仍容易受到离线字典攻击和服务器密钥泄露攻击等安全威胁。2009年,文献[7]提出了一个基于异或运算的3PAKE协议,但是该协议容易受到服务器密钥泄露攻击、内部人攻击等威胁。2012年,文献[8]提出了一个基于验证元的3PAKE协议,在该协议中通信双方先分别与服务器协商好一般高熵的临时密钥,然后再以这把高熵密钥为基础、在服务器的帮助下生成通信双方所需的会话密钥,该协议由于要生成高熵密钥,所以导致过程复杂且计算开销过大。同年,文献[9]也提出了一个基于验证元的三方密钥交换协议,并声称该协议具有强安全性,且能够抵御包括口令泄露伪造攻击、服务器泄露攻击等各种已知攻击,但通过我们的安全性分析发现,该协议仍然容易受到服务器泄露攻击与服务器泄露伪造攻击的威胁,并以此为基础提出了一个高效安全的改进协议。
1 前置知识
1. 1 双线性对
假设G1为q阶的循环加群,G2为q阶的循环乘群,e: G1*G1- > G2为双线性对。P,Q∈G1,e满足以下性质:
( 1) 双线性性对于任意a,b∈Z ,下列等式总是成立的: e( a P,b Q) = e( P,Q)ab。
( 2) 非退化性总是存在P,Q∈G1,使得不等式e( P,Q) ≠1成立。
( 3) 可计算性对所有的P,Q∈G1,总是存在着有效的算法来计算e( P,Q) 。
1. 2 设 G 是由点 P 生成的循环加群,下面介绍一些 G上的数学难题
( 1) 离散对数问题( DLP)给定P,Q,求k,使其满足Q = k P。
( 2) 计算性Diffie-Hellman问题( CDH)设a,b∈Z*P,给出aP ,bP ,计算ab P。
( 3) 判定性Diffie-Hellman问题( DDH)设a,b,c∈Z*P,给出a P,b P,c P,判定q。
2 文献[9]的协议
2. 1 协议描述
下面简要回顾一下文献[9]的协议,先介绍一下要用的参数,A,B分别为用户,S为服务器,pw1,pw2分别为用户A,B各自独享的口令,对应的验证元分别为W1= gpw1,W2= gpw2,其中g为q阶有限循环群G的生成元,验证元为用户与服务器所共享,对应着用户A和B,S分别存储着参数S1= H( s1) ,K1= gS1和S2= H( s2) ,K2= gS2。
其中s1,s2∈Z*q。H1、H2、H3、H、T为5个不同的哈希函数,其中哈希函数和( G,q,g) 均为公开参数。假设A要与B通信,协议过程如下:
Round1 A通知B协议开始。
同理,B也进行同样的验证,并计算相同的会话密钥SKBA=H3( A,B,S,N,σ) 其中σ = ( Xz)y。
2. 2 对文献[9]协议的攻击方法
( 3) 口令泄露伪造攻击假设A的口令PW1被E得到了,E先计算W1= gpw1,后面的攻击过程和( 2) 一样。
由上述分析可知,该协议无法抵御服务器密钥泄露攻击和口令泄露伪造攻击,这也是目前很多3PAKE协议所存在的弊端,因此本文提出了一个新的基于验证元的3PAKE协议,并通过安全性分析证明它是安全的。
3 本文协议
本节我们将详细介绍本文协议的具体过程。下面是协议用到的参数,A、B分别为合法用户,S为服务器,A、B的口令分别为PWA、PWB,对应的验 证元分别 为YA= H1( A,S,PWA) 、YB= ( B,S,PWB) ,口令为用户独享,验证元为用户与服务器共享,s是服务器S的私钥,PS= s P为公开参数,G1是q阶的有限循环加群,生成元是P,G2为有限循环乘群,e是双线性对,G1* G1- > G2。协议过程如图1所示。
Round1 A广播( A,B,S) ;
4 安全性分析
( 3) 口令泄露伪造攻击同( 2) ,即使E得到了A的口令PWA,由于无法获得服务器的私钥s,因此无法通过第三轮里A对服务器S的验证,即无法冒充其他用户来与A进行通信。同理,即使E得到了B的口令,也无法进行口令泄露伪造攻击。
( 4) 离线字典攻击传递的消息ZAS、ZBS、ZSA、ZSB都含有两个或两个以上E未知的参数,因此E无法进行离线字典攻击。
( 5) 在线字典攻击在第三轮里,S会验证用户是否真的知道口令,一旦验证失败次数达到了一个预定值,就知道谁的口令正在作为在线字典攻击的目标,就可以采取相应措施了,因此本协议可以抵御可测的在线字典攻击。同理,不可测的在线字典攻击也是不可行的。
( 6) 内部人攻击和未知密钥共享攻击假设敌手E通过腐化等方式得到了C的口令和验证元PWC、YC,或E本身就是合法用户,若E想假冒A与B进行通信,由于第三轮里S对用户的身份、B对用户的身份均会进行验证,因此攻击失败。
( 7) 前向安全性前向安全性指的是即使敌手获得了一个或多个用户的口令,也无法影响以前由该口令建立的会话密钥安全。在本协议中,即使PWA、PWB、YA、YB均被敌手E得到,由于每个密钥的产生都需要双方用户和服务器各取一个随机数a,b,c参与到会话密钥的计算中,因此敌手E仍不能破坏之前的会话密钥安全。在本文协议中,会话密钥和口令之间具有独立性,因此本文协议具有完美的前向安全性。
( 8) 重放攻击因为每一次协议的运行都有着通信双方和服务器随机生成的新鲜性标识符a,b,c,因此敌手不能通过重放以前的旧消息来影响到协议的正常运行。
( 9) 中间人攻击敌手E无法模仿用户A( B) 来与服务器S通信,因为不知道用户A ( B) 的口令,无法生成正确的ZAS( ZBS) ,通不过第三轮里S对用户A( B) 的验证; 敌手E也无法模仿服务器S来与用户A( B) 通信,因为不知道服务器S的私钥s和用户A( B) 的验证值,因此无法生成有效的ZSA和ZSB,通不过第三轮里用户A( B) 对服务器S的验证。
5 效率分析
本文从指数运算、点乘运算、哈希运算等几个方面进行效率分析,表1是文献[6]、文献[9]和本文协议的效率对比:
由效率分析表可知,本文协议比其他另外两个协议效率要更高,因为本文只是简单引用了双线性对的性质,达到了完善的双向认证机制的目的,避免了繁琐复杂的运算。且与另外两个协议相比,本文协议有着更高的安全性。
6 结 语
本文对现有的一个基于验证元的三方密钥交换协议进行了安全性分析,指出其是不安全的,并以此为基础提出了一个新的3PAKE协议,该协议能够很好地抵御包括服务器密钥泄露攻击在内的各种已知攻击,并与其他同类协议相比,具有较高的效率。
摘要:先对一个基于验证元的三方密钥交换协议进行安全性分析,指出其容易受到服务器泄露攻击等安全威胁,并以此为基础提出一个改进的密钥交换协议。通过安全性分析,证明该协议能够抵御服务器密钥泄露攻击﹑离线字典攻击等各种已知的攻击,且与其他同类协议相比,新协议具有较高的效率。
关键词:验证元,三方密钥交换协议,服务器密钥泄露攻击,安全性分析
参考文献
[1]Bellovin S M,Merritt M.Encrypted key exchange:password-based protocols secure against dictionary attacks[C]//Proc of the 1992 IEEE Symposium on Research in Security and Privacy.Oakland:IEEE Computer Society Press,1992:72-84.
[2]Kwon J O,Jeong I R,Sakurai K,et al.Efficient verifier-based password-authenticated key exchange in the three-party setting[J].Computer Standards and Interfaces,2007,29:513-520.
[3]Liu X M,Zhou F C,Chang G R.Improved key exchange protocol for three-party based on verifier authentication[J].Journal of Southeast University:English Edition,2008,24(3):322-324.
[4]许春香,何小虎.高效的基于口令的三方密钥交换协议[J].电子科技大学学报,2012,41(4):596-604.
[5]李文敏,温巧燕,张华.基于验证元的三方口令认证密钥交换协议[J].通信学报,2008,29(10):23-28.
[6]邓少锋,邓帆,李益发.两个三方口令密钥交换协议的安全性分析[J].计算机工程与应用,2011,47(10):101-105.
[7]杨秀梅,周福才,刘广伟,等.新的三方密钥交换协议[J].东北大学学报:自然科学版,2009,30(7):976-979.
[8]项顺伯,柯文德.有效的口令认证的三方密钥交换协议[J].计算机工程与应用,2012,48(16):107-116.
密钥交换协议 篇3
随着网络技术体制Everything-over-IP的发展以及向IPv6的加速过渡, IPSec[1]作为IP层主流加密标准及IPv6必选安全功能, 受到广泛关注。密钥协商是IPSec的核心功能, 是建立安全隧道的重要步骤, 因此IETF为IP-Sec专门制定了互联网密钥交换协议IKE[2]。IKE的目标是在不可信的网络环境下完成通信双方的身份认证、策略协商以及会话密钥交换, 但在协议设计中过于追求理想化和通用化, 增加了协议自身的复杂性, 阻碍了IPSec的大规模应用。IKE有3大缺陷: (1) 消息回合数多, 协商效率低, 易受DoS攻击; (2) 协议组合过多, 描述复杂, 可理解性和互操作性差; (3) 可选项冗余, 需频繁协商选择。因此, IKE安全和效率方面的优化研究成为IPSec领域的热点。
当前密钥交换协议研究方向有: (1) 以原有IKE为基础进行修改, 典型代表是IKEv2[3]; (2) 抛开IKE设计全新的协议, 典型代表是快速密钥交换协议JFK[4]。IKEv2是IETF IPSec工作组推出的IKE升级版, 保留了IKE的大部分特性, 包括两阶段协商、身份隐藏、前向安全等, 同时通过减少主模式消息来回次数、增加无状态Cookie等机制提升协议的安全性和高效性。JFK是一种全新的协议, 放弃了服务协商, 响应者有权设置自己的服务要求, 任何由响应者提到的原始机密都是可以接受的。
在IKEv2和JFK的基础上, 研究人员提出了大量的优化改进方案。本文对IKEv2和JFK协议的安全和效率进行综合分析, 针对IKEv2和JFK协议中抗DoS攻击与完美前向安全难以共存的问题, 结合轻量化、简洁化的密钥协商需求, 提出一种轻量级的密钥交换协议LKE (Lightweight Key Exchange) , 同时具备抗DoS攻击和完美前向安全两种特性, 减少了报文交互数量及公钥运算量, 从而实现密钥协商过程安全和提升效率。
1 IKEv2和JFK协议及缺陷分析
1.1 IKEv2协议介绍
IKEv2是IETF IPSec工作组于2004年5月发布的最新版IKE协议草案, 保留了IKEv1的基本功能, 同时大幅精简了原有协议, 其协议交互过程如表1所示[3]。
1.2 JFK协议
JFK协议是专为下一代网络所设计的密钥交换协议, 相对于IPSec中标准的IKEv2协议, JFK将其两个阶段的思想优化为一个阶段, 整个密钥交换过程包括简单的2次交换、4条消息, 协议实现更为简单, 安全性及效率更高。JFK协议的实现基于Diffie-Hellman交换, 并引入无状态连接思想, 在一个规定的时间间隔内, 为所有会话分配同一个Diffie-Hellman指数, 在时间间隔到达后, 重新计算指数值并用于之后的通信, 从而实现阶段性前向安全。
根据通信实体保护策略的不同, JFK分为JFKi和JFKr两种类型。其中JFKi仅提供对发起端的身份信息保护, 而JFKr同时对发起端和响应端提供保护机制[4]。
JFKi协议两个来回中包含4条消息, 见表2。
协议交换中所需密钥Ke、Ka和Kir的计算过程如下:
Ke=Hgir{NI, NR, 1}:用作消息加密的共享密钥;
Ka=Hgir{NI, NR, 2}:用作消息完整性验证的共享密钥;
Kir=Hgir{NI, NR, 0}:传递给IPSec等应用的共享密钥。
JFKr协议消息交换如表3所示。
JFKr协议的交换方法和JFKi协议基本一样, 只是提供的身份保护机制不同, 加密和认证密钥的生成方法均和JFKi一致。在消息3和消息4中, 双方的身份通过Ke和Ka进行加密和认证, 从而防止了被动攻击, 另外接收端的身份可以防止主动攻击。
1.3 IKEv2和JFK协议缺陷分析
根据有关研究成果及笔者分析, 两种协议存在的主要安全缺陷有:
(1) 抗DoS攻击与完美前向安全难以两全。完美前向安全是指密钥信息的泄露不影响之前会话中已加密信息的机密性[11]。通常完美前向安全是通过密钥单向演进[11]、每次协商采用不同随机数以及密钥用后立即销毁等方式实现的。
IKEv2通过无状态Cookie机制实现一定程度的抗DoS攻击能力, 其基本思想是将Cookie值与发起者IP地址绑定, 并通过第一轮报文交互验证Cookie中显示的IP地址与发起者IP的一致性, 排除伪造大量报文发起的DoS攻击。但对于分布式DoS攻击, 由于攻击者控制的大量僵尸主机拥有真实IP地址, 能够通过一致性验证, 使得Cookie抗攻击机制失效。
JFK为提升抗DoS攻击能力, 在一定的时间间隔内使用同一DH指数进行运算, 从而大量节省DH指数运算所需的计算资源。但DH指数重用使得前向安全性只在这个时间间隔内存在, 这个时间间隔被称为前向安全区间[9]。
(2) IKEv2报文来回数量较多、计算量较大, 整体效率较低。
(3) JFKi对响应者身份信息缺乏保护[10]。
(4) JFK取消了算法套件协商过程, 增大了协商失败的可能性。JFK协议取消了加密和认证算法的协商, 由Responder指定使用加密和认证算法, 如果Initiator恰好不支持Responder所提出的加密或认证要求, 通信将被迫中断。
2 LKE协议设计
2.1 设计目标
LKE的总体设计目标是在客户端/服务器架构下, 针对一对多通信的协商特点, 提出高安全、高性能的专用密钥交换协议, 具体设计目标如下: (1) 提高服务器端抗DoS攻击及分布式DoS攻击的能力; (2) 完美前向安全, 防止服务器端某一点被攻破造成大范围安全影响; (3) 解决IKEv2与JFK之间的抗DoS攻击与PFS无法共存的问题; (4) 减少协议全过程报文交互数量, 保持协议简单性, 降低协议处理导致的性能负担; (5) 减少协议全过程的公钥算法使用, 降低计算资源消耗; (6) 双方身份认证及身份隐藏。
2.2 符号说明
见表4。
2.3 协议设计
LKE协议的基础数学框架与IKEv2及JFK相同, 仍采用Diffie-Hellman模型。借鉴了IKEv2两阶段交换的思想, 同时将第二阶段的报文数量压缩为2个, 使得总的报文数量与JFK相同, 为4个。因此, 报文3、4是协议的重点, 以下依次介绍4个报文的内容及双方收到报文后的操作。
报文1中, SAi’包含发起者支持的一组用于密钥协商阶段的算法, 发起密钥协商过程。
报文2中, 信息内容根据作用分为3类: (1) 从SAi’中选定一组算法组SAr’; (2) 用于生成临时密钥的密钥材料, 包括Diffie-Hellman指数gr’和nonce值Nr’ (也用于puzzle计算) , 两者均为本地生成的随机数; (3) puzzle计算的参数Nr’、k和Y, 该机制可提供抗DoS攻击能力, 需在本地存储g、r、Nr’、k、Y等参数。在一段时间内, 报文2中的Nr’、k、Y可在与多个发起者的协商中重复使用, 其中k、Y可重用是因为Puzzle函数中的IDi和Ni’使每个发起者的X不同;Nr’可重用则是基于gr’保证不同发起者的密钥不同。
发起者收到报文2后进行Puzzle计算, 通过穷举计算得到Puzzle解答X的值, 构造并返回报文3。报文3中的信息根据作用可分为6类: (1) 密钥材料, 包括用于生成临时密钥的gi’和Ni’、用于生成工作密钥的gi和Ni; (2) Ppuzzle的解答X, Ni’、Nr’、IDi等信息也将参加Puzzle计算; (3) 发起者身份信息, 包括IDi、CERTi; (4) 用于IPSec参数协商的SAi; (5) 用于防止消息重复攻击的HMAC值; (6) 对以上所有信息的哈希值做数字签名SIGi{H{All}}, 用于发起者身份认证及报文3完整性保护。报文3的信息中除了gi、Ni’、X及数字签名, 均以临时密钥K_ir进行加密保护, K_ir=H{gi’r’|Ni’|Nr’|0}。
响应者收到报文3后首先进行Puzzle值验证, 验证成功后通过数字签名对发起者进行身份认证, 身份认证完成后构造K_ir, 解密报文3内容, 构造报文4。报文4中的信息根据作用可分为5类: (1) 用于IPSec参数协商的SAi; (2) 用于工作密钥协商的gr和Nr; (3) 响应者身份信息, 包括IDr、CERTr; (4) 用于防止消息重放攻击的HMAC值; (5) 对以上所有信息的哈希值做数字签名SIGr{H{All}}, 用于响应者身份认证及报文4完整性保护。报文4中的信息除了数字签名, 均以K_ir为密钥进行加密保护。
发起者收到报文4后首先通过数字签名对响应者进行身份认证, 认证成功后使用临时密钥K_ir解密报文4内容, 获取工作密钥参数, 完成密钥协商和IPSec参数协商, 计算获得工作密钥WK_ir, WK_ir=H{gir|Ni|Nr|0}。
3 LKE协议分析与仿真
3.1 安全及效率分析
3.1.1 抗DoS攻击
抗DoS攻击能力的提升体现在两个方面: (1) 在响应者的第一个报文中不进行公钥计算, LKE通过沿用JFK重用DH指数机制, 减少生成报文2时由于DH计算带来的资源消耗; (2) 增加发起者计算量, LKE采用Puzzle机制抗DoS攻击。
Puzzle是一种适用于客户端/服务器架构的抗DoS攻击机制, 其基本思想是发起者 (客户端) 需消耗较多资源计算Puzzle解答, 响应者 (服务器端) 只需较少资源即可对Puzzle解答的正确性进行验证。只有确认Puzzle解答正确后, 响应者才会开始执行签名验证、数字签名等消耗资源较高的公钥计算, 从而防止针对响应者计算资源的DoS攻击。
LKE协议中采用经典的Puzzle函数, H{IDi, Ni’, Nr’, X}=000…000Y。其中000…000Y中0的位数 (k值) 及Y的值由响应者指定, Ni’和Nr’可保证解答的新鲜性, 防止重放过去或其它的Puzzle解答, IDi参与计算可以将同一Nr’用于与多个发起者Puzzle。发起者计算Puzzle解答时, 由于哈希函数的不可逆性, 只能通过X的穷举来寻找Puzzle解答, 这样会消耗较多资源。Puzzle对发起者的计算资源消耗量可通过k值来调整, k值越大, 消耗量越大。响应者验证Puzzle解答时, 只需进行一次哈希计算即可。
在Puzzle机制下, 大量伪造协商报文的攻击者无法为每个Puzzle给出正确的解答, 从而使DoS攻击失效。对于攻击者操纵大量僵尸主机发起的分布式DoS攻击, Puzzle机制可延缓各僵尸主机对响应者的攻击, 降低DDoS攻击的强度, 为安全事件的应急响应赢得宝贵的时间。
3.1.2 完美前向安全
为避免重用DH指数造成前向安全性减弱, LKE采用两轮异步DH交换机制。在报文1和2中进行第一次DH交换, 用于生成临时密钥, 保护报文3、4。在报文3、4中进行第二次DH交换, 用于生成工作密钥, 保护正式的通信数据流。其中响应者在第一次交换中采用重复的DH值, 在第二次交换中采用全新的DH值。因此, 尽管临时密钥只具备阶段性前向安全特性, 但其影响范围只限于报文3、4, 后续前向安全性将不受影响, 每次会话的工作密钥因为采用全新的DH值而具备了完美前向安全性, 从而达到兼顾抗DoS攻击和完美前向安全的目标。
3.1.3 双向身份认证
LKE通过数字签名验证的方式实现双方身份认证。考虑到防DoS攻击等问题, 双方签名及其验证在报文3和报文4中进行, 对各自报文中全部信息的哈希值进行私钥签名。先哈希再签名的好处是可以减少签名及验证过程中的公钥计算量, 符合LKE轻量化的设计思想。
3.1.4 身份隐藏
保证参与协商双方身份私密性的最直接办法就是为报文中的身份信息提供加密保护。LKE协议中, 发起者和响应者的身份信息分别在报文3和报文4中以密文形式交换, 但由于报文2没有经过加密或认证, 攻击者有可能伪装成响应者与其交换密钥参数, 形成共同的K_ir。尽管在收到报文4后发起者通过身份验证能够发现攻击者的存在, 但其身份信息已经泄露。解决这一问题的办法是发起者验证响应者身份后再发送身份信息, 可通过在报文2中增加数字签名实现, 但这种解决方案违背抗DoS攻击的设计目标。另一种方案是增加报文5用于发送身份信息, 但这种方案违背减少报文数量的设计目标。可以考虑设计一个包含5个报文的LKE协议变种, 用于网络条件较好的环境。
3.1.5 消息重放攻击
消息重放攻击主要包括两类, 分别是本轮协商内的消息重放和本轮协商外的消息重放。本轮内的重放攻击, 即攻击者截获协商报文并原样发送给对方, 从而伪装成协商的另一方。LKE协议中4个报文的不对称性使其具备天然抵抗这类攻击的能力。本轮外的重放攻击, 即攻击者利用截获的真实报文, 在其它轮次的协商过程中通过重放伪装为合法的参与者。LKE将双方在本轮协商中交换的大量参数集中计算HMAC值, 并在报文3和报文4中交换, 以此实现本轮协商4个报文的绑定, 防止本轮外的重放攻击。
3.1.6 协议效率分析
在报文数量上, LKE通过两个来回、4个报文完成协商, 少于IKEv2的6个报文, 与JFK报文数量相同。
在计算量上, LKE只在报文3、4中进行公钥运算, 用于数字签名的生成及验证, 且签名运算的对象是整个报文的哈希值, 通常为128bit或256bit。对于采用证书认证的协议, 已经达到了公钥运算量的最低值, 明显低于IKEv2及JFK, 这一优化有助于降低计算资源消耗。
在时间消耗上, 协议的时间消耗量与报文数量及计算量呈正相关关系, 而LKE的报文数量与计算量均有所优化, 因此在时间消耗上将优于IKEv2及JFK。这一优化有助于加快大规模节点两两协商时的协议收敛速度。
在存储空间消耗上, LKE的优化体现在对存储空间的占用时间较短。在IKEv2及JFK中, 发起者必须在发出报文1时就为这次协商分配内存, 用于存储已发出的Diffie-Hellman指数、Nonce值等。LKE的报文1中不包含协商参数, 可在收到报文2时再为此次协商分配内存空间, 因此对内存空间的占用只持续1次报文来回的时间。IKEv2的内存空间占用时间为3次报文来回, JFK的内存空间占用时间为2次报文来回, 这一优化有助于降低遭受内存资源耗尽的DoS攻击风险。
3.2 协议性能仿真评估
采取仿真试验分别对IKEv2、JFK和LKE三种协议在不同的网络规模和链路环境下, 与网内全部客户端完成密钥交换所需收敛时间进行对比, 验证LKE协议相比于IKEv2和JFK协议的轻量级优势以及对低带宽无线网络环境的适应性。仿真主机处理器采用Intel Core 2四核2.5GHz, 内存为8GB, 操作系统为Linux 2.6.34, 仿真软件为Matlab。下文两组样点的仿真值均是对连续25次试验结果取的平均值。
图1反映了IKEv2、JFK和LKE三种密钥交换协议在不同带宽的链路环境 (客户端数量固定为128) 中的收敛时间, 即服务器端与全部128个客户端完成密钥协商所需的总时间。仿真试验中选取了7种不同的网络环境, 包括GPRS的85.6kbps链路、IS-95的115.2kbps链路、EDGE的236.8kbps链路、WCDMA的384kbps链路和2Mbps链路、CDMA 2000的3.1Mbps链路以及100Mbps链路。由仿真结果可以看出, 随着链路带宽的不断提升, 密钥交换所依赖的带宽资源逐渐充足, 消息的差错率下降, 因此3种协议的密钥协商时间随之减少。但处于384kbps以下的低带宽链路环境时, LKE协议的收敛时间相比于IKEV2和JFK平均减少了20%和10%;而处于2Mbps以上的高带宽链路环境时, LKE协议的收敛时间相比于IKEV2和JFK平均减少了14%和8%。这种现象说明, 相比于资源充足高带宽链路环境, LKE所具有的少报文、低数据的轻量级特性能够更好地适应无线链路资源受限的低带宽通信环境。
图2是在网络中客户端数量不断增加的情况下, IKEv2、JFK和LKE三种协议收敛时间的变化情况。其中无线链路带宽固定为100Mbps, 客户端数量由64递增为128、256、512、1024、2048个。仿真结果表明, 3种协议收敛时间的增加程度基本呈线性增长趋势, 这是由客户端/服务器的网络模式所决定的。而LKE由于采用了轻量级密钥交换的设计思想, 与IKEv2和JFK相比, 在相同收敛时间情况下, 其所能容纳的客户端数量明显增多。例如在收敛时间同为100s时, LKE模式下的客户端数量相比于其它两种协议分别增加了87%和68%。
4 结语
为了满足IPSec大规模应用对密钥协商协议安全性和高效性的要求, 本文分析了IKEv2和JFK两种现有的主流密钥协商协议, 梳理出了这两种协议在抗DoS攻击、前向安全、身份隐藏、交互复杂度、计算量等方面的缺陷, 针对性地提出了一种轻量级密钥交换协议LKE。该协议减少了报文交互数量及公钥运算量, 并同时具备抗DoS攻击、完美前向安全、双向身份认证、身份隐藏、抗消息重放攻击等安全特性。仿真实验证明, 相比IKEv2和JFK, LKE协议能够更好地适应无线链路资源受限的低带宽通信环境。
摘要:在IPSec大规模部署应用下, 分析了IKEv2和JFK两种现有协议安全及性能缺陷, 提出了一种轻量级密钥交换协议LKE, 该协议能有效减少报文交互数量, 降低计算资源开销。通过经典Puzzle机制和两轮异步DiffieHellman交换, 解决了抗DoS攻击与完美前向安全特性难以共存的问题。仿真结果表明, LKE对低带宽通信环境具有较强的适应性, 在低于384kbps的无线链路条件下, LKE协议的收敛时间相比IKEv2和JFK分别减少了20%和10%。
关键词:密钥交换,IKEv2,JFK,拒绝服务攻击,完美前向安全
参考文献
[1]IPSec architecture[EB/OL].http://www.ietf.org/rfc/rfc2401.txt.
[2]HOSSEIN HADDAD, MEHDI BERENJKOUB, SAEED GAZOR.A proposed protocol for internet key exchange (IKE) [C].CCECE2004-CCGEI 2004, Niagara Falls, 2004.
[3]IKEv2[EB/OL].http://www.ietf.org/rfc/rfc4306.txt.
[4]冯雁, 李阳, 徐梓杰, 等.JFK协议的研究与分析[J].北京电子科技学院学报, 2012 (2) :15-20.
[5]高翔, 李亚敏.IKEv2协议安全性分析与改进[J].计算机应用, 2005, 25 (3) :563-572.
[6]朱晓薇, 周海刚, 刘军.针对中间人攻击的IKEv2形式化分析与改进[J].计算机工程与应用, 2012 (2) :59-62.
[7]唐佳佳, 李学哲, 陈国新.IKEv2中混合认证的研究与扩展设计[J].南通职业大学学报, 2009, 23 (2) :82-85.
[8]王琳琳, 何国良.IKEv2协议分析与安全性研究[J].技术前沿, 2008, 10 (8) :65-69.
[9]黄欣.JFK协议的研究及改进[D].南昌:南昌大学, 2009.
[10]邓阳, 魏祖宽.JFKi协议的分析及漏洞修正[J].计算机应用, 2007 (27) :264-270.
安全密钥交换算法研究 篇4
两个网络通信用户在采用对称加密法实现保密通信时, 首先必须共享一个秘密密钥;为了防止攻击者破获, 这个密钥必须经常更新。这个在一次定长通话或交换定量数据时使用的密钥, 通常称为会话密钥。
会话密钥产生的两种形式是集中式生产和分散式生产。集中式生产, 是由指定的密钥产生中心 (如密钥分发中心KDC和证书分发中心CDC等) 集中生产密钥, 然后分发给系统内的用户, 其用户数量受到算法所能提供的密钥总数的限制, 所以也称有边界生产;分散式生产, 由使用者个人分散生产或由通信双方协商产生, 用户数量不受限制, 也称无边界生产。会话密钥一般采用分散式生产, 由用户在公开的信道上协商建立, 这个建立过程称为密钥交换。
2 D-H算法与中间人攻击
分散式密钥生产方式中最著名的是Diffie-Hellman密钥交换算法, 简称D-H算法。D-H算法是W.Diffie和M.Hellman于1976年提出的一个用于交换密钥的公钥密码算法, 已经在很多商业产品中得以应用。算法的目的是使得两个或两个以上用户能够在公开的信道上安全地交换数据, 得到一个共享的会话密钥, 用于实现对称加密通信, 并能有效阻止攻击者窃取该密钥。D-H算法实现过程如下:
1) A和B预先协商一个大素数p及p的本原根a;
2) A产生随机数x, 计算M=axmod p, 然后把M发送给B;
3) B产生随机数y, 计算N=aymod p, 然后把N发送给A;
4) A计算k=Nxmod p;
5) B计算k'=Mymod p。
因为k=Nxmod p= (aymod p) xmod p= (ay) xmod p= (ax) ymod p=Mymod p=k', 所以A和B得到了相同的密钥。而攻击者要从p, a, M, N计算k, 将需要解决求离散对数的问题, 这是个著名的陷门单向函数, 目前普遍认为无法通过穷举之外的方法求解。
D-H算法的主要缺陷是容易受到中间人攻击:
1) A发送公开值 (a, p, M) 给B, 攻击者C处于A和B的通信路径之间, 截获这些值并把自己产生的公开值发送给B;
2) B发送公开值 (N) 给A, C截获它然后把自己的公开值发送给A;
3) A和C计算出共享密钥k1, B和C计算出共享密钥k2;
4) A用密钥k1给B发送消息, 但实际上k1是A与C协商计算所得, C截获消息后可用k1解密, 同理C可用k2解密B发送给A的消息。C还可以篡改A、B之间的通信, 甚至假冒其中一方同另一方通信。
可引入认证、时间戳、随机标号等机制改进D-H算法, 有效抵抗中间人攻击。[1]
3 PGP体系实现密钥交换
PGP (Pretty Good Privacy) 是Phil Zimmermann于1991年发布的一个基于RSA公钥加密算法与IDEA对称加密算法的开源的邮件加密体系[2]。PGP创造性地把RSA公钥体系的方便和传统加密体系的高速结合起来, 成为最流行的公钥加密软件包。PGP对信息内容使用IDEA对称加密, 所以需要在收发双方之间预先实现密钥交换;而PGP的密钥交换是利用RSA算法的公钥加密实现的。传统PGP体系的一般使用过程如下:
发送方A:
1) 随机生成新的会话密钥k;基于k, 用IDEA算法加密邮件信息m, 得到m’;
2) 获取接收方的RSA公钥e;基于e, 用RSA算法加密k, 得到k’=Ee (k) ;
3) 将m’|k’一起发送给接收方。
接收方B:
1) 用本方RSA私钥d解密k’, 得到k=Dd (k’) ;
2) 用k解密邮件信息m’, 得到m。
在以上过程中, 会话密钥并非通过协商, 而只是由发送方随机生成;密钥共享则是通过公钥证书加密发送完成的, 其安全性非常高, 是基于RSA算法的破解难度的。但另一方面, 接收方只能保证其邮件内容无法被窃取, 但无法验证发送者的真实身份, 导致了接收方可能收到伪造的信息。
4 改进的密钥交换算法
发送方A:
1) 随机生成新的会话密钥k;基于k, 用IDEA算法加密邮件信息m, 得到m’;
2) 使用RSA算法, 用本方私钥da加密k, 再用接收方的公钥eb加密这个结果, 得到k’=Eeb (Eda (k) ) ;
3) 将m’|k’一起发送给接收方。
接收方B:
1) 用本方RSA私钥db解密k’, 再用发送方公钥ea解密这个结果, 得到k=Dea (Ddb (k’) ) ;
2) 用k解密邮件信息m’, 得到m。
以上方案与本文第3节所描述的方案的区别是:在发送方的第2步中, 要求其先用自己的私钥da加密k, 这就达到了数字签名的效果;因为接收方可以根据权威的公钥来源获取证书的身份标识, 从而通过验证签名确认发送者的真实身份。同时, k’是经过接收方的公钥加密所得, 只有正确的接收方才能基于其私钥实现解密, 因此可防止中间人的窃听与篡改。
以上方案在使用时, 发送方A的第2步的加密顺序不可倒换, 即不可先加密再签名, 如k’=Eda (Eeb (k) ) 。否则, k’被中间人C截取后, 他可以使用发送方公钥ea去除原签名得到Eeb (k) , 即使他无法获取真正的k, 但可以生成自己的签名k’’=Edc (Eeb (k) ) , 继续发送m’|k’’给B;此时B将受到欺骗, 认为m是C发出的。
改进的算法并不能解决所有的密钥交换的安全问题, 如接收者抵赖、信息重放及针对RSA算法的攻击等。必须综合使用各种安全策略, 并对信息交互流程进行合理优化, 才能尽可能地降低网络通信中所遇到的各种风险。
摘要:密钥交换是网络通信用户实现加密通信的基础。D-H算法是迄今在网络安全领域应用最为广泛的密钥交换算法, 但其安全性面临中间人攻击的危害。传统PGP体系利用RSA算法可实现基于公钥证书加密的密钥交换, 但无法验证发送者的真实身份。改进的密钥交换算法采用数字签名技术, 可实现通信双方的身份认证, 提高了密钥交换的安全性。
关键词:密钥交换,D-H算法,PGP,身份认证
参考文献
[1]张珂.一种改进的抗攻击密钥协商协议研究[J].郑州轻工业学院学报:自然科学版, 2011 (3) :53-57.
密钥交换协议 篇5
网络技术,特别是基于互联网的工具的不断成熟与发展,传统的事务处理、商业活动以及政府服务等越来越通过网络实施,大大加快了社会信息化的发展,对计算机和网络系统的依赖性也越来越大,信息系统中的安全问题势必会影响到信息产业的应用和发展。要保证信息的安全性,一个有效的解决办法就是利用密码术。密码学是信息安全的基础和关键,利用密码技术,可以实现信息的保密性、完整性、认证性和抗抵赖性。密码协议是实现网络通信和网络体系、分布式系统和电子商务安全运行的核心组成部分,是安全系统的主要保障手段和工具,密钥交换是保密通信的前提和保证,是实施其他密码协议的关键,是公钥基础设施的基础。密钥交换协议,在密码学与信息安全领域具有很强的实际意义。
密码学中的一个核心问题是在有敌手控制的网络中如何实现安全可靠的通信,为了解决这个问题,实体之间必须共享一个密钥并利用现有的技术来实现安全通信。密钥交换协议就是这样一个机制,它允许两个或多个用户在开放的网络环境中通过协商,建立一个便于保密通信的会话密钥,从而实现安全通信。公钥密码学提供了密钥交换机制,产生了许多密钥交换算法,如Diffie-Hellman算法[1],ECMQV密钥交换算法[2]加密密钥交换算法[3]等。使用密钥交换协议,实现了不安全的信道上的密钥交换[4,5,6,7]。公钥密码学提供的密钥交换体制基于数论中的困难问题,比如离散对数问题[8],大整数的因子分解问题[9],椭圆曲线问题[10]等。这都需要大量的数学运算,而在有限的资源下实现起来比较困难。为了解决这个问题,人们提出了基于矩阵的密钥交换协议[11,12],利用矩阵,不需要选取大的素数,使用矩阵进行运算,能够有效提高运算效率,基于矩阵的密钥交换协议也成为了一个密钥交换的研究热点。随着对密钥交换协议不断地进行研究,对提出的协议进行分析,有的协议的缺陷已被找出并被攻破,因此,改进密钥交换协议,设计出更为安全的密钥交换协议具有重大意义。
2009年,lvarez等人提出了一种基于上三角矩阵幂乘运算的密钥交换方案[13],该方案避免了大素数的选取,使用矩阵进行运算,提高了运算效率。2013年,Kamal等人对lvarez等的方案进行了研究和分析,利用该方案中的公开参数,找出了该方案的不足之处,给出了一种可能的攻击方案[14]。本文通过对Kamal等人提出的攻击方案进行分析研究,利用矩阵多项式乘法的交换性,通过对矩阵进行多项式运算,改进lvarez等提出的密钥交换方案,改进后的方案可以有效抵抗Kamal等人提出的攻击,并对改进方案进行了可行性验证和安全性分析。
1 预备知识
1. 1 lvarez 等人的密钥交换方案简介[13]
lvarez等人提出了一种基于非交换的上三角矩阵上的密钥交换方案,下面回顾一下该方案。
定义1非交换矩阵群
其中,0: s×r的0矩阵; p: 一个素数; r,s∈N; Glr( Zp) : 模p剩余类下的r×r可逆矩阵; Gls( Zp) : 模p剩余类下的s×s可逆矩阵;Matr×s( Zp) : 模p剩余类下的r×s矩阵。
定义2若M∈Θ且h≥0 ,则:
其中:
定义3设:
为Θ中的两个元素M1、M2分别为m1、m2阶方阵。对于x,y∈N,定义:
lvarez等的密钥交换方案如下:
1) Alice和Bob共同协商一个素数p,以及矩阵M1,M2∈Θ,其中M1、M2分别为m1、m2阶方阵。
2) Alice随机选取两个整数l,m∈N,其中1≤l≤m1- 1,1≤m≤m2- 1; 并计算Alm,Blm,Clm,构造:
3) Alice将C发送给Bob。
4) Bob随机选取两个整数v,w∈N,其中1≤v≤m1- 1,1≤w≤m2- 1; 并计算Avw、Bvw、Cvw,构造:
5) Bob将D发送给Alice。
6) Alice和Bob的公钥分别为C和D。
7) Alice计算:
Ka为矩阵:
中r×s的上三角矩阵。
8) Bob计算:
Kb为矩阵:
中r×s的上三角矩阵。
经过该方案,Alice和Bob共享密钥K = Ka= Kb。
1. 2 对lvarez 等的密钥交换方案的攻击[14]
Kamal等人对lvarez等的方案进行了分析,并提出了攻击方案,下面回顾一下该攻击方案。
简化lvarez等的方案如下:
1) Alice和Bob共同协商一个素数p,以及两个矩阵M1,M2∈Θ。
2) Alice将公钥C = Ml1Mm2发送给Bob。
3) Bob将公钥D = Mv1Mw2发送给Alice。
4) Alice和Bob都计算M1l + vM2w + m,并提取它的上三角矩阵作为他们的共享密钥。
在下文中,我们将分析表明,通过传输信道上公开的矩阵C和D ,攻击者可以很容易地恢复出Alice和Bob所建立的共享密钥。
引理1取 ( r + s) × ( r + s) 的可逆矩阵W1、W2,使其满足:
可得:
攻击者通过公钥C,选取两个可逆矩阵W1、W2,使其满足引理1中的公式,即可得出Alice和Bob的共享密 钥,即为M1l + vM2w + m的上三角r×s的矩阵。
由lvarez等的方案,可知,攻击者可以窃听到的参数有:Alice和Bob共同协商的素数p,矩阵M1、M2,Alice发送给Bob的公钥C = M1lM2m,以及Bob发送给Alice的公钥D = M1vM2w。攻击者不能得到的参数有: Alice随机选取两个整数l、m ,Bob随机选取两个整数v,w∈N。
通过引理1,可知,攻击者不需知道Alice和Bob选取的私钥l、v、w、m,也不需要得到矩阵M1l、M1v、M2w、M2m,只要攻击者找出满足引理1中等式的矩阵W1和W2,即可恢复出Alice和Bob的共享密钥。
另外,通过引理1,我们不难看出,要想找出符合条件的矩阵W1、W2,必须得到Alice和Bob协商的矩阵M1、M2。针对这一特点,在下文中,我们设法对矩阵M1、M2进行加密,利用攻击者不能找到W1、W2这一思路,对lvarez等人的密钥交换方案进行改进。
2 改进的 lvarez 等人的密钥交换方案
Kamal等人提出的攻击方案中,攻击者通过公开的矩阵M1、M2、C、D,只需找出符合条件的W1、W2,就可得到Alice和Bob的共享密钥。针对Kamal等人的攻击方案中通过公开矩阵M1、M2,可找到符合条件的W1、W2这一特点,利用矩阵的多项式幂乘运算,对矩阵M1、M2进行多项式加密运算,改进lvarez等人的密钥交换方案。
引理2[15]对于非交换矩阵群Θ,若M∈Θ,有多项式f( x) 、g( x) 和k,l∈N ,则有:
定义4若f( M) ∈f( Θ) 且h≥0 ,则:
其中:
定义5
为f( Θ) 中的两个元素,f( M1) 、f( M2) 分别为m1、m2阶方阵。对于x,y∈N ,定义:
利用矩阵多项式的幂乘运算,对lvarez等人的密钥交换方案改进如下:
1) Alice和Bob共同协商一个素数p,具有大素数q个多项式的多项式库,以及矩阵M1,M2∈Θ,其中M1、M2分别为m1、m2阶方阵。
2) Alice随机选取两个整数l,m∈N,多项式库中的一个多项式f( x) ,其中1≤l≤m1- 1,1≤m≤m2- 1; 并计算f( Alm) 、f( Blm) 、f( Clm) ,构造:
3) Alice将f( C) 发送给Bob。
4) Bob随机选取两个整数v,w∈N,多项式库中的一个多项式g( x) ,其中1≤v≤m1- 1,1≤w≤m2- 1; 并计算g( Avw) 、g( Bvw) 、g( Cvw) ,构造:
5) Bob将g( D) 发送给Alice。
6) Alice和Bob的公钥分别为f( C) 和g( D) 。
7) Alice计算:
Ka为矩阵:
中r×s的上三角矩阵。
8) Bob计算:
Kb为矩阵:
中r×s的上三角矩阵。
则Ka= Kb即为Alice和Bob的共享密钥。
3 改进方案的安全性分析
3. 1 改进方案的可行性
引理3若:
证明:
显然,Ka= Kb,即Alice和Bob协商出共享密钥,改进的方案可行。
3. 2 改进方案的安全性
对改进后的方案进行分析,可知,攻击者通过窃听可以得到的参数有: Alice和Bob共同协商的素数p,具有q个多项式的多项式库,矩阵M1、M2,Alice发送给Bob的公钥f( C)=fl( M1) fm( M2) ,以及Bob发送给Alice的公钥g( D)=gv( M1) gw( M2) 。攻击者不能得到的参数有: Alice随机选取的一个多项式f( x) 以及两个整数l、m ,Bob随机选取的多项式一个g( x) 以及两个整数v,w∈N。
利用Kamal等人提出的攻击方案对改进后的方案进行攻击。根据Kamal等人所提出的攻击思路,结合引理1,可得引理4。
引理4攻击者需找到两个 ( r + s) × ( r + s) 的可逆矩阵W1、W2,使其满足下面的等式:
可得:
在引理1中,分别与矩阵W1、W2具有交换性的矩阵M1、M2是公开的; 而在引理4中,分别与矩阵W1、W2具有交换性的矩阵f( M1) 、f( M2) 是利用多项式运算对矩阵进行加密后的,该多项式的选取是参与者Alice随机选取的,并且未在信道上传输,是私密的。故攻击者不能够窃听到利用多项式加密后的矩阵f( M1) 、f( M2) 。
下面分析一下,攻击者通过公钥也不能得到参与者所选取的多项式。
改进后的方案基于解决离散对数问题的困难性假设,通过对M1、M2加入多项式运算并对加入多项式后的矩阵进行幂乘运算,能够有效地抵抗Kamal等人提出的攻击。攻击者能够截获公钥f( C) 、g( D) ,根据已知的矩阵M1、M2需要试图解决下面的等式:
要想解决上面的等式,攻击者需要试图找到两个多项式h1( x) 、h2( x) 以及α1,α2,β1,β2∈N ,使得:
显然,条件( 1) 容易被满足,由解决离散对数问题的困难性假设,攻击者不能得到Alice和Bob分别选取的多项式f( x) 、g( x) 。攻击者则需要试图通过穷举法试多项式的系数以满足条件( 2) ,公钥f( C) 、g( D) 的系数是由两个整数组成的集合,这就导致了蛮力攻击,故Kamal等人的攻击方案对改进方案是不可行的,即改进后的方案能够有效地抵抗Kamal等人的攻击方案。
4 结 语
对于非交换矩阵群Θ,若M1,M2∈Θ,有多项式f( x) 、g( x) ,则有:
密钥交换协议 篇6
移动监控技术是应用于移动网络和移动终端上, 其特点是携带使用方便, 不受空间限制, 可进行实时监控, 成本低廉、覆盖面广, 目前已经成为全球范围内移动业务研究的热点之一[1,2]。然而, 成为热点的同时、也存在很多被窃听、泄密等安全问题隐患, 像一些极为重要的信息如果被非法入侵者窃取, 那么将会造成很大损失。所以, 信息的安全性和保密性显得尤为重要, 本文提出一种基于利用混沌与密钥交换思想, 来实现对移动视频监控进行保护[3,4]。
1 移动视频监控技术研究现状
移动视频监控技术最开始是用在电力系统中的监测输电线领域, 然而输电线路往往拥有较长的距离且较大的分散性能, 因此利用集中式有线网络对其进行在线视频监控具有较大的难度[5], 这就需要开发研究无线移动视频监控技术。文献[6]基于CDMA网络技术, 提出适用于架空输电线路的无线视频监控系统, 实时在线监测输电线路, 以确保输电线路高效且安全, 但其所提的CDMA网络技术属于2G范畴, 带宽较窄, 传输视频图像的速度较低。文献[7]设计了一种3G无线移动视频监控系统, 双向互通事故现场与抢修指挥中心之间的音视频信息, 为抢修指挥中心提供有力的科学且真实的评判依据, 以便于其做出最优的决策, 方便统一部署和调度。相关部门的领导和专家还可以通过3G手机观看前端的视频图像, 便于应急指挥突发情况。此外, 这种监控技术也可以广泛应用于各种大型变电站、大型保电活动或是各电力系统的施工现场。尤其是对于一些无人值守的变电站、工程现场或是突发事件应急处理来说, 移动视频监控技术可以充分保障其安全性能, 实时监控也可以及时了解最新信息, 为各部门的有效联系提供了重要保障。不仅如此, 目前3G网络技术的发展, 使网络运行速度更快, 数据传输速率大幅度提升, 最大力度地协助了移动视频监控技术的有效且高速发展。但仍存在亟需解决的部分问题, 如:移动视频监控技术是否可以与当前电力行业的生产标准相结合, 符合不同企业的管理特色, 针对不同电力企业满足不同企业的特色需求, 以提高各企业的整体电力系统监管水平。
目前, 多数大型公司的电力系统均具有相对成熟的配电网络, 集中监控视频图像, 可以有效监控无人区变电站, 掌握公司内各配电线路的实时运行情况, 保证公司电力系统的安全性。由此, 在充分利用这种集中监管平台的基础上, 若能开发扩容, 研究3G无线移动视频监控功能, 实现各大公司的电力系统的移动无线监控, 便可达到统一监督管理与调配的目的, 同时也可以节约耗能与人力且提高工作效率[8]。此外, 近几年来, 电力系统不断发展完善, 对于不同的电力企业, 其各有其不同的管理或监控平台, 如:电力生产管理系统、GIS系统、配网调度系统、管理信息系统等, 但这些系统平台往往与视频监控系统的融合度较低, 因此, 如何将二者进行数据融合, 共享数据信息, 以便实现电子系统中, 视频监控的最大效能, 这成了目前研究的主要对象。
2 一种基于混沌和密钥交换的移动视频监控技术
2.1 移动监控视频系统
移动视频监控系统主要由移动媒流体客户端、监控服务器、网络摄像机三部分构成。网络摄像机的作用是采用音频和视频技术并编码, 之后传给监控服务器[9]。监控服务器是移动视频监控系统中最重要的组成部分, 它主要有用户验证登陆、流媒体会话控制、视频转码三个功能。
移动监控技术主要应用于移动终端上, 具有携带使用方便, 不受空间限制, 可进行实时监控等特点, 目前已经成为全球范围内移动业务研究的热点之一。但也存在很多被窃听、泄密等安全问题隐患, 像一些极为重要的信息如果被非法入侵者窃取, 那么将会造成很大损失[10]。所以, 信息的安全性和保密性显得尤为重要, 本文提出一种基于利用混沌与密钥交换思想, 来实现对移动视频监控进行保护。
2.2 基于混沌和密钥交换的移动视频监控技术的实现
随着网络技术的发展, 混沌和密钥交换的一种安全算法, 移动视频监控信息处理和交换都可以用网络来实现, 提高了交流的质量和效率。因此, 出现了许多的安全隐患, 这就需要一种基于混沌和密钥交换的安全算法[11,12]。
判定一个系统是否为混沌系统, 能够使用Lyapunov指数与0的比较结果来衡量。Lyapunov指数不仅仅是根据轨道本身计算, 还可以使用映射函数导数来计算, 这样能够判定出该动力系统是否处于混沌运动。
假设, 在m维离散动力系统中, 存在n个Lyapunov指数λi (i=1, 2, …, n) 。当最大指数λmax>0, 则该系统属于混沌系统。
设迭代过程为:
则Lyapunov指数为:
那么系统的吸引子模型的动力学方程可以表示为:
这个一个二维映射, 该二维映射的一维形式可以描述为:
所以, 该混沌动力系统的最大Lyapunov指数为:
该公式简化为:
其中T为雅克比矩阵, 表示为:
根据λi (i=1, 2, ……, n) , 逐步推导出Ti, 最终求出Lyapunov指数的最大值λmax。
混沌系统中的参数取值范围在[-0.5, 1.5]之间, 而且0.2<w<1.2时, 最大Lyapunov系数max>0, 此时系统中的混沌吸引子最稳定。
目前世界上重要的加密算法有RSA和DES, 这两种加密算法都有一定的确定和不足。而目前使用最多的密钥一般均为公钥系统, 即最先开发的算法之一如Diffie-hellman密钥交换系统。
Diffie-hellman算法流程如下:假设发送方为甲, 接收方为乙, 甲和乙必须共享两个数p和g。其中为一个大素数, g为一个小于p的随机常数。因为和都是公开的数, 所以甲乙双方可以基于一个不安全的通道, 来选择这两个数。
由于p和g都是公开的数, 选择完之后, 甲乙双方再各选择一个保密的随机数x和y。乙将g的y次方MODP产生的数值发送给甲方, 同时, 甲将g的x次方MODP产生的数值发送给乙方。甲方再对接收的结果做x次方运算, 最终密码形成, 密钥交换完成, 算法如图1所示:
本文采用32位计算机, 使用matlab仿真软件进行仿真实验分析, 将生成初始值严格控制在16位有效数字之内。利用Logistic映射生成混沌序列并量化为二进制。
对量化后的二进制序列进行随机性测试会 (NIST) 给出的一些随机性测试中的建议之一, 该测试组可以接受20000个二进制位。第一个测试是单个位测试, 校验1和0的个数是否大致相等。测试过程是计算1的个数:如果其个数在9486-11458之间, 那么这个位流就通过了单个位测试。
为了保证测试的准确性和可靠性, 也进行扑克牌测试, 并通过了扑克测试。由此可见, 该随机序列通过了单个位测试和扑克牌测试, 同时因为混沌序列的天然随机性, 我们可以认为该序列是比较理想的随机序列。
针对信息安全和隐私保护等问题, 本文提出了一种基于混沌和密钥交换对移动视频监控技术, 并对该技术的使用效果进行了有效研究, 能够实现对安全传递信息的加密和隐形的保护。
3 结语
本文在密钥交换算法基础上, 利用Logistic混沌映射产生随机性很好的伪随机序列, 对明文进行加密。这种混沌与密钥交换算法应用到移动视频监控技术上, 提高了移动视频监控系统的安全性。而与明文相关的混沌密钥流的引入, 增加了密文的复杂度, 使密文的加密强度更高。保证了拥有信息者的合法权益, 不会有非拥有者入侵的机会, 避免了信息泄露而造成的损失。
针对信息安全和隐形保护问题, 本文提出了一种基于混沌和密钥交换对移动视频监控技术, 并对该技术的使用效果进行了有效研究。
参考文献
[1]贺礼, 唐伦, 陈前斌, 等.移动视频监控系统的设计与实现[J].电视技术, 2007, 31 (6) :59-62.
[2]王书锋, 侯义斌, 黄樟钦, 等.基于DM6446的移动视频监控系统的设计[J].计算机应用研究, 2008, 25 (3) :823-825.
[3]曾显光, 陆颖瑜, 张永林.移动视频监控系统的设计[J].计算机工程与设计, 2009, 2 (16) :3748-3750.
[4]丰江帆, 张宏, 沙月进.GPS车载移动视频监控系统的设计[J].测绘通报, 2007, 2 (2) :52-54.
[5]陈恒鑫, 林威, 张钦宇.基于Mjpg-streamer的移动视频监控系统设计[J].计算机测量与控制, 2014, 22 (11) :12-15.
[6]薛树滨.基于嵌入式Linux的移动视频监控系统[D].山东大学, 2014, 2 (12) :25-28.
[7]叶锋, 傅燕云, 陈林芳, 等.基于多协议融合的实时移动视频监控系统[J].计算机系统应用, 2015, 24 (4) :80-85.
[8]李伟, 门佳, 余森.面向Android终端的移动视频监控系统的设计实现[J].武汉职业技术学院学报, 2014, 2 (3) :43-46.
[9]王羽, 杨文娟, 陈侃.基于WEB的跨平台移动视频监控系统[J].科技创新导报, 2014, 21 (17) :55-56.
[10]任敏.分析4G网络的高速公路无线移动视频监控系统[J].建筑工程技术与设计, 2016, 2 (13) :152-153.
[11]李鹏.无线移动视频监控在煤矿井下无极绳绞车运输中的应用[J].中州煤炭, 2015, 35 (5) :107-109.
论3G认证和密钥协商协议 篇7
1 3G的认证与密钥分发协议
在用户接入网络时, 需要验证用户标识的正确性, 这就是对用户进行认证。并同时完成上下文的分配、设置加密和加密算法、用户对网络的认证等功能。
在GSM中, 身份认证是单向的, 基站能够验证用户的身份是否合法, 而用户无法确认他连接的服务网络是否可靠。3G AKA协议借鉴了GSM身份认证的询问——应答机制, 结合ISO/IEC 9798-4基于“知识证明”和使用顺序号的一次性密钥建立协议, 实现了双向认证, 并确保通信双方的认证信息和密钥是非重用的。
1.1 协议过程
有三个实体参与3G认证与密钥分配协议过程:MS (移动台) 、VLR/SGSN (访问位置寄存器/支持GPRS服务节点和HE/HLR (归属环境/归属位置寄存器) , AV是认证向量, IMSI是用户永久身份标识。具体步骤如下:
(1) 当MS第一次入网或由于某种原因VLR/SGSN需要MS的永久身份认证时, MS向VLR/SGSN发送用户永久身份标识 (IMSI) , 请求注册。在平时的认证中这一步骤并不存在。
(2) VLR/SGSN把IMSI转发到HE/HLR, 申请认证向量 (AV) 以对MS进行认证。
(3) HE/HLR生成n组AV发送给VLR/SGSN。
其中, AV=n (RAND||XRES||CK||IK||AUTN) , 这5个参数分别为随机数 (RAND) 、期望响应值 (XRES) 、加密密钥 (CK) 、完整性密钥 (Ⅸ) 和认证令牌 (AUTN) 。它们由如下的方法产生:
RAND由f0产生
XRES=f2k (RAND)
CK=f3k (RAND)
IK=f4k (RAND)
AUTN=SQN+ (AAK||AMF||MAC
其中, SQN是序列号;AK是匿名密钥, 用于隐藏SQN;AMF是认证管理域;MAC是消息认证码。
AK=f5k (RAND)
MAC=flk (SQN||RAND||AMF)
f0~f5是3G安全结构定义的密码算法。f0算法只用在认证中产生随机数, f1算法用于产生消息认证码, f2算法用于在消息认证中计算期望响应值, f3算法用于产生加密密钥, f4算法用于产生完整性密钥, f5算法用于产生匿名密钥。K是MS和HE/HLR之间共享的密钥。
(4) VLR/SGSN接收到认证向量后, 将其中的RAND和AUTN发送给MS进行认证。
(5) MS收到RAND和AUTN后, 计算期望消息认证码 (XMAC) 的值 (XMAC=f1K (SQN||RAND||AMF) ) , 并把计算结果和AUTN中的MAC比较, 如不等, 则发送拒绝认证消息, 放弃该过程。如果二者相等, MS验证SQN是否在正确的范围内, 若不在正确的范围内, 则MS向VLR/SGSN发送同步失败消息, 并放弃该过程。若上面的两项验证都通过, 则MS分别计算响应值 (RES, RES=f2k (RAND) ) 以及CK、IK的值, 并将RES发送给VLR/SGSN。
最后, VLR/SGSN收到应答信息后, 比较RES和XRES, 相等则认证成功, 否则认证失败。
1.2 安全性分析
该协议通过MS和HE/HLR共享的密钥K, 实现了以下目标。
(1) MS和HE/HLR之间的相互认证。
VLR/SGSN接收到来自HE/HLR的认证向量中包括了期望MS产生应答的XRES (XRES=f2k (RAND) ) , 如果MS是合法用户, 则RES=XRES。而MS对HE/HLR的认证是通过MAC实现的。MS接收到VLR/SGSN发过来的MAC, 计算XMAC=f1k (SQN, RAND, AMF) , 如果MAC=XMAC, 则认证成功。
(2) MS和VLR/SGSN之间的密钥分配。
VLR/SGSN接收到来自HE/HLR的认证向量中包含的CK1和IK1, 合法用户接收到正确的RAND之后, 在MS中计算得到CK2=f3k (RAND) 和IK2=f4k (RAND) , 并且CK1=CK2, IK1=IK2。由于通信中的密钥并没有在空中传输, 确保了密钥的安全。
1.3 可能的攻击
通过上面的分析可以发现, 3G安全机制完全建立在MS和HE/HLR之间共享密钥K的基础之上, 若该密钥K泄漏, 那么通信中的安全将无从谈起, 攻击者可以轻而易举地在空中截获RAND, 并用相关算法取得相互认证且计算出CK和IK, 从而通信中的所有数据都可以被攻击者截获。由于这个密钥K是长期不变的, 所以一旦泄漏, 将对用户和网络运营商造成不可估量的损失。
2 3G认证协议的一种改进
对上面3G认证和密钥分配协议提出一个改进办法。认证和密钥分配过程如下:
其中, {……}K表示单钥精密计运算, RI为一个由MS产生的随机数。
在上述改进方案中, VLR/SGSN收到移动用户的注册请求中包括了MS对随机数RI用与HE/HLR共享的密钥加密后的信息。VLR/SGSN向用户的HE/HLR发送该用户的永久用户身份标识以及收到的加密消息, 请求该用户进行认证。
HE/HLR收到VLR/SGSN的认证请求后, 出计算认证向量AV外, 还将{RI}K解密, 再用与VLR/SGSN共享的密钥KHV重新加密, 与认证向量一同发送给VLR/SGSN。
VLR/SGSN接收到{AV, RI}KHV后, 对加密消息解密恢复出RI, 并将RI连同RAND||AUTN发送给MS, 请求用户产生认证数据。
MS接到认证请求后, 首先验证随机数RI的正确性, 正确则产生应答消息RES, 否则放弃该过程。
VLR/SGSN接收到来自MS的RES后, 将RES与认证向量AV中的XRES进行比较, 相同则认证成功, 否则认证失败。
3 结语
3G认证和密钥协商在整个3G安全体系结构中有着重要的地位, 相信在未来的不久, 随着我国3G的全面应用, 3G的规范会更加完善, 必将出现近乎完美的安全解决方案。
参考文献
[1]Bruce Schneier.应用密码学[M].北京:机械工业出版社, 2000.15-47.
[2]张鹏.第三代移动通信接入认证研究[D].重庆:西南交通大学硕士学位论文, 2004.