CN106357393A - 一种安全的数据传输方法及装置 - Google Patents

一种安全的数据传输方法及装置 Download PDF

Info

Publication number
CN106357393A
CN106357393A CN201610744373.9A CN201610744373A CN106357393A CN 106357393 A CN106357393 A CN 106357393A CN 201610744373 A CN201610744373 A CN 201610744373A CN 106357393 A CN106357393 A CN 106357393A
Authority
CN
China
Prior art keywords
random number
data
key
preset
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610744373.9A
Other languages
English (en)
Other versions
CN106357393B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201610744373.9A priority Critical patent/CN106357393B/zh
Publication of CN106357393A publication Critical patent/CN106357393A/zh
Application granted granted Critical
Publication of CN106357393B publication Critical patent/CN106357393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种安全的数据传输方法及装置,涉及信息安全领域。所述方法包括:***生成随机数作为当前随机数并发送给终端设备,根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥;使用第一密钥对待传输报文进行加密得到第一数据域,根据预设的协议头数据组织头域,使用第二密钥对头域和第一数据域计算出第一校验值;根据头域、第一数据域和第一校验值组织指令并发送给终端设备;接收并解析终端设备返回的应答数据得到操作结果,如操作成功,则根据预设方式更新当前随机数,结束;如操作失败,则结束。本发明中的技术方案,在终端设备与***进行数据传输时,每次采用不同的密钥对数据进行加解密,保证了数据传输的安全性。

Description

