曲靖师范学院云南曲靖655011
摘要:本文采用圆锥曲线取代CPK中的椭圆曲线,把椭圆曲线国密SM2的密钥交换、数字签名、公钥加密等移植到圆锥曲线上,构建了基于圆锥曲线与国密SM2的CPK密码体制。三者强强联合,可以构建一种自主知识产权的先进公钥密码系统,有利于保障网络信息安全。
关键词:圆锥曲线密码;SM2;CPK
1.引言
“棱镜门”事件警醒我们要提高全民的网络信息安全意识,加强网络与信息系统的安全防护,认真落实国家信息安全等级保护制度。网络信息安全最核心的是密码技术,在网络与信息安全、密码设备领域采用国产设备或者具有完全自主知识产权的安全设备与密码设备成为必然要求。
2.圆锥曲线密码体制简介
圆锥曲线密码体制CCC(ConicCurveCryptology)由我国科研人员提出,具有完全的自主知识产权,有限域F2P和有限域F2m都可以用于构建圆锥曲线密码体制。圆锥曲线密码体制的安全性基于圆锥曲线上的离散对数问题,椭圆曲线密码体制的安全性也基于椭圆曲线上的离散对数问题。圆锥曲线在曲线阶的计算、曲线基点选择、基点阶的计算、明文嵌入等方面具有椭圆曲线密码体制(ECC)无法比拟的优势。ECC在这些方面的计算相对复杂、困难,而圆锥曲线则计算简单、快速。所以,圆锥曲线密码体制在一定的领域的相比较ECC具有一定的优势[1]。
3.CPK密码体制简介及优势
全球共产生了三种认证体系。第一是基于PKI的认证体系,第二是基于标识的IBC认证体系,第三是基于组合公钥的CPK认证体系。
CPK体制在椭圆曲线密码体制的基础上,实现了基于标识的非对称密码,私钥、公钥都存储于矩阵,采用组合方法解决PKI、IBC不能解决的规模化问题(用户量几乎不受限制),一个离线的小小芯片解决了PKI的LDAP目录服务器、IBC在线数据库的支持等问题[2]。CPK体制的总体安全性略低于PKI的ECC及SM2[3],但高于IBC/SM9,但是在易用性方面,特别是超大规模应用的认证方面远远优越于PKI与IBC,它特别适合于超大规模应用系统的认证,如国家级、全球级认证,应用前景将不可限量。
4.基于圆锥曲线构建CPK密码体制规划设计
本文利用圆锥曲线建立有限交换群构建圆锥曲线密码系统,采用圆锥曲线密码系统取代椭圆曲线密码系统去构建组合公钥密码CPK体制。利用圆锥曲线与椭圆曲线密码体制的相似之处,把椭圆曲线国密SM2中的一些算法、国密SM3引入CPK密码系统中,并结合一些高效的椭圆曲线、圆锥曲线点乘算法,综合利用CPK密码系统、椭圆曲线密码系统、圆锥曲线密码系统的优势,集三种密码系统之所长,构建了一个新的CPK密码系统。
4.1CPK有限交换群的构建
CPK密码体制的构建首先必须需完成有限交换群的建立。有限域F2P和有限域F2m上的圆锥曲线都可以构建有限交换群[2],用于构建圆锥曲线密码体制。在构建有限交换群方面,圆锥曲线与椭圆曲线是相似的,基于ECC的CPK密码体制完全可以用具有中国自主知识产权的圆锥曲线密码体制(CCC)代替ECC。本方案选择有限域F2m上圆锥曲线用于建立有限交换群,构建有限交换群的圆锥曲线为:C(F2m):y2+xy≡ax2+bxmodf(x)x,y,a,b∈F2m,不可约多项式可以选择x520+x15+x11+x2+1,圆锥曲线上的任意点都可以作为基点G[3]。
4.2CPK圆锥曲线点乘算法的选择
点乘算法是ECC、SM2算法、圆锥曲线密码体制CCC的核心算法,因本方案采用圆锥曲线构建CPK密码体制,点乘算法同样也是CPK的核心算法。采用优化后的点乘算法可以提高CPK体制的总体运算效率。NAF、2K进制数乘算法、NAF-2K数乘算法等都可以用于优化。本方案选用NAF-2K数乘算法[1]。数乘算法中的预计算正好存储在存储公钥矩阵的芯片中,每次点乘都会调用预计算的结果。
4.3CPK矩阵的选择
在CPK7。0中,矩阵包含标识密钥矩阵A和分割密钥矩阵B,由A、B复合成为公钥与私钥。在本设计方案中,最终产生的用户私钥为512bit。私钥矩阵SSK、公钥矩阵PSK为65536×32矩阵,可以产生的公钥量是非常大的。由于矩阵非常大,能够抵御非常大的合谋攻击,但是从实际来看,因为获取密钥难、列方程难、解方案难的原因,合谋攻击非常困难,从实际效果看,系统密钥是安全的。
4.4CPK签名协议设计
CPK的数字签名协议类似于椭圆曲线数字签名算法ECDSA,而ECDSA-SM2与ECDSA也基本类似。CPK签名协议我们可以选用ECDSA-SM2算法,由于ECDSA与圆锥曲线数字签名协议CCDSA相同,可以在圆锥曲线上实现ECDSA-SM2算法,使之成为CCDSA-SM2用来代替CPK签名协议。总体上来讲,ECDSA、ECDSA-SM2、CCDSA-SM2、CPK数字签名协议安全性是同一个级别的,在CPK中数字签名协议采用ECDSA-SM2、CCDSA-SM2较为安全。本文采用在圆锥曲线上实现ECDSA-SM2取代CPK数字签名协议。
4.5CPK密钥传递协议及公钥加密
不管是ECDH、CPK密钥传递协议、RSA的密钥交换协议,还是SM2的密钥交换协议,都是采用了Diffie-Hellman密钥交换协议思想,也就是利用自己的私钥和对方的公钥计算加解密的密钥,只是它们的实现细节有所差别。SM2的密钥交换协议是最安全的一种,也最为复杂,本文的方案设计采用SM2的密钥交换协议与SM2公钥加密算法用于取代CPK的密钥交换协议与公钥加密算法。
4.6HASH算法的选择
主要使用的hash算法有MD5、SHA-1、SHA-256、SM3等,SM3为国密算法,且安全性比其他几种都高,CPK密码体制中的HASH算法可以选择国密SM3。SM3把不定长的消息经过hash输出256位的定长二进制串。由于我们的圆锥曲线的不可约多项式选择了x520+x15+x11+x2+1,也意味着密钥长度也接近520bit,而SM3输出的是256位,我们计算标识ID对应的私钥的时候,我们可以把消息切分为两段,每一段分别计算SM3值,再把两个SM3的输出值进行前后拼接为512bit作为输出,这样,计算出的私钥的值也为512bit。
5结语
文中的方案,圆锥曲线、CPK具有自主知识产权,SM2是国密算法,这三者的强强联合,是非常理想的选择,综合利用三者优势构建的公钥密码系统有利于提高网络与信息安全的自主安全能力,值得推广。
参考文献:
[1]蔡昌曙.基于F2m域的圆锥曲线数乘算法与混合加密的研究与实现[D].云南师范大学硕士论文,2008:7~8.
[2]南湘浩.CPK组合公钥体制(v7.0).http://www.e-henxen.com/Upload/2012-05/PDF/CPKtizhi_v7.0.pdf.2011.09
[3]CPK技术发展情况汇报.http://www.docin.com/p-309661442.html.2011.09