论文部分内容阅读
椭圆曲线密码算法(Elliptic Curve Cryptography,ECC)是1985年由Neal Koblit和Victor Miller分别独立提出的一种公钥密码算法。它利用有限域上椭圆曲线的有限点群代替基于离散对数问题密码体制中的有限循环群,具有更高的安全性。相对于RSA等其他公钥密码体制,ECC以其密钥短、运算速度快、密钥存储空间小、对带宽要求低的优势在IC卡等资源受限的环境中被广泛应用。ECC的研究和实现对于ECC的发展有积极意义。椭圆曲线密码算法的快速实现一直是椭圆曲线密码体制研究的重点。SM2椭圆曲线公钥密码算法包括了数字签名、公钥加密以及密钥交换协议等密码方案。本文在研究了密码学中椭圆曲线的基本理论和相关算术运算后,对SM2椭圆曲线密码方案进行了软件设计与实现,所做的工作主要包括:(1)数字签名能够实现对信息完整性以及有效性的验证,对SM2椭圆曲线数字签名算法进行了研究以及软件设计与实现;(2)公钥加密算法能够实现对信息的加、解密,防止秘密信息的泄露,对SM2椭圆曲线公钥加密算法进行了研究以及软件设计与实现;(3)密钥交换协议常用于密钥的管理和协商,对SM2椭圆曲线密钥交换协议进行了研究以及软件设计与实现。文本利用模块化的设计思想,采用自顶而下、逐步细化的方法对SM2椭圆曲线密码系统进行了详细的分析设计,实现了一个完整的基于windows平台的SM2椭圆曲线密码系统。