5.6.3 批量签名
2025年08月10日
5.6.3 批量签名
批量签名是指能够一次完成对若干个消息的签名,并且可以对每一条消息的签名进行验证。该算法的突出特点是可以批量对文件进行签署从而提高签名的效率。因此在电子政务、电子商务等领域有着重要的应用价值。较早的批量签名概念是Amos Fiat在1990年提出的Batch RSA方案。随后有人提出了基于DSA批量签名以及二叉树批量签名等方案。这里主要介绍基于RSA的Batch RSA方案。
在Batch RSA方案中,签名者拥有若干个两两互素的私有密钥指数,根据这些密钥指数生成RSA签名结果。签名分为三个阶段进行。
阶段1:通过求解每个需要签名消息的低指数幂的乘积,将所有文件合并成一个待签消息。
阶段2:对合并后的消息进行签名。
阶段3:在总的签名上划分出每一条消息的签名。
具体来讲,若两个消息分别为m1、m2,相应的公钥指数分别为e1、e2,则批量签名是这样进行的:
(1)计算公钥E=e1×e2,然后合并这两个消息;
(2)对合并后的消息进行签名;
(3)划分出每一条消息各自的签名。先求出中间量X,满足X=0 mod e1,X=1 mod e2,则m2的签名为
m1的签名为
例5-10 假如两个消息分别为m1、m2,相应的公钥指数为3和5,则根据上面的步骤:
(1)有;
(2)计算S=M1/15 mod n;
(3)计算得X=6,则m2的签名为的签名为
。