一种获得数字签名和实现数据安全的方法
技术领域
本发明涉及一种获得数字签名和实现数据安全的方法,特别涉及一种基于数字移动通信技术的获得数字签名和实现数据安全的方法。
背景技术
随着移动通信市场的迅猛发展,各移动运营商之间的竞争也越来越激烈。而他们也面临同样的困扰:一方面手机用户数在快速增长,而另一方面ARPU(Average Revenue Per User即对每个用户的平均收益)却在下降。为了提高ARPU,移动运营商纷纷致力于提供更多的增值服务,以此来刺激用户消费。近几年,基于短信SMS(Short Message Service,即短消息业务)和WAP(WirelessApplication Protocol,即无线应用协议)的数据增值业务取得了较大的发展,而其中最具盈利前景的当属移动商务。有关的组织预测,到2003年,移动电子商务用户规模将超过固定电子商务用户数量,电子支付将进入移动支付时代。因此,移动商务所蕴含的巨大市场,引起了移动运营商与应用服务提供商的极大关注。
应用移动电子商务,必须保证信息的保密性、安全认证性、完整性和身份认证。目前,市场上应用的交易类卡大都采用DES(Data Encryption Standard,即数据加密标准)、3DES(Data Encryption Standard,即三重数据加密标准)对称加解密算法,XOR(Exclusive OR,即异或逻辑运算)或MAC(MessageAuthentication Code,即信息鉴别码)校验码认证法,一定程度上保证了信息的保密性和认证性。但是,单纯采用3DES算法加解密,存在以下问题:首先,交易信息发送和接收双方必须采用唯一不变的传输密钥,对密钥管理提出了非常高的要求,往往是因为对该密钥的管理不慎造成密钥外泄,从而造成数据不安全;其次,长期共用相同的密钥,一旦用穷举法反向推导出传输密钥,信息的安全保密性就难以保障;再次,缺少数字签名机制,无法防止用户抵赖某次交易的可能,也难以保证数据的完整性,使交易双方造成不可估量的损失。
传统的数字签名要求采用公钥/私钥加密算法(非对称加密算法,又称RSA算法)实现,原文信息采用明文传送。数字签名采用了双重加密的方法来进行防伪、防抵赖。其原理为:首先,被发送文件用SHA安全(Secure Hash Algorithm,即Hash运算法则)编码加密产生128BIT的数字摘要;然后发送方用自己的私用密钥对摘要再加密,这就形成了数字签名;将明文原文和加密的摘要同时传给对方;对方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA编码加密产生又一摘要;最后,将解密后的摘要和收到的文件在接收方重新加密产生的摘要互对比,如两者一致,则说明传送过程中信息没有被破坏或篡改过,否则不然。
利用数字签名,能够确认信息是由签名者发送的,并能确认信息自签名后到收到为止未曾作过任何修改。这样数字签名就可用来防止电子信息因易被修改而有人作伪;或冒用别人名义发送信息;或发出(收到)信件后又加以否认等情况发生。
非对称RSA加密算法是一种比较复杂的加密算法,需要作大量的复杂整数运算,对CPU的处理速度、数据处理能力有较高的要求。同时,RSA算法的私有密钥管理机制,需要通过权威的CA(Certification Authoriity,即认证中心)认证机构签发数字证书,操作管理复杂。
而在移动电子商务应用中,用来处理交易信息的是用户识别模块(对于GSM网络,称为SIM(Subscriber Identify Module,即用户识别模块)卡;对于CDMA网络,称为UIM(User Identify Module,即用户标识模块)卡),其芯片的CPU处理速度、数据处理能力较低。采用RSA加密算法运算时间过长,无法满足手机菜单操作的基本视觉效果的要求。
发明内容
本发明的目的在于提供一种获得数字签名的方法,以改变传统的进行数字签名的对象,增强信息的身份认证;
本发明的另一目的是提供一种实现数据安全的方法,在保证数据安全性的同时,避免采用复杂的非对称算法,减少CA认证实施环节,并降低对系统的数据处理速度和处理能力的要求。
本发明的进一步目的是提供一种适用于在数据传输过程中实现数据安全的方法,以在保证数据安全性的同时,提高系统的数据处理速度。
本发明的第一个目的通过以下方式实现:
(1)选取一随机数,以该随机数为初始变量,采用单向不可逆推算法生成单向不可逆推的数据链;
(2)从所述数据链中选取一个值作为初始值,以该初始值为起点,从后往前依次选取所述数据链中的值作为会话密钥,使每次用来进行加解密的会话密钥不断变化;
(3)将所述会话密钥作为数字签名。
本发明的第二个目的通过以下方式实现:
(1)选取一随机数,以该随机数为初始变量,采用单向不可逆推算法(例如Hash函数)生成单向不可逆推的数据链;
(2)从所述数据链中选取一个值作为初始值,以该初始值为起点,从后往前依次选取所述数据链中的值作为会话密钥,使每次用来进行加解密的会话密钥不断变化;
(3)将所述会话密钥作为数字签名。
(4)采用对称加密算法对所述数字签名进行加密;
(5)采用校验码认证法对加密信息进行校验。
本发明的第三个目的通过以下方式实现:
(1)终端生成一随机数,并以该随机数为初始变量,用单向不可逆推算法计算出单向不可逆推的数据链,并取该数据链中的一个值作为初始会话密钥;
(2)用终端内预置的传输密钥对所述初始会话密钥通过对称加密算法进行加密,以得到密文的初始会话密钥并上发给服务器;
(3)所述服务器在收到所述密文的初始会话密钥后,用相同的所述传输密钥通过所述对称加密算法进行解密,将解密得到的初始会话密钥进行注册,此时所述终端和所述服务器的注册会话密钥相同;
(4)将上次在所述数据链中所选用的值的前一个值作为数字签名,用对称加密算法对所述数字签名和请求信息进行加密,获得加密信息;
(5)用校验码认证法对所述加密信息进行校验,获得认证码;
(6)将所述加密信息和所述认证码组成密文请求信息;
(7)将所述终端的注册会话密钥更新为步骤4中所述的数字签名;
(8)发送步骤6中所述的密文请求信息;
(9)所述服务器用所述校验码认证法对所述密文请求信息中的所述加密信息进行校验,若校验值不等于所述认证码,说明数据不完整或不正确,产生数据包丢弃,若相等,则继续进行下一步骤;
(10)用所述服务器的注册会话密钥和所述对称加密算法的逆运算解密出所述请求信息和所述数字签名;
(11)以步骤10中的所述数字签名为变量、用所述单向不可逆推算法计算出该变量的函数值,若该函数值与所述服务器端的注册会话密钥相等,则证明所述请求信息在传送过程中未被破坏或篡改过,否则所述请求信息无效;
(12)将所述服务器的注册会话密钥更新为步骤7中所述终端的注册会话密钥;
(13)根据所述终端发送的所述请求信息进行处理,若有处理后的请求信息需要下发给用户,则用步骤12中新注册的会话密钥进行加密;
(14)若在所述数据链中所选的初始值之前的值已全部用完,则终端重新生成新的单向不可逆推的数据链,重新进行上述操作过程。
在应用本发明时选用适合的对称加密算法可以保证信息的保密性。例如采用3DES算法,由于是DES的三重运算,以当前的技术几乎无法破解密钥,即使能够破解,也需要相当长的时间,但由于用来加解密的密钥每次都不同,偶尔破解出一组密钥也无法影响以后信息的保密性;破密的投入远大于收获,从密码学上就认为加密的信息是安全的;
采用单向不可逆推的数据链(例如Hash数据链)通过数字签名更新注册的会话密钥,使每次用来进行加解密的会话密钥不断变化,实现密钥管理;使传输密钥的使用频率大为降低。还可以通过增加Hash数据链的长度来降低传输密钥被破解的可能。由于Hash数据链采用单向Hash函数计算获得,从后一个值是无法逆向推导出前一个值的,即使传输密钥被破解或者泄露,除非是对传输信息全程跟踪(破密的投入同样远大于收获),否则只要少跟踪一组数据,就无法解密以后的信息,因此对信息的安全保密性影响不大;
在移动交易中,采用单向不可逆推算法(单向Hash函数)实现数字签名的新机制,每张SIM卡或UIM卡每次生成的Hash数据链是不同的,更是不可逆推的,其他途径是无法伪造其数字签名的,实现了信息的身份认证;
采用校验码认证法(如MAC校验认证码)实现信息的校验和安全认证,发送方和接收方都要对传送的数据进行同样的校验,只有数据完整传送,并且没有发生任何改变,即校验码认证法严格一致,才认为数据是正确的,确保了信息的安全认证性和完整性。
如上所述,本发明与传统技术相比,采用了更为简便的算法,保证了信息的保密性、安全认证性、完整性和身份认证性;避免了RSA算法繁琐的私用密钥管理,即减少了CA认证环节,减少了实施流程;采用对称加解密算法、创造性的单向不可逆推的数据链动态密钥管理方法和简化的数字签名方法是非常切实可行的实现数据安全的方法。以移动通信中手机电子支付应用为例,采用该方案对SIM卡或UIM卡芯片CPU的处理速度和数据处理能力没有特殊的要求,非常适合推广应用。
附图说明
图1是生成HASH数据链并注册初始会话密钥的流程图。
图2是卡向交易平台发送第一个交易申请数据的流程图。
图3是交易平台对接收到的交易申请数据的处理流程图。
具体实施方式
以下结合附图,描述本发明在移动交易过程中应用的一个实施例。
以下对照图1说明该实现数据安全的方法中的注册初始会话密钥的原理。
SIM卡或UIM卡在与交易平台进行信息交互的初期,首先要注册初始会话密钥。会话密钥是数据交互双方采取的共同的加解密密钥。
①卡端生成Hash数据链初始数据A
Hash数据链的初始数据A由16个字节组成,包括ICCID(Integrated CircuitCard Identifier,即集成电路卡用户识别号)的后8个字节和8字节的随机数,每张卡的ICCID保障了所有SIM卡或UIM卡生成的数字签名和会话密钥永远不会重复,使得数据安全得到保障。
②计算Hash数据链
采用单向Hash函数(MD5(MD Standards for Message Digest,即MD标准信息摘要))算法计算Hash数据链。即:
B=H(A),C=H(B),…,Y=H(X),Z=H(Y)
B-Z都是16字节数据。由于Hash函数算法的单向性,由Z是无法反向推算出Y的;同理,由Y也无法推算出X,以此类推。SIM卡或UIM卡将Hash数据链A-Z存储在卡的EEPROM用户数据存储区中指定的位置,以便于密钥管理。
③采用卡内预置的传输密钥对初始会话密钥Z用对称加密算法进行加密(本例采用3DES加密),获得密文的初始会话密钥Z,并上发给交易平台;交易平台接收到该密文初始会话密钥Z后,用同样的传输密钥进行3DES解密,将Z作为第一步会话密钥进行注册。
每一笔交易通常都是由SIM卡或UIM卡发起申请,传输数据包括卡的上行交易申请数据和交易平台端的下行交易结果信息。以下对照图2说明卡向交易平台发送第一个交易申请数据的流程。
①设M1为支付请求信息,将Hash数据链中的Y作为第一步数字签名),则:
C(Z)=
E(M1,Y)
其中:Z——当次会话密钥;
E——DES、3DES等对称加密算法;
Y——当次数字签名;
C(Z)——加密信息。
②对加密信息进行MAC校验,获得8字节的MAC认证码。
D(Z)=MAC[C(Z)]
③组成密文交易申请发送信息(C(Z),D(Z))。
④注册会话密钥更新为Y。
⑤发送交易申请信息。
以下对照图3说明交易平台接收端收到卡发送来的密文交易申请信息后的数据处理流程。
①对密文申请信息C(Z)进行MAC校验
D′(Z)=M4C[C(Z)]
判断MAC校验码D′(Z)是否等于D(Z),如果不等,说明数据不完整、不正确,产生数据包丢弃;如果相等,则顺序进行。
②用注册的会话密钥Z和对称加密算法的逆运算解密出M1、Y
③验证数字签名
采用单向Hash函数(MD5)算法计算Z′=H(Y)
如果Z′=Z,证明是该用户发来的信息,并且传送过程中信息没有被破坏或篡改过,实现了信息防伪、防赖。如果Z′≠Z,M1信息无效。
④将注册会话密钥更新为Y;
⑤根据卡发来的交易申请内容M1进行交易处理;如果有交易处理信息需要下发给用户,则用新注册的会话密钥Y进行加密。
卡端用会话密钥Y对下发的信息进行处理。下次卡再有申请信息上发时,X就成了新的数字签名和新的注册会话密钥,以此类推,实现密钥管理和数字签名。当Hash数据链Z-A全部应用完后,卡端生成新的Hash数据链,重新进行上述操作过程。由于新的初始数据A的后8字节是重新生成的新的随机数,即前后两个Hash数据链的数据A-Z重复的概率只有1/264=1/18446744073709551616,可认为会话密钥是不重复的。