零知识身份认证方法和系统转让专利

申请号 : CN201010508071.4

文献号 : CN101969377B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨华镝佘堃莫超

申请人 : 成都市华为赛门铁克科技有限公司

摘要 :

本发明实施例公开了一种零知识身份认证方法和系统。该方法包括:验证实体接收证明实体发送的身份认证请求;验证实体向证明实体提供一个随机数,并接收证明实体返回的第一验证值,第一验证值为证明实体根据随机数和证明实体公钥计算而得;验证实体从身份认证请求获得证明实体标识,并根据证明实体标识计算证明实体的身份认证值,且根据身份认证值和随机数计算第二验证值;验证实体判断第一验证值是否等于所述第二验证值,若是,则确认证明实体的身份认证通过。本发明实施例提供的零知识身份认证方案具有较少的运算量,能节省系统资源,提高认证效率。

权利要求 :

1.一种零知识身份认证方法,其特征在于,包括:验证实体接收证明实体发送的身份认证请求,所述身份认证请求至少包括以证明实体私钥加密的证明实体标识;

所述验证实体向所述证明实体提供一个随机数,并接收所述证明实体返回的第一验证值,所述第一验证值为所述证明实体根据所述随机数和证明实体公钥计算而得;

所述验证实体从所述身份认证请求获得证明实体标识,并根据所述证明实体标识计算所述证明实体的身份认证值,且根据所述身份认证值和所述随机数计算第二验证值;

所述验证实体判断所述第一验证值是否等于所述第二验证值,若是,则确认所述证明实体的身份认证通过。

2.根据权利要求1所述的方法,其特征在于:所述身份认证请求为所述证明实体采用证明实体私钥SZ对证明实体标识IDZ和证明实体标识的哈希结果H(IDZ)进行加密而得,其中,所述哈希结果H(IDZ)采用预设单向哈希函数H(x)计算而得;

所述验证实体向所述证明实体提供一个随机数具体包括:所述验证实体产生一个随机数r,按照如下公式计算随机值c并发送给所述证明实体:c=r·M

其中,M为权威机构公开的椭圆曲线函数基点;

所述验证实体接收所述证明实体返回的第一验证值dZ具体为按照如下公式计算而得:dZ=c·PZ

其中,PZ为所述证明实体公钥;

所述验证实体按照如下公式计算证明实体的身份认证值RZ:RZ=PZ+H(IDZ)·M+(PZX+H(IDZ)mod n)·Psa 其中,PZ=(PZX,PZY),PZX根据证明实体公钥PZ确定;Psa为权威机构公钥;n为设定自然数,所述验证实体按照如下公式计算第二验证值dY:dY=r·RZ。

3.根据权利要求2所述的方法,其特征在于:n为所述证明实体和验证实体所在网络中的用户节点数量值。

4.根据权利要求2或3所述的方法,其特征在于,当所述验证实体确认所述证明实体的身份认证通过之后,还包括:所述验证实体根据所述证明实体的身份认证值RZ、随机值c和验证实体私钥SY产生共享密钥K,所述共享密钥K用于加密所述验证实体和证明实体之间交互的数据。

5.根据权利要求4所述的方法,其特征在于,所述验证实体根据所述证明实体的身份认证值RZ、随机值c和验证实体私钥SY产生共享密钥K包括:所述验证实体根据证明实体的身份认证值RZ、随机值c和验证实体私钥SY按照如下公式产生共享密钥K:K=H(r·RZ+SY·c)。

6.根据权利要求2或3所述的方法,其特征在于,在所述证明实体向验证实体证明身份之前,还包括:所述证明实体将自身的证明实体标识IDZ作为所述预设单向哈希函数H(x)的输入以计算出哈希结果H(IDZ),并将所述哈希结果H(IDZ)发送给权威机构,其中,所述证明实体标识IDZ为权威机构分配给所述证明实体的唯一标识;

所述权威机构根据所述哈希结果H(IDZ)产生证明实体公钥PZ和公钥证据WZ,并发送给所述证明实体;

所述证明实体根据所述证明实体公钥PZ和公钥证据WZ产生证明实体私钥SZ。

7.根据权利要求6所述的方法,其特征在于: 所述权威机构根据所述哈希结果H(IDZ)按照如下公式计算获取证明实体公钥PZ:M=PZ+H(IDZ)·M+(PZX+H(IDZ)mod n)·Psa其中,PZX根据PZ=(PAX,PZY)确定;

