System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 利用掩蔽的基于点阵的密码数字签名方案制造技术_技高网

利用掩蔽的基于点阵的密码数字签名方案制造技术

技术编号:42758846 阅读:0 留言:0更新日期:2024-09-18 13:46
公开了一种用于根据签名秘钥和验证秘钥生成Fiat‑Shamir数字签名的计算机实现的方法,签名秘钥对应于秘密的多个秘密份额,其中每个秘密份额是从模q基环采样的,并且验证秘钥对应于从模q基环采样的公共矩阵和解数据。所述方法涉及:生成多个随机份额,每个随机份额通过从模q基环采样多个参数来生成;以及针对每个随机份额,确定随机份额与公共矩阵的乘积以生成多个修改的随机份额;以模p对修改的随机份额中的每一个进行取整,其中p≠q,以生成多个取整的随机份额,并且对多个取整的随机份额进行解码以生成承诺数据。对包括消息和承诺数据的数据应用哈希函数以生成挑战值c,并且通过将每个秘密份额乘以挑战值c并且加上相应随机份额来生成多个响应份额。对多个响应份额进行解码以生成响应数据,并且通过计算响应数据和公共矩阵的乘积与挑战值c和解数据的乘积之间的差来确定测试数据。通过对测试数据进行模p取整以生成取整的测试数据并且确定响应数据和取整的测试向量之间的差来确定提示数据,并且返回包括响应数据和提示数据的数字签名。

【技术实现步骤摘要】
【国外来华专利技术】

本专利技术涉及一种用于验证电子消息的完整性和来源的密码数字签名方案。本专利技术涉及一种利用掩蔽作为对抗侧信道攻击的对策的基于后量子点阵的密码数字签名方案。


技术介绍

1、数字签名方案使签名者能够将数字签名附加到消息,使得验证者可验证消息与签名者签名的消息相同。数字签名方案通常涉及三个操作:密钥生成、签名和验证。在密钥生成操作中,生成签名密钥sk和验证密钥vk。签名密钥sk是签名者私有的,而验证密钥vk可以是公开的并且为验证者所知。在签名操作中,签名者为消息生成数字签名。在验证操作中,验证者使用数字签名和验证密钥vk来验证消息。

2、fiat-shamir变换(或启发式变换)是经由通用变换将识别方案转变为签名方案的方法论。从这种方法论得出的签名叫做fiat-shamir签名。三遍识别方案涉及:i)证明者使承诺对验证者可用,ii)验证者向证明者发送挑战,以及iii)证明者向验证者发送对挑战的响应并且验证者处理响应以确认证明者知道私钥,而验证者不会获得对私钥的了解。对应数字签名方案涉及:签名者通过对包括承诺、验证密钥和被签名的消息的数据应用哈希函数来生成挑战,并且形成包括承诺和响应的数字签名。基于消息、数字签名和验证密钥,验证者可重新创建挑战并验证响应,从而验证消息的完整性。

3、诸如基于容错学习(lwe)和短整数解(sis)问题的那些方案的基于点阵的密码方案受到关注,因为据推测基于点阵的密码方案可抵抗可访问大规模量子计算机的攻击者的攻击。因此,基于点阵的密码方案通常被认为是后量子密码学的子集。

4、基于点阵的密码方案可容易受到侧信道攻击,其中敌对者了解关于算法的物理执行的侧信道信息。侧信道信息可来自许多来源,诸如运行时间、电磁放射、能耗和声放射。各种研究已经表明,关于基于点阵的签名算法的执行的侧信道信息可能允许敌对者恢复所使用的签名密钥sk。

5、已经提出的针对侧信道攻击的对策是掩蔽,它依赖于秘密共享和多方计算(mpc)领域的技术。给定敏感值对x进行掩蔽包括:将x表示为元组其中d是份额的数量(也称为共享次数),并且在掩蔽的上下文中,d-1通常叫做掩蔽次数,使得(i)并且(ii)t<d个相异xi的任何子集看起来是均匀随机的。当d在上下文中清楚时,元组可用符号或来表示。掩蔽的原理是,能够了解t<d个变量xi的值的攻击者将无法获得关于x的任何信息。

