电子签名系统的制作方法_4

文档序号:9602807阅读:来源:国知局
实施例中,存 在多个散列,例如至少4个、至少8个等。在一个实施例中,散列的第四集合222包括至少 m(a+l)个不同的散列。该散列的数量将归约整数的第二私有集合114和双变量多项式的 第一私有集合116中的信息量链接到签名中的信息量。
[0095] 签名生成器230被配置为:针对第四集合中的每一个特定散列(hk),计算单变量 签名多项式的第五集合232 (SMiK ())。与特定散列(hk)相对应的单变量签名多项式是通 过以下方式根据特定散列和第一私有集合和第二私有集合114、116计算的:针对第一私有 集合的每一个特定多项式,将特定散列(hk)代入所述特定多项式(f^hk,))并以与所述特定 多项式(qj)相关联的归约整数取模来进行归约来获得单变量多项式的另一集合,并对单变 量多项式的另一集合求和。可以以N取模来对签名多项式的系数进行归约。尽管这不是必 需的,这是优选的,因为这使签名更小。
[0096] 根据散列222计算签名多项式232和归约整数的第二私有集合114和双变量多项 式的第一私有集合116使用与公钥生成器120用于根据承诺整数的第三公有集合122生成 单变量公有多项式集合124以及归约整数的第二私有集合114和双变量多项式的第一私有 集合116相同的进程,例如如图lb中所示。如果密钥生成设备100和签名生成设备200是 相同的设备,则公钥生成器120和签名生成器230可以共享该机制。针对公钥生成器120 描述的相同变体还应用于签名生成器230。
[0097] 所生成的数字签名包括签名密钥生成器针对散列的第四集合(hj生成的签名多 项式的第五集合232 (SM,K())。
[0098] 在数字签名系统中,难以从公有多项式中恢复私钥。公钥与私钥链接,即使给定公 钥,仍难以恢复私钥。签名证明其可能仅由可以访问私钥的设备生成。
[0099] 此外,即使给定许多签名和公钥,仍难以恢复私钥。在该系统中,通过验证公有多 项式和签名多项式相互匹配来完成签名验证。公钥分量和签名分量两者均包括将它们链接 到形成根密钥材料的双变量多项式的唯一集合的足够信息。基于这种原因,优选地选择承 诺整数和签名多项式的数量不太小。
[0100] 签名验证设备300被配置为验证由电子签名生成设备生成的数字签名SM()。签名 验证设备能够访问至少一个承诺整数Pi和由电子密钥生成设备生成的至少一个对应单变 量公有多项式KMPl (y)。签名验证设备300还可以访问包括至少一个单变量签名多项式232 (SMiK())的数字签名并可以访问数字数据310。优选地,签名验证设备300可以访问多个承 诺整数Pi和对应单变量公有多项式KMPl(y)和多个单变量签名多项式232 (SMiK())。数字 数据310应当与数字数据210相同,验证签名证明签名生成设备200用于生成签名的数字 数据210与现在可用于签名验证设备300的数字数据310相同。
[0101] 签名验证设备300包括:散列化设备320,被配置为通过将散列函数应用于数字数 据(hk=hk(M)),确定与签名多项式相对应的散列。如果数字数据310和数字数据210相等, 则散列化设备320将提供与散列的第四集合222相等的验证散列的集合322。应当注意,不 需要使散列的第四集合222从签名生成设备200到签名验证设备300可用。
[0102] 签名验证设备300可以对签名执行两种类型的检查。首先,签名验证设备300可用 检查所接收的签名对应于数字数据210并对应于公钥信息:承诺整数的第三公有集合122、 单变量公有多项式集合124。第二,签名验证设备300可用检查单变量签名多项式的第五集 合232的内部一致性,该多项式集合是否对应于可能由恰当的签名生成设备200生成的多 项式。第一检查由第一签名验证器330执行。第二测试由一致性验证器340执行。推荐签 名验证设备300包括一致性验证器340,但仅利用签名验证器330的情况下签名验证才是可 能的。
[0103] 签名验证器330被配置为验证至少一个单变量签名多项式232 (SM,k〇 )和至少一 个单变量公有多项式124之间的匹配。
[0104]给定特定的单变量签名多项式(SMik(y))和特定单变量公有多项式KMPl (y),执行以 下计算: 将由散列化设备320计算的与特定签名多项式(SMik())相对应的散列hk代入特定公有 多项式中,并以公有全局归约整数112取模来进行归约,因此获得第一代入结果:KMPl(hk)。
[0105] 将与特定公有多项式KMPl(y)相对应的承诺整数Pi代入特定签名多项式SMik(y) 中,并以公有全局归约整数112取模来进行归约,获得第二代入结果。
[0106] 验证第一代入结果KMPl (hk)与第二代入结果SM,k的)相匹配。
[0107] 如果双变量多项式的第一私有集合116仅包含单个双变量多项式,则在有效签名 的情况下,第一代入结果与第二代入结果相等。在这种情况下,可以通过测试相等性来验证 匹配。然而,如果双变量多项式的第一私有集合116包括多个双变量多项式,则这两个结果 不一定相等。在这种情况下,验证匹配应当允许第一代入结果与第二代入结果之间的一些 不同。
[0108] 例如,人们可以验证存在公有全局归约整数的倍数,使得至少在预定数量的最低 有效位(例如b比特)中,该倍数与第一代入结果相加等于第二代入结果。在公式中,人们可 以测试,其中|j|小于预定边界。后者边界取决于归约整数的准确选择以及 如何使用求和的结果,例如完整或部分,归约还是非归约。特别有益实现应用于对公有全局 归约整数进行模归约和移除一个或更多个系数中的部分两者。
[0109] 应当注意,相加在不同归约整数上归约的多项式引入非线性。
[0110] 签名验证器330可以对单变量签名多项式SM,k(y)和单变量公有多项式KMPl(y)的 所有组合执行以上测试。如果资源低且安全要求低,则签名验证器330可以对组合的选择 (例如随机样本)来验证这种测试。如果签名验证器330找到匹配失败的对,则表明单变量 签名多项式的第五集合232不是由正确的私钥产生的、或在签名之后消息数字数据210改 变(或两者)。
[0111] 一致性验证器340被配置为验证至少两个单变量签名多项式229 (SMij(y)和 SM,k(y))之间的一致性。和签名验证器330 -样,对多项式对(在这种情况下是单变量签名 多项式对)执行测试。
[0112] 对于特定第一单变量签名多项式和(不同的)第二单变量签名多项式,一致性验证 器340执行以下测试: 将与第一特定签名多项式SMij(y)相对应的散列值hj代入第二特定签名多项式SMik (y) 中,获得第一代入结果Ajh,)。
[0113] 将与第二特定签名多项式SMik(y)相对应的散列值匕代入第一特定签名多项式 SMi](y)中,获得第二代入结果随后,验证第一代入结果和第二代入结果,如下文 所解释。
[0114] 这里,第一代入结果和第二代入结果还被称为第--致性结果和第二一致性结 果。
[0115] -致性验证器340可以对两个单变量签名多项式SMik(y)的所有组合执行以上测 试。如果资源低且安全性要求低,则一致性验证器340可以对组合的选择(例如随机样本) 验证这种测试。如果签名验证器340找到匹配失败的对,则表明单变量签名多项式的第五 集合232不是在签名生成设备200的进程之后根据有效私钥产生的。
[0116] 对签名验证器330可以与对一致性验证器340相同的方式完成验证第一代入结果 和第二代入结果之间的匹配。签名验证设备300可以包括匹配单元(未分离地示出),匹配 单元可以由签名验证器330和一致性验证器340使用。
[0117] 匹配单元被配置为通过验证乘数的存在使得第一代入结果的预定数量的最低有 效位(b)加上乘数乘以公有全局归约整数(jN)等于第二代入结果的预定数量的最低有效 位(b),来验证匹配。同样地,匹配单元可以被配置为通过验证乘数(j)的存在使得第二代 入结果的预定数量的最低有效位(b)加上乘数乘以公有全局归约整数(jN)等于第一代入 结果的预定数量的最低有效位(b),来验证匹配。两种选项给出相同的结果。
[0118] 给定虑鮮形式的归约整数并将第一代入结果和第二代入结果称为&和K2,我 们有在匹配的情况下,
,其中:謂纖可以针对所有j值来验证该 公式,以建立或拒绝匹配。如果不同地选择归约整数,则需要扩展j的边界。
[0119] 一致性验证器340可以体现为签名验证器330的部分。
[0120] 可以进行密钥生成设备100、签名生成设备200和签名验证设备300的各种组合。 例如,密钥生成设备100和签名生成设备200可以集成到单个设备中。人们甚至可以将密 钥生成设备100、签名生成设备200和签名验证设备300组合到单个设备中,即使针对相同 密钥。这对于保护例如备份系统是有用的,在备份系统中,在存储之前对备份进行签名,并 然后利用检索来验证。
[0121] 在一个实施例中,将散列的数量称为r,将承诺整数的数量称为s,r和s的边界由 rs+S(S-l)/2多m(a+1)(a+2)/2给定。该数量将在验证期间所获得的信息量与在根密钥 材料中的信息量相关。该边界一般比以上给出的边界弱,稍弱但获得更小的签名。
[0122] -般地,设备100、200和300中的每一个包括微处理器(未不出),微处理器执行在 设备100、200和300处存储的合适的软件;例如,该软件可能已经下载和/或存储到相应的 存储器中,例如非易失性存储器(例如RAM)或非易失性存储器(例如闪存(未示出))。备选 地,设备100、200和300可以全部或部分地在可编程逻辑(例如现场可编程门阵列(FPGA)) 中实现。
[0123] 在一个实施例中,使用具有实现优点的特殊情况。双变量多项式均是
形式的单项式。在这种情况下,根密钥材料由m个整数构成,每一个整数具 有大小m(a+2)b,使得根密钥材料包括m(a+2)b个比特。使用类似的论证,我们可以如下
通过以这种方 式来设置参数,公有分量和私有分量的集合在秘密根密钥材料中识别给定r、s和检查点的 值。换言之,仅拥有根密钥材料的人才可以生成私有分量,使得通过所有检查。
[0124] 我们注释,签名的每一个分量现在是单项式。方案的安全性因此取决于以下事实: 所公开的功能(公有分量和私有分量)以非常独特的方式确定根密钥材料,但难以从它们中 恢复根密钥材料。如果人们不具有根密钥材料的函数,他将不能通过所有检查。设置m=2 是为了减少检查的数量和公钥和私钥的长度的良好选择。使m=l更不安全,因为于是不存 在模运算的混合。为了复杂度的原因,可以使用低α值,但这不是由于安全性的原因。对 于安全性,大α是优选的。例如,α必需大,以避免格状攻击。对于较小b,格状攻击工作 得不太好,因此对于小b,α可以更小。
[0125] 然而,保持m和α太小可能允许不同类型的攻击。攻击者可能设法创建他自己的 模集合和密钥材料多项式,其尽管不同,但是通常足以产生针对正确参数的通过测试 的签名。如果r小,则似乎这种攻击更有可能。
[0126] 在以上实施例中,公有多项式和签名多项式是通过对特定集合的单变量多项式求 和所获得的。在这种情况下,将对应次数的单项式中的系数加在一起。然而,在对公有全局 归约整数(N)进行求和和模归约之后,可能忽略系数的部分。这显著地归约了公有多项式 和签名多项式的大小。这种选项可以用于公有多项式、签名多项式或两者,后一种选项给出 大小上的
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1