一种安全的数据传输方法及装置
技术领域
本发明涉及信息安全领域,尤其涉及一种安全的数据传输方法及装置。
背景技术
在终端设备和***进行数据的传输过程中,需要对数据进行加密;而对数据进行加密则是依靠存储于终端设备内部和***内部的对称密钥完成。现有技术中,普遍的方法是分别在终端设备内部和后台***的内部存储相同的固定的数据作为对称密钥,每次数据的传输均使用固定不变的对称密钥对数据进行加密,使得数据传输的安全性降低,存在容易被黑客破解,数据被篡改的问题。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种安全的数据传输方法及装置。
一方面,本发明提供了一种安全的数据传输方法,包括:
步骤A1:***生成随机数作为当前随机数,发送所述当前随机数给终端设备,并根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥;
步骤A2:所述***使用所述第一密钥对待传输报文进行加密得到第一数据域,根据预设的协议头数据组织头域,使用所述第二密钥对所述头域和所述第一数据域计算出第一校验值;
步骤A3:所述***根据所述头域、所述第一数据域和所述第一校验值组织指令,并将所述指令发送给所述终端设备;
步骤A4:所述***接收并解析所述终端设备返回的应答数据得到操作结果,如所述操作结果为操作成功,则根据预设方式更新所述当前随机数,结束;如所述操作结果为操作失败,则结束。
本发明还提供了一种安全的数据传输方法,包括:
步骤B1:终端设备接收***发送来的随机数,将其作为当前随机数;
步骤B2:所述终端设备接收所述***发送来的指令,解析接收到的指令得到头域、第一数据域和第一校验值;
步骤B3:所述终端设备根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥;
步骤B4:所述终端设备根据所述第二密钥和所述第一校验值校验所述头域和所述第一数据域,如校验成功,则执行步骤B5;如校验失败,则返回错误码给***,结束;
步骤B5:所述终端设备使用所述第一密钥解密所述第一数据域得到传输报文,将所述传输报文发送给卡片并接收所述卡片返回的操作结果,如所述操作结果为操作成功,则组织成功应答数据并返回给所述***,根据预设方式更新所述当前随机数,结束;如所述操作结果为操作失败,则组织失败应答数据并返回给所述***,结束。
另一方面,本发明提供了一种安全的数据传输***,包括:
生成模块,用于生成随机数作为当前随机数;
第一发送模块,用于发送所述生成模块生成的当前随机数给终端设备;
第一计算模块,用于根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥;
加密模块,用于使用所述第一计算模块计算出的第一密钥对待传输报文进行加密得到第一数据域;
第一组织模块,用于根据预设的协议头数据组织当前头域;
第二计算模块,用于使用所述第一计算模块计算出的第二密钥对所述头域和所述第一数据域计算出第一校验值;
第二组织模块,用于根据所述头域、所述第一数据域和所述第一校验值组织指令;
第二发送模块,用于将所述第二组织模块组织的指令发送给所述终端设备;
接收模块,用于接收所述终端设备返回的应答数据;
解析模块,用于解析所述接收模块接收到的应答数据得到操作结果;
更新模块,用于当所述解析模块得到的操作结果为操作成功时,根据预设方式更新所述当前随机数。
本发明还提供了一种安全的数据传输设备,其特征在于,包括:
第一接收模块,用于接收***发送来的随机数,将其作为当前随机数;
第二接收模块,用于接收所述***发送来的指令;
解析模块,用于解析所述第二接收模块接收到的指令得到头域、第一数据域和第一校验值;
第一计算模块,用于根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥,所述当前随机数与所述***中的随机数相同;
校验模块,用于根据所述第二密钥和所述第一校验值校验所述头域和所述第一数据域;
发送模块,用于当所述校验模块校验失败时,返回错误码给***,结束;
解密模块,用于当所述校验模块校验成功时,使用所述第一密钥解密所述第一数据域得到传输报文;
所述发送模块,还用于将所述解密模块得到的传输报文发送给卡片;
所述接收模块,还用于接收所述卡片返回的操作结果;
组织模块,用于当所述接收模块接收到的操作结果为操作成功时,组织成功应答数据;还用于当所述接收模块接收到的操作结果为操作失败时,组织失败应答数据;
所述发送模块,还用于将所述组织模块组织的成功应答数据返回给所述***;还用于将所述组织模块组织的失败应答数据返回给所述***;
更新模块,用于当所述发送模块将所述组织模块组织的成功应答数据返回给***之后,根据预设方式更新所述当前随机数。
本发明与现有技术相比,具有以下优点:
在终端设备与***进行数据传输时,每次采用不同的密钥对数据进行加解密,保证了数据传输的安全性。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种安全的数据传输方法中***的处理方法流程图;
图2为本发明实施例一提供的一种安全的数据传输方法中终端设备的处理方法流程图;
图3为本发明实施例二提供的一种安全的数据传输方法中***的处理方法程图;
图4为本发明实施例三提供的一种安全的数据传输方法中终端设备的处理方法流程图;
图5为本发明实施例四提供的一种安全的数据传输***的模块组成框图;
图6为本发明实施例五提供的一种安全的数据传输设备的模块组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明中的方法,应用于包含***、终端设备和卡片的数据交互过程中,其中,***通过终端设备将数据发送给卡片,卡片根据终端设备发送来的数据执行相应操作得到操作结果,并将操作结果通过终端设备返回给***;终端设备和***之间是以PC端或者移动终端中的应用程序作为传输媒介进行数据交互,例如:电脑中的应用程序、手机中的应用程序等。
实施例一
本发明实施例一提供一种安全的数据传输方法中***的处理方法,如图1所示,包括:
步骤A1:***生成随机数作为当前随机数,发送当前随机数给终端设备,并根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥;
在本实施例中,步骤A1之前,发送当前随机数给终端设备,具体为:
***根据当前随机数组织设置命令,发送设置命令给终端设备;
或者,
***根据预设加密算法对当前随机数进行加密得到密文随机数,发送密文随机数给终端设备;
在本实施例中,步骤A1中,发送当前随机数给终端设备之后,还包括:
步骤a:***接收终端设备返回的第三校验值,并判断接收到的第三校验值是否正确,是则根据当前随机数和与终端设备对应的预设密钥计算出第一密钥和第二密钥,否则结束。
上述步骤a中,判断接收到的的第三校验值是否正确,具体为:
***将当前随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第二校验码,判断第二校验值与第二校验码是否相等,是则确认第二校验值正确,否则确认第二校验值不正确;优选地,第一预设数据为0000000000000000。
进一步地,在本实施例中,步骤A1之前,还包括:
***接收应用程序发送来的终端设备的设备信息,并将接收到的设备信息保存;
步骤A1中,发送当前随机数给终端设备之后,还包括:***根据保存的设备信息获取预置的与终端设备对应的第一预设密钥和第二预设密钥;
相应地,步骤A1中,根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥,具体为:***根据预设算法使用第一预设密钥对当前随机数加密得到第一密钥,使用第二预设密钥对当前随机数加密得到第二密钥。
在本实施例中,随机数具体为长度是16字节的数据;例如,当前随机数为:2a5b67c264f979ea3d5c46b87a32dec4,第一预设密钥为b2a4c87d52e4f6c2514a3b5d85c9e3f0,第二预设密钥为4A1989E4A1917E984A1989E4A1917E98,计算得到的第一密钥为51ADEDEC586947D8B3CE0DB06E26FA37,计算得到的第二密钥为DE4E1819E0DADF44EA602AE5A846DC3A。
更进一步地,在本实施例中,步骤A1中,***生成随机数作为当前随机数,发送当前随机数给终端设备,还可以为:
***发送获取随机数请求给终端设备,接收终端设备返回的随机数,将接收到的随机数作为当前随机数并保存。
步骤A2:***使用第一密钥对待传输报文进行加密得到第一数据域,根据预设的协议头数据组织头域,使用第二密钥对头域和第一数据域计算出第一校验值;
在本实施例中,***使用第一密钥对待传输报文进行加密得到第一数据域,具体包括:
步骤D1:***判断待传输报文是否需要填充,是则在待传输报文的预定位置填充预设数据得到第一待加密数据,执行步骤D2,否则将待传输报文作为第一待加密数据,执行步骤D2;
在本实施例中,***判断待传输报文是否需要填充,具体为:
***将待传输报文的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认待传输报文无需填充;否则,确认待传输报文需要填充;
优选地,第一预设长度为2个字节,用于在待传输报文的左端填充待传输报文的长度,第二预设长度为8个字节。
进一步地,在待传输报文的预定位置填充预设数据得到第一待加密数据,具体为:
在待传输报文的左端填充待传输报文的长度,并在待传输报文的右端填充一个字节的第二预设数据和最少字节的第三预设数据,使第一待加密数据的长度为第二预设长度的整数倍;
优选地,在本实施例中,第二预设数据为80,第三预设数据为00。
步骤D2:***使用第一密钥对第一待加密数据进行加密得到第一密文数据,将得到的第一密文数据作为第一数据域。
进一步地,在本实施例中,头域中Lc字节上的数据具体为第一数据域的长度与第二长度之和,优选地,第二长度为4个字节,即第一校验值的长度为4个字节;
更进一步地,在本实施例中,***使用第二密钥对头域和第一数据域计算出第一校验值,具体为:
***将头域和第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用第二密钥对第一待校验数据进行计算得到计算结果,读取计算结果中预设字节上的数据作为第一校验值;优选地,第四数据为8000000000000000。
例如,在本实施例中,待传输报文为010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b86,填充后得到的第一待加密数据为001F010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b8680000000000000;使用第一密钥对第一待加密数据加密得到的第一数据域为7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B4,根据预设的协议头数据组成的头域为7E5000002C,根据第二密钥对头域和第一数据域计算出的第一校验值为3DD52B8F。
步骤A3:***根据头域、第一数据域和第一校验值组织指令并将指令发送给终端设备;
具体地,***将头域、第一数据域和第一校验值顺序拼接得到指令,例如,根据上述头域、第一数据域和第一校验值组织的指令为
7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B43DD52B8F。
步骤A4:***接收并解析终端设备返回的应答数据得到操作结果,如操作结果为操作成功,则根据预设方式更新当前随机数,结束;如操作结果为操作失败,则结束。
在本实施例中,***接收并解析终端设备返回的应答数据得到操作结果,具体为:
***解析接收到的应答数据得到第二数据域和第二校验值,根据第二密钥和第二校验值校验第二数据域,如果校验成功,则根据第一密钥解密第二数据域得到第二待加密数据,解析第二待加密数据得到明文应答数据,解析明文应答数据得到操作结果;如果校验失败,则结束。
例如,接收到的应答数据为164F22B44E1894BE308AFF09AB36F390AB08D6C6,其中,第二数据域为164F22B44E1894BE308AFF09AB36F390,第二校验值为AB08D6C6,第二待加密数据为00080102900002029000800000000000,明文应答数据为0102900002029000,得到的操作结果为9000,表示操作成功。
进一步地,在本实施例中,根据预设方式更新当前随机数,具体为:
***将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
***将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;
或者,
***根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。
例如,将当前随机数的值增加1后得到2a5b67c264f979ea3d5c46b87a32dec5,将2a5b67c264f979ea3d5c46b87a32dec5作为当前随机数;
更进一步地,在本实施例中,步骤A4中,还包括:
当操作结果为操作成功时,若还有待传输报文,则返回步骤A1。
本实施例还提供了一种安全的数据传输方法中终端设备的处理方法,如图2所示,包括:
步骤B1:终端设备接收***发送来的随机数,将其作为当前随机数;
在本实施例中,步骤B1,具体为:
终端设备接收***发送来的设置命令,解析设置命令得到随机数,将得到的随机数作为当前随机数;
或者,
终端设备接收***发送来的密文随机数,根据预设加密算法对密文随机数解密得到随机数,将得到的随机数作为当前随机数;
在本实施例中,步骤B1之后,还包括:终端设备根据接收到的随机数计算第三校验值,并将第三校验值发送给***;
其中,根据接收到的随机数计算第三校验值,具体为:终端设备将接收到的随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第二校验值,优选地,第一预设数据为0000000000000000。
进一步地,在本实施例中,随机数具体为长度是16字节的数据,例如,当前随机数为2a5b67c264f979ea3d5c46b87a32dec4。
更进一步地,在本实施例中,步骤B1还可以为:
步骤f:终端设备接收***发送来的获取随机数请求,并将预设的随机数作为当前随机数返回给***。
步骤B2:终端设备接收***发送来的指令,解析接收到的指令得到头域、第一数据域和第一校验值;
步骤B3:终端设备根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥;
具体地,终端设备读取自身预置的第一预设密钥和第二预设密钥,根据预设算法使用第一预设密钥对当前随机数加密得到第一密钥,使用第二预设密钥对当前随机数加密得到第二密钥;优选地,预设算法为3DES运算;
在本实施例中,第一预设密钥和第二预设密钥在终端设备出厂时预置在终端设备内部,例如,第一预设密钥为b2a4c87d52e4f6c2514a3b5d85c9e3f0,第二预设密钥为4A1989E4A1917E984A1989E4A1917E98;使用第一预设密钥对当前随机数加密得到的第一密钥为51ADEDEC586947D8B3CE0DB06E26FA37,使用第二预设密钥对当前随机数加密得到第二密钥为DE4E1819E0DADF44EA602AE5A846DC3A。
步骤B4:终端设备根据第二密钥和第一校验值校验头域和第一数据域,如校验成功,则执行步骤B5;如校验失败,则返回错误码给***,结束;
具体地,终端设备将头域和第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用第二密钥对第一待校验数据计算得到计算结果,读取计算结果中预设字节上的数据作为第一校验码,判断第一校验码与第一校验值是否相同,是则确认校验成功,否则,确认校验失败;优选地,第四预设数据为8000000000000000;
步骤B5:终端设备根据第一密钥解密第一数据域得到传输报文,将传输报文发送给卡片并接收卡片返回的操作结果,如操作结果为操作成功,则组织成功应答数据并返回给***,根据预设方式更新当前随机数,结束;如操作结果为操作失败,则组织失败应答数据并返回给***,结束。
在本实施例中,终端设备根据第一密钥解密第一数据域得到传输报文,具体为:
终端设备根据预设算法使用第一密钥解密第一数据域得到第一待加密数据,解析第一待加密数据得到传输报文的长度,根据传输报文的长度,读取相应数据得到传输报文。
在本实施例中,终端设备组织应答数据,具体包括:
终端设备根据操作结果组织明文应答数据,根据明文应答数据组织第二待加密数据,使用第一密钥对第二待加密数据进行加密得到第二数据域,将第二数据域填充第四预设数据得到第二待校验数据,根据预设算法使用第二密钥对第二待校验数据计算出第二校验值,将第二数据域、第二校验值拼接得到应答数据。
进一步地,在本实施例中,根据预设方式更新当前随机数,具体为:
终端设备将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
终端设备将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;
或者,
终端设备根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。
更进一步地,在本实施例中,步骤B5中,根据预设方式更新当前随机数之后,还包括:
终端设备判断等待接收数据时长是否超过预设时长,是则关机,结束,否则返回步骤B2。
实施例二
本发明实施例二提供一种安全的数据传输方法中***的处理方法,当应用程序将获取到的终端设备的设备信息和用户输入的交易数据发送给***之后,如图3所示,***执行以下操作:
步骤201:***接收来自应用程序的终端设备的设备信息和交易数据,并将设备信息保存,将交易数据作为当前交易数据,执行步骤202;
优选地,在本实施例中,设备信息为设备序列号;
例如,接收到的设备信息为2016052611122233,交易数据为100.00,其中,交易数据表示充值100元。
步骤202:***生成随机数,将其作为当前随机数,根据当前随机数组织设置命令并发送给终端设备;
在本实施例中,随机数具体为长度是16字节的数据,例如,***生成的随机数为:2a5b67c264f979ea3d5c46b87a32dec4;
发送的设置命令为:7E53000010012a5b67c264f979ea3d5c46b87a32dec4。
进一步地,在本实施例中,步骤202,还可以为:***发送获取随机数请求给终端设备,接收终端设备返回的随机数,将其作为当前随机数并保存。
步骤203:***接收终端设备返回的第三校验值,判断第三校验值是否正确,是则执行步骤204,否则返回交易失败信息给终端设备,结束;
具体地,***将当前随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第三校验码,判断第三校验值与第三校验码是否相等,是则确认第三校验值正确,否则确认第三校验值不正确;
优选地,在本实施例中,第一预设数据为0000000000000000,预设算法为3DES运算,预设字节为运算结果中第一个字节至第四个字节,;
例如,在本实施例中,***接收到的第二校验值为D49C25C6,***将当前随机数2a5b67c264f979ea3d5c46b87a32dec4与第一预设数据0000000000000000进行3DES运算得到运算结果D49C25C67C864FB2,读取运算结果第一个字节至第四个字节上的数据D49C25C6作为第三校验码,与第三校验值相同,则确认第三校验值正确。
进一步地,在本实施例中,当***返回交易失败信息给终端设备时,还包括PC端或者移动终端中的应用程序显示交易失败信息。
步骤204:***根据保存的设备信息获取对应的终端设备的第一预设密钥和第二预设密钥并保存;
需要说明地,第一预设密钥和第二预设密钥在终端设备出厂时预先设定并保存在终端设备中和***中;
具体地,***在安全数据库中查找到与保存的设备信息相同的设备信息,读取其对应的第一预设密钥和第二预设密钥,并将其保存到预设存储区中;例如,第一预设密钥为b2a4c87d52e4f6c2514a3b5d85c9e3f0,第二预设密钥为4A1989E4A1917E984A1989E4A1917E98。
步骤205:***使用保存的第一预设密钥对当前随机数进行加密得到密文第一预设密钥,将密文第一预设密钥作为当前第一密钥;
优选地,***将保存的第一预设密钥与当前随机数进行3DES运算得到密文第一预设密钥,将密文第一预设密钥作为当前第一密钥;
例如,在本实施例中,根据保存的第一预设密钥b2a4c87d52e4f6c2514a3b5d85c9e3f0对当前随机数2a5b67c264f979ea3d5c46b87a32dec4进行3DES运算得到密文第一预设密钥51ADEDEC586947D8B3CE0DB06E26FA37,将其作为当前第一密钥。
步骤206:***使用保存的第二预设密钥对当前随机数进行加密得到密文第二预设密钥,将密文第二预设密钥作为当前第二密钥;
优选地,***将保存的第二预设密钥与当前随机数进行3DES运算得到密文第二预设密钥,将密文第二预设密钥作为当前第二密钥;
例如,在本实施例中,将保存的第二预设密钥4A1989E4A1917E984A1989E4A1917E98与当前随机数2a5b67c264f979ea3d5c46b87a32dec4进行3DES运算得到密文第二预设密钥DE4E1819E0DADF44EA602AE5A846DC3A,将其作为当前第二密钥。
步骤207:***根据当前交易信息组织待传输报文,并将组织的待传输报文作为当前待传输报文;
例如,***根据上述当前交易信息“充值100.00元”,组织得到当前待传输报文为010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b86。
步骤208:***使用当前第一密钥对当前待传输报文加密得到当前密文待传输报文,将当前密文待传输报文作为当前第一数据域;
在本实施例中,步骤208具体包括:
步骤208-1:***判断当前待传输报文是否需要填充,是则执行步骤208-2,否则执行步骤208-4;
具体地,***将当前待传输报文的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认当前待传输报文无需填充,否则确认当前待传输报文需要填充;
优选地,在本实施例中,第一预设长度为2个字节,用于填充当前待传输报文的长度,第二预设长度为8个字节。
步骤208-2:***在当前待传输报文的预定位置填充预设数据得到当前第一待加密数据,使当前第一待加密数据的长度为第二预设长度的整数倍;
优选地,***在当前待传输报文的左端填充当前待传输报文的长度,且占用2个字节,并在当前待传输报文的右端填充一个字节的第二预设数据和最少字节的第三预设数据;优选地,第二预设数据为80,第三预设数据为00;
例如,在本实施例中,当前待传输报文的长度为31个字节,转换为二进制表示为001F,可知需要填充6个字节的00;则将当前待传输报文的长度001F填充在当前待传输报文的左端,并占用2个字节,在当前待传输报文的右端填充1个字节的80和6个字节的00,得到当前第一待加密数据001F010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b8680000000000000,当前待加密数据的长度为40个字节。
步骤208-3:***使用当前第一密钥对当前第一待加密数据进行加密得到当前第一密文待传输报文,将当前第一密文待传输报文作为当前第一数据域;
优选地,***根据3DES算法使用当前第一密钥对当前第一待加密数据进行加密;
例如,在本实施例中,***根据3DES算法使用当前第一密钥51ADEDEC586947D8B3CE0DB06E26FA37对当前第一待加密数据001F010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b8680000000000000进行加密,得到的当前第一数据域为7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B4。
步骤208-4:***将当前待传输报文作为当前第一待加密数据,使用当前第一密钥对当前第一待加密数据进行加密得到当前第一密文待传输报文,将当前第一密文待传输报文作为当前第一数据域;
具体地,***根据3DES算法使用当前第一密钥对当前待传输报文进行加密得到当前第一密文待传输报文。
步骤209:***根据预设的协议头数据组织当前头域;
在本实施例中,头域具体包括CLA、INS、P1、P2、Lc,其中Lc具体为当前第一数据域的长度与第二长度之和,其中第二长度为4个字节,即校验得到的当前第一校验值的长度;
例如,在本实施例中,组织得到的当前头域为7E5000002C。
步骤210:***使用当前第二密钥对当前头域和当前第一数据域计算出当前第一校验值,并根据当前头域、当前第一数据域和当前第一校验值组织当前指令,并将当前指令发送给终端设备;
具体地,***将当前头域和当前第一数据域顺序拼接后的数据填充第四预设数据得到当前第一待校验数据,根据预设算法用当前第二密钥对当前第一待校验数据计算得到计算结果,取计算结果中预设字节上的数据作为当前第一校验值,并将当前头域、当前第一数据域和当前第一校验值顺序拼接得到当前交易指令;
优选地,第四预设数据为8000000000000000,预设算法为3DES运算,预设字节为计算结果中第一个字节至第四个字节;
例如,在本实施例中,得到当前第一待校验数据为7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B48000000000000000,使用当前第二密钥DE4E1819E0DADF44EA602AE5A846DC3A对当前第一待校验数据计算得到的计算结果为3DD52B8FD0E97498,当前第一校验值为3DD52B8F,当前指令为7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B43DD52B8F。
步骤211:***根据当前第二密钥校验当前应答数据,如校验成功,则执行步骤212;如校验失败,则返回交易结束信息给终端设备,结束;
需要说明地,在本实施例中,当前应答数据具体为“当前第二数据域+当前第二校验值”的形式;
具体地,***解析当前应答数据得到第二数据域和第二校验值,根据当前第二密钥对当前第二数据域计算当前第二校验码,判断计算得到的当前第二校验码与当前第二校验值是否相同,是则确认校验成功,否则确认校验失败;
更加具体地,***读取当前应答数据中最后四个字节上的数据得到当前第二校验值,将除去当前第二校验值的其他数据作为当前第二数据域;
例如,在本实施例中,当前应答数据为164F22B44E1894BE308AFF09AB36F390AB08D6C6,当前第二校验值为AB08D6C6,当前第二数据域为164F22B44E1894BE308AFF09AB36F390;***将当前第二密钥DE4E1819E0DADF44EA602AE5A846DC3A对当前第二数据域计算得到当前第二校验码为AB08D6C6,确认当前应答数据合法。
进一步地,在本实施例中,当***返回交易失败信息给终端设备时,还包括:PC端或者移动终端中的应用程序显示交易失败。
步骤212:***根据当前第一密钥解密当前应答数据得到当前明文应答数据,解析当前明文应答数据得到当前操作结果,如当前操作结果为操作成功,则执行步骤213;如当前操作结果为操作失败,则交易失败,结束;
具体地,***使用当前第一密钥解密当前第二数据域得到当前第二待加密数据,解析第二待加密数据得到当前明文应答数据,解析当前明文应答数据得到当前操作结果;
更加具体地,***根据3DES算法用当前第一密钥解密当前第二数据域得到当前第二待加密数据,读取当前第二待加密数据中前两个字节上的数据得到当前明文应答数据的长度,根据当前明文应答数据的长度读取当前第二待加密数据中第三个字节(含第三个字节)之后的相应数据得到当前明文应答数据,解析当前明文应答数据得到当前操作结果;
例如,在本实施例中,***根据3DES算法用当前第一密钥51ADEDEC586947D8B3CE0DB06E26FA37解密当前第二数据域164F22B44E1894BE308AFF09AB36F390得到的当前第二待加密数据为00080102900002029000800000000000,当前明文应答数据为0102900002029000,得到的当前操作结果为9000,即操作成功。
进一步地,在本实施例中,当当前操作结果为操作失败时,还包括:PC端或者移动终端中的应用程序显示交易失败。
步骤213:***判断本次交易是否结束,是则结束,否则根据预设方式更新当前随机数,将更新后的随机数作为当前随机数,将当前操作结果作为当前交易信息,返回步骤205。
在本实施例中,根据预设方式更新当前随机数,将更新后的随机数作为当前随机数,具体为:
***将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
***将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;
或者,
***根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。
需要说明地,***与终端设备采用相同的方式更新当前随机数。
优选地,在本实施例中,将当前随机数的值增加1后的值作为当前随机数,例如,得到当前随机数位2a5b67c264f979ea3d5c46b87a32dec5;
进一步地,在本实施例中,当交易结束时,还包括:PC端或者移动终端中的应用程序显示交易结束信息。
更进一步地,在本实施例中,步骤202之前可以包括:
步骤e1:***判断当前交易是否为首次交易,是则执行步骤202,否则执行步骤e2;
具体地,***判断是否接收到设备信息,是则确认当前交易为首次交易,否则确认当前交易不是首次交易。
步骤e2:***将当前随机数改变预设步长后,作为当前随机数,执行步骤205。
相应地,步骤213替换为:
步骤213’:***判断本次交易是否结束,是则结束,否则将当前操作结果作为当前交易数据,返回步骤e1。
实施例三
本发明实施例三提供一种安全的数据传输方法中终端设备的处理方法,如图4所示,包括:
步骤301:终端设备等待并接收***发送来的设置命令,解析设置命令得到随机数,将其作为当前随机数并保存;
具体地,终端设备接收***发送来的设置命令,读取设置命令中第7个字节至最后一个字节上的数据得到随机数,将其作为当前随机数并保存;
在本实施例中,随机数具体为长度是16字节的数据;例如,终端设备接收到的设置命令为7E53000010012a5b67c264f979ea3d5c46b87a32dec4,读取的随机数为2a5b67c264f979ea3d5c46b87a32dec4。
在本实施例中,步骤301还可以为:终端设备接收***发送来的获取随机数请求,并将预设的随机数作为当前随机数返回给***。
进一步地,在本实施例中,步骤301之前,还包括:终端设备接收应用程序发送来的获取设备信息指令,并读取自身的设备信息并发送给应用程序;
优选地,在本实施例中,设备信息具体为设备的序列号,终端设备接收到获取设备信息指令为7E52000001;
更加具体地,在获取设备信息指令中,优选地,当第五个字节上的数据为01时,表示获取终端设备的序列号,当第五个字节上的数据为02时,表示获取终端设备的蓝牙名称,当第五个字节上的数据为03时,表示获取终端设备的固件版本号,当第五个字节上的数据为04时,表示获取卡片的状态,当第五个字节上的数据为00时,表示获取上述所有信息;
例如,在本实施例中,终端设备读取到的自身的序列号为2016052611122233。
步骤302:终端设备根据当前随机数计算第三校验值,并将第三校验值发送给***;
具体地,终端设备将当前随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第三校验值,并将第三校验值发送给***;
优选地,在本实施例中,第一预设数据为0000000000000000,预设算法为3DES运算,预设字节为运算结果中第一个字节至第四个字节;
例如,在本实施例中,终端设备将当前随机数2a5b67c264f979ea3d5c46b87a32dec4与0000000000000000进行3DES运算得到运算结果D49C25C67C864FB2,终端设备读取运算结果第一个字节至第四个字节上的数据D49C25C6作为第三校验值,并发送给***;
需要说明地,在本实施例中,***接收到第三校验值后,对第三校验值进行校验,当校验失败时,还包括:终端设备接收***返回的交易结束信息,且PC端或者移动终端中的应用程序显示交易失败信息。
步骤303:终端设备等待并接收***发送来的指令,并将其作为当前指令;
例如,接收到的当前指令为7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B43DD52B8F。
步骤304:终端设备解析当前指令得到当前头域、当前第一数据域和当前第一校验值;
具体地,终端设备读取当前指令前五个字节上的数据得到当前头域,读取当前指令最后四个字节上的数据得到当前第一校验值,中间的数据为当前第一数据域;
例如,在本实施例中,根据上述当前指令,得到当前头域为7E5000002C,当前第一数据域为7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B4,当前第一校验值为3DD52B8F。
步骤305:终端设备读取自身预置的第一预设密钥,使用第一预设密钥对当前随机数进行加密得到密文第一预设密钥,将密文第一预设密钥作为当前第一密钥;
在本实施例中,第一预设密钥在终端设备出厂时预定并保存在终端设备的内部,例如,第一预设密钥为b2a4c87d52e4f6c2514a3b5d85c9e3f0;
优选地,***将第一预设密钥与当前随机数进行DES运算得到密文第一预设密钥,将密文第一预设密钥作为当前第一密钥;
例如,在本实施例中,将第一预设密钥b2a4c87d52e4f6c2514a3b5d85c9e3f0与当前随机数2a5b67c264f979ea3d5c46b87a32dec4进行3DES运算得到51ADEDEC586947D8B3CE0DB06E26FA37,将其作为当前第一密钥。
步骤306:终端设备读取自身预置的第二预设密钥,使用第二预设密钥对当前随机数进行加密得到密文第二预设密钥,将密文第二预设密钥作为当前第二密钥;
在本实施例中,第二预设密钥在终端设备出厂时预定且保存在终端设备的内部,例如,第二预设密钥为4A1989E4A1917E984A1989E4A1917E98;
优选地,在本实施例中,***将当前第二预设密钥与当前随机数进行3DES运算得到密文第二预设密钥,将密文第二预设密钥作为当前第二密钥;
例如,在本实施例中,将第二预设密钥4A1989E4A1917E984A1989E4A1917E98与当前随机数2a5b67c264f979ea3d5c46b87a32dec4进行3DES运算得到DE4E1819E0DADF44EA602AE5A846DC3A,将其作为当前第二密钥;
可选地,在本实施例中,步骤305和步骤306的顺序可以对换。
步骤307:终端设备根据当前第二密钥、和当前第一校验值校验当前头域和当前第一数据域,如校验成功,则执行步骤308,如校验失败,则返回错误码给***,结束;
具体地,终端设备将当前头域和当前第一数据域顺序拼接后的数据填充第四预设数据得到当前第一待校验数据,根据预设算法使用第二密钥对当前第一待校验数据计算得到计算结果,读取计算结果中预设字节上的数据作为当前第一校验码,判断当前第一校验码与当前第一校验值是否相同,是则确认校验成功,否则,确认校验失败;
优选地,第四预设数据为8000000000000000,预设算法为3DES运算,预设字节为计算结果中第一个字节至第四个字节;
例如,在本实施例中,得到当前第一待校验数据为7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B48000000000000000,使用当前第二密钥DE4E1819E0DADF44EA602AE5A846DC3A对当前第一待校验数据计算得到的计算结果为3DD52B8FD0E97498,当前第一校验码为3DD52B8F,确认当前第一校验值正确。
进一步地,在本实施例中,当交易失败时,还包括:PC端或者移动终端中的应用程序显示交易失败信息。
步骤308:终端设备使用当前第一密钥解密当前指令得到当前传输报文;
具体地,终端设备根据预设算法使用当前第一密钥解密当前第一数据域得到当前第一待加密数据,解析当前第一待加密数据得到当前传输报文的长度,根据当前传输报文的长度,读取相应数据得到当前传输报文;
更加具体地,终端设备根据3DES算法使用当前第一密钥解密当前第一数据域得到当前第一待加密数据,读取当前第一待加密数据中前两个字节上的数据得到当前传输报文的长度,根据当前传输报文的长度,读取当前第一待加密数据中第三个字节(含第三个字节)之后的相应数据得到当前传输报文;
例如,在本实施例中,根据3DES算法使用当前第一密钥51ADEDEC586947D8B3CE0DB06E26FA37对当前第一数据域7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B4进行解密得到的当前第一待加密数据为001F010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b8680000000000000,当前传输报文的长度为001F,当前传输报文为010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b86。
步骤309:终端设备发送当前传输报文给卡片并接收卡片返回的当前操作结果,如当前操作结果为操作成功,则执行步骤310,如当前操作结果为操作失败,则组织失败应答数据,并将失败应答数据作为当前应答数据返回给***,结束;
在本实施例中,步骤309还包括:当终端设备自身出现错误时,终端设备将错误码作为当前应答数据返回给***,结束;
进一步地,在本实施例中,组织失败应答数据的方法同组织成功应答数据的方法相同,不再赘述。
步骤310:终端设备根据当前操作结果组织当前明文成功应答数据;
例如,在本实施例中,组织的当前成功明文应答数据为:0102900002029000。
步骤311:终端设备根据当前第一密钥对当前明文成功应答数据进行加密得到当前密文成功应答数据,将当前密文成功应答数据作为当前第二数据域;
在本实施例中,步骤311具体包括:
步骤311-1:终端设备判断当前明文成功应答数据是否需要填充,是则执行步骤311-2,否则执行步骤311-4;
具体地,终端设备将当前明文成功应答数据的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认当前明文成功应答数据无需填充,否则确认当前明文成功应答数据需要填充;
优选地,在本实施例中,第一预设长度为2个字节,用于填充当前明文成功应答数据的长度,第二预设长度为8个字节;
步骤311-2:终端设备将当前明文成功应答数据的预定位置填充预设数据得到当前第二待加密数据,使当前第二待加密数据的长度为第二预设长度的整数倍;
优选地,终端设备在当前明文成功应答数据的左端填充当前明文成功应答数据的长度,并占用2个字节,在当前明文成功应答数据的右端填充1个字节的第二预设数据和最少字节的第三预设数据得到当前第二待加密数据,使当前第二待加密数据的长度为8字节的整数倍;优选地,第二预设数据为80,第三预设数据为00;
例如,在本实施例中,当前明文应答数据的长度为8个字节,转换为二进制表示为0008,可知需要填充5个字节的00;则将0008填充在当前明文应答数据的左端,并占用2个字节,在当前明文应答数据的右端填充1个字节的80和5个字节的00,得到的当前第二待加密数据为00080102900002029000800000000000;
步骤311-3:终端设备使用当前第一密钥对当前第二待加密数据进行加密得到当前密文成功应答数据,将当前密文成功应答数据作为当前第二数据域;
具体地,终端设备根据3DES算法使用当前第一密钥对当前第二待加密数据进行加密;
例如,在本实施例中,终端设备根据3DES算法使用当前第一密钥51ADEDEC586947D8B3CE0DB06E26FA37对上述当前第二待加密数据进行加密得到当前第二数据域为164F22B44E1894BE308AFF09AB36F390。
步骤311-4:终端设备将当前明文成功应答数据作为当前第二待加密数据,使用当前第一密钥对当前第二待加密数据进行加密得到当前密文成功应答数据,将当前密文成功应答数据作为当前第二数据域。
步骤312:终端设备使用当前第二密钥对当前第二数据域计算出当前第二校验值;
具体地,终端设备对当前第二数据域进行数据填充得到当前第二待校验数据,根据3DES算法用当前第二密钥对当前第二待校验数据计算得到计算结果,取计算结果第一个字节至第四个字节上的数据作为当前第二校验值;
优选地,***在当前第二数据域的右端填充第四数据得到当前第二待校验数据,第四数据为8000000000000000;
例如,在本实施例中,当前第二待校验数据为164F22B44E1894BE308AFF09AB36F3908000000000000000,使用当前第二密钥对其计算得到的计算结果为AB08D6C64514AFAB,当前第二校验值为AB08D6C6。
步骤313:终端设备根据当前第二数据域和当前第二校验值组织当前成功应答数据,并将当前成功应答数据作为当前应答数据发送给***;
具体地,终端设备将当前第二数据域与当前第二校验值顺序拼接得到当前成功应答数据,并将当前成功应答数据作为当前应答数据发送给***;
例如,在本实施例中,终端设备根据当前第二数据域和当前第二校验值组织得到的当前应答数据为164F22B44E1894BE308AFF09AB36F390AB08D6C6。
步骤314:终端设备根据预设方式更新当前随机数,将更新后的随机数作为当前随机数,进入空闲状态,当接收到***发送的指令时,将接收到的指令作为当前指令,返回步骤304;
在本实施例中,根据预设方式更新当前随机数,将更新后的随机数作为当前随机数,具体为:
终端设备将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
终端设备将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;
或者,
终端设备根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。
需要说明地,终端设备与***采用相同的方式更新当前随机数;
优选地,在本实施例中,将当前随机数的值增加1后的值作为当前随机数,例如,得到当前随机数为2a5b67c264f979ea3d5c46b87a32dec5;
进一步地,在本实施例中,当终端设备处于空闲状态超过预设时长时,自动关机;优选地,在本实施例中,预设时长为3分钟。
实施例四
本发明实施例四提供一种安全的数据传输***,如图5所示,包括:
生成模块401,用于生成随机数作为当前随机数;
第一发送模块402,用于发送生成模块401生成的当前随机数给终端设备;
第一计算模块403,用于根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥;
加密模块404,用于使用第一计算模块403计算出的第一密钥对待传输报文进行加密得到第一数据域;
第一组织模块405,用于根据预设的协议头数据组织当前头域;
第二计算模块406,用于使用第一计算模块403计算出的第二密钥对头域和第一数据域计算出第一校验值;
第二组织模块407,用于根据头域、第一数据域和第一校验值组织指令;
第二发送模块408,用于将第二组织模块407组织的指令发送给终端设备;
接收模块409,用于接收终端设备返回的应答数据;
解析模块410,用于解析接收模块409接收到的应答数据得到操作结果;
更新模块411,用于当解析模块410得到的操作结果为操作成功时,根据预设方式更新当前随机数。
在本实施例中,第一发送模块402,具体用于:
根据当前随机数组织设置命令,发送设置命令给终端设备;
或者,
根据预设加密算法对当前随机数进行加密得到密文随机数,发送密文随机数给终端设备。
本实施例中的***,还包括:第一判断模块;
相应地,接收模块409,还用于第一发送模块402发送生成模块401生成的当前随机数给终端设备之后,接收终端设备返回的第三校验值;
第一判断模块,用于判断第三校验值是否正确;
第一计算模块403,具体用于:当第一判断模块判断出第三校验值正确时,根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥。
进一步地,在本实施例中,第一判断模块,具体用于:
将当前随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第三校验码,判断第三校验值与第三校验码是否相等,是则确认第三校验值正确,否则确认第三校验值不正确。
本实施例中的***,还包括:第一获取模块;
接收模块409,还用于生成模块401生成随机数作为当前随机数之前,接收应用程序发送来的终端设备的设备信息,并将接收到的设备信息保存;
第一获取模块,用于根据接收模块409保存的设备信息获取预置的与终端设备对应的第一预设密钥和第二预设密钥;
相应地,第一计算模块403,具体用于:根据预设算法使用第一预设密钥对当前随机数加密得到第一密钥,使用第二预设密钥对当前随机数加密得到第二密钥。
在本实施例中,加密模块404,具体包括:判断子模块、填充子模块、作为子模块和加密子模块;
其中,判断子模块,用于判断待传输报文是否需要填充;
填充子模块,用于当判断子模块判断出待传输报文需要填充时,在待传输报文的预定位置填充预设数据得到第一待加密数据;
作为子模块,用于当判断子模块判断出待传输报文不需要填充时,将待传输报文作为第一待加密数据;
加密子模块,用于使用第一密钥对填充子模块得到的第一待加密数据进行加密得到第一密文数据,将第一密文数据作为第一数据域;还用于使用第一密钥对作为子模块得到的第一待加密数据进行加密得到第一密文数据,将第一密文数据作为第一数据域。
更加具体地,在本实施例中,上述判断子模块,具体用于:将待传输报文的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认待传输报文无需填充;否则,确认待传输报文需要填充;
填充子模块,具体用于:在待传输报文的左端填充待传输报文的长度,并在待传输报文的右端填充一个字节的第二预设数据和最少字节的第三预设数据,使第一待加密数据的长度为第二预设长度的整数倍。
进一步地,在本实施例中,第二计算模块406,具体用于:将头域和第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用第二密钥对第一待校验数据进行计算得到计算结果,读取计算结果中预设字节上的数据作为当前第一校验值。
进一步地,第二组织模块407,具体用于:将头域、第一数据域和第一校验值顺序拼接得到指令。
进一步地,解析模块410,具体用于:
解析接收模块409接收到的应答数据得到第二数据域和第二校验值,根据第二密钥和第二校验值校验第二数据域,如果校验成功,则根据第一密钥解密第二数据域得到第二待加密数据,解析第二待加密数据得到明文应答数据,解析明文应答数据得到操作结果,否则交易失败,结束。
进一步地,更新模块411,具体用于:
将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;
或者,
根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。
更进一步地,本实施例中的***,第一计算模块403,还用于:当操作结果为操作成功时,若还有待传输报文,则根据更新模块411得到的当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥。
第一发送模块402,还可以用于发送获取随机数请求给终端设备;
对应地,接收模块409,还用于接收终端设备返回的随机数,将接收到的随机数作为当前随机数并保存。
实施例五
本发明实施例五提供一种安全的数据传输设备,如图6所示,包括:
第一接收模块501,用于接收***发送来的随机数,将其作为当前随机数;
第二接收模块502,用于接收***发送来的指令;
解析模块503,用于解析第二接收模块502接收到的指令得到头域、第一数据域和第一校验值;
第一计算模块504,用于根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥;
校验模块505,用于根据第二密钥和第一校验值校验头域和第一数据域;
发送模块506,用于当校验模块505校验失败时,返回错误码给***,结束;
解密模块507,用于当校验模块505校验成功时,使用第一密钥解密第一数据域得到传输报文;
发送模块506,还用于将解密模块507得到的传输报文发送给卡片;
第三接收模块508,用于接收卡片返回的操作结果;
组织模块509,用于当第三接收模块508接收到的操作结果为操作成功时,组织成功应答数据;还用于当第三接收模块508接收到的操作结果为操作失败时,组织失败应答数据;
发送模块506,还用于将组织模块509组织的成功应答数据返回给***;还用于将组织模块509组织的失败应答数据返回给***;
更新模块510,用于当发送模块506将组织模块509组织的成功应答数据返回给***之后,根据预设方式更新当前随机数。
在本实施例中,第一接收模块501,具体用于:
接收***发送来的设置命令,解析所述设置命令得到随机数,将得到的随机数作为当前随机数;
或者,
接收***发送来的密文随机数,根据预设加密算法对密文随机数解密得到随机数,将得到的随机数作为当前随机数。
本实施例中的设备,还包括:第二计算模块;
第二计算模块,用于第一接收模块501接收***发送来的随机数,将其作为当前随机数之后,根据第一接收模块501接收到的随机数计算第三校验值;
发送模块506,还用于将第二计算模块计算的第三校验值发送给***。
在本实施例中,上述第二计算模块,具体用于:
将第一接收模块501接收到的随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第三校验值。
进一步地,在本实施例中,第一计算模块504,具体用于:
读取自身预置的第一预设密钥和第二预设密钥,根据预设算法使用第一预设密钥对当前随机数加密得到第一密钥,使用第二预设密钥对当前随机数加密得到第二密钥。
进一步地,校验模块505,具体用于:
将头域和第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用第二密钥对第一待校验数据计算得到计算结果,读取计算结果中预设字节上的数据作为第一校验码,判断第一校验码与第一校验值是否相同,是则确认校验成功,否则,确认校验失败。
进一步地,解密模块507,具体用于:
根据预设算法使用第一密钥解密第一数据域得到第一待加密数据,解析第一待加密数据得到传输报文的长度,根据传输报文的长度,读取相应数据得到传输报文。
进一步地,组织模块509,具体用于:
根据当前操作结果组织明文应答数据,根据明文应答数据组织第二待加密数据,使用第一密钥对第二待加密数据进行加密得到第二数据域,将第二数据域填充第四预设数据得到第二待校验数据,根据预设算法使用第二密钥对第二待校验数据计算出当前第三校验值,将第二数据域、第三校验值拼接得到应答数据。
进一步地,更新模块510,具体用于:
将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;
或者,
根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。
更进一步地,本实施例中的设备,还包括:判断模块和关机模块;
其中,判断模块,用于当更新模块510根据预设方式更新当前随机数之后,判断等待接收数据时长是否超过预设时长;
关机模块,用于当判断模块判断出等待接收数据时长超过预设时长时,关机,结束;
第二接收模块502,还用于当判断模块判断出等待接收数据时长未超过预设时长时,接收***发送来的指令。
本实施例中的设备,第一接收模块501,还可以用于接收***发送来的获取随机数请求;
相应地,发送模块506,还可以用于第一接收模块501接收到***发送来的获取随机数请求之后,将预设的随机数作为当前随机数返回给***。
本发明中的技术方案,在终端设备与后台***进行数据传输时,每次采用不同的密钥对数据进行加解密,保证了数据传输的安全性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (48)

