CN109495260B - 一种终端设备及其管理密钥的方法 - Google Patents
一种终端设备及其管理密钥的方法 Download PDFInfo
- Publication number
- CN109495260B CN109495260B CN201811622509.4A CN201811622509A CN109495260B CN 109495260 B CN109495260 B CN 109495260B CN 201811622509 A CN201811622509 A CN 201811622509A CN 109495260 B CN109495260 B CN 109495260B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- key
- preset
- encryption
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开一种终端设备及其管理密钥的方法,涉及信息安全领域;终端设备接收上位机发送的交易指令;根据预置的计数值和第三数据得到第一偏移量;根据第一偏移量从未来密钥列表中查找当前未来密钥;根据当前未来密钥分别与第三预设数据、第四预设数据、第五预设数据和第六预设数据分别生成鉴别请求密钥、鉴别响应密钥、PIN加密密钥和数据加密密钥;更新第三数据,当判断第三数据满足第四预设条件时,更新计数值;根据第三数据和计数值得到第一数据;根据当前未来密钥得到加密密钥;根据加密密钥和第一数据得到第二数据;根据第十预设数据和加密密钥更新第一数据;根据第二数据、第三数据和第一数据生成未来密钥并存储至未来密钥列表。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种终端设备及其管理密钥的方法。
背景技术
终端设备在进行交易时,需要依靠存储在终端设备内部的固定密钥(初始密钥或者交易密钥)对敏感数据(例如PIN码,PAN及账户信息等)进行加密;一般来说,固定密钥包括三种:DEK[Data Encryption Key,即加密数据(卡片号等)的密钥]、PEK[PIN EncryptionKey,即加密PIN(卡片密码)的密钥]和MEK[Message Encryption Key,即加密信息(持卡人账户等信息)的密钥];
目前,终端设备出厂时在安全环境下导入并存储固定密钥;通常,相同终端设备的生产厂家生产同批次的终端设备时倒入的固定密钥是相同的,在用户使用终端设备的过程中,固定密钥始终不变;一旦一个终端设备的固定密钥泄露,则该终端设备的用户将会面临重大损失,此外其他同批次生成的终端设备的固定密钥同样会泄露,这些终端设备的用户同样会面临重大损失;所以不变的固定密钥会严重降低终端设备交易的安全性;且如果固定密钥泄露时或者用户想更换固定密钥时,则用户必须将终端设备返厂更换固定密钥,更换固定密钥过程是十分繁琐麻烦的,降低了用户体验。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种终端设备及其管理密钥的方法。
本发明提供了一种终端设备管理密钥的方法,包括以下步骤:
步骤S1:终端设备接收上位机发送的交易指令;根据预置的计数值和预置的第三数据得到第三数据的第一偏移量;
步骤S2:所述终端设备根据所述第一偏移量从未来密钥列表中查找当前未来密钥;
步骤S3:所述终端设备根据所述当前未来密钥和第三预设数据生成鉴别请求密钥;根据所述当前未来密钥和第四预设数据生成鉴别响应密钥;根据所述当前未来密钥和第五预设数据生成PIN加密密钥;根据所述当前未来密钥和第六预设数据生成数据加密密钥,向上位机返回密钥生成成功响应;
步骤S4:所述终端设备更新第三数据,判断第三数据是否满足第四预设条件,是则删除所述当前未来密钥,更新计数值,等待接收上位机发送的新的交易指令,否则执行步骤S5;
步骤S5:所述终端设备根据第三数据和计数值得到第一数据;根据所述当前未来密钥得到加密密钥;根据所述加密密钥和第一数据得到第二数据;根据第十预设数据和所述加密密钥更新第一数据;根据所述第二数据、第三数据和第一数据生成未来密钥并存储至未来密钥列表。
本发明又提供了一种终端设备,包括接收模块、第一得到模块、第一查找模块、第一生成模块、第二生成模块、第三生成模块、第四生成模块、发送模块、第一更新模块、第一判断模块、第一删除模块、第二更新模块、第二得到模块、第三得到模块、第四得到模块、第三更新模块、第五生成模块和第一保存模块;
所述接收模块,用于接收上位机发送的交易指令;
所述第一得到模块,用于根据预置的计数值和预置的第三数据得到第三数据的第一偏移量;
所述第一查找模块,用于根据所述第一得到模块得到的所述第一偏移量从未来密钥列表中查找当前未来密钥;
所述第一生成模块,用于根据所述第一查找模块查找到的所述当前未来密钥和第三预设数据生成鉴别请求密钥;
所述第二生成模块,用于根据所述第一查找模块查找到的所述当前未来密钥和第四预设数据生成鉴别响应密钥;
所述第三生成模块,用于根据所述第一查找模块查找到的所述当前未来密钥和第五预设数据生成PIN加密密钥;
所述第四生成模块,用于根据所述第一查找模块查找到的所述当前未来密钥和第六预设数据生成数据加密密钥;
所述发送模块,用于向上位机返回密钥生成成功响应;
所述第一更新模块,用于更新第三数据;
所述第一判断模块,用于判断所述第一更新模块更新的第三数据是否满足第四预设条件;
所述第一删除模块,用于当所述第一判断模块判断为是时,删除所述当前未来密钥;
所述第二更新模块,用于当所述第一判断模块判断为是时,更新计数值;
所述接收模块,还用于当所述第一删除模块删除所述当前未来密钥且所述第二更新模块更新计数值后,等待接收上位机发送的新的交易指令;
所述第二得到模块,用于当所述第一判断模块判断为否时,根据所述第一更新模块更新的第三数据和计数值得到第一数据;
所述第三得到模块,用于根据所述第一查找模块查找到的所述当前未来密钥得到加密密钥;
所述第四得到模块,用于根据所述第三得到模块得到的所述加密密钥和所述第二得到模块得到的第一数据得到第二数据;
所述第三更新模块,用于根据第十预设数据和所述第三得到模块得到的所述加密密钥更新第一数据;
所述第五生成模块,用于根据所述第四得到模块得到的所述第二数据、所述第一更新模块更新后的第三数据和所述第三更新模块更新后的第一数据生成未来密钥;
所述第一保存模块,用于存储所述第五生成模块生成的未来密钥至未来密钥列表。
本发明与现有技术相比,具有以下优点:本发明提供了一种终端设备及其管理密钥的方法;终端设备在初始化或者交易后会更新交易密钥,每次交易中使用的交易密钥都是不同的,即每个交易密钥都具有唯一性,且不存储任何之前交易过程中使用过的交易密钥的信息及任何其它同批次终端设备已经使用或者将来要使用的交易密钥;提高了用户体验,提高了管理密钥的效率和安全性,增强了终端设备交易的安全性。
附图说明
图1为本发明实施例一提供的一种终端设备管理密钥的方法的流程图;
图2为本发明实施例二提供的一种终端设备管理密钥的方法中的密钥生成与更新操作的流程图;
图3为本发明实施例三提供的一种终端设备管理密钥的方法中的初始化操作的流程图。
图4为本发明实施例四提供的一种终端设备的方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种终端设备管理密钥的方法,如图1所示,包括以下步骤:
步骤101:终端设备接收上位机发送的交易指令;根据预置的计数值和预置的第三数据得到第三数据的第一偏移量;
可选地,步骤101中,根据预置的计数值和预置的第三数据得到第三数据的第一偏移量,具体为:终端设备根据预置的计数值更新预置的第三数据,计算更新后的第三数据中第二预设值的比特位与更新前的第三数据中第二预设值的比特位的差值的绝对值,记绝对值为第一偏移量,根据第一偏移量查找与第一偏移量相对应的未来密钥,记查找的未来密钥为当前未来密钥;
进一步地,根据第一偏移量查找与第一偏移量相对应的未来密钥之后,记查找的未来密钥为当前未来密钥之前,还包括:终端设备判断查找到的未来密钥是否为空,是则报错,结束;否则记查找到的未来密钥为当前未来密钥。
步骤102:终端设备根据第一偏移量从未来密钥列表中查找当前未来密钥;
可选地,步骤102之后,还包括:
步骤A1:终端设备判断是否查找到当前未来密钥,是则执行步骤103,否则执行步骤A2;
步骤A2:终端设备更新计数值,判断计数值是否满足第一预设条件,是则向上位机返回报错信息,结束;否则执行步骤A3;
步骤A3:终端设备根据计数值更新第三数据,根据更新前的第三数据和更新后的第三数据计算第一偏移量,返回步骤102。.
步骤103:终端设备根据当前未来密钥和第三预设数据生成鉴别请求密钥;根据当前未来密钥和第四预设数据生成鉴别响应密钥;根据当前未来密钥和第五预设数据生成PIN加密密钥;根据当前未来密钥和第六预设数据生成数据加密密钥,向上位机返回密钥生成成功响应;
可选地,步骤103中,终端设备根据当前未来密钥和第三预设数据生成鉴别请求密钥;根据当前未来密钥和第四预设数据生成鉴别响应密钥;根据当前未来密钥和第五预设数据生成PIN加密密钥,具体为:终端设备根据第一算法对当前未来密钥和第三预设数据进行计算得到鉴别请求密钥;根据第一算法对当前未来密钥和第四预设数据进行计算得到鉴别响应密钥;根据第一算法对当前未来密钥和第五预设数据进行计算得到PIN加密密钥。
可选地,步骤103中,根据当前未来密钥和第六预设数据生成数据加密密钥,具体为:终端设备根据第二算法对当前未来密钥和第六预设数据进行计算得到第一计算结果,根据第二算法使用第一计算结果对第一计算结果中左第一预设长度数据进行加密得到第一加密结果;根据第二算法使用第一计算结果对第一计算结果中右第二预设长度数据进行加密得到第二加密结果;根据第三算法对第一加密结果和第二加密结果进行计算得到数据加密密钥。
可选地,步骤103之后,还包括:
步骤C1:终端设备判断计数值是否满足第二预设条件,是则执行步骤C2,否则执行步骤104;
步骤C2:终端设备判断计数值是否满足第三预设条件,是则向上位机返回报错信息,结束;否则等待接收上位机发送的新的交易指令。
步骤104:终端设备更新第三数据,判断第三数据是否满足第四预设条件,是则删除当前未来密钥,更新计数值,等待接收上位机发送的新的交易指令,否则执行步骤105;
步骤105:终端设备根据第三数据和计数值得到第一数据;根据当前未来密钥得到加密密钥;根据加密密钥和第一数据得到第二数据;根据第十预设数据和加密密钥更新第一数据;根据第二数据、第三数据和第一数据生成未来密钥并存储至未来密钥列表。
可选地,步骤105中,根据第三数据和计数值得到第一数据,具体为:终端设备使用第一算法对第三数据和计数值进行计算得到第一数据。
可选地,步骤105中,根据加密密钥和第一数据得到第二数据,具体为:终端设备使用加密密钥对加密密钥和第一数据进行加密得到第三加密结果,对第三加密结果和加密密钥进行计算得到第二数据。
可选地,步骤105中,根据第十预设数据和加密密钥更新第一数据,具体为:终端设备根据第十预设数据更新加密密钥;使用加密密钥对加密密钥和第一数据进行加密得到第四加密结果,对第四加密结果和加密密钥进行计算生成新的第一数据。
可选地,步骤105中,根据第二数据、第三数据和第一数据生成未来密钥并存储至未来密钥列表,具体为:终端设备对新的第一数据和第二数据进行计算得到第五计算结果,根据第三数据和第五计算结果生成未来密钥。
可选地,步骤101之前,还包括初始化操作,初始化操作包括以下步骤:
步骤D1:终端设备接收上位机发送的初始化指令,解析初始化指令得到初始密钥和计数值;生成第三数据;
步骤D2:终端设备对第三数据和计数值进行计算得到第一数据;根据初始密钥得到加密密钥;
进一步地,步骤D2具体为:终端设备使用第一算法对第三数据和计数值中第二预设长度数据进行计算得到第一数据;记初始密钥为加密密钥。
步骤D3:终端设备根据加密密钥和第一数据得到第二数据;根据第二十预设数据和加密密钥更新第一数据;对第三数据、第一数据和第二数据进行计算生成未来密钥;
进一步地,步骤D3中,终端设备根据加密密钥和第一数据得到第二数据,具体为:终端设备使用加密密钥中第一预设长度数据对加密密钥中第二预设长度数据和第一数据进行加密得到第十一加密结果,对第十一加密结果和加密密钥中第二预设长度数据进行计算得到第二数据。
进一步地,步骤D3中,根据第二十预设数据和加密密钥更新第一数据,具体为:终端设备根据第二十预设数据更新加密密钥;使用加密密钥对第一数据和加密密钥进行加密得到第十四加密结果;删除第一数据;对第十四加密结果和加密密钥进行计算得到新的第一数据。
进一步地,步骤D3中,第三数据、新的第一数据和第二数据进行计算生成未来密钥,具体为:终端设备对新的第一数据和第二数据进行计算得到第十五计算结果,根据第三数据和第十五计算结果生成未来密钥。
步骤D4:终端设备更新第三数据,判断第三数据是否满足第十四预设条件,是则删除初始密钥,更新计数值并存储,存储生成的未来密钥至未来密钥列表和第三数据,向上位机返回初始化完成响应;否则返回步骤D2。
实施例二
本发明实施例二提供一种终端设备管理密钥的方法中的密钥生成与更新操作的流程图,如图2所示,包括以下步骤:
步骤201:终端设备接收上位机发送的交易指令;根据预置的计数值更新预置的第三数据;
具体地,终端设备接收上位机发送的交易指令;查找预置的计数值中右侧第一个第二预设值,查看查找到的第二预设值的比特位记为第一比特位,将预置的第三数据中第一比特位设置为第二预设值,其余比特位设置为第一预设值;
可选地,本方法之前,还包括初始化操作,初始化操作中,终端设备预置计数值、第三数据和未来密钥列表;
步骤202:终端设备根据第三数据从未来密钥列表中查找当前未来密钥,当查找到当前未来密钥时,执行步骤205,当没有查找到当前未来密钥时,执行步骤203;
具体地,终端设备根据第三数据和更新后的第三数据计算第一偏移量,根据第一偏移量查找与第一偏移量相对应的未来密钥,判断查找到的未来密钥是否为空,是则执行步骤203,否则记查找到的未来密钥为当前未来密钥,执行步骤205;
更具体地,终端设备查找第三数据中第二预设值的比特位,记为第二比特位,计算第一比特位和第二比特位的绝对值,记计算出的绝对值为第一偏移量;根据第一偏移量查找与第一偏移量相对应的未来密钥,判断查找到的未来密钥是否为第一预设数据,是则执行步骤203,否则记查找到的未来密钥为当前未来密钥,执行步骤205;
例如,第一预设数据为0x000000;
可选地,步骤202中,当没有查找到当前未来密钥时,还包括:终端设备加密当前未来密钥得到第一密文数据,存储第一密文数据至密钥容器;从密钥容器中取出第一密文数据,解密第一密文数据得到当前未来密钥,执行步骤205;
步骤203:终端设备更新计数值,判断计数值是否满足第一预设条件,是则向上位机返回报错信息,结束;否则执行步骤204;
具体地,终端设备更新计数值,判断计数值是否大于第二预设数据,是则报错,结束;否则执行步骤204;
例如,终端设备将计数器增1,判断增1后计数值是否大于第二预设数据,是则报错,结束;否则执行步骤204;其中,第二预设数据为0x1FFC00;
步骤204:终端设备根据计数值更新第三数据,返回步骤202;
具体地,终端设备查找计数值中右侧第一个第二预设值,查看查找到的第二预设值的比特位记为第一比特位,将预置的第三数据中第一比特位设置为第二预设值,其余比特位设置为第一预设值;
步骤205:终端设备根据当前未来密钥和第三预设数据生成鉴别请求密钥;根据当前未来密钥和第四预设数据生成鉴别响应密钥;根据当前未来密钥和第五预设数据生成PIN加密密钥;根据当前未来密钥和第六预设数据生成数据加密密钥,向上位机返回密钥生成成功响应,执行步骤206;
具体地,PIN(PersonalIdentification Number)为个人识别密码;
具体地,终端设备根据第一算法对当前未来密钥和第三预设数据进行计算得到鉴别请求密钥;根据第一算法对当前未来密钥和第四预设数据进行计算得到鉴别响应密钥;根据第一算法对当前未来密钥和第五预设数据进行计算得到PIN加密密钥;根据第二算法对当前未来密钥和第六预设数据进行计算得到第一计算结果;根据第二算法使用第一计算结果分别对第一计算结果中第一预设长度数据和第二预设长度数据进行加密得到第一加密结果和第二加密结果,对第一加密结果和第二加密结果进行计算得到数据加密密钥;向上位机返回密钥生成成功响应,执行步骤206;
更具体地,终端设备根据第一算法对当前未来密钥和第三预设数据进行计算得到鉴别请求密钥;根据第一算法对当前未来密钥和第四预设数据进行计算得到鉴别响应密钥;根据第一算法对当前未来密钥和第五预设数据进行计算得到PIN加密密钥;根据第二算法对当前未来密钥和第六预设数据进行计算得到第一计算结果;根据第二算法使用第一计算结果对第一计算结果中左第一预设长度数据进行加密得到第一加密结果;根据第二算法使用第一计算结果对第一计算结果中右第二预设长度数据进行加密得到第二加密结果;根据第三算法对第一加密结果和第二加密结果进行计算得到数据加密密钥;向上位机返回密钥生成成功响应,执行步骤206;
例如,终端设备对当前未来密钥和第三预设数据进行异或运算得到鉴别请求密钥;对当前未来密钥和第四预设数据进行异或运算得到鉴别响应密钥;对当前未来密钥和第五预设数据进行异或运算得到PIN加密密钥;对当前未来密钥和第六预设数据进行异或运算得到第一计算结果,使用第一计算结果对第一计算结果中左8个字节数据进行3DES加密运算得到第一加密结果,使用第一计算结果对第一计算结果中右8个字节数据进行3DES加密运算得到第二加密结果;对第一加密结果和第二加密结果进行顺序拼接得到数据加密密钥;向上位机返回密钥生成成功响应,执行步骤206;
例如,第三预设数据包括16个字节,为0x000000000000FF00000000000000FF00;
第四预设数据包括16个字节,为0x00000000FF00000000000000FF000000;
第五预设数据包括16个字节,为0x00000000000000FF00000000000000FF;
第六预设数据包括16个字节,为0x0000000000FF00000000000000FF0000;
第一计算结果为0x11223344559977888877665544CC2211;
第一加密结果为0x34DCF61C79883E25;
第二加密结果为0xF85B53916D6F5DFC;
鉴别请求密钥为0x1122334455668888887766554433DD11;
鉴别响应密钥为0x11223344AA66778888776655BB332211;
PIN加密密钥为0x112233445566777788776655443322EE;
数据加密密钥为0x34DCF61C79883E25F85B53916D6F5DFC;
步骤206:终端设备判断计数值是否满足第二预设条件,是则执行步骤207,否则执行步骤208;
具体地,终端设备判断计数值中第二预设值的数量是否大于第七预设数据,是则执行步骤207,否则执行步骤208;
例如,终端设备判断计数值中1的数量是否大于10,是则执行步骤207,否则执行步骤208;
步骤207:终端设备判断计数值是否满足第三预设条件,是则向上位机返回报错信息,结束;否则执行步骤208;
可选地,终端设备判断计数值是否为第八预设数据,是则向上位机返回报错信息,结束;否则执行步骤208;
例如,第八预设数据为0x1FFE00;
步骤208:终端设备更新第三数据,判断第三数据是否满足第四预设条件,是则删除当前未来密钥,更新计数值,返回步骤207,否则行步骤209;
具体地,终端设备将第三数据中的第二预设值向右偏移第一预设比特位,判断偏移后的第三数据是否为第九预设数据,是则删除当前未来密钥,更新计数值,返回步骤207,否则行步骤209;
更具体地,终端设备将第三数据中的1向右偏移1个比特位,判断偏移后的第三数据判断是否为第七预设数据,是则删除当前未来密钥,计数值增1,返回步骤207,否则执行步骤209;
步骤209:终端设备对第三数据和计数值进行计算得到第一数据;
具体地,终端设备使用第一算法对第三数据和计数值进行计算得到第一数据;
更进一步地,终端设备使用第一算法对第三数据和计数值中右第二预设长度数据进行计算得到第一数据;
例如,终端设备对第三数据和计数值中右8个字节数据进行异或运算得到第一数据;
步骤210:终端设备根据当前未来密钥得到加密密钥;
具体地,终端设备记当前未来密钥为加密密钥;
步骤211:终端设备使用加密密钥对加密密钥和第一数据进行加密得到第三加密结果,对第三加密结果和加密密钥进行计算得到第二数据;
具体地,终端设备使用加密密钥中第一预设长度数据对加密密钥中第一预设长度数据和第一数据进行加密得到第三加密结果,对第三加密结果和加密密钥中第二预设长度数据进行计算得到第二数据;
更具体地,终端设备使用第一算法对加密密钥中左第一预设长度数据和第一数据进行计算得到第二计算结果;根据第二算法使用加密密钥中左第一预设长度数据对第二计算结果进行加密得到第三加密结果;使用第一算法对第三加密结果和加密密钥中右第二预设长度数据进行计算得到第二数据;
例如,终端设备对加密密钥中左8个字节数据和第一数据进行异或运算得到第二计算结果;使用加密密钥中左8个字节数据对第二计算结果进行加密得到第三加密结果,对第三加密结果和加密密钥中右8个字节数据进行异或运算得到第二数据;
例如,第二计算结果为0x34DCF61C79883E26;
第三加密结果为0xC53D62470438C3687F701FAA67012B70;
步骤212:终端设备根据第十预设数据更新加密密钥;使用加密密钥对加密密钥和第一数据进行加密得到第四加密结果,对第四加密结果和加密密钥进行计算生成新的第一数据;
具体地,终端设备对加密密钥和第十预设数据进行计算得到第三计算结果,用第三计算结果更新加密密钥;使用更新后的加密密钥中第一预设长度数据对加密密钥中第一预设长度数据和第一数据进行加密得到第四加密结果;删除第一数据;对第四加密结果和更新后的加密密钥进行计算生成新的第一数据;
更具体地,终端设备使用第一算法对加密密钥和第十预设数据进行计算得到第三计算结果,记第三计算结果为更新后的加密密钥;使用第一算法对加密密钥中左第一预设长度数据和第一数据进行计算得到第四计算结果;根据第二算法使用加密密钥中左第一预设长度数据对第四计算结果进行加密得到第四加密结果;删除第一数据;使用第一算法对第四加密结果和更新后的加密密钥中右第二预设长度数据进行计算生成新的第一数据;
例如,终端设备将加密密钥中左8个字节数据和第十预设数据进行异或运算得到第三计算结果,记第三计算结果为更新后的加密密钥;对更新后的加密密钥中左8个字节数据和第一数据进行异或运算得到第四计算结果;删除第一数据;使用更新后的加密密钥中左8个字节数据对第四计算结果进行3DES加密运算得到第四加密结果;对第四加密结果和更新后的加密密钥中右8个字节数据进行异或运算生成新的第一数据;
例如,更新后的加密密钥为0xC53D62470438C3687F701FAA67012B70;
第四加密结果为0x0F41022609FF675E;
第三计算结果为0xC53D62470438C3687F701FAA67012B70;
第四计算结果为0x069816195F104FC997E9E4DBAF7B6987;
第一数据为0x70311D8C6EFE4C2E;
新的第一数据为0x98A8E6FDA6840ED9;
第一预设长度为8个字节;
第二预设长度为8个字节;
步骤213:终端设备对第三数据、新的第一数据和第二数据进行计算生成未来密钥并存储至未来密钥列表。
具体地,终端设备对新的第一数据和第二数据进行计算得到第五计算结果,根据第三数据和第五计算结果生成未来密钥并存储至未来密钥列表;
更具体地,终端设备使用第三算法对新的第一数据和第二数据进行计算得到第五计算结果,查找第三数据中第二预设值的位置,根据与第二预设值的位置将第五计算结果作为未来密钥存储至未来密钥列表;
例如,终端设备将更新后的第一数据和第二数据进行顺序拼接得到第五计算结果,查找第三数据中的1的位置,根据第三数据中1的位置相将第五计算结果作为未来密钥存储至未来密钥列表;
可选地,步骤213之后还包括两种情况,其中,第一种:终端设备执行步骤206;即终端设备判断是否再生成一个未来密钥;第二种:终端设备存储第三数据、计数值和未来密钥列表,返回步骤201;即终端设备等待接收上位机发送的新的交易指令。
本实施例中指的终端设备包括具有支付结算功能的金融终端(支付终端)和FIDO(Fast Identity Online)设备。
实施例三
本发明实施例三提供一种终端设备管理密钥的方法中的初始化操作流程,所述初始化操作在实施例2的密钥生成与更新操作流程之前,如图3所示,包括以下步骤:
步骤301:终端设备接收上位机发送的初始化指令,解析初始化指令得到初始密钥和计数值;生成第三数据;
可选地,生成第三数据后,还包括:终端设备更新第三数据;
进一步地,终端设备更新第三数据,具体为:终端设备将第三数据中第十一预设比特位设置为第二预设值,其余比特位设置为第一预设值;
进一步地,终端设备更新第三数据后,还包括:终端设备使用第一预设值填充第三数据至第一预设长度;例如,终端设备将第三数据右对齐扩充至8个字节长度,用0填充扩充的比特位;
例如,初始密钥为0x11223344556677888877665544332211;
第三数据为0x9876543215C00000;
步骤302:终端设备对第三数据和计数值进行计算得到第一数据;根据初始密钥得到加密密钥;
具体地,终端设备使用第一算法对第三数据和计数值中第二预设长度数据进行计算得到第一数据;
更进一步地,终端设备使用第一算法对填充后的第三数据和计数值中右第二预设长度数据进行计算得到第一数据;
例如,终端设备对填充后的第三数据和计数值中右8个字节数据进行异或运算得到第一数据;
步骤303:终端设备根据初始密钥得到加密密钥;
具体地,终端设备记初始密钥为加密密钥;
步骤304:终端设备使用加密密钥对加密密钥和第一数据进行加密得到第十一加密结果,对第十一加密结果和加密密钥进行计算得到第二数据;
具体地,终端设备使用加密密钥中第一预设长度数据对加密密钥中第二预设长度数据和第一数据进行加密得到第十一加密结果,对第十一加密结果和加密密钥中第二预设长度数据进行计算得到第二数据;
更具体地,终端设备使用第一算法对加密密钥中左第一预设长度数据和第一数据进行计算得到第十一计算结果;根据第二算法使用加密密钥中左第一预设长度数据对第十一计算结果进行加密得到第十一加密结果;使用第一算法对第十一加密结果和加密密钥中右第二预设长度数据进行计算得到第二数据;
例如,终端设备对加密密钥中左8个字节数据和第一数据进行异或运算得到第十一计算结果;使用加密密钥中左8个字节数据对第十一计算结果进行加密得到第十一加密结果,对第一加密结果和加密密钥中右8个字节数据进行异或运算得到第二数据;
例如,第十一计算结果为0x61132EC83B983BA6;
第十一加密结果为0x634C1BF15DD5CA34;
步骤305:终端设备根据第二十预设数据更新加密密钥;使用加密密钥对第一数据和加密密钥进行加密得到第十四加密结果;对第十四加密结果和加密密钥进行计算得到新的第一数据;
具体地,终端设备对加密密钥和第二十预设数据进行计算得到第十三计算结果,用第十三计算结果更新加密密钥;使用更新后的加密密钥中第一预设长度数据对更新后的加密密钥中第一预设长度数据和第一数据进行加密得到第十四加密结果;删除第一数据;对第十四加密结果和更新后的加密密钥进行计算生成新的第一数据;
更具体地,终端设备使用第一算法对加密密钥和第二十预设数据进行计算得到第十三计算结果,记第十三计算结果为更新后的加密密钥;使用第一算法对加密密钥中左第一预设长度数据和第一数据进行计算得到第十四计算结果;根据第二算法使用加密密钥中左第一预设长度数据对第十四计算结果进行加密得到第十四加密结果;删除第一数据;使用第一算法对第十四加密结果和更新后的加密密钥中右第二预设长度数据进行计算生成新的第一数据;
例如,终端设备将加密密钥中左8个字节数据和第二十预设数据进行异或运算得到第十三计算结果,记第十三计算结果为更新后的加密密钥;对更新后的加密密钥中左8个字节数据和第一数据进行异或运算得到第十四计算结果;删除第一数据;使用更新后的加密密钥中左8个字节数据对第十四计算结果进行3DES加密运算得到第十四加密结果;对第十四加密结果和更新后的加密密钥中右8个字节数据进行异或运算生成新的第一数据;
例如,第十二预设数据为0x80CED117D09E0C16;
更新后的加密密钥为0x983A78D7BF82A00491ECE25385F87B9E;
第十四加密结果为0x983A78D7BF82A004;
第十三计算结果为0x91ECE25385F87B9E;
第十四计算结果为0x8134BE6810FE96CB;
第一预设长度为8个字节;
第二预设长度为8个字节;
步骤306:终端设备对更新后的第三数据、新的第一数据和第二数据进行计算得到未来密钥;
具体地,终端设备对新的第一数据和第二数据进行计算得到第十五计算结果,根据更新后的第三数据和第十五计算结果生成未来密钥;
更具体地,终端设备使用第三算法对更新后的第一数据和第二数据进行计算得到第十五计算结果,查找更新后的第三数据中第二预设值的位置,根据与第二预设值的位置将第十五计算结果作为未来密钥存储;
例如,终端设备将更新后的第一数据和第二数据进行顺序拼接得到第十五计算结果,查找更新后的第三数据中的1的位置,根据更新后的第三数据中1的位置相将第七计算结果作为未来密钥存储;
例如,第十五计算结果为0x0297802A447DCFD3E518F9CC05467DF6;
步骤307:终端设备更新第三数据,判断第三数据是否满足第十四预设条件,是则删除初始密钥,更新计数值并存储,存储生成的未来密钥和更新后的第三数据,向上位机返回初始化完成响应;否则返回步骤302;
具体地,终端设备将第三数据中第二预设值向右偏移第十一预设比特位,根据偏移后的第三数据是否为第十七预设数据,是则删除初始密钥,更新计数值并存储,存储生成的未来密钥和更新后的第三数据,向上位机返回初始化完成响应;是则返回步骤302;
例如,第二预设值为1;
第十一预设比特位为1;
本实施例中指的终端设备包括具有支付结算功能的金融终端(支付终端)和FIDO(Fast Identity Online)设备。
实施例四
本发明实施例四提供一种终端设备,如图4所示,包括接收模块401、第一得到模块402、第一查找模块403、第一生成模块404、第二生成模块405、第三生成模块406、第四生成模块407、发送模块408、第一更新模块409、第一判断模块410、第一删除模块411、第二更新模块412、第二得到模块413、第三得到模块414、第四得到模块415、第三更新模块416、第五生成模块417和第一保存模块418;
接收模块401,用于接收上位机发送的交易指令;
第一得到模块402,用于根据预置的计数值和预置的第三数据得到第三数据的第一偏移量;
可选地,第一得到模块402包括第一更新单元、第一计算单元、第一记为单元、第一查找单元和第二记为单元;
第一更新单元,用于根据预置的计数值更新预置的第三数据,
第一计算单元,用于计算第一更新单元更新后的第三数据中第二预设值的比特位与第一更新单元更新前的第三数据中第二预设值的比特位的差值的绝对值,
第一记为单元,用于记第一计算单元计算得到的绝对值为第一偏移量;
第一查找单元,用于根据第一记为模块得到的第一偏移量查找与第一偏移量相对应的未来密钥,
第二记为单元,用于记第一查找单元查找的未来密钥为当前未来密钥;
进一步地,本实施例中的终端设备还包括第二判断模块和第一报错模块;
第二判断模块,用于判断第一查找单元查找到的未来密钥是否为空;当判断为否时,触发第二记为单元;
第一报错模块,用于当第二判断模块判断为是时,报错,结束。
第一查找模块403,用于根据第一得到模块402得到的第一偏移量从未来密钥列表中查找当前未来密钥;
第一生成模块404,用于根据第一查找模块403查找到的当前未来密钥和第三预设数据生成鉴别请求密钥;
第二生成模块405,用于根据第一查找模块403查找到的当前未来密钥和第四预设数据生成鉴别响应密钥;
第三生成模块406,用于根据第一查找模块403查找到的当前未来密钥和第五预设数据生成PIN加密密钥;
可选地,第一生成模块404,具体用于根据第一算法对第一查找模块403查找到的当前未来密钥和第三预设数据进行计算得到鉴别请求密钥;
第二生成模块405,具体用于根据第一算法对第一查找模块403查找到的当前未来密钥和第四预设数据进行计算得到鉴别响应密钥;
第三生成模块406,具体用于根据第一算法对第一查找模块403查找到的当前未来密钥和第五预设数据进行计算得到PIN加密密钥。
第四生成模块407,用于根据第一查找模块403查找到的当前未来密钥和第六预设数据生成数据加密密钥;
可选地,第四生成模块407,具体用于根据第二算法对第一查找模块403查找到的当前未来密钥和第六预设数据进行计算得到第一计算结果,根据第二算法使用第一计算结果对第一计算结果中左第一预设长度数据进行加密得到第一加密结果;根据第二算法使用第一计算结果对第一计算结果中右第二预设长度数据进行加密得到第二加密结果;根据第三算法对第一加密结果和第二加密结果进行计算得到数据加密密钥。
发送模块408,用于向上位机返回密钥生成成功响应;
第一更新模块409,用于更新第三数据;
第一判断模块410,用于判断第一更新模块409更新的第三数据是否满足第四预设条件;
第一删除模块411,用于当第一判断模块410判断为是时,删除当前未来密钥;
第二更新模块412,用于当第一判断模块410判断为是时,更新计数值;
接收模块401,还用于等待接收上位机发送的新的交易指令;
第二得到模块413,用于当第一判断模块410判断为否时,根据第一更新模块409更新的第三数据和计数值得到第一数据;
可选地,第二得到模块413,具体用于当第一判断模块410判断为否时,使用第一算法对第一更新模块409更新的第三数据和计数值进行计算得到第一数据。
第三得到模块414,用于根据第一查找模块403查找到的当前未来密钥得到加密密钥;
第四得到模块415,用于根据第三得到模块414得到的加密密钥和第二得到模块413得到的第一数据得到第二数据;
可选地,第四得到模块415,具体用于使用第三得到模块414得到的加密密钥对加密密钥和第二得到模块413得到的第一数据进行加密得到第三加密结果,对第三加密结果和加密密钥进行计算得到第二数据。
第三更新模块416,用于根据第十预设数据和第三得到模块414得到的加密密钥更新第一数据;
可选地,第三更新模块416,具体用于根据第十预设数据更新第三得到模块414得到的加密密钥;使用加密密钥对加密密钥和第二得到模块413得到的第一数据进行加密得到第四加密结果,对第四加密结果和加密密钥进行计算生成新的第一数据。
第五生成模块417,用于根据第四得到模块415得到的第二数据、第一更新模块409更新后的第三数据和第三更新模块416更新后的第一数据生成未来密钥;
可选地,第五生成模块417,用于对第三更新模块416更新后的新的第一数据和第四得到模块415得到的第二数据进行计算得到第五计算结果,根据第一更新模块409更新后的第三数据和第五计算结果生成未来密钥。
第一保存模块418,用于存储第五生成模块417生成的未来密钥至未来密钥列表。
可选地,本实施例中的终端设备,还包括第三判断模块、第五更新模块和第二计算模块;
第三判断模块,用于判断是否查找到当前未来密钥;当判断为是时,触发第一生成模块404、第二生成模块405、第三生成模块406和第四生成模块407;
第四更新模块,用于当第三判断模块判断为是时,更新计数值;
第四判断模块,用于判断第四更新模块更新后的计数值是否满足第一预设条件;
发送模块408,还用于当第四判断模块判断为否时,向上位机返回报错信息,结束;
第五更新模块,用于根据第四更新模块更新后的计数值更新第三数据;
第二计算模块,用于根据第五更新模块更新前的第三数据和第五更新模块更新后的第三数据计算第一偏移量,触发第一查找模块403。.
可选地,本实施例中的终端设备,还包括第四判断模块和第五判断模块;
第四判断模块,用于判断计数值是否满足第二预设条件,是则触发第五判断模块,否则触发第一更新模块409;
第五判断模块,用于判断计数值是否满足第三预设条件;
发送模块408,用于当第五判断模块判断为是时,向上位机返回报错信息,结束;
接收模块401,还用于当第五判断模块判断为否时,等待接收上位机发送的新的交易指令。
可选地,本实施例中的终端设备,还包括第一解析模块、第六生成模块、第五得到模块、第六得到模块、第七得到模块、第六更新模块、第七生成模块、第七更新模块、第七判断模块、第二删除模块、第八更新模块和第二保存模块;
接收模块401,还用于接收上位机发送的初始化指令;
第一解析模块,用于解析接收模块401接收的初始化指令得到初始密钥和计数值;
第六生成模块,用于生成第三数据;
第五得到模块,用于对第六生成模块生成的第三数据和第一解析模块解析得到的计数值进行计算得到第一数据;
第六得到模块,用于根据第一解析模块解析得到的初始密钥得到加密密钥;
进一步地,第五得到模块,具体用于使用第一算法对第六生成模块生成的第三数据和第一解析模块解析得到的计数值中第二预设长度数据进行计算得到第一数据;
第六得到模块,用于具体记第一解析模块解析得到的初始密钥为加密密钥。
第七得到模块,用于根据第六得到模块得到的加密密钥和第五得到模块得到的第一数据得到第二数据;
进一步地,第七得到模块,具体用于使用第六得到模块得到的加密密钥中第一预设长度数据对第六得到模块得到的加密密钥中第二预设长度数据和第五得到模块得到的第一数据进行加密得到第十一加密结果,对第十一加密结果和第六得到模块得到的加密密钥中第二预设长度数据进行计算得到第二数据。
第六更新模块,用于根据第二十预设数据和第六得到模块得到的加密密钥更新第一数据;
进步一地,第六更新模块,具体用于根据第二十预设数据更新第六得到模块得到的加密密钥;使用加密密钥对第一数据和加密密钥进行加密得到第十四加密结果;删除第一数据;对第十四加密结果和加密密钥进行计算得到新的第一数据。
第七生成模块,用于对第六生成模块生成的第三数据、第六更新模块更新后的第一数据和第七得到模块得到的第二数据进行计算生成未来密钥;
进一步地,第七生成模块,具体用于对第六更新模块更新后的新的第一数据和第七得到模块得到的第二数据进行计算得到第十五计算结果,根据第六生成模块生成的第三数据和第十五计算结果生成未来密钥。
第七更新模块,用于更新第六生成模块生成的第三数据;
第七判断模块,用于判断第七更新模块更新后的第三数据是否满足第十四预设条件,是则触发第二删除模块、第八更新模块及第二保存模块;否则触发第五得到模块;
第二删除模块,用于删除初始密钥;
第八更新模块,用于更新计数值;
第二保存模块,用于存储第八更新模块更新后的计数值、第七生成模块生成的未来密钥至未来密钥列表和存储第七更新模块更新后的第三数据;
发送模块408,还用于向上位机返回初始化完成响应。
所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应。
Claims (30)
1.一种终端设备管理密钥的方法,其特征在于,包括以下步骤:
步骤S1:终端设备接收上位机发送的交易指令;根据预置的计数值和预置的第三数据得到第三数据的第一偏移量;
步骤S2:所述终端设备根据所述第一偏移量从未来密钥列表中查找当前未来密钥;
步骤S3:所述终端设备根据所述当前未来密钥和第三预设数据生成鉴别请求密钥;根据所述当前未来密钥和第四预设数据生成鉴别响应密钥;根据所述当前未来密钥和第五预设数据生成PIN加密密钥;根据所述当前未来密钥和第六预设数据生成数据加密密钥,向上位机返回密钥生成成功响应;
步骤S4:所述终端设备更新第三数据,判断第三数据是否满足第四预设条件,是则删除所述当前未来密钥,更新计数值,等待接收上位机发送的新的交易指令,否则执行步骤S5;
步骤S5:所述终端设备根据第三数据和计数值得到第一数据;根据所述当前未来密钥得到加密密钥;根据所述加密密钥和第一数据得到第二数据;根据第十预设数据和所述加密密钥更新第一数据;根据所述第二数据、第三数据和第一数据生成未来密钥并存储至未来密钥列表;
所述根据预置的计数值和预置的第三数据得到第三数据的第一偏移量,具体为:所述终端设备根据预置的计数值更新预置的第三数据,计算更新后的第三数据中第二预设值的比特位与更新前的第三数据中第二预设值的比特位的差值的绝对值,记绝对值为第一偏移量,根据所述第一偏移量查找与所述第一偏移量相对应的未来密钥,记查找的未来密钥为当前未来密钥。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一偏移量查找与所述第一偏移量相对应的未来密钥之后,所述记查找的未来密钥为当前未来密钥之前,还包括:所述终端设备判断查找到的未来密钥是否为空,是则报错,结束;否则记查找到的未来密钥为当前未来密钥。
3.如权利要求1所述的方法,其特征在于,所述步骤S2之后,还包括:
步骤A1:所述终端设备判断是否查找到当前未来密钥,是则执行步骤S3,否则执行步骤A2;
步骤A2:所述终端设备更新计数值,判断计数值是否满足第一预设条件,是则向上位机返回报错信息,结束;否则执行步骤A3;
步骤A3:所述终端设备根据计数值更新第三数据,根据更新前的第三数据和更新后的第三数据计算第一偏移量,返回步骤S2。
4.如权利要求1所述的方法,其特征在于,所述步骤S3中,所述终端设备根据所述当前未来密钥和第三预设数据生成鉴别请求密钥;根据所述当前未来密钥和第四预设数据生成鉴别响应密钥;根据所述当前未来密钥和第五预设数据生成PIN加密密钥,具体为:所述终端设备根据第一算法对当前未来密钥和第三预设数据进行计算得到鉴别请求密钥;根据第一算法对当前未来密钥和第四预设数据进行计算得到鉴别响应密钥;根据第一算法对当前未来密钥和第五预设数据进行计算得到PIN加密密钥。
5.如权利要求1所述的方法,其特征在于,所述步骤S3中,所述根据当前未来密钥和第六预设数据生成数据加密密钥,具体为:所述终端设备根据第二算法对当前未来密钥和第六预设数据进行计算得到第一计算结果,根据第二算法使用第一计算结果对第一计算结果中左第一预设长度数据进行加密得到第一加密结果;根据第二算法使用第一计算结果对第一计算结果中右第二预设长度数据进行加密得到第二加密结果;根据第三算法对第一加密结果和第二加密结果进行计算得到数据加密密钥。
6.如权利要求1所述的方法,其特征在于,所述步骤S3之后,还包括:
步骤C1:所述终端设备判断计数值是否满足第二预设条件,是则执行步骤C2,否则执行步骤S4;
步骤C2:所述终端设备判断计数值是否满足第三预设条件,是则向上位机返回报错信息,结束;否则等待接收上位机发送的新的交易指令。
7.如权利要求1所述的方法,其特征在于,所述步骤S5中,所述根据第三数据和计数值得到第一数据,具体为:所述终端设备使用第一算法对第三数据和计数值进行计算得到第一数据。
8.如权利要求1所述的方法,其特征在于,所述步骤S5中,所述根据所述加密密钥和第一数据得到第二数据,具体为:所述终端设备使用加密密钥对加密密钥和第一数据进行加密得到第三加密结果,对第三加密结果和加密密钥进行计算得到第二数据。
9.如权利要求1所述的方法,其特征在于,所述步骤S5中,所述根据第十预设数据和所述加密密钥更新第一数据,具体为:所述终端设备根据第十预设数据更新加密密钥;使用加密密钥对加密密钥和第一数据进行加密得到第四加密结果,对第四加密结果和加密密钥进行计算生成新的第一数据。
10.如权利要求1所述的方法,其特征在于,所述步骤S5中,所述根据所述第二数据、第三数据和第一数据生成未来密钥并存储至未来密钥列表,具体为:所述终端设备对新的第一数据和第二数据进行计算得到第五计算结果,根据第三数据和第五计算结果生成未来密钥。
11.如权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括初始化操作,所述初始化操作包括以下步骤:
步骤D1:所述终端设备接收上位机发送的初始化指令,解析所述初始化指令得到初始密钥和计数值;生成第三数据;
步骤D2:所述终端设备对所述第三数据和计数值进行计算得到第一数据;根据初始密钥得到加密密钥;
步骤D3:所述终端设备根据所述加密密钥和所述第一数据得到第二数据;根据第二十预设数据和所述加密密钥更新第一数据;对所述第三数据、第一数据和第二数据进行计算生成未来密钥;
步骤D4:所述终端设备更新第三数据,判断第三数据是否满足第十四预设条件,是则删除初始密钥,更新计数值并存储,存储生成的未来密钥至未来密钥列表和第三数据,向上位机返回初始化完成响应;否则返回步骤D2。
12.如权利要求11所述的方法,其特征在于,所述步骤D2具体为:所述终端设备使用第一算法对第三数据和计数值中第二预设长度数据进行计算得到第一数据;记初始密钥为加密密钥。
13.如权利要求11所述的方法,其特征在于,所述步骤D3中,所述终端设备根据所述加密密钥和所述第一数据得到第二数据,具体为:所述终端设备使用加密密钥中第一预设长度数据对加密密钥中第二预设长度数据和第一数据进行加密得到第十一加密结果,对第十一加密结果和加密密钥中第二预设长度数据进行计算得到第二数据。
14.如权利要求11所述的方法,其特征在于,所述步骤D3中,所述根据第二十预设数据和所述加密密钥更新第一数据,具体为:所述终端设备根据第二十预设数据更新加密密钥;对第一数据和更新后的加密密钥进行计算得到第十四计算结果,使用更新后的加密密钥对第十四计算结果进行加密得到第十四加密结果;删除第一数据;对第十四加密结果和加密密钥进行计算得到新的第一数据。
15.如权利要求11所述的方法,其特征在于,所述步骤D3中,所述第三数据、新的第一数据和第二数据进行计算生成未来密钥,具体为:所述终端设备对新的第一数据和第二数据进行计算得到第十五计算结果,根据第三数据和第十五计算结果生成未来密钥。
16.一种终端设备管理密钥的终端设备,其特征在于,包括接收模块、第一得到模块、第一查找模块、第一生成模块、第二生成模块、第三生成模块、第四生成模块、发送模块、第一更新模块、第一判断模块、第一删除模块、第二更新模块、第二得到模块、第三得到模块、第四得到模块、第三更新模块、第五生成模块和第一保存模块;
所述接收模块,用于接收上位机发送的交易指令;
所述第一得到模块,用于根据预置的计数值和预置的第三数据得到第三数据的第一偏移量;
所述第一查找模块,用于根据所述第一得到模块得到的所述第一偏移量从未来密钥列表中查找当前未来密钥;
所述第一生成模块,用于根据所述第一查找模块查找到的所述当前未来密钥和第三预设数据生成鉴别请求密钥;
所述第二生成模块,用于根据所述第一查找模块查找到的所述当前未来密钥和第四预设数据生成鉴别响应密钥;
所述第三生成模块,用于根据所述第一查找模块查找到的所述当前未来密钥和第五预设数据生成PIN加密密钥;
所述第四生成模块,用于根据所述第一查找模块查找到的所述当前未来密钥和第六预设数据生成数据加密密钥;
所述发送模块,用于向上位机返回密钥生成成功响应;
所述第一更新模块,用于更新第三数据;
所述第一判断模块,用于判断所述第一更新模块更新的第三数据是否满足第四预设条件;
所述第一删除模块,用于当所述第一判断模块判断为是时,删除所述当前未来密钥;
所述第二更新模块,用于当所述第一判断模块判断为是时,更新计数值;
所述接收模块,还用于当所述第一删除模块删除所述当前未来密钥且所述第二更新模块更新计数值后,等待接收上位机发送的新的交易指令;
所述第二得到模块,用于当所述第一判断模块判断为否时,根据所述第一更新模块更新的第三数据和计数值得到第一数据;
所述第三得到模块,用于根据所述第一查找模块查找到的所述当前未来密钥得到加密密钥;
所述第四得到模块,用于根据所述第三得到模块得到的所述加密密钥和所述第二得到模块得到的第一数据得到第二数据;
所述第三更新模块,用于根据第十预设数据和所述第三得到模块得到的所述加密密钥更新第一数据;
所述第五生成模块,用于根据所述第四得到模块得到的所述第二数据、所述第一更新模块更新后的第三数据和所述第三更新模块更新后的第一数据生成未来密钥;
所述第一保存模块,用于存储所述第五生成模块生成的未来密钥至未来密钥列表;
所述第一得到模块包括第一更新单元、第一计算单元、第一记为单元、第一查找单元和第二记为单元;
所述第一更新单元,用于根据预置的计数值更新预置的第三数据,
所述第一计算单元,用于计算所述第一更新单元更新后的第三数据中第二预设值的比特位与所述第一更新单元更新前的第三数据中第二预设值的比特位的差值的绝对值,
所述第一记为单元,用于记所述第一计算单元计算得到的绝对值为第一偏移量;
所述第一查找单元,用于根据所述第一记为模块得到的所述第一偏移量查找与所述第一偏移量相对应的未来密钥,
所述第二记为单元,用于记所述第一查找单元查找的未来密钥为当前未来密钥。
17.如权利要求16所述的终端设备,其特征在于,还包括第二判断模块和第一报错模块;
所述第二判断模块,用于判断所述第一查找单元查找到的未来密钥是否为空;当判断为否时,触发所述第二记为单元;
所述第一报错模块,用于当所述第二判断模块判断为是时,报错,结束。
18.如权利要求16所述的终端设备,其特征在于,还包括第三判断模块、第四更新模块、第四判断模块、第五更新模块和第二计算模块;
所述第三判断模块,用于判断是否查找到当前未来密钥;当判断为是时,触发所述第一生成模块、所述第二生成模块、所述第三生成模块和所述第四生成模块;
所述第四更新模块,用于当所述第三判断模块判断为是时,更新计数值;
所述第四判断模块,用于判断所述第四更新模块更新后的计数值是否满足第一预设条件;
所述发送模块,还用于当第四判断模块判断为否时,向上位机返回报错信息,结束;
所述第五更新模块,用于根据所述第四更新模块更新后的计数值更新第三数据;
所述第二计算模块,用于根据所述第五更新模块更新前的第三数据和所述第五更新模块更新后的第三数据计算第一偏移量,触发所述第一查找模块。
19.如权利要求16所述的终端设备,其特征在于,所述第一生成模块,具体用于根据第一算法对所述第一查找模块查找到的当前未来密钥和第三预设数据进行计算得到鉴别请求密钥;
所述第二生成模块,具体用于根据第一算法对所述第一查找模块查找到的当前未来密钥和第四预设数据进行计算得到鉴别响应密钥;
所述第三生成模块,具体用于根据第一算法对所述第一查找模块查找到的当前未来密钥和第五预设数据进行计算得到PIN加密密钥。
20.如权利要求16所述的终端设备,其特征在于,所述第四生成模块,具体用于根据第二算法对所述第一查找模块查找到的当前未来密钥和第六预设数据进行计算得到第一计算结果,根据第二算法使用第一计算结果对第一计算结果中左第一预设长度数据进行加密得到第一加密结果;根据第二算法使用第一计算结果对第一计算结果中右第二预设长度数据进行加密得到第二加密结果;根据第三算法对第一加密结果和第二加密结果进行计算得到数据加密密钥。
21.如权利要求16所述的终端设备,其特征在于,还包括第四判断模块和第五判断模块;
所述第四判断模块,用于判断计数值是否满足第二预设条件,是则触发第五判断模块,否则触发所述第一更新模块;
所述第五判断模块,用于判断计数值是否满足第三预设条件;
所述发送模块,用于当所述第五判断模块判断为是时,向上位机返回报错信息,结束;
所述接收模块,还用于当所述第五判断模块判断为否时,等待接收上位机发送的新的交易指令。
22.如权利要求16所述的终端设备,其特征在于,所述第二得到模块,具体用于当所述第一判断模块判断为否时,使用第一算法对所述第一更新模块更新的第三数据和计数值进行计算得到第一数据。
23.如权利要求16所述的终端设备,其特征在于,所述第四得到模块,具体用于使用所述第三得到模块得到的加密密钥对加密密钥和所述第二得到模块得到的第一数据进行加密得到第三加密结果,对第三加密结果和加密密钥进行计算得到第二数据。
24.如权利要求16所述的终端设备,其特征在于,所述第三更新模块,具体用于根据第十预设数据更新所述第三得到模块得到的加密密钥;使用加密密钥对加密密钥和所述第二得到模块得到的第一数据进行加密得到第四加密结果,对第四加密结果和加密密钥进行计算生成新的第一数据。
25.如权利要求16所述的终端设备,其特征在于,所述第五生成模块,用于对所述第三更新模块更新后的新的第一数据和所述第四得到模块得到的第二数据进行计算得到第五计算结果,根据所述第一更新模块更新后的第三数据和第五计算结果生成未来密钥。
26.如权利要求16所述的终端设备,其特征在于,还包括第一解析模块、第六生成模块、第五得到模块、第六得到模块、第七得到模块、第六更新模块、第七生成模块、第七更新模块、第七判断模块、第二删除模块、第八更新模块和第二保存模块;
所述接收模块,还用于接收上位机发送的初始化指令;
所述第一解析模块,用于解析所述接收模块接收的所述初始化指令得到初始密钥和计数值;
所述第六生成模块,用于生成第三数据;
所述第五得到模块,用于对所述第六生成模块生成的所述第三数据和所述第一解析模块解析得到的计数值进行计算得到第一数据;
所述第六得到模块,用于根据所述第一解析模块解析得到的初始密钥得到加密密钥;
所述第七得到模块,用于根据所述第六得到模块得到的所述加密密钥和所述第五得到模块得到的所述第一数据得到第二数据;
所述第六更新模块,用于根据第二十预设数据和所述第六得到模块得到的所述加密密钥更新第一数据;
所述第七生成模块,用于对所述第六生成模块生成的所述第三数据、所述第六更新模块更新后的第一数据和所述第七得到模块得到的第二数据进行计算生成未来密钥;
所述第七更新模块,用于更新所述第六生成模块生成的所述第三数据;
所述第七判断模块,用于判断所述第七更新模块更新后的第三数据是否满足第十四预设条件,是则触发第二删除模块、第八更新模块及第二保存模块;否则触发所述第五得到模块;
所述第二删除模块,用于删除初始密钥;
所述第八更新模块,用于更新计数值;
所述第二保存模块,用于存储所述第八更新模块更新后的计数值、所述第七生成模块生成的未来密钥至未来密钥列表和存储所述第七更新模块更新后的第三数据;
所述发送模块,还用于向上位机返回初始化完成响应。
27.如权利要求26所述的终端设备,其特征在于,所述第五得到模块,具体用于使用第一算法对所述第六生成模块生成的第三数据和所述第一解析模块解析得到的计数值中第二预设长度数据进行计算得到第一数据;
所述第六得到模块,用于具体记所述第一解析模块解析得到的初始密钥为加密密钥。
28.如权利要求26所述的终端设备,其特征在于,所述第七得到模块,具体用于使用所述第六得到模块得到的加密密钥中第一预设长度数据对所述第六得到模块得到的加密密钥中第二预设长度数据和所述第五得到模块得到的第一数据进行加密得到第十一加密结果,对第十一加密结果和所述第六得到模块得到的加密密钥中第二预设长度数据进行计算得到第二数据。
29.如权利要求26所述的终端设备,其特征在于,所述第六更新模块,具体用于根据第二十预设数据更新所述第六得到模块得到的加密密钥;对第一数据和更新后的加密密钥进行计算得到第十四计算结果,使用更新后的加密密钥对第十四计算结果进行加密得到第十四加密结果;删除第一数据;对第十四加密结果和加密密钥进行计算得到新的第一数据。
30.如权利要求26所述的终端设备,其特征在于,所述第七生成模块,具体用于对所述第六更新模块更新后的新的第一数据和所述第七得到模块得到的第二数据进行计算得到第十五计算结果,根据所述第六生成模块生成的第三数据和第十五计算结果生成未来密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811622509.4A CN109495260B (zh) | 2018-12-28 | 2018-12-28 | 一种终端设备及其管理密钥的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811622509.4A CN109495260B (zh) | 2018-12-28 | 2018-12-28 | 一种终端设备及其管理密钥的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109495260A CN109495260A (zh) | 2019-03-19 |
CN109495260B true CN109495260B (zh) | 2021-06-08 |
Family
ID=65712899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811622509.4A Active CN109495260B (zh) | 2018-12-28 | 2018-12-28 | 一种终端设备及其管理密钥的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109495260B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101278516A (zh) * | 2005-09-30 | 2008-10-01 | 索尼爱立信移动通讯股份有限公司 | 使用长密钥板的共享密钥加密 |
CN102468962A (zh) * | 2010-11-12 | 2012-05-23 | 同亨科技股份有限公司 | 利用个人密码装置的个人身份验证方法及个人密码装置 |
CN102761557A (zh) * | 2012-07-31 | 2012-10-31 | 飞天诚信科技股份有限公司 | 一种终端设备认证方法及装置 |
CN105007157A (zh) * | 2014-04-23 | 2015-10-28 | 密码研究公司 | 基于设备生成的密钥来生成和管理多个基密钥 |
CN105827655A (zh) * | 2016-05-27 | 2016-08-03 | 飞天诚信科技股份有限公司 | 一种智能密钥设备及其工作方法 |
EP1747638B1 (en) * | 2004-04-30 | 2016-08-31 | BlackBerry Limited | Systems and methods to securely generate shared keys |
CN106658492A (zh) * | 2015-07-23 | 2017-05-10 | 中兴通讯股份有限公司 | 密钥更新方法及装置 |
-
2018
- 2018-12-28 CN CN201811622509.4A patent/CN109495260B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1747638B1 (en) * | 2004-04-30 | 2016-08-31 | BlackBerry Limited | Systems and methods to securely generate shared keys |
CN101278516A (zh) * | 2005-09-30 | 2008-10-01 | 索尼爱立信移动通讯股份有限公司 | 使用长密钥板的共享密钥加密 |
CN102468962A (zh) * | 2010-11-12 | 2012-05-23 | 同亨科技股份有限公司 | 利用个人密码装置的个人身份验证方法及个人密码装置 |
CN102761557A (zh) * | 2012-07-31 | 2012-10-31 | 飞天诚信科技股份有限公司 | 一种终端设备认证方法及装置 |
CN105007157A (zh) * | 2014-04-23 | 2015-10-28 | 密码研究公司 | 基于设备生成的密钥来生成和管理多个基密钥 |
CN106658492A (zh) * | 2015-07-23 | 2017-05-10 | 中兴通讯股份有限公司 | 密钥更新方法及装置 |
CN105827655A (zh) * | 2016-05-27 | 2016-08-03 | 飞天诚信科技股份有限公司 | 一种智能密钥设备及其工作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109495260A (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9679005B2 (en) | Client computer for querying a database stored on a server via a network | |
CN106878007B (zh) | 一种授权方法及系统 | |
US9286466B2 (en) | Registration and authentication of computing devices using a digital skeleton key | |
CN106790156B (zh) | 一种智能设备绑定方法及装置 | |
US11108545B2 (en) | Creating a blockchain account and verifying blockchain transactions | |
CN110544090A (zh) | 一种数字货币硬钱包应用实现方法、sim卡及系统 | |
CN114124476B (zh) | 一种Web应用的敏感信息泄露漏洞检测方法、系统及装置 | |
CN114756887A (zh) | 一种敏感信息块在文件中的加密存储方法及装置 | |
CN109302286B (zh) | 一种Fido设备密钥索引的生成方法 | |
CN112287312B (zh) | 一种登录Windows操作系统的方法及系统 | |
CN107403107B (zh) | 一种基于多点协作机制的数据安全管理方法及系统 | |
CN109495260B (zh) | 一种终端设备及其管理密钥的方法 | |
CN109257381A (zh) | 一种密钥管理方法、系统及电子设备 | |
CN108615155B (zh) | 一种鉴别交易信息完整性的方法 | |
CN111508108B (zh) | 一种智能锁数据通信的加密系统及解密系统 | |
CN108197456B (zh) | 一种设备数据的缓存方法及装置 | |
US8612758B2 (en) | System and method for inherently secure identification over insecure data communications networks | |
CN112487065A (zh) | 一种数据检索方法和装置 | |
CN113783839B (zh) | 区块链数据更新方法、装置、计算机设备及存储介质 | |
CN117254982B (zh) | 基于区块链的数字身份验证方法及系统 | |
CN118741436A (zh) | 短信签名标题实名自动化方法及系统 | |
CN115834203A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN118278957A (zh) | 基于nft的多账户支付管理方法、装置、设备及存储介质 | |
CN118690379A (zh) | 数据处理方法、装置、系统、计算机设备和存储介质 | |
CN118474089A (zh) | 一种web端扫码上传附件的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |