基于点函数混淆器的信息隐藏签名验证方法与流程

文档序号:15454996发布日期:2018-09-15 00:52阅读:405来源:国知局

本发明属于信息技术领域,更进一步涉及一种信息安全技术领域中的一种基于点函数混淆器的信息隐藏签名验证方法。本发明可用于需要隐藏被签名消息或可能受到量子计算攻击的特殊签名场景中,保证被签名消息的完整性和不可伪造性,也可应用在需要签名隐藏所有关于被签名消息的局部信息的签名场景中,提高签名的安全性。



背景技术:

如今数字签名的应用非常广泛,例如电子现金交易的确认和授权。在互不信任的网络双方之间通信,为了保证信息的不可伪造性和不可抵赖性,通常对消息进行签名后发送,这可有效防止事后出现否认争端。常用的数字签名方案如rsa签名、elgamal签名和schnorr签名都公开了被签名消息,这在需要隐藏被签名消息的场合下无法使用。为了解决这个问题,盲签名方案便应运而生,盲签名中的签名者可以在对被签名消息一无所知的情况下进行签名,做到了被签名消息的保密性。虽然盲签名可以做到不公开被签名消息,但是却无法保证签名不会泄露任何有关被签名消息的局部信息。

同济大学在其申请的专利文件“一种可混淆的加密密钥隔离数字签名方法及系统”(申请号201610227862.7,申请日期2016.04.13,公开日期2016.07.13)中提出了一种可混淆的加密密钥隔离数字签名方法及系统。该方法的主要步骤是:可混淆的加密密钥隔离数字签名方法包括:终端获得初始私有密钥并保存在一个安全装置中,安全装置的数据不能被终端更改;安全装置根据初始私有密钥、初始私有密钥对应的公开密钥信息以及私有密钥更新算法定期更新终端的当前时间段值对应的当前私有密钥;针对根据公开密钥信息、当前私有密钥以及数字签名算法对明文信息进行数字签名,并对数字签名得到的签名信息采用加密密钥进行群同态加密得到一个加密数字签名的全过程;以及对加密签名过程进行混淆变换的混淆器。相比于盲签名,该方法运用了混淆技术来混淆密钥,保证密钥不会被攻击者窃取。该方法仍然存在的不足之处是:该方法仅使用混淆技术来保护和更新密钥,却无法隐藏被签名消息,导致被签名消息容易受到攻击。

四川九洲电器集团有限责任公司在其申请的专利文件“一种签名方法和发送设备”(申请号201611178053.8,申请日期2016.12.19,公开日期2017.05.31)中提出了一种仅能隐藏被签名消息的签名方法。该方法的主要步骤是:首先,获得原始数字信息以及与所述原始数字信息对应的一第一数字信息;基于哈希函数对所述第一数字信息进行运算,获得一信息摘要;用所述发送设备对应的发送方的私钥对所述信息摘要进行加密获得所述发送方的第一数字签名信息;基于点函数混淆器对原始数字信息及所述第一数字信息进行混淆,获得与所述第一数字签名信息功能相同的第二数字签名信息,所述第二数字签名信息是所述原始数字信息处于隐藏状态时的数字签名信息。相比于盲签名,该方法运用了混淆技术处理被签名消息,使得被签名消息的保密性进一步增强。但是,该方法仍然存在的不足之处是:该方法仅利用混淆技术来保密被签名消息,却无法保证签名不会泄露任何有关被签名消息的局部信息,导致消息的签名容易受到攻击。



技术实现要素:

本发明的目的在于针对上述现有技术签名过程中无法隐藏被签名消息和无法保证签名不会泄露任何有关被签名消息的局部信息的问题,提供一个基于点函数混淆器的信息隐藏签名验证方法。

实现本发明目的的思路是:签名者在签名前先利用混淆函数对拟签名的消息进行混淆处理,得到混淆后的消息,再利用签名公式对混淆后的消息进行签名并发送给接收者。接收者收到签名后,先验证信息隐藏签名是否满足匹配条件,再验证混淆后的消息是否满足匹配条件,综合两步验证的结果来决定签名是否有效。因此,本方法既隐藏了被签名消息,又保证了签名不会泄露任何有关被签名消息的局部信息,提高了签名的安全性。

本发明的具体实现步骤包括如下:

采用混淆技术处理被信息隐藏签名前的消息,采用两步验证方式验证信息隐藏签名,该方法的具体步骤包括如下:

(1)生成密码系统公共参数:

(1a)参数生成中心选取安全参数k和大素数p,其中,k≥210,p≥2k

(1b)参数生成中心构建一个剩余类群和一个剩余类群中阶为q的子群,其中,q<p-1;

(1c)参数生成中心从子群中选取一个随机数;

(1d)参数生成中心任意选取一个哈希函数;

(2)参数生成中心利用密码系统公共参数,分别构建混淆函数和验证函数;

(3)信息隐藏签名者,利用下述的混淆函数,对拟信息隐藏签名的消息进行混淆处理:

c=rh(w)modp

其中,c表示混淆后的消息,r表示参数生成中心选取的随机数,h(w)表示参数生成中心选取的以拟信息隐藏签名的消息w为输入的哈希函数,mod表示取模操作,p表示参数生成中心选取的大素数;

