一个简便的三方密钥交换协议
一个简便的三方密钥交换协议
【摘要】基于口令认证的三方密钥交换协议(3PAKE)是使通信双方在认证服务器的帮助下能相互进行认证并建立一个会话密钥。在本论文中,我们提出了一个通过增强口令而不需服务器中间加密的简单的基于口令认证的三方密钥交换协议。通过这种方式,每个客户端只共享一个值得信赖的服务器通用密码,任何两个客户端通过服务器的介入可以验证彼此并交换会话密钥。相比以前的协议,我们所提出的协议无需加密密码且更有效率、更方便。
【关键词】口令攻击;口令;第三方协议;认证;密钥交换
1.引言
密码验证协定(PAKE关键交换)协议,是指用户和服务器之间共享口令或口令的验证值,服务器借此对用户进行身份的认证,并协助用户完成会话密钥的生成。目的是通过各通信方的交互,建立共同的会话密钥,从而能够实现在不安全信道上的安全通信。设计一个安全的PAKE面临这样一个问题,由密码是从一个比较小的范围中选取的,这样的协议很容易受到字典攻击。Bellovin and
Merritt[1]在此基础上,首次提出了两方的基于口令的密钥交换协议(2PAKE)解决了通信双方如何在不预先共享秘密的情况下协商会话密钥的问题,开辟了公钥密钥学的新方向。加密的关键是通讯双方共同协商一个共享会话密钥,然后使用该会话密钥来加密所传送的消息。自此,基于口令的认证方式成为使用最普遍也最方便的加密方式。[9-11][2-3]但是2PAKE协议也存在弊端,由于2PAKE使用的是“用户一服务器”模型,用户所需要记忆的口令数会随着与它通信的用户数的增加而增加,这限制了协议在实际中的应用。例如在大型通信环境中采用2PAKE将导致“用户—用户”之间的密钥管理非常的复杂。为了解决这个问题,一些第三方密钥验证协议(3PAKE)[4-7]随即被提出。在一个3PAKE,每个用户只需要与一个可信的服务器(TS)共享一个简单口令,可信服务器认证通信双方并帮助持有不同口令的通信方生成会话密钥。1995年,Steiner等[1]开发出一种基于Diffie-Hellman(DH)密匙交换概念的3PAKE协议,与Bellovin和Merrit的协议相比,其交互轮数与验证元数目都有效的减少,系统的运算效率更高。之后,Ding和Horster[5]等。指出Steiner等的协议无法检测出在线猜测密码攻击,并提出了一种改进的方案来解决这个安全漏洞。Lin等在文献[6]证明Steiner等的协议无法抵御连续的恶意程序调用离线猜测密码攻击。为解决这个的缺陷,Lin等使用公共密钥加密技术来构建他们的补救措施,以提高密钥协议的安全性。然而,公共密钥技术无论是通信开销或是计算开销都很大。为了提高协议性能,文献[7]中,作者提出了不使用公钥加密的3PAKE协议,但也需要使用到一个密码作为验证密码。
在本文中,我们提出了一个简便的3PAKE[8]。与以前的3PAKE协议相比,我们的协议是更加高效、便捷的自协议且不需要加密密码。
2.预备知识
在本节中,提出了一种新的简便的3PAKE协议。接下来我们介绍一下论文中使用到的参数与符号。首先,系统选用两个大素数p,q并找到一个整数g,g是属于GF(p)和GF(q)的原始元素。GF(p)是q阶循环加群GF(q)是q阶循环乘群。为了阐明这个协议我们需要使用到一些公式与运算符,现将使用到的符号含义介绍如下:
p,q:表示两个大素数
g:表示一个属于GF(p)和GF(q)的原始元素
TS:表示可信的服务器
A,B:分别表示通信的发起方和应答方
:表示用户B(user A)和TS之间的共享口令
:表示用户B(user B)和TS之间的共享口令
h():表示单向的hash函数
IDA:表示A的网络ID
IDB:表示B的网络ID
||:表示级联运算
:表示按位异或运算
3.算法介绍
由于没有避免在线词典遭受攻击[7]机制,因此不能确保一个受信任的服务器的客户端是否是个有效的用户。为了抵抗这样的袭击,我们将为TS认证客户。我们的协议中,每一个客户分享一个human-memorable密码与可信赖的服务器(TS)。当两个客户想要建立一个共同的会话密钥,他们采取了彼此信任的服务器为鉴定。细节为下列步骤:
Setp1:用户选择一个随机数x并发送(IDA,gx)给B。
Setp2:用户也选择一个随机数y并发送(IDA,gx,IDB,gy)给TS。
Setp3:当收到(IDA,gx,IDB,gy)之后,由TS分别选择两个随机数字aandb,结合共享口令和,带入公式ZA=g(x+pwA)a,ZB=g(y+pwB)b,分别计算出(ZA,ZB)之后,然后由TS分别指派(ZA,ZB)给A,B。
Step4:当接收到TS传递过来的ZA。由A按照公式ga=g(x+pwA)a(x+pwA)-1推算出ga。User A按照公式KA=h(ga)计算结果,然后由A将计算出来的结果KA送到TS,由TS进行自我校验。
Step5:当接收到TS传递过来的ZB。由B按照公式gb=g(x+pwB)b(x+pwB)-1推算出gb。User A按照公式KB=h(gb)计算结果,然后由B将计算出来的结果KB送到TS,由TS进行自我校验。
Step6:一旦接收到KAandKB,TS按照=h(ga)和=h(gb)计算结果然后,分别检测KA与、KB与是否匹配。如果不匹配,TS将会中断会话并且认定当前用户不是合法用户。如果匹配,TS分别按照公式和计算出结果。之后,TS将AuthTA和AuthTB分别送给A,B。
Step7:当A,B从TS接收到(AuthTA AuthTB),B按照计算结果并且检测与AuthTB是否匹配。如果匹配,B按照公式K=gxy和AuthBA=h2(gxy)计算结果,之后将AuthBA和AuthTA发送到A;否则,B终止协议。
Step8:当A接收到(AuthTAAuthBA),然后由A验证AuthTA是不是想要的目标信息。如果是,那么表明TS是一个可信赖的服务器,之后检测AuthBA是不是需要的目标信息,如果是,表明B可信赖的。至此,A和B交换共享密钥K=gxy,该密钥用作之后的通信。然后,A传送AuthAB=h2(gxy)给B用作B的自我校验。
Step9:一旦接收到AuthAB,B验证该值是不是匹配。如果匹配,K作为有效的会话密钥。
算法示意图如下图1,图2所示。
4.算法安全性分析
在本节中,我们将分析,我们提出的协议是安全的。在这里,主要讨论我们提出的3PAKE协议可以抵抗各种已知的攻击。
(1)在线猜测攻击
在我们的协议中,只有两个通信实体都是合法用户,TS才会继续执行协议。否则,协议终止。在第6步,如果验证信息是无效的,TS将会把该目标的传输密码视作字典攻击。所以该协议可以抵抗在线猜测攻击。
(2)离线猜测攻击
在一个离线猜测攻击中,攻击者攻击一个密码,并证实他的猜测。然而,在我们的协议中没有提供给离线用户任何有用的信息来帮助验证猜测口令的正确
性。因此,我们的协议可以抵抗离线猜测攻击。
(3)中间人攻击
在我们的协议中,入侵者无法发起中间人攻击,因为入侵者在不知道用户口令的情况下无法获知KA或KB。那么他在TS端就无法进行自我验证。
5.结论
第三方密钥验证协议(3PAKE)是目前一种最重要的通信协议。基于口令认证的三方密钥交换协议。使通信双方在认证服务器的帮助下能相互进行认证并建立一个会话密钥。与前人提出的基于口令认证的三方密钥交换协议相比,该协议在计算代价和通信代价上都较有效,因而更适用于资源受限的环境。在本文中,我们提出了一个简单的3PAKE。比较以前的3PAKE,它只需通过增强密码,而无需加密密码,并且更加高效、便捷。
参考文献
[1]Bellovin S M,Merritt M.Encrypted key exchange:Pass word-based protocols
secure against dictionary attacks.Proceedings of the 1992 IEEE Computer Society
Symposium on Research in security and
Privacy.Oakland,California,USA,1992:72-84.
[2]D.Jablon.Strong Password-Only Authenticated Key Exchange.ACM
Computer Communications Review,October 1996.
[3]S.M.Bellovin and M.erritt.Encrypted:Key Exchange:Password-Based
Protocols against Dictionary attacks.Proceeding of the IEEE Symposium on Research
in Security and Privacy.Oakland,May 1992.
[4]M.Steiner,G.Tsudik,M.Waidner.Refinement and Extension of Encrypted Key
Exchange[J].ACM Operation Systems Review,1995,29(3):22-30.
[5]Y.Ding,P.Horster,Undetectable on-line password guessing attacks,ACM
Operating Systems Review 29(4)(1995)77-86.
[6]C.L.Lin,H.M.Sun,T.Hwang,Three party-encrypted key exchange: attacks and
a solution,ACM Operating Systems Review 34(4)(2000)12-20.
[7]C.L.Lin,H.M.Sun,M.S,et al.Three party Encrypted Key Exchange without
Server Public Keys[J].IEEE Commnuications Letters,2001,5(12):497-499.
[8]T.Kwon.Authentication and Key Agreement via Memorable
Password[EB/OL].Internet Society Network and Distributed System Security
简述diffie-hellman密钥协商协议
简述diffie-hellman密钥协商协议
摘要:
1.Diffie-Hellman密钥协商协议背景
2.Diffie-Hellman密钥协商协议原理
3.Diffie-Hellman密钥协商协议的优势
4.Diffie-Hellman密钥协商协议的局限性
5.应用场景
正文:
diffie-hellman密钥协商协议是一种在网络通信中用于安全交换密钥的算法。它解决了对称密码体制中通信双方如何达成共识的问题。在对称密码体制中,发送方和接收方需要使用相同的密钥进行加密和解密。然而,如何在不安全的通信环境中传递密钥成为了一个难题。Diffie-Hellman密钥协商协议就在这种背景下应运而生。
Diffie-Hellman密钥协商协议的工作原理如下:
1.选择一个大素数p作为全局公开参数。
2.选择一个在模p意义下的原根g。
3.通信双方(例如Alice和Bob)分别选择一个随机数a和b作为私有密钥。
4.Alice计算出A=g^a mod p,并将A发送给B。
5.Bob计算出B=g^b mod p,并将B发送给Alice。
6.双方根据接收到的对方密钥,计算出共享密钥K=A^b mod p(Alice)和K=B^a mod p(Bob)。
Diffie-Hellman密钥协商协议的优势在于,即使第三方(如攻击者C)截获了通信过程中的公开信息,也无法获得通信双方的私有密钥。这是因为计算共享密钥的过程依赖于双方的私有密钥,而公开信息中仅包含了双方计算过程中的中间结果。
然而,Diffie-Hellman密钥协商协议并非完美无缺。在某些情况下,它可能受到中间人攻击。例如,攻击者C可以在通信过程中篡改Alice和Bob之间的消息,从而获取他们的私有密钥。为了解决这一问题,可以在协议中引入身份验证机制,以确保通信双方的真实性。
Diffie-Hellman密钥协商协议在许多场景下具有广泛的应用,如SSL/TLS协议、VPN等。它为通信双方提供了一种安全、高效的方法来交换密钥,从而确保了通信过程中的安全性。
一种基于身份的DH密钥交换协议
第21卷第6期 2011年l2月 广东石油化工学院学报 Journal of Guangdong University of Petrochemical Technology V01.21 No.6 Dec.2011
一种基于身份的DH密钥交换协议
项顺伯
(广东石油化工学院计算机与电子信息学院,广东茂名525000)
摘要:基于DH困难问题,提出一种基于身份的两方密钥交换协议,并对协议的安全性进行了分析。所提出的协议中,会话 密钥的生成需要参与方的长期私钥和选取的随机数。安全性分析表明,所提出的协议能满足两方密钥交换协议的安全性 要求。 关键词:基于身份;密钥交换;DH问题;会话密钥 中图分类号:TP309 文献标识码:A 文章编号:1671—6590(2011)06一OO44—03
基于身份的密钥交换协议允许协议的参与方通过它们的身份信息在不安全的通信网络上建立一个会 话密钥以加密传递的数据,从而实现安全的数据通信。该协议按参与方的数量可分为基于身份的两方、三
方和群组的密钥交换协议。基于身份的密钥交换协议目前已成为密钥协议的重要研究内容,身份信息作
为公钥可以弥补公钥证书的不足。 基于身份的两方密钥交换协议的研究成果很多。文献[1]首次提出一个不能实现互相认证的密钥交
换协议,该协议需要一个认证通道来交换公钥,同时也提出了著名的密码困难问题——DH问题,该问题 成为后继者研究密码学问题的重要工具。1984年,Shamir首次提出了基于身份的密码协议问题 2 J,其设计
思想是以协议参与方的身份信息作为公钥,以简化公钥的管理问题。此后,大量的基于身份的密钥交换协
议被提出。文献[3]中一个通信次数为四次的基于身份两方密钥交换协议是基于离散对数困难问题提出
的。文献E4]在文献[3]的基础上提出一个改进的协议,协议的通信次数为两次。文献[5]提出一个基于身
份的两方密钥交换协议,协议也是基于离散对数困难问题而实现的。文献[6]提出一种基于身份的数字签
ipguard加密原理
ipguard加密原理
IPGuard是一种网络通信协议加密技术,旨在提供安全可靠的数据传输和通信保护。它基于密钥交换和数据加密技术,将通信内容和数据包进行加密,防止内容被窃听、篡改或伪造。下面将详细解释IPGuard的加密原理。
IPGuard加密原理主要包括身份认证、密钥交换和数据加密三个方面。
首先是身份认证阶段。在进行通信之前,通信双方需要进行身份认证以确保通信的安全性。身份认证一般使用数字签名来实现。通信双方通过生成数字签名来确保数据的完整性和可信度。数字签名使用了非对称密钥算法,通常包括公钥和私钥。发送方用私钥对数据进行签名,接收方使用发送方的公钥对签名和数据进行验证。这个过程确保了发送方的身份和数据的完整性。
接下来是密钥交换阶段。在完成身份认证后,通信双方需要协商一个密钥,用于后续的数据加密和解密。密钥交换需要一种安全可靠的方法来确保密钥只被通信双方知道,并且不被第三方截获。常见的密钥交换方法包括Diffie-Hellman密钥交换协议和公钥加密算法。这些方法可以确保密钥的机密性和完整性,防止密钥泄漏和被篡改。
最后是数据加密阶段。在完成密钥交换后,通信双方使用协商好的密钥来对通信内容进行加密和解密。通常使用的加密算法有对称加密算法和公钥加密算法。对称加密算法适合对大量数据进行高效加密,而公钥加密算法适合对对称密钥进行加密和解密。IPGuard通常采用混合加密的方式,将对称加密算法和公钥加密算法结合使用。发送方首先使用对称加密算法对通信内容进行加密,然后再使用接收方的公钥对对称密钥进行加密。接收方使用自己的私钥对接收到的对称密钥进行解密,然后再使用对称密钥对加密的通信内容进行解密。这个过程保证了通信内容的机密性和完整性。
总结来说,IPGuard的加密原理包括身份认证、密钥交换和数据加密三个主要步骤。通过这些步骤,IPGuard可以确保通信内容的安全性和可靠性,防止内容被窃听、篡改或伪造。这种加密技术在保护网络通信方面起到了重要的作用。
DH算法原理
DH算法原理
DH 是 Diffie-Hellman的首字母缩写,是Whitefield与Martin
Hellman在1976年提出了一个的密钥交换协议。我个人倾向于称DH算法为 密钥协商协议而RSA算法是密钥交换算法。
本篇分为几个部分,第一个部分介绍一下密钥交换的场景;第二部分介绍一下DH算法的的步骤,以及由该算法引出的一些问题;第三部分开始讲数学原理。数学原理可能涉及到数论、抽象代数,本篇尽量在每个公式后面证明该公式的正确性。
简单场景&简单的密钥协商
先从一个应用场景说起:
Alice 和Bob想要在一个不安全的信道共享一个密钥,该密钥可被用来进行后续的其他的操作,并且仅被Alice和Bob所知,第三方无法得知。
一个简单的方法就是,现在全世界都是知道一个值 P=100。Alice生成随机值5,然后乘上P,接着发送Pa = 500给Bob;通样Bob生成随机值6,然后乘上P,接着发送Pb = 600给Alice。
这样,Alice 有 100,5 ,600,Bob有100,6,500。
Alice计算: 随机值5(自己私钥) * 600(对端的公钥) = 3000 等式1
Bob计算 : 随机值6(自己私钥) * 500(对端的公钥) = 3000 等式2
这样 Alice就和Bob共享了一个值3000,还有谁知道3000这个值呢?我们知道Alice明文的将500发送到不安全信道,Bob明文的将600发送到不安全信道,这也就意味着第三方仅仅知道500 和
600,想要计算获得共享密钥,第三方要么获取到Alice的随机值然后拿它乘上600,要么获取到Bob的随机值然后拿它乘上500,这样才能获取到Alice和Bob的共享密钥。
问题来了,如何获取到Alice的随机值呢?
第三方知道,Alice发送的500是由P乘上Alice的随机值得到的,所以问题变成了求方程 x*100 = 500的解。一眼就能看出来,Alice的随机值是5。
可证明安全的基于位置的Prover-to-Prover密钥交换协议
可证明安全的基于位置的Prover-to-Prover密钥交换协议
张俊伟;陈治平;马建峰;杨力
【摘 要】本文针对两个证明者之间可证明安全的基于位置密钥交换协议展开研究.首次将基于位置密钥交换分为P2V (Prover-to-Verifier)模式和P2P (Prover-to-Prover)模式,并给出P2P模式下基于位置密钥交换的安全定义.随后,在l维空间下设计了可证明安全的基于位置P2P密钥交换协议P2PKE1,并以此为基础构造了d(1≤d≤3)维空间下基于位置P2P密钥交换协议P2PKEd.同时,分别提出了具有密钥确认性质的基于位置P2P密钥交换协议P2PKEd-c和无密钥托管的基于位置P2P密钥交换协议P2PKEd-e.最后,从安全性和效率两方面对所设计的协议进行了讨论.
【期刊名称】《电子学报》
【年(卷),期】2016(044)001
【总页数】7页(P14-20)
【关键词】P2P;基于位置密钥交换;BRM模型;可证明安全
【作 者】张俊伟;陈治平;马建峰;杨力
【作者单位】西安电子科技大学计算机学院,陕西西安710071;西安电子科技大学计算机学院,陕西西安710071;西安电子科技大学计算机学院,陕西西安710071;西安电子科技大学计算机学院,陕西西安710071
【正文语种】中 文
【中图分类】TN911.7 随着无线设备的地理位置在无线系统的数据采集、安全通信、资源管理、异常处理/维护等多方面扮演越来越重要的角色,基于位置系统中与地理位置相关的安全问题也越发引人关注[1~3].
Liu和Ning针对无线传感器网络提出了一个基于位置的密钥预分发方案[4].Yang和Xiao应用基于网格多项式密钥建立方法来解决无线传感网络的安全问题[5].Huang等针对无线传感网络提出了一种基于位置的密钥管理方案[6],Younis等人则提出了一种基于位置的分布式密钥管理方案[7].Zhang等人结合用户身份和地理位置得出基于位置密钥,并提出了一种基于位置的安全机制[8,9].
kea密钥交换算法
kea密钥交换算法
KEA(Kryptographic Establishment of Appropriate Keys)密钥交换算法是一种基于Diffie-Hellman密钥交换的协议,用于在通信双方之间协商共享密钥。KEA算法的主要目标是提供前向保密(forward secrecy),防止第三方攻击者获取加密数据。
KEA密钥交换算法的基本流程如下:
1. 客户端和服务器协商使用KEA协议。
2. 客户端生成一个临时公钥,并将其发送给服务器。
3. 服务器接收到临时公钥后,生成一个临时私钥。服务器使用客户端的临时公钥和对称加密算法(如AES)加密临时私钥,然后将加密后的临时私钥发送给客户端。
4. 客户端接收到加密的临时私钥后,使用自己的临时公钥和对称加密算法解密临时私钥。这样,客户端和服务器就可以获得彼此的临时私钥。
5. 接下来,客户端和服务器使用临时私钥计算出一个共享密钥(预主密钥)。
6. 客户端和服务器使用共享密钥加密通信数据,以确保数据安全。
KEA密钥交换算法的安全性依赖于Diffie-Hellman密钥交换的特性。在有限域上计算离散对数非常困难,这意味着攻击者难以获取通信双方之间的共享密钥。此外,KEA协议使用非对称加密算法(如RSA)进行身份验证,以确保通信双方的身份安全。
总之,KEA密钥交换算法是一种安全、可靠的密钥交换协议,适用于需要保护通信数据的安全场景。
Diffie-Hellman算法简介
Diffie-Hellman算法简介
⼀、DH算法是⼀种密钥交换协议,它可以让双⽅在不泄漏密钥的情况下协商出⼀个密钥来。DH算法基于数学原理,⽐如⼩明和⼩红想要协商⼀个密钥,可以这么做:
1. ⼩明先选⼀个素数和⼀个底数,例如,素数p=23,底数g=5(底数可以任选),再选择⼀个秘密整数a=6,计算A=(g^a mod p)=8,然后⼤声告诉⼩红:p=23,g=5,A=8;2. ⼩红收到⼩明发来的p,g,A后,也选⼀个秘密整数b=15,然后计算B=(g^b mod p)=19,并⼤声告诉⼩明:B=19;3. ⼩明⾃⼰计算出s=(B^a mod p)=2,⼩红也⾃⼰计算出s=(A^b mod p)=2,因此,最终协商的密钥s为2。在这个过程中,密钥2并不是⼩明告诉⼩红的,也不是⼩红告诉⼩明的,⽽是双⽅协商计算出来的。
第三⽅只能知道p=23,g=5,A=8,B=19,由于不知道双⽅选的秘密整数a=6和b=15,因此⽆法计算出密钥2。
⼆、数学证明:
对于⼩明的密钥计算过程有:s1 = (g^b mod p)^a mod p = g^(b*a) mod p对于⼩红的密钥计算过程有::s2 = (g^a mod p)^b mod p = g^(a*b) mod p根据乘法交换律,s1 == s2三、神奇的数学,完美的加密算法?
开始看到这个过程的时候,我着实⼩激动了⼀下,选择合适的素数,这个密钥的协商简直是”⽆懈可击“,怎么应⽤不怎么⼴泛呢?
查了⼀下资料,好吧,这个如果⽤于实战的话,⼀个”代理“就轻易的使这种加密完全⽆效。
所以现在⽤的⽐较⼴泛的加密算法是RSA(⾮对称加密算法)
参考⽂档:
两个安全的无证书三方认证密钥协商协议
收稿日期:20200402;修回日期:20200616 基金项目:国家重点研发计划课题资助项目(2018YFB1004101,2018YFB0803600)
作者简介:许盛伟(1976),男,江西吉安人,副教授,硕导,博士,主要研究方向为信息安全、密码应用;任雄鹏(1996),男,山西临汾人,硕士,
主要研究方向为密码协议(xpr13952115635@163.com).两个安全的无证书三方认证密钥协商协议
许盛伟1,2,任雄鹏1,2
(1.北京电子科技学院,北京100070;2.西安电子科技大学通信工程学院,西安710071)
摘 要:针对李、贾的两个无证书三方协议,分别构造具体攻击算法证明方案均有安全缺陷,进一步提出了新的
三方认证密钥协商协议并进行分析;由于该协议计算效率的局限性,同时在考虑内部人攻击的情况下采用
Schnnor签名提出第二个协议。与同类协议相比,两协议均具有安全性优势,满足完美前向安全、已知会话密钥安
全、抗密钥泄露伪装安全和抗临时密钥泄露安全等属性,避免了证书管理和密钥托管的缺陷;协议1与2相比,
前者通信成本较低并实现了可证安全,后者计算效率更高且抗内部人攻击,均适用于电子商务、手机漫游或电子
会议三方交互应用场景。
关键词:三方协议;无证书;密钥协商;可证安全;内部人攻击
中图分类号:TP309.7 文献标志码:A 文章编号:10013695(2021)04038116506
doi:10.19734/j.issn.10013695.2019.12.0706
Twosecurecertificatelessauthenticatedtripartitekeyagreementprotocols
XuShengwei1,2,RenXiongpeng1,2
(1.BeijingElectronicScience&TechnologyInstitute,Beijing100070,China;2.SchoolofTelecommunicationsEngineering,XidianUniversity,
密码学nka协议
密码学nka协议
引言
密码学在网络通信和数据安全中发挥着至关重要的作用。其中,NKA(Non-Repudiation Association)协议是一种用于保证参与者之间通信不可抵赖性的重要协议。本文将详细介绍密码学 NKA 协议的原理、实现和应用。
一、NKA 协议概述
NKA
协议是一种基于公钥密码学的协议,用于确保通信双方在完成一项交易后都不能否认交易的有效性和身份。它通过数字签名和时间戳等技术,确保交易的完整性和不可抵赖性。
二、NKA 协议原理
1. 公钥密码学基础
NKA
协议依赖于公钥密码学中的数字签名技术。数字签名是一种用于验证数据完整性和来源的技术,通过使用发送方的私钥对数据进行加密,接收方使用发送方的公钥解密得到原始数据。如果接收方怀疑数据的真实性,可以将数据发送给发送方,发送方使用自己的私钥解密,如果解密成功,则说明数据未被篡改。
2. NKA 协议流程
NKA 协议包括三个阶段:密钥交换、数字签名和验证。
(1)密钥交换阶段:通信双方通过交换信息,建立共享密钥。常用的密钥交换协议包括 Diffie-Hellman 密钥交换协议和 RSA 密钥交换协议。
(2)数字签名阶段:发送方使用自己的私钥对交易数据进行签名,接收方使用发送方的公钥验证数字签名。如果验证成功,则说明交易是由发送方发起的。 (3)验证阶段:在交易完成后,接收方可以将交易数据和数字签名发送给第三方机构进行验证。第三方机构可以使用发送方的公钥验证数字签名的有效性,从而确认交易的真实性和不可抵赖性。
三、NKA 协议实现
1. 选择合适的加密算法和协议标准
NKA 协议的实现需要选择合适的加密算法和协议标准。常用的加密算法包括
RSA、DSA(Digital Signature Algorithm)和 ECDSA(Elliptic Curve Digital
Signature Algorithm)等。协议标准可以选择国际通用的 SSL/TLS(Secure
一个改进的简单可认证密钥协商协议
2010年第7期 福 建 电脑 85 一个改进的简单可认证密钥协商协议 陈泗盛 .刘政连1,2 (1、福建师范大学福清分校数学与计算机科学系福建福清350300 2、英国伦敦大学皇家霍洛威数学系埃厄姆TW20 OEX英国) 【摘要】:简单可认证的密码协商协议(sAKA)是由Seo和Sweeney提出的,它是在Difie—Hellmen协议基础上进行改 进,目的是通信双方提供一个可认证的安全会话密钥的协商机制。本文将在SAKA的基础上,提出一个改进的方案,该改进 版可以抵抗已提出的对SAKA的伪造攻击。 【关键词】:可认证密钥协商;中间人攻击;窜改攻击;密钥交换。 0、引言 密钥协商协议是通信双方在公共信道上获取安全会话密钥 的重要技术.而会话是通信双方建立安全通信信道的重要保证 D e和Hellman提出用户双方能够在不安全信道上进行会话 密钥协商的双方密钥协商的协议.通常称其为Diffie—HeUn an密 钥协商协议IlI。而.这个协议的一个非常脆弱的地方就是其无法 抵抗中间人攻击.主要的原因是协议中没有要求对参与双方进 行身份认证 针对这个安全问题.研究者们在Dime—Hellman密钥协商协 议的基础上提出了三方协议.即在协议的执行过程中加入了一 个可信的第三方为参与双方提供双互的身份认证服务 但是.在 很多应用场合底下这个可信第三方是不存在的 基于这个问题. 1999年,Seo和Sweenev在D皿e—Hellman协议的基础上,提出 了一种简单的可认证的密钥协商协议(SAKA.Simple Authent1 cated Key Agreement)121。该协议的主要思想是,先假设通信双方 预共享了一个秘密密钥.并用此秘密密钥作为双方身份认证的” 信物”。 在SAKA算法提出来之后.不少研究者提出了一些攻击方 法,并分别给出了针对自己攻击方法的改进方案『2—71。其中 Yang和Chang[7】给出了一个可以攻击现有的任何SAKA算法。 因此.本文将提出一个改进的SAKA.我们分析了该算法的会话 密钥的安全性,同时又分析了该改进算法可以抵抗Yang-Chang 攻击方法 1、SAKA算法 SAKA算法是SeO和Sweeney在Diffie—Hellman协议基础上提 出的。为了描述的方便,在本文的剩下部分中,我们假设.Ailice 和Bob双方预共享着一个秘密密钥Q.为了安全通信.双方将进 行会话密钥协商。和Diffie—HeHman协议一样,同样假设.双方共 享着系统参数p和q,其中p是一个大素数,q是GF(p)的~个原根。 SAKA算法描述如下 步骤1.协议执行之前.假设Alice和Bob预共享着一个秘密 密钥Q,这里(Q,P一1)=1。 步骤2,Alice选取一个随机密钥a,1≤a≤P一2,计算 g‘(modp). 然后将消息 ,发送给Bob 步骤3,Bob选取一个随机密钥b.J≤b< ̄p-2.计算 D Yl g(modp) 然后将消息Y.发送给Alice 步骤4,Alice收到y,后,计算 ^_, 王,sy (mode)和后e sy‘ o 步骤5.Bob收到x.后.计算 n L X=-X 咖 和key:=-X 因此,Alice和B0b获得共同的会话密钥 (modp) 步骤6.为了验证会话密钥的有效性和验证另一方.AliceI51 Bob ̄key ,Bob[ ̄Allce发送kev 。当双方收到各自的消息后, Alice和Bob可以分别使用0 计算出会话密钥,从而起到认证作 用。 2 对SAKA算法的一些攻击 2.1 Tseng’攻击方法 在Seo-Sweeney协议中,尽管一个攻击者(EVE),不能伪装 成Bob通过运行协议¥1Alice协商一个共享的会话密钥.但是该协 议中的会话密钥的认证过程中存在着脆弱性。Tseng@出了一个 重放攻击的方法。在验证阶段中(步骤6),当Eve收到Alice发送的 Key (modn)后,Eve就以Bobfl'O身份把Key (modn)重新发送给Al— ice。当Alice收到E 。发送的Key (m。dn)后,计算(Key ̄)Q'modp,其 中Q Q~ 1(mod(p一1)),可以得到会话密钥。因此,即使Alice计算 出了错误的会话密钥.他也会相信自己得到了和B0b一致的会话 密钥。 为了防止以上重放攻击.Tseng ̄验证阶段提出了一种改进 的方法.改进后的认证步骤如下 f1)Alice发送Y给Bob. (2)Bob发送X给Alice. (3)Alice和Bob检验是否有等式X g'(modp)¥11y--g。(modp) 成立。 Tseng在其论文中说明了改改进方案的安全性.具体的可以 参考文献 2.2 Ku—Wang ̄击方法 尽管Tseng在其论文中说明了改改进方案的安全性.但是 Ku—Wang在文献中给出了一个篡改攻击方法。其攻击方法如下 当Alice发送 .给Bob的时候, e截取该消息,并用一个任 意数 ,X ,∈[1,p— 】进行替代,并将其发送给Bob。收到消息 后,Bob发送y, ̄Alice。然后,在验证过程中,步骤 中A比e发 送相应的l,给Bob:步骤(2)中。Bob将发送其认为是 的消息 rmoclp) ̄AIice;在步骤( )中,由于 ≠ga 咖,所以Af. e认为 ,,,无效,而因为有l, modp ̄.f-,i ̄Bob确认这个错误 的会话密钥 ), : ~f,加 J是有效的。 同样.为了防止以上篡改攻击.
