法律状态公告日
法律状态信息
法律状态
2020-06-26
授权
授权
2017-12-01
实质审查的生效 IPC(主分类):H04L9/08 申请日:20170706
实质审查的生效
2017-11-07
公开
公开
技术领域
本发明涉及信息安全技术领域,具体为提出了一种格上基于身份的部分盲签名方法。
背景技术
目前,基于格的公钥密码体制是量子计算机不能攻破的少数经典公钥密码体制之一,且基于格的公钥密码体制还有其他优良特性,如平均情况与最差情况一样安全以及简单高效等,因而基于格的密码体制可以成为在量子时代保证信息安全的重要工具。
盲签名(BS,blind signature)是签名者和请求者之间的一个交互协议,能够让签名者在不知道待签消息的具体内容的情况下对消息进行签名,当盲签名公布后签名者也无法将签名过程与最终公布的签名联系起来。由于盲签名能够有效地保护签名请求者的隐私,因此盲签名在匿名投票选举系统、匿名电子现金系统等领域有着广泛的应用。但是在电子现金系统中,盲签名有比较严重的缺陷,例如,银行的数据库必须保存每个使用过的电子货币以防止货币被重复使用,这一点使得盲签名的签名数量成几何级数增加。另外,由于盲签名的匿名性容易造成恶意的请求者非法使用,使得一些违法行为如偷税漏税、黑市交易洗钱等难以监管。
为了解决盲签名的这些问题,1996年Abe和Fujisaki提出了部分盲签名(PBS,partially blind signature)的概念,部分盲签名是盲签名的一种扩展,允许为用户产生关于某个消息m的盲签名,但是签名中需嵌入一个由用户和签名者协商的声明信息c,c在整个签名过程中都是可见的。尤其在电子现金系统中,部分盲签名既可以保护签名请求者的隐私又能使得签名者对签名内容的部分可控性,很好地解决了盲签名在实际应用中的问题,并且部分盲签名在应用中比盲签名的效率更高,但目前还没有一个可证明安全的格上基于身份的部分盲签名方案。
发明内容
针对上述问题,本发明的目的是提供一种可证明安全的格上基于身份的部分盲签名方法,该方法建立的部分盲签名方案直接使用用户身份作为公钥,在选择消息和选择身份攻击下满足安全性,并且可抵抗量子计算机的攻击。
为实现上述目的,本发明采取以下技术方案,方案主要包括私钥生成中心PKG(private key generator),消息拥有者C,消息签名者S,消息验证者V,具体实施步骤为:
Setup:私有密钥生成器PKG以安全参数λ作为输入,使用陷门生成算法TrapGen(1λ)生成系统主密钥S0和相应的系统参数Param。公布系统参数Param,主密钥S0保密。
KeyGen:PKG输入自己的私钥S0,收到的签名者的身份信息ID,系统公共参数Param,使用矩阵采样算法SampleMat输出签名者身份ID对应的私钥SID。
Issue:msg为待签名消息,info为签名者S和消息拥有者C共同协商的声明信息。S和C之间的签名交互如下:
(1)Sign(PartⅠ):S在分布
(2)Blind:C在收到S发来的(c1,c2)之后,对待签消息msg进行盲化。C计算盲化后的消息ε*,发送给S。
(3)Sign(PartⅡ):S收到ε*之后,使用自己的私钥SID,和拒绝采样定理计算盲化后的消息的签名,S输出盲化后消息ε*的签名
(4)Unblind:C在收到S发来的消息签名之后,做去盲计算,输出消息(msg,info)的签名(z1,z2,ε1,ε2)。
Verify:验证者V收到消息和签名之后,使用公共参数Param和S的公钥,都可以通过一定的计算来验证,消息(msg,info)和签名(z1,z2,ε1,ε2)的正确性。
本发明具有以下优点和积极效果:
(1)安全性高
本发明是一种安全性很高的部分盲签名方法。其安全性可规约到格上的小整数解(SIS)困难问题,能够抵抗量子计算机的攻击,并且能够在选择消息攻击和选择身份攻击下满足不可伪造性。
(2)运算效率高
本方法使用矩阵采样算法计算用户身份信息对应的私钥,可以保证私钥的维度不变,在计算签名时能够有效的提高运算效率。本方法在计算签名时采用无陷门的签名算法,仅使用简单地线性运算(模乘,模加),与其他有陷门的签名方案相比明显运算效率有所提高。
附图说明
图1是一种格上基于身份的部分盲签名方法的流程图。
具体实施方式
以下结合实施例和附图对本发明作进一步描述。
本发明分为四个阶段:Setup(建立)阶段、KeyGen(密钥建立)阶段、Issue(发布)阶段、Verify(验证)阶段。方法中的包括3个密码学哈希函数:Hmsg:{0,1}*→{-1,0,1}k,
Setup:私有密钥生成器PKG(private key generator),以安全参数λ作为输入,使用陷门生成算法TrapGen(1λ)生成矩阵
KeyGen:PKG使用自己的私钥S0,和收到的身份信息ID,还有系统公共参数Param={n,m,A,q,s,k,HID,Hmsg,Hinfo},其中s为采样标准差,使用矩阵采样算法SampleMat(A,S0,s,HID(ID))输出用户ID对应的私钥
Issue:msg为待签名消息,info为签名者S和消息拥有者C共同协商的声明信息。S和C之间的签名交互如下:
(1)Sign(PartⅠ):S在分布
c1=Aymodq
把(c1,c2)发送给C。
(2)Blind:C在收到S发来的(c1,c2)之后,对待签消息msg进行盲化。C在分布
c′1=c1+Aα1-HID(ID)β1modq
c′2=c2+Aα2-Hinfo(info)β2modq
ε=Hmsg(c′1,c′2,Hinfo(info),msg)
ε*=(ε-β1-β2)mod3
最后把ε*发送给S。
(3)Sign(PartⅡ):S收到ε*之后做如下计算:
S把
(4)Unblind:C在收到S发来的消息之后做如下计算:
并且验证:
Verify:验证者V收到消息和签名之后,使用公共参数Param和S的公钥HID(ID),进行如下验证:
(ε1+ε2)mod3=Hmsg(Az1-HID(ID)ε1,Az2-Hinfo(info)ε2,Hinfo(info),msg)
如果成立则接受,不成立则拒绝。
本发明提出一种格上基于身份的部分盲签名方法,所提方法的优点在于:在安全性上,本方法的安全性基于格上SIS困难问题的难解性,可以抵抗量子计算机的攻击;效率方面,该方法采用矩阵采样算法计算用户身份信息对应的私钥,在计算签名时采用无陷门的签名算法,仅使用简单地线性运算(模乘,模加),因而生成的用户私钥更短,签名速度更快。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的人员都可以理解其原理,在不脱离本发明的原理的情况下可以对实施例进行多种变化、修改或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
机译: 基于Web的身份验证和支付设备,用于基于Web的身份验证和支付方法,用于基于Web和非暂时性计算机可读存储介质的身份验证和支付,其中记录其上的计算机程序
机译: 用于验证个人身份的设备,系统和方法,其上记录有个人身份验证程序的计算机可读介质,注册个人身份验证信息的方法,验证个人身份验证信息的方法以及其上记录有个人身份验证信息的记录介质
机译: 用于验证个人身份的设备,系统和方法,其上记录有个人身份验证程序的计算机可读介质,注册个人身份验证信息的方法,验证个人身份验证信息的方法以及其上记录有个人身份验证信息的记录介质