用于利用部分验证导出局部签名的方法与流程

文档序号:30794260发布日期:2022-07-16 11:49阅读:114来源:国知局
用于利用部分验证导出局部签名的方法与流程

1.本发明涉及电信的一般领域,并且更具体地涉及使用诸如电子签名技术的加密技术的通信设备之间的交换的安全。


背景技术:

2.电子签名是允许认证任何数字数据的加密工具,因此充当传统手写签名的等效物。这种技术现在在我们的日常生活中普遍存在,无论是在浏览互联网时(因为访问https中的任何url涉及电子签名的使用),还是在使用银行卡的支付期间。它还构成了由daa(直接匿名认证)和epid(增强隐私身份)推广的匿名认证机制的真正基础。
3.在大多数情况下,它不是被认证的单个数据,而是n个数据的集合,其中n>0,例如人的姓名、出生日期、地址等。然后,现有的电子签名解决方案可以分为两个族:产生恒定大小的签名的族,以及大小取决于n的值的其他族。关于签名的大小,前者当然是优选的,但是这种恒定的成本隐藏了一个主要缺陷:签名在签名数据集合上是有效的,并且因此只能通过发送已经签名的所有数据来验证。当然可以使用称为零知识证明技术的技术来隐藏这些元素,但是这仅解决了匿名性的问题:这些非常昂贵的证明在大小上具有与隐藏元素的数量至少成线性的复杂性。
4.两种最近的方案能够具有恒定的大小,既用于签名又用于验证证明。
5.因此,由camenisch等人于2015年的亚密会(asiacrypt)的文章“可组合和模块化匿名凭证:定义和实际构造(composable and modular anonymous credentials:definitions and practical constructions)”中提出的满足该性质的第一构造是已知的。然而,通过作者自己承认,这种结构的最有效实例涉及超过一百个元素的证明,从而排除了其在实践中的使用。实际上,在这里,验证证明具有恒定的大小,但是该恒量非常高。
6.最近,fuchsbauer等人在2019年的密码学杂志中发表了“等价类上的结构保持签名和恒定大小的匿名凭证(structure-preserving signatures on equivalence classes and constant-size anonymous credentials)”,其具有带有相同性质的构造。证明签名的有效性可以比先前的方案更有效地完成,但是这里的主要问题是在不揭示经认证的数据的情况下证明经认证的数据上的任何关系是不可能的。例如,不可能在不揭示人的出生日期的情况下证明人的法定年龄,这与匿名认证的精神相反。


技术实现要素:

