标识化卡号信息传输验证方法及系统
技术领域
本发明涉及网络信息安全领域,尤其涉及卡号信息传输验证方法及系统。
背景技术
随着信息网络技术的迅猛发展,网络技术应用在各个领域。网络的开放性和共享性使得网络中传输的信息保密和准确得不到保证。网络中的数据泄露以及数据篡改事件愈演愈烈,APT、黑客、木马、病毒、内鬼令人防不胜防。网络中数据的保密传输成为信息化社会的一个焦点问题,必须有相应的防范解决措施。
在互联网中进行数据交互存在许多不安全因素,尤其是一些机密数据更易遭到黑客的入侵。我们选择对网络中传输的数据进行加密,加密后的口令即使被黑客获得也是不可读的,加密后的数据没有收件人的私钥无法解开,仅仅是无意义的乱码。
当前对数据加密的方法主要分为私钥加密和公钥加密。对于私钥加密,用来加密数据的密钥就是解密信息所使用的密钥。对于公钥加密,具有两个配对的密钥,一个用于加密使用,一个用于解密使用。公钥为公开的,密钥是私人的。两种加密方法都可以实现对网络中传输的数据加密,实现数据安全传输。
数据不仅需要加密,同时也需要在接收到数据时校验数据的完整性,检查数据是否被篡改,防止中间人冒充。
发明内容
为解决上述技术问题,本发明提供一种标识化卡号信息传输验证方法及系统。
本发明的技术方案具体如下:
一种标识化卡号信息传输验证方法,包括:
客户端和服务器分别存储有公用加密算法和公用解密算法,并分别生成用于加密卡号信息的会话密钥;
客户端采用第一算法计算卡号信息,得到标识信息;通过公用加密算法结合会话密钥对卡号信息加密生成第一数据;客户端发送标识信息和第一数据给服务器;
服务器通过公用解密算法和会话密钥解密接收到的第一数据,得到卡号信息;
服务器采用第一算法计算得到的卡号信息生成校验信息,将校验信息与接收到的标识信息进行比对,校验解密后得到的卡号信息是否合法。
本发明通过公用加密算法和会话密钥对卡号信息进行加密,防止卡号信息泄露。通过对卡号信息进行完整性校验可防止卡号信息内容被篡改,防抵赖,防止中间人攻击。
进一步优选地,在客户端和服务器分别生成会话密钥之前还包括初始化步骤,具体为:
服务器产生随机的第一密钥和第二密钥,服务器将第一密钥与加密算法结合,生成一个与第一密钥相关的加密函数,并且服务器将第二密钥与解密算法结合,生成一个与第二密钥相关的解密函数,服务器将加密函数与解密函数发送至客户端;
服务器存储第一密钥、第二密钥、加密算法、解密算法;
客户端存储加密函数和解密函数。
进一步优选地,在客户端和服务器分别生成会话密钥之前还包括身份认证步骤,身份认证步骤在初始化步骤之后具体为:
用户输入用户标识和密码向服务器进行注册;客户端根据用户标识和密码生成第一信息;
客户端通过加密函数加密第一时间生成第一时间信息,再加密第一信息和第一时间信息生成第二信息发送给服务器;
服务器通过解密算法解密第二信息得到第一时间,通过与第二时间比对完成服务器对客户端认证;服务器通过加密算法加密第二时间生成第二时间信息发送给客户端;
客户端通过解密函数解密第二时间信息得到第二时间,通过与第一时间比对完成客户端对服务器认证。
客户端和服务器端分别在各自两端生成相同的密钥,用于对网络中传输的数据加密,减少了密钥传输,确保密钥安全。
进一步优选地,用户标识包括用于唯一标识用户的信息。
进一步优选地,步骤S1客户端和服务器分别生成用于加密卡号信息的会话密钥,具体过程为:
客户端采用第二算法计算第一时间信息生成第三信息,通过加密函数对第一时间信息和第三信息加密生成会话密钥;
服务器采用第二算法计算解密得到的第一时间信息生成第三信息,通过加密算法和第一密钥对第一时间信息和第三信息加密生成会话密钥。
进一步优选地,客户端和服务器生成相同的会话密钥。
本发明在卡号信息加密之前先对卡号信息进行标识化处理,采用第一算法计算卡号信息得到标识信息,以便在传输过程中保证卡号信息不会泄露,同时以便服务器端对数据完整性校验,确保数据准确。
本发明还提供了一种标识化卡号信息传输验证系统,包括客户端和服务器端;
客户端包括:
第一存储模块,用于存储会话密钥、公用加密算法和公用解密算法;
加密模块,用于加密卡号信息生成第一数据;
标识信息生成模块,用于根据卡号信息生成标识信息;
发送模块,用于发送第一数据和标识信息至服务器端;
服务器端包括:
第二存储模块,用于存储会话密钥、公用加密算法和公用解密算法;
接收模块,用于接收第一数据和标识信息;
解密模块,用于解密第一数据获得卡号信息;
标识信息生成模块,用于计算卡号信息生成校验信息;
比对模块,用于比对校验信息和标识信息。
进一步优选地,客户端和服务器端存储有相同的会话密钥。
进一步优选地,比对模块包括当校验信息和标识信息为相同时,比对成功,验证完成。
本发明提供的数据处理方法及系统能够带来以下至少一种有益效果:
1、本发明通过对接收的第一数据进行解密并对卡号信息进行完整性校验,可检验卡号信息的内容是否被篡改,可防抵赖,防止中间人攻击。
2、本发明中客户端与服务器端分别生成相同的密钥,减少密钥传输的问题,能够有效保证密钥的安全。
3、本发明中采用公用加密算法和私有密钥对数据进行加密,能够防止数据泄露。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明:
图1为本发明提供的一种标识化卡号信息传输验证方法流程示意图;
图2为本发明提供的一种标识化卡号信息传输验证方法包含初始化及身份认证步骤的流程示意图;
图3为本发明提供的一种标识化卡号信息传输验证系统的结构组成图
附图标号:
100.客户端,101.第一存储模块,102.加密模块,103.标识信息生成模块,104.发送模块;
200.服务器端,201.第二存储模块,202.接收模块,203.解密模块,204.校验信息生成模块,205.比对模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
作为本发明的一个具体实施例,图1为本发明提供的一种标识化卡号信息传输验证方法的实施例流程示意图。本发明提供了一种标识化卡号信息传输验证方法,包括:
客户端和服务器分别生成用于加密卡号信息的会话密钥;
客户端采用第一算法计算卡号信息,得到标识信息;通过公用加密算法结合会话密钥对卡号信息加密生成第一数据;客户端发送标识信息和第一数据给服务器;
服务器通过公用解密算法和会话密钥解密接收到的第一数据,得到卡号信息;
服务器采用第一算法计算得到的卡号信息,将计算结果与接收到的标识信息进行比对,校验解密后得到的卡号信息是否合法。
本发明通过对卡号信息进行标识化处理,以标识卡号进行交易,保证了真实卡号信息的安全性。
图2为本发明一种标识化卡号信息传输验证方法包含初始化及身份认证步骤的流程图,如图2所示,在步骤S1生成会话密钥之前还包括步骤a1初始化步骤,步骤a1具体为:
服务器产生随机的第一密钥(记为K)和第二密钥(记为K’),服务器将第一密钥K与加密算法(记为E)结合,生成一个与第一密钥K相关的加密函数(记为Ek),并且服务器将第二密钥K’与解密算法(记为D)结合,生成一个与第二密钥K’相关的解密函数(记为Dk’),服务器将加密函数Ek与解密函数Dk’发送至客户端;
服务器存储第一密钥K、第二密钥K’、加密算法E和解密算法D;
客户端存储加密函数和解密函数。
客户端和服务器初始化完成。
如图2所示,在步骤S1和步骤a1之间还包括步骤a2身份认证步骤,步骤a2具体为:
用户输入用户标识和密码向服务器进行注册;客户端根据用户标识和密码生成第一信息;
客户端通过加密函数加密第一时间生成第一时间信息,再加密第一信息和第一时间信息生成第二信息发送给服务器;
服务器通过解密算法解密第二信息得到第一时间,通过与第二时间比对完成服务器对客户端认证;服务器通过加密算法加密第二时间生成第二时间信息发送给客户端;
客户端通过解密函数解密第二时间信息得到第二时间,通过与第一时间比对完成客户端对服务器认证。
具体的,用户在客户端输入用户标识(记为uid)和密码口令(记为pw)。客户端采用第一算法即哈希算法对用户输入的用户标识uid和口令密码pw进行计算,得到一安全单向的散列函数H(pw),记为第一信息M1。
然后,客户端选取当前时间即第一时间Tui,通过存储的加密函数Ek对第一时间Tui加密,即得到第一时间信息Ek(Tui)。客户端对第一时间信息Ek(Tui)和第一信息M1(M=H(pw))进行异或运算处理,得到客户端再通过存储的加密函数Ek对异或结果进行加密得到第二信息M2,M2=Ek 其中Tui为第一时间,pw为密码口令。
接着,客户端将用户输入的用户标识uid和生成的第二信息M2发送给服务器。
服务器首先接收到客户端发送的用户标识uid和第二信息M2。
然后,服务器使用解密算法D和第一密钥K对接收到的第二信息M2进行解密。Dk 得到此为第一时间信息和第一信息M1异或后的结果。服务器再将此结果与H(pw)进行异或运算处理, 得到第一时间信息Ek(Tui)。然后,服务器再通过解密算法D和第一密钥K解密Ek(Tui),即Dk(Ek(Tui)),得到第一时间Tui。
接着,服务器进行用户身份初步认证。服务器存储有用户标识档案List,包括所有合法用户的用户标识uid。其初步认证过程如下:服务器对接收到的用户标识uid与存储的用户标识档案List进行匹配。判断用户标注uid是否存在其存储的用户标识档案内,如果uid∈List,则说明此用户为合法用户,初步认证成功,否则认证结束。
服务器完成用户身份的初步认证后,选取当前的时间即第二时间Tsi,通过加密算法E和第二密钥k’加密第二时间Tsi生成第二时间信息,为Ek’(Tsi)。
服务器计算解密得到的第一时间Tui与其选取的第二时间Tsi的时间差。如果Tsi-Tui<10min(系统设定一个预设值,视网络延时而定,本发明中选取预设值为10min,仅作为本发明的一个优选的预设值),则“服务器对客户端认证成功”,服务器将加密生成的第二时间信息发送给客户端。否则认证失败,结束认证过程。
客户端接收到服务器发送的第二时间信息,通过使用存储的解密函数Dk’解密第二时间信息,Dk’(M3)=Dk’(Ek’(Tsi)),得到第二时间Tsi。
客户端计算解密得到的第二时间Tsi与其选取的第一时间Tui的时间差,如果Tsi-Tui<10min(系统设定一个预设值,视网络延时而定,本发明中选取10分钟作为一个优选的预设值),则“客户端对服务器认证成功”,否则认证失败,结束认证过程。
客户端和服务器完成了身份认证。
如图2所示,客户端和服务器完成初始化和身份认证之后,分别生成用于加密卡号信息的会话密钥,步骤S1具体为:
客户端采用第二算法计算第一时间信息生成第三信息,通过加密函数对第一时间信息和第三信息加密生成会话密钥;
服务器采用第二算法计算解密得到的第一时间信息生成第三信息,通过加密算法和第一密钥对第一时间信息和第三信息加密生成会话密钥。
具体的,本发明中第二算法为取反运算,客户端对第一时间信息Ek(Tui)进行如下运算处理:首先将第一时间信息Ek(Tui)进行取反,得到第三信息,为E’k(Tui)。客户端通过加密函数Ek对第一时间信息Ek(Tui)和第三信息E’k(T)进行加密,生成本发明中的会话密钥Ki,Ki=Ek(Ek(Tui)+E’k(Tui))。
相同的,服务器以同样的运算处理方式接收到的第一时间信息Ek(Tui),将第一时间信息Ek(Tui)进行取反,得到第三信息,为E’k(Tui)。服务器通过加密算法E和第一密钥K对第一时间信息Ek(Tui)和第三信息E’k(T)进行加密,生成本发明中的会话密钥Ki,Ki=Ek(Ek(Tui)+E’k(Tui))。
客户端和服务器生成相同的会话密钥后,进行标识化卡号信息的传输,如图2所示,步骤S2具体为:
传输的卡号信息为M,客户端先通过公用加密算法(记为e)结合会话密钥(记为Ki)加密卡号信息M,得到eKi(M)。客户端采用第一算法计算卡号信息M,得到标识信息,本发明中的第一算法为哈希算法,得到标识信息为H(M),H(M)为安全单向的散列函数。本发明采用哈希算法对待传输的数据M进行处理是为了用于校验传输数据的完整性。
客户端发送第一数据eKi(M)和标识信息H(M)给服务器。
步骤S3具体为:
服务器接收到客户端发送的第一数据eKi(M)和标识信息H(M)。服务器通过公用解密算法(记为d)和会话密钥Ki解密第一数据eKi(M),即dKj(eKi(M)),得到卡号信息,记为M’。
步骤S4具体为:
服务器采用哈希算法计算M’,得到H(M’)。服务器比较计算得到的H(M’)与接收到的H(M)是否相同,如果相同,说明卡号信息完整合法,否则终止会话。
本发明中卡号信息包括用户的银行卡、信用卡、会员卡等信息。
本发明提供的标识化卡号信息传输验证方法将卡号信息转换成标识化的加密信息传送,防止中间人攻击,安全系数高,并在接收端能够校验卡号信息的完整性,防止卡号信息的内容被泄露与篡改,防抵赖,具有更优的技术效果。
如图3所示为本发明提供的标识化卡号信息传输验证系统结构组成图。如图3所示,一种标识化卡号信息传输验证系统,包括客户端100和服务器端200;
客户端100包括:
第一存储模块101,用于存储会话密钥、公用加密算法和公用解密算法;
加密模块102,用于加密卡号信息生成第一数据;
标识信息生成模块103,用于根据卡号信息生成标识信息;
发送模块104,用于发送第一数据和标识信息至服务器端200;
服务器端200包括:
第二存储模块201,用于存储会话密钥、公用加密算法和公用解密算法;
接收模块202,用于接收第一数据和标识信息;
解密模块203,用于解密第一数据获得卡号信息;
校验信息生成模块204,用于计算卡号信息生成校验信息;
比对模块205,用于比对校验信息和标识信息。
本发明客户端100的加密模块102根据公用加密算法结合会话密钥将卡号信息加密成第一数据。标识信息生成模块103采用第一算法计算卡号信息,生成标识信息,本发明中的第一算法为哈希算法。客户端100通过发送模块104发送第一数据和标识信息至服务器端200;
服务器端200通过接收模块202接收到第一数据和标识信息;解密模块203根据公用解密算法结合会话密钥解密接收到的第一数据,获得卡号信息;计算模块采用第一算法计算接收到的卡号信息,生成校验信息,。比对模块205比对校验信息和标识信息,若相同,则接收到的卡号信息为完整,验证完成。
本发明通过公用加密算法结合会话密钥对卡号信息进行加密传输,再通过公用解密算法结合会话密钥解密获得卡号信息,本发明采用的公用加密算法和公用解密算法为AES-128加密算法。
具体的,客户端100和服务器端200存储有相同的会话密钥,用于加密卡号信息,会话密钥是由客户端100和服务器端200分别生成并存储在第一存储模块101和第二存储模块201中。
本发明一种标识化卡号信息传输验证系统的具体工作流程如下:
1.客户端100和服务器端200生成会话密钥。
本发明中第一存储模块101还存储有加密函数;第二存储模块201还存储有加密算法、解密算法以及第一密钥;加密函数由服务器端200根据第一密钥结合加密算法生成,且与第一密钥相关。
客户端100的会话密钥生成过程为:第一时间信息(记为S)是由客户端100通过加密函数对当前时间加密得到的。客户端100对第一时间信息S进行取反运算处理,得到S’。客户端100通过加密函数对第一时间信息S和S’进行加密得到会话密钥。
服务器端200会话密钥生成过程:客户端100将第一时间信息S发送给服务器端200,服务器端200对第一时间信息S采用相同的取反运算处理得到S’,然后通过加密算法和第一密钥对第一时间信息S和S’加密,得到会话密钥。
2.加密卡号信息(记为M)并传输。
客户端100的标识信息生成模块103首先使用哈希算法对卡号信息M进行计算,得到标识化的卡号信息,记为标识信息,其为一安全单向的散列函数H(M)。加密模块102通过公用加密算法结合会话密钥对卡号信息M进行加密,生成第一数据。发送模块104将标识信息H(M)与第一数据发送至服务器端200。
3.解密第一数据获得卡号信息。
服务器端200通过接收模块202接收第一数据和标识信息,解密模块203根据公用解密算法和会话密钥解密接收到的数据,得到标识信息H(M)和卡号信息。
4.校验卡号信息,检查卡号信息M的完整性。
服务器端200校验信息生成模块204同样采用哈希算法对解密出的卡号信息M进行计算,得到一安全单向的散列函数H’(M),即为标识信息。服务器端200比对模块205计算得到的H’(M)与接收到的H(M)是否相同,如果相同,则卡号信息M具有完整性,为合法数据。否则,数据不合法,终止数据会话。
客户端100和服务器端200分别生成相同的会话密钥,减少了密钥传输不安全的问题。本发明提供的标识化卡号信息传输验证系统能够实现数据加密传输和数据完整性校验,防止中间人攻击,安全系数高。
以上对本发明的具体实施例进行了详细描述,但本发明并不限制于以上描述的具体实施例,其只是作为范例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离发明的精神和范围下所做出的均等变换和修改,都应涵盖在本发明的范围内。