一种基于RPK的网络认证体制方法与流程

文档序号:35955654发布日期:2023-11-08 17:15阅读:19来源:国知局

:本发明涉及网络密码认证体制领域。

背景技术

0、
背景技术:

1、目前,在网络密码认证体制中,pki为主流产品,ibc也受到市场的重视,cla开始兴起,虽然,pki密钥管理安全等级较高;ibc标识认证体制结构简单,且公钥可读性好;cla能实现密钥对自主生成,实现密钥的存储安全,通过计算和验证公钥来保证用户公钥真实,可信;

2、但是,pki存在证书繁琐管理成本高,证书签名链也不能保证用户公钥是否可信等问题,他人可能通过篡改,如:增添记录或替代记录,ca认证中心端的用户证书数据库记录,对用户实施“张冠李戴”式攻击;

3、ibc的密钥托管方式,造成密钥管理存在一定的安全隐患;同时,ibc并发认证或签验过程,用户也须从密钥生成中心kgc(key generation center)端并发获取私钥,为保证用户私钥传输安全,kgc须并发加密用户私钥传输给各个客户端,造成ibc并发认证或签验效率低;另外,也无法保证公钥可信,如:用户a的标识为:张三@sina.com/20230616,他人过3个多月后,将自己的标识创立为:张三@sina.com/20230916,再通过密钥生成中心kgc产生对应的私钥,对用户a实施“张冠李戴”式攻击;

4、cla的安全隐患稍微大些,cla是将用户的密钥分成两部分,即:部分公钥和部分私钥,在客户端合成完整私钥,在密钥管理中心端计算合成完整公钥,尤其是将私密数据基点g存储在客户端,其中:公钥=私钥g;若他人是一个组织,他们想获得用户客户端智能卡是一个简单的事情,利用其强大的人力资源,经费和情报能力,解剖一个用户客户端智能卡芯片,获取机密数据如:g数据,也不是一个不可以完成的任务;一旦,不法组织获得基点g,就可攻克cla认证体制,cla是一款学术上的优秀科研成果,但是,该成果在工程实践上不可行;因此,现有的网络密码认证体制的技术和产品都存在一定的安全隐患,不能满足网络密码认证技术市场的需求。


技术实现思路

0、
技术实现要素:

1、一种基于rpk的网络认证体制方法,是采用加密用户公钥的安全策略,建立可信用户公钥体制,通过设置统一时间戳控制的安全策略,以及密钥初始化智能协议,建立能达到pki的密钥管理安全等级,可解决繁琐的证书管理难题;能实现ibc的简单标识认证效果,可解决ibc密钥托管存在的密钥管理安全问题;也可解决pki和ibc都存在的用户公钥不可信的安全隐患;同时,能解决cla存在基点g数据外泄,造成较大安全隐患问题。从而,建立一种基于rpk的网络认证体制,其中:rpk,为real public key的缩写,中文为可信公钥,保证rpk认证体制具有结构简单、安全高效、建设和维护成本较低廉,且易操作等优势,其方法的技术特征在于:

2、rpk认证架构采用sm2公钥算法、sm3摘要算法和sm4(或sm1、祖冲之)对称算法,建立密钥生成中心(kgc),采用的安全措施是:rpk的密钥管理采用类似pki的用户密钥生成、灌装、分发、更新和销毁的方式,在认证中心端部署加密设备如:加密机或加密卡,在用户的客户端部署加密设备如:智能卡,任何一种认证体制的结构决定了其性能,rpk认证架构如下:

3、在认证中心端加密设备的芯片里,存储认证中心端的私钥ks和公钥p,以及一组“密钥种子”k,以及组合密钥生成算法,用户的重要密钥数据不出芯片,从而,保证认证中心端密钥数据的生成和运行安全;

4、在认证中心端部署全体用户公钥和“密钥种子”密文数据库,保证认证中心端全体用户的公钥可信,且防止他人篡改认证中心端用户公钥;同时,保证认证中心端全体用户对应“密钥种子”i的存储安全;

5、在用户的客户端部署用户a“朋友圈”用户的公钥密文数据库,用户a“朋友圈”用户指:拟与用户a进行交易的其他用户,从而,保证“朋友圈”其他用户公钥在用户a端真实,可信;

