CN111162907B - 一种协商密钥的生成方法及智能卡设备 - Google Patents
一种协商密钥的生成方法及智能卡设备 Download PDFInfo
- Publication number
- CN111162907B CN111162907B CN201911383080.2A CN201911383080A CN111162907B CN 111162907 B CN111162907 B CN 111162907B CN 201911383080 A CN201911383080 A CN 201911383080A CN 111162907 B CN111162907 B CN 111162907B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- result
- modular
- conversion
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Cash Registers Or Receiving Machines (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种协商密钥的生成方法及智能卡设备,方法包括如下步骤:处理器对主机公钥进行字节序转换处理后分别存储到第一和第二存储器中;对智能卡私钥进行字节序转换和置位处理后存储到第八存储器中;更新第三、第二、第五和第四存储器中的数据;判断第七存储器中的数据是否为第二预设值,是则更新第三、第二、第五和第四存储器中的数据,对第三和第五寄存器中的数据进行计算在进行字节序转换处理后作为协商密钥并保存,否则更新第七存储器中的数据,再次更新第三、第二、第五和第四存储器中的数据。本发明的技术方案在计算过程中对关键步骤采用条件交换技术,从而使得攻击者无法通过旁路攻击获得私钥,提升智能卡生成协商密钥的安全性。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种协商密钥的生成方法及智能卡设备。
背景技术
密钥协商是两个或多个实体协商,共同建立会话密钥,任何一个参与者均对结果产生影响,不需要任何可信的第三方。目前智能卡中常用的密钥协商算法容易收到旁路攻击,即攻击者可以对智能卡密钥协商时的产生的功耗进行分析,从而破解私钥。故亟需提供一种安全的生成协商密钥的方法。
发明内容
本发明的目的是为了克服现有技术的不足,提供了一种协商密钥的生成方法及智能卡设备。
本发明提供了一种协商密钥的生成方法,应用于智能卡设备上,所述智能卡设备包括处理器、存储器及发送接口、接收端口,包括如下步骤:
步骤S1:所述处理器通过所述发送端口将智能卡公钥发送给主机,通过所述接收端口接收主机公钥,对所述主机公钥进行字节序转换处理并将转换处理结果分别存储到第一存储器和第二存储器中;对智能卡私钥进行字节序转换处理得到第二转换结果,对所述第二转换结果进行置位处理并将置位处理结果存储到第八存储器中;在第七存储器中写入第一预设值;在第三存储器和第四存储器中分别写入第一固定值,在第五存储器和第六存储器中分别写入第二固定值;
步骤S2:所述处理器根据所述第八存储器中的数据和所述第七存储器中的数据更新所述第六存储器中的数据,用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据作为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据,用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据作为参数调用第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据,对所述第三存储器中的数据、所述第二存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据进行计算并用计算结果更新所述第三存储器中的数据、所述第二存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据;
步骤S3:所述处理器判断所述第七存储器中的数据是否为第二预设值,是则执行步骤S4,否则更新所述第七存储器中的数据,返回步骤S2;
步骤S4:所述处理器用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据作为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据,用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据作为参数调用第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据,对所述第三存储器中的数据和所述第五寄存器中的数据进行计算,对计算结果进行字节序转换处理并将转换处理结果作为协商密钥并保存。
进一步地,所述对所述主机公钥进行进行字节序转换处理,包括:检查主机公钥的长度,如主机公钥的长度为奇数则以将所述主机公钥的中间字节数据为轴进行水平翻转处理,如主机公钥的长度为偶数,则将所述主机公钥的前半部分与后半部分进行水平翻转处理。
进一步地,所述对智能卡私钥进行字节序转换处理得到第二转换结果,对所述第二转换结果进行置位处理并将置位处理结果存储到第八存储器中,包括:
步骤b1:所述处理器读取智能卡私钥并检查智能卡私钥的长度,如智能卡私钥的长度为奇数则以智能卡私钥的中间字节数据为轴进行水平翻转处理得到第二转换结果,如智能卡私钥的长度为偶数,则将智能卡私钥的前半部分与后半部分进行水平翻转处理得到第二转换结果;
步骤b2:所述处理器对所述第二转换结果进行置位处理并将置位处理结果存储到第八存储器中。
进一步地,所述处理器对所述第二转换结果进行置位处理包括:所述处理器对所述第二转换结果中最高字节最高位置0、最高字节次高位置1,最低字节的最低三位均置0。
进一步地,所述在第七存储器中写入第一预设值,具体为:在第七存储器中写入第一预设值为智能卡私钥的位长度;
所述步骤S3包括:所述处理器判断所述第七存储器中的数据是否为0,是则执行步骤S4,否则将所述第七存储器中的数据自减1,返回步骤S2。
进一步地,所述步骤S4中对计算结果进行字节序转换处理,包括:检查所述计算结果的长度,如计算结果的长度为奇数则以中间字节数据为轴进行水平翻转处理,如计算结果的长度为偶数,则前半部分与后半部分进行水平翻转处理。
进一步地,所述步骤S2包括:
步骤a1:所述处理器根据所述第七存储器中的数据对所述第八存储器中的数据进行向左移位,对移位结果与所述第一固定值进行与运算得到第一数据并保存到第九存储器中;
步骤a2:所述处理器对所述第六存储器中的数据与所述第九存储器中的数据进行异或运算并用异或运算结果更新所述第六存储器中的数据;
步骤a3:所述处理器用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据;用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据为参数调用所述第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据;
步骤a4:所述处理器用所述第九存储器中的数据更新所述第六存储器中的数据;
步骤a5:所述处理器将所述第三存储器中的数据与所述第五存储器中的数据的进行模加运算并将模加运算结果保存到第十存储器中;以所述第十存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十一存储器中,对所述第三存储器中的数据和所述第五存储器中的数据的进行模减运算并将模减运算结果保存到第十二存储器中;以所述第十二存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十三存储器中,将所述第十一存储器中的数据与所述第十三存储器中的数据进行模减运算并将模减运算结果保存到第十四存储器中;
步骤a6:所述处理器对所述第二存储器中的数据和所述第四存储器中的数据的进行模加运算并将模加运算结果保存到第十五存储器中;对所述第二存储器中的数据和所述第四存储器中的数据的进行模减运算并将模减运算结果保存到第十六存储器中;对所述第十六存储器中的数据与所述第十存储器中的数据进行模乘运算并将模乘运算结果保存到第十七存储器中;对所述第十五存储器中的数据与是第十二存储器中的数据进行模乘运算并将模乘运算结果保存到第十八存储器中;
步骤a7:所述处理器用所述第十七存储器中的数据与所述第十八存储器中的数据之和为底数、2为指数进行模幂运算并用模幂运算结果更新所述第二存储器中的数据;
步骤a8:所述处理器用所述第十七存储器中的数据与所述第十八存储器中的数据之差为底数、2为指数进行模幂运算,再用模幂运算结果与所述第一存储器中的数据进行模乘的结果更新所述第四存储器中的数据;用所述第十一存储器中的数据与所述第十三存储器中的数据的模乘结果更新所述第三存储器中的数据;将预置常数与所述第十四存储器中的数据进行模乘运算得到第十数据,将所述第十一存储器中的数据与所述第十数据进行模加运算得到第十一数据,用所述第十四存储器中的数据与所述第十一数据进行模乘运算的结果更新第五存储器中的数据。
进一步地,所述步骤S4包括:
步骤c1:所述处理器用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据为参数调用所述第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据;用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据为参数调用所述第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据;
步骤c2:所述处理器读取第三固定值,以所述第五存储器中的数据为底数、所述第三固定值模减2之差为指数进行模幂运算,将模幂运算运算结果与所述第三存储器中的数据进行模乘运算并用模乘结果更新第三存储器中的数据;
步骤c3:所述处理器对所述第三存储器中的数据进行字节序转换处理,并将转换处理结果作为协商密钥并保存。
进一步地,所述第一函数包括第一参数、第二参数、第三参数,所述第一函数的实现过程为:将所述第二参数和所述第三参数进行异或运算并将异或运算结果存储到第四缓存区中,将所述第一参数为参数调用第二函数的输出结果与所述第四缓存区中的数据进行与运算并将与运算结果存储到第五缓存区中;将所述第五缓存区中的数据与所述第二参数进行异或运算并将异或运算结果存储到第六缓存区中,将所述第五缓存区中的数据与所述第三参数进行异或运算并将异或运算结果存储到第七缓存区中,将第六缓存区中的数据和第七缓存区中的数据作为第一函数的输出结果。
进一步地,所述第二函数的实现过程:用0模减参数得到的差值作为第二函数的输出结果。
本发明又提供一种智能卡设备,包括处理器、存储器及发送接口、接收端口;所述存储器包括第一存储器、第二存储器、第三存储器、第四存储器、第五存储器、第六存储器、第七存储器、第八存储器和第九存储器;所述处理器包括:发送接收模块、第一转换存储模块、转换置位存储模块、写入模块、第一更新模块、调用更新模块、第一计算更新模块、判断模块、第二计算更新模块、第一计算模块、转换保存模块;
所述发送接收模块,用于通过所述发送端口将智能卡公钥发送给主机,通过所述接收端口接收主机公钥;
所述第一转换存储模块,用于对将所述主机公钥进行字节序转换处理并将转换处理结果分别存储到第一存储器和第二存储器中;
所述转换置位存储模块,用于对智能卡私钥进行字节序转换处理得到第二转换结果,对所述第二转换结果进行置位处理并将置位处理结果存储到第八存储器中;
所述写入模块,用于在第七存储器中写入第一预设值;在第三存储器和第四存储器中分别写入第一固定值,在第五存储器和第六存储器中分别写入第二固定值;
所述第一更新模块,用于根据所述第八存储器中的数据和所述第七存储器中的数据更新所述第六存储器中的数据;
所述调用更新模块,用于用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据作为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据,用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据作为参数调用第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据;
所述第一计算更新模块,用于对所述第三存储器中的数据、所述第二存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据进行计算并用计算结果更新所述第三存储器中的数据、所述第二存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据;
所述判断模块,用于判断所述第七存储器中的数据是否为第二预设值,是则触发所述第二计算更新模块,否则更新所述第七存储器中的数据,触发所述第一更新模块;
所述第二计算更新模块,用于用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据作为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据,用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据作为参数调用第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据;
所述第一计算模块,用于对所述第三存储器中的数据和所述第五寄存器中的数据进行计算;
所述转换保存模块,用于对所述第一计算模块的计算结果进行字节序转换处理并将转换处理结果作为协商密钥并保存。
进一步地,所述第一转换存储模块具体用于检查主机公钥的长度,如主机公钥的长度为奇数则以将所述主机公钥的中间字节数据为轴进行水平翻转处理并将处理结果分别存储到第一存储器和第二存储器中,如主机公钥的长度为偶数,则将所述主机公钥的前半部分与后半部分进行水平翻转处理并将处理结果分别存储到第一存储器和第二存储器中。
进一步地,所述转换置位存储模块包括:
读取检查单元,用于读取智能卡私钥并检查智能卡私钥的长度,如智能卡私钥的长度为奇数则以智能卡私钥的中间字节数据为轴进行水平翻转处理得到第二转换结果,如智能卡私钥的长度为偶数,则将智能卡私钥的前半部分与后半部分进行水平翻转处理得到第二转换结果;
置位存储单元,用于对所述读取检查单元的第二转换结果进行置位处理并将置位处理结果存储到第八存储器中。
进一步地,所述置位存储单元具体用于对所述第二转换结果中最高字节最高位置0、最高字节次高位置1,最低字节的最低三位均置0,将置位后的第二转换结果存储到第八存储器中。
进一步地,所述写入模块,用于在第七存储器中写入第一预设值,具体为:所述写入模块用于在第七存储器中写入智能卡私钥的位长度;
所述判断模块具体用于判断所述第七存储器中的数据是否为0,是则触发所述第二计算更新模块,否则将所述第七存储器中的数据自减1,触发所述第一更新模块。
进一步地,所述转换保存模块具体用于检查所述计算结果的长度,如计算结果的长度为奇数则以中间字节数据为轴进行水平翻转处理并将处理结果作为协商密钥并保存,如计算结果的长度为偶数,则前半部分与后半部分进行水平翻转处理并将处理结果作为协商密钥并保存。
进一步地,所述第一更新模块具体用于根据所述第七存储器中的数据对所述第八存储器中的数据进行向左移位,对移位结果与所述第一固定值进行与运算得到第一数据并保存到第九存储器中;对所述第六存储器中的数据与所述第九存储器中的数据进行异或运算并用异或运算结果更新所述第六存储器中的数据;
所述第一计算更新模块,包括:
第一更新单元,用于用所述第九存储器中的数据更新所述第六存储器中的数据;
第一计算单元,用于将所述第三存储器中的数据与所述第五存储器中的数据的进行模加运算并将模加运算结果保存到第十存储器中;以所述第十存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十一存储器中,对所述第三存储器中的数据和所述第五存储器中的数据的进行模减运算并将模减运算结果保存到第十二存储器中;以所述第十二存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十三存储器中,将所述第十一存储器中的数据与所述第十三存储器中的数据进行模减运算并将模减运算结果保存到第十四存储器中;
第二计算单元,用于对所述第二存储器中的数据和所述第四存储器中的数据的进行模加运算并将模加运算结果保存到第十五存储器中;对所述第二存储器中的数据和所述第四存储器中的数据的进行模减运算并将模减运算结果保存到第十六存储器中;对所述第十六存储器中的数据与所述第十存储器中的数据进行模乘运算并将模乘运算结果保存到第十七存储器中;对所述第十五存储器中的数据与是第十二存储器中的数据进行模乘运算并将模乘运算结果保存到第十八存储器中;
第三计算单元,用于用所述第十七存储器中的数据与所述第十八存储器中的数据之和为底数、2为指数进行模幂运算并用模幂运算结果更新所述第二存储器中的数据;
第四计算单元,用于用所述第十七存储器中的数据与所述第十八存储器中的数据之差为底数、2为指数进行模幂运算,再用模幂运算结果与所述第一存储器中的数据进行模乘的结果更新所述第四存储器中的数据;用所述第十一存储器中的数据与所述第十三存储器中的数据的模乘结果更新所述第三存储器中的数据;将预置常数与所述第十四存储器中的数据进行模乘运算得到第十数据,将所述第十一存储器中的数据与所述第十数据进行模加运算得到第十一数据,用所述第十四存储器中的数据与所述第十一数据进行模乘运算的结果更新第五存储器中的数据。
进一步地,所述第二计算更新模块包括:
所述第一计算模块具体用于读取第三固定值,以所述第五存储器中的数据为底数、所述第三固定值模减2之差为指数进行模幂运算,将模幂运算运算结果与所述第三存储器中的数据进行模乘运算并用模乘结果更新第三存储器中的数据;
所述转换保存模块具体用于对所述第三存储器中的数据进行字节序转换处理,并将转换处理结果作为协商密钥并保存。
进一步地,所述第一函数包括第一参数、第二参数、第三参数,所述第一函数的实现过程为:将所述第二参数和所述第三参数进行异或运算并将异或运算结果存储到第四缓存区中,将所述第一参数为参数调用第二函数的输出结果与所述第四缓存区中的数据进行与运算并将与运算结果存储到第五缓存区中;将所述第五缓存区中的数据与所述第二参数进行异或运算并将异或运算结果存储到第六缓存区中,将所述第五缓存区中的数据与所述第三参数进行异或运算并将异或运算结果存储到第七缓存区中,将第六缓存区中的数据和第七缓存区中的数据作为第一函数的输出结果。
进一步地,所述第二函数的实现过程:用0模减参数得到的差值作为第二函数的输出结果。
本发明与现有技术相比,具有以下优点:
本申请中的技术方案中,在计算过程中对关键步骤采用条件交换技术,从而使得攻击者无法通过旁路攻击获得私钥,提升智能卡生成协商密钥的安全性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请提供的一种协商密钥的生成方法的流程示意图;
图2为本申请提供的协商密钥的生成方法中步骤S2的具体处理流程示意图;
图3为本申请提供的一种智能卡设备的方框示意图。
具体实施方式
本申请提出一种密钥协商方法、电子设备及计算机可读存储介质,下面结合附图,对本申请具体实施方式进行详细说明。
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
如图1所示,为本申请提供的一种协商密钥的生成方法的流程示意图,该方法应用于智能卡设备上,该智能卡设备包括处理器、存储器、存储区及接收端口、发送端口,该方法包括如下步骤:
步骤S1:智能卡处理器通过发送端口将智能卡公钥发送给主机;通过接收端口接收主机公钥,对主机公钥进行进行字节序转换处理并将转换处理结果分别存储到第一存储器和第二存储器中;对智能卡私钥进行字节序转换处理得到第二转换结果,对第二转换结果进行置位处理并将置位处理结果存储到第八存储器中;在第七存储器中写入第一预设值;在第三存储器和第四存储器中分别写入第一固定值,在第五存储器和第六存储器中分别写入第二固定值;
具体的,在本实施例中,步骤S1中对主机公钥进行进行字节序转换处理包括:检查主机公钥的长度,如主机公钥的长度为奇数则以将主机公钥的中间字节数据为轴进行水平翻转处理,如主机公钥的长度为偶数,则将主机公钥的前半部分与后半部分进行水平翻转处理,即将主机公钥的第一字节与倒数第一个字节交换,第二字节与倒数第二个字节交换,直到结束;
在本实施例中,对智能卡私钥进行字节序转换处理得到第二转换结果,对第二转换结果进行置位处理并将置位处理结果存储到第八存储器中,包括:
步骤b1:处理器读取智能卡私钥并检查智能卡私钥的长度,如智能卡私钥的长度为奇数则以智能卡私钥的中间字节数据为轴进行水平翻转处理得到第二转换结果,如智能卡私钥的长度为偶数,则将智能卡私钥的前半部分与后半部分进行水平翻转处理得到第二转换结果,即将智能卡私钥的第一字节与倒数第一个字节交换,第二字节与倒数第二个字节交换,直到结束;
步骤b2:处理器对第二转换结果进行置位处理并将置位处理结果存储到第八存储器中。
具体的,步骤b2中处理器对第二转换结果进行置位处理,包括:处理器对第二转换结果中最高字节最高位置0、最高字节次高位置1,最低字节的最低三位均置0;
步骤S2:处理器根据第八存储器中的数据和第七存储器中的数据更新第六存储器中的数据,用第六存储器中的数据、第三存储器中的数据和第二存储器中的数据作为参数调用第一函数的输出结果更新第三存储器中的数据和第二存储器中的数据,用第六存储器中的数据、第五存储器中的数据和第四存储器中的数据作为参数调用第一函数的输出结果更新第五存储器中的数据和第四存储器中的数据,对第三存储器中的数据、第二存储器中的数据、第五存储器中的数据和第四存储器中的数据进行计算并用计算结果更新第三存储器中的数据、第二存储器中的数据、第五存储器中的数据和第四存储器中的数据;
具体的,在本实施例中,步骤S2包括:
步骤a1:处理器根据第七存储器中的数据对第八存储器中的数据进行向左移位,对移位结果与第一固定值进行与运算得到第一数据并保存到第九存储器中;
步骤a2:处理器对第六存储器中的数据与第九存储器中的数据进行异或运算并用异或运算结果更新第六存储器中的数据;
步骤a3:处理器用第六存储器中的数据、第三存储器中的数据和第二存储器中的数据为参数调用第一函数的输出结果更新第三存储器中的数据和第二存储器中的数据;用第六存储器中的数据、第五存储器中的数据和第四存储器中的数据为参数调用第一函数的输出结果更新第五存储器中的数据和第四存储器中的数据;
具体的,第一函数包括第一参数、第二参数、第三参数,第一函数的实现过程为:将第二参数和第三参数进行异或运算并将异或运算结果存储到第四缓存区中,将第一参数为参数调用第二函数的输出结果与第四缓存区中的数据进行与运算并将与运算结果存储到第五缓存区中;将第五缓存区中的数据与第二参数进行异或运算并将异或运算结果存储到第六缓存区中,将第五缓存区中的数据与第三参数进行异或运算并将异或运算结果存储到第七缓存区中,将第六缓存区中的数据和第七缓存区中的数据作为第一函数的输出结果。
第二函数的实现过程:用0模减参数得到的差值作为第二函数的输出结果。
步骤a4:处理器用第九存储器中的数据更新第六存储器中的数据;
步骤a5:处理器将第三存储器中的数据与第五存储器中的数据的进行模加运算并将模加运算结果保存到第十存储器中;以第十存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十一存储器中,对第三存储器中的数据和第五存储器中的数据的进行模减运算并将模减运算结果保存到第十二存储器中;以第十二存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十三存储器中,将第十一存储器中的数据与第十三存储器中的数据进行模减运算并将模减运算结果保存到第十四存储器中;
步骤a6:处理器对第二存储器中的数据和第四存储器中的数据的进行模加运算并将模加运算结果保存到第十五存储器中;对第二存储器中的数据和第四存储器中的数据的进行模减运算并将模减运算结果保存到第十六存储器中;对第十六存储器中的数据与第十存储器中的数据进行模乘运算并将模乘运算结果保存到第十七存储器中;对第十五存储器中的数据与是第十二存储器中的数据进行模乘运算并将模乘运算结果保存到第十八存储器中;
步骤a7:处理器用第十七存储器中的数据与第十八存储器中的数据之和为底数、2为指数进行模幂运算并用模幂运算结果更新第二存储器中的数据;
步骤a8:处理器用第十七存储器中的数据与第十八存储器中的数据之差为底数、2为指数进行模幂运算,再用模幂运算结果与第一存储器中的数据进行模乘的结果更新第四存储器中的数据;用第十一存储器中的数据与第十三存储器中的数据的模乘结果更新第三存储器中的数据;将预置常数与第十四存储器中的数据进行模乘运算得到第十数据,将第十一存储器中的数据与第十数据进行模加运算得到第十一数据,用第十四存储器中的数据与第十一数据进行模乘运算的结果更新第五存储器中的数据。
步骤S3:处理器判断第七存储器中的数据是否为第二预设值,是则执行步骤S4,否则更新第七存储器中的数据,返回步骤S2;
在本实施例中,在第七存储器中写入第一预设值,具体为:在第七存储器中写入第一预设值为智能卡私钥的位长度;相应地,步骤S3包括:处理器判断第七存储器中的数据是否为0,是则执行步骤S4,否则将第七存储器中的数据自减1,返回步骤S2;
步骤S4:处理器用第六存储器中的数据、第三存储器中的数据和第二存储器中的数据作为参数调用第一函数的输出结果更新第三存储器中的数据和第二存储器中的数据,用第六存储器中的数据、第五存储器中的数据和第四存储器中的数据作为参数调用第一函数的输出结果更新第五存储器中的数据和第四存储器中的数据,对第三存储器中的数据和第五寄存器中的数据进行计算,对计算结果进行字节序转换处理并将转换处理结果作为协商密钥并保存;
在本实施例中,步骤S4包括:
步骤c1:处理器用第六存储器中的数据、第三存储器中的数据和第二存储器中的数据为参数调用第一函数的输出结果更新第三存储器中的数据和第二存储器中的数据;用第六存储器中的数据、第五存储器中的数据和第四存储器中的数据为参数调用第一函数的输出结果更新第五存储器中的数据和第四存储器中的数据;
步骤c2:处理器读取第三固定值,以第五存储器中的数据为底数、第三固定值模减2之差为指数进行模幂运算,将模幂运算结果与第三存储器中的数据进行模乘运算并用模乘运算结果更新第三存储器中的数据;
在本实施例中,第三固定值是以2位底数255为指数进行模幂运算的结果与19的差值;
步骤c3:处理器对第三存储器中的数据进行字节序转换处理,并将转换处理结果作为协商密钥并保存。
具体的,对计算结果进行字节序转换处理,包括:检查计算结果的长度,如计算结果的长度为奇数则以中间字节数据为轴进行水平翻转处理,如计算结果的长度为偶数,则前半部分与后半部分进行水平翻转处理,即将计算结果的第一字节与倒数第一个字节交换,第二字节与倒数第二个字节交换,直到结束;
本申请中的技术方案中,在计算过程中对关键步骤采用条件交换技术,从而使得攻击者无法通过旁路攻击获得私钥,提升智能卡生成协商密钥的安全性。
基于上述本申请所提供的技术方案,下面对该技术方案进行详尽阐释,如图2所示,为本申请提供的生成协商密钥的方法的一个可能地实现方式的具体处理流程图,该方法应用于智能卡设备上,下述实施例中以终端设备(智能卡设备)为例,该终端设备包括处理器、内存、存储器、接收端口及发送端口。
对于本申请,在一个可能地实现方式中,前述协商密钥的生成方法具体包括下述步骤101-步骤116的处理。
步骤101:处理器通过发送端口将智能卡公钥发送给主机;
步骤102:处理器通过接收端口接收主机公钥,对主机公钥进行进行字节序转换处理并将转换处理结果分别存储到第一存储器和第二存储器中;
具体的,在本实施例步骤102中对主机公钥进行进行字节序转换处理包括:检查主机公钥的长度,如主机公钥的长度为奇数则以将主机公钥的中间字节数据为轴进行水平翻转处理,如主机公钥的长度为偶数,则将主机公钥的前半部分与后半部分进行水平翻转处理,即将主机公钥的第一字节与倒数第一个字节交换,第二字节与倒数第二个字节交换,直到结束;
例如,本实施例中接收到的主机公钥为e6db6867583030db3594c1a424b15
f7c726624ec26b3353b10a903a6d0ab1c4c,字节序转换处理后的主机公钥为4c1cabd0a603a9103b35b326ec2466727c5fb124a4c19435db3030586768dbe6;
步骤103:处理器对智能卡私钥进行字节序转换处理得到第二转换结果,对第二转换结果进行置位处理并将置位处理结果存储到第八存储器中;
在本实施例中,步骤103包括:
步骤b1:处理器读取智能卡私钥并检查智能卡私钥的长度,如智能卡私钥的长度为奇数则以智能卡私钥的中间字节数据为轴进行水平翻转处理得到第二转换结果,如智能卡私钥的长度为偶数,则将智能卡私钥的前半部分与后半部分进行水平翻转处理得到第二转换结果,即将智能卡私钥的第一字节与倒数第一个字节交换,第二字节与倒数第二个字节交换,直到结束;
步骤b2:处理器对第二转换结果进行置位处理并将置位处理结果存储到第八存储器中。
具体的,步骤b2中处理器对第二转换结果进行置位处理,包括:处理器对第二转换结果中最高字节最高位置0、最高字节次高位置1,最低字节的最低三位均置0;
例如,在本实施例中,智能卡私钥为a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4,字节序转换并置位处理后的智能卡私钥为449a44ba44226a50185afcc10a4c1462dd5e46824b15163b9d7c52f06be346a0;
步骤104:在第七存储器中写入智能卡私钥的位长度;在第三存储器和第四存储器中分别写入第一固定值,在第五存储器和第六存储器中分别写入第二固定值;
具体的,本实施例中的第一固定值为1,第二固定值为0;
例如,第一存储器和第二存储器中的数据均为4c1cabd0a603a9103b35b326ec2466727c5fb124a4c19435db3030586768dbe6,第三存储器和第四存储器中的数据为均1,第五存储器和第六存储器中的数据均为0,第七存储器中的数据为255,第八存储器中的数据为449a44ba44226a50185afcc10a4c1462dd5e46824b15163b9d7c52f06be346a0;
步骤105:处理器根据第七存储器中的数据对第八存储器中的数据进行向左移位,对移位结果与第一固定值进行与运算得到第一数据并保存到第九存储器中;
例如,该步骤中当第七存储器中的数据为0时,第九存储器中的数据为0;
步骤106:处理器对第六存储器中的数据与第九存储器中的数据进行异或运算并用异或运算结果更新第六存储器中的数据;
例如,该步骤中当第七存储器中的数据为0时,第六存储器中的数据为0;
步骤107:处理器用第六存储器中的数据、第三存储器中的数据和第二存储器中的数据为参数调用第一函数的输出结果更新第三存储器中的数据和第二存储器中的数据;用第六存储器中的数据、第五存储器中的数据和第四存储器中的数据为参数调用第一函数的输出结果更新第五存储器中的数据和第四存储器中的数据;
在本实施例中,第一函数包括第一参数、第二参数、第三参数,其实现过程为:将第二参数和第三参数进行异或运算并将异或运算结果存储到第四缓存区中,将第一参数为参数调用第二函数的输出结果与第四缓存区中的数据进行与运算并将与运算结果存储到第五缓存区中;将第五缓存区中的数据与第二参数进行异或运算并将异或运算结果存储到第六缓存区中,将第五缓存区中的数据与第三参数进行异或运算并将异或运算结果存储到第七缓存区中,将第六缓存区中的数据和第七缓存区中的数据作为第一函数的输出结果;
其中,第二函数(swap)的实现过程:用0模减参数得到的差值作为第二函数的输出结果;
例如,该步骤中当第七存储器中的数据为起始值智能卡私钥的位长度时,第六存储器中的数据为0,第三存储器中的数据为1,第二存储器中的数据为4c1cabd0a603a9103b35b326ec2466727c5fb124a4c19435db3030586768dbe6,更新后的第三存储器中的数据为1,更新后的第第二存储器中的数据为4c1cabd0a603a9103b35b326ec2466727c5fb124a4c19435db3030586768dbe6;第五存储器中的数据为0,第四存储器中的数据为1,更新后的第五存储器中的数据为0,更新后的第四存储器中的数据为1;
例如,该步骤中当第七存储器中的数据为0时,第六存储器中的数据为0,第三存储器中的数据为2d071db43d9bc4b1b5e278e0a6a9724e3a5cec295bf9c4130d9b0772c34fea11,第二存储器中的数据为4e186021d3f0331fbea83d80dcbaef181cf62f192c32fcf231395e93fa1b900d,更新后的第三存储器中的数据为2d071db43d9bc4b1b5e278e0a6a9724e3a5cec295bf9c4130d9b0772c34fea11,更新后的第第二存储器中的数据为4e186021d3f0331fbea83d80dcbaef181cf62f192c32fcf231395e93fa1b900d;第五存储器中的数据为7b711b7641893cb16a44bfaf86d23e2f78a3517a6fd60c69cd884d630d49c53d,第四存储器中的数据为7497c00b0eab0549bb3cc6620467e7a8aab08bd6c8bc9fc9f10c9497e97f9d35,更新后的第五存储器中的数据为7b711b7641893cb16a44bfaf86d23e2f78a3517a6fd60c69cd884d630d49c53d,更新后的第四存储器中的数据为7497c00b0eab0549bb3cc6620467e7a8aab08bd6c8bc9fc9f10c9497e97f9d35;
步骤108:处理器用第九存储器中的数据更新第六存储器中的数据;
例如,该步骤中第六存储器中的数据为0;
步骤109:处理器对第三存储器中的数据和第五存储器中的数据的进行模加运算并将模加运算结果保存到第十存储器中;以第十存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十一存储器中,对第三存储器中的数据和第五存储器中的数据的进行模减运算并将模减运算结果保存到第十二存储器中;以第十二存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十三存储器中,对第十一存储器中的数据与第十三存储器中的数据进行模减运算并将模减运算结果保存到第十四存储器中;
例如,该步骤中当第七存储器中的数据为起始值智能卡私钥的位长度时,第十存储器中的数据为1,第十一存储器中的数据为1,第十二存储器中的数据为1,第十三存储器中的数据为1,第十四存储器中的数据为0;
例如,该步骤中当第七存储器中的数据为0时,第十存储器中的数据为2878392a7f250163202738902d7bb07db3003da3cbcfd07cdb2354d5d099af61,第十一存储器中的数据为625f4745fbccdc65217e9e13c2da477e1b9500ce3b6be09cba876461bc90a583,第十二存储器中的数据为3196023dfc1288004b9db9311fd7341ec1b99aaeec23b7a94012ba0fb60624c1,第十三存储器中的数据为3d1c9a0a3b319826787b8c81ae57a81026835b6282b1db5fb458ec22e8310a89,第十四存储器中的数据为2542ad3bc09b443ea903119214829f6df511a56bb8ba053d062e783ed45f9afa;
步骤110:处理器对第二存储器中的数据和第四存储器中的数据的进行模加运算并将模加运算结果保存到第十五存储器中;对第二存储器中的数据和第四存储器中的数据的进行模减运算并将模减运算结果保存到第十六存储器中;对第十六存储器中的数据与第十存储器中的数据进行模乘运算并将模乘运算结果保存到第十七存储器中;对第十五存储器中的数据与第十二存储器中的数据进行模乘运算并将模乘运算结果保存到第十八存储器中;
例如,该步骤中当第七存储器中的数据为起始值智能卡私钥的位长度时,第十五存储器中的数据为4c1cabd0a603a9103b35b326ec2466727c5fb124a4c19435db3030586768dbe7,第十六存储器中的数据为4c1cabd0a603a9103b35b326ec2466727c5fb124a4c19435db3030586768dbe5,第十七存储器中的数据为4c1cabd0a603a9103b35b326ec2466727c5fb124a4c19435db3030586768dbe5,第十八存储器中的数据为4c1cabd0a603a9103b35b326ec2466727c5fb124a4c19435db3030586768dbe7;
例如,该步骤中当第七存储器中的数据为0时,第十五存储器中的数据为42b0202ce29b386979e503e2e122d6c0c7a6baeff4ef9cbc2245f32be39b2d55,第十六存储器中的数据为5980a016c5452dd6036b771ed853076f7245a34263765d28402cc9fc109bf2c5,第十七存储器中的数据为1bdd9fb5f74d3b414663785e534d6b1476ce7782cec770f94ad6a8281b413a8e,第十八存储器中的数据为3b36e8c10b5c67b482c200bccfde3a2c991e423b8a4ac2724fed0c5d61c00aba;
步骤111:处理器用第十七存储器中的数据与第十八存储器中的数据之和为底数、2为指数进行模幂运算,并用模幂运算结果更新第二存储器中的数据;
例如,该步骤中当第七存储器中的数据为起始值智能卡私钥的位长度时,第二存储器中的数据为579f54db0d4cb7fdc732ed7b2b10b100f64377d60ffe67f5d21a9e2278b1cd1;
例如,该步骤中当第七存储器中的数据为0时,第二存储器中的数据为186bd5fe7bd7f077a2a2cd13a7478eeef968542286df0a72a98f86c1b1c7a29f;
步骤112:处理器用第十七存储器中的数据与第十八存储器中的数据之差为底数、2为指数进行模幂运算,再用模幂运算结果与第一存储器中的数据进行模乘的结果更新第四存储器中的数据;用第十一存储器中的数据与第十三存储器中的数据的模乘结果更新第三存储器中的数据;将预置常数与第十四存储器中的数据进行模乘运算得到第十数据,将第十一存储器中的数据与第十数据进行模加运算得到第十一数据,用第十四存储器中的数据与第十一数据进行模乘运算的结果更新第五存储器中的数据;
具体的,本实施例中的预置常数为121665;
例如,该步骤中当第七存储器中的数据为起始值智能卡私钥的位长度时,第四存储器中的数据为3072af42980ea440ecd6cc9bb09199c9f17ec492930650d76cc0c1619da36fbe,第三存储器中的数据为1,第五存储器中的数据为0;
例如,该步骤中当第七存储器中的数据为0时,第四存储器中的数据为303ec4dde12ae78dd0bc7726fb681992d25a473ab8c58c90d75114da24b7db96,第三存储器中的数据为7082364c8fb3b01e09a6a3277744156cb9a5ac20a339c6926ce3cafa6c66ab8f,第五存储器中的数据为12c9da3d5756588e1b8b02d050f13066669bf41dc81ed85344bf11f0131cda8d;
步骤113:处理器判断第七存储器中的数据是否为0,是则执行步骤114,否则将第七存储器中的数据自减1,返回步骤105;
在本实施例中,第七存储器中的数据从智能卡私钥的位长度递减到0,即步骤105-步骤112循环执行的次数为智能卡私钥的位长度,直到第七存储器中的数据递减为0时执行步骤114;
步骤114:处理器用第六存储器中的数据、第三存储器中的数据和第二存储器中的数据为参数调用第一函数的输出结果更新第三存储器中的数据和第二存储器中的数据;用第六存储器中的数据、第五存储器中的数据和第四存储器中的数据为参数调用第一函数的输出结果更新第五存储器中的数据和第四存储器中的数据;
例如,本实施例中,该步骤中当第七存储器中的数据为0时,第六存储器中的数据为0;第三存储器中的数据为7082364c8fb3b01e09a6a3277744156cb9a5ac20a339c6926ce3cafa6c66ab8f,第二存储器中的数据为186bd5fe7bd7f077a2a2cd13a7478eeef968542286df0a72a98f86c1b1c7a29f,更新后的第三存储器的数据为7082364c8fb3b01e09a6a3277744156cb9a5ac20a339c6926ce3cafa6c66ab8f,更新后的第二存储器中的数据为186bd5fe7bd7f077a2a2cd13a7478eeef968542286df0a72a98f86c1b1c7a29f;第五存储器中的数据为12c9da3d5756588e1b8b02d050f13066669bf41dc81ed85344bf11f0131cda8d,第是存储器中的数据为303ec4dde12ae78dd0bc7726fb681992d25a473ab8c58c90d75114da24b7db96,更新后的第五存储器的数据为12c9da3d5756588e1b8b02d050f13066669bf41dc81ed85344bf11f0131cda8d,更新后的第四存储器中的数据为303ec4dde12ae78dd0bc7726fb681992d25a473ab8c58c90d75114da24b7db96;
步骤115:处理器读取第三固定值,以第五存储器中的数据为底数、第三固定值模减2之差为指数进行模幂运算,将模幂运算结果与第三存储器中的数据进行模乘运算并将模乘运算结果更新第三存储器中的数据;
在本实施例中,第三固定值为以2位底数255为指数进行模幂运算的结果与19的差值;
例如,本实施例中,当第七存储器中的数据为0时,该步骤中第三固定值为7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed,第三固定值模减2之差为7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb,模幂运算结果为3a23fa7c2467473ff520f50e42ee9c434cdb1276692f72967c112264abd5e574;第三存储器中的数据为5285a2775507b454f7711c4903cfec324f088df24dea948e90c6e99d3755dac3;
步骤116:处理器对第三存储器中的数据进行字节序转换处理,将转换处理结果作为协商密钥并保存;
具体的,将计算结果进行字节序转换处理,包括:如计算结果长度为奇数则以中间字节数据为轴进行水平翻转处理,如计算结果长度为偶数,则前半部分与后半部分进行水平翻转处理,即将计算结果的第一字节与倒数第一个字节交换,第二字节与倒数第二个字节交换,直到结束;
例如,本实施例中,当第七存储器中的数据为0时,该步骤中保存的协商密钥为c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552;
本实施例中的模运算均是以第三固定值为模数进行的。
本申请中的技术方案中,在计算过程中对关键步骤采用条件交换技术,从而使得攻击者无法通过旁路攻击获得私钥,提升智能卡生成协商密钥的安全性。
基于上述本申请所提供的协商密钥的生成方法的技术方案,本申请对应提供了一种智能卡设备的方框示意图,如图3所示,本申请的智能卡设备30包括处理器31、存储器32及发送接口33、接收端口34;存储器32包括第一存储器320、第二存储器321、第三存储器322、第四存储器323、第五存储器324、第六存储器325、第七存储器326、第八存储器327和第九存储器328;处理器31包括:发送接收模块310、第一转换存储模块311、转换置位存储模块312、写入模块313、第一更新模块314、调用更新模块315、第一计算更新模块316、判断模块317、第二计算更新模块318、第一计算模块319、转换保存模块3110;
发送接收模块310,用于通过发送端口将智能卡公钥发送给主机,通过接收端口接收主机公钥;
第一转换存储模块311,用于对将主机公钥进行字节序转换处理并将转换处理结果分别存储到第一存储器320和第二存储器321中;
转换置位存储模块312,用于对智能卡私钥进行字节序转换处理得到第二转换结果,对第二转换结果进行置位处理并将置位处理结果存储到第八存储器327中;
写入模块313,用于在第七存储器326中写入第一预设值;在第三存储器322和第四存储器323中分别写入第一固定值,在第五存储器324和第六存储器325中分别写入第二固定值;
第一更新模块314,用于根据第八存储器327中的数据和第七存储器326中的数据更新第六存储器325中的数据;
调用更新模块315,用于用第六存储器325中的数据、第三存储器322中的数据和第二存储器321中的数据作为参数调用第一函数的输出结果更新第三存储器322中的数据和第二存储器321中的数据,用第六存储器325中的数据、第五存储器324中的数据和第四存储器323中的数据作为参数调用第一函数的输出结果更新第五存储器324中的数据和第四存储器323中的数据;
第一计算更新模块316,用于对第三存储器322中的数据、第二存储器321中的数据、第五存储器324中的数据和第四存储器323中的数据进行计算并用计算结果更新第三存储器322中的数据、第二存储器321中的数据、第五存储器324中的数据和第四存储器323中的数据;
判断模块317,用于判断第七存储器326中的数据是否为第二预设值,是则触发第二计算更新模块318,否则更新第七存储器326中的数据,触发第一更新模块314;
第二计算更新模块318,用于用第六存储器325中的数据、第三存储器322中的数据和第二存储器321中的数据作为参数调用第一函数的输出结果更新第三存储器322中的数据和第二存储器321中的数据,用第六存储器325中的数据、第五存储器324中的数据和第四存储器323中的数据作为参数调用第一函数的输出结果更新第五存储器324中的数据和第四存储器323中的数据;
第一计算模块319,用于对第三存储器322中的数据和第五寄存器中的数据进行计算;
转换保存模块3110,用于对第一计算模块319的计算结果进行字节序转换处理并将转换处理结果作为协商密钥并保存。
在本实施例中,第一转换存储模块311具体用于检查主机公钥的长度,如主机公钥的长度为奇数则以将主机公钥的中间字节数据为轴进行水平翻转处理并将处理结果分别存储到第一存储器320和第二存储器321中,如主机公钥的长度为偶数,则将主机公钥的前半部分与后半部分进行水平翻转处理并将处理结果分别存储到第一存储器320和第二存储器321中。
在本实施例中,转换置位存储模块312包括:
读取检查单元,用于读取智能卡私钥并检查智能卡私钥的长度,如智能卡私钥的长度为奇数则以智能卡私钥的中间字节数据为轴进行水平翻转处理得到第二转换结果,如智能卡私钥的长度为偶数,则将智能卡私钥的前半部分与后半部分进行水平翻转处理得到第二转换结果;
置位存储单元,用于对读取检查子单元的第二转换结果进行置位处理并将置位处理结果存储到第八存储器327中。
进一步地,置位存储单元具体用于对第二转换结果中最高字节最高位置0、最高字节次高位置1,最低字节的最低三位均置0,将置位后的第二转换结果存储到第八存储器327中。
在本实施例中,写入模块313,用于在第七存储器326中写入第一预设值,具体为:写入模块313用于在第七存储器326中写入智能卡私钥的位长度;
进一步地,判断模块317具体用于判断第七存储器326中的数据是否为0是则,触发第二计算更新模块318,否则将第七存储器中的数据自减1,触发第一更新模块314。
在本实施例中,转换保存模块3110具体用于检查计算结果的长度,如计算结果的长度为奇数则以中间字节数据为轴进行水平翻转处理并将处理结果作为协商密钥并保存,如计算结果的长度为偶数,则前半部分与后半部分进行水平翻转处理并将处理结果作为协商密钥并保存。
在本实施例中,第一更新模块314具体用于根据第七存储器326中的数据对第八存储器327中的数据进行向左移位,对移位结果与第一固定值进行与运算得到第一数据并保存到第九存储器328中;对第六存储器325中的数据与第九存储器328中的数据进行异或运算并用异或运算结果更新第六存储器325中的数据;
相应地,第一计算更新模块316,包括:
第一更新单元,用于用第九存储器328中的数据更新第六存储器325中的数据;
第一计算单元,用于将第三存储器322中的数据与第五存储器324中的数据的进行模加运算并将模加运算结果保存到第十存储器中;以第十存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十一存储器中,对第三存储器322中的数据和第五存储器324中的数据的进行模减运算并将模减运算结果保存到第十二存储器中;以第十二存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十三存储器中,将第十一存储器中的数据与第十三存储器中的数据进行模减运算并将模减运算结果保存到第十四存储器中;
第二计算单元,用于对第二存储器321中的数据和第四存储器323中的数据的进行模加运算并将模加运算结果保存到第十五存储器中;对第二存储器321中的数据和第四存储器323中的数据的进行模减运算并将模减运算结果保存到第十六存储器中;对第十六存储器中的数据与第十存储器中的数据进行模乘运算并将模乘运算结果保存到第十七存储器中;对第十五存储器中的数据与是第十二存储器中的数据进行模乘运算并将模乘运算结果保存到第十八存储器中;
第三计算单元,用于用第十七存储器中的数据与第十八存储器中的数据之和为底数、2为指数进行模幂运算并用模幂运算结果更新第二存储器321中的数据;
第四计算单元,用于用第十七存储器中的数据与第十八存储器中的数据之差为底数、2为指数进行模幂运算,再用模幂运算结果与第一存储器320中的数据进行模乘的结果更新第四存储器323中的数据;用第十一存储器中的数据与第十三存储器中的数据的模乘结果更新第三存储器322中的数据;将预置常数与第十四存储器中的数据进行模乘运算得到第十数据,将第十一存储器中的数据与第十数据进行模加运算得到第十一数据,用第十四存储器中的数据与第十一数据进行模乘运算的结果更新第五存储器324中的数据。
在本实施例中,第二计算更新模块319包括:
第一计算模块319具体用于读取第三固定值,以第五存储器324中的数据为底数、第三固定值模减2之差为指数进行模幂运算,将模幂运算运算结果与第三存储器322中的数据进行模乘运算并用模乘结果更新第三存储器322中的数据;
转换保存模块3110具体用于对第三存储器322中的数据进行字节序转换处理,并将转换处理结果作为协商密钥并保存。
在本实施例中,第一函数包括第一参数、第二参数、第三参数,第一函数的实现过程为:将第二参数和第三参数进行异或运算并将异或运算结果存储到第四缓存区中,将第一参数为参数调用第二函数的输出结果与第四缓存区中的数据进行与运算并将与运算结果存储到第五缓存区中;将第五缓存区中的数据与第二参数进行异或运算并将异或运算结果存储到第六缓存区中,将第五缓存区中的数据与第三参数进行异或运算并将异或运算结果存储到第七缓存区中,将第六缓存区中的数据和第七缓存区中的数据作为第一函数的输出结果。
在本实施例中,第二函数的实现过程:用0模减参数得到的差值作为第二函数的输出结果
本申请中的技术方案中,在计算过程中对关键步骤采用条件交换技术,从而使得攻击者无法通过旁路攻击获得私钥,提升智能卡生成协商密钥的安全性。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
本申请中的技术方案中,在计算过程中对关键步骤采用条件交换技术,从而使得攻击者无法通过旁路攻击获得私钥,提升智能卡生成协商密钥的安全性。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (14)
1.一种协商密钥的生成方法,应用于智能卡设备上,所述智能卡设备包括处理器、存储器及发送接口、接收端口,其特征在于,包括如下步骤:
步骤S1:所述处理器通过发送端口将智能卡公钥发送给主机,通过所述接收端口接收主机公钥,对所述主机公钥进行字节序转换处理并将转换处理结果分别存储到第一存储器和第二存储器中;对智能卡私钥进行字节序转换处理得到第二转换结果,对所述第二转换结果进行置位处理并将置位处理结果存储到第八存储器中;在第七存储器中写入第一预设值;在第三存储器和第四存储器中分别写入第一固定值,在第五存储器和第六存储器中分别写入第二固定值;
步骤S2:所述处理器根据所述第八存储器中的数据和所述第七存储器中的数据更新所述第六存储器中的数据,用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据作为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据,用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据作为参数调用第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据,对所述第三存储器中的数据、所述第二存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据进行计算并用计算结果更新所述第三存储器中的数据、所述第二存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据;
步骤S3:所述处理器判断所述第七存储器中的数据是否为第二预设值,是则执行步骤S4,否则更新所述第七存储器中的数据,返回步骤S2;
步骤S4:所述处理器用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据作为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据,用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据作为参数调用第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据,对所述第三存储器中的数据和第五寄存器中的数据进行计算,对计算结果进行字节序转换处理并将转换处理结果作为协商密钥并保存;
所述对所述主机公钥进行字节序转换处理,包括:检查主机公钥的长度,如主机公钥的长度为奇数则以将所述主机公钥的中间字节数据为轴进行水平翻转处理,如主机公钥的长度为偶数,则将所述主机公钥的前半部分与后半部分进行水平翻转处理;
所述对智能卡私钥进行字节序转换处理得到第二转换结果,对所述第二转换结果进行置位处理并将置位处理结果存储到第八存储器中,包括:
步骤b1:所述处理器读取智能卡私钥并检查智能卡私钥的长度,如智能卡私钥的长度为奇数则以智能卡私钥的中间字节数据为轴进行水平翻转处理得到第二转换结果,如智能卡私钥的长度为偶数,则将智能卡私钥的前半部分与后半部分进行水平翻转处理得到第二转换结果;
步骤b2:所述处理器对所述第二转换结果进行置位处理并将置位处理结果存储到第八存储器中;
所述处理器对所述第二转换结果进行置位处理包括:所述处理器对所述第二转换结果中最高字节最高位置0、最高字节次高位置1,最低字节的最低三位均置0。
2.如权利要求1所述的方法,其特征在于,所述在第七存储器中写入第一预设值,具体为:在第七存储器中写入第一预设值为智能卡私钥的位长度;
所述步骤S3包括:所述处理器判断所述第七存储器中的数据是否为0,是则执行步骤S4,否则将所述第七存储器中的数据自减1,返回步骤S2。
3.如权利要求1所述的方法,其特征在于,所述步骤S4中对计算结果进行字节序转换处理,包括:检查所述计算结果的长度,如计算结果的长度为奇数则以中间字节数据为轴进行水平翻转处理,如计算结果的长度为偶数,则前半部分与后半部分进行水平翻转处理。
4.如权利要求1所述的方法,其特征在于,所述步骤S2包括:
步骤a1:所述处理器根据所述第七存储器中的数据对所述第八存储器中的数据进行向左移位,对移位结果与所述第一固定值进行与运算得到第一数据并保存到第九存储器中;
步骤a2:所述处理器对所述第六存储器中的数据与所述第九存储器中的数据进行异或运算并用异或运算结果更新所述第六存储器中的数据;
步骤a3:所述处理器用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据;用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据为参数调用所述第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据;
步骤a4:所述处理器用所述第九存储器中的数据更新所述第六存储器中的数据;
步骤a5:所述处理器将所述第三存储器中的数据与所述第五存储器中的数据的进行模加运算并将模加运算结果保存到第十存储器中;以所述第十存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十一存储器中,对所述第三存储器中的数据和所述第五存储器中的数据的进行模减运算并将模减运算结果保存到第十二存储器中;以所述第十二存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十三存储器中,将所述第十一存储器中的数据与所述第十三存储器中的数据进行模减运算并将模减运算结果保存到第十四存储器中;
步骤a6:所述处理器对所述第二存储器中的数据和所述第四存储器中的数据的进行模加运算并将模加运算结果保存到第十五存储器中;对所述第二存储器中的数据和所述第四存储器中的数据的进行模减运算并将模减运算结果保存到第十六存储器中;对所述第十六存储器中的数据与所述第十存储器中的数据进行模乘运算并将模乘运算结果保存到第十七存储器中;对所述第十五存储器中的数据与是第十二存储器中的数据进行模乘运算并将模乘运算结果保存到第十八存储器中;
步骤a7:所述处理器用所述第十七存储器中的数据与所述第十八存储器中的数据之和为底数、2为指数进行模幂运算并用模幂运算结果更新所述第二存储器中的数据;
步骤a8:所述处理器用所述第十七存储器中的数据与所述第十八存储器中的数据之差为底数、2为指数进行模幂运算,再用模幂运算结果与所述第一存储器中的数据进行模乘的结果更新所述第四存储器中的数据;用所述第十一存储器中的数据与所述第十三存储器中的数据的模乘结果更新所述第三存储器中的数据;将预置常数与所述第十四存储器中的数据进行模乘运算得到第十数据,将所述第十一存储器中的数据与所述第十数据进行模加运算得到第十一数据,用所述第十四存储器中的数据与所述第十一数据进行模乘运算的结果更新第五存储器中的数据。
5.如权利要求4所述的方法,其特征在于,所述步骤S4包括:
步骤c1:所述处理器用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据为参数调用所述第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据;用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据为参数调用所述第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据;
步骤c2:所述处理器读取第三固定值,以所述第五存储器中的数据为底数、所述第三固定值模减2之差为指数进行模幂运算,将模幂运算结果与所述第三存储器中的数据进行模乘运算并用模乘结果更新第三存储器中的数据;
步骤c3:所述处理器对所述第三存储器中的数据进行字节序转换处理,并将转换处理结果作为协商密钥并保存。
6.如权利要求1所述的方法,其特征在于,所述第一函数包括第一参数、第二参数、第三参数,所述第一函数的实现过程为:将所述第二参数和所述第三参数进行异或运算并将异或运算结果存储到第四缓存区中,将所述第一参数为参数调用第二函数的输出结果与所述第四缓存区中的数据进行与运算并将与运算结果存储到第五缓存区中;将所述第五缓存区中的数据与所述第二参数进行异或运算并将异或运算结果存储到第六缓存区中,将所述第五缓存区中的数据与所述第三参数进行异或运算并将异或运算结果存储到第七缓存区中,将第六缓存区中的数据和第七缓存区中的数据作为第一函数的输出结果。
7.如权利要求6所述的方法,其特征在于,所述第二函数的实现过程:用0模减参数得到的差值作为第二函数的输出结果。
8.一种智能卡设备,其特征在于,包括处理器、存储器及发送接口、接收端口;所述存储器包括第一存储器、第二存储器、第三存储器、第四存储器、第五存储器、第六存储器、第七存储器、第八存储器和第九存储器;所述处理器包括:发送接收模块、第一转换存储模块、转换置位存储模块、写入模块、第一更新模块、调用更新模块、第一计算更新模块、判断模块、第二计算更新模块、第一计算模块、转换保存模块;
所述发送接收模块,用于通过发送端口将智能卡公钥发送给主机,通过所述接收端口接收主机公钥;
所述第一转换存储模块,用于对将所述主机公钥进行字节序转换处理并将转换处理结果分别存储到第一存储器和第二存储器中;
所述转换置位存储模块,用于对智能卡私钥进行字节序转换处理得到第二转换结果,对所述第二转换结果进行置位处理并将置位处理结果存储到第八存储器中;
所述写入模块,用于在第七存储器中写入第一预设值;在第三存储器和第四存储器中分别写入第一固定值,在第五存储器和第六存储器中分别写入第二固定值;
所述第一更新模块,用于根据所述第八存储器中的数据和所述第七存储器中的数据更新所述第六存储器中的数据;
所述调用更新模块,用于用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据作为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据,用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据作为参数调用第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据;
所述第一计算更新模块,用于对所述第三存储器中的数据、所述第二存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据进行计算并用计算结果更新所述第三存储器中的数据、所述第二存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据;
所述判断模块,用于判断所述第七存储器中的数据是否为第二预设值,是则触发所述第二计算更新模块,否则更新所述第七存储器中的数据,触发所述第一更新模块;
所述第二计算更新模块,用于用所述第六存储器中的数据、所述第三存储器中的数据和所述第二存储器中的数据作为参数调用第一函数的输出结果更新所述第三存储器中的数据和所述第二存储器中的数据,用所述第六存储器中的数据、所述第五存储器中的数据和所述第四存储器中的数据作为参数调用第一函数的输出结果更新所述第五存储器中的数据和所述第四存储器中的数据;
所述第一计算模块,用于对所述第三存储器中的数据和第五寄存器中的数据进行计算;
所述转换保存模块,用于对所述第一计算模块的计算结果进行字节序转换处理并将转换处理结果作为协商密钥并保存;
所述第一转换存储模块具体用于检查主机公钥的长度,如主机公钥的长度为奇数则以将所述主机公钥的中间字节数据为轴进行水平翻转处理并将处理结果分别存储到第一存储器和第二存储器中,如主机公钥的长度为偶数,则将所述主机公钥的前半部分与后半部分进行水平翻转处理并将处理结果分别存储到第一存储器和第二存储器中;
所述转换置位存储模块包括:
读取检查单元,用于读取智能卡私钥并检查智能卡私钥的长度,如智能卡私钥的长度为奇数则以智能卡私钥的中间字节数据为轴进行水平翻转处理得到第二转换结果,如智能卡私钥的长度为偶数,则将智能卡私钥的前半部分与后半部分进行水平翻转处理得到第二转换结果;
置位存储单元,用于对所述读取检查单元的第二转换结果进行置位处理并将置位处理结果存储到第八存储器中;
所述置位存储单元具体用于对所述第二转换结果中最高字节最高位置0、最高字节次高位置1,最低字节的最低三位均置0,将置位后的第二转换结果存储到第八存储器中。
9.如权利要求8所述的智能卡设备,其特征在于,所述写入模块,用于在第七存储器中写入第一预设值,具体为:所述写入模块用于在第七存储器中写入智能卡私钥的位长度;
所述判断模块具体用于判断所述第七存储器中的数据是否为0,是则触发所述第二计算更新模块,否则将所述第七存储器中的数据自减1,触发所述第一更新模块。
10.如权利要求8所述的智能卡设备,其特征在于,所述转换保存模块具体用于检查所述计算结果的长度,如计算结果的长度为奇数则以中间字节数据为轴进行水平翻转处理并将处理结果作为协商密钥并保存,如计算结果的长度为偶数,则前半部分与后半部分进行水平翻转处理并将处理结果作为协商密钥并保存。
11.如权利要求8所述的智能卡设备,其特征在于,
所述第一更新模块具体用于根据所述第七存储器中的数据对所述第八存储器中的数据进行向左移位,对移位结果与所述第一固定值进行与运算得到第一数据并保存到第九存储器中;对所述第六存储器中的数据与所述第九存储器中的数据进行异或运算并用异或运算结果更新所述第六存储器中的数据;
所述第一计算更新模块,包括:
第一更新单元,用于用所述第九存储器中的数据更新所述第六存储器中的数据;
第一计算单元,用于将所述第三存储器中的数据与所述第五存储器中的数据的进行模加运算并将模加运算结果保存到第十存储器中;以所述第十存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十一存储器中,对所述第三存储器中的数据和所述第五存储器中的数据的进行模减运算并将模减运算结果保存到第十二存储器中;以所述第十二存储器中的数据为底数、2为指数进行模幂运算并将模幂运算结果保存到第十三存储器中,将所述第十一存储器中的数据与所述第十三存储器中的数据进行模减运算并将模减运算结果保存到第十四存储器中;
第二计算单元,用于对所述第二存储器中的数据和所述第四存储器中的数据的进行模加运算并将模加运算结果保存到第十五存储器中;对所述第二存储器中的数据和所述第四存储器中的数据的进行模减运算并将模减运算结果保存到第十六存储器中;对所述第十六存储器中的数据与所述第十存储器中的数据进行模乘运算并将模乘运算结果保存到第十七存储器中;对所述第十五存储器中的数据与是第十二存储器中的数据进行模乘运算并将模乘运算结果保存到第十八存储器中;
第三计算单元,用于用所述第十七存储器中的数据与所述第十八存储器中的数据之和为底数、2为指数进行模幂运算并用模幂运算结果更新所述第二存储器中的数据;
第四计算单元,用于用所述第十七存储器中的数据与所述第十八存储器中的数据之差为底数、2为指数进行模幂运算,再用模幂运算结果与所述第一存储器中的数据进行模乘的结果更新所述第四存储器中的数据;用所述第十一存储器中的数据与所述第十三存储器中的数据的模乘结果更新所述第三存储器中的数据;将预置常数与所述第十四存储器中的数据进行模乘运算得到第十数据,将所述第十一存储器中的数据与所述第十数据进行模加运算得到第十一数据,用所述第十四存储器中的数据与所述第十一数据进行模乘运算的结果更新第五存储器中的数据。
12.如权利要求11所述的智能卡设备,其特征在于,所述第二计算更新模块包括:
所述第一计算模块具体用于读取第三固定值,以所述第五存储器中的数据为底数、所述第三固定值模减2之差为指数进行模幂运算,将模幂运算结果与所述第三存储器中的数据进行模乘运算并用模乘结果更新第三存储器中的数据;
所述转换保存模块具体用于对所述第三存储器中的数据进行字节序转换处理,并将转换处理结果作为协商密钥并保存。
13.如权利要求8所述的智能卡设备,其特征在于,所述第一函数包括第一参数、第二参数、第三参数,所述第一函数的实现过程为:将所述第二参数和所述第三参数进行异或运算并将异或运算结果存储到第四缓存区中,将所述第一参数为参数调用第二函数的输出结果与所述第四缓存区中的数据进行与运算并将与运算结果存储到第五缓存区中;将所述第五缓存区中的数据与所述第二参数进行异或运算并将异或运算结果存储到第六缓存区中,将所述第五缓存区中的数据与所述第三参数进行异或运算并将异或运算结果存储到第七缓存区中,将第六缓存区中的数据和第七缓存区中的数据作为第一函数的输出结果。
14.如权利要求13所述的智能卡设备,其特征在于,所述第二函数的实现过程:用0模减参数得到的差值作为第二函数的输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911383080.2A CN111162907B (zh) | 2019-12-28 | 2019-12-28 | 一种协商密钥的生成方法及智能卡设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911383080.2A CN111162907B (zh) | 2019-12-28 | 2019-12-28 | 一种协商密钥的生成方法及智能卡设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111162907A CN111162907A (zh) | 2020-05-15 |
CN111162907B true CN111162907B (zh) | 2023-05-23 |
Family
ID=70558772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911383080.2A Active CN111162907B (zh) | 2019-12-28 | 2019-12-28 | 一种协商密钥的生成方法及智能卡设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111162907B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113676335B (zh) * | 2021-10-21 | 2021-12-28 | 飞天诚信科技股份有限公司 | 一种在安全芯片内实现签名的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377783A (zh) * | 2011-11-07 | 2012-03-14 | 飞天诚信科技股份有限公司 | 一种动态口令生成及认证的方法和系统 |
CN103593299A (zh) * | 2013-11-12 | 2014-02-19 | 飞天诚信科技股份有限公司 | 一种节省存储空间的数据处理方法 |
CN108259184A (zh) * | 2018-01-16 | 2018-07-06 | 飞天诚信科技股份有限公司 | 一种基于用户标识的数字签名、验签方法及装置 |
CN108476132A (zh) * | 2015-11-06 | 2018-08-31 | 纳格拉维森公司 | 用于加密操作的密钥序列生成 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103427997B (zh) * | 2013-08-16 | 2016-06-22 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
US9100175B2 (en) * | 2013-11-19 | 2015-08-04 | M2M And Iot Technologies, Llc | Embedded universal integrated circuit card supporting two-factor authentication |
-
2019
- 2019-12-28 CN CN201911383080.2A patent/CN111162907B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377783A (zh) * | 2011-11-07 | 2012-03-14 | 飞天诚信科技股份有限公司 | 一种动态口令生成及认证的方法和系统 |
CN103593299A (zh) * | 2013-11-12 | 2014-02-19 | 飞天诚信科技股份有限公司 | 一种节省存储空间的数据处理方法 |
CN108476132A (zh) * | 2015-11-06 | 2018-08-31 | 纳格拉维森公司 | 用于加密操作的密钥序列生成 |
CN108259184A (zh) * | 2018-01-16 | 2018-07-06 | 飞天诚信科技股份有限公司 | 一种基于用户标识的数字签名、验签方法及装置 |
Non-Patent Citations (2)
Title |
---|
Shaik Mirra Alfassa等.Improved Availability Using I_RRect Algorithm in Cloud Environment.《2018 Second International Conference on Intelligent Computing and Control Systems (ICICCS)》.2019,全文. * |
张建华 ; 刘宏伟 ; .8位平台SMS4密码算法实时加解密实现.《微计算机信息》.2009,(18),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111162907A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI787538B (zh) | 離線場景下的支付處理方法、伺服器及可讀儲存媒體 | |
CN111125736A (zh) | 基于隐私保护交集计算协议的致病基因检测方法 | |
CN111314640B (zh) | 一种视频压缩方法、设备以及介质 | |
CN108964914B (zh) | 抗侧信道攻击的sm2点乘架构 | |
US8184804B2 (en) | Hash function using a piling-up process | |
CN109493054B (zh) | 多链信息管理方法、装置、存储介质和区块链身份解析器 | |
US11868485B2 (en) | Operation method, operation apparatus, and device | |
CN109818730A (zh) | 盲签名的获取方法、装置和服务器 | |
CN111162907B (zh) | 一种协商密钥的生成方法及智能卡设备 | |
CN108389044A (zh) | 工作量证明的计算方法和系统、电子设备、程序和介质 | |
CN110505311A (zh) | 一种同构区块链跨链交互方法和系统 | |
CN110248045A (zh) | 一种猫映射图像加密方法、解密方法以及相关装置 | |
CN113193962B (zh) | 基于轻量级模乘的sm2数字签名生成与验证器 | |
CN107248910A (zh) | 安全保护方法以及设备 | |
CN112218133B (zh) | 投屏码生成方法、装置及终端设备 | |
CN110060055A (zh) | 一种区块链中的数字资产托管方法、装置和电子设备 | |
CN109859090A (zh) | 基于人类视觉系统的可逆水印方法及装置 | |
CN115129297B (zh) | 多点乘运算系统、方法、图形处理器、电子装置及设备 | |
CN111210345A (zh) | 一种基于区块链网络交易的签名方法、装置及终端设备 | |
CN111444129B (zh) | Mdb数据传输的方法及终端设备 | |
CN107204856A (zh) | 一种检测椭圆曲线算法漏洞的方法及装置 | |
CN109240849A (zh) | 数据备份方法、装置及用于视频会议系统的多点控制单元 | |
CN113792565B (zh) | 一种二维码防盗用方法、装置、设备和介质 | |
US8311223B2 (en) | Communication system, communication apparatus, display device, and communication method | |
CN115809473B (zh) | 一种纵向联邦学习的信息价值的获取方法及装置 |
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 |