1.一种安全的数据传输方法,其特征在于,包括:
步骤A1:***生成随机数作为当前随机数,发送所述当前随机数给终端设备,并根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥;
步骤A2:所述***使用所述第一密钥对待传输报文进行加密得到第一数据域,根据预设的协议头数据组织头域,使用所述第二密钥对所述头域和所述第一数据域计算出第一校验值;
步骤A3:所述***根据所述头域、所述第一数据域和所述第一校验值组织指令,并将所述指令发送给所述终端设备;
步骤A4:所述***接收并解析所述终端设备返回的应答数据得到操作结果,如所述操作结果为操作成功,则根据预设方式更新所述当前随机数,结束;如所述操作结果为操作失败,则结束。
2.根据权利要求1所述的方法,其特征在于:所述步骤A1中,所述发送所述当前随机数给终端设备,具体为:
所述***根据所述当前随机数组织设置命令,发送所述设置命令给所述终端设备;
或者,
所述***根据预设加密算法对所述当前随机数进行加密得到密文随机数,发送所述密文随机数给所述终端设备。
3.根据权利要求1所述的方法,其特征在于,所述步骤A1中,所述发送所述当前随机数给终端设备之后,还包括:
步骤a:所述***接收所述终端设备返回的第三校验值,并判断所述第三校验值是否正确,是则根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥,否则结束。
4.根据权利要求3所述的方法,其特征在于,所述步骤a中,所述判断所述第三校验值是否正确,具体为:
所述***将所述当前随机数与第一预设数据做预设运算得到运算结果,读取所述运算结果中预设字节上的数据作为第三校验码,判断所述第三校验值与所述第三校验码是否相等,是则确认所述第三校验值正确,否则确认所述第三校验值不正确。
5.根据权利要求1所述的方法,其特征在于,所述步骤A1之前,还包括:
所述***接收应用程序发送来的终端设备的设备信息,并将所述设备信息保存;
所述步骤A1中,发送所述当前随机数给终端设备之后,还包括:所述***根据保存的设备信息获取预置的与所述终端设备对应的第一预设密钥和第二预设密钥;
所述步骤A1中,所述根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥,具体为:所述***根据预设算法使用所述第一预设密钥对所述当前随机数加密得到第一密钥,使用所述第二预设密钥对所述当前随机数加密得到第二密钥。
6.根据权利要求1所述的方法,其特征在于,所述步骤A2中,所述***根据所述第一密钥对待传输报文进行加密得到第一数据域,具体包括:
步骤D1:所述***判断所述待传输报文是否需要填充,是则在所述待传输报文的预定位置填充预设数据得到第一待加密数据,执行步骤D2,否则将所述待传输报文作为第一待加密数据,执行步骤D2;
步骤D2:所述***使用所述第一密钥对所述第一待加密数据进行加密得到第一密文数据,将所述第一密文数据作为第一数据域。
7.根据权利要求6所述的方法,其特征在于,所述步骤D1中,
所述***判断待传输报文是否需要填充,具体为:
所述***将待传输报文的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认所述待传输报文无需填充;否则,确认所述待传输报文需要填充;
所述在待传输报文的预定位置填充预设数据得到第一待加密数据,具体为:
在所述待传输报文的左端填充所述待传输报文的长度,并在所述待传输报文的右端填充一个字节的第二预设数据和最少字节的第三预设数据,使所述第一待加密数据的长度为所述第二预设长度的整数倍。
8.根据权利要求1所述的方法,其特征在于,所述步骤A2中,所述使用所述第二密钥对所述头域和所述第一数据域计算出当前第一校验值,具体为:
所述***将所述头域和所述第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用所述第二密钥对所述第一待校验数据进行计算得到计算结果,读取所述计算结果中预设字节上的数据作为当前第一校验值。
9.根据权利要求1所述的方法,其特征在于,所述步骤A3中,所述根据所述头域、所述第一数据域和所述第一校验值组织指令,具体为:
所述***将所述头域、所述第一数据域和所述第一校验值顺序拼接得到指令。
10.根据权利要求1所述的方法,其特征在于,所述步骤A4中,所述***接收并解析所述终端设备返回的应答数据得到操作结果,具体为:
所述***接收并解析所述终端设备返回的应答数据得到第二数据域和第二校验值,根据所述第二密钥和所述第二校验值校验所述第二数据域,如果校验成功,则根据所述第一密钥解密所述第二数据域得到第二待加密数据,解析所述第二待加密数据得到明文应答数据,解析所述明文应答数据得到操作结果;否则交易失败,结束。
11.根据权利要求1所述的方法,其特征在于,所述步骤A4中,所述根据预设方式更新所述随机数,具体为:
所述***将所述当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
所述***将所述当前随机数作为种子随机数,根据所述种子随机数生成新的随机数,将所述新的随机数作为当前随机数;
或者,
所述***根据预设算法对所述当前随机数进行计算得到计算结果,将所述计算结果作为当前随机数。
12.根据权利要求1所述的方法,其特征在于,所述步骤A4中,还包括:
当所述操作结果为操作成功时,若还有待传输报文,则返回步骤A1。
13.根据权利要求1所述的方法,其特征在于,所述步骤A1中,所述***生成随机数作为当前随机数,发送所述当前随机数给终端设备,还可以为:
所述***发送获取随机数请求给终端设备,接收所述终端设备返回的随机数,将接收到的随机数作为当前随机数并保存。
14.一种安全的数据传输方法,其特征在于,包括:
步骤B1:终端设备接收***发送来的随机数,将其作为当前随机数;
步骤B2:所述终端设备接收所述***发送来的指令,解析接收到的指令得到头域、第一数据域和第一校验值;
步骤B3:所述终端设备根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥;
步骤B4:所述终端设备根据所述第二密钥和所述第一校验值校验所述头域和所述第一数据域,如校验成功,则执行步骤B5;如校验失败,则返回错误码给***,结束;
步骤B5:所述终端设备使用所述第一密钥解密所述第一数据域得到传输报文,将所述传输报文发送给卡片并接收所述卡片返回的操作结果,如所述操作结果为操作成功,则组织成功应答数据并返回给所述***,根据预设方式更新所述当前随机数,结束;如所述操作结果为操作失败,则组织失败应答数据并返回给所述***,结束。
15.根据权利要求14所述的方法,其特征在于,所述步骤B1,具体为:
终端设备接收***发送来的设置命令,解析所述设置命令得到随机数,将得到的随机数作为当前随机数;
或者,
终端设备接收***发送来的密文随机数,根据预设加密算法对所述密文随机数解密得到随机数,将得到的随机数作为当前随机数。
16.根据权利要求14所述的方法,其特征在于,所述步骤B1之后,还包括:所述终端设备根据接收到的随机数计算第三校验值,并将所述第三校验值发送给所述***。
17.根据权利要求16所述的方法,其特征在于,所述终端设备根据接收到的随机数计算第三校验值,具体为:
所述终端设备将接收到的随机数与第一预设数据做预设运算得到运算结果,读取所述运算结果中预设字节上的数据作为第三校验值。
18.根据权利要求14所述的方法,其特征在于,所述步骤B3,具体为:所述终端设备读取自身预置的第一预设密钥和第二预设密钥,根据预设算法使用所述第一预设密钥对所述当前随机数加密得到第一密钥,使用所述第二预设密钥对所述当前随机数加密得到第二密钥。
19.根据权利要求14所述的方法,其特征在于,所述步骤B4中,所述终端设备根据所述第二密钥和所述第一校验值校验所述头域和所述第一数据域,具体为:
所述终端设备将所述头域和所述第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用所述第二密钥对所述第一待校验数据计算得到计算结果,读取所述计算结果中预设字节上的数据作为第一校验码,判断所述第一校验码与所述第一校验值是否相同,是则确认校验成功,否则,确认校验失败。
20.根据权利要求14所述的方法,其特征在于,所述步骤B5中,所述终端设备根据所述第一密钥解密所述第一数据域得到传输报文,具体为:
所述终端设备根据预设算法使用所述第一密钥解密所述第一数据域得到第一待加密数据,解析所述第一待加密数据得到传输报文的长度,根据所述传输报文的长度,读取相应数据得到传输报文。
21.根据权利要求14所述的方法,其特征在于,所述步骤B5中,组织应答数据,具体包括:
所述终端设备根据所述操作结果组织明文应答数据,根据所述明文应答数据组织第二待加密数据,使用所述第一密钥对所述第二待加密数据进行加密得到第二数据域,将所述第二数据域填充第四预设数据得到当前第二待校验数据,根据预设算法使用所述第二密钥对所述第二待校验数据计算出第三校验值,将所述第二数据域、所述第三校验值拼接得到应答数据。
22.根据权利要求14所述的方法,其特征在于,所述步骤B5中,所述根据预设方式更新所述随机数,具体为:
所述终端设备将所述当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
所述终端设备将所述当前随机数作为种子随机数,根据所述种子随机数生成新的随机数,将所述新的随机数作为当前随机数;
或者,
所述终端设备根据预设算法对所述当前随机数进行计算得到计算结果,将所述计算结果作为当前随机数。
23.根据权利要求14所述的方法,其特征在于,所述步骤B5中,所述根据预设方式更新所述当前随机数之后,还包括:
所述终端设备判断等待接收数据时长是否超过预设时长,是则关机,结束,否则返回步骤B2。
24.根据权利要求14所述的方法,其特征在于,所述步骤B1,还可以为:
步骤f:终端设备接收***发送来的获取随机数请求,并将预设的随机数作为当前随机数返回给所述***。
25.一种安全的数据传输***,其特征在于,包括:
生成模块,用于生成随机数作为当前随机数;
第一发送模块,用于发送所述生成模块生成的当前随机数给终端设备;
第一计算模块,用于根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥;
加密模块,用于使用所述第一计算模块计算出的第一密钥对待传输报文进行加密得到第一数据域;
第一组织模块,用于根据预设的协议头数据组织头域;
第二计算模块,用于使用所述第一计算模块计算出的第二密钥对所述头域和所述第一数据域计算出第一校验值;
第二组织模块,用于根据所述头域、所述第一数据域和所述第一校验值组织指令;
第二发送模块,用于将所述第二组织模块组织的指令发送给所述终端设备;
接收模块,用于接收所述终端设备返回的应答数据;
解析模块,用于解析所述接收模块接收到的应答数据得到操作结果;
更新模块,用于当所述解析模块得到的操作结果为操作成功时,根据预设方式更新所述当前随机数。
26.根据权利要求25所述的***,其特征在于,所述第一发送模块,具体用于:
根据所述当前随机数组织设置命令,发送所述设置命令给所述终端设备;
或者,
根据预设加密算法对所述当前随机数进行加密得到密文随机数,发送所述密文随机数给所述终端设备。
27.根据权利要求25所述的***,其特征在于,还包括:第一判断模块;
所述接收模块,还用于所述第一发送模块发送所述生成模块生成的当前随机数给终端设备之后,接收所述终端设备返回的第三校验值;
所述第一判断模块,用于判断所述第三校验值是否正确;
所述第一计算模块,具体用于:当所述第一判断模块判断出所述第三校验值正确时,根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥。
28.根据权利要求27所述的***,其特征在于,所述第一判断模块,具体用于:
将所述当前随机数与第一预设数据做预设运算得到运算结果,读取所述运算结果中预设字节上的数据作为第三校验码,判断所述第三校验值与所述第三校验码是否相等,是则确认所述第三校验值正确,否则确认所述第三校验值不正确。
29.根据权利要求25所述的***,其特征在于,还包括:第一获取模块;
所述接收模块,还用于所述生成模块生成随机数作为当前随机数之前,接收应用程序发送来的终端设备的设备信息,并将所述设备信息保存;
所述第一获取模块,用于所述第一发送模块发送所述当前随机数给终端设备之后,根据所述接收模块保存的设备信息获取预置的与所述终端设备对应的第一预设密钥和第二预设密钥;
所述第一计算模块,具体用于:根据预设算法使用所述第一预设密钥对所述当前随机数加密得到第一密钥,使用所述第二预设密钥对所述当前随机数加密得到第二密钥。
30.根据权利要求25所述的***,其特征在于,所述加密模块,具体包括:判断子模块、填充子模块、作为子模块和加密子模块;
所述判断子模块,用于判断所述待传输报文是否需要填充;
所述填充子模块,用于当所述判断子模块判断出所述待传输报文需要填充时,在待传输报文的预定位置填充预设数据得到第一待加密数据;
所述作为子模块,用于当所述判断子模块判断出所述待传输报文不需要填充时,将待传输报文作为第一待加密数据;
所述加密子模块,用于使用所述第一密钥对所述填充子模块得到的第一待加密数据进行加密得到第一密文数据,将所述第一密文数据作为第一数据域;还用于使用所述第一密钥对所述作为子模块得到的第一待加密数据进行加密得到第一密文数据,将所述第一密文数据作为第一数据域。
31.根据权利要求30所述的***,其特征在于,
所述判断子模块,具体用于:将所述待传输报文的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认所述待传输报文无需填充;否则,确认所述待传输报文需要填充;
所述填充子模块,具体用于:在所述待传输报文的左端填充所述待传输报文的长度,并在所述待传输报文的右端填充一个字节的第二预设数据和最少字节的第三预设数据,使所述第一待加密数据的长度为所述第二预设长度的整数倍。
32.根据权利要求25所述的***,其特征在于,所述第二计算模块,具体用于:将所述头域和所述第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用所述第二密钥对所述第一待校验数据进行计算得到计算结果,读取所述计算结果中预设字节上的数据作为当前第一校验值。
33.根据权利要求25所述的***,其特征在于,所述第二组织模块,具体用于:将所述头域、所述第一数据域和所述第一校验值顺序拼接得到指令。
34.根据权利要求25所述的***,其特征在于,所述解析模块,具体用于:
解析所述接收模块接收到的应答数据得到第二数据域和第二校验值,根据所述第二密钥和所述第二校验值校验所述第二数据域,如果校验成功,则根据所述第一密钥解密所述第二数据域得到第二待加密数据,解析所述第二待加密数据得到明文应答数据,解析所述明文应答数据得到操作结果,否则交易失败,结束。
35.根据权利要求25所述的***,其特征在于,所述更新模块,具体用于:
将所述当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
将所述当前随机数作为种子随机数,根据所述种子随机数生成新的随机数,将所述新的随机数作为当前随机数;
或者,
根据预设算法对所述当前随机数进行计算得到计算结果,将所述计算结果作为当前随机数。
36.根据权利要求25所述的***,其特征在于,所述第一计算模块,还用于:当所述操作结果为操作成功时,若还有待传输报文,则根据所述更新模块得到的当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥。
37.根据权利要求35所述的***,其特征在于,
所述第一发送模块,还可以用于发送获取随机数请求给所述终端设备;
所述接收模块,还用于接收所述终端设备返回的随机数,将接收到的随机数作为当前随机数并保存。
38.一种安全的数据传输设备,其特征在于,包括:
第一接收模块,用于接收***发送来的随机数,将其作为当前随机数;
第二接收模块,用于接收所述***发送来的指令;
解析模块,用于解析所述第二接收模块接收到的指令得到头域、第一数据域和第一校验值;
第一计算模块,用于根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥;
校验模块,用于根据所述第二密钥和所述第一校验值校验所述头域和所述第一数据域;
发送模块,用于当所述校验模块校验失败时,返回错误码给***,结束;
解密模块,用于当所述校验模块校验成功时,使用所述第一密钥解密所述第一数据域得到传输报文;
所述发送模块,还用于将所述解密模块得到的传输报文发送给卡片;
第三接收模块,用于接收所述卡片返回的操作结果;
组织模块,用于当所述第三接收模块接收到的操作结果为操作成功时,组织成功应答数据;还用于当所述第三接收模块接收到的操作结果为操作失败时,组织失败应答数据;
所述发送模块,还用于将所述组织模块组织的成功应答数据返回给所述***;还用于将所述组织模块组织的失败应答数据返回给所述***;
更新模块,用于当所述发送模块将所述组织模块组织的成功应答数据返回给***之后,根据预设方式更新所述当前随机数。
39.根据权利要求38所述的设备,其特征在于,所述第一接收模块,具体用于:
接收***发送来的设置命令,解析所述设置命令得到随机数,将得到的随机数作为当前随机数;
或者,
接收***发送来的密文随机数,根据预设加密算法对所述密文随机数解密得到随机数,将得到的随机数作为当前随机数。
40.根据权利要求38所述的设备,其特征在于,还包括:第二计算模块;
所述第二计算模块,用于所述第一接收模块接收***发送来的随机数,将其作为当前随机数之后,根据所述第一接收模块接收到的随机数计算第三校验值;
所述发送模块,还用于将所述第二计算模块计算的第三校验值发送给所述***。
41.根据权利要求40所述的设备,其特征在于,所述第二计算模块,具体用于:
将所述第一接收模块接收到的随机数与第一预设数据做预设运算得到运算结果,读取所述运算结果中预设字节上的数据作为第三校验值。
42.根据权利要求38所述的设备,其特征在于,所述第一计算模块,具体用于:
读取自身预置的第一预设密钥和第二预设密钥,根据预设算法使用所述第一预设密钥对所述当前随机数加密得到第一密钥,使用所述第二预设密钥对所述当前随机数加密得到第二密钥。
43.根据权利要求38所述的设备,其特征在于,所述校验模块,具体用于:
将所述头域和所述第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用所述第二密钥对所述第一待校验数据计算得到计算结果,读取所述计算结果中预设字节上的数据作为第一校验码,判断所述第一校验码与所述第一校验值是否相同,是则确认校验成功,否则,确认校验失败。
44.根据权利要求38所述的设备,其特征在于,所述解密模块,具体用于:
根据预设算法使用所述第一密钥解密所述第一数据域得到第一待加密数据,解析所述第一待加密数据得到传输报文的长度,根据所述传输报文的长度,读取相应数据得到传输报文。
45.根据权利要求38所述的设备,其特征在于,所述组织模块,具体用于:
根据所述当前操作结果组织明文应答数据,根据所述明文应答数据组织第二待加密数据,使用所述第一密钥对所述第二待加密数据进行加密得到第二数据域,将所述第二数据域填充第四预设数据得到第二待校验数据,根据预设算法使用所述第二密钥对所述第二待校验数据计算出当前第三校验值,将所述第二数据域、所述第三校验值拼接得到应答数据。
46.根据权利要求38所述的设备,其特征在于,所述更新模块,具体用于:
将所述当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;
或者,
将所述当前随机数作为种子随机数,根据所述种子随机数生成新的随机数,将所述新的随机数作为当前随机数;
或者,
根据预设算法对所述当前随机数进行计算得到计算结果,将所述计算结果作为当前随机数。
47.根据权利要求38所述的设备,其特征在于,还包括:判断模块和关机模块;
所述判断模块,用于当所述更新模块根据预设方式更新所述当前随机数之后,判断等待接收数据时长是否超过预设时长;
所述关闭模块,用于当所述判断模块判断出等待接收数据时长超过预设时长时,关机,结束;
所述第二接收模块,还用于当所述判断模块判断出等待接收数据时长未超过预设时长时,接收所述***发送来的指令。
48.根据权利要求38所述的设备,其特征在于,
所述第一接收模块,还可以用于接收***发送来的获取随机数请求;
所述发送模块,还可以用于所述第一接收模块接收到***发送来的获取随机数请求之后,将预设的随机数作为当前随机数返回给所述***。
CN201610744373.9A 2016-08-27 2016-08-27 一种安全的数据传输方法及装置 Active CN106357393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610744373.9A CN106357393B (zh) 2016-08-27 2016-08-27 一种安全的数据传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610744373.9A CN106357393B (zh) 2016-08-27 2016-08-27 一种安全的数据传输方法及装置

