CN114938280A - 一种基于非交互零知识证明与智能合约的认证方法及系统 - Google Patents

一种基于非交互零知识证明与智能合约的认证方法及系统 Download PDF

Info

Publication number
CN114938280A
CN114938280A CN202210568215.8A CN202210568215A CN114938280A CN 114938280 A CN114938280 A CN 114938280A CN 202210568215 A CN202210568215 A CN 202210568215A CN 114938280 A CN114938280 A CN 114938280A
Authority
CN
China
Prior art keywords
user
proof
ans
verification
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210568215.8A
Other languages
English (en)
Inventor
胡红钢
周旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN202210568215.8A priority Critical patent/CN114938280A/zh
Publication of CN114938280A publication Critical patent/CN114938280A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种基于非交互零知识证明与智能合约的认证方法及系统,其方法包括:S1:用户将加密信息M发给身份提供商,身份提供商对M进行解密以确认用户的身份;构建特定函数并生成特定函数的解ans,生成证明密钥provingKey和验证密钥verifyingKey;身份提供商将特定函数、ans和provingKey发给用户,并利用verifyingKey创建验证合约并部署到区块链;S2:用户接收特定函数、ans和provingKey,使用ans生成证据witness,使用witness以及provingKey计算得到证明proof,并将proof发给服务提供商申请认证;服务提供商获取用户在区块链上的验证合约,利用proof对验证合约进行验证,根据认证判定策略判断用户是否认证成功。本发明提供的方法既保证敏感数据的隐私性,又减少了在区块链上计算的开销。

Description

