(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210568215.8
(22)申请日 2022.05.24
(71)申请人 中国科学技术大学
地址 230026 安徽省合肥市包河区金寨路
96号
(72)发明人 胡红钢 周旺
(74)专利代理 机构 北京科迪生专利代理有限责
任公司 1 1251
专利代理师 金怡
(51)Int.Cl.
H04L 9/32(2006.01)
H04L 9/40(2022.01)
H04L 67/10(2022.01)
(54)发明名称
一种基于非交互零知识证明与智能合约 的
认证方法及系统
(57)摘要
本发明涉及一种基于非交互零知识证明与
智能合约的认证方法及系统, 其方法包括: S1: 用
户将加密信息M发给身份提供商, 身份提供商对M
进行解密以确认用户的身份; 构建特定函数并生
成特定函数的解ans, 生成证明密钥provingKey
和验证密钥verifyingKey; 身份提供商将特定函
数、 ans和provingKey发给用户, 并利用
verifyingKey创建验证合约并部署到区块链;
S2: 用户接收特定函数、 ans和provingKey, 使用
ans生成证据witness, 使用witness以及
provingKey计算得到证明proof, 并将proof发给
服务提供商申请认证; 服务提供商获取用户在区
块链上的验证合约, 利用proof对验证合约进行
验证, 根据认证判定策略判断用户是否认证成
功。 本发明提供的方法既保证敏感数据的隐私
性, 又减少了在区块链上计算的开销。
权利要求书3页 说明书6页 附图3页
CN 114938280 A
2022.08.23
CN 114938280 A
1.一种基于非交 互零知识证明与智能合约的认证方法, 其特 征在于, 包括:
步骤S1: 用户将加密信息M发给身份提供商, 所述身份提供商对M进行解密以确认所述
用户的身份; 所述身份提供商构建特定函数并生成所述特定函数的解ans, 根据所述特定函
数生成证明密钥provingKey和验证密钥verifyingKey; 所述身份提供商将所述特定函数、
ans和provingKey发给所述用户; 所述身份提供商利用verifyingKey创建验证合约并部署
到区块链;
步骤S2: 用户接收所述特定函数、 ans和provingKey, 使用ans生成证据witness, 使用
witness以及p rovingKey计算得到证明proof, 并将p roof发给服务提供商申请认证; 所述服
务提供商获取所述用户在区块链上的所述验证合约, 利用pr oof对所述验证合约进 行验证,
根据认证判定策略判断所述用户是否认证成功。
2.根据权利要求1所述的基于非交互零知识证明与智能合约的认证方法, 其特征在于,
所述步骤S1: 用户将加密信息M发给身份提供商, 所述身份提供商对M进行解密以确认所述
用户身份; 所述身份提供商构建特定函数并生成所述特定函数的解ans, 根据所述特定函数
生成证明密钥p rovingKey和验证密钥verifyingKey; 所述身份提供商将所述特定函数、 ans
和provingKey发给所述用户; 所述身份提供商利用v erifyingKey创建验证合约并部署到区
块链, 具体包括:
步骤S11: 用户发给身份提供商的信息为M:
M=M0||M1, M0=Encryptkey(data),
其中, data为所述用户个人身份信息, key为 临时密钥, PKIP是所述身份提供商所提供的
公钥; M0是Encryptkey()使用key对data进行对称加密后的加密信息, M1是
使
用PKIP对key进行非对称加密后的加密信息; 符号| |表示前后两段 数据的级联;
步骤S12: 所述身份提供商收到M后, 使用自己的私钥SKIP解密M1获得key, 再使用key解
密M0后获得data, 以确认所述用户的个人身份信息;
data=Decryptkey(M0)
其中, SKIP为所述身份提供商的私钥, Decryptkey()是使用 key对M0进行的对称解密,
是使用SKIP对M1进行的非对称解密;
步骤S13: 所述身份提供商进行零知识证 明初始化: 构建零知识证 明所用的特定函数并
生成所述特定函数的解ans; 根据所述特定函数生成证明密钥provingKey和验证密钥
verifyingKey;
步骤S14: 所述身份提供商使用用户公钥PKuser加密所述特定函数、 ans和provingKey后
发给所述用户; 根据verifyingKey创建包含所述特定函数的零知识证明的智能合约, 即验
证合约, 并部署到区块链上。
3.根据权利要求2所述的基于非交互零知识证明与智能合约的认证方法, 其特征在于,
所述步骤S13中构建零知识证明所用的特定函数, 具体包括:
步骤S131: 设定所述特定函数的第一输入参数为用户公钥PKuser, 第二输入参数为私有
的用户私钥SKuser;
步骤S132: 设定所述特定函数的最后一个输入参数为时间戳, 用于判断输入的所述时
间戳是否超过 预设的身份过期时间;权 利 要 求 书 1/3 页
2
CN 114938280 A
2步骤S133: 设定所述特定函数其他输入参数为私有的所述难题的解ans1、…、 ansi, 以及
公开的目标值target; 根据ans1、…、 ansi按照预定的计 算规则进行计 算, 如果计 算结果等于
target, 返回t rue, 否则返回 false。
4.根据权利要求3所述的基于非交互零知识证明与智能合约的认证方法, 其特征在于,
所述步骤S2: 用户接收所述特定函数、 ans和provingKey, 使用ans生成证据witness, 使用
witness以及p rovingKey计算得到证明proof, 并将p roof发给服务提供商申请认证; 所述服
务提供商获取所述用户在区块链上的所述验证合约, 利用pr oof对所述验证合约进 行验证,
根据认证判定策略判断所述用户是否认证成功, 具体包括:
步骤S21: 所述用户使用SKuser解密获得所述特定函数、 函数的解ans以及所述证明密钥
provingKey; 并使用ans、 所述用户公钥P Kuser、 所述用户私钥S Kuser、 target以及此时的时间
戳生成witness;
步骤S22: 所述用户使用w itness以及provingKey计算得到证明pro of;
步骤S23: 所述用户发送所述证明pro of至服务提供商申请认证, 请求 服务;
步骤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获取该用户的所述验证合约
地址, 如果该地址与用户地址不 一致, 则认证失败, 否则转至步骤S25 3;
步骤S253: 解析proof内容获得所述时间戳, 判定所述时间戳是否与当前 时间戳的误差
小于预定阈值, 若是, 则认证成功, 否则认证失败。
6.一种基于非交 互零知识证明与智能合约的认证系统, 其特 征在于, 包括下述模块:
用户身份证明分发模块, 用户将加密信息M发给身份提供商, 所述身份提供商对M进行
解密以确认所述用户的身份; 所述身份提供商构建特定函数并生 成所述特定函数的解ans,
根据所述特定函数生 成证明密钥provingKey和验证密钥verifyingKey; 所述身份提供商将
所述特定函数、 ans和provingKey发给所述用户; 所述身份提供商利用v erifyingKey创建验
证合约并部署到区块链;
用户认证模块, 用户接收所述特定函数、 ans和 provingKey, 使用ans生成证据witness,
使用witness以及p rovingKey计算得到证明proof, 并将p roof发给服务提供商申请认证; 所权 利 要 求 书 2/3 页
3
CN 114938280 A
3
专利 一种基于非交互零知识证明与智能合约的认证方法及系统
文档预览
中文文档
13 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 08:15:47上传分享