(4)生成信息隐藏签名密钥对:

(4a)密钥生成中心根据安全参数k依次选取两个大素数t1和t2,其中,t1≥2k,t2≥2k,将t1和t2的相乘的结果作为第一个验证公钥;

(4b)利用公钥计算公式,密钥生成中心生成第二个验证公钥;

(4c)利用私钥计算公式,密钥生成中心生成信息隐藏签名私钥;

(4d)密钥生成中心对签名者和接收者公开验证公钥,并将信息隐藏签名私钥安全地发送给签名者;

(5)签名混淆后的消息并发送给接收者:

签名者利用信息隐藏签名公式,对混淆后的消息进行信息隐藏签名,并将信息隐藏签名的结果发送给接收者;

(6)接收者验证信息隐藏签名是否满足匹配条件,若是,则执行步骤(7),否则,执行步骤(9);

(7)接收者验证混淆后的消息是否满足匹配条件,若是,则执行步骤(8),否则,执行步骤(9);

(8)接收者确认信息隐藏签名有效后执行步骤(10);

(9)接收者确认信息隐藏签名无效后执行步骤(10);

(10)结束签名。

本发明与现有技术相比具有如下优点:

第一,由于本发明中签名者在签名前对拟信息隐藏签名的消息进行了混淆处理,再利用信息隐藏签名公式,对混淆后的消息进行信息隐藏签名,克服了现有技术中仅使用混淆技术来保护和更新密钥,却无法隐藏被签名消息,导致被签名消息容易受到攻击的问题,进而使得本发明可以做到隐藏被签名消息。

第二,由于本发明中接收者先验证信息隐藏签名是否满足匹配条件,再验证混淆后的消息是否满足匹配条件,克服了现有技术中仅利用混淆技术来保密被签名消息,却无法保证签名不会泄露任何有关被签名消息的局部信息,导致消息的签名容易受到攻击的问题,进而使得本发明可以保证签名不会泄露任何有关被签名消息的局部信息。

附图说明

附图1为本发明的流程图。

具体实施方式

下面结合附图1对本发明做进一步的描述。

步骤1,生成密码系统参数。

参数生成中心选取安全参数k和大素数p,其中,k≥210,p≥2k

参数生成中心构建一个剩余类群和一个剩余类群中阶为q的子群,其中,q<p-1。

参数生成中心从子群中选取一个随机数。

参数生成中心任意选取一个哈希函数。

步骤2,参数生成中心利用密码系统公共参数,分别构建混淆函数和验证函数。

步骤3,信息隐藏签名者,利用下述的混淆函数,对拟信息隐藏签名的消息进行混淆处理:

c=rh(w)modp

其中,c表示混淆后的消息,r表示参数生成中心选取的随机数,h(w)表示参数生成中心选取的以拟信息隐藏签名的消息w为输入的哈希函数,mod表示取模操作,p表示参数生成中心选取的大素数。

步骤4,生成信息隐藏签名密钥对。

密钥生成中心根据安全参数k依次选取两个大素数t1和t2,其中,t1≥2k

t2≥2k,将t1和t2的相乘的结果作为第一个验证公钥。

利用公钥计算公式,密钥生成中心生成第二个验证公钥。

所述的公钥计算公式如下:

gcd(e,(t1-1)*(t1-1))=1

其中,gcd(·)表示求最大公因数操作,e表示生成的第二个验证公钥,t1表示密钥生成中心选取的第一个大素数,*表示相乘操作,t2表示密钥生成中心选取的第二个大素数。

利用私钥计算公式,密钥生成中心生成信息隐藏签名私钥。

所述的私钥计算公式如下:

e*d≡1mod((t1-1)*(t2-1))

其中,d表示生成的信息隐藏签名私钥,≡表示等价于,mod表示取模操作。

密钥生成中心对签名者和接收者公开验证公钥,并将信息隐藏签名私钥安全地发送给签名者。

步骤5,签名混淆后的消息并发送给接收者。

签名者利用信息隐藏签名公式,对混淆后的消息进行信息隐藏签名,并将信息隐藏签名的结果发送给接收者。

所述的信息隐藏签名公式如下:

s=cdmodn

其中,s表示混淆后消息的信息隐藏签名,c表示混淆后的消息,n表示第一个验证公钥。

步骤6,接收者验证信息隐藏签名是否满足匹配条件,若是,则执行步骤7,否则,执行步骤9。

所述的匹配条件如下:

c=semodn

其中,e表示生成的第二个验证公钥。

步骤7,接收者验证混淆后的消息是否满足匹配条件,若是,则执行步骤8,否则,执行步骤9。

所述的匹配条件如下:

rh(w)≡cmodp

其中,r表示参数生成中心选取的随机数,h(w)表示参数生成中心选取的以拟信息隐藏签名的消息w为输入的哈希函数,p表示参数生成中心选取的大素数。

步骤8,接收者确认信息隐藏签名有效后执行步骤10。

步骤9,接收者确认信息隐藏签名无效后执行步骤10。

步骤10,结束签名。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1