基于ECC的CA系统设计

时间:2022-09-20 09:48:06

基于ECC的CA系统设计

摘要:该文介绍了PKI系统运行机理、作用及其基本组成。介绍了椭圆曲线密码体制的基本原理,分析了椭圆曲线数字签名算法ECDSA。根据ECC密钥长度小、计算负载少、节省带宽等特性,提出了CA 系统设计。在椭圆曲线离散对数计算困难的前提下,该设计是安全可靠的。该设计可用于电子商务中。

关键词:PKI;CA系统;数字证书;椭圆曲线密码体制;设计

中图分类号:TP311 文献标识码:A文章编号:1009-3044(2010)16-4525-03

Design of CA System Based on Elliptic Curve Cryptosystem

HU Zhan-liang, SU Jiu-qing

(Modern Education Technology Centre, Heze University, Heze 274015, China)

Abstract: This paper introduced the operating mechanism, function and basic components of Public Key Infrastructure. The basic theory of elliptic curve cryptosystem is introduced.Especially elliptic curve digital signature algorithm ECDSA is introduced. Based on the ECC’s property of reductions in storage space, bandwidth and smaller length key, this paper presents a design of CA. It is secure under the assumption that ECC discrete logarithm is hard to slove. This design can be used in e-business.

Key words: PKI; certification authority; digital certification; elliptic curve crytpsystem; design

1 CA系统

1.1 PKI体系

随着互联网的不断发展, 信息的安全性问题开始引起人们的密切关注。PKI (Public Key Infrastructure)是目前为解决目前Internet 安全问题而经常采用的技术,是一个采用非对称密码算法原理和技术来实现并提供安全服务的、具有通用性的安全基础设施[1]。PKI 技术采用证书管理公钥, 通过第三方的可信任机构认证中心(CA:Certification Authority), 把用户的公钥和用户的其他标识信息( 如名称、E-mail、身份证号等) 捆绑在一起, 在Internet 上验证用户的身份。目前,通用的办法是采用建立在PKI 基础之上的数字证书,通过把要传输的数字信息进行加密和签名,保证信息传输的机密性,从而保证信息的安全传输。

PKI可以提供的安全服务包括:1、鉴定性。是识别特定单位(可以包括个人、设备、企业等)的过程。2、认证性。证明和核实特定信息的相关属性的过程。3、完整性。确保信息不被修改。4、机密性。确保信息的保密。5、不可否认性。即是抗抵赖功能,收发双方都不能否认已做出的行为。总之PKI 是一种新的安全技术,基于公开密钥密码技术并通过数字证书建立信任关系来保证网上交易的安全。

在实际的PKI中,所采用的加密算法是对称加密算法和非对称加密算法的结合,使用非对称密码体制传递会话密钥,对称密码体制传输信息,这主要是因为对称密码体制加解密速度快,但密钥管理不方便,而非对称密码体制加解密速度相对较慢, 但密钥管理方便。

1.2 CA系统

CA是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构,CA 的作用是检查数字证书持有者身份的合法性.。数字证书是证明证书持有人与证书中所包含的公钥之间的唯一对应关系,由证书持有人的身份信息、公钥、CA的数字签名及证书的有效期等内容,且必须由CA 签名,以防证书被伪造或篡改。CA 的作用是通过数字证书使网上交易的双方相互验证身份,保证交易安全进行。

CA的出现,是与非对称加密技术的成熟分不开的。使用者可以公开密钥的同时,保留私有密钥,从而解决加密和身份确认的问题,使得实现CA成为可能。作为公共信任的第三方,CA使用自身的私有密钥对使用者的公开密钥以及其它相关信息进行数字签名,生成相应的数字证书,来确保证书使用者信息的正确性。为了验证交易伙伴的公开密钥,使用者通过CA自身的公开密钥来检查数字证书的签名,从而确定证书的合法性。

作为PKI的核心机构,CA的职责归纳起来有:验证数字证书申请者的身份;确保CA用于签名证书的非对称密钥的质量;确保整个签证过程的安全性,确保签名私钥的安全性;证书资料信息(包括公钥证书序列号、CA标识等)的管理;确定并检查证书的有效期;确保证书主体标识的唯一性,防止重名;并维护作废证书列表;对整个证书签发过程做日志记录。管理并维护用户的公钥。

用户公钥通常由两种方式产生。第一种方式是用户自己生成密钥对,然后将公钥以安全的方式传送给CA,该过程必须保证用户公钥的机密性、完整性和可验证性。第二种方式是CA替用户生成密钥对,然后将密钥对以安全的方式传送给用户,该过程必须确保密钥对的机密性、完整性和可验证性。在该方式下由于用户的私钥为CA所产生,故对CA的可信性有更高的要求。如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签名进行验证,一旦验证通过,该证书则被认为有效。

