APP下载

基于椭圆曲线加密算法的SET协议改进研究

2020-11-12圣文顺王玉祥孙艳文

计算机应用与软件 2020年11期
关键词:标量汉明二进制

圣文顺 王玉祥 孙艳文

1(南京工业大学浦江学院 江苏 南京 211200) 2(南京信息工程大学计算机与软件学院 江苏 南京 210044)

0 引 言

电子商务统指在网络上从事的交易行为,可以用来买卖商品、信息和服务等[1]。由于全程通过互联网络操作,不受地理位置、时间等外界因素的影响,交易方式灵活,耗费的财力和人力少且交易过程简洁,所以备受人们的喜爱[2]。电子商务作为网络信息社会中一种新兴的商务模式,一直在改变着人们的衣食住行。

电子商务的核心问题是如何保证其安全性,由于所有交易环节都在网络上进行,交易双方对彼此的身份知之甚少,这使得交易过程存在一定的安全隐患[3-5]。为了更好地发展电子商务,研究人员着力于研发更为安全、高效的加密技术。

1996年2月,国际组织的两大信用卡发行商MasterCard和VISA共同商议并最终敲定安全电子交易协议,即SET协议[6]。此后,全球各大金融机构都纷纷自发地研发能够应用于SET协议的软件和相关技术。当前,SET协议已经成为全球电子交易领域的规范和标准。SET协议最适合应用于商家与消费者交易模式,可以实现三方认证,因此获得了该行业中的Microsoft、惠普、IBM和美国网景[7-9]等大型公司的支持,并通过了IETF标准的认可,成为商家与消费者模式的权威标准。MasterCard和VISA两大信用卡国际组织于1997年12月共同成立了能够在全球范围内管理与促进安全电子交易SET协议推广应用的安全电子交易有限公司。该公司被授予了一些最高等级的权利,诸如可以认定根认证机构,建立一个具有分层结构的认证系统等。

安全电子交易协议也具有一定的缺陷,例如操作过程不够简单、耗费财力过高且难以普及等,待进一步改进和提高。本文从电子商务SET协议的基本原理[10]出发,对电子支付安全体系中涉及的算法和技术都做了详细的介绍;着重分析研究椭圆曲线加密算法的基础理论框架[11];基于椭圆曲线技术对SET协议进行改进,并融合了MD5哈希生成算法[12]提高数据加密的安全性;通过大量仿真实验进行算法性能对比,验证改进后算法的优越性。

1 基于椭圆曲线的SET协议改进

1.1 基于一补数减法形式的改进算法

为了提高椭圆曲线上标量点乘kP的计算效率[13-15],提出了用二进制的补码来进行运算的改进办法,首先将整数k转换成二进制,然后用二进制位权的补数形式来表示整数k,具体实现算法如下:

1) 一补数减法形式方法。若正整数k的二进制表示为(ki-1,…,k1,k0)2,则将其转换为一补数减法[16-17]形式:

(1)

(100000000)2-(00010100)2-1=

(2)

通过上述计算结果我们可以得出,若k的二进制表示对应的汉明权[18]相比其一补数减法形式较大时,则对其进行转换是非常必要的。因为在标量乘计算中,k越大计算量就越大。

算法1一补数形式计算标量乘的算法

输入:k=(kl-1,…,k1,k0)2,P∈E(Fq)。

输出:Q=kP。

Step2If 0≤i≤l-1

Ifki=1

Q←Q+P;

Else

Q←Q-P;

Step3返回Q;

End

从上述例子可以看出,转换前后运算次数相差两次,很明显经转换后计算次数减少了近一半。将算法1称为一补数减法形式,简称CS形式。将NAF方法[19]与CS方法基于二进制长度的变化进行比较,比较结果如表1所示。

表1 不同二进制长度下NAF与CS方法运算时间对比 ms

可以看出,CS方法很明显比改进前的NAF算法要高效、快速。

2) 部分使用一补数减法形式方法。二进制表示转换成一补数减法形式具有简单、快速的优点,但是在减少二进制表示的汉明权效果上并不是对所有的标量都有效。因此,在CS方法的基础上需做进一步改进,通过特定的算法来判断是否需要进行转换以及对哪一部分进行转换,称该方法为部分使用一补数减法,简称PCS方法,如算法2所示。

算法2将二进制表示的整数转换成部分使用一补数减法

输入:k=(kl-1,…,k1,k0)2。

输出:k的PCS形式k′。

Step1i=0;

Step2Ifi≤l-3

Ifki=ki+1=1

j=i+2;

Ifj≥0

Ifkj=0

Ifj≤l-3且kj+1=kj+2=1

j=j+3;

Else跳出j≥0循环;

Elsej=j+1;

Else Ifl=((j-1)-i+1)>2

If 0≤n≤j-i

kn+i=mn;

i=j;

Elsei=j+2;

Elsei=i+1;

Step3返回k的PCS形式k′;

End

对于是否进行转换,评判标准为:如果有两个连续的“1”则进行标记以便进一步判断。即转换部分所需要满足的条件为:

(3)

式中:i≥2,j≥0,k≥2。式(3)的含义为:如果在扫描过程中遇到两个连续的“1”则先将其进行标记,若扫描到“0”,则继续扫描“0”后面是否有两个“1”,若符合则往下扫描,否则在“0”前终止,所得结果为前面的标记部分TP(i,j,k);接下来计算TP(i,j,k)的长度,如果大于2,则进行转换,小于2则不转换。

算法3PCS形式计算标量乘的算法

输入:k=(kl-1,…,k1,k0)2,P∈E(Fq)。

输出:Q=kP。

Step1计算k的PCS形式k′;