所述权威机构根据所述哈希结果H(IDZ)按照如下公式产生公钥证据WZ:WZ=k+Ssa·(PZX+H(IDZ)mod n)其中,k∈[2,n-2];Ssa为权威机构私钥,所述证明实体根据所述证明实体公钥PZ和公钥证据WZ按照如下公式产生证明实体私钥SZ:SZ=WZ+H(IDZ)mod n。

8.根据权利要求6所述的方法,其特征在于,在所述权威机构接收到所述哈希结果H(IDZ)之后,还包括:所述权威机构根据证明实体标识IDZ对所述证明实体进行身份认证。

9.一种零知识身份认证系统,包括证明实体和验证实体,其特征在于:所述证明实体包括:

身份认证请求发送模块,用于向所述验证实体发送身份认证请求,所述身份认证请求包括以证明实体私钥加密的证明实体标识;

随机数获取模块,用于接收验证实体提供的随机数;

第一验证值计算模块,用于根据所述随机数和证明实体公钥计算第一验证值,并将所述第一验证值发送给所述验证实体;

所述验证实体包括:

身份认证请求接收模块,用于接收证明实体发送的身份认证请求;

第一验证值获取模块,用于向所述证明实体提供一个随机数,并接收所述证明实体返回的第一验证值;

第二验证值计算模块,用于从所述身份认证请求获得证明实体标识, 并根据所述证明实体标识计算所述证明实体的身份认证值,且根据所述身份认证值和所述随机数计算第二验证值;

验证值判断模块,用于判断所述第一验证值是否等于所述第二验证值,若是,则确认所述证明实体的身份认证通过。

10.根据权利要求9所述的系统,其特征在于,所述验证实体还包括:共享密钥生成模块,用于根据所述证明实体的身份认证值、随机值和验证实体私钥产生共享密钥,所述共享密钥用于加密所述验证实体和证明实体之间交互的数据,其中,所述随机值c根据随机数r,按照公式c=r·M计算而得,M为权威机构公开的椭圆曲线函数基点。

11.根据权利要求9或10所述的系统,其特征在于:所述证明实体还包括:

标识上报模块,用于将自身的证明实体标识发送给权威机构,其中,所述证明实体标识为权威机构分配给所述证明实体的唯一标识;

公钥接收模块,用于接收所述权威机构返回的证明实体公钥和公钥证据;

私钥产生模块,用于根据所述证明实体公钥和公钥证据产生证明实体私钥;

所述系统还包括权威机构,用于根据所述证明实体上报的所述证明实体标识产生证明实体公钥和公钥证据,并发送给所述证明实体。

说明书 :

零知识身份认证方法和系统

技术领域

[0001] 本发明实施例涉及零知识证明技术,尤其涉及一种零知识身份认证方法和系统。 背景技术
[0002] 零知识证明(zero-knowledge proof)是由Goldwasser等人在20世纪80年代初提出的概念。所谓零知识证明,是指证明实体能够在不向验证实体提供任何有用信息的情况下,使验证实体相信某个论断是正确的,对于零知识身份认证,就是使验证实体相信证明实体的身份。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明实体向验证实体证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证实体泄漏任何关于被证明消息的信息。
[0003] 目前已经提出了多种实现零知识身份认证的方案,例如:Shnorr身份认证方案;由Sultan Almuhammadi和Clifford Neuman提出的S.C零知识证明方案等。但是,在进行本发明的研究过程中,发明人发现现有零知识身份认证方案存在的问题是计算量大,身份-s
认证效率低。例如,Shnorr身份认证方案中,证明实体A的公钥为v,私钥为s,其中v=a mod p,a为q阶元。证明实体A向验证实体B证明其身份的具体过程如下: [0004] (1)证明实体A任选一随机数r∈[1,q-1],计算x=ar mod p,然后将计算结果发送给验证实体B;
[0005] (2)验证实体B任选一整数e∈[1,21]发送给证明实体A;
[0006] (3)证明实体A发送给验证实体B:y=(r+se)mod q;
[0007] (4)验证实体B验证x=ay*ve mod p是否成立。
[0008] 上述方案中存在着大量模(mod)计算的步骤,计算量很大,占用了较大的计算资源。