一种基于非交互零知识证明与智能合约的认证方法及系统
技术领域
本发明涉及区块链领域,具体涉及一种基于非交互零知识证明与智能合约的认证方法及系统。
背景技术
在互联网时代的背景下,越来越多的数据收集系统被设计并开发,每一个系统都需要一个必要的身份认证模块,以便于拦截非法用户,保护系统内部数据的安全性、隐私性。传统的认证方案大都基于中心化实体完成认证决策,包括使用最为广泛的基于口令的认证,或者更为安全的动态口令认证以及多因子认证。中心化的认证决策实体便会带来单点故障的风险,同时也存在恶意用户对发现认证实体的信息进行监测并破解的可能。
随着零知识证明在20世纪80年代被Goldwasser等人提出,在保护自己隐私数据的情况下证明某个断言是真成为可能。一个零知识证明协议是定义在两方之间的交互协议,一方为证明者,想要说服另一方,即验证者,某个断言是正确的,而验证者除了知道断言是正确的之外,获得不了任何信息。零知识证明需要满足三个条件:正确性、可靠性、零知识。正确性指的是当一个断言是真的时,诚实验证者遵循协议一定被说服,接受断言为真的事实。可靠性指的是当一个断言为假时,验证者以很大的概率拒绝证明者给出的证明。零知识指的是当证明者发送的断言为真时,验证者除了知道该断言为真,不会得到任何信息。基于零知识证明的三个属性,便可以很好地将其运用到认证中。其中正确性可以保证合法用户一定会认证成功;可靠性可以保证非法用户以可忽略的概率通过认证;零知识可以保证其他用户学习不到任何有关认证的信息。
Khernane等人于2016年提出的BANZKP便是适用于无线体域网的基于零知识证明的认证方案。方案中使用多轮交互,交互信息为使用sessionKey加密后的密文,为保证抵抗重放攻击以及用户对传感器的认证,使用计算承诺方案,在传感器对用户成功后打开承诺值。Lukas Malina于2018年提出双因子零知识认证方案,第一层认证使用交互式Schnorr方案完成身份认证,第二层认证需要用户输入预先设置的PIN码。以上方案均属于交互式认证,在物联网环境中,设备计算能力以及存储能力受限,为避免增大通信开销,不适用多轮交互。David Gabay等人于2020年在电动车充电方向提出基于区块链以及零知识证明的认证方案,该协议使用的便是非交互零知识证明,方案中在设计零知识证明函数时加入时间戳作为公共输入避免重放攻击,但证明产生后还是有可能被别人快速使用。
现有的认证中心大都是中心化实体做认证决策,这样存在单点故障的风险,而区块链由于其分布式的特点,将其作为认证决策模块时,可很好规避单点故障的问题。同时由于用户发送认证信息进行验证,这些信息包含一部分个人隐私数据,有可能带来信息泄露的问题。零知识证明可以很好地适用于需要说服对方,但又不暴露任何个人信息的场景。将零知识证明与区块链结合也会存在一些挑战:零知识证明的计算量一般情况较大,在区块链上进行复杂的计算,不论对于时间开销还是存储开销都是比较大,不能将零知识证明的证明阶段与验证阶段直接在区块链上进行。其次不论是区块链节点还是大量涌入的物联网设备,设备间的交互频度应尽量减少,避免造成网络拥挤。
因此,如何既保证敏感数据的隐私性,又减少在区块链上计算的开销成为一个亟待解决的问题。
发明内容
为了解决上述技术问题,本发明提供一种基于非交互零知识证明与智能合约的认证方法及系统。
本发明技术解决方案为:一种基于非交互零知识证明与智能合约的认证方法,包括:
步骤S1:用户将加密信息M发给身份提供商,所述身份提供商对M进行解密以确认所述用户的身份;所述身份提供商构建特定函数并生成所述特定函数的解ans,根据所述特定函数生成证明密钥provingKey和验证密钥verifyingKey;所述身份提供商将所述特定函数、ans和provingKey发给所述用户;所述身份提供商利用verifyingKey创建验证合约并部署到区块链;
步骤S2:用户接收所述特定函数、ans和provingKey,使用ans生成证据witness,使用witness以及provingKey计算得到证明proof,并将proof发给服务提供商申请认证;所述服务提供商获取所述用户在区块链上的所述验证合约,利用proof对所述验证合约进行验证,根据认证判定策略判断所述用户是否认证成功。本发明与现有技术相比,具有以下优点:
1、本发明公开了一种基于非交互零知识证明与智能合约的认证方法,支持身份提供商自定义认证问题,采用用户在链下本地依据认证问题的证据生成用于向服务商认证的非交互零知识证明,链上验证的方式,有效避免链上计算量过大、响应时间过长、单点故障等问题,既保证敏感数据的隐私性,又减少了在区块链上计算的开销。利用了非交互零知识证明的非交互特性,在有大量认证请求的情况下也能保证认证效率。
2、本发明在零知识证明的特定函数中加入公私钥配对验证,保证证明的所属权,避免生成的证明被恶意用户盗用,同时增加证明到期失效功能以及增加时间戳以抵御重放攻击。
附图说明
图1为本发明实施例中一种基于非交互零知识证明与智能合约的认证方法的流程图;
图2为本发明实施例中一种基于非交互零知识证明与智能合约的认证系统流程图;
图3为本发明实施例中特定函数的示例;
图4为本发明实施例中非交互零知识的证明proof的生成流程图;
图5为本发明实施例中一种基于非交互零知识证明与智能合约的认证系统的结构框图。
具体实施方式
本发明提供了一种基于非交互零知识证明与智能合约的认证方法,用户的证明信息在本地链下生成,既保证敏感数据的隐私性,又减少了在区块链上计算的开销。
为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
为了更好地理解本发明实施例,对认证系统进行介绍:
如图1所示,认证系统分为五个部分:用户,身份提供商,服务提供商,区块链,智能合约。
用户:用户是服务请求方,在向服务提供商请求服务前需要向身份提供商提供个人信息,完成身份注册,获取用于在服务提供商处认证的相关数据。
身份提供商:身份提供商负责对申请身份认证的用户提交的资料进行审核,审核后提供用于生成零知识证明的证明密钥以及证据信息,同时在区块链上部署具有零知识证明验证功能的智能合约,该合约硬编码了验证密钥。
服务提供商:服务提供商负责向用户提供特定服务,在提供服务之前需要对用户身份进行认证。用户只需发来用于身份认证的非交互零知识证明的proof,服务提供商向区块链查询该用户对应的验证合约地址,基于此地址,使用proof作为输入调用证明验证功能,同时解码proof中公共输入部分,获得公钥以及时间戳信息,根据公钥信息比对用户地址,根据时间戳信息判定此次请求是否为重放攻击,若均通过,则提供服务,否则拒绝。
区块链:区块链是本系统使用的底层基础设施,本质上是一个分布式账本,通过共识协议完成链的延长,参与区块链系统的用户均有唯一的地址与之对应,在以太坊系统中,该地址通过对公钥进行Keccak-256哈希运算取末尾20字节计算得到。而公钥则是通过椭圆曲线secp256k1将256比特的私钥对应的大数与曲线基点相乘得到。私钥则是通过伪随机数产生得到。
智能合约:零知识证明验证合约由身份提供商部署得到,主要功能便是对基于特定函数以及证明密钥生成的证明proof进行验证。记录用户地址与验证合约地址的映射关系也是由身份提供商部署,对外提供查询接口,可根据用户地址返回相应的验证地址关系。认证判定策略合约由服务提供商部署,对用户保证一定的公平性。由于智能合约部署后的公开属性,根据其地址便可查看合约源码、内部逻辑。
实施例一
如图1所示,本发明实施例提供的一种基于非交互零知识证明与智能合约的认证方法,包括下述步骤:
步骤S1:用户将加密信息M发给身份提供商,身份提供商对M进行解密以确认用户的身份;身份提供商构建特定函数并生成特定函数的解ans,根据特定函数生成证明密钥provingKey和验证密钥verifyingKey;身份提供商将特定函数、ans和provingKey发给用户;身份提供商利用verifyingKey创建验证合约并部署到区块链;
步骤S2:用户接收特定函数、ans和provingKey,使用ans生成证据witness,使用witness以及provingKey计算得到证明proof,并将proof发给服务提供商申请认证;服务提供商获取用户在区块链上的验证合约,利用proof对验证合约进行验证,根据认证判定策略判断用户是否认证成功。
本发明实施例的认证流程分为两个部分:步骤S1的用户身份证明分发流程以及步骤S2的用户认证流程。
如图2所示,在一个实施例中,上述步骤S1:用户将加密信息M发给身份提供商,身份提供商对M进行解密以确认用户身份;身份提供商构建特定函数并生成特定函数的解ans,根据特定函数生成证明密钥provingKey和验证密钥verifyingKey;身份提供商将特定函数、ans和provingKey发给用户;身份提供商利用verifyingKey创建验证合约并部署到区块链,具体包括:
步骤S11:用户发给身份提供商的信息为M:
Figure BDA0003659148350000051
其中,data为用户个人身份信息,key为临时密钥,PKIP是身份提供商所提供的公钥;M0是Encryptkey()使用key对data进行对称加密后的加密信息,M1
Figure BDA0003659148350000052
使用SKIP对key进行非对称加密后的加密信息;符号||表示前后两段数据的级联;
步骤S12:身份提供商收到M后,使用自己的私钥SKIP解密M1获得key,再使用key解密M0后获得data,以确认用户的个人身份信息;
Figure BDA0003659148350000053
其中,SKIP为身份提供商的私钥,Decryptkey()是使用key对M0进行的对称解密,
Figure BDA0003659148350000054
是使用SKIP对M1进行的非对称解密;
由于用户向身份提供商提供个人信息数据的信息量较大,本发明实施例中采用数字信封的形式进行传递,身份提供商使用自己的私钥打开数字信封,获取用户的个人信息数据进行确认。
步骤S13:身份提供商进行零知识证明初始化:构建零知识证明所用的特定函数并生成特定函数的解ans;根据特定函数生成证明密钥provingKey和验证密钥verifyingKey;
本步骤中的特定函数可以使用circom或者zokrates工具包进行编写,并且需在特定函数中自定义特定的难题,例如,可自定义难题为大数分解、哈希函数值的原像问题、或者适合公司内部的难题。
步骤S14:所述身份提供商使用用户公钥PKuser加密所述特定函数、ans和provingKey后发给所述用户;根据verifyingKey创建包含所述特定函数的零知识证明的智能合约,即验证合约,并部署到区块链上。
在本步骤中,身份提供商将验证合约部署到区块链上,并记录该用户在区块链上的用户地址与验证合约的地址的映射关系,如表1所示。同时,设置对外接口,以便其他用户根据用户地址查询验证合约地址。
表1.用户地址与链上验证合约对应关系示例
用户地址 验证合约地址 记录时间
Ox3cbd81dcdfa91571ab8cf79f2ef6db46b12634ec Ox2c22b55cae794c8b691602ee6afadfa3f5c4d7fb 2022/1/19 12:35
Ox89eba2b2a80609c2dc7fde1a95a21428dcfa16e8 Ox0af99dbfde68650d4d69a2d3a8bfb3cdf8316414 2022/1/21 16:45
0xdcce4fala8d42e8e4aec2e20017242003446845b Oxddf27a729d05be6f11be50b1905daa6e7b508c91 2022/1/21 19:00
0x6822311f684238631dc32cfcde94d0082d4e348d Oxeaf7f559c8bbf2609367b08d3865a1cb96ebbbfe 2022/1/22 11:25
在一个实施例中,上述步骤S13中构建零知识证明所用的特定函数,具体包括:
步骤S131:设定特定函数的第一输入参数为用户公钥PKuser,第二输入参数为私有的用户私钥SKuser
步骤S132:设定特定函数的最后一个输入参数为时间戳,用于判断输入的时间戳是否超过预设的身份过期时间;
步骤S133:设定特定函数其他输入参数为私有的难题的解ans1、…、ansi,以及公开的目标值target;根据ans1、…、ansi按照预定的计算规则进行计算,如果计算结果等于target,返回true,否则返回false。
如图3所示的特定函数的示例中,定义了如下输入参数:
用户公钥PKuser为公开参数;
用户私钥SKuser为私有参数,其目的是为了用户私钥不会在后续的proof中出现,确保用户的隐私不泄露;
难题的解ans1和ans2均为私有参数;在本示例中,设定的难题为大数分解,解为ans1和ans2
目标值target和时间戳均为公开参数;
特定函数的输出为true或者flase。
在本发明实施例中的特定函数,设置为私有参数的输入不会在proof中出现,其余的公开参数则是会在后续的proof中的输入字段出现,确保零知识证明的验证过程不会泄露隐私输入的任何信息。
由于零知识证明计算量较大,在区块链上直接进行运算花费的时间开销较大,本发明实施例采用链下计算,链上验证的方式,首先在用户本地使用已有数据计算用于证明的proof,并将proof发送给服务提供商,服务提供商调用链上验证合约对proof进行验证,根据认证判定策略决定提供服务或拒绝。
如图2所示,在一个实施例中,上述步骤S2:用户接收特定函数、ans和provingKey,使用ans生成证据witness,使用witness以及provingKey计算得到证明proof,并将proof发给服务提供商申请认证;服务提供商获取用户在区块链上的验证合约,利用proof对验证合约进行验证,根据认证判定策略判断用户是否认证成功,具体包括:
步骤S21:用户使用SKuser解密获得特定函数、函数的解ans以及证明密钥provingKey;并使用ans、用户公钥PKuser、用户私钥SKuser、target以及此时的时间戳生成witness;
如图4所示,用户使用私有参数SKuser、ans和公开参数PKuser、target和时间戳通过认证函数计算得到证据witness;
步骤S22:用户使用witness以及provingKey计算得到证明proof;
如图4所示,用户利用上一步得到的证据witness以及证明密钥provingKey进行计算,就可得到证明proof。
步骤S23:用户发送证明proof至服务提供商申请认证,请求服务;
步骤S24:服务提供商根据该用户的用户地址查询得到该用户对应的验证合约;
如表1中示例,服务提供商根据已知的用户地址查询得到对应的验证合约地址,从而获取对应的验证合约;
步骤S25:服务提供商使用proof,利用验证合约的验证函数进行验证,并根据认证判定策略决定是否提供服务;其中,验证函数为验证合约中的特定函数。
由于服务提供商不仅要对proof进行链上验证,同时也要对proof中的数据进行计算后验证。为了保证认证的公平性,用户即使认证失败也需要知道原因,服务提供商将验证地址发送回用户,依据底层区块链的公开透明属性,用户可以根据该地址查看相关判定策略,从而获知认证失败的原因。
在一个实施例中,上述步骤S25中认证判定策略,具体包括:
步骤S251:使用proof作为输入,验证验证函数中的逻辑,最后获取验证函数的返回值;其中,验证函数中的逻辑包括:
1)验证用户公私钥是否配对:即输入用户私钥SKuser计算得到用户公钥PK′user,判断PKuser是否等于PK′user
2)判断用户身份是否过期,即输入的时间戳是否超过身份过期时间;
3)输入的ans是否为特定函数的解:即根据ans1、…、ansi按照预定的计算规则进行计算,判断计算结果是否等于target;
若上述任一项逻辑的验证未通过,则认证失败,验证函数返回false;若所有逻辑的验证均通过,则验证成功,转至步骤S252;
步骤S252:解析proof内容获得用户公钥PKuser,使用PKuser获取该用户的验证合约地址,如果该地址与用户地址不一致,则认证失败,否则转至步骤S253;
步骤S253:解析proof内容获得时间戳,判定时间戳是否与当前时间戳的误差小于预定阈值,若是,则认证成功,否则认证失败。
本发明公开了一种基于非交互零知识证明与智能合约的认证方法,支持身份提供商自定义认证问题,采用用户在链下本地依据认证问题的证据生成用于向服务商认证的非交互零知识证明,链上验证的方式,有效避免链上计算量过大、响应时间过长、单点故障等问题,既保证敏感数据的隐私性,又减少了在区块链上计算的开销。利用了非交互零知识证明的非交互特性,在有大量认证请求的情况下也能保证认证效率。本发明在零知识证明的特定函数中加入公私钥配对验证,保证证明的所属权,避免生成的证明被恶意用户盗用,同时增加证明到期失效功能以及增加时间戳以抵御重放攻击。
实施例二
如图5所示,本发明实施例提供了一种基于非交互零知识证明与智能合约的认证系统,包括下述模块:
用户身份证明分发模块31,用户将加密信息M发给身份提供商,身份提供商对M进行解密以确认用户的身份;身份提供商构建特定函数并生成特定函数的解ans,根据特定函数生成证明密钥provingKey和验证密钥verifyingKey;身份提供商将特定函数、ans和provingKey发给用户;身份提供商利用verifyingKey创建验证合约并部署到区块链;
用户认证模块32,用户接收特定函数、ans和provingKey,使用ans生成证据witness,使用witness以及provingKey计算得到证明proof,并将proof发给服务提供商申请认证;服务提供商获取用户在区块链上的验证合约,利用proof对验证合约进行验证,根据认证判定策略判断用户是否认证成功。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。