6、总之,本发明基于rpk网络认证体制的安全策略,是在客户端包括:pc机或手机端和认证中心端,都部署加密硬件设备,在加密硬件设备芯片里,建立“芯片级”签名协议、签验和加密传输协议;每个用户ai对应的“密钥种子”i的元素,两两不同;由组合密钥生成算法,保证基于对称算法的加密密钥实时生成,一次一变;事先,将全体用户对应的两两不同的公钥pi和“密钥种子”i元素,加密成密文存储在认证中心端的用户公钥和“密钥种子”密文数据库中;在用户客户端,建立“朋友圈”用户的公钥密文数据库,采用用户ai客户端加密芯片里对应用户ai的“密钥种子”,根据组合密钥生成算法,产生一次一变的加密密钥,分别将与用户ai交易的其他用户的公钥pj、pj=1、......、pm,加密成密文,存储在用户ai客户端“朋友圈”用户的公钥密文数据库记录中;

7、任何一种系统的架构决定其性能,rpk的系统架构十分简单,是在客户端和认证中心端都部署加密设备,建立芯片对芯片的认证、签名和加密协议,保证两端的密钥存储和运行安全,实现认证、签名和加密协议核心部分都在加密设备芯片里完成,保证认证、签名和加密协议可信;通过设置统一时间戳控制的安全策略,以及密钥初始化智能协议,来提高网络认证体制的安全等级;在认证中心端建立用户公钥和“密钥种子”密文数据库,保证全体用户的公钥和“密钥种子”安全,可信;在客户端建立的“朋友圈”用户公钥密文数据库,保证两用户之间“点对点”的认证或签名协议,用户可直接获得对方用户的可信公钥,从而,实现rpk用户的公钥真实,可信;因此,rpk采用的系统架构对比pki、ibc和cla,不繁琐,十分简单,且环节少,且整个过程由软件和硬件结合方式实现,具体方法如下:

8、1、在认证中心端部署加密硬件设备,建立认证中心端加密系统,在加密硬件设备的加密芯片里,写入对称算法、摘要算法、组合密钥生成算法、一套“密钥种子”k,时间戳年月日;在认证中心端,建立用户公钥和“密钥种子”密文数据库。

9、2、用户的客户端即:手机或pc机端,在客户端部署智能卡,在智能卡芯片里建立手机端加密系统,在加密芯片里,写入对称算法、公钥算法、摘要算法、组合密钥生成算法、一组私钥si、一组公钥pi、用户标识ai、一组“密钥种子”i;在客户端部署“朋友圈”用户公钥密文数据库,其中:客户端的“密钥种子”i的元素,两两不同,i=1~n,n≤20亿,n为全体数字货币用户总数。

10、3、rpk密钥初始化

11、建立kgc并设置密钥初始化智能协议,并设置密钥初始化智能协议,负责密钥初始化过程中对各种协议的控制;

12、(1)由加密芯片自主产生用户的密钥

13、kgc通过密钥初始化智能协议,由用户自己在客户端加密芯片控制生成并存储密钥,通过设备分发密钥,且通过认证中心端销毁密钥,实现用户自主管理自己的密钥;

14、在认证中心端加密设备芯片里,生成认证中心端的密钥对即:私钥ks和公钥p,一组“密钥种子”k;

15、在用户ai的客户端加密芯片里,生成用户的密钥对即:私钥ski和公钥pi,一组“密钥种子”i;

16、(2)由kgc在一个封闭的环境下,将认证中心端公钥p发送给用户ai端加密芯片里,用户ai在客户端加密芯片里,通过dh(diffie-hellman)协议,将用户的公钥pi和一组“密钥种子”i,加密传输给认证中心端加密设备芯片里。

17、4、rpk认证中心端数据库初始化

18、在认证中心端加密设备芯片里,采用“密钥种子”k,产生一次一变的加密密钥,将对应用户ai的公钥pi和一组“密钥种子”i加密成密文,存储到认证中心端的用户公钥和“密钥种子”密文数据库记录里,其字段为:用户ai的标识、公钥pi、公钥pi和“密钥种子”i的密文,以及时间戳i和随机数i,其中:i=1~n,n为全体用户数量的总和,

19、在认证中心端,建立用户的公钥和“密钥种子”密文数据库,这是对公钥和“密钥种子”的静态加密,可保证用户是“密钥种子”存储和运行安全,保证rpk的全体用户的公钥可信。

20、5、设置统一时间戳控制安全策略

21、取时间戳,并定为:年月日,存储到认证设备的加密芯片里,用于更新用户的密钥后,控制过期的用户密钥不能再用;当更新部分用户的密钥后,必须将对应认证设备端全体用户的公钥和“密钥种子”,采用新的时间戳和随机数,由“密钥种子”k,根据组合密钥生成算法,产生一次一变加密密钥,重新再加密一次,保证用户公钥和“密钥种子”密文数据库记录中,时间戳基本统一;

