一种高效的SM2数字签名批量验证算法
2021-08-06陈吉晨
阮 鸥,陈吉晨,毛 浩
(湖北工业大学计算机学院,湖北 武汉 430068)
1 引言
数字签名常用于身份认证、抗抵赖性等方面。例如,银行发薪资问题,假设用户B为中国邮政银行经理,用户A为中国邮政集团公司(有100万员工)的会计人员,用户A每个月底需要把所有员工(约100万)的薪资数据及其签名发送给中国邮政银行,以便用户B将薪资转账给所有员工,此时用户B需要一一验证用户A发送过来的每一位员工的薪资数据及其签名,需要做100万次验证,产生大量的计算工作,显著降低了银行转账系统的效率,此时数字签名批量验证显得尤为重要。Naccache等人[1]最早提出了批量验证(Batch Verification)算法。批量验证算法的基本思想是将多个签名(可能来自不同的签名者)组成一个新的集合,并对新的集合进行验证。如果该集合通过验证,则接受该集合中的所有签名,否则,拒绝集合中所有签名。目前,对于DSA(Digital Signature Algorithm)、RSA(Rivest, Shamir, Adleman)和ECDSA(Elliptic Curve Digital Signature Algorithm) 等数字签名,研究者均提出了相应的批量验证算法,其中Harn[2]针对DSA设计了一种交互式的批量验证算法,Hwang等人[3]提出了DSA、RSA的批量验证算法,Cheon等人[4]针对ECDSA*设计了一种快速批量验证多个数字签名的方案。
在数据外包、智能汽车、智能电网和物联网等现代应用领域中,为了提高数字签名批量验证速度,研究者提出了不同的方案。Zhang等人[5]提出了基于外包功能的批量验证计算方案,客户端查询请求数据时,由服务器进行批量身份验证,而客户端使用更少的时间来验证服务器计算的正确性。Bayat等人[6]提出了一种具有批量验证功能的安全认证方案,将批量验证应用于车联网中,车辆与车辆进行通信,以及车辆与固定的路边单位或云平台进行通信时,使用批量验证能够更快速地处理数据,减少事故,改善交通状况。……