Claims (6)

1.一种基于非交互零知识证明与智能合约的认证方法,其特征在于,包括:
步骤S1:用户将加密信息M发给身份提供商,所述身份提供商对M进行解密以确认所述用户的身份;所述身份提供商构建特定函数并生成所述特定函数的解ans,根据所述特定函数生成证明密钥provingKey和验证密钥verifyingKey;所述身份提供商将所述特定函数、ans和provingKey发给所述用户;所述身份提供商利用verifyingKey创建验证合约并部署到区块链;
步骤S2:用户接收所述特定函数、ans和provingKey,使用ans生成证据witness,使用witness以及provingKey计算得到证明proof,并将proof发给服务提供商申请认证;所述服务提供商获取所述用户在区块链上的所述验证合约,利用proof对所述验证合约进行验证,根据认证判定策略判断所述用户是否认证成功。
2.根据权利要求1所述的基于非交互零知识证明与智能合约的认证方法,其特征在于,所述步骤S1:用户将加密信息M发给身份提供商,所述身份提供商对M进行解密以确认所述用户身份;所述身份提供商构建特定函数并生成所述特定函数的解ans,根据所述特定函数生成证明密钥provingKey和验证密钥verifyingKey;所述身份提供商将所述特定函数、ans和provingKey发给所述用户;所述身份提供商利用verifyingKey创建验证合约并部署到区块链,具体包括:
步骤S11:用户发给身份提供商的信息为M:
M=M0||M1,M0=Encryptkey(data),
Figure FDA0003659148340000011
其中,data为所述用户个人身份信息,key为临时密钥,PKIP是所述身份提供商所提供的公钥;M0是Encryptkey()使用key对data进行对称加密后的加密信息,M1
Figure FDA0003659148340000012
使用PKIP对key进行非对称加密后的加密信息;符号||表示前后两段数据的级联;
步骤S12:所述身份提供商收到M后,使用自己的私钥SKIP解密M1获得key,再使用key解密M0后获得data,以确认所述用户的个人身份信息;
Figure FDA0003659148340000013
data=Decryptkey(M0)
其中,SKIP为所述身份提供商的私钥,Decryptkey()是使用key对M0进行的对称解密,
Figure FDA0003659148340000014
是使用SKIP对M1进行的非对称解密;
步骤S13:所述身份提供商进行零知识证明初始化:构建零知识证明所用的特定函数并生成所述特定函数的解ans;根据所述特定函数生成证明密钥provingKey和验证密钥verifyingKey;
步骤S14:所述身份提供商使用用户公钥PKuser加密所述特定函数、ans和provingKey后发给所述用户;根据verifyingKey创建包含所述特定函数的零知识证明的智能合约,即验证合约,并部署到区块链上。
3.根据权利要求2所述的基于非交互零知识证明与智能合约的认证方法,其特征在于,所述步骤S13中构建零知识证明所用的特定函数,具体包括:
步骤S131:设定所述特定函数的第一输入参数为用户公钥PKuser,第二输入参数为私有的用户私钥SKuser
步骤S132:设定所述特定函数的最后一个输入参数为时间戳,用于判断输入的所述时间戳是否超过预设的身份过期时间;
步骤S133:设定所述特定函数其他输入参数为私有的所述难题的解ans1、…、ansi,以及公开的目标值target;根据ans1、…、ansi按照预定的计算规则进行计算,如果计算结果等于target,返回true,否则返回false。
4.根据权利要求3所述的基于非交互零知识证明与智能合约的认证方法,其特征在于,所述步骤S2:用户接收所述特定函数、ans和provingKey,使用ans生成证据witness,使用witness以及provingKey计算得到证明proof,并将proof发给服务提供商申请认证;所述服务提供商获取所述用户在区块链上的所述验证合约,利用proof对所述验证合约进行验证,根据认证判定策略判断所述用户是否认证成功,具体包括:
步骤S21:所述用户使用SKuser解密获得所述特定函数、函数的解ans以及所述证明密钥provingKey;并使用ans、所述用户公钥PKuser、所述用户私钥SKuser、target以及此时的时间戳生成witness;
步骤S22:所述用户使用witness以及provingKey计算得到证明proof;
步骤S23:所述用户发送所述证明proof至服务提供商申请认证,请求服务;
步骤S24:所述服务提供商根据该用户的用户地址查询得到该用户对应的验证合约;
步骤S25:所述服务提供商使用proof,利用所述验证合约的验证函数进行验证,并根据认证判定策略决定是否提供服务;其中,所述验证函数为所述验证合约中的特定函数。
5.根据权利要求4所述的基于非交互零知识证明与智能合约的认证方法,其特征在于,所述步骤S25中所述认证判定策略,具体包括:
步骤S251:使用proof作为输入,验证所述验证函数中的逻辑,最后获取所述验证函数的返回值;其中,所述验证函数中的逻辑包括:
1)验证用户公私钥是否配对:即输入用户私钥SKuser计算得到用户公钥PK′user,判断PKuser是否等于PK′user
2)判断用户身份是否过期,即输入的时间戳是否超过所述身份过期时间;
3)输入的ans是否为所述特定函数的解:即根据ans1、…、ansi按照预定的计算规则进行计算,判断计算结果是否等于target;
若上述任一项逻辑的验证未通过,则认证失败,所述验证函数返回false;若所有逻辑的验证均通过,则验证成功,转至步骤S252;
步骤S252:解析proof内容获得用户公钥PKuser,使用PKuser获取该用户的所述验证合约地址,如果该地址与用户地址不一致,则认证失败,否则转至步骤S253;
步骤S253:解析proof内容获得所述时间戳,判定所述时间戳是否与当前时间戳的误差小于预定阈值,若是,则认证成功,否则认证失败。
6.一种基于非交互零知识证明与智能合约的认证系统,其特征在于,包括下述模块:
用户身份证明分发模块,用户将加密信息M发给身份提供商,所述身份提供商对M进行解密以确认所述用户的身份;所述身份提供商构建特定函数并生成所述特定函数的解ans,根据所述特定函数生成证明密钥provingKey和验证密钥verifyingKey;所述身份提供商将所述特定函数、ans和provingKey发给所述用户;所述身份提供商利用verifyingKey创建验证合约并部署到区块链;
用户认证模块,用户接收所述特定函数、ans和provingKey,使用ans生成证据witness,使用witness以及provingKey计算得到证明proof,并将proof发给服务提供商申请认证;所述服务提供商获取所述用户在区块链上的所述验证合约,利用proof对所述验证合约进行验证,根据认证判定策略判断所述用户是否认证成功。
CN202210568215.8A 2022-05-24 2022-05-24 一种基于非交互零知识证明与智能合约的认证方法及系统 Pending CN114938280A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210568215.8A CN114938280A (zh) 2022-05-24 2022-05-24 一种基于非交互零知识证明与智能合约的认证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210568215.8A CN114938280A (zh) 2022-05-24 2022-05-24 一种基于非交互零知识证明与智能合约的认证方法及系统