6、增大d的值加强针对侧信道攻击的对策,但掩蔽的挑战性方面在于,增大d的值通常导致计算复杂性随二次(或更高)开销增加。


技术实现思路

1、根据本专利技术的第一方面,提供一种用于生成fiat-shamir数字签名的签名密钥对的计算机实现的方法。所述方法包括:通过对模q基环进行采样来生成公共矩阵,并且生成秘密的多个秘密份额,每个秘密份额通过对所述模q基环进行采样来生成。针对每个秘密份额,确定所述秘密份额与所述矩阵的乘积以生成修改的秘密份额,并且以模p对所述修改的秘密份额进行取整,其中p≠q,以生成多个取整的秘密份额,对所述多个取整的秘密份额进行解码以生成解数据。然后可返回对应于所述多个秘密份额的签名秘钥和对应于所述公共矩阵和所述解数据的验证秘钥。当从模q基环对所述秘密份额进行采样不受约束时(即,均匀秘密lwe),可以使得处理复杂性随所述多个秘密份额的数量d线性缩放的方式提供签名密钥和验证密钥。如果秘密被约束为短的(即小秘密lwe),则密钥生成时间变为d的二次方。

2、根据本专利技术的第二方面,提供了一种用于根据签名秘钥和验证秘钥生成fiat-shamir数字签名的计算机实现的方法,其中所述签名秘钥对应于秘密的多个秘密份额,其中每个秘密份额是从模q基环采样的,并且所述验证秘钥对应于从所述模q基环采样的公共矩阵和解数据。所述方法包括:生成多个随机份额,每个随机份额通过从所述模q基环采样多个参数来生成;以及针对每个随机份额,确定所述随机份额与所述公共矩阵的乘积以生成多个修改的随机份额。以模p对每个修改的随机份额进行取整,其中p≠q,以生成多个取整的随机份额,然后对所述多个取整的随机份额进行解码以生成承诺数据。然后对包括所述消息和所述承诺数据的数据应用哈希函数以生成挑战值c,并且通过针对每个秘密份额将所述相应秘密份额乘以所述挑战值c并且加上相应随机份额来生成多个响应份额,并且对所述多个响应份额进行解码以生成响应数据。计算所述响应数据和所述公共矩阵的乘积与所述挑战值c和所述解数据的乘积之间的差以提供测试数据,并且通过对所述测试数据进行模p取整以生成取整的测试数据并且确定所述响应数据与所述取整的测试向量之间的差来确定提示数据。然后可返回包括所述响应数据和所述提示数据的数字签名。以此方式,可以使得处理复杂性随多个秘密份额的数量d以准线性关系缩放的方式提供数字签名,而不管随机份额的采样是不受约束还是被约束为小的。

3、根据本专利技术的第三方面,提供了一种用于使用根据签名秘钥和验证秘钥的相关联的fiat-shamir数字签名验证消息的计算机实现的方法,所述fiat-shamir数字签名包括响应数据和提示数据,其中所述签名秘钥对应于秘密的多个秘密份额,其中每个秘密份额是从模q基环采样的,并且所述验证秘钥对应于从所述模q基环采样的公共矩阵和使用所述公共矩阵和所述多个秘密份额得出的解数据。对包括所述消息和承诺数据的数据应用哈希函数以生成挑战值c。计算所述响应数据和所述公共矩阵的乘积与所述挑战值c和所述解数据的乘积之间的差以提供测试数据,并且以模p对所述测试数据进行取整以提供取整的测试数据。然后验证所述取整的测试数据和所述提示数据之和对应于所述承诺数据。

4、根据下面参考附图仅以举例的方式给出的对本专利技术的优选实施方案的描述,本专利技术的另外的特征和优点将变得显而易见。

本文档来自技高网...

【技术保护点】

1.一种用于根据签名秘钥和验证秘钥生成Fiat-Shamir数字签名的计算机实现的方法,所述签名秘钥对应于秘密的多个秘密份额,其中,每个秘密份额是从模q基环采样的,并且所述验证秘钥对应于从所述模q基环采样的公共矩阵和解数据,所述方法包括:

2.如权利要求1所述的计算机实现的方法,其中,随机采样是均匀的。