Publications (2)

Publication Number Publication Date
CN106357393A true CN106357393A (zh) 2017-01-25
CN106357393B CN106357393B (zh) 2019-09-13

Family

ID=57855811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610744373.9A Active CN106357393B (zh) 2016-08-27 2016-08-27 一种安全的数据传输方法及装置

Country Status (1)

Country Link
CN (1) CN106357393B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395580A (zh) * 2017-07-10 2017-11-24 深圳怡化电脑股份有限公司 一种数据校验方法及装置
CN107682335A (zh) * 2017-10-09 2018-02-09 平安普惠企业管理有限公司 数据传输方法、服务端以及计算机可读存储介质
CN107959552A (zh) * 2017-10-27 2018-04-24 浙江众合科技股份有限公司 单通道实现请求确认操作的方法及***
CN108833086A (zh) * 2018-05-04 2018-11-16 深圳绿米联创科技有限公司 指纹锁及其工作方法
CN108881105A (zh) * 2017-05-08 2018-11-23 中车株洲电力机车研究所有限公司 一种通信建立的方法及***
CN109298931A (zh) * 2017-07-25 2019-02-01 迈普通信技术股份有限公司 缓冲区按需释放方法及网络设备
CN109327466A (zh) * 2018-11-16 2019-02-12 广州创想云科技有限公司 数据加密传输方法、电子设备、存储介质
CN110022287A (zh) * 2018-01-10 2019-07-16 厦门雅迅网络股份有限公司 一种异步分布式文件传输方法、终端设备及存储介质
CN110149631A (zh) * 2019-05-29 2019-08-20 飞天诚信科技股份有限公司 一种适用于云音箱建立连接的方法及***
CN111314062A (zh) * 2020-01-14 2020-06-19 支付宝(杭州)信息技术有限公司 智能卡数据下发方法、装置、电子设备及存储介质
CN112995210A (zh) * 2021-04-20 2021-06-18 全球能源互联网研究院有限公司 一种数据传输方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611550A (zh) * 2012-02-26 2012-07-25 光束(北京)国际工程技术研究院有限公司 加密数据的方法和加密数据的传输方法
CN105897748A (zh) * 2016-05-27 2016-08-24 飞天诚信科技股份有限公司 一种对称密钥的传输方法及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611550A (zh) * 2012-02-26 2012-07-25 光束(北京)国际工程技术研究院有限公司 加密数据的方法和加密数据的传输方法
CN105897748A (zh) * 2016-05-27 2016-08-24 飞天诚信科技股份有限公司 一种对称密钥的传输方法及设备

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108881105A (zh) * 2017-05-08 2018-11-23 中车株洲电力机车研究所有限公司 一种通信建立的方法及***
CN107395580A (zh) * 2017-07-10 2017-11-24 深圳怡化电脑股份有限公司 一种数据校验方法及装置
CN107395580B (zh) * 2017-07-10 2020-09-15 深圳怡化电脑股份有限公司 一种数据校验方法及装置
CN109298931B (zh) * 2017-07-25 2022-04-08 迈普通信技术股份有限公司 缓冲区按需释放方法及网络设备
CN109298931A (zh) * 2017-07-25 2019-02-01 迈普通信技术股份有限公司 缓冲区按需释放方法及网络设备
CN107682335A (zh) * 2017-10-09 2018-02-09 平安普惠企业管理有限公司 数据传输方法、服务端以及计算机可读存储介质
CN107682335B (zh) * 2017-10-09 2020-05-22 平安普惠企业管理有限公司 数据传输方法、服务端以及计算机可读存储介质
CN107959552A (zh) * 2017-10-27 2018-04-24 浙江众合科技股份有限公司 单通道实现请求确认操作的方法及***
CN107959552B (zh) * 2017-10-27 2023-08-22 浙江浙大网新众合轨道交通工程有限公司 单通道实现请求确认操作的方法及***
CN110022287A (zh) * 2018-01-10 2019-07-16 厦门雅迅网络股份有限公司 一种异步分布式文件传输方法、终端设备及存储介质
CN108833086A (zh) * 2018-05-04 2018-11-16 深圳绿米联创科技有限公司 指纹锁及其工作方法
CN109327466A (zh) * 2018-11-16 2019-02-12 广州创想云科技有限公司 数据加密传输方法、电子设备、存储介质
CN110149631A (zh) * 2019-05-29 2019-08-20 飞天诚信科技股份有限公司 一种适用于云音箱建立连接的方法及***
CN111314062B (zh) * 2020-01-14 2022-10-18 支付宝(杭州)信息技术有限公司 智能卡数据下发方法、装置、电子设备及存储介质
CN111314062A (zh) * 2020-01-14 2020-06-19 支付宝(杭州)信息技术有限公司 智能卡数据下发方法、装置、电子设备及存储介质
CN112995210A (zh) * 2021-04-20 2021-06-18 全球能源互联网研究院有限公司 一种数据传输方法、装置及电子设备
CN112995210B (zh) * 2021-04-20 2023-04-07 全球能源互联网研究院有限公司 一种数据传输方法、装置及电子设备