Publications (1)

Publication Number Publication Date
CN114938280A true CN114938280A (zh) 2022-08-23

Family

ID=82864373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210568215.8A Pending CN114938280A (zh) 2022-05-24 2022-05-24 一种基于非交互零知识证明与智能合约的认证方法及系统

Country Status (1)

Country Link
CN (1) CN114938280A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115622812A (zh) * 2022-12-16 2023-01-17 金网络(北京)电子商务有限公司 基于区块链智能合约的数字身份验证方法及系统
CN115883100A (zh) * 2022-11-25 2023-03-31 中国电信股份有限公司 基于孪生区块链的身份认证方法及相关设备
CN116055047A (zh) * 2023-03-31 2023-05-02 中国科学技术大学 一种对主账号关联记录的可信匿名管理方法
CN116760616A (zh) * 2023-07-04 2023-09-15 云南财经大学 交互式零知识身份认证方法及含该程序的计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111447073A (zh) * 2020-03-31 2020-07-24 河北大学 基于区块链与零知识证明的身份管理与认证系统及方法
CN112636922A (zh) * 2020-12-21 2021-04-09 电子科技大学 基于无交互零知识证明的iot身份认证方法
CN113169980A (zh) * 2018-12-14 2021-07-23 美国运通旅游有关服务公司 使用区块链的交易账户数据维护
US20210297255A1 (en) * 2018-12-06 2021-09-23 Shandong University Zero knowledge proof-based privacy protection method and system for authenticated data in smart contract
CN114021164A (zh) * 2021-10-29 2022-02-08 河南大学 基于区块链的征信系统隐私保护方法
CN114186248A (zh) * 2021-11-13 2022-03-15 云南财经大学 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法
CN114239078A (zh) * 2021-12-13 2022-03-25 广东电网有限责任公司广州供电局 电网数据审计方法、装置、电网系统及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210297255A1 (en) * 2018-12-06 2021-09-23 Shandong University Zero knowledge proof-based privacy protection method and system for authenticated data in smart contract
CN113169980A (zh) * 2018-12-14 2021-07-23 美国运通旅游有关服务公司 使用区块链的交易账户数据维护
CN111447073A (zh) * 2020-03-31 2020-07-24 河北大学 基于区块链与零知识证明的身份管理与认证系统及方法
CN112636922A (zh) * 2020-12-21 2021-04-09 电子科技大学 基于无交互零知识证明的iot身份认证方法
CN114021164A (zh) * 2021-10-29 2022-02-08 河南大学 基于区块链的征信系统隐私保护方法
CN114186248A (zh) * 2021-11-13 2022-03-15 云南财经大学 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法
CN114239078A (zh) * 2021-12-13 2022-03-25 广东电网有限责任公司广州供电局 电网数据审计方法、装置、电网系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
余荣威;周博孝;王丽娜;朱欣焰;谢辉华;谢红军;: "基于区块链的零知识位置证明方法研究", 电子与信息学报, no. 09 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115883100A (zh) * 2022-11-25 2023-03-31 中国电信股份有限公司 基于孪生区块链的身份认证方法及相关设备
CN115622812A (zh) * 2022-12-16 2023-01-17 金网络(北京)电子商务有限公司 基于区块链智能合约的数字身份验证方法及系统
CN116055047A (zh) * 2023-03-31 2023-05-02 中国科学技术大学 一种对主账号关联记录的可信匿名管理方法
CN116760616A (zh) * 2023-07-04 2023-09-15 云南财经大学 交互式零知识身份认证方法及含该程序的计算机可读存储介质
CN116760616B (zh) * 2023-07-04 2024-09-06 云南财经大学 交互式零知识身份认证方法及含该程序的计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN113194469B (zh) 基于区块链的5g无人机跨域身份认证方法、系统及终端
CN114186248B (zh) 基于区块链智能合约的零知识证明可验证凭证数字身份管理系统及方法
KR100962399B1 (ko) 익명 공개 키 기반구조 제공 방법 및 이를 이용한 서비스제공 방법
US8397060B2 (en) Requesting digital certificates
CN114938280A (zh) 一种基于非交互零知识证明与智能合约的认证方法及系统
CN109922077A (zh) 一种基于区块链的身份认证方法及其系统
US20090240941A1 (en) Method and apparatus for authenticating device in multi domain home network environment
US20100154040A1 (en) Method, apparatus and system for distributed delegation and verification
US8274401B2 (en) Secure data transfer in a communication system including portable meters
Xue et al. A distributed authentication scheme based on smart contract for roaming service in mobile vehicular networks
US20230412398A1 (en) Private key security in the cloud
CN113824570B (zh) 一种基于区块链的安全终端的认证方法和系统
CN113055363A (zh) 一种基于区块链信任机制的标识解析系统实现方法
CN115021958B (zh) 一种雾计算与区块链融合的智能家居身份认证方法与系统
JP2001186122A (ja) 認証システム及び認証方法
CN117097476B (zh) 一种基于工业互联网的数据处理方法、设备及介质
CN110752934B (zh) 拓扑结构下网络身份交互认证的方法
CN116886352A (zh) 一种数智产品鉴权授权方法及系统
CN116707983A (zh) 授权认证方法及装置、接入认证方法及装置、设备、介质
CN114584975B (zh) 一种基于sdn的抗量子卫星网络接入认证方法
CN115715004A (zh) 一种针对大规模异构网络的隐私保护跨域认证方法
CN114978622A (zh) 一种基于区块链和零知识证明的匿名凭证验证方法及系统
CN114866328A (zh) 一种边缘计算环境下基于区块链的跨域访问控制方法及系统
Persiano et al. A secure and private system for subscription-based remote services
Jiang et al. A blockchain-based privacy-preserving scheme for cross-domain authentication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220823