基于椭圆曲线码的用户身份相互认证方法
【技术领域】
[0001] 本发明属于无线通信中的安全、隐私保护技术领域,具体涉及一种基于椭圆曲线 码的用户身份相互认证方法。
【背景技术】
[0002] AdHoc网络作为一种特殊的移动自组织网络,有着广泛的应用场合,特别适合于 战术通信、应急通信、临时通信等场合。移动AdHoc网络不需要任何基础设施,具有网络拓 扑结构动态变化,存储容量、计算能力及能量有限,带宽受限、网络安全性差等特点,使得Ad Hoc网络很容易受到各种攻击。安全问题是其需要解决的关键问题之一,而身份认证又是网 络系统中的第一道安全屏障,对于AdHoc网络来说,每个节点需要能够确认与其通信的节 点身份,如果没有认证,攻击者很容易冒充其它节点,获得重要的系统资源,进而干扰正常 节点间通信。通过身份认证可以证实用户身份的真实性,防止非授权用户对系统资源的访 问和合法用户对系统资源的非法访问。因此为了实现安全通信,首先需要进行身份认证。
[0003] 传统的基于公钥基础设施(PublicKeyInfrastructure,PKI)的密码系统中,由 于实体的身份和公钥通常是由认证中心(CertificationAuthority,CA)颁发的公钥证书 来绑定,证书的高存储、高计算开销和复杂的管理、维护过程,大大加重了系统负担。验证者 验证签名人身份时,首先需要验证CA对签名人公钥证书的签名,然后利用签名人的公钥验 证签名信息。两次签名验证对于计算能力有限的AdHoc网络来说是一种负担。
[0004] 在基于身份密码系统中,公钥是身份的函数,验证者不需要验证用户的公钥。用户 的私钥由可信的第三方密钥产生中心(KeyGenerationCenter,KGC)生成。不需要公钥的 存储比如数字证书,KGC只需要维护其产生的公开系统参数目录,省去了维护所有用户公钥 目录的系统开销。但是所有用户私钥统一由KGC生成,如果KGC不再可信或者KGC的私钥 被攻击者窃取,整个系统的安全性就丧失。
[0005] 自认证公钥系统是一种介于PKI公钥密码系统与基于身份密码系统之间的类型, CA将签名信息嵌入在用户公钥中,用户能够从签名中推导出其公钥,用户公钥不需要单独 的认证证书,不像基于PKI密码系统那样需要明确的证书对公钥进行认证,同时也避免了 基于身份认证系统中的密钥托管问题。
[0006] 此外,椭圆曲线密码体制(EllipticCurvesCryptography,ECC)以椭圆曲线离散 对数问题难解性为安全基础,在数据签名和认证过程中的安全性能方面有着自身独有的特 点及优势。将椭圆曲线密码体制与AdHoc网络相结合,能够提供更好的安全性能。因此, 对于资源和带宽有限的AdHoc网络来说,ECC算法是最佳选择。
【发明内容】
[0007] 本发明的目的就是针对现有技术的不足,结合AdHoc网络自身特点,基于自认证 公钥系统,提出一种基于椭圆曲线码的用户身份相互认证方法。
[0008] 本发明方法在用户相互认证的同时实现了密钥协商的功能,用户身份的验证可以 在一个逻辑步骤中完成,减少了验证次数而加快认证速度,且能抵抗各种攻击,存储开销、 通信开销及计算开销都很少,适合于存储能力、计算能力和带宽受限的AdHoc网络中。
[0009] 为了实现上述目的,本发明所采用的技术方案的具体步骤为:
[0010] 步骤1、系统初始化:首先CA(认证中心)选取一条基于素数域GF(p)上160bit椭 圆曲线E(GF(p)),椭圆曲线方程为:
[0011] y2=x3+ax+b(modp),a,bGGF(p),且(4a3+27b2)modp辛Ox、y为方程变量,椭圆 曲线域参数为T= (p,a,b,G,n,h),a和b为椭圆曲线方程的参数,p为素数,h为余因子,n 为基点G的阶;CA随机选取一个整数作为认证中心私钥sCA,且sCAe[2,n-2],得到认证中 心公钥PCA,PCA=sCA ?G;
[0012] 步骤2、用户注册阶段:用户通过向CA注册产生其公/私钥对;用户U的私钥由用 户U和CA共同生成,同时CA不能获知用户U的私钥,并且CA将签名信息嵌入在用户U的 公钥中;具体过程如下:
[0013] (1)、用户U用随机数发生器产生一个临时交互号&,并随机选取一个整数r' ",且 IDu为用户U的身份标识符,SHA表示安全单向散列函数;然后将消息
【主权项】
1.基于椭圆曲线码的用户身份相互认证方法,其特征在于,该方法的具体步骤是: 步骤1、系统初始化:首先认证中心CA选取一条基于素数域GF (P)上160bit椭圆曲线 E (GF(P)),椭圆曲线方程为: y2=x3+ax+b(modp),a,b e GF(p),且(4a3+27b2)modp 辛 Ox、y 为方程变量,椭圆曲线 域参数为T = (p, a, b, G, n, h),a和b为椭圆曲线方程的参数,p为素数,h为余因子,η为基 点G的阶;认证中心CA随机选取一个整数作为认证中心私钥s CA,且sCAe [2, η-2],得到认 证中心公钥PCA,Pca= s CA · G ; 步骤2、用户注册阶段:用户通过向认证中心CA注册产生其公/私钥对;用户U的私钥 由用户U和认证中心CA共同生成,同时认证中心CA不能获知用户U的私钥,并且认证中心 CA将签名信息嵌入在用户U的公钥中;具体过程如下: (1) 用户U用随机数发生器产生一个临时交互号N1,并随机选取一个整数 r ' u,且 r ' ue [2, n_2],得到用户 U 的注册信息 R ' w, R r U=Trπ · G, W= /D(; ·匕),IDu为用户U的身份标识符,SHA表示安全单向散列函数;然后 将消息(N1, R' u, w)发送给认证中心CA ; (2) 认证中心CA收到消息(N1, R ' u, w)后核实IDU: = W十S/A4(.v, ·/?,'),其中 SHA(sCA · R' u) = SHA(sCA · r' u · G) = SHA(r' u · Pca);如果认证中心 CA 的注册文件中 包含IDu,表示为已经注册用户,未包含表示未注册的新用户; 如果是新用户,认证中心CA随机选取另一个整数冗,且& e[2,"-2],得到用户U的签 名信息Ru和々尽· G, = [(.V, ·/Dr,/?;. · λ) + 弓)]mod ?,其中 Ru · X 表示 Ru的横坐标值; 认证中心CA用随机数发生器产生另一个临时交互号N2,将明文信息(^,^,^,^发 送给用户U ; ⑶用户U收到明文信息(化Hi)后,得到用户U的私钥Su,& =1 +<;同时, 若 Su · G = Pca · [(SHACtDu, Ru · X))modn]+Ru,则用户 U 的公钥为 Pip Pu= Su · G ; (4) 用户U将消息SHA(r,u · PCA,N2)发送给认证中心CA ; (5) 认证中心CA收到消息后,将消息SHA(sCA · R '",N2)与接收到的消息 SHA(r' υ·Ρα,Ν2)进行对比,如果相等,则说明消息来自于用户U且用户已成功验证用户的 公钥;认证中心CA将用户U的10"等注册信息保存在一个注册文件中; 用户U存储认证中心CA的PeA和参数Ru、%、IDu信息,其他用户通过P "、化和ID u得到 用户 U 的公钥,Pu= P CA · [(SHAdDu, RuDmodn]+%; 步骤3、用户身份相互认证,具体步骤如下: ① 发送者首先用随机数发生器产生临时交互号Nt,并随机选取整数巧,且 !1£[2,11-2],得到信息(: 1,(:1=1'1*6,利用3撤函数将信息队、(:1、取、艮生成摘要 SHA(Nt,C1, IDt,Rt),IDt为发送者的身份标识符,Rt为发送者的签名参数;加密后得到签名信 息 signT, signT = (!^+St · SHA(Nt, C1, IDt, Rt))modn,级连上 N0Cp IDt、Rt发送给接收者; ② 接收者收到消息后,首先需要利用PCA、IDt、Rt,重构出发送者的公钥P t, Pt= Pca· [(SHA(IDt,Rt'x))modn]+Rt,并验证数字签名,如果 signT.G = CfPt · [ (SHA (Nt,C1, IDt,Rt)) modn],则表明发送者身份是合法的,接收者用随机数发生 器产生临时交互号队,并随机选取整数r2,且r 2e [2, n-2],得到信息C 2, C2= r 2 · G ;会 话密钥Krt= SHA(C i · sr+r2 · Pt),利用SHA函数将信息Krt、Nt、队、C2、ID r、Rr生成摘要 SHA(Krt,H C2, 1?, RJ,级连上Nt、队、C2、取、1^发送给发送者,ID r为接收者的身份标识 符,艮为接收者的签名参数; ③ 发送者收到消息后,由临时交互号Nt确定是当前协议回合,然后利用P CA、1?、艮, 重构出接收者的公钥Pr,Pr= P CA · [ (SHA (IDr,Rr · X)) modn] +Rr,计算会话密钥Ktr = SHA (C2 · st+ri .Pr),如果 SHA (Ktr,Nt,Nr,C2, IDr,Rr)与 SHA (Krt,Nt,Nr,C2, IDr,Rr)相等,则表明 验证用户接收者身份是合法的,同时表明用户接收者已经验证用户发送者身份的真实性, 然后生成SHA(K ta,队)返回给用户接收者; ④ 接收者收到消息SHA (Kt,,N,)后进行验证,如果消息SHA (Krt,N,)与收到的消息 SHA (Κ&,队)相等,则确定是当前协议回合,而不是重放的,同时也表明发送者已验证接收者 身份的真实性,会话密钥协商成功。
【专利摘要】本发明涉及基于椭圆曲线密码的用户身份相互认证方法。本发明考虑了Ad Hoc网络存储能力、计算能力和带宽受限的特点,利用自认证公钥系统和椭圆曲线离散对数问题难解性,减少了用户身份认证过程的交互次数、加快认证速度。本发明方法包括系统初始化、用户注册阶段和用户身份相互认证阶段。本发明方法保证用户身份相互认证的同时也实现了会话密钥协商的功能,存储开销、通信开销与计算开销都很少,可以抵抗重放攻击、中间人攻击、伪装与篡改攻击、抗密钥泄露伪装攻击,生成的一次性会话密钥具有前向安全和后向安全性,具有更高的安全性。
【IPC分类】H04L9-30, H04L9-32
【公开号】CN104639329
【申请号】CN201510053788
【发明人】陈惠芳, 谢磊, 葛琳琳
【申请人】浙江大学
【公开日】2015年5月20日
【申请日】2015年2月2日