发明内容

[0009] 本发明实施例提供一种零知识身份认证方法和系统,以减小零知识身份认证过程中的计算量,提高认证效率。
[0010] 本发明实施例提供一种零知识身份认证方法,包括:
[0011] 验证实体接收证明实体发送的身份认证请求,所述身份认证请求至少包括以证明实体私钥加密的证明实体标识;
[0012] 所述验证实体向所述证明实体提供一个随机数,并接收所述证明实体返回的第一验证值,所述第一验证值为所述证明实体根据所述随机数和证明实体公钥计算而得; [0013] 所述验证实体从所述身份认证请求获得证明实体标识,并根据所述证明实体标识计算所述证明实体的身份认证值,且根据所述身份认证值和所述随机数计算第二验证值; [0014] 所述验证实体判断所述第一验证值是否等于所述第二验证值,若是,则确认所述证明实体的身份认证通过。
[0015] 本发明实施例还提供了一种零知识身份认证系统,包括证明实体和验证实体,其中:
[0016] 所述证明实体包括:
[0017] 身份认证请求发送模块,用于向所述验证实体发送身份认证请求, [0018] 所述身份认证请求包括以证明实体私钥加密的证明实体标识; [0019] 随机数获取模块,用于接收验证实体提供的随机数;
[0020] 第一验证值计算模块,用于根据所述随机数和证明实体公钥计算第 [0021] 一验证值,并将所述第一验证值发送给所述验证实体;
[0022] 所述验证实体包括:
[0023] 身份认证请求接收模块,用于接收证明实体发送的身份认证请求; [0024] 第一验证值获取模块,用于向所述证明实体提供一个随机数,并接收所述证明实体返回的第一验证值;
[0025] 第二验证值计算模块,用于从所述身份认证请求获得证明实体标识,并根据所述证明实体标识计算所述证明实体的身份认证值,且根据所述身份认证值和所述随机数计算第二验证值;
[0026] 验证值判断模块,用于判断所述第一验证值是否等于所述第二验证值,若是,则确认所述证明实体的身份认证通过。
[0027] 本发明实施例提供的零知识身份认证方案具有较少的运算量,能节省系统资源,提高认证效率。

附图说明