7.本发明的目的之一是解决现有技术的缺点/缺陷,和/或对其进行改进。
8.为此,本发明提出了一种用于导出消息集合({m_1,

,m_n})的子集(i)的局部签名的方法,所述消息集合的子集称为消息子集,所述局部签名旨在证明所述消息集合的签名对所述消息子集中的消息的有效性,所述方法由局部签名导出实体实现,所述方法包括:
[0009]-接收所述消息集合({m_1,

,m_n})和所述消息集合的签名,所述签名包括所述消息集合的签名元素((q,s)),
[0010]-导出根据所述集合中的除了所述消息子集中的消息之外的消息计算的第一验证元素(a),以及
[0011]-导出旨在证明所述第一验证元素被正确地形成的第二验证元素(b),以及向验证实体(12)发送特定于所述消息子集的局部签名,所述局部签名包括恒定数量的元素,所述恒定数量的元素至少包括所述消息集合的签名的元素、所述第一验证元素(a)和所述第二验证元素(b),所述局部签名旨在仅用所述消息子集中的消息来验证。
[0012]
该方法描述了一种恒定大小的签名系统,其组合了两个世界中的最佳世界。实际上,签名的证明可以非常有效地完成,因为证明包括恒定数量的元素,该恒定的元素具有合理的大小;它确实需要局部签名的四个元素。该系统还允许验证消息子集上的签名的有效性,而不需要知道并因此发送消息的其他部分。该方案可以有利地用于需要认证的所有用例,无论是否匿名。
[0013]
有利地,局部签名的生成包括局部签名的匿名化,所述匿名化包括:
[0014]-借助于随机标量对所述签名元素((q,s))进行匿名化,以及
[0015]-借助于所述随机标量中的一个随机标量对所述第一验证元素和所述第二验证元素进行匿名化。
[0016]
由于通过明智地添加随机元素来实现的这种匿名化,签名变得完全不可追踪。因此,签名导出实体将在相同的消息子集的两个不同认证期间呈现不同的局部签名。实际上,利用这种方法,未显露的消息集合被完全随机地掩蔽。应当认识到,签名的不可追踪性属性是重要的安全属性。
[0017]
在一个示例性实施例中,该方法包括在双线性环境中预先生成私钥和相关联的公钥,所述环境涉及素数阶p的第一组g1、第二组g2和第三组gt、以及双线性映射e,所述双线性映射e将所述第一组g1的元素的值即g和所述第二组g2的元素的值即h作为输入并且具有所述第三组gt中的值,所述生成包括:
[0018]-由所述签名实体生成(n+1)个随机标量(x,y_1,...,y_n),所述随机标量形成所述签名实体的所述私钥,以及
[0019]-由所述签名实体计算x=g^{x}、y_i=g^{y_i}(对于1≤i=j≤n)、z_{i,j}=g^{y_i.y_j}(对于1≤i≠j≤n)、以及h_i=h^{y_i}(对于1≤i≤n),元素x、y_i、z_{i,j}和h_i形成所述公钥。
[0020]
该示例性实施例描述了如何计算签名实体的私钥和公钥。
[0021]
在一个示例性实施例中,表示为m_1,...,m_n的消息集合{1,

,n}的签名包括:由所述签名实体从第二组g2中选择随机元素q,以及计算s=q^{x+y_1.m_1+...+y_n.m_n},则所述签名是(q,s)。
[0022]
该示例性实施例描述了如何计算消息集合的签名。它包括两个元素q和s。
[0023]
在一个示例性实施例中,导出所述消息集合{1,

,n}的子集i的局部签名包括:
[0024]-生成所述第一验证元素a=π_{j in{1,...,n}\i}.y_j^{m_j},以及
[0025]-生成所述第二验证元素b=π_{i in i,j in{1,...,n}\i}.z_{i,j}^{m_j},则所述局部签名是(q,s,a,b)。
[0026]
该示例性实施例精确地描述了如何计算或导出消息子集的局部签名。局部签名的计算包括两个元素a和b的计算。用于计算第一元素a的消息是不是消息子集的一部分的消
息。第二元素b使用其中一个下标i穿过与消息子集相关的集合i的消息,而另一个下标j涉及不是消息子集的一部分的消息。签名由消息集合的签名、第一元素a和第二元素b的元素形成。
[0027]
在另一示例性实施例中,所述消息集合的签名包括:
[0028]-由所述签名实体选择两个标量r和t,
[0029]-计算q

=q^r,
[0030]-计算s