22、将新时间戳存储在认证中心端加密设备芯片里,用于每次认证或签验时,与客户端发送来的用于产生加密密钥的时间戳进行比对,小于新时间戳被视为过期时间戳,从而,保证时间戳基本统一;

23、在认证设备端加密芯片里,设置统一时间戳控制安全策略,可防止过期的用户密钥被盗用,认证中心端建立全体用户公钥和“密钥种子”密文数据库,能为用户提供可信公钥服务。

24、6、rpk客户端数据库初始化

25、用户ai收到自己的智能卡后,从认证中心端下载用户ai客户端“朋友圈”用户公钥,用户ai向认证中心端发出下载客户端“朋友圈”用户公钥数据库记录的请求,并发送“朋友圈”用户的标识如:aj、aj+1、......,am,其中:j=1~m,j≠i,m≤n;

26、认证中心端接收到ai发来请求后,根据用户标识:aj、aj+1、......,am,在用户密钥密文数据库中,选出对应的记录,在加密设备芯片里,解密对应公钥密文,得到对应公钥明文,具体过程如下:

27、由“密钥种子”k,以及对应记录中的时间戳j和随机数j,生成解密密钥,解密公钥pj的密文,得到公钥pj的明文;由“密钥种子”k,以及对应记录中的时间戳j+1和随机数j+1,生成解密密钥,解密公钥pj+1的密文,得到公钥pj+1明文;......;由“密钥种子”k,以及对应记录中的时间戳m和随机数m,生成解密密钥,解密公钥pm的密文,得到公钥pm的明文;

28、将用户ai选择的记录:标识aj和公钥pj,标识aj+1和公钥pj+1,......,标识am和公钥pm,加密传输给用户ai客户端;首先,获取用户ai的公钥,在加密设备芯片里,由“密钥种子”k,根据标识ai对应记录字段中的时间戳i和随机数i,根据组合密钥生成算法生成解密密钥,解密用户ai的公钥pi的密文得到明文pi;采用dh(diffie-hellman)加密传输协议;

29、将对应用户ai“朋友圈”用户的标识和公钥,加密传输给用户ai的客户端,在用户ai的客户端加密芯片里,解密成明文,再采用用户ai客户端加密芯片里的一组“密钥种子”i,根据组合密钥生成算法,产生一次一变的加密密钥,分别将对应“朋友圈”用户的公钥加密成密文,存储在客户端“朋友圈”用户数据库中,其中:客户端“朋友圈”用户数据库记录为:用户aj的标识和公钥pj、用户aj+1的标识和公钥pj+1、......,用户am的标识和公钥pm;

30、在用户的客户端建立“朋友圈”用户公钥密文数据库,也是对用户公钥的静态加密,从而,保证在点对点交易场景下,交易双方用户都可完全确认对方的公钥是否可信,且不需要认证中心端来帮助验证交易双方用户的公钥;

31、在认证中心端建立用户公钥和“密钥种子”密文数据库,他人想获得认证中心的加密硬件设备的难度十分大,获取客户端智能卡,解刨其芯片获得密钥数据是有可能实现的,但是,用户密钥数据两两不同,要获得成千上万用户的智能卡,是很难完成的任务,因此,建立“芯片级”认证体制,安全等级较高。

32、7、建立组合密钥生成算法,

33、(1)设:认证中心端和用户的“密钥种子”组成的表为d,

34、

35、其中:表d的元素为du v,u=0~w-1,v=0~y-1,du v占0.5字节,或1字节,w=89,或105,y=16,或32;

36、(2)组合密钥密钥生成算法,是通过一组时间戳和随机数组成的选取参数,来对一组“密钥种子”组成表的元素进行选取,用时间戳对“密钥种子”组成表的“行”元素进行选取,选出y行y列的“密钥种子”组成表的子表,再根据随机数,对y行y列的“密钥种子”组成表的“列”元素进行选取,选出y个元素,并合成一组加密密钥或解密密钥,其中:y=16或32;

37、(3)组合密钥密钥生成算法的具体实现方法如下:

38、以表d为例,来说明组合密钥密钥生成算法的具体实现方法,当选择表d元素为89行16列元素时,即:89×16=1424个元素,每个元素占1字节,共占1424字节,当选择表d元素为105行32列元素时,即:105×32=3360个元素,每个元素占,0.5字节或1字节,占1680字节,或105×32=3360个字节;

39、用时间戳的“年”对应表d中的第1~10行,共10行,“月”对应表d中的第11~22行,共12行,“日”对应表d中的第23~53行,共31行,“时”对应表d中的第54~77行,共24行,当选择表d元素为89行16列元素时,表d还有12行元素不对应时间戳;当选择表d元素为105行32列元素时,表d还有28行元素不对应时间戳;