[0028] 图1为本发明实施例一提供的零知识身份认证方法的流程图;
[0029] 图2为本发明实施例二提供的零知识身份认证方法的流程图;
[0030] 图3为本发明实施例四提供的零知识身份认证方法中获取私钥和公钥方法的流程图;
[0031] 图4为本发明实施例五提供的零知识身份认证系统的结构示意图; [0032] 图5为本发明实施例六提供的零知识身份认证系统的结构示意图。 具体实施方式
[0033] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 [0034] 实施例一
[0035] 图1为本发明实施例一提供的零知识身份认证方法的流程图,该方法为证明实体向验证实体证明自己身份的过程,包括如下步骤:
[0036] 步骤110、验证实体接收证明实体发送的身份认证请求,该身份认证请求包括以证明实体私钥加密的证明实体标识;
[0037] 步骤120、验证实体向证明实体提供一个随机数,并接收证明实体返回的第一验证值,第一验证值为证明实体根据随机数和证明实体公钥计算而得;
[0038] 步骤130、验证实体从身份认证请求获得证明实体标识,并根据证明实体标识计算证明实体的身份认证值,且根据身份认证值和随机数计算第二验证值; [0039] 步骤140、验证实体判断第一验证值是否等于第二验证值,若是,则确认证明实体的身份认证通过,若否,则确认证明实体的身份认证未通过。
[0040] 本实施例的技术方案具有较少的运算量,能节省系统资源,提高认证效率。各步骤所使用的公式可以有多种形式,下面通过实施例详细描述。
[0041] 实施例二
[0042] 图2为本发明实施例二提供的零知识身份认证方法的流程图,该方法为证明实体向验证实体证明自己身份的过程,包括如下步骤:
[0043] 步骤210、证明实体采用证明实体私钥SZ对证明实体标识IDZ和证明实体标识的哈希结果H(IDZ)进行加密,并将加密结果携带在身份认证请求中发送给验证实体; [0044] 其中,哈希结果H(IDZ)采用预设单向哈希函数H(x)计算而得,证明实体标识IDZ作为预设单向哈希函数H(x)的输入值。证明实体私钥SZ和证明实体公钥PZ是证明实体本地存储的,可以通过多种途径获取,例如由权威机构下发。在某个用户首次作为证明实体时,可以从权威机构获取证明实体私钥SZ和证明实体公钥PZ,并存储在本地,在该用户后续向其他验证实体进行身份验证时可以从本地直接查询获取。
[0045] 步骤220、验证实体产生一个随机数r,按照如下公式(1)计算随机值 c并发送给证明实体,随机数r是通过携带在随机值c中提供给证明实体的:
[0046] c=r·M (1)
[0047] 其中,M为权威机构公开的椭圆曲线函数基点,是所有用户的已知值,证明实体和验证实体作为网络中的用户都可以获知。
[0048] 步骤230、证明实体根据随机值c和证明实体公钥PZ,按照如下公式(2)计算第一验证值dZ并发送给验证实体:
[0049] dZ=c·PZ (2)
[0050] 步骤240、验证实体按照如下公式(3)计算证明实体的身份认证值RZ: [0051] RZ=PZ+H(IDZ)·M+(PZX+H(IDZ)mod n)·Psa (3) [0052] 其中,PZ=(PZX,PZY),PZX能够根据证明实体公钥PZ唯一确定,证明实体公钥PZ是证明实体公开的,可以由证明实体发送给验证实体;Psa为权威机构公钥,可以由权威机构公开给所有用户,各用户在相互证明身份时即可以作为证明实体和验证实体;n为设定自然数,n优选为证明实体和验证实体的用户所在网络中的用户节点数量值。 [0053] 步骤250、验证实体按照如下公式(4)计算第二验证值dY:
[0054] dY=r·RZ (4)
[0055] 步骤260、验证实体判断第一验证值dZ是否等于第二验证值dY,若是,则确认证明实体的身份认证通过,若否,则确认证明实体的身份认证不通过。
[0056] 采用上述技术方案可以有效减少计算量,例如,相比于现有的Shnorr身份认证方案,本实施例的方案只有一次模运算,减少了模运算的次数,减少了零知识身份认证过程中的在线运算量。可以有效降低系统计算开销,提高身份认证效率。采用上述技术方案,若证明实体和验证实体之间交互的信息没有被窜改或丢失,则第一验证值dZ应等于第二验证值dY,可首先身份认证,并避免验证过程中的非法修改和信息丢失。
[0057] 实施例三
[0058] 本发明实施例三提供的零知识身份认证方法以实施例二为基础,在上述零知识身份认证的基础上产生用户的共享密钥。当验证实体通过证明实体的身份认证之后,还包括:验证实体根据证明实体的身份认证值RZ、随机值c和验证实体私钥SY产生共享密钥K,该共享密钥K用于加密验证实体和证明实体之间交互的数据。
[0059] 具体的,验证实体可以根据证明实体的身份认证值RZ、随机值c和验证实体私钥SY按照如下公式(5)产生共享密钥K:
[0060] K=H(r·RZ+SY·c) (5)
[0061] 在实际应用中,两个用户相互进行身份认证的方法相同,两个用户交替的作为验证实体和证明实体来相互进行身份认证。当第二用户B作为证明实体且第一用户A作为验证实体时,第一用户A获取相对于第二用户B的第一身份认证值RA并产生第二随机值cB提供给第二用户B。第一用户A验证第二用户B身份过程中产生的证明实体的身份认证值RZ即为第一身份认证值RA,产生的随机值c即为第二随机值cB。类似的,当第一用户A作为证明实体且第二用户B作为验证实体时,第二用户B获取相对于第一用户A的第二身份认证值RB并产生第一随机值cA提供给第一用户A。第二用户B验证第一用户A身份过程中产生的证明实体的身份认证值RZ即为第二身份认证值RB,产生的随机值c即为第一随机值cA。 [0062] 则在第一用户A和第二用户B相互进行身份验证之后,还包括: [0063] 第一用户A根据第一身份认证值RA、第一随机值cA和第一用户私钥SA产生共享密钥K,且第二用户B根据第二身份认证值RB、第二随机值cB和第二用户私钥SB产生共享密钥K,共享密钥K用于加密第一用户A和第二用户B之间交互的数据。
[0064] 本实施例的技术方案提供了一种新的共享密钥产生方法,适用于任何需要对用户间通话数据进行加密的场合,密钥形式涉及:权威机构的公钥、权威机构的私钥、用户的公钥、用户的私钥以及用户之间通信的共享密钥。各 个用户可以自行产生用户间通话数据加密时所用的共享密钥,不需要由权威机构进行统一分发,也无须通过网络传输,降低了共享密钥分发过程中被泄漏和攻击的可能。同时共享密钥的产生依赖于单向哈希函数,进一步提高了系统的安全性,在最大保证密钥安全性的同时有效的减少系统负荷。单向哈希函数可选择的方式很多,例如为MD5(Message Digest Algorithm,消息摘要算法第五版)和安全散列算法(Secure Hash Algorithm,简称SHA)。单向哈希函数算法是公开的,但是不能逆向得到原始数据,所以保证了密钥的安全性。
[0065] 第一用户A根据第一身份认证值RA、第一随机值cA和第一用户私钥SA产生共享密钥K,且第二用户B根据第二身份认证值RB、第二随机值cB和第二用户私钥SB产生共享密钥K的方式具体可以为:
[0066] 第一用户A根据第一身份认证值RA、第一随机值cA和第一用户私钥SA按照如下公式(6)产生共享密钥K:
[0067] K=H(rA·RA+SA·cA) (6)
[0068] 第二用户B根据第二身份认证值RB、第二随机值cB和第二用户私钥SB按照如下公式(7)产生共享密钥K:
[0069] K=H(rB·RB+SB·cB) (7)
[0070] 两个用户所产生的共享密钥K相同,可以用于加密两用户间交互的数据。 [0071] 本发明实施例技术方案可以应用在一个网络中,该网络包括多个用户终端。权威机构类似于证书分发中心的机构,权威机构可以是专门设置的服务器,负责对合法用户终端产生公钥、私钥。本发明实施例的典型应用场景例如为移动通信网络,在需要进行加密通讯时即可以采用本发明实施例的技术方案,例如,移动通信网络中的基站可以作为权威机构。其他所有涉及KDC的场景都适用本发明实施例的技术方案。
[0072] 实施例四
[0073] 图3为本发明实施例四提供的零知识身份认证方法中获取私钥和公钥方法的流程图,本实施例以前述实施例为基础,具体提供一种用户获取自身私钥和公钥的方式,在证明实体向验证实体证明身份之前,还包括下述步骤:
[0074] 步骤310、证明实体将自身的证明实体标识IDZ作为预设单向哈希函数H(x)的输入以计算哈希结果H(IDZ),并将哈希结果H(IDZ)发送给权威机构。
[0075] 其中,证明实体标识IDZ为权威机构分配给证明实体的唯一标识。在本步骤310中,证明实体还可以进一步产生一个随机数,与证明实体标识IDZ一同作为预设单向哈希函数H(x)的输入来计算哈希结果H(IDZ),以进一步提高安全性。
[0076] 步骤320、权威机构根据哈希结果H(IDZ)产生证明实体公钥PZ和公钥证据WZ,并发送给证明实体;
[0077] 本步骤中,权威机构可以根据如下公式(8)计算获取证明实体公钥PZ: [0078] M=PZ+H(IDZ)·M+(PZX+H(IDZ)mod n)·Psa (8)
[0079] 其中PZX可以通过PZ=(PAX,PZY)唯一确定。
[0080] 在本步骤中,权威机构具体为根据哈希结果H(IDZ)按照如下公式(9)产生公钥证据WZ:
[0081] WZ=k+Ssa·(PZX+H(IDZ)mod n) (9)
[0082] 其中,k∈[2,n-2];Ssa为权威机构私钥。
[0083] 步骤330、证明实体根据证明实体公钥PZ和公钥证据WZ产生证明实体私钥SZ。 [0084] 本步骤中,证明实体可以根据证明实体公钥PZ和公钥证据WZ按照如下公式(10)产生证明实体私钥SZ:
[0085] [0085] SZ=WZ+H(IDZ)mod n (10)
[0086] [0086] 在本实施例的步骤320中,在权威机构接收到哈希结果H(IDZ)之后,权威机构还可以进一步根据证明实体标识IDZ对证明实体进行身份认证。具体身份认证方式可以为权威机构将该证明实体的证明实体标识IDZ,也就是将权威机构分配给每个用户的唯一标识进行哈希运算,所采用的哈希函数是权威机构中预存储的,而后将哈希结果在本地进行匹配,若能够匹配到一致的结果即通过了身份认证。
[0087] 本实施例技术方案的证明实体可以是所有的用户,该方案进一步解决了密钥分发的不安全性,由用户自行产生自身所用的私钥,无须权威机构下发,避免了下发私钥过程中的泄漏可能性。而且私钥的生成依赖于单向哈希函数难题,提高了密钥破解的难度,有利于保证安全性。当用户需要进行密钥更新时,只要重新产生一个随机数并重复上述步骤即可更新自己的公钥和私钥。
[0088] 在本实施例中,权威机构所使用的椭圆曲线的基点M和权威机构公钥Psa是公开的,在步骤330中,证明实体可以首先根据椭圆曲线基点M和权威机构公钥Psa验证权威机构为其产生的证明实体公钥PZ。
[0089] 实施例五
[0090] 图4为本发明实施例五提供的零知识身份认证系统的结构示意图,该系统中包括证明实体410和验证实体420,证明实体410和验证实体420可以为网络中的用户,各用户在进行身份认证时互为验证实体420和证明实体410。
[0091] 该证明实体410包括:身份认证请求发送模块411、随机数获取模块412和第一验证值计算模块413。其中,身份认证请求发送模块411用于向验证实体420发送身份认证请求,该身份认证请求包括以证明实体私钥加密的证明实体标识;随机数获取模块412用于接收验证实体420提供的随机数;第一验证值计算模块413用于根据随机数和证明实体公钥计算第一验证值,并将第一验证值发送给验证实体420。
[0092] 该验证实体420包括:身份认证请求接收模块421、第一验证值获取模块422、第二验证值计算模块423和验证值判断模块424。其中,身份认证请求接收模块421用于接收证明实体410发送的身份认证请求;第一验证值获取模块422用于向证明实体410提供一个随机数,并接收证明实体410返回的第一验证值;第二验证值计算模块423用于从身份认证请求获得证明实体 标识,并根据证明实体标识计算证明实体410的身份认证值,且根据身份认证值和随机数计算第二验证值;验证值判断模块424用于判断第一验证值是否等于第二验证值,若是,则确认证明实体410的身份认证通过。
[0093] 采用上述技术方案,可以较少的计算量实现用户间零知识身份认证,提高了认证效率。
[0094] 实施例六
[0095] 图5为本发明实施例六提供的零知识身份认证系统的结构示意图,本实施例中,该验证实体420还可以进一步包括:共享密钥生成模块425。共享密钥生成模块425用于根据证明实体410的身份认证值、随机值和验证实体私钥产生共享密钥,共享密钥用于加密验证实体420和证明实体410之间交互的数据。
[0096] 采用上述技术方案,用户均可以作为验证实体获取与证明实体之间的共享密钥,且两用户各自所计算出来的共享密钥相同,可以用于交互数据的加解密。本实施例的技术方案实现了用户自行产生共享密钥,无须权威机构分发或通过网络传输,因此能够提高密钥的安全性。
[0097] 在本实施例的基础上,证明实体410还可以包括:标识上报模块414、公钥接收模块415和私钥产生模块416。其中,标识上报模块414用于将自身的证明实体标识发送给权威机构430,其中,证明实体标识为权威机构430分配给证明实体410的唯一标识;公钥接收模块415用于接收权威机构430返回的证明实体公钥和公钥证据;私钥产生模块416用于根据证明实体公钥和公钥证据产生证明实体私钥;该系统中还包括权威机构430,用于根据证明实体410上报的证明实体标识产生证明实体公钥和公钥证据,并发送给证明实体410。
[0098] 本实施例由权威机构产生用户的公钥,而由用户自行产生自己的私钥,无须权威机构分发或通过网络传输,因此能够提高密钥的安全性。
[0099] 本发明实施例所提供的零知识身份认证系统可执行本发明实施例提供 的零知识身份认证方法,具备相应的功能模块。该技术方案具有较少的运算量,能节省系统资源,提高认证效率;密钥的产生依赖于单向哈希函数难题,因此可提高密钥的安全性;用户私钥和共享密钥均由用户自行产生,无须权威机构分发或通过网络传输,因此能够提高密钥的安全性。
[0100] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0101] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。