[发明专利]一种基于格的数字签名方法有效

专利信息
申请号: 201910716445.2 申请日: 2019-08-05
公开(公告)号: CN110351097B 公开(公告)日: 2020-08-14
发明(设计)人: 潘彦斌;刘珍;李昊宇;谢天元;朱熠铭;杨照民 申请(专利权)人: 中国科学院数学与系统科学研究院
主分类号: H04L9/32 分类号: H04L9/32
代理公司: 北京君尚知识产权代理有限公司 11200 代理人: 司立彬
地址: 100190 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 数字签名 方法
【说明书】:

发明公开了一种基于格的数字签名方法,其步骤包括:1)选取环Rq中两个小系数多项式f和g,且f在Rq中可逆;计算h=(g+α)·f‑1,将h作为公钥公开,将(f,g)作为私钥;2)签名者生成3)计算w=h·r;若w中的一分量wi,使得wi==q‑1‑α/2成立,则返回2);4)计算和a=v0‑(Qα(w)mod2);5)计算u=r+a·f;若||a·f||>γ、或者||a·g||>γ、或者或者则返回2)重新生成签名;否则输出签名u。本发明设计简洁,易于实现,效率高。

技术领域

本发明属于信息安全技术领域,具体涉及一种基于格的高效数字签名方法。

背景技术

数字签名是公钥密码体制的基础原件之一,被广泛应用于身份认证,数据完整性检测,防抵赖等场景,在公钥密码学中占据着十分重要的地位。然而由于整数分解和离散对数问题被证明在量子计算机下可以有效求解,因此基于上述困难问题的传统数字签名体制在量子计算机下是不安全的,构造能够地抗量子攻击的数字签名体制已经成为密码学界和工业界的迫切需求。

基于格的数字签名体制被广泛认为能够抵抗量子计算机的攻击,因此备受关注,而NTRU签名体制是其中一类高效的签名方案,其所基于的数学问题一般是NTRU格上的最短向量问题。NTRU格是NTRU签名体制中最为核心的部件之一。在美国国家标准与技术研究院征集后量子密码标准算法的首轮候选方案中,基于NTRU的签名体制主要有pqNTRUsign和Falcon。

发明内容

与之前的NTRU签名方案将安全性基于NTRU格上的最短向量问题不同,本发明提供一种基于NTRU格上最近向量问题的高效数字签名方法,在保证高效的同时,参数选取更为灵活。

本发明涉及剩余类环Zm,当正整数m为偶数时,我们选取作为Zm的代表元;当正整数m为奇数时,我们选取作为Zm的代表元。

给定n次整系数多项式F(x)和正整数q,记环Rq=Zq[x]/(F(x))。对环Rq中的任意多项式s,我们既可以将其表示为也可以将其表示为n维向量(s0,s1,…,sn-1),si∈Zq。类似地,对n维向量(s0,s1,…,sn-1)来说,我们同样可以将其看作是多项式换言之,多项式表示和向量表示是等价的。我们用“·”表示环Rq上的乘法运算,用“+”表示环Rq上的加法运算。

本发明数字签名实现方法的具体方案如下:

一种基于格的数字签名方法,包括以下步骤:

步骤1.1:选择公开参数(n,q,γ,α,β)及环Rq;选择正整数n,q,α,β,γ,其中选择n次整系数多项式F(x),并令环Rq=Zq[x]/(F(x))。

步骤1.2:密钥生成算法按如下步骤进行:

步骤1.2.1:选取多项式环Rq中两个小系数多项式f和g,且f在Rq中可逆,其逆记为f-1

步骤1.2.2:计算h=(g+α)·f-1,将h作为签名者的公钥公开,将(f,g)作为签名者的私钥。

步骤1.3:签名算法按照如下步骤进行:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院数学与系统科学研究院,未经中国科学院数学与系统科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910716445.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top