3.如权利要求1或权利要求2所述的计算机实现的方法,其中,以模p对所述修改的随机份额中的每一个进行取整包括:将所述修改的随机份额的系数值除以p并且取整到最接近的整数值。

4.如任一前述权利要求所述的计算机实现的方法,还包括:检查针对所述提示数据的一个或多个简短性约束,例如检查欧几里得范数不超过有界值和/或无穷范数不超过有界值。

5.如任一前述权利要求所述的计算机实现的方法,还包括:在以模p对所述修改的随机份额中的每一个进行取整之前切换多个所述修改的随机份额的次数。

6.如任一前述权利要求所述的计算机实现的方法,还包括:刷新以下中的至少一者:i)所述多个随机份额,ii)多个所述修改的随机份额,iii)所述多个取整的随机份额,以及iv)所述多个响应份额。

7.如任一前述权利要求所述的计算机实现的方法,其中,验证密钥包括使得能够生成所述公共矩阵的种子值,和/或其中,所述解数据、所述随机份额和所述测试数据包括向量,和/或其中,所述数字签名包括所述承诺数据。

8.一种用于生成Fiat-Shamir数字签名的签名密钥对的计算机实现的方法,所述方法包括:

9.如权利要求8所述的计算机实现的方法,其中,生成所述公共矩阵包括:对所述模q基环进行随机采样。

10.如权利要求8或权利要求19所述的计算机实现的方法,其中,所述随机采样是均匀的。

11.如权利要求8至10中任一项所述的计算机实现的方法,其中,以模p对相乘的随机份额中的每一个进行取整包括:将修改的随机份额的系数值除以p并且取整到最接近的整数值。

12.如权利要求8至11中任一项所述的计算机实现的方法,还包括:在以模p对修改的随机份额中的每一个进行取整之前切换多个所述修改的随机份额的次数。

13.一种使用相关联的Fiat-Shamir数字签名来验证消息的计算机实现的方法,所述Fiat-Shamir数字签名包括响应数据和提示数据并且根据签名秘钥和验证秘钥来生成,所述签名秘钥对应于秘密的多个秘密份额,其中,每个秘密份额是从模q基环采样的,并且所述验证秘钥对应于从所述模q基环采样的公共矩阵和使用所述公共矩阵和所述多个秘密份额得出的解数据,所述方法包括:

14.一种数据处理装置,适于执行如任一前述权利要求所述的方法。

15.一种计算机程序产品,包括指令,当程序由计算机执行时,所述指令使所述计算机执行如权利要求1至13中任一项所述的方法。

...

【技术特征摘要】
【国外来华专利技术】

1.一种用于根据签名秘钥和验证秘钥生成fiat-shamir数字签名的计算机实现的方法,所述签名秘钥对应于秘密的多个秘密份额,其中,每个秘密份额是从模q基环采样的,并且所述验证秘钥对应于从所述模q基环采样的公共矩阵和解数据,所述方法包括:

2.如权利要求1所述的计算机实现的方法,其中,随机采样是均匀的。

3.如权利要求1或权利要求2所述的计算机实现的方法,其中,以模p对所述修改的随机份额中的每一个进行取整包括:将所述修改的随机份额的系数值除以p并且取整到最接近的整数值。

4.如任一前述权利要求所述的计算机实现的方法,还包括:检查针对所述提示数据的一个或多个简短性约束,例如检查欧几里得范数不超过有界值和/或无穷范数不超过有界值。

5.如任一前述权利要求所述的计算机实现的方法,还包括:在以模p对所述修改的随机份额中的每一个进行取整之前切换多个所述修改的随机份额的次数。

6.如任一前述权利要求所述的计算机实现的方法,还包括:刷新以下中的至少一者:i)所述多个随机份额,ii)多个所述修改的随机份额,iii)所述多个取整的随机份额,以及iv)所述多个响应份额。

7.如任一前述权利要求所述的计算机实现的方法,其中,验证密钥包括使得能够生成所述公共矩阵的种子值,和/或其中,所述解数据、所述随机份额和所述测试数据包括向量,和/或其中,所述数字签名包括所述承诺数据。...

【专利技术属性】
技术研发人员:拉斐尔·德尔·皮诺托马斯·普雷斯特
申请(专利权)人:PQ盾牌有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1