40、根据时间戳从表d的元素中先选出4行,其方法是:从表d的第1~10行共10行中取1行即:用时间戳“年”数字中个位数的数值,作为取表d中“年”对应的行数,如:时间戳为:2013xxxxxx,则:取表d中的第4行,从表d的第11~22行共12行中取1行即:用时间戳“月”数字的数值,作为取表d中“月”对应的“行”,如:时间戳为:20xx11xxxx,则:取表d中的第21行,从表d的第23~53行共31行中取1行即:用时间戳“日”数字的数值,作为取表d中“日”对应的“行”,如:时间戳为:20xxxx30xx,则:取表d中的第52行,从表d的第54~77行共24行中取1行即:用时间戳“时”数字的数值,作为取表d中“时”对应的“行”,如:时间戳为:20xxxxxx21,则:取表d中的第74行,再将表d的第78行~第w行共w-78+1行选出,共选出y行,其中:y=16或32行,组成:y×y表d的子表d1,

41、

42、其中:表d1的元素为:dv v,v=0~y-1,dv v占0.5或1字节,y=16或32;表d1中第5行~第y行的元素与表d的第78行~第w行的元素完全相同;

43、设:随机数为:q1,q2,......,qy,对应的数值分别为:l1,l2,......,ly,当y=16时,16位随机数对应的数值为:0~15之间,用:l1,l2,......,l16,对表d1的列进行选取,即:用第1位随机数q1的数值l1,来选取表d1第1行的第l1+1列的元素,用第2位随机数q2的数值l2,来选取表d1第2行的第l2+1列的元素,......,用第16位随机数q16的数值l16,来选取表d1第16行的第l16+1列的元素,共选出16个元素;

44、当y=32时,32位随机数的数值为:0~31,用:l1,l2,......,l32,对表d1的列进行选取,即:用第1位随机数q1的数值l1,来选取表d1第1行的第l1+1列的元素,用第2位随机数q2的数值l2,来选取表d1第2行的第l2+1列的元素,......,用第32位随机数q32的数值l32,来选取表d1第32行的第l32+1列的元素,共选出32个元素;

45、国家规定对称算法的密钥长度为128比特,则从表d中选出的y组元素合并成一组密钥,若表d的元素为:8比特,y=16,则从表d中选出的16组元素合并成的密钥为128比特,若表d的元素为:4比特,y=32,则从表d中选出的32组元素合并成的密钥也为128比特。

46、8、身份认证协议

47、(1)基于有中心场景下的身份认证协议

48、采用公钥算法身份认证协议如下:

49、用户a发送给认证中心端:ra||ida;认证中心端发送给用户a:随机数rc,用户a发送给认证中心端:ida||token ac,token ac=idc||sign a(idc||r),其中:r=ra||rc,ida:为用户a的唯一性标识,idc:为认证中心端的唯一标识,ra:为表示用户a产生的唯一性时间戳,rc:为认证中心端产生的唯一性随机数;sign a(idc||r):为用户a对(idc||r)的签名;

50、认证中心端接收到用户a发来的token ac签名信息后,首先,在认证设备端加密芯片里,判断ra中的时间戳是否过期,之后,由“密钥种子”k,以及对应用户a标识ida记录中的时间戳和随机数,根据组合密钥生成算法,产生解密密钥,解密用户公钥和“密钥种子”密文数据库中,对应用户a标识ida记录中的pa和“密钥种子”a密文得到其明文,采用pa对用户a的签名即;sign a(idc||r)进行签验,若通过签验,则用户a的身份可信,否则,为非法签名;从而,完成rpk的身份认证协议的过程;

51、通过验证时间戳是否过期,可保证过期的用户公钥不能再用;rpk是通过对称加密算法加密用户公钥来保证用户的公钥可信,对比cla是通过计算并验证公钥可信,其效率更高;

52、(2)基于“点对点”无中心场景下的身份认证协议

53、用户a发送给用户b:ida||ra,其中:ida为用户a的唯一性标识,ra为表示用户a产生的唯一性时间戳或者随机数;用户b发送给用户a:idb||token ba,token ba=ida||rb||ra||sign b(ida||rb||ra),其中:rb为表示唯一的时间戳或随机数,sign b为用户b的签名,ida为用户a的唯一性标识;

54、用户a接收到用户b发来的含有token ba的信息后,根据用户b的标识,在自己客户端“朋友群”用户公钥密文数据库中,取出对应用户b的公钥密文记录,在加密芯片里解密,采用可信用户b的公钥,对用户b的签名进行签验,若签验通过,则用户a发送给用户b:ida||token ab,token ab=idb||rb||sign a(idb||rb),其中:idb为用户b的唯一性标识,rb为表示唯一的时间戳或者随机数,sign a为用户a的签名;