Step2If 0≤i≤length(k′)-1

Q←2Q;

Ifki=1

Q←Q+P;

Else

Q←Q-P;

Step3返回Q;

End

下面举例说明该算法的有效性。

对于一整数1122334455,其二进制形式k为:

k=(1000010111001010111011011110111)2

(4)

转换后的表示为:

(5)

这说明用PCS形式进行转换后,计算次数明显小于二进制的情况,由此得出,改进后的PCS算法在减少计算量方面有着突出的优势。

1.2 算法改进前后比较与分析

将整数k转换成NAF的过程需要进行大量运算,始终保持k值的二进制表示不变,对PCS方法与NAF方法进行对比分析。算法4就是将二进制转换成NAF表示的算法。

算法4二进制表示转换成NAF表示的算法

输入:k=(kl-1,…,k1,k0)2。

输出:k的NAF表示k′。

Step1i=0,C0=0,kl=kl+1=0;

Step2If 0≤i≤l

{

Ci+1=[(ki+ki+1+Ci)/2];

}

Step3返回k的NAF表示k′;

End

将以上转换应用于标量乘算法中就得到了对应的标量乘算法,如算法5所示。

算法5二进制表示转换成NAF表示的标量乘算法

输入:k=(kl-1,…,k1,k0)2,P∈E(Fq)。

输出:Q=kP。

Step1计算k的NAF表示k′;

Step2Q←∞;

Step3If 0≤i≤length(k′)-1

Q←2Q;

Ifki=1

Q←Q+P;

Else

Q←Q-P;

Step4返回Q;

End

表2 NAF表示过程中的一些基本转换对比

由表2中的数据可得,相对于NAF的一些无效转换来说,PCS在减少计算量、提高算法效率方面有着明显的优势。

1.3 改进算法与MD5融合策略

将改进后的算法与MD5哈希算法进行融合,在改进后的算法中添加对信息H运用MD5算法进行128位密码的生成策略,在提高算法效率的同时确保数据的安全性。具体步骤如下:1) 信息H在进行ECC加密的同时进行MD5加密,得到128位密码;2) 在发送信息过程中,发送128位密码和信息H;3) 解密时通过ECC得到信息H,并对信息H进行MD5哈希生成算法融合;4) 对比解密得到的128位密码和接收到的密码是否一致,判断是否接受为信息H。对应流程如图1所示。

图1 融合策略流程

2 实 验

2.1 RSA和椭圆曲线加密算法对比

椭圆曲线加密技术具有高效、快速、低耗等优点[20]。对于相同的安全需求来说,椭圆曲线相比RSA[21]的计算量和消耗的时间都要少,如表3所示。

表3 相同安全强度时RSA与ECC密钥长度比较

根据表3中的数据,在MATLAB中做数据拟合得到曲线如图2所示。

图2 RSA和ECC密钥长度的比较

可以看出,在相同的安全强度下,RSA所需要的密钥量远高于椭圆曲线所需要的密钥量。

2.2 改进前NAF与改进后PCS对比

1) 运算时间的对比。根据NAF方法和CS方法在只有二进制长度作变量情况下运算耗时的差别,本文在MATLAB中做仿真曲线实验,结果如图3所示。

图3 NAF方法和CS方法的运算时间比较

可以看出,CS形式的优势在于它比NAF形式更省时。在算法1中,运算量只来源于位减法,而不像NAF形式需要大量的取模和除运算。因此所提出的改进算法更简单、快速。

2) 汉明权的对比。根据表2对10个不同k值在三种表示形式下的汉明权进行对比,在MATLAB中做仿真曲线实验,结果如图4所示。

可以看出,在减少汉明权方面,PCS形式和NAF表示的效果相同。这表明PCS形式在减少标量乘计算的运算量方面与NAF表示具有相同的效果。

3) 转换次数的对比。对10个不同正整数的二进制表示分别用PCS形式和NAF形式进行转换,得到转换次数的对比数据,在MATLAB中做仿真曲线,结果如图5所示。

图5 不同k值的二进制表示转换成NAF形式和PCS表示的转换次数比较图

图5说明了针对不同二进制表示的k值,将其变换成NAF要比PCS的变换次数多,即NAF表示在进行转换时比PCS形式耗时更多。

尽管一般情况下采用NAF形式能够取得较好的效果,但同时会伴有一些无效的二进制转换导致大量的时间浪费。提出的PCS形式很好地解决了这一问题,只要进行转换必定会带来汉明权的减少,明显地提高了转换处理效率,从而将标量乘的处理时间大幅缩短。

2.3 融合算法性能评估

通过对样本文件进行加密解密操作,包括文件序号、文件存储大小、文件存储时间、文件内存信息和文件大小,具体信息如表4所示。

表4 文件加密时间、存储文件和文件大小

可以看出,加密以及存储大小都在合理范围内,可以有效节省内存空间以及加速加密过程,从而提高效率,验证了本文算法的优越性。

3 结 语

安全在电子商务中不容忽视。本文基于椭圆曲线加密算法对SET协议做出改进,在提高算法效率的同时融合MD5哈希生成算法进一步提高加密的安全性,并通过仿真实验多次对比加密时间和转换次数,验证了改进算法的性能及其优越性。

猜你喜欢

标量汉明二进制
面向ECDSA的低复杂度多标量乘算法设计
用二进制解一道高中数学联赛数论题
有限域上一类极小线性码的构造
有用的二进制
有趣的进度
关于点电荷所形成的电场和电势问题
媳妇管钱
应用动能定理解决多过程问题错解典析
带电的标量场扰动下ReissnerNordstrm Antide Sitter黑洞的不稳定性
一种新的计算汉明距方法