本发明涉及一种电子商务系统,尤其涉及一种基于ECC加密的电子商务系统。
背景技术:
随着当今互联网信息技术以及数字化信息技术的成熟发展,嵌入式系统广泛用于各种电器产品、智能仪表和控设备中,与互联网(Internet)结合是一种必然的趋势。通过手机等智能终端进行网络购物、交易等的电子商务得到了迅速的发展,网络吞吐量也急速上升。目前基于SSL协议的电子商务系统被广泛的采用,其原因在于它被大部分的Web浏览器和Web服务器所内置,比较容易实现成本低,SSL提供了用户和服务器的身份认证、数据的保密性和完整性等功能。但相对于传统的Web服务器,嵌入式Web服务器处理能力较弱、存储空间有限,网络吞吐量较小对于嵌入式服务器资源紧张的特点,需要一种高效安全的策略。
嵌入式智能终端与外部的Internet的通信,需要保证消息的保密性、完整性、不可抵赖以及真实性,网关系统采用安全套接层(Secure Socket Layer,SSL)协议是可行的安全措施。SSL协议介于传输层和应用层之间,提供了数据加密、消息认证和身份认证等安全服务。SSL的数据加密算法用于消息保密性,确保明文消息不会被第三方看到;数字签名算法用于消息的完整性,保证消息在传输过程中不会被篡改;数字证书用于身份认证,确保通信的双方具有真实性和不可抵赖性。
技术实现要素:
本发明的目的是为解决网上交易的安全问题,设计了一种基于ECC加密的电子商务系统。
本发明解决其技术问题所采用的技术方案是:
基于ECC加密的电子商务系统主要针对密钥交换算法以及数字签名算法进行了进行ECC扩展实现。
所述的基于椭圆曲线的密钥交换算法(Elliptic Curve Diffie-Hellman,ECDH)可以使拥有各自椭圆曲线公私钥对的双方在一个不安全的信道上协商出一个共享秘密密钥。
所述的椭圆曲线签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)是数字签名算法(Digital Signature Algorithm,DSA)的ECC扩展,DSA可以用来提供数据源认证、数据完整性和不可否认性;同样的,ECDSA的安全性也是基于ECDLP。
所述的系统采用浏览器/服务器(B/S)架构,对于客户端/服务器(C/S)架构来说,服务器功能比较强大,客户端没有过多的性能要求。
所述的系统Web服务器支持的最高SSL版本为SSLv3,密钥协商算法采用ECDH,数字签名算法采用ECDSA。
所述的系统Web网关服务器在CortexA8开发平台上实现,开发板硬件上采用Samsung OMAP3530处理器、128Mb SDRAM、128Mb NAND Flash。
所述的系统软件上使用Kernel-2.6.35的Linux系统,SSL协议支持库采用开源的密码学安全开发包OpenSSL,Web服务器采用Embedthis Goahead服务器,Goahead支持SSLv3协议、HTTP/1.1协议。
本发明的有益效果是:
基于ECC加密的电子商务系统在CortexA8平台上移植支持SSL协议的Web服务器,对传统的SSL协议进行ECC扩展,支持了ECDH-ECDSA、ECDH-RSA、ECDHE-ECDSA、ECDHE-RSA等密钥协商协议和数字签名组合的密钥套件。与DHE-RSA密钥套件相比,新的密钥套件在同样的安全等级下,以更小的密钥来提高SSL协议握手的处理速度,ECDHE-采用了临时生成的椭圆曲线来提供前向安全性,而在计算量上大于不提供前向安全的ECDH-*。考虑了嵌入式设备资源有限的情况,随着日后安全等级要求的提高,ECC扩展的SSL协议在嵌入式电子商务系统的应用上具有广阔的实用前景。
具体实施方式
基于ECC加密的电子商务系统主要针对椭圆曲线公钥密码体制的密钥交换算法以及数字签名算法进行了进行ECC扩展实现。
设椭圆曲线密码体制的系统参数为D=(q,Fq,E,P,n),其中q∈{p,2m},p为大素数,Fq为有限域,E为有限域上的安全椭圆曲线群,p为基点p∈E(Fq),n为有理点P的阶;此外,处理消息还需要密码学上的消息摘要算法(Hash),表示为:H(·)。
基于椭圆曲线的密钥交换算法(Elliptic Curve Diffie-Hellman,ECDH)可以使拥有各自椭圆曲线公私钥对的双方在一个不安全的信道上协商出一个共享秘密密钥。设A、B是通讯的双方,通过SSL建立起来保密通信之前,需要私下约定通信的密钥Kab。
算法1:ECDH密钥协商
输入:参数组D=(q,Fq,e,p,n)。
输出:共享秘密密钥。
Step1.A选择随机数rA,rA∈Zn;
Step2.B选择随机数rB,rB∈Zn;
Step3.A计算kA=rAP,向B发送kA;
Step4.B计算kB=rBP,向A发送kB;
Step5.B收到后计算kBA=rBkA=rBrAP;
Step6.A收到后计算kAB=rAkB=rArBP;
Step7.得到会话密钥kBA=kAB;
如果攻击者在公开信道上窃听截取消息P、kA=rAP,kB=rBP,为了获取会话密钥kAB,只有求出随机数rA、rB才能获取kAB,那么他将面临椭圆曲线上离散对数(ECDLP)的难题。
椭圆曲线签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)是数字签名算法(Digital Signature Algorithm,DSA)的ECC扩展,DSA可以用来提供数据源认证、数据完整性和不可否认性。同样的,ECDSA的安全性也是基于ECDLP。
算法2:ECDSA签名
输入:参数组D=(q,Fq,E,n),私钥d,消息m。
输出:签名(r,s)。
Step1.A选择随机数k,k∈Zn;
Step2.计算kP=(x1,y1);
Step3.计算r=x1modn,若r=0则转到Step1;Step4.计算e=H(m);
Step5.计算s=k-1(e+dr)modn,若s=0则转到Step1;
Step6.返回(r,s)。
算法3:ECDSA签名验证
输入:参数组D=(q,Fq,E,P,n),公钥Q,消息m,签名(r,s)。
输出:判断签名是否合法。
Step1.检验r和s是否是区间[1,bn-1]内的整数,若任意一个校验失败,则返回“拒绝该签名”;
Step2.计算消息摘要e=H(m);
Step3.计算w=s-1modn
Step4.计算u1=ewmodn,u2=rwmodn;
Step5.计算X=(u1,u2),X=(u1P+u2Q);
Step6.若X=∞返回“拒绝该签名”;
Step7.计算V=x1modnStep8.若V=r,则返回“接收该签名”,否则返回“拒绝该签名”。
本发明设计的电子商务系统采用浏览器/服务器(B/S)架构,对于客户端/服务器(C/S)架构来说,服务器功能比较强大,客户端没有过多的性能要求。Web服务器支持的最高SSL版本为SSLv3,密钥协商算法采用ECDH,数字签名算法采用ECDSA。Web网关服务器在CortexA8开发平台上实现,开发板硬件上采用SamsungOMAP3530处理器、128MbSDRAM、128MbNANDFlash;软件上使用Kernel-2.6.35的Linux系统,SSL协议支持库采用开源的密码学安全开发包OpenSSL,Web服务器采用Embedthis Goahead服务器,Goahead支持SSLv3协议、HTTP/1.1协议。服务器搭建的方法为:
①主机搭建交叉编译环,交编译工具为arm-linux-gcc;
②交叉编译OpenSSL1.0.1e,得到动态库libcrypt.so、libssl.so;
③修改Goahead3.1源码包下Makefile指定SSL扩展包路径为OpenSSL动态库路径,然后交叉编译Goahead;
将服务器可执行文件、动态库、网页包以及证书文件放入开发板文件系统中,完成服务器到S3C2440开发板的移植。浏览器使用目前流行的火狐浏览器(Fire Fox),在设置中将SSLv3.0与TLS1.0选项开启,并在安全设备选项中开启美国联邦信息处理标准(Federal Information Processing Standard,FIPS),完成配置之后在网页地址栏中输入https://服务器IP:端口号即可进行访问。