一种基于用户自主的标识认证实现方法

文档序号:8925063阅读:614来源:国知局
一种基于用户自主的标识认证实现方法
【技术领域】
[0001]本发明涉及标识认证系统,提供一种基于用户自主的标识认证系统实现方法,属于网际安全(Cyber security)技术领域。
【背景技术】
[0002]随着网络和信息技术逐渐进入人们的生产与生活,保护信息的真实性、私密性、负责性(不可抵赖性)成为政府和社会共同关心的问题。鉴于在网络空间所有现实空间的实体,同时也是信息活动的主体,都以抽象的标识表达,通过认证技术将标识与实体绑定,构建支持数字签名和密钥交换的标识认证系统,成为实现网际安全(网络空间安全)的基础。与此同时,按照电子签名法的规定,认证系统还必须解决用户密钥的自主控制问题。
[0003]围绕自主认证系统构建,现已形成两个有代表性的技术系统,一是基于公钥证书的第三方认证系统,如公钥基础设施(PKI),二是基于公钥体制的PGP(Pretty GoodPrivacy)加密系统。
[0004]PKI系统采用X509标准,提供了两种证书生成模式:一是签名密钥由用户自己生成,二是由认证中心(CA)协助生成。按照第一种模式,其过程如下:
[0005]I)用户按照认证系统所规定的方法,自行生成公私密钥对,将私钥自行保存,并向CA提交自己的公钥和身份证明;
[0006]2)CA对用户进行身份确认,审核通过后,CA用其根密钥对用户提交的公钥作数字签名,将其生成公钥证书,然后通过面对面、信函或电子方式将公钥证书安全地发放给用户;
[0007]3)CA将用户的公钥证书发布到相应的目录服务器供查询、下载。
[0008]第二种模式是用户到CA中心生产并获得公私密钥对,CA在完成密钥生产后应自动销毁本地的用户密钥对拷贝,其他步骤与第一种模式相同。
[0009]PKI通过让用户自己生成密钥,解决了私钥自主控制问题,并通过用CA的根密钥对用户标识和公钥PK做数字签名,将二者绑定生成数字证书,构成基于实名的第三方证明体系,其服务对象主要是政府和商业机构。由于其实现方法较复杂,用途比较单一,难以满足社会和公众对网络化、匿名化、多元化,简洁高效的综合认证服务的要求。
[0010]PGP(Pretty Good Privacy)系统主要用于信息加密,但也可以用于签名和验证,并自定义了一套类X509标准。PGP的密钥由用户自己生成,支持匿名体系,是面向大众,完全自主开放的加密系统。该系统其主要问题在于,它是一个完全自主开放的体系,没有统一的管理,造成密钥关系复杂,难以证明公钥主体的真实性,应用受到很大限制。

【发明内容】

