摘要
本发明公开了一种基于SM9算法椭圆曲线参数的零知识证明实现方法,包括如下步骤:第一步:预处理阶段;第二步:初始化阶段;第三步:证明生成阶段;第四步:证明验证阶段,本发明基于Groth16协议,将协议中选用的通用BN254曲线替换成国密SM9的椭圆曲线,实现零知识证明Groth16协议的国密化,推进零知识证明合规使用;本发明采用国密SM9密码算法准则中椭圆曲线参数,符合国密规范,安全性好。用C++语言基于libsnark库进行工程化实现,兼容性高,由于曲线参数和工程化实现差异,此方案的最终执行效率是原方案的90%,满足实际应用需求。
技术关键词
SM9算法
多项式
曲线
双线性
阶段
零知识证明
约束系统
元素
生成密钥
生成随机
拉格朗日插值
定义结构
协议
密码算法
生成参数
数据
电路