=s^r.q^{r.t},
[0031]-生成所述第一验证元素a=g^t.π_{j in{1,...,n}\i}y_j^{m_j},以及
[0032]-生成所述第二验证元素b=(π_{i in i}y_i)^t.π_{i in i,j in{1,...,n}\i}z_{i,j}^{m_j},则所述局部签名是(q

,s

,a,b)。
[0033]
该另一示例描述了如何计算或导出匿名局部签名。使用随机标量,从而使局部签名完全不可追踪。
[0034]
本发明还涉及一种用于验证消息集合({m_1,

,m_n})的子集i的局部签名的方法,所述消息集合的子集称为消息子集,所述局部签名旨在证明所述消息集合的签名对所述消息子集中的消息的有效性,所述方法由局部签名验证实体实现,所述方法包括:
[0035]-接收所述消息子集和特定于所述消息子集的局部签名,所述局部签名包括恒定数量的元素,所述恒定数量的元素至少包括所述消息集合的签名元素、根据所述集合中的除了所述消息子集的消息中的消息之外的消息计算的第一验证元素、以及旨在证明第一元素被正确地形成的第二验证元素,
[0036]-验证第一等式,所述第一等式涉及所述消息子集中的消息、所述消息集合中的签名的元素以及所述第一验证元素和公钥的元素,以及
[0037]-验证第二等式,所述第二等式涉及所述第一签名验证元素、所述第二签名验证元素和所述公钥的元素。
[0038]
该局部签名验证方法适于验证消息子集上的局部签名是否有效。无论它是局部签名还是匿名局部签名,局部签名验证都是相同的。因此,无论它是局部签名还是匿名局部签名,都使用相同的验证方法。签名方案的实现方式因此被简化和优化,从而提供更好的性能。
[0039]
在双线性环境中已为签名实体生成私钥和相关联的公钥的局部签名验证方法的一个示例性实施例中,所述环境涉及素数阶p的第一组g1、第二组g2和第三组gt、以及双线性映射e,所述双线性映射e将所述第一组g1的元素的值即g和所述第二组g2的元素的值即h作为输入并且具有所述第三组gt中的值,所述生成包括:
[0040]-由所述签名实体生成(n+1)个随机标量(x,y_1,...,y_n),以及
[0041]-由所述签名实体计算x=g^{x}、y_i=g^{y_i}(对于1≤i=j≤n)、z_{i,j}=g^{y_i.y_j}(对于1≤i≠j≤n)、以及h_i=h^{y_i}(对于1≤i≤n),元素x、y_i、z_{i,j}和h_i形成所述公钥,所述局部签名的验证包括:
[0042]-验证第一等式:e(x.a._{i in i}y_i^{m_i},q)=e(g,s),以及
[0043]-验证第二等式:e(a,_{i in i}h_i)=e(b,h)。
[0044]
这里指定了局部签名验证方法的不同步骤。
[0045]
本发明还涉及一种用于导出局部签名的实体,所述局部签名旨在导出消息集合
{m_1,

,m_n}{1,

,n}的子集i的局部签名,所述消息集合的子集i称为消息子集,所述局部签名旨在证明所述消息集合的签名对所述消息子集中的消息的有效性,所述局部签名导出实体包括:
[0046]-接收部件,被布置为接收所述消息集合{m_1,

,m_n}和所述消息集合的签名(q,s),所述消息集合的所述签名包括所述消息集合的签名元素,以及
[0047]-用于导出第一元素的部件,被布置为导出根据所述集合中的除了所述消息子集中的消息之外的消息计算的第一验证元素a,以及
[0048]-第二元素导出和发送部件,被布置为导出旨在证明所述第一验证元素被正确地形成的第二验证元素b,以及向局部签名验证实体发送特定于所述消息子集的局部签名,所述局部签名包括恒定数量的元素,所述恒定数量的元素至少包括所述消息集合的签名的元素、所述第一验证元素和所述第二元素验证,所述局部签名旨在仅用所述消息子集中的消息来验证。
[0049]
本发明还涉及一种用于验证局部签名的实体,旨在验证消息集合{m_1,

,m_n}的子集i的局部签名,所述消息集合的子集称为消息子集,所述局部签名旨在证明所述消息集合的签名对所述消息子集中的消息的有效性,所述局部签名验证实体包括:
[0050]-接收部件,被布置为接收所述消息子集和特定于所述消息子集的局部签名(q,s,a,b),所述局部签名包括恒定数量的元素,所述恒定数量的元素至少包括所述消息集合的签名的元素、根据所述集合的除了所述消息子集中的消息之外的消息计算的第一验证元素a、以及旨在证明所述第一验证元素被正确地形成的第二验证元素b,
[0051]-第一验证部件,被布置为验证第一等式,所述第一等式涉及所述消息子集中的消息、所述消息集合的签名的元素以及所述第一验证元素和公钥的元素,以及
[0052]-第二验证部件,被布置为验证第二等式,所述第二等式涉及所述第一验证元素、所述第二验证元素和所述公钥的元素。
[0053]
本发明还涉及一种局部签名导出和验证系统,包括:
[0054]-如前所述的局部签名生成实体,
[0055]-如前所述的局部签名验证实体。
[0056]
本发明还涉及如前所述的局部签名导出和验证系统在匿名凭证系统中的用途。
[0057]
局部签名导出方法和局部签名验证方法特别适用于匿名凭证。实际上,不公开这些数据中的一些部分的需要在匿名凭证领域中是明显的,并且通过所提出的方案来解决。与匿名局部签名相关的示例性实施例可以直接用作匿名凭证系统,因为它另外满足最强的不可追踪属性,同时提供比现有技术的其他解决方案更好的性能。
[0058]
本发明还涉及一种在数据介质上并且在计算机的存储器中可加载的计算机程序,该算机程序包括程序代码指令,当该程序在所述计算机上运行时,该程序代码指令旨在控制如前所述的签名导出方法的步骤的执行。
[0059]
本发明还涉及一种其中记录了前述程序的数据介质。
[0060]
本发明还涉及一种在数据介质上并且在计算机的存储器中可加载的计算机程序,该计算机程序包括程序代码指令,当该程序在所述计算机上运行时,该程序代码指令旨在控制如前所述的局部签名验证方法的步骤的执行。
[0061]
本发明还涉及一种其中记录了前述程序的数据介质。
附图说明
[0062]
从详细描述和附图中将更好地理解本发明的其他特性和优点,其中:
[0063]-图1呈现了根据一个示例性实施例的签名方法的步骤;
[0064]-图2是根据一个示例性实施例的能够实现用于消息子集的局部签名导出方法的步骤的局部签名导出实体的示意图;
[0065]-图3是根据一个示例性实施例的能够实现用于消息子集的局部签名验证方法的步骤的局部签名验证实体的示意图。
具体实施方式
[0066]
现在将关于图1描述根据第一示例性实施例的部分验证签名方法的步骤。
[0067]
注意,这里使用密码学中的通常符号,其中:
[0068]
‑“
x_i”表示“x下标i”,即“x
i”;
[0069]
‑“
g^x”表示“g的x次幂”,即“g
x”,
[0070]-当涉及许多索引因子时,乘积由点“.”或由经典符号π(大写pi)示出,
[0071]-当涉及许多索引因子时,加法通常由符号“+”或由符号∑(大写西格玛(sigma))示出。
[0072]
这里描述的签名方案在双线性环境中操作,该双线性环境涉及素数阶p的通常表示为g1、g2和gt的三个组、以及称为“双线性耦合”的双线性映射e,该双线性映射e将组g1的元素和组g2的元素作为输入并且具有组gt中的值。这种类型的环境已经成为密码学中的经典,并且可以非常有效地实现。应当注意,g1和g2的作用是完全可互换的。
[0073]
签名方案基于包括若干实体的系统:
[0074]-签名实体10。签名实体10是计算机设备,其包括用于实现由签名实体实现的签名导出方法的步骤中的那些步骤的代码指令,
[0075]-局部签名导出实体11。签名导出实体11是包括代码指令的计算机设备,所述代码指令用于实现由局部签名导出实体11实现的签名导出方法的步骤中的那些步骤,
[0076]-局部签名验证实体12。局部签名验证实体12是包括代码指令的计算机设备,该代码指令用于实现由局部签名验证实体12实现的签名导出方法的步骤中的那些步骤。
[0077]
应当注意,相同的实体可以结合若干角色。例如,签名实体还可以充当局部签名导出实体。类似地,签名实体也可能需要充当局部签名验证实体。
[0078]
作为提醒,双线性耦合e是验证以下属性等的函数:
[0079]
e(g^a,h^b)=e(g,h)^(a.b)
[0080]
e(g^a,q)=e(g,q)^a
[0081]
在下文中,n是指可以同时签名的数据的最大数量。在通常的术语中,它被称为消息而不是数据。因此,表示为{m_1,

,m_n}的待签名的消息集合{1,

,n}是可用的。例如,对于个人,这样的消息可以是姓名、地址、出生日期等。
[0082]
这里描述的签名方案允许非常有效地验证任何消息子集上的签名的有效性。
[0083]
在初始密钥生成步骤e10中,签名实体10为签名方案生成一对私钥/公钥ks/kp。应当注意,在另一示例性实施例中,密钥的生成可以由与签名实体10不同的专用实体实现,然后根据这里未呈现的已知方法,以安全的方式将密钥(特别是私钥)发送到签名实体10。
[0084]
令g(相应地h)是组g1(相应地组g2)的随机元素,签名实体控制小于p的(n+1)个随机整数(x,y_1,

,y_n)的生成,并构造以下元素:
[0085]
x=g^{x},
[0086]
y_i=g^{y_i},对于1<=i<=n,
[0087]
z_{i,j}=g^{y_i.y_j},对于1<=i≠j<=n,
[0088]
h_i=h^{y_i},对于1<=i<=n
[0089]
签名系统中的签名者的私钥ks由随机整数(x,y_1,...,y_n)组成。
[0090]
公钥kp由元素x、y_i、z_{i,j}和h_i形成。
[0091]
因此:
[0092]
ks=(x,y_1,...,y_n),并且
[0093]
kp=(x,y_i,z_{i,j},h_i)
[0094]
传统上,公钥kp然后在此由签名实体10发布。
[0095]
在第二签名步骤e11中,签名实体10借助于其私钥ks对n个消息m_1、...、m_n进行签名。为此,签名实体10从组g2中选择随机元素q,并计算:
[0096]
s=q^{x+y_1.m_1+...+y_n.m_n}
[0097]
则n个消息的集合的签名是(q,s)。
[0098]
应当注意,签名实体10还可以用该同一对密钥来对大小为n