[0011]有鉴于此,本发明针对上述两种体系存在的问题提出一种基于用户自主的标识认证实现方法和系统。该系统由服务端和客户端构成,具备以下3大特点:
[0012]1、标识可以由用户自行定义,可以是实名也可以是匿名,密钥可以由用户通过系统提供的工具自己生成,从而实现用户对自用密钥的自主控制和管理;
[0013]2、通过用用户标识和种子密钥生成用户标识密钥,对用户公钥做数字签名和验证,实现了用户标识与密钥的天然绑定及一体化证明;
[0014]3、通过种子公钥集的构建和管理,解实现了不同信任域用户间的直接跨域交叉认证。
[0015]该系统不仅适用于匿名认证也支持实名认证,体系简洁灵活,可以用于构建多元化的基于标识的认证服务系统。
[0016]该系统由服务端和用户端构成:
[0017]用户端的工作包括:自定义用户标识Uid,生成公私密钥对sk和PK,将Uid和PK提交服务端审核,并将sk连同服务端返回的uID、种子密钥标识seedID、签名公钥数据PKsig写入用户密钥装置Key-device。
[0018]服务端的工作包括:生成种子密钥对并公布种子公钥;审查用户标识,通过后用种子私钥计算出标识私钥对用户提交的PK做数字签名生成PKsigdf UID、seedID、PKsig打包返给用户方。具体实现步骤如下:
[0019]1、服务端定义种子密钥标识seedID,并生成种子私钥seedsk和种子公钥seedPK(图1-4)。seedsk和seedPK共用同一 seedID,通过文件后缀如.sk和.PK加以区分。seedsk由服务端秘密保管,用于生成isk, seedPK可以对外发布,供计算iPK。种子密钥生成方法如下:
[0020]I)首先利用随机数发生器RNG生成一段随机序列作为sk,将sk经椭圆曲线(ECC)群标量乘法运算生成与sk相对应的PK ;经重复操作生成一定数量的公私密钥对,如256个;
[0021]2)将私钥和公钥分别按照一定的顺序相互对应排列成矩阵,如16X16,分别生成seedsk和 seedPK ;
[0022]3)用seedID通过seedsk生成isk对seedPK做数字签名生成seedPKsig,用于验证seedPK的真实性,防止替换攻击。
[0023]2、用户端按照系统制定的规则自行定义用户标识UlD (图1-1),UlD可以是实名也可以是匿名,而后用户端利用系统提供的工具生成自用密钥对,包括私钥sk和公钥PK(图1-2和3) ο方法为:
[0024]I)利用RNG生成一定长度的随机序列(如192位)作为sk ;
[0025]2)将sk经椭圆曲线(ECC)群标量乘法运算生成PK。
[0026]密钥对生成后,用户端登录服务端,提交uID,所提交的UlD必须具有唯一性,如出现重名,服务端将提示用户端重新定义,否则拒绝接纳。服务端接受UlD后用户端进一步提交PK。根据实际需要及可能,UlD和密钥对(包括sk和PK)也可以由服务端代用户生成。
[0027]3、服务端利用用户端提交的UlD及seedsk生成isk(图1_5)对用户端提交的PK进行签名生成PKsig (图1-6)。具体方法如下:
[0028]I)服务端以用户提交的uID为hash函数的输入,计算出该uID的hash值hID ;
[0029]2)以hID构建选取数列,从seedsk选取一定数量的私钥,经模加运算生成isk ;
[0030]3)用isk对用户提交的PK做数字签名生成PKsig,包括PK和对PK的签名,服务端将uID、SeedID以及PKsig打包返回用户端,同时将相关数据自动保存到数据库中供查询和下载。
[0031]4、客户端将下载数据,包括uID、seedID以及PKsig连同sk—并写入用户密钥装置的安全芯片内(图1-7),密钥装置可以封装成USB-key、IC卡、TF-卡等方便使用的形态。采用密钥装置是为了保护用户私钥的安全。
[0032]此外,服务端可以将自己或其它服务端生成的seedPK汇集成种子公钥集。当验证签名时,验证方用签名数据中的seedID从种子公钥集中选取与之对应的seedPK,从而实现跨域交叉认证(图2)。为保证种子公钥集内种子公钥的真实性和完整性,服务端可以用自身的私钥对各种子密钥进行数字签名,验证方增加相应验证过程。
[0033]本发明提供的认证方法支持数字签名和密钥交换。数字签名主要用于认证,密钥交换则通过对数据的加密保证数据的安全。具体过程如下:
[0034]1、数字签名/验证
[0035]签名方用自身的sk生成签名数据Datasig提交给验证方,Datasig中包含对内容的签名Contsig以及签名方的uID、IDseedPK和PKsig。
[0036]验证方首先根据Datasig中的seedID从种子公钥集中选取对应的seedPK,用uID计算出签名方的iPK对PKsig进行验证,通过后提取签名方的PK对Contsig进行验证。具体过程如下:
[0037]A)用户A用自己的私钥sk对消息m作数字签名,流程如下:
[0038]①随机选取k e Zn
[0039]②计算k.G = (X, y)(椭圆曲线群标量乘法)
[0040]③计算 r = X mod η
[0041]④计算S = k~l (h(m)+sk.r)mod η
[0042]⑤A将m和签名(r,S)发给B
[0043]A的签名数据Datasig中包括Contsig及包含seedID、用户uID及PK的PKsig。
[0044]B)用户B对签名验证流程如下:
[0045]①用签名中的seedID从种子密钥集选取A所在信任域的seedPK ;
[0046]②用A的UlD和选出的seedPK成标识公钥iPK验证A的PK
[0047]③计算 ul = h(m).S-1mod η
[0048]u2 = r.S-1mod η
[0049]④计算R = ul.G+u2.PK (椭圆曲线点运算)
[0050]记 R = (X,,γ')
[0051]⑤计算V = X' mod η,若V = r则认证通过,签名有效,否则签名无效。
[0052]服务端通过发布已经作废的seedID和uID,提供作废列表查询服务,并用seedPK的isk对发布数据做数字签名为防止伪造和篡改。
[0053]2、密钥交换
[0054]A)发方A密钥发送过程:
[0055]①发方A通过B方或从服务端数据库获得B方的公钥数据,包括用户uID、IDseedPK,PK 和 PKsig ;
[0056]②通过IDseedPK选择B方信任域的种子公钥seedPK,用B的ID生成IPKB对B的PK进行验证,如通过进行下一步;
[0057]③随机选取k e Zn
[0058]④计算k.G = (X,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1