1.3 数字证书

数字证书是能在Internet上进行身份验证的一种权威性电子文档,人们可以在Internet上用它来证明自己的身份和识别对方的身份。数字证书颁发过程一般为:认证中心获得用户的公共密钥及个人身份信息。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。用户就可以使用自己的数字证书进行相关的各种活动。数字证书各不相同,每种证书可提供不同级别的可信度。

数字证书绑定了公钥及其持有者的真实身份,类似于现实生活中的居民身份证,所不同的是数字证书不再是纸质的证照,而是一段含有证书持有者身份信息并经过认证中心审核签发的电子数据,可以更加方便灵活地运用在电子商务和电子政务中。目前数字证书的格式普遍采用的是X.509.V3国际标准,内容包括证书序列号、证书持有者名称、证书颁发者名称、证书有效期、公钥、证书颁发者的数字签名等。

2 椭圆曲线密码体制(ECC)

2.1 椭圆曲线基本理论

椭圆曲线密码体制(ECC)是目前已知的公钥体制中, 对每比特所提供加密强度最高的一种体制,其数学基础基于有限域椭圆曲线上的点群中的离散对数困难问题。与其它公钥密码体制相比, 椭圆曲线密码体制的优点主要表现在以下方面: 密钥短、强度高、参数少和实现速度快。

椭圆曲线是由维尔斯特拉斯(Weiertrass)方程:

所确定的平面曲线,系数定义在某个域上,可以是有理数域、实数域、复数域, 还可以是有限域,(x,y)是椭圆曲线上的点。椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。椭圆曲线密码体制所用的有限域为素数域GF(P)或二进制域GF(2n),对于素数域GF(13),由参数a 10,b 5所确定的椭圆曲线,其上的点共有:E(GF(13))={ O, (1, 4) , (1, 9), (3, 6), (3, 7), (8, 5), (8, 8), (10, 0), (11, 4), (11, 9) },其中O为无穷远点。椭圆曲线点加的几何运算可描述如下:椭圆曲线E上点P(x1,y1)和Q(x2,y2),连接点P和Q交椭圆曲线于另一点,过该点作平行于纵坐标轴的直线与曲线E相交于点R(x3,y3),则R为P和Q两点之和,记为R=P+Q。椭圆曲线上的点能够相加,但不能相乘。对于点P自身累加n次,称为数乘运算。2P =P+ P,5P =P+ P+ P+ P+ P。

就椭圆曲线公钥密码体制而言,椭圆曲线公钥密码体制的安全性都与相应的椭圆曲线离散对数的求解困难性等价。椭圆曲线离散对数问题ECDLP(Elliptic Curve Discrete Logarithm Problem)是椭圆曲线公钥密码体制的核心。假设椭圆曲线E上点P、Q,Q=kP,在已知P,Q的情况下k,k称为椭圆曲线离散对数。在已知k和P的情况下计算Q比较容易,而由Q和P计算k则比较困难,这个问题称为椭圆曲线离散对数问题。将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。ECC的安全性与椭圆曲线离散对数的求解困难性等价,ECDLP是比整数因子分解问题难得多的数学问题。

2.2 椭圆曲线加密解密过程

数据加密是椭圆曲线密码体制的基本任务。在加密算法中,对明文信息经过某种分组和编码操作,将其嵌入到椭圆曲线上,使其成为椭圆曲线有限群中的某个点,从而实现基于椭圆曲线的数据加密。加密前,首先要把明文信息分组为有限域上的明文信息块m,而后对m编码使之变换为椭圆曲线上的对应点Pm[2]。

用户Alice向用户Bob传送数据过程:

1) 选取椭圆曲线E(GF(q))和基点G。Alice随机选取一个整数nA∈ [1, n-1]作为私钥保存,Bob随机选取一个整数nB∈ [1, n-1]作为私钥保存,并分别产生自己的公钥PA=nA×G, PB=nB×G。

2) Alice随机选取一个正整数k,并产生密文Cm={ kG, Pm+k PB },在这里, Alice使用了Bob的公钥。

3) Bob要解密,需做以下运算:Pm+k PB-nB(kG) = Pm+k(nB×G)-nB(kG)= Pm+k(nB×G)-k(nB×G) = Pm。

Alice通过kPB与Pm相加来对伪装Pm,因为只有Alice知道k,即使PB是公钥,除Alice之外均不能伪装kPm。

例如:q =751;E(GF(q)):y2=x3-x+188, 选取基点G=(0, 376)。设Alice希望发送信息给Bob。Bob的公开密钥是PB=(201, 5) [3]。

Alice 向Bob发送明文信息被编码为Pm=(562, 201),Alice随机选择k=386,

