基于椭圆曲线的签名方案

2019-03-14 12:42王方鑫
电脑知识与技术 2019年1期
关键词:数字签名

王方鑫

摘要:在当今信息化高速发展的时代里,信息的传递和交互越来越成为人们生活中的一部分。如何保证信息源的真实性,以及如何辨别信息是否经过他人恶意的篡改或伪造成为一个热点话题。该文介绍一个基于椭圆曲线密码体制在数学签名的一个实现方案ECDSA,具体介绍该算法的实现以及应用发展。

关键词:数字签名;椭圆曲线密码体制;非对称密码体制

中图分类号:TP393        文献标识码:A        文章编号:1009-3044(2019)01-0053-01

伴随电子商务的日益发展,人们的生活越来越离不开电子信息的交互和传输,当前电子商务领域广泛的使用RSA签名算法来保证消息的真实性以及来源的真实性,但是随着ECDSA技术的日益完善,以及ECDSA相较RSA签名算法的优势,电子商务领域对ECDSA的使用也越来越多。

1 研究背景

椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟,在2000年,ECDSA成为IEEE和NIST标准。目前,ECDSA算法已经成为一种国际通用的标准算法,广泛地应用于电子移动硬件中。

2 数字签名的流程

将信息的发送者记为A,将信息的接受者记为B。一般来说,数字签名的流程为:

消息的发送者A将消息通过hash函数生成消息摘要,然后通过不同的签名算法,将签名和消息分别发给消息的接受者B。

消息的接收者B将消息通过hash函数生成消息摘要,然后通过签名验证算法把A发送的签名进行验证。如果验证相等那么签名有效,否则无效。图1给出了数字签名的一般流程。

3 椭圆曲线数字签名技术的实现

本文介绍的是基于椭圆曲线密码体制在数学签名的一个实现方案ECDSA,这个签名方案实现的流程类似于RSA数字签名方案。

第一步,执行密钥生成算法,生成ECDSA算法的公私钥。

第二步,执行签名算法,用第一步生成的私钥进行签名。

第三步,执行验证算法,用公钥验证私钥签名。

第四步,对比得到签名是否有效。

3.1 密钥生成算法

这里介绍ECDSA签名算法中的密钥生成算法,KeyPairGenerator 类用于生成公钥和私钥对。我们可以使用指定ECDSA签名算法中生成密钥KeyPairGenerator.getInstance("EC");其中ECPublicKe是ECDSA公钥密钥的接口,ECPrivateKey是专用密钥的接口。

3.2 签名算法

这里介绍ECDSA签名算法中的签名算法,PKCS8EncodedKeySpec类继承EncodedKeySpec类,以编码格式来表示私钥。Signature 类用来为应用程序提供数字签名算法功能。数字签名用于确保数字数据的验证和完整性。

3.3 验证算法

这里介绍ECDSA签名算法的验证算法,用公钥来验证生成的私钥签名是否有效。

4 总结

目前应用最为广泛的RSA签名算法仍存在很多不足之处,比如说RSA数字签名算法的分组太长,速度太慢,以及RSA签名算法产生大素数十分的麻烦。相比之下ECSDA有很明显的优势,它可以在更短的密钥长度的情况下实现更高的安全强度,因此,ECDSA有非常好的应用前景,尤其是在目前日益火爆的电子商务领域,值得继续深入研究。

参考文献:

[1] 张艳丽,刘嘉勇.基于ECC数字签名系统的设计与实现[J].信息安全与通信保密,2011(05):86-87+90.

[2] 任艳芳.基于椭圆曲线密码(ECC)的数字签名技术[J].硅谷,2013,6(12):51-53.

[3] 韩松,马飞,李沛.ECDSA在电子商务中的应用[J].网络安全技術与应用,2012(07):18-20.

[4] 索望.一次性口令身份认证方案的设计与实现[D].四川大学,2005.

[5] 谷利泽,郑世慧,杨义先.现代密码学教程[M].北京邮电大学出版社,2009.

[6] 孙淑玲.应用密码学[M].北京:清华大学出版社,2004.

[7] 杨晓元.现代密码学[M].西安:西安电子科技大学出版社,2009.

[8] 杨波.现代密码学[M].2版.北京:清华大学出版社,2007.

猜你喜欢
数字签名
基于正交拉丁方理论的数字签名分组批量验证
交通运输行业数字签名系统的设计与实现分析
浅析计算机安全防护中数字签名技术的应用
数字签名助力系统安全
基于数字签名的QR码水印认证系统
以数字签名为基础的档案文件安全性管理
数字签名简述
探讨网络安全中的数字签名技术应用效果
基于数字签名和HSM的数据库篡改检测机制
基于JAVA的数字签名设计与实现