的消息进行签名,其中n

<n,也就是说,不重新生成一对密钥。在这种情况下,要签名的大小为n’的消息以
‘0’
完成,直到获得大小为n的消息,并且签名实体10然后使用其密钥对ks/kp对其进行签名。在签名步骤e11结束时,签名实体10将n个消息的集合的签名(q,s)以及集合{m_1,

,m_n}发送到局部签名导出实体11。
[0099]
在局部签名导出步骤e12中,局部签名导出实体11在接收子步骤e12中接收消息集合{m_1,

,m_n}上的签名(q,s),其中,局部签名导出步骤e12被实现为证明签名(q,s)在消息子集m_i上的有效性,其中,i属于集合{1,

,n}的子集i。
[0100]
局部签名导出实体11在导出第一元素的步骤e13中计算或导出第一验证元素a,该第一验证元素a聚合其下标j在{1,

,n}中但不在子集i中的所有消息m_j。适当的符号是{1,

,n}\i。因此,第一验证元素a以某种方式与签名实体10不感兴趣的消息相关,更具体地,与不是希望证明签名(q,s)的有效性的那些消息中的一部分的消息相关。因此,局部签名导出实体11计算:
[0101]
a=π_{j in{1,...,n}\i}y_j^{m_j}
[0102]
在该阶段,局部签名则是(q,s,a)。该签名特定于消息m_i,其中i在集合i中,也就是说,其旨在用于基于n个消息的签名(q,s)并且利用消息子集中的唯一消息来验证消息的该子集m_i的签名的有效性。
[0103]
在该示例性实施例中,在第二元素导出和发送步骤e14中,局部签名导出实体11计算或导出第二验证元素b。该第二验证元素b旨在证明第一验证元素a是有效的,也就是说被正确地形成。直观地,第二验证元素b允许示出根据隐藏消息计算的第一验证元素a被正确地形成,也就是说,对于i中的i,它不能用于欺骗呈现给局部签名验证实体12的消息m_i的值。因此,局部签名导出实体11计算:
[0104]
b=π_{i in i,j in{1,...,n}\i}z_{i,j}^{m_j}
[0105]
然后,局部签名是(q,s,a,b)。然后,在步骤e14结束时,将局部签名(q,s,a,b)和消息子集m_i(其中i在i中)发送到局部签名验证实体12。
[0106]
因此,不管消息子集中的消息的数量如何,不管消息集合中的消息的数量如何,局部签名具有恒定大小并且包括很少的元素,在这种情况下为四个元素。还应当注意,仅发送其中i在i中的消息子集{m_i}的消息。因此,验证实体12不需要知道消息集合{m_1,

,m_n}或将通过构造链接到消息子集的消息的消息,例如年龄、出生日期。
[0107]
在随后的接收步骤e15中,局部签名验证实体12从签名导出实体11接收消息子集{m_i}(其中i在i中)和局部签名(q,s,a,b)。
[0108]
局部签名验证实体12在第一验证子步骤e16中验证第一等式:
[0109]
e(x.a.π_{i in i}y_i^{m_i},q)=e(g,s),(1)
[0110]
局部签名验证实体12在验证第二等式的第二步骤e17中验证:
[0111]
e(a,π_{i in i}h_i)=e(b,h),(2)
[0112]
如果满足这两个相等性或等式,则与其中i在i中的消息子集m_i相关的局部签名是有效的。否则,它被认为是无效的。
[0113]
实际上,当使用在导出第一元素的步骤e13期间定义的第一验证元素a的定义开发第一等式(1)时:
[0114]
=e(x.π_{i in i}y_i^{m_i}.π_{j in{1,...,n}\i}y_j^{m_j},q)
[0115]
被获得。
[0116]
使用x和y的定义:
[0117]
=e(g^x.π_{i in i}(g^{y_i})^{m_i}.π_{j in{1,...,n}\i}(g^{y_j})^{m_j},q)
[0118]
被获得。
[0119]
使用规则(g^a)^b=g^{a.b}并且将其下标j属于被去除集合i的集合{1,

,n}的y_j^{m_j}与其下标i在i中的y_i^{m_i}的乘积组合的事实:
[0120]
=e(g^{x+∑_{i in{1,...,n}}y_i.m_i},q)
[0121]
被获得。
[0122]
使用耦合的性质:e(g^a,q)=e(g,q)^a:
[0123]
=e(g,q)^{x+∑_{i in[1,n]}y_i.m_i}
[0124]
被获得。
[0125]
使用允许在所选择的项上重新引入指数的耦合性质:
[0126]
=e(g,q^{x+∑_{i in{1,...,n}}y_i.m_i})
[0127]
被获得。
[0128]
使用在密钥生成阶段p10中指定的s的定义,该项变为:
[0129]
=e(g,s)
[0130]
因此,e(x.π_{i in i}y_i^{m_i}a,q)=e(g,s)。
[0131]
该第一验证等式可足以验证与下标i在i中的消息m_i相关的局部签名的有效性。然而,没有说明第一验证元素a被正确地生成。这就是为什么局部签名验证实体12在第二验证步骤e16中验证第二等式的原因。当使用第一验证元素a的定义开发第二等式(2)时:
[0132]
=e(π_{j in{1,...,n}\i}y_j^{m_j},π_{i in i}h_i)
[0133]
被获得。
[0134]
使用y和h的定义:
[0135]
=e(π_{j in{1,...,n}\i}g^{y_j}^{m_j},π_{i in i}h^{y_i})
[0136]
被获得。
[0137]
使用规则(g^a)^b=g^{a.b}:
[0138]
=e(g^{∑_{j in{1,...,n}\i}y_j.m_j},h^∑_{i in i}y_i)
[0139]
被获得。
[0140]
使用耦合的性质e(g^a,h^b)=e(g,h)^(a.b):
[0141]
=e(g,h)^((∑_{j in{1,...,n}\i}y_j.m_j).(∑_{i in i}y_i))
[0142]
=e(g,h)^(∑_{i in i,jin{1,...,n}\i}y_j.m_j.y_i)
[0143]
被获得。
[0144]
该项等于e(b,h)。实际上,使用第二验证元素b和z的定义:
[0145]
e(b,h)=e(π_{i in i,j in{1,...,n}\i}(g^{y_i.y_j})^m_j,h)
[0146]
被获得。
[0147]
使用规则(g^a)^b=g^(a.b)和g^a.g^b=g^{a+b}:
[0148]
e(b,h)=e(g^{∑_{i in i,j in{1,...,n}\i}(y_i.y_j.m_j)},h)
[0149]
被获得。
[0150]
使用耦合的性质e(g^a,h)=e(g,h)^a:
[0151]
e(b,h)=e(g,h)^{∑_{i in i,j in{1,...,n}\i}(y_i.y_j.m_j)}
[0152]
被获得。
[0153]
所以:e(a,π_{i in i}h_i)=e(b,h)
[0154]
被获得。
[0155]
该第二等式旨在确保正确地形成第一验证元素a,该第一验证元素a对所有隐藏消息(即,不是要签名的消息子集的一部分的消息)进行分组。“正确地形成”在这里是指第一验证元素a不能用于欺骗为验证而呈现的针对i中的i的消息m_i的值。
[0156]
实际上,通过继续开发第二等式,e(g,h)的指数为:
[0157]
∑_{j in{1,...,n}\i}y_j.m_j).(∑_{i in i}y_i)=
[0158]
∑_{i in i,j in{1,...,n}\i}y_j.m_j.y_i
[0159]
由此获得形式y_j.m_j.y_i的单项式的和。这个单项式的和表示为多项式p。可以观察到,出现在同一单项式中的下标i和j是不同的。实际上,第一和涉及由j索引的不在i中的消息,而第二和涉及由i索引的在i中的消息。因此,利用该等式,保证从不满足其中i=j的单项式y_j.m_j.y_i,这将给出平方m_j.y^2_j。
[0160]
如果局部签名导出实体11已经欺骗,也就是说,如果在第一验证元素a中(更具体地在乘积中),它已经添加了元素y_i^r=g^(r.y_i),其下标i将在i中,则指数将具有以下形式:
[0161]
(r.y_i+∑_{j in{1,...,n}\i}y_j.m_j).(∑_{i in i}y_i)
[0162]
然后,形式为r.y_i^2的平方单项式将出现在之前未出现的多项式p中。
[0163]
然后可以区分由错误的第一元素a正确形成的第一验证元素a的情况。实际上,第二验证元素b正是g^p。通过验证第二等式(2),局部签名导出实体12被迫重构多项式p。公钥
包括元素z_{i,j}=g^(y_i,y_j),其中i≠j。因此,这些元素允许重构形式为y_j.m_j.y_i的所有单项式。在局部签名导出实体11已经欺骗的情况下,多项式p包含形式为r.y^2_i的平方单项式,其不能从公钥的元素z_{i,j}重构,其仅在条件i≠j下存在。因此,如果局部签名导出实体11诚实,则在公钥中提供重构多项式p所需的所有单项式。相反,如果局部签名导出实体11已经欺骗,则局部签名验证实体12不能重构多项式p。
[0164]
在第二局部签名验证步骤e17结束时,验证实体12将结果发送到请求该验证的任何实体。
[0165]
在部分验证签名方法的第二示例性实施例中,第一签名导出步骤e13和第二签名导出步骤e14被稍微修改,以便使关于图1描述的签名方案匿名化。实际上,利用先前描述的方案,每次局部签名导出实体使用其签名来认证其自身时,它呈现相同的签名,这允许跟踪它。
[0166]
因此,在生成标量并计算签名的新元素的附加步骤e18中,局部签名导出实体11生成两个标量r和t,该附加步骤e18在图1中以虚线表示并且以证明m个消息的签名(q,s)在消息子集m_i上的有效性为目的来实现,其中i在i中。然后,局部签名导出实体11计算:
[0167]q′
=q^r,
[0168]s′
=s^r.q^{r.t},(q

,s

)形成签名的新元素。因此,签名的元素(q、s)借助于随机标量来匿名化。
[0169]
在该第二示例性实施例中,在导出第一验证元素的步骤e13中,局部签名导出实体11如下计算第一验证元素a:
[0170]
a=(g^t).(π_{j in{1,...,n}\i}y_j^{m_j})
[0171]
在导出第二元素的步骤e14中,局部签名导出实体11如下计算第二验证元素b:
[0172]
b=(π_{i in i}y_i)^t.(π_{i in i,j in{1,...n}\i}z_{i,j}^{m_j})
[0173]
因此,计算的两个元素a和b取决于随机标量之一。因此,它们也被匿名化。
[0174]
然后将新的局部签名表示为(q

,s

,a,b)。
[0175]
在导出第二元素的步骤e14结束时,局部签名导出实体11向验证实体12发送新的局部签名(q

,s

,a,b)以及消息m_i,其中i在i中。
[0176]
因此,每次局部签名导出实体11出于认证自身的目的而在相同的消息子集上导出局部签名时,所导出的局部签名是不同的。因此,局部签名是匿名的,并且因此不可能在其不同的认证期间跟踪局部签名导出实体11。
[0177]
应当注意,新的局部签名或匿名局部签名(q

,s

,a,b)由签名验证实体12以与第一示例性实施例中相同的方式验证,也就是说,其以与非匿名局部签名相同的方式处理。更具体地,该验证将消息子集{m_i}(其中i在i中)、匿名局部签名(q

,s

,a,b)作为输入,并验证先前描述的相同的两个等式(1)和(2)。
[0178]
因此,促进了局部签名导出的实现,因为取决于局部签名是否是匿名的,局部签名的验证的实现方式是相同的。
[0179]
该实施例特别适用于匿名证明或凭证。匿名证明允许证明与其持有人相关的财产或权利,而不泄露他的身份。它通过提供匿名性和不可追溯性的属性来保护匿名凭证的持有者的私生活。它在这里采用密码数据的形式:局部签名,其可以由其持有者(这里是局部签名导出实体11)向组织(这里是局部签名验证实体12)示出,以证明与其身份相关的属性。
[0180]
现在将关于图2描述根据一个示例性实施例的局部签名导出实体。
[0181]
局部签名导出实体11是一件计算设备,诸如计算机。
[0182]
局部签名导出实体11包括:
[0183]-处理单元或处理器30或cpu(中央处理单元),旨在将指令加载到存储器中,以执行它们,从而执行操作;
[0184]-一组存储器,包括用于执行代码指令、存储变量等的易失性存储器31或ram(随机存取存储器),以及eeprom(电可擦除可编程只读存储器)类型的存储存储器32。特别地,存储存储器32被布置为存储局部签名导出软件模块,该局部签名导出软件模块包括用于实现如前所述的局部签名导出方法的步骤并且由局部签名导出实体11实现的代码指令。存储存储器32还被布置为在安全区域中存储签名方案的公钥kp。
[0185]
局部签名导出实体11还包括:
[0186]-接收模块33,被布置为接收消息集合{m_1,

,m_n}和所述消息集合的签名。该消息集合的签名包括该消息集合的签名元素,表示为(q,s)。接收模块33被布置为实现局部签名导出方法的步骤e12,
[0187]-用于导出第一验证元素的模块34,其被布置为导出根据集合中的除了消息子集中的消息之外的消息计算的第一验证元素a,
[0188]-用于导出第二验证和发送元素的模块35,其被布置为导出第二验证元素b并且向局部签名验证实体发送特定于消息子集的局部签名,其中,该第二验证元素b旨在证明第一验证元素a被正确地形成,所述局部签名包括恒定数量的元素,该恒定数量的元素至少包括消息集合的签名的元素、第一验证元素a和第二验证元素b。局部签名旨在仅用所述消息子集中的消息来验证。导出和发送模块34被布置为实现如前所述的局部签名导出方法的步骤e13和e14。
[0189]
第一验证元素的接收模块33、导出模块34以及第二验证和发送元素的导出模块35优选地是包括用于实现由局部签名导出实体实现的局部签名导出方法的那些步骤的软件指令的软件模块。
[0190]
在第二示例性实施例中,局部签名导出实体11包括用于导出匿名局部签名的模块(图2中未示出)。该模块被布置为生成随机标量并计算签名的新元素。因此,该模块生成两个标量r和t,然后计算:
[0191]q′
=q^r,
[0192]s′
=s^r.q^{r.t},(q

,s

)形成签名的新元素。
[0193]
在该示例性实施例中,用于导出第一验证元素的模块34被布置为如下计算第一元素a:
[0194]
a=g^t.π_{j in{1,...,n}\i}y_j^{m_j}。
[0195]
用于导出第二验证和发送元素的模块35被布置为如下计算第二验证元素b:
[0196]
b=(π_{i in i}y_i)^t.π_{i in i,j in{1,...n}\i}z_{i,j}^{m_j}。
[0197]
因此,第一验证元素a和第二验证元素b借助于随机标量中的一个来匿名化。
[0198]
新的局部签名表示为(q

,s

,a,b)。在该示例性实施例中,用于导出第二验证和发送元素的模块35还被布置为将新的局部签名(q

,s

,a,b)发送到局部签名验证实体12。
[0199]
因此,本发明还涉及:
[0200]-计算机程序,所述计算机程序包括指令,所述指令用于实现如前所述的局部签名导出方法的步骤,并且当所述程序由所述局部签名导出设备的处理器运行时,所述指令由所述局部签名导出实体实现,
[0201]-可读记录介质,其上记录有先前描述的计算机程序。
[0202]
现在将关于图4描述根据一个示例性实施例的局部签名验证实体。
[0203]
局部签名验证实体12是计算机设备,诸如计算机。
[0204]
局部签名验证实体12包括:
[0205]-处理单元或处理器40或cpu,旨在将指令加载到存储器中,以执行它们,以执行操作;
[0206]-一组存储器,包括用于执行代码指令、存储变量等的易失性存储器41或ram,以及eeprom类型的存储存储器42。特别地,存储存储器42被布置为存储局部签名验证软件模块,该局部签名验证软件模块包括用于实现如前所述的局部签名导出方法的步骤并且由局部签名验证实体12实现的代码指令。存储存储器42还被布置为存储签名方案的公钥kp。
[0207]
局部签名验证实体11还包括:
[0208]-接收模块43,被布置为接收消息子集和局部签名导出实体11的局部签名(q,s,a,b)。接收模块43被布置为实现如前所述的局部签名导出方法的接收步骤e15,
[0209]-第一验证模块44,被布置为验证第一等式,该第一等式涉及消息子集中的消息、消息集合的签名的元素以及第一验证元素和公钥的元素。第一验证模块44被布置为实现验证如前所述的局部签名导出方法的第一等式的步骤e16,以及
[0210]-第二验证模块45,被布置为验证第二等式,该第二等式涉及第一局部签名验证元素、第二局部签名验证元素和公钥的元素。第二验证模块45被布置为实现验证如前所述的局部签名导出方法的第二等式的步骤e17。
[0211]
接收模块43、第一验证模块44和第二验证模块45优选地是软件模块,其包括用于实现先前描述并由局部签名验证实体12实现的局部签名导出方法的步骤的软件指令。
[0212]
因此,本发明还涉及:
[0213]-计算机程序,包括用于实现如前所述的局部签名导出方法的步骤的指令,并且当该程序由局部签名验证设备的处理器运行时,该指令由局部签名验证实体12实现,
[0214]-可读记录介质,其上记录有先前描述的计算机程序。
[0215]
本发明还涉及一种局部签名导出和验证系统,包括:
[0216]-如前所述的局部签名导出实体11,以及
[0217]-如前所述的局部签名验证实体12。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1