Also Published As

Publication number Publication date
CN106357393B (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
CN106357393A (zh) 一种安全的数据传输方法及装置
CA2056440C (en) System for transferring data using electronic cards
US20160085974A1 (en) Secure transaction method from a non-secure terminal
CN102752115B (zh) 挑战码生成方法及装置、动态口令认证方法及***
CN110519260A (zh) 一种信息处理方法及信息处理装置
CN109743176A (zh) 一种pos终端的证书更新方法、服务器及pos终端
CN109429222A (zh) 一种对无线网络设备升级程序及通讯数据加密的方法
CN102761557B (zh) 一种终端设备认证方法及装置
CN1921395B (zh) 提高网络软件安全性的方法
CN102377783B (zh) 一种动态口令生成及认证的方法和***
CN107248075A (zh) 一种实现智能密钥设备双向认证和交易的方法及装置
CN101741823B (zh) 一种交叉验证的安全通讯方法及***
CN102970676B (zh) 一种对原始数据进行处理的方法、物联网***及终端
CN1954345B (zh) 智能卡数据事务***以及用于提供存储和传输安全的方法
CN107180175A (zh) 配送方法和配送装置以及配送***
CN103607402A (zh) 一种网络游戏数据加密以及解密方法和设备
CN106060073B (zh) 信道密钥协商方法
CN106101150A (zh) 加密算法的实现方法和***
CN106372497A (zh) 一种应用编程接口api 保护方法和保护装置
CN103139179A (zh) 多通道主动式网络身份验证***及网络身份验证装置
CN105320873B (zh) 一种终端应用的解锁方法、装置、终端及sim卡
CN107196973A (zh) 一种数据加密、解密方法及装置
CN110515640A (zh) 一种安全芯片的固件升级方法、装置、设备及存储介质
CN109981671A (zh) 基于加密机的数据处理方法及加密机
CN103746791B (zh) 一种应用于工业领域的加密通信装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant