发明名称 云应用中基于第三方的无证书远程匿名认证方法
摘要 本发明公开了一种云应用中基于第三方的无证书匿名认证方法,主要解决现有技术远程双向认证安全性差的问题。其实现步骤是:1)网络管理者M对系统进行初始化;2)网络管理者M对用户U进行身份注册,并给用户U颁发系统账号;3)网络管理者M对服务提供商S进行身份注册,并给服务提供商S发送合法用户U的部分身份信息;4)用户U使用系统账号以匿名方式向服务提供商S发送服务请求;5)服务提供商S与用户U进行双向认证。本发明既消除了对证书的需求,又无密钥托管的弊端,提高了匿名双向认证的安全性,可用于无线体域网中远程用户进行服务请求时的身份认证。
申请公布号 CN104052608B 申请公布日期 2017.04.19
申请号 CN201410320127.1 申请日期 2014.07.07
申请人 西安电子科技大学 发明人 刘景伟;孙蓉;党利娜
分类号 H04L9/32(2006.01)I;H04L29/08(2006.01)I;H04L12/24(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 一种基于第三方的无证书远程匿名认证方法,包括以下步骤:(1)网络管理者M对系统进行初始化:1a)网络管理者M公布系统参数system={G<sub>1</sub>,G<sub>2</sub>,e,l,q,P,Q<sub>c</sub>,H<sub>1</sub>,H<sub>2</sub>},其中,G<sub>1</sub>是一个阶为素数q的循环加法群,G<sub>2</sub>是一个阶为素数q的循环乘法群,e是一个双线性对映射,l是安全系数,P是G<sub>1</sub>的生成元,Q<sub>c</sub>是网络管理者M的公钥,H<sub>1</sub>和H<sub>2</sub>是两个无碰撞安全杂凑函数,H<sub>1</sub>是将长度不等的0/1序列映射到G<sub>1</sub>上的元素的杂凑函数,H<sub>2</sub>是将长度不等的0/1序列和G<sub>1</sub>中的元素映射到整数乘法群<img file="FDA0001212607740000011.GIF" wi="56" he="71" />上的一个元素的杂凑函数;1b)网络管理者M从mod q的整数乘法群<img file="FDA0001212607740000012.GIF" wi="56" he="71" />中随机的选择一个整数s作为它的私钥,并计算它的公钥Q<sub>c</sub>=sP,得到自己的公私钥对(s,Q<sub>c</sub>),其中私钥s必须对外保密,公钥Q<sub>c</sub>对外公开;(2)用户U和服务提供商S进行系统注册:2a)用户U生成自己的公私钥对,并把它的身份和公钥信息发送给网络管理者M,网络管理者M为用户U颁发系统账号作为用户U在系统中的身份标识;2b)服务提供商S将自己的身份信息发送给网络管理者M,网络管理者M计算服务提供商S的第一部分私钥并将这个私钥通过安全信道发送给服务提供商S,服务提供商S收到第一部分私钥后从modq的整数乘法群<img file="FDA0001212607740000013.GIF" wi="56" he="71" />中随机选取一个整数s<sub>2</sub>作为自己的第二部分私钥,得到自己的私钥对(S<sub>1</sub>,s<sub>2</sub>),再根据自己的私钥对(S<sub>1</sub>,s<sub>2</sub>)计算自己的公钥对:<img file="FDA0001212607740000015.GIF" wi="635" he="66" />其中,P是循环加法群G<sub>1</sub>的生成元,消息摘要<img file="FDA0001212607740000014.GIF" wi="315" he="66" />id<sub>S</sub>是服务提供商S的身份信息,得到自己的公私钥对{(S<sub>1</sub>,s<sub>2</sub>),(Q<sub>1</sub>,Q<sub>2</sub>,Q<sub>3</sub>)};2b1)服务提供商S收到第一部分私钥S<sub>1</sub>后,从mod q的整数乘法群<img file="FDA0001212607740000016.GIF" wi="55" he="71" />中随机选取一个整数s<sub>2</sub>作为自己的第二部分私钥,得到自己的私钥对(S<sub>1</sub>,s<sub>2</sub>);2b2)服务提供商S根据自己的私钥对(S<sub>1</sub>,s<sub>2</sub>)计算自己的公钥对:<img file="FDA0001212607740000021.GIF" wi="635" he="65" />其中,P是循环加法群G<sub>1</sub>的生成元,消息摘要<img file="FDA0001212607740000022.GIF" wi="315" he="65" />id<sub>S</sub>是服务提供商S的身份信息,得到自己的公私钥对{(S<sub>1</sub>,s<sub>2</sub>),(Q<sub>1</sub>,Q<sub>2</sub>,Q<sub>3</sub>)};2c)网络管理者M给服务提供商S发送合法用户U的部分身份信息;(3)远程匿名认证:3a)用户U生成服务请求消息,并发送给服务提供商S:3a1)用户U从mod q的整数乘法群<img file="FDA0001212607740000023.GIF" wi="59" he="69" />中随机选取一个整数r<sub>2</sub>,计算自己的一次性消息R<sub>1</sub>=r<sub>2</sub>P和一次性保护消息R<sub>2</sub>=r<sub>2</sub>Q<sub>1</sub>,其中,P是循环加法群G<sub>1</sub>的生成元,Q<sub>1</sub>为服务提供商S的公钥;3a2)用户U根据自己的一次性消息R<sub>1</sub>计算自己的消息摘要h=H<sub>2</sub>(σ<sub>1</sub>||t<sub>C</sub>,R<sub>1</sub>),其中,σ<sub>1</sub>是网络管理者M的签名,t<sub>C</sub>是请求服务的时间;3a3)用户U根据随机选取的整数r<sub>2</sub>、自己的私钥s<sub>U</sub>和消息摘要h计算信息签名σ<sub>2</sub>=s<sub>U</sub>‑r<sub>2</sub>h;3a4)用户U计算账号保护消息R<sub>3</sub>=R<sub>1</sub>+R<sub>2</sub>+Acn,其中,R<sub>1</sub>是用户U的一次性消息,R<sub>2</sub>是用户U的一次性保护消息,Acn是用户U的系统账号;3a5)用上述得到的一次性保护消息R<sub>2</sub>、信息签名σ<sub>2</sub>、请求服务的时间t<sub>C</sub>和账号保护消息R<sub>3</sub>构成服务请求消息M<sub>2</sub>={R<sub>2</sub>,σ<sub>2</sub>,t<sub>C</sub>,R<sub>3</sub>};3b)服务提供商S收到服务请求消息后,检测服务请求时间和用户的有效性,如果有效,则计算会话密钥和消息认证码,并发送回复消息给用户U,如果无效,则拒绝服务;3c)用户U收到回复消息后,验证服务提供商S的合法性,如果不合法,验证失败,如果合法,则计算会话密钥并验证消息认证码,如果验证成功,则认证结束,否则,认证失败。
地址 710071 陕西省西安市太白南路2号