这样kG=386(0, 376)=(676, 558);Pm+ k PB = (562, 201) + 386(201, 5)=(385, 328)。

Alice发送的密文为:

Cm={kG, Pm+k PB }={(676, 558),(385, 328)}。

Bob收到密文后,解密如下:

Pm+k PB-nB(kG) Pm (562, 201)。

2.3 椭圆曲线数字签名(ECDSA)

数字签名在ISO7498-2标准中定义为:“附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造” [4]。美国电子签名标准(DSS,FIPS186-2)对数字签名作了如下解释:“利用一套规则和一个参数对数据计算所得的结果,用此结果能够确认签名者的身份和数据的完整性”。

椭圆曲线密码体制类似于其它公钥密码算法,可以用来数字签名。对于有限域上的椭圆曲线密码体制,采用椭圆曲线数字签名算法(ECDSA) [5]。ECDSA 是Scott vanstone于1992年提出的, 在椭圆曲线上实现了的DSA 算法。该签名方案包括系统初始化、签名过程和验证过程。在ECDSA中,点的加法运算占了整个运算的很大比例,它的效率关系到整个算法的执行效率。现在密码学界普遍认为ECC将取代RSA成为通用的公钥密码算法,ECDSA也必将是数字签名技术今后的研究热点和技术主流,

ECDSA具有安全性高、密钥长度短、存储空间小、带宽要求低、算法灵活和算法速度快等优点[6]。经过不断发展, 不同的国际组织基于ECDSA, 制定了有关标准, 以推进密码技术的广泛使用和不同操作环境的互操作性。1999 年, 美国国家标准化组织ANSI 出台ANSI X9.62 标准;2000年, 电气和电子工程师协会IEEE 制定了IEEE1363- 2000参考标准;2000年, 美国国家标准技术研究所(NIST)制定了联邦信息处理标准FIPS186 PUB 2;2009年,NIST制定了联邦信息处理标准FIPS186 PUB 3。这些标准的制定为ECDSA 进一步发展提供一个良好的平台。

3 CA系统设计

3.1 系统功能

系统需要银行,持卡人,商家,CA共同参与,而且持卡人、商家和银行之间的每次交易都需要经过CA认证。从持卡人发出购买请求到收到货物,整个过程需要经历:持卡人注册、购买请求、支付认证、资金清算四个阶段。

持卡人:由银行所发行的支付卡的授权持有者。

认证中心(HezexyCA):提供数字证书的颁发,数字证书的存储,数字证书的认证,数字证书的撤销等功能。

商家(Merchant):服务提供者。商家通过自己的购物网站向持卡人提供商品或服务。

银行 (bank):发行银行卡,处理商家的支付信息与持卡人的支付信息。

3.2 功能模块

3.2.1 CA模块

根据安全椭圆曲线选取的原则,确定有限域及椭圆曲线上的各个主要参数,生成两对公钥私钥,一对用于数字签名,一对用于加解密。当持卡人、商家和银行申请数字证书时,CA利用椭圆曲线密码系统生成用公钥、私钥对供对方使用。公钥与用户身份信息以数字证书的形式公开,私钥由用户保存,持有证书的用户之间可以进行安全的数据通信。

3.2.2 文件加密解密模块

该模块所用的参数为加解密文件、数字证书和私钥,具体设计流程如图4所示。

3.2.3 签名与验证模块

签名模块对待发送的信息进行签名,验证模块对接收的信息签名进行验证。

CA使用自己的私钥对客户公钥进行数字签名,然后产生数字证书发给用户,其他用户可以通过CA提供的公钥进行验证。信息首先被签名,然后被加密,信息发送者用自己的用于数字签名的私钥签名,用接收者的公钥加密信息,收到信息后,接收者首先用自己的私钥解密信息,然后用发送者用于数字签名的公钥恢复出真实消息。

参考文献:

[1] 林凤海,吴吉义.基于PKI的安全电子政务层次架构模型研究[J].信息化建设,2009(5).

[2] 侯爱琴,高宝建,辛小龙.信息明文嵌入椭圆曲线的改进算法及实现[J].计算机应用与软件,2008(7).

[3] ./~caojl/download/G09-06n.pdf,2009.

[4] 郭建东,秦志光,刘乃琦.组织安全保障体系与智能ISMS模型[J].电子科技大学学报,2007(5).

[5] 孙家泽,张荣.椭圆曲线数字签名软件设计与实现[J].西安邮电学院学报,2008(9).

[6] D.Johanson,A.Menezes,S.Vanstone.The elliptic curve digital signature algorithm (ECDSA)[J].Internatinal Journal on Information Security,2001(1):36-63.

上一篇:关于我校计算机网络实验室的建设和改进探索 下一篇:基于php的层次目录结构的网络硬盘的设计与实现