55、用户b接收用户a发来的含有token ba的信息后,根据用户a的标识,在自己客户端“朋友群”用户公钥密文数据库中,取出对应用户a的公钥密文记录,在加密芯片里解密,采用可信用户a的公钥对用户a的签名进行签验;若签验通过,则用户b向用户a返回确认其身份可信的信息,从而,完成用户a和用户b之间的相互身份认证的过程;

56、由于,两用户都可在自己的客户端确认对方的公钥是否可信,不需要相互发送自己的公钥,也不需要认证中心来帮助鉴别对方用户的公钥是否可信,可实现两用户之间“点对点”快速身份认证。

57、9、数字签名协议

58、(1)基于有中心场景下的数字签名协议

59、采用公钥算法数字签名认证协议如下:

60、用户a发送给认证中心端:ra||ida;认证中心端发送给用户a:随机数rc,用户a发送给认证中心端:ida||token ac,token ac=r||text||sign a(text||r),其中:r=ra||rc,ida:为用户a的唯一性标识,ra:为表示用户a产生的唯一性时间戳,rc:为认证中心端产生的唯一性随机数;sign a(text||r):为用户a对(text||r)的签名;text:为用户a的为文件或交易单;

61、认证中心端接收到用户a发来的token ac签名信息后,首先,在认证设备端加密芯片里,判断ra中的时间戳是否过期,之后,由“密钥种子”k,以及对应用户a标识ida记录中的时间戳和随机数,根据组合密钥生成算法,产生解密密钥,解密用户公钥和“密钥种子”密文数据库中,对应用户a标识ida记录中的pa和“密钥种子”a密文得到其明文,采用pa对用户a的签名(token ac)进行签验,则用户a对text的签名真实,可信,且不可抵赖,从而,完成rpk的数字签名协议的过程;

62、通过验证时间戳是否过期,可保证过期的用户公钥不能再用;rpk是通过对称加密算法加密用户公钥来保证用户的公钥可信,对比cla是通过计算并验证公钥可信,其数字签名协议的效率更高;将r与text一并签名,可保证被签名的相同文件或交易单很容易被识别,例如:text为一笔交易单时,在不同时间被签名的相同内容交易单,用户根据r很容易区别。

63、(2)基于“点对点”无中心场景下的数字签名认证协议

64、用户a发送给用户b:ida||ra,其中:ida为用户a的唯一性标识,ra为表示用户a产生的唯一性时间戳或者随机数,用户b发送给用户a:idb||token ba,token ba=ida||rb||ra||signb(text||rb||ra),其中:rb为表示唯一的时间戳或随机数,signb:为用户b的签名,ida为用户a的唯一性标识,text:用户a的文件或交易单;

65、用户a接收到用户b发来的含有token ba的信息后,根据用户b的标识,在自己客户端“朋友群”用户公钥密文数据库中,取出对应用户b的公钥密文记录,在加密芯片里解密,采用可信用户b的公钥,对用户b的签名进行签验,若签验通过,则用户b对文件或交易单text的签名真实,可信;

66、用户a发送给用户b:ida||token ab,token ab=idb||rb||sign a(text||rb),其中:idb为用户b的唯一性标识,rb为表示唯一的时间戳或者随机数,sign a:为用户a的签名,text:为用户a的文件或交易单;

67、用户b接收用户a发来的含有token ba的信息后,根据用户a的标识,在自己客户端“朋友群”用户公钥密文数据库中,取出对应用户a的公钥密文记录,在加密芯片里解密,采用可信用户a的公钥对用户a的签名进行签验,若签验通过,则用户b向用户a返回,用户a对文件或交易单text的签名真实,可信,若text为交易单,则可支付交易单text;从而,完成用户a和用户b之间数字签名协议的过程;

68、由于,两用户都可在自己的客户端确认对方的公钥是否可信,不需要相互发送自己的公钥,也不需要认证中心来帮助鉴别对方用户的公钥是否可信,可实现两用户之间“点对点”快速数字签名协议。

69、10、数据加密传输协议

70、由于,在每个用户的客户端建立了“朋友圈”用户公钥密文数据库,且在用户ai的客户端加密芯片里,存储认证中心端的公钥p,在认证中心端的全体用户公钥pi密文;

71、因此,交易双方用户之间,可互相获得对方用户的可信公钥,两用户之间的数据加密传输协议,以及用户与认证中心端的数据加密传输协议,都可参照标准的dh(diffie-hellman)加密传输协议完成,且可提高dh协议的安全等级。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1