CN110190950A - 一种安全签名的实现方法及装置 - Google Patents

一种安全签名的实现方法及装置 Download PDF

Info

Publication number
CN110190950A
CN110190950A CN201910503324.XA CN201910503324A CN110190950A CN 110190950 A CN110190950 A CN 110190950A CN 201910503324 A CN201910503324 A CN 201910503324A CN 110190950 A CN110190950 A CN 110190950A
Authority
CN
China
Prior art keywords
signature
pin
submodule
pin code
data
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
CN201910503324.XA
Other languages
English (en)
Other versions
CN110190950B (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 CN201910503324.XA priority Critical patent/CN110190950B/zh
Publication of CN110190950A publication Critical patent/CN110190950A/zh
Priority to PCT/CN2020/084238 priority patent/WO2020248686A1/zh
Application granted granted Critical
Publication of CN110190950B publication Critical patent/CN110190950B/zh
Priority to US17/546,692 priority patent/US20220103376A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种安全签名的实现方法及装置,该方法包括:当签名模块接收到验PIN指令时,根据终端公钥和签名模块私钥生成第二共享密钥,根据第二共享密钥对指令中的第一计算结果进行验证,如验证失败则重新生成签名模块密钥对并替换保存的签名模块密钥对;如验证成功则生成验PIN签名数据并保存,根据第二共享密钥和验PIN签名数据生成第二计算结果并发送给终端;当接收到签名操作指令时,判断指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则使用签名私钥对签名操作指令中的待签名中间数据进行签名;判断当前状态是否满足预设条件,是则清除保存的验PIN签名数据,将签名结果返回给终端,否则将签名结果返回终端。

Description

一种安全签名的实现方法及装置
技术领域
本发明涉及信息安全领域,尤其涉及一种安全签名的实现方法及装置。
背景技术
随着信息安全的发展,智能密钥设备签名模块开始广泛的应用于安全领域,用户使用签名模块(例如智能密钥设备)对传输报文进行签名来保证用户信息的安全性。在现有技术中,首先通过验PIN操作对用户身份的合法性进行确认,确认合法后再对传输报文进行签名操作。由于验PIN操作和签名操作是通过两条彼此独立的指令来实现的,验PIN操作和签名操作无任何数据关联,有可能存在以下问题:验PIN操作之后很久才进行签名操作,在这期间会出现验一次PIN而进行多次签名操作,多次签名操作中可能是合法用户操作也可能是非法用户操作,导致用户信息泄露,而无法保证签名操作的安全性。故亟待提供一种更安全签名方法来保护用户信息的安全性。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种安全签名的实现方法及装置。
本发明提供了一种安全签名的实现方法,包括:
步骤F1:当签名模块接收到终端发送的验PIN指令时,根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,并使用所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证,如验证成功则执行步骤F2;如验证失败则重新生成签名模块密钥对并替换保存的签名模块密钥对;所述签名模块密钥对包括签名模块私钥和签名模块公钥;
步骤F2:所述签名模块生成验PIN签名数据并保存,根据所述第二共享密钥和所述验PIN签名数据生成第二计算结果,并将所述第二计算结果发送给所述终端;
步骤H1:当签名模块接收到终端发送的签名操作指令时,判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤H2,否则报错;
步骤H2:所述签名模块使用保存的签名私钥对所述签名操作指令中的待签名中间数据进行签名;
步骤H3:所述签名模块判断当前状态是否满足预设条件,是则清除保存的所述验PIN签名数据,并将签名结果返回给所述终端,否则将签名结果返回所述终端。
进一步地,所述根据所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证之前包括:
所述签名模块解析接收到的验PIN指令,并判断是否解析成功,是则继续,否则报错;
所述步骤H1中的判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致之前,还包括:所述签名模块解析接收到的签名操作指令,并判断是否解析成功,是则继续,否则报错。
进一步地,所述使用所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证,包括:
所述签名模块使用生成的第二共享密钥对所述验PIN指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码转换成第二字节流数据,对所述第二字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据,判断提取数据是否与所述第二结果数据一致,是则验证成功,否则验证失败。
进一步地,所述根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,包括:所述签名模块将所述验PIN指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对所述第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥。
进一步地,所述根据生成的第二共享密钥对所述验PIN指令中的第一计算结果进行验证之前包括:所述签名模块判断PIN码重试次数是否为预定数据,是则报错,提示PIN码锁定;否则继续;
所述步骤F1中验证失败时还包括:
步骤C1:所述签名模块更新所述PIN码重试次数;
步骤C2:所述签名模块判断所述PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤C3;
步骤C3:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;
所述步骤F2还包括:将所述PIN码重试次数改为初始值。
进一步地,所述根据所述第二共享密钥和所述验PIN签名数据生成第二计算结果,并将所述第二计算结果发送给所述终端包括:使用第二共享密钥对验PIN签名数据进行加密得到密文数据,并将所述密文数据发送给所述终端。
进一步地,所述步骤H1和H2替换为:
步骤P1:当签名模块接收到所述终端发送的设置安全环境操作指令时,判断所述设置安全环境操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤P2,否则结束;
步骤P2:所述签名模块根据所述设置安全环境指令中的算法ID和密钥容器ID判断设置签名算法是否合法,是则执行步骤P3,否则结束;
步骤P3:所述签名模块根据所述密钥容器ID打开对应的密钥容器,根据所述算法ID设置对应的算法,并给所述终端返回成功设置安全环境响应;
步骤T1:当签名模块接收到所述终端发送的哈希操作指令时,判断所述哈希操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤T2,否则结束;
步骤T2:所述签名模块对所述哈希操作指令进行解析得到待签名数据并保存;
步骤T3:所述签名模块根据设置的算法对所述待签名数据进行哈希运算得到哈希值并保存,给所述终端返回哈希计算成功响应;
步骤Q1:当签名模块接收到终端发送的签名操作指令时,判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤Q2,否则结束;
步骤Q2:所述签名模块从保存的待签名数据中提取关键信息并判断是否提取成功,是则执行步骤Q3,否则结束;
步骤Q3:所述签名模块显示所述关键信息并判断是否接收到用户确认信息,是则所述签名模块使用与所述签名操作指令中的容器ID所对应的容器中的签名私钥对保存的哈希值进行签名得到签名结果并保存,否则结束;
步骤Q4:所述签名模块判断当前状态是否满足预设条件,是则清除保存的所述验PIN签名数据,并给所述终端返回签名成功信息,否则给所述终端返回签名失败信息;
步骤L1:当签名模块接收到终端发送的获取签名结果指令时,将签名结果返回给终端。
进一步地,所述步骤P2包括:
步骤P21:所述签名模块根据所述密钥容器ID判断对应的密钥容器是否存在,是则执行步骤P22,否则结束;
步骤P22:所述签名模块根据所述算法ID判断是否支持对应的算法,是则执行步骤P3,否则结束。
进一步地,所述步骤T3还包括:所述签名模块给所述终端返回所述哈希值。
进一步地,所述步骤F2还包括:将验PIN签名标识设为有效;
所述步骤H1、步骤P1、步骤T1、步骤Q1中还包括:所述签名模块判断所述验PIN签名标识是否有效,是则继续,否则报错;
所述步骤H3中判断为是时还包括:将所述验PIN签名标识设为无效。
进一步地,所述将所述验PIN签名标识设为有效,具体为:将验PIN签名标识置位;
所述判断所述验PIN签名标识是否有效,具体为:判断所述验PIN签名标识是否置位;
所述将所述验PIN签名标识设为无效,具体为:将所述验PIN签名标识复位。
进一步地,所述步骤F2还包括:将签名次数设为初始值;
所述签名模块判断当前状态是否满足预设条件,包括:更新所述签名次数,并判断所述签名次数是否等于预设值,是则满足预设条件,否则不满足预设条件。
进一步地,所述步骤F2还包括:设置签名有效时间;
所述签名模块判断当前状态是否满足预设条件,包括:判断当前时间是否在签名有效时间内,是则不满足预设条件,否则满足预设条件。
进一步地,所述方法还包括:
当签名模块接收到设置PIN码指令时,所述签名模块判断PIN码是否已设置,是则报错,否则对所述设置PIN码指令进行验证,如验证成功则根据所述设置PIN码指令中的第一密文生成PIN码并保存,如验证失败则结束。
进一步地,所述签名模块对所述设置PIN码指令进行验证,包括:
步骤M1:所述签名模块将保存的签名模块私钥与所述设置PIN码指令中的终端公钥进行计算得到第一计算值,对第一计算值进行哈希运算,将哈希结果作为第二共享密钥;
步骤M2:所述签名模块使用所述第二共享密钥、对所述设置PIN码指令中的第一密文进行HMAC运算得到第二运算结果,并提取第二运算结果中的前16个字节数据得到提取数据;
步骤M3:所述签名模块判断所述提取数据是否与所述设置PIN码指令中的第一结果数据一致,是则验证成功,否则验证失败。
进一步地,所述步骤M1之前还包括:
所述签名模块对接收到的所述设置PIN码指令进行解析,并判断是否解析成功,是则执行步骤M1,否则报错。
进一步地,所述根据所述设置PIN码指令中的第一密文生成PIN码并保存,包括:
步骤N1:所述签名模块使用所述第二共享密钥对所述设置PIN码指令中的第一密文进行解密得到第一解密值,去除所述第一解密值中的填充数据得到密码中间值;
步骤N2:所述签名模块判断所述密码中间值是否小于第一预设值,是则报错,否则执行步骤N3;
步骤N3:所述签名模块对所述密码中间值进行哈希运算得到哈希结果,提取哈希结果中的前16个字节数据并保存为PIN码。
进一步地,所述方法还包括:
当所述签名模块接收到修改PIN码指令时,对所述修改PIN码指令进行验证,如验证成功则用所述修改PIN码指令中的PIN码替换保存的PIN码,如验证失败则报错。
进一步地,所述对所述修改PIN码指令进行验证,包括:
步骤W1:所述签名模块对保存的签名模块私钥与所述修改PIN码指令中的终端公钥进行计算得到第一结果数据,对第一结果数据进行哈希运算得到第二共享密钥;将所述修改PIN码指令中的第一加密值和所述修改PIN码指令中的第二加密值进行拼接得到第二拼接结果;
步骤W2:所述签名模块使用第二共享密钥、对第二拼接结果进行HMAC运算得到第二运算结果,并从第二运算结果中提取前16个字节数据得到提取数据;
步骤W3:所述签名模块判断所述修改PIN码指令中的中间数据与所述提取数据是否一致,是则执行步骤W4,否则报错;
步骤W4:所述签名模块使用所述第二共享密钥对所述第一加密值进行解密得到第一解密值;
步骤W5:所述签名模块判断所述第一解密值与内部保存的PIN码是否一致,是则验证成功,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。
进一步地,所述用所述修改PIN码指令中的PIN码替换保存的PIN码,包括:
步骤K1:所述签名模块使用所述第二共享密钥对所述第二加密值进行解密得到第二解密值,去除所述第二解密值中的填充数据得到第一中间值;
步骤K2:所述签名模块判断第一中间值的长度是否小于第一预设值,是则执行步骤K3,否则报错;
步骤K3:所述签名模块对所述第一中间值进行哈希运算得到哈希结果,提取所述哈希结果的前16个字节数据并替换所述内部保存的PIN码。
进一步地,所述步骤W1之前还包括:
所述签名模块解析接收到的修改PIN码指令,并判断是否解析成功,是则执行步骤W1,否则报错。
进一步地,所述步骤N3还包括:所述签名模块将PIN码重试次数设为初始值;
所述步骤K3还包括:所述签名模块将所述PIN码重试次数改为初始值;
所述步骤W1之前还包括:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤W1;
所述步骤W5中验证失败之后还包括:
步骤W6:所述签名模块更新所述PIN码重试次数;
步骤W7:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤W8;
步骤W8:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
进一步地,所述方法还包括:
当签名模块接收到获取验PIN签名数据指令时,对所述获取验PIN签名数据指令进行验证,如验证成功则生成验PIN签名数据并发送给所述终端,如验证失败则结束。
进一步地,所述对所述获取验PIN签名数据指令进行验证,包括:
步骤R1:所述签名模块将所述获取验PIN签名数据指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
步骤R2:所述签名模块使用第二共享密钥、对所述获取验PIN签名数据指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码,将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据得到提取数据;
步骤R3:所述签名模块判断所述第二结果数据是否与提取数据相同,是则验证成功,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。
进一步地,所述生成验PIN签名数据并发送给所述终端,包括:生成第一随机数作为验PIN签名数据,使用所述第二共享密钥对验PIN签名数据进行加密得到密文数据,并将密文数据返回给终端。
进一步地,所述步骤R1之前还包括:
步骤R0:所述签名模块解析接收到的获取验PIN签名数据指令,并判断是否解析成功,是则执行步骤R1,否则报错。
进一步地,所述步骤N3还包括:所述签名模块将PIN码重试次数设为初始值;
所述步骤R3验证成功时还包括:所述签名模块将所述PIN码重试次数改为初始值;
所述步骤R1之前还包括:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则执行步骤R1;
所述步骤R3判断为否还包括:
步骤R4:所述签名模块更新PIN码重试次数;
步骤R5:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤R6;
步骤R6:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
进一步地,所述方法还包括:
当所述签名模块接收到协商共享密钥指令时,生成签名模块密钥对并保存,将所述签名模块密钥对中的签名模块公钥返回给所述终端。
本发明又提供了一种安全签名的实现装置,包括签名模块,所述签名模块:
接收子模块,用于接收终端发送的验PIN指令和签名操作指令;
第一生成子模块,用于当所述接收子模块接收到验PIN码指令时,根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥;
第一验证子模块,用于使用所述第一生成子模块生成的第二共享密钥对所述验PIN指令中的第一计算结果进行验证,如验证成功则触发第三生成子模块;如验证失败则触发第二生成子模块;
所述第二生成子模块,用于重新生成签名模块密钥对并替换保存的签名模块密钥对;所述签名模块密钥对包括签名模块私钥和签名模块公钥;
所述第三生成子模块,用于生成验PIN签名数据并保存;根据所述第一生成子模块生成的第二共享密钥和所述验PIN签名数据生成第二计算结果;
第一判断子模块,用于当所述接收子模块接收到终端发送的签名操作指令时,判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发签名子模块,否则报错;
所述签名子模块,用于使用保存的签名私钥对所述签名操作指令中的待签名中间数据进行签名;
判断清除子模块,用于判断当前状态是否满足预设条件,是则清除保存的所述验PIN签名数据;
发送子模块,用于将所述第三生成子模块生成的第二计算结果发送给所述终端,还用于在所述判断清除子模块判断为是或否时将所述签名子模块得到的签名结果发送给所述终端。
进一步地,所述签名模块还包括:
第一解析子模块,用于解析所述接收子模块接收到的验PIN指令,并判断是否解析成功,是则触发所述第一验证子模块,否则报错;
第二解析子模块,用于解析所述接收子模块接收到的签名操作指令,并判断是否解析成功,是则触发所述第一判断子模块,否则报错。
进一步地,所述第一验证子模块具体用于使用生成的第二共享密钥对所述验PIN指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码转换成第二字节流数据,对所述第二字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据,判断提取数据是否与所述第二结果数据一致,是则验证成功,触发第三生成子模块;否则验证失败,触发第二生成子模块。
进一步地,所述第一生成子模块具体用于将所述验PIN指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对所述第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥。
进一步地,所述签名模块还包括:
第二判断子模块,用于判断PIN码重试次数是否为预定数据,是则报错,提示PIN码锁定;否则触发所述第一验证子模块;
第一更新子模块,用于在所述第一验证子模块验证失败后更新所述PIN码重试次数;
第三判断子模块,用于判断所述PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第四判断子模块;
所述第四判断子模块,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;
第一修改子模块,用于在所述第一验证子模块验证成功后将所述PIN码重试次数改为初始值。
进一步地,所述第三生成子模块具体用于使用第二共享密钥对验PIN签名数据进行加密得到密文数据作为第二计算结果。
进一步地,所述接收子模块还用于接收所述终端发送的设置安全环境操作指令、哈希操作指令、获取签名结果指令;
所述签名模块还包括:
第五判断子模块,用于当所述接收子模块接收到所述终端发送的设置安全环境操作指令时,判断所述设置安全环境操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发第六判断子模块,否则结束;
所述第六判断子模块,用于根据所述设置安全环境指令中的算法ID和密钥容器ID判断设置签名算法是否合法,是则触发打开设置子模块,否则结束;
所述打开设置子模块,用于根据所述密钥容器ID打开对应的密钥容器,根据所述算法ID设置对应的算法;
第七判断子模块,用于当所述接收子模块接收到所述终端发送的哈希操作指令时,判断所述哈希操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发解析保存子模块,否则结束;
所述解析保存子模块,用于对所述哈希操作指令进行解析得到待签名数据并保存;
哈希运算子模块,用于根据设置的算法对所述待签名数据进行哈希运算得到哈希值并保存;
所述提取判断子模块,用于在所述第一判断子模块判断为是时从保存的待签名数据中提取关键信息并判断是否提取成功,是则触发显示判断子模块,否则结束;
所述显示判断子模块,用于显示所述提取判断子模块提取的关键信息并判断是否接收到用户确认信息,是则触发所述签名子模块,否则结束;
所述签名子模块,具体用于使用与所述签名操作指令中的容器ID所对应的容器中的签名私钥对保存的哈希值进行签名得到签名结果并保存;
所述发送子模块还用于在所述打开设置子模块设置完对应算法之后给所述终端返回成功设置安全环境响应;还用于在哈希运算子模块运算完成之后给所述终端返回哈希计算成功响应;还用于当所述判断清除子模块判断为是时给所述终端返回签名成功信息,当所述判断清除子模块判断为否时给所述终端返回签名失败信息;还用于当所述接收子模块接收到终端发送的获取签名结果指令时,将所述签名保存子模块保存的签名结果返回给终端。
进一步地,所述所述第六判断子模块具体用于根据所述密钥容器ID判断对应的密钥容器是否存在且根据所述算法ID判断是否支持对应的算法,如判断均为是则触发打开设置子模块,否则结束。
进一步地,所述发送子模块还用于在所述哈希运算子模块运算完成之后给所述终端返回所述哈希值。
进一步地,所述第三生成子模块还用于将验PIN签名标识设为有效;
所述第一判断子模块还用于判断所述验PIN签名标识是否有效;
所述第五判断子模块还用于判断所述验PIN签名标识是否有效;
所述第七判断子模块还用于判断所述验PIN签名标识是否有效;
所述判断清除子模块还用于判断当前状态满足预设条件时将所述验PIN签名标识设为无效。
进一步地,所述第三生成子模块还用于将验PIN签名标识设为有效,具体为:所述第三生成子模块还用于将验PIN签名标识置位;
所述第一判断子模块还用于判断所述验PIN签名标识是否有效,具体为:所述第一判断子模块还用于判断所述验PIN签名标识是否置位;
所述第五判断子模块还用于判断所述验PIN签名标识是否有效,具体为:所述第五判断子模块还用于判断所述验PIN签名标识是否置位;
所述第七判断子模块还用于判断所述验PIN签名标识是否有效,具体为:所述第七判断子模块还用于判断所述验PIN签名标识是否置位;
所述判断清除子模块还用于判断当前状态满足预设条件时将所述验PIN签名标识设为无效,具体为:所述判断清除子模块还用于判断当前状态满足预设条件时将所述验PIN签名标识复位。
进一步地,所述第三生成子模块还用于将签名次数设为初始值;
所述判断清除子模块,具体用于更新所述签名次数,并判断所述签名次数是否等于预设值,是则清除保存的所述验PIN签名数据。
进一步地,所述第三生成子模块还用于设置签名有效时间;
所述判断清除子模块,具体用于判断当前时间是否在签名有效时间内,是则清除保存的所述验PIN签名数据。
进一步地,所述接收子模块还用于接收设置PIN码指令;
所述签名模块还包括:
第八判断子模块,用于当所述接收子模块接收到设置PIN码指令时,判断PIN码是否已设置,是则报错,否则触发第二验证子模块;
所述第二验证子模块,用于对所述设置PIN码指令进行验证,如验证成功则根据所述设置PIN码指令中的第一密文生成PIN码并保存,如验证失败则结束。
进一步地,所述第二验证子模块具体包括:
计算哈希单元,用于将保存的签名模块私钥与所述设置PIN码指令中的终端公钥进行计算得到第一计算值,对第一计算值进行哈希运算,将哈希结果作为第二共享密钥;
第一运算提取单元,用于使用所述第二共享密钥、对所述设置PIN码指令中的第一密文进行HMAC运算得到第二运算结果,并提取第二运算结果中的前16个字节数据得到提取数据;
第一判断单元,用于判断所述提取数据是否与所述设置PIN码指令中的第一结果数据一致,是则触发生成保存单元,否则结束;
所述生成保存单元,用于根据所述设置PIN码指令中的第一密文生成PIN码并保存。
进一步地,所述第二验证子模块还包括:
第一解析判断单元,用于对接收到的所述设置PIN码指令进行解析,并判断是否解析成功,是则触发所述计算哈希单元,否则报错。
进一步地,所述所述生成保存单元具体包括:
解密去除子单元,用于使用所述第二共享密钥对所述设置PIN码指令中的第一密文进行解密得到第一解密值,去除所述第一解密值中的填充数据得到密码中间值;
第一判断子单元,用于判断所述密码中间值是否小于第一预设值,是则报错,否则触发哈希提取子单元;
所述哈希提取子单元,用于对所述密码中间值进行哈希运算得到哈希结果,提取哈希结果中的前16个字节数据并保存为PIN码。
进一步地,所述接收子模块还用于接收修改PIN码指令;
所述签名模块还包括:
第三验证子模块,用于当所述接收子模块接收到修改PIN码指令时,对所述修改PIN码指令进行验证,如验证成功则触发替换保存子模块,如验证失败则报错;
所述替换保存子模块,用于用所述修改PIN码指令中的PIN码替换保存的PIN码。
进一步地,所述第三验证子模块具体包括:
计算拼接单元,用于对保存的签名模块私钥与所述修改PIN码指令中的终端公钥进行计算得到第一结果数据,对第一结果数据进行哈希运算得到第二共享密钥;将所述修改PIN码指令中的第一加密值和所述修改PIN码指令中的第二加密值进行拼接得到第二拼接结果;
第二运算提取单元,用于使用第二共享密钥、对第二拼接结果进行HMAC运算得到第二运算结果,并从第二运算结果中提取前16个字节数据得到提取数据;
第二判断单元,用于判断所述修改PIN码指令中的中间数据与所述提取数据是否一致,是则触发第一解密单元,否则报错;
所述第一解密单元,用于使用所述第二共享密钥对所述第一加密值进行解密得到第一解密值;
第三判断单元,用于判断所述第一解密值与内部保存的PIN码是否一致,是则触发替换保存子模块,否则报错,重新生成签名模块密钥对并替换保存的签名模块密钥对。
进一步地,所述替换保存子模块具体包括:
解密去除单元,用于使用所述第二共享密钥对所述第二加密值进行解密得到第二解密值,去除所述第二解密值中的填充数据得到第一中间值;
第四判断单元,用于判断第一中间值的长度是否小于第一预设值,是则触发哈希替换单元,否则报错;
所述哈希替换单元,用于对所述第一中间值进行哈希运算得到哈希结果,提取所述哈希结果的前16个字节数据并替换所述内部保存的PIN码。
进一步地,所述所述第三验证子模块还包括:
第二解析判断单元,用于解析接收到的修改PIN码指令,并判断是否解析成功,是则触发所述计算拼接单元,否则报错。
进一步地,所述哈希提取子单元还用于将PIN码重试次数设为初始值;
所述哈希替换单元还用于将所述PIN码重试次数改为初始值;
所述第三验证子模块还包括:
第五判断单元,用于判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发所述计算拼接单元;
第一更新判断单元,用于当第三判断单元判断为否时,更新所述PIN码重试次数;判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第六判断单元;
所述第六判断单元,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
进一步地,所述接收子模块还用于接收获取验PIN签名数据指令;
所述签名模块还包括:
第四验证子模块,用于当所述接收子模块接收到获取验PIN签名数据指令时,对所述获取验PIN签名数据指令进行验证,如验证成功则触发第四生成子模块,如验证失败则结束;
所述第四生成子模块,用于生成验PIN签名数据;
所述发送子模块,还用于将所述第四验证子模块生成的验PIN签名数据发送给所述终端。
进一步地,所述第四验证子模块具体包括:
计算哈希单元,用于将所述获取验PIN签名数据指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
解密提取单元,用于使用第二共享密钥、对所述获取验PIN签名数据指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码,将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据得到提取数据;
第七判断单元,用于判断所述第二结果数据是否与提取数据相同,是则验证成功,触发第四生成子模块,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。
进一步地,所述第四生成子模块具体用于生成第一随机数作为验PIN签名数据,使用所述第二共享密钥对验PIN签名数据进行加密得到密文数据;
所述发送子模块,还用于将所述第四验证子模块生成的验PIN签名数据发送给所述终端,具体为:所述发送子模块,还用于将所述第四验证子模块生成的密文数据返回给终端。
进一步地,所述第四验证子模块还包括:
第三解析判断单元,用于解析接收到的获取验PIN签名数据指令,并判断是否解析成功,是则触发计算哈希单元,否则报错。
进一步地,所述哈希提取子单元还用于将PIN码重试次数设为初始值;
所述第七判断单元判断为是时还用于将所述PIN码重试次数改为初始值;
所述第四验证子模块还包括:
第八判断单元,还用于判断所述PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则触发所述计算哈希单元;
第二更新判断单元,用于当第七判断单元判断为否时,更新PIN码重试次数;判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第九判断单元;
所述第九判断单元,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
进一步地,所述接收子模块还用于接收终端发送的协商共享密钥指令;
所述签名模块还包括:
第五生成子模块,用于当所述接收子模块接收到协商共享密钥指令时,生成签名模块密钥对并保存;
所述发送子模块还用于将所述签名模块密钥对中的签名模块公钥返回给所述终端。
进一步地,所述签名模块为硬件设备或计算机程序或硬件设备与计算机程序的组合。
本发明与现有技术相比,具有以下优点:
在本发明技术方案通过验PIN签名数据将验PIN码操作与签名操作进行关联,保证签名安全性;且验PIN操作失败后更新签名模块密钥对使得下次验PIN操作与本次验PIN操作的共享第二密钥不同,进一步提高签名安全性。
附图说明
图1为本发明实施例一提供的一种安全签名的实现方法流程图;
图2为本发明实施例二提供的一种设置PIN码的方法流程图;
图3为本发明实施例三提供的一种修改PIN码的方法流程图;
图4为本发明实施例四提供的一种获取验PIN签名数据的方法流程图;
图5为本发明实施例五提供的一种安全签名的实现方法流程图;
图6和图7为本发明实施例六提供的一种安全签名的实现方法流程图;
图8为本发明实施例七提供的一种安全签名的实现装置方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明具体实施例方式中的签名模块可以为为硬件设备或计算机程序或硬件设备与计算机程序的组合,只要是能实现的该技术方案的软件、硬件均包括在内。
实施例一
本发明实施例一提供一种安全签名的实现方法,如图1所示,包括:
步骤S0:签名模块等待接收终端发送的指令;
步骤F1:当签名模块接收到终端发送的验PIN指令时,根据验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,并使用第二共享密钥对验PIN指令中的第一计算结果进行验证,如验证成功则执行步骤F2;如验证失败则重新生成签名模块密钥对并替换保存的签名模块密钥对,返回步骤S0;签名模块密钥对包括签名模块私钥和签名模块公钥;
可选的,在本实施例中,根据第二共享密钥对验PIN指令中的第一计算结果进行验证之前包括:签名模块解析接收到的验PIN指令,并判断是否解析成功,是则继续,否则报错。
具体的,在本实施例中,使用第二共享密钥对验PIN指令中的第一计算结果进行验证,包括:
签名模块使用生成的第二共享密钥对验PIN指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码转换成第二字节流数据,对第二字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据,判断提取数据是否与第二结果数据一致,是则验证成功,否则验证失败。
具体的,在本实施例中,根据验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,包括:签名模块将验PIN指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥。
具体的,在本实施例中,根据第二共享密钥和验PIN签名数据生成第二计算结果,并将第二计算结果发送给终端包括:使用第二共享密钥对验PIN签名数据进行加密得到密文数据,并将密文数据发送给终端。
步骤F2:签名模块生成验PIN签名数据并保存,根据第二共享密钥和验PIN签名数据生成第二计算结果,并将第二计算结果发送给终端,返回步骤S0;
步骤H1:当签名模块接收到终端发送的签名操作指令时,判断签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤H2,否则报错,返回步骤S0;
在本实施例中,步骤H1中的判断签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致之前,还包括:签名模块解析接收到的签名操作指令,并判断是否解析成功,是则继续,否则报错;
步骤H2:签名模块使用保存的签名私钥对签名操作指令中的待签名中间数据进行签名;
步骤H3:签名模块判断当前状态是否满足预设条件,是则清除保存的验PIN签名数据,并将签名结果返回给终端,返回步骤S0,否则将签名结果返回给终端,返回步骤S0。
可选的,在本实施例中,根据生成的第二共享密钥对验PIN指令中的第一计算结果进行验证之前包括:签名模块判断PIN码重试次数是否为预定数据,是则报错,提示PIN码锁定;否则继续;
步骤F1中验证失败时还包括:
步骤C1:签名模块更新PIN码重试次数;
步骤C2:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤C3;
步骤C3:签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;
步骤F2还包括:将PIN码重试次数改为初始值。
在本实施例中,签名操作既可以为普通签名也可以为复核签名,如为复核签名,则上述步骤H1和H2替换为:
步骤P1:当签名模块接收到终端发送的设置安全环境操作指令时,判断设置安全环境操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤P2,否则结束;
步骤P2:签名模块根据设置安全环境指令中的算法ID和密钥容器ID判断设置签名算法是否合法,是则执行步骤P3,否则结束;
具体的,在本实施例中,步骤P2包括:
步骤P21:签名模块根据密钥容器ID判断对应的密钥容器是否存在,是则执行步骤P22,否则结束;
步骤P22:签名模块根据算法ID判断是否支持对应的算法,是则执行步骤P3,否则结束。
步骤P3:签名模块根据密钥容器ID打开对应的密钥容器,根据算法ID设置对应的算法,并给终端返回成功设置安全环境响应;
本实施例中的步骤T3还包括:签名模块给终端返回哈希值。
步骤T1:当签名模块接收到终端发送的哈希操作指令时,判断哈希操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤T2,否则结束;
步骤T2:签名模块对哈希操作指令进行解析得到待签名数据并保存;
步骤T3:签名模块根据设置的算法对待签名数据进行哈希运算得到哈希值并保存,给终端返回哈希计算成功响应;
步骤Q1:当签名模块接收到终端发送的签名操作指令时,判断签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤Q2,否则结束;
步骤Q2:签名模块从保存的待签名数据中提取关键信息并判断是否提取成功,是则执行步骤Q3,否则结束;
步骤Q3:签名模块显示关键信息并判断是否接收到用户确认信息,是则签名模块使用与签名操作指令中的容器ID所对应的容器中的签名私钥对保存的哈希值进行签名得到签名结果并保存,否则结束;
步骤Q4:签名模块判断当前状态是否满足预设条件,是则清除保存的验PIN签名数据,并给终端返回签名成功信息,否则给终端返回签名失败信息;
步骤L1:当签名模块接收到终端发送的获取签名结果指令时,将签名结果返回给终端。
在本实施例的方法中,步骤F2还包括:将验PIN签名标识设为有效;
步骤H1、步骤P1、步骤T1、步骤Q1中还包括:签名模块判断验PIN签名标识是否有效,是则继续,否则报错;
步骤H3中判断为是时还包括:将验PIN签名标识设为无效。
优选的,将验PIN签名标识设为有效,具体为:将验PIN签名标识置位;判断验PIN签名标识是否有效,具体为:判断验PIN签名标识是否置位;将验PIN签名标识设为无效,具体为:将验PIN签名标识复位。
本实施例的方法适合一次验PIN一次签名、一次验PIN多次签名、一次验PIN后在签名有效时间内进行签名;
可选的,在本实施例中步骤F2还包括:将签名次数设为初始值;签名模块判断当前状态是否满足预设条件,包括:更新签名次数,并判断签名次数是否等于预设值,是则满足预设条件,否则不满足预设条件。
例如一次验PIN多次签名,则签名次数设为初始值0或N(N为非1正整数),更新签名次数为自加1或自减1,预设值为N(N为非1正整数)或0;
例如一次验PIN一次签名,则签名次数设为初始值N(N为非1正整数)或N+1,更新签名次数为自加1或自减1,预设值为N+1(N为非1正整数)或N;
如为一次验PIN后在签名有效时间内进行签名,步骤F2还包括:设置签名有效时间;签名模块判断当前状态是否满足预设条件,包括:判断当前时间是否在签名有效时间内,是则报错,否则清除验PIN签名数据。
本实施例的方法还包括:当签名模块接收到设置PIN码指令时,签名模块判断PIN码是否已设置,是则报错,否则对设置PIN码指令进行验证,如验证成功则根据设置PIN码指令中的第一密文生成PIN码并保存,如验证失败则结束。
具体的,签名模块对设置PIN码指令进行验证,包括:
步骤M1:签名模块将保存的签名模块私钥与设置PIN码指令中的终端公钥进行计算得到第一计算值,对第一计算值进行哈希运算,将哈希结果作为第二共享密钥;
可选的,在步骤M1之前还包括:
签名模块对接收到的设置PIN码指令进行解析,并判断是否解析成功,是则执行步骤M1,否则报错。
步骤M2:签名模块使用第二共享密钥、对设置PIN码指令中的第一密文进行HMAC运算得到第二运算结果,并提取第二运算结果中的前16个字节数据得到提取数据;
步骤M3:签名模块判断提取数据是否与设置PIN码指令中的第一结果数据一致,是则验证成功,否则验证失败。
具体的,在本实施例中,根据设置PIN码指令中的第一密文生成PIN码并保存,包括:
步骤N1:签名模块使用第二共享密钥对设置PIN码指令中的第一密文进行解密得到第一解密值,去除第一解密值中的填充数据得到密码中间值;
步骤N2:签名模块判断密码中间值是否小于第一预设值,是则报错,否则执行步骤N3;
步骤N3:签名模块对密码中间值进行哈希运算得到哈希结果,提取哈希结果中的前16个字节数据并保存为PIN码。
具体的,本实施例方法还包括:
当签名模块接收到修改PIN码指令时,对修改PIN码指令进行验证,如验证成功则用修改PIN码指令中的PIN码替换保存的PIN码,如验证失败则报错。
具体的,在本实施例中,对修改PIN码指令进行验证,包括:
步骤W1:签名模块对保存的签名模块私钥与修改PIN码指令中的终端公钥进行计算得到第一结果数据,对第一结果数据进行哈希运算得到第二共享密钥;将修改PIN码指令中的第一加密值和修改PIN码指令中的第二加密值进行拼接得到第二拼接结果;
可选的,步骤W1之前还包括:
签名模块解析接收到的修改PIN码指令,并判断是否解析成功,是则执行步骤W1,否则报错。
步骤W2:签名模块使用第二共享密钥、对第二拼接结果进行HMAC运算得到第二运算结果,并从第二运算结果中提取前16个字节数据得到提取数据;
步骤W3:签名模块判断修改PIN码指令中的中间数据与提取数据是否一致,是则执行步骤W4,否则报错;
步骤W4:签名模块使用第二共享密钥对第一加密值进行解密得到第一解密值;
步骤W5:签名模块判断第一解密值与内部保存的PIN码是否一致,是则验证成功,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。
具体的,在本实施例中,用修改PIN码指令中的PIN码替换保存的PIN码,包括:
步骤K1:签名模块使用第二共享密钥对第二加密值进行解密得到第二解密值,去除第二解密值中的填充数据得到第一中间值;
步骤K2:签名模块判断第一中间值的长度是否小于第一预设值,是则执行步骤K3,否则报错;
步骤K3:签名模块对第一中间值进行哈希运算得到哈希结果,提取哈希结果的前16个字节数据并替换内部保存的PIN码。
在本实施例中,步骤N3还包括:签名模块将PIN码重试次数设为初始值;
步骤K3还包括:签名模块将PIN码重试次数改为初始值;
步骤W1之前还包括:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤W1;
步骤W5中验证失败之后还包括:
步骤W6:签名模块更新PIN码重试次数;
步骤W7:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤W8;
步骤W8:签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
可选的,本实施例的方法还包括:
当签名模块接收到获取验PIN签名数据指令时,对获取验PIN签名数据指令进行验证,如验证成功则生成验PIN签名数据并发送给终端,如验证失败则结束。
具体的,对获取验PIN签名数据指令进行验证,包括:
步骤R1:签名模块将获取验PIN签名数据指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
可选的,步骤R1之前还包括:步骤R0:签名模块解析接收到的获取验PIN签名数据指令,并判断是否解析成功,是则执行步骤R1,否则报错。
步骤R2:签名模块使用第二共享密钥、对获取验PIN签名数据指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码,将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据得到提取数据;
步骤R3:签名模块判断第二结果数据是否与提取数据相同,是则验证成功,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。
具体的,生成验PIN签名数据并发送给终端,包括:生成第一随机数作为验PIN签名数据,使用第二共享密钥对验PIN签名数据进行加密得到密文数据,并将密文数据返回给终端。
可选的,在本实施例中,步骤N3还包括:签名模块将PIN码重试次数设为初始值;
步骤R3验证成功时还包括:签名模块将PIN码重试次数改为初始值;
步骤R1之前还包括:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则执行步骤R1;
步骤R3判断为否还包括:
步骤R4:签名模块更新PIN码重试次数;
步骤R5:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤R6;
步骤R6:签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
本实施例的方法还包括:
当证器接收到协商共享密钥指令时,生成签名模块密钥对并保存,将签名模块密钥对中的签名模块公钥返回给终端。
实施例二
本发明实施例二提供一种设置PIN码的方法,如图2所示,包括:
步骤201:终端提示用户输入PIN码;
步骤202:当终端接收到用户输入的PIN码时,判断PIN码的字符长度是否小于第一预设值,是则报错,否则执行步骤203;
例如,在本实施例中,第一预设值为4;
步骤203:终端将PIN码转换成字节流数据,并判断字节流数据是否小于第二预设值,是则执行步骤204,否则报错;
例如,在本实施例中,第二预设值为255;
步骤204:终端生成第一共享密钥;对字节流数据进行填充;
具体的,在本实施例中,步骤204中的终端生成第一共享密钥包括:
步骤A1:终端给签名模块发送获取共享密钥指令;
步骤A2:当签名模块接收到协商共享密钥指令时,生成签名模块密钥对并保存,将签名模块密钥对中的签名模块公钥返回给终端;
步骤A3:终端接收签名模块返回的签名模块公钥,生成终端密钥对,并将终端密钥对中的私钥与签名模块公钥进行计算得到第一数据,对第一数据进行哈希运算得到哈希值作为第一共享密钥;
具体的,在本实施例中,对字节流数据进行填充包括:终端判断字节流数据的长度是否为64的倍数,是则执行步骤205,否则用0x00对字节流数据进行填充,直至字节流数据的长度为64的倍数,执行步骤205;
步骤205:终端使用第一共享密钥对填充后的字节流数据进行加密得到第一密文;
步骤206:终端使用第一共享密钥、对第一密文进行HMAC运算得到第一运算结果,将第一运算结果的前16字节数据作为第一结果数据;
步骤207:终端将包含终端公钥、第一密文和第一结果数据的验PIN指令发送给签名模块;
步骤208:签名模块判断是否接收到终端发送的数据,是则执行步骤209,否则报错;
步骤209:签名模块判断PIN码是否已设置,是则报错,否则执行步骤210;
步骤210:签名模块对接收到的验PIN指令进行解析,并判断是否解析成功,是则执行步骤211,否则报错;
步骤211:签名模块将签名模块私钥与终端公钥进行计算得到第一计算值,对第一计算值进行哈希运算,将哈希结果作为第二共享密钥;
步骤212:签名模块使用第二共享密钥、对解析得到的第一密文进行HMAC运算得到第二结果数据,并提取第二结果数据中的前16个字节数据得到提取数据;
步骤213:签名模块判断提取数据是否与解析得到的第一结果数据一致,是则执行步骤214,否则报错;
步骤214:签名模块使用第二共享密钥对解析得到的第一密文进行解密得到第一解密值,去除第一解密值中的填充数据得到密码中间值;
步骤215:签名模块判断密码中间值是否小于第一预设值,是则报错,否则执行步骤216;
步骤216:签名模块对密码中间值进行哈希运算得到哈希结果,提取哈希结果中的前16个字节数据并保存为PIN码,将PIN码重试次数设为初始值;
例如,本实施例中的预定数据为8。
实施例三
本发明实施例三提供一种修改PIN码的方法,如图3所示,包括:
步骤301:终端提示用户输入当前PIN码,当接收到当前PIN码时提示用户输入新PIN码;
步骤302:当终端接收到新PIN码后,判断新PIN码的字符长度是否小于第一预设值,是则报错,否则执行步骤303;
例如,在本实施例中,第一预设值为4;
步骤303:终端分别将当前PIN码和新PIN码转换成字节流数据得到第一字节流数据和第二字节流数据;
步骤304:终端判断第一字节流数据和第二字节流数据的长度是否均小于第二预设长度,是则执行步骤305,否则报错;
例如,在本实施例中,第二预设值为255;
步骤305:终端生成第一共享密钥,对第一字节流数据进行哈希运算,并提取运算结果中的前16个字节数据得到第一中间数据;使用第一共享密钥对第一中间数据进行加密运算得到第一加密值;
具体的,本实施例中步骤305的实现过程与步骤204相同,在此不再赘述;
步骤306:终端对第二字节流数据进行填充,使用第一共享密钥对填充后的第二字节流数据进行加密得到第二加密值;
具体的,在本实施例中,终端判断第二字节流数据的长度是否为64的倍数,如不为64的倍数则用0x00对第二字节流数据进行填充,直至第二字节流数据的长度为64的倍数;
步骤307:终端将第二加密值和第一加密值进行拼接得到拼接值,使用第一共享密钥、对拼接值进行HMAC运算得到第一运算结果,并从第一运算结果中提取前16个字节数据得到中间数据;
步骤308:终端将包括终端公钥、第一加密值、第二加密值和中间数据的修改PIN指令发送给签名模块;
步骤309:签名模块判断是否接收到终端发送的数据,是则执行步骤310,否则报错;
步骤310:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤311;
步骤311:签名模块解析接收到的修改PIN指令,并判断是否解析成功,是则执行步骤312,否则报错;
步骤312:签名模块将签名模块私钥与解析得到的终端公钥进行计算得到第一计算结果,对第一计算结果进行哈希运算得到第二共享密钥;将解析得到第一加密值和第二加密值进行拼接得到第二拼接结果;
步骤313:签名模块使用第二共享密钥、对第二拼接结果进行HMAC运算得到第二运算结果,并从第二运算结果中提取前16个字节数据得到提取数据;
步骤314:签名模块判断解析得到的中间数据与提取数据是否一致,是则执行步骤315,否则报错;
步骤315:签名模块使用第二共享密钥,对第一加密值进行解密得到第一解密值;
步骤316:签名模块判断第一解密值与内部保存的PIN码是否一致,是则执行步骤317,否则执行步骤320;
步骤317:签名模块使用第二共享密钥对解析得到的第二加密值进行解密得到第二解密值,去除第二解密值中的填充数据得到第一中间值;
步骤318:签名模块判断第一中间值的长度是否小于第一预设值,是则执行步骤319,否则报错;
步骤319:签名模块对第一中间值进行哈希运算,提取哈希结果的前16个字节数据并替换保存的PIN码,将PIN码重试次数改为初始值;
步骤320:签名模块重新生成签名模块密钥对并替换保存的签名模块密钥对,更新PIN码重试次数;
在本实施例中,如PIN码重试次数初始值为0,则更新PIN码重试次数具体为:PIN码重试次数自加1;如PIN码重试次数初始值为正整数,则更新PIN码重试次数具体为:PIN码重试次数自减1;
步骤321:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤322;
在本实施例中,如PIN码重试次数初始值为0,则预定数据为正整数;如PIN码重试次数初始值为正整数,则预定数据为0;
步骤322:签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
实施例四
本发明实施例四提供一种获取验PIN签名数据的方法,如图4所示,包括:
步骤401:终端提示用户输入PIN码;
步骤402:当终端接收到用户输入的PIN码时,判断PIN码的字符长度是否小于第一预设值,是则报错,否则执行步骤403;
例如,在本实施例中,第一预设值为4;
步骤403:终端将PIN码转换成字节流数据,并判断字节流数据是否小于第二预设值,是则执行步骤404,否则报错;
例如,在本实施例中,第二预设值为255;
步骤404:终端生成第一共享密钥,对字节流数据进行哈希运算并提取运算结果中的前16字节数据作为第一中间数据,使用第一共享密钥对第一中间数据进行加密运算得到第一结果数据;
本实施例中的终端密钥对包括终端公钥和终端私钥;生成第一共享密钥的过程与步骤204相同,在此不再赘述;
步骤405:终端将包括终端公钥和第一结果数据的获取验PIN签名数据指令发送给签名模块;
步骤406:签名模块判断是否接收到终端发送的数据,是则执行步骤407,否则报错;
步骤407:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则执行步骤408;
步骤408:签名模块解析接收到的获取验PIN签名数据指令,并判断是否解析成功,是则执行步骤409,否则报错;
步骤409:签名模块将解析得到的终端公钥与签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
步骤410:签名模块使用第二共享密钥、对解析得到的第一结果数据进行解密运算得到第二运算结果,获取内部保存的PIN码,将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据得到提取数据;
步骤411:签名模块判断第二运算结果是否与提取数据相同,是则执行步骤412,否则执行步骤413;
步骤412:签名模块生成第一随机数作为验PIN签名数据,使用第二共享密钥对验PIN签名数据进行加密得到密文数据,并将密文数据返回给终端,将PIN码重试次数改为初始值;
优选的,本实施例中的第一随机数的长度为16字节;
步骤413:签名模块重新生成签名模块密钥对并替换保存的签名模块密钥对,更新PIN码重试次数;
步骤414:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤415;
在本实施例中,如PIN码重试次数初始值为0,则预定数据为正整数;如PIN码重试次数初始值为正整数,则预定数据为0;
步骤415:签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
实施例五
本发明实施例五提供了一种安全签名的实现方法流程图,如图5所示,包括:
步骤501:终端提示用户输入PIN码;
步骤502:当终端接收到用户输入的PIN码时,判断PIN码的字符长度是否小于第一预设值,是则报错,否则执行步骤503;
例如,在本实施例中,第一预设值为4;
步骤503:终端将PIN码转换成字节流数据,并判断字节流数据是否小于第二预设值,是则执行步骤504,否则报错;
例如,在本实施例中,第二预设值为255;
步骤504:终端生成第一共享密钥,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为第一中间数据,使用第一共享密钥对第一中间数据进行加密运算得到第一结果数据;
本实施例中的终端密钥对包括终端公钥和终端私钥;
具体的,在本实施例中,步骤504中的终端生成第一共享密钥包括:
步骤A1:终端给签名模块发送获取共享密钥指令;
步骤A2:当签名模块接收到共享密钥指令时,将保存的签名模块密钥对中的签名模块公钥返回给终端;
步骤A3:终端接收签名模块返回的签名模块公钥,生成终端密钥对,并将终端密钥对中的私钥与签名模块公钥进行计算得到第一数据,对第一数据进行哈希运算得到哈希值作为第一共享密钥;
步骤505:终端将包括终端公钥和第一结果数据的验PIN指令发送给签名模块;
步骤506:签名模块判断是否接收到终端发送的数据,是则执行步骤507,否则报错;
步骤507:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则执行步骤508;
步骤508:签名模块解析接收到的验PIN指令,并判断是否解析成功,是则执行步骤509,否则报错;
步骤509:签名模块将解析得到的终端公钥与签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
步骤510:签名模块使用第二共享密钥对解析得到的第一结果数据进行解密运算得到第二结果数据,签名模块获取内部保存的PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据;
步骤511:签名模块判断提取数据是否与第二结果数据一致,是则执行步骤512,否则执行步骤513;
步骤512:签名模块置位验PIN签名标识,生成第一随机数作为验PIN签名数据并保存,使用第二共享密钥对验PIN签名数据进行加密得到密文数据,并将密文数据返回给终端,将PIN码重试次数改为初始值,执行步骤516;
在本实施例中,验PIN签名标识初始状态为0;
优选的,本实施例中的第一随机数的长度为16字节;
步骤513:签名模块重新生成签名模块密钥对并替换保存的签名模块密钥对,更新PIN码重试次数;
在本实施例中,替换后的签名模块密钥在下一次进行签名时进行使用;
步骤514:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤515;
在本实施例中,如PIN码重试次数初始值为0,则预定数据为正整数;如PIN码重试次数初始值为正整数,则预定数据为0;
步骤515:签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;
步骤516:终端对待签名数据进行哈希运算得到第一哈希值,使用第一共享密钥对接收到的密文数据进行解密得到验PIN签名数据;使用验PIN签名数据作为密钥、对第一哈希值进行HMAC操作得到第一中间值,提取第一中间值的前16个字节数据得到待签名中间数据;
步骤517:终端将包含待签名中间数据和验PIN签名数据的签名操作指令发送给签名模块;
步骤518:签名模块判断验PIN签名标识是否置位且判断签名操作指令中的验PIN签名数据和保存的验PIN签名数据是否一致,是则执行步骤519,否则报错;
步骤519:签名模块使用签名私钥对签名操作指令中的待签名中间数据进行签名得到签名结果并返回给终端,将验PIN签名标识复位,清除保存的验PIN签名数据;
本实施例为一次验PIN一次签名的实现过程,还可有其他方式,如一次验PIN多次签名,一次验PIN后在签名有效时间内进行签名等;
可选的,一次验PIN多次签名方式实现,则在步骤512中还包括:将签名次数设为初始值,在步骤519中的将验PIN签名标识复位之前还包括:更新签名次数,并判断所述签名次数是否等于预设值,是则将验PIN签名标识复位,清除保存的验PIN签名数据,否则报错;
可选的,一次验PIN后在签名有效时间内进行签名,则在步骤512中还包括:设置签名有效时间,在步骤519中的将验PIN签名标识复位之前还包括:判断当前时间是否在签名有效时间内,是则报错,否则将验PIN签名标识复位,清除保存的验PIN签名数据。
实施例六
本发明实施例六提供了一种安全签名的实现方法,如图6和图7所示,包括:
步骤601:终端提示用户输入PIN码;
步骤602:当终端接收到用户输入的PIN码时,判断PIN码的字符长度是否小于第一预设值,是则报错,否则执行步骤603;
例如,在本实施例中,第一预设值为4;
步骤603:终端将PIN码转换成字节流数据,并判断字节流数据是否小于第二预设值,是则执行步骤604,否则报错;
例如,在本实施例中,第二预设值为255;
步骤604:终端生成第一共享密钥,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为第一中间数据,使用第一共享密钥对第一中间数据进行加密运算得到第一结果数据;
本实施例中的终端密钥对包括终端公钥和终端私钥;生成第一共享密钥的过程与步骤204相同,在此不再赘述;
步骤605:终端将包括终端公钥和第一结果数据的验PIN指令发送给签名模块;
步骤606:签名模块判断是否接收到终端发送的验PIN指令,是则执行步骤607,否则报错;
步骤607:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则执行步骤608;
步骤608:签名模块解析接收到的验PIN指令,并判断是否解析成功,是则执行步骤609,否则报错;
步骤609:签名模块将解析得到的终端公钥与签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
步骤610:签名模块使用第二共享密钥对解析得到的第一中间数据进行解密运算得到第二结果数据,获取内部保存的PIN码并将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据;
步骤611:签名模块判断第二结果数据是否与提取数据相同,是则执行步骤615,否则执行步骤612;
步骤612:签名模块重新生成签名模块密钥对并替换保存的签名模块密钥对,更新PIN码重试次数;
步骤613:签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤614;
在本实施例中,如PIN码重试次数初始值为0,则预定数据为正整数;如PIN码重试次数初始值为正整数,则预定数据为0;
步骤614:签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;
步骤615:签名模块置位验PIN签名标识,生成第一随机数作为验PIN签名数据并保存,使用第二共享密钥对验PIN签名数据进行加密得到密文数据,并将密文数据返回给终端,将PIN码重试次数改为初始值,执行步骤616;
步骤616:终端使用第一共享密钥对接收到的密文数据进行解密得到验PIN签名数据,并将包含验PIN签名数据、算法ID、密钥容器ID的设置安全环境指令发送给签名模块;
步骤617:签名模块判断验PIN签名标识是否置位,是则执行步骤618,否则报错;
步骤618:签名模块判断设置安全环境指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤619,否则报错;
在本实施例中,步骤617与步骤618的顺序可调换;
步骤619:签名模块根据设置安全环境指令中的密钥容器ID判断对应的密钥容器是否存在,是则执行步骤620,否则报错;
步骤620:签名模块根据设置安全环境指令中的算法ID判断是否支持对应的算法,是则执行步骤621,否则报错;
步骤621:签名模块根据密钥容器ID打开对应的密钥容器,根据算法ID设置对应的算法,并给终端返回成功设置安全环境响应;
步骤622:终端将包含待签名数据、验PIN签名数据的哈希操作指令发送给签名模块;
步骤623:签名模块判断验PIN签名标识是否置位,是则执行步骤624,否则报错;
步骤624:签名模块判断哈希操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤625,否则报错;
步骤625:签名模块对哈希操作指令进行解析得到待签名数据并保存;
步骤626:签名模块根据设置的算法对待签名数据进行哈希运算得到哈希值并保存,将哈希值返回给终端;
可选的,本实施例中在步骤626中签名模块也可不发送哈希值而发送哈希计算成功信息;
步骤627:终端将包含验PIN签名数据的签名操作指令发送给签名模块;
优选的,在本实施例的步骤627之前还包括:终端接收到哈希值后,对待签名数据进行哈希计算,比较计算结果是否与接收到的哈希值一致,是则执行步骤627,否则报错;
步骤628:签名模块判断验PIN签名标识是否置位,是则执行步骤629,否则报错;
步骤629:签名模块判断签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤630,否则报错;
步骤630:签名模块从保存的待签名数据中提取关键信息并判断是否提取成功,是则执行步骤631,否则报错;
步骤631:签名模块显示关键信息判断是否接收到用户确认信息,是则签名模块使用对应容器中的签名私钥对保存的哈希值进行签名得到签名结果并保存,否则报错;
步骤632:签名模块判断当前状态是否满足预设条件,是则删除保存的验PIN签名数据,将验PIN签名标识复位,并给所述终端返回签名成功信息,否则给终端返回签名失败信息;
步骤633:当终端接收到签名成功信息时,发送获取签名结果指令给签名模块;
步骤634:签名模块将保存的签名结果返回给终端。
在本实施例中,步骤619与步骤620的顺序可调换、步骤617与步骤618的顺序可调换、步骤623与步骤624的顺序可调换、步骤628与步骤629的顺序可调换。
实施例七
本发明实施例七提供一种安全签名的实现装置,如图8所示,包括签名模块,签名模块:
接收子模块71,用于接收终端发送的验PIN指令和签名操作指令;
第一生成子模块72,用于当接收子模块71接收到验PIN码指令时,根据验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥;
在本实施例中,第一生成子模块72具体用于将验PIN指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
第一验证子模块73,用于使用第一生成子模块72生成的第二共享密钥对验PIN指令中的第一计算结果进行验证,如验证成功则触发第三生成子模块75;如验证失败则触发第二生成子模块74;
在本实施例中,第一验证子模块73具体用于使用生成的第二共享密钥对验PIN指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码转换成第二字节流数据,对第二字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据,判断提取数据是否与第二结果数据一致,是则验证成功,触发第三生成子模块;否则验证失败,触发第二生成子模块74;
第二生成子模块74,用于重新生成签名模块密钥对并替换保存的签名模块密钥对;签名模块密钥对包括签名模块私钥和签名模块公钥;
第三生成子模块75,用于生成验PIN签名数据并保存;根据第一生成子模块72生成的第二共享密钥和验PIN签名数据生成第二计算结果;
在本实施例中,第三生成子模块75具体用于使用第二共享密钥对验PIN签名数据进行加密得到密文数据作为第二计算结果;
第一判断子模块76,用于当接收子模块71接收到终端发送的签名操作指令时,判断签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发签名子模块77,否则报错;
签名子模块77,用于使用保存的签名私钥对签名操作指令中的待签名中间数据进行签名;
判断清除子模块78,用于判断当前状态是否满足预设条件,是则清除保存的验PIN签名数据;
发送子模块79,用于将第三生成子模块75生成的第二计算结果发送给终端,还用于在判断清除子模块78判断为是或否时将签名子模块77得到的签名结果发送给终端。
可选的,本实施例的签名模块还包括:
第一解析子模块,用于解析接收子模块71接收到的验PIN指令,并判断是否解析成功,是则触发第一验证子模块73,否则报错;
第二解析子模块,用于解析接收子模块71接收到的签名操作指令,并判断是否解析成功,是则触发第一判断子模块76,否则报错。
可选的,本实施例的签名模块还包括:
第二判断子模块,用于判断PIN码重试次数是否为预定数据,是则报错,提示PIN码锁定;否则触发第一验证子模块73;
例如,本实施例中的预定数据为0;
第一更新子模块,用于在第一验证子模块73验证失败后更新PIN码重试次数;
例如,更新PIN码重试次数具体为:PIN码重试次数自减1;
第三判断子模块,用于判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第四判断子模块;
第四判断子模块,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;
第一修改子模块,用于在第一验证子模块73验证成功后将PIN码重试次数改为初始值;
例如,本实施例中的初始值为8;
本实施例中的装置还可用于复核签名,则接收子模块71还用于接收终端发送的设置安全环境操作指令、哈希操作指令、获取签名结果指令;
相应的,签名模块还包括:
第五判断子模块,用于当接收子模块71接收到终端发送的设置安全环境操作指令时,判断设置安全环境操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发第六判断子模块,否则结束;
第六判断子模块,用于根据设置安全环境指令中的算法ID和密钥容器ID判断设置签名算法是否合法,是则触发打开设置子模块,否则结束;
在本实施例中,第六判断子模块具体用于根据密钥容器ID判断对应的密钥容器是否存在且根据算法ID判断是否支持对应的算法,如判断均为是则触发打开设置子模块,否则结束;
打开设置子模块,用于根据密钥容器ID打开对应的密钥容器,根据算法ID设置对应的算法;
第七判断子模块,用于当接收子模块71接收到终端发送的哈希操作指令时,判断哈希操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发解析保存子模块,否则结束;
解析保存子模块,用于对哈希操作指令进行解析得到待签名数据并保存;
哈希运算子模块,用于根据设置的算法对待签名数据进行哈希运算得到哈希值并保存;
提取判断子模块,用于在第一判断子模块76判断为是时从保存的待签名数据中提取关键信息并判断是否提取成功,是则触发显示判断子模块,否则结束;
显示判断子模块,用于显示提取判断子模块提取的关键信息并判断是否接收到用户确认信息,是则触发签名子模块77,否则结束;
签名子模块77,具体用于使用与签名操作指令中的容器ID所对应的容器中的签名私钥对保存的哈希值进行签名得到签名结果并保存;
发送子模块79还用于在打开设置子模块设置完对应算法之后给终端返回成功设置安全环境响应;还用于在哈希运算子模块运算完成之后给终端返回哈希计算成功响应;还用于当判断清除子模块78判断为是时给终端返回签名成功信息,当判断清除子模块判断为否时给终端返回签名失败信息;还用于当接收子模块71接收到终端发送的获取签名结果指令时,将签名保存子模块保存的签名结果返回给终端。
可选的,发送子模块79还用于在哈希运算子模块运算完成之后给终端返回哈希值。
在本实施例中,第三生成子模块75还用于将验PIN签名标识设为有效;具体为,将验PIN签名标识置位;
第一判断子模块76还用于判断验PIN签名标识是否有效;具体为:判断验PIN签名标识是否置位;
第五判断子模块还用于判断验PIN签名标识是否有效;具体为:判断验PIN签名标识是否置位;
第七判断子模块还用于判断验PIN签名标识是否有效;具体为:判断验PIN签名标识是否置位;
判断清除子模块78还用于判断当前状态满足预设条件时将验PIN签名标识设为无效;具体为,将验PIN签名标识复位。
如本实施例中的装置适用于一次验PIN多次签名,则第三生成子模块75还用于将签名次数设为初始值;
判断清除子模块78,具体用于更新签名次数,并判断签名次数是否等于预设值,是则清除保存的验PIN签名数据。
如本实施例中的装置适用于一次验PIN后在预设时间内进行签名,则第三生成子模块75还用于设置签名有效时间;
判断清除子模块78,具体用于判断当前时间是否在签名有效时间内,是则清除保存的验PIN签名数据。
在本实施例中,接收子模块71还用于接收设置PIN码指令;
相应的,签名模块还包括:
第八判断子模块,用于当接收子模块71接收到设置PIN码指令时,判断PIN码是否已设置,是则报错,否则触发第二验证子模块;
第二验证子模块,用于对设置PIN码指令进行验证,如验证成功则根据设置PIN码指令中的第一密文生成PIN码并保存,如验证失败则结束。
在本实施例中,第二验证子模块具体包括:
计算哈希单元,用于将保存的签名模块私钥与设置PIN码指令中的终端公钥进行计算得到第一计算值,对第一计算值进行哈希运算,将哈希结果作为第二共享密钥;
第一运算提取单元,用于使用第二共享密钥、对设置PIN码指令中的第一密文进行HMAC运算得到第二运算结果,并提取第二运算结果中的前16个字节数据得到提取数据;
第一判断单元,用于判断提取数据是否与设置PIN码指令中的第一结果数据一致,是则触发生成保存单元,否则结束;
生成保存单元,用于根据设置PIN码指令中的第一密文生成PIN码并保存。
具体的,本实施例中的生成保存单元具体包括:
解密去除子单元,用于使用第二共享密钥对设置PIN码指令中的第一密文进行解密得到第一解密值,去除第一解密值中的填充数据得到密码中间值;
第一判断子单元,用于判断密码中间值是否小于第一预设值,是则报错,否则触发哈希提取子单元;
哈希提取子单元,用于对密码中间值进行哈希运算得到哈希结果,提取哈希结果中的前16个字节数据并保存为PIN码;
可选的,第二验证子模块还包括:
第一解析判断单元,用于对接收到的设置PIN码指令进行解析,并判断是否解析成功,是则触发计算哈希单元,否则报错。
在本实施例中,接收子模块71还用于接收修改PIN码指令;
相应的,签名模块还包括:
第三验证子模块,用于当接收子模块71接收到修改PIN码指令时,对修改PIN码指令进行验证,如验证成功则触发替换保存子模块,如验证失败则报错;
具体的,本实施例中的第三验证子模块具体包括:
计算拼接单元,用于对保存的签名模块私钥与修改PIN码指令中的终端公钥进行计算得到第一结果数据,对第一结果数据进行哈希运算得到第二共享密钥;将修改PIN码指令中的第一加密值和修改PIN码指令中的第二加密值进行拼接得到第二拼接结果;
第二运算提取单元,用于使用第二共享密钥、对第二拼接结果进行HMAC运算得到第二运算结果,并从第二运算结果中提取前16个字节数据得到提取数据;
第二判断单元,用于判断修改PIN码指令中的中间数据与提取数据是否一致,是则触发第一解密单元,否则报错;
第一解密单元,用于使用第二共享密钥对第一加密值进行解密得到第一解密值;
第三判断单元,用于判断第一解密值与内部保存的PIN码是否一致,是则触发替换保存子模块,否则报错,重新生成签名模块密钥对并替换保存的签名模块密钥对;
替换保存子模块,用于用修改PIN码指令中的PIN码替换保存的PIN码。
具体的,本实施例中的替换保存子模块具体包括:
解密去除单元,用于使用第二共享密钥对第二加密值进行解密得到第二解密值,去除第二解密值中的填充数据得到第一中间值;
第四判断单元,用于判断第一中间值的长度是否小于第一预设值,是则触发哈希替换单元,否则报错;
哈希替换单元,用于对第一中间值进行哈希运算得到哈希结果,提取哈希结果的前16个字节数据并替换内部保存的PIN码。
可选的,第三验证子模块还包括:
第二解析判断单元,用于解析接收到的修改PIN码指令,并判断是否解析成功,是则触发计算拼接单元,否则报错。
优选的,哈希提取子单元还用于将PIN码重试次数设为初始值;
哈希替换单元还用于将PIN码重试次数改为初始值;
第三验证子模块还包括:
第五判断单元,用于判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发计算拼接单元;
第一更新判断单元,用于当第三判断单元判断为否时,更新PIN码重试次数;判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第六判断单元;
第六判断单元,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
在本实施例中,接收子模块71还用于接收获取验PIN签名数据指令;
相应的,签名模块还包括:
第四验证子模块,用于当接收子模块71接收到获取验PIN签名数据指令时,对获取验PIN签名数据指令进行验证,如验证成功则触发第四生成子模块,如验证失败则结束;
具体的,第四验证子模块具体包括:
计算哈希单元,用于将获取验PIN签名数据指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
解密提取单元,用于使用第二共享密钥、对获取验PIN签名数据指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码,将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据得到提取数据;
第七判断单元,用于判断第二结果数据是否与提取数据相同,是则验证成功,触发第四生成子模块,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对;
第四生成子模块,用于生成验PIN签名数据;
优选的,第四生成子模块具体用于生成第一随机数作为验PIN签名数据,使用第二共享密钥对验PIN签名数据进行加密得到密文数据;
发送子模块79,还用于将第四验证子模块生成的验PIN签名数据发送给终端。
相应的,发送子模块79还用于将第四验证子模块生成的密文数据返回给终端。
可选的,第四验证子模块还包括:
第三解析判断单元,用于解析接收到的获取验PIN签名数据指令,并判断是否解析成功,是则触发计算哈希单元,否则报错。
优选的,哈希提取子单元还用于将PIN码重试次数设为初始值;
第七判断单元判断为是时还用于将PIN码重试次数改为初始值;
第四验证子模块还包括:
第八判断单元,还用于判断PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则触发计算哈希单元;
第二更新判断单元,用于当第七判断单元判断为否时,更新PIN码重试次数;判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第九判断单元;
第九判断单元,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
本实施例中的接收子模块71还用于接收终端发送的协商共享密钥指令;
相应的,签名模块还包括:
第五生成子模块,用于当接收子模块71接收到协商共享密钥指令时,生成签名模块密钥对并保存;
发送子模块79还用于将签名模块密钥对中的签名模块公钥返回给终端。
本实施例中的签名模块为硬件设备或计算机程序或硬件设备与计算机程序的组合。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (57)

1.一种安全签名的实现方法,其特征在于,包括:
步骤F1:当签名模块接收到终端发送的验PIN指令时,根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,并使用所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证,如验证成功则执行步骤F2;如验证失败则重新生成签名模块密钥对并替换保存的签名模块密钥对;所述签名模块密钥对包括签名模块私钥和签名模块公钥;
步骤F2:所述签名模块生成验PIN签名数据并保存,根据所述第二共享密钥和所述验PIN签名数据生成第二计算结果,并将所述第二计算结果发送给所述终端;
步骤H1:当签名模块接收到终端发送的签名操作指令时,判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤H2,否则报错;
步骤H2:所述签名模块使用保存的签名私钥对所述签名操作指令中的待签名中间数据进行签名;
步骤H3:所述签名模块判断当前状态是否满足预设条件,是则清除保存的所述验PIN签名数据,并将签名结果返回给所述终端,否则将签名结果返回所述终端。
2.如权利要求1所述的方法,其特征在于,所述根据所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证之前包括:
所述签名模块解析接收到的验PIN指令,并判断是否解析成功,是则继续,否则报错;
所述步骤H1中的判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致之前,还包括:所述签名模块解析接收到的签名操作指令,并判断是否解析成功,是则继续,否则报错。
3.如权利要求1所述的方法,其特征在于,所述使用所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证,包括:
所述签名模块使用生成的第二共享密钥对所述验PIN指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码转换成第二字节流数据,对所述第二字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据,判断提取数据是否与所述第二结果数据一致,是则验证成功,否则验证失败。
4.如权利要求1所述的方法,其特征在于,所述根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,包括:所述签名模块将所述验PIN指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对所述第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥。
5.如权利要求1所述的方法,其特征在于,所述根据生成的第二共享密钥对所述验PIN指令中的第一计算结果进行验证之前包括:所述签名模块判断PIN码重试次数是否为预定数据,是则报错,提示PIN码锁定;否则继续;
所述步骤F1中验证失败时还包括:
步骤C1:所述签名模块更新所述PIN码重试次数;
步骤C2:所述签名模块判断所述PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤C3;
步骤C3:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;
所述步骤F2还包括:将所述PIN码重试次数改为初始值。
6.如权利要求1所述的方法,其特征在于,所述根据所述第二共享密钥和所述验PIN签名数据生成第二计算结果,并将所述第二计算结果发送给所述终端包括:使用第二共享密钥对验PIN签名数据进行加密得到密文数据,并将所述密文数据发送给所述终端。
7.如权利要求1所述的方法,其特征在于,所述步骤H1和H2替换为:
步骤P1:当签名模块接收到所述终端发送的设置安全环境操作指令时,判断所述设置安全环境操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤P2,否则结束;
步骤P2:所述签名模块根据所述设置安全环境指令中的算法ID和密钥容器ID判断设置签名算法是否合法,是则执行步骤P3,否则结束;
步骤P3:所述签名模块根据所述密钥容器ID打开对应的密钥容器,根据所述算法ID设置对应的算法,并给所述终端返回成功设置安全环境响应;
步骤T1:当签名模块接收到所述终端发送的哈希操作指令时,判断所述哈希操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤T2,否则结束;
步骤T2:所述签名模块对所述哈希操作指令进行解析得到待签名数据并保存;
步骤T3:所述签名模块根据设置的算法对所述待签名数据进行哈希运算得到哈希值并保存,给所述终端返回哈希计算成功响应;
步骤Q1:当签名模块接收到终端发送的签名操作指令时,判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤Q2,否则结束;
步骤Q2:所述签名模块从保存的待签名数据中提取关键信息并判断是否提取成功,是则执行步骤Q3,否则结束;
步骤Q3:所述签名模块显示所述关键信息并判断是否接收到用户确认信息,是则所述签名模块使用与所述签名操作指令中的容器ID所对应的容器中的签名私钥对保存的哈希值进行签名得到签名结果并保存,否则结束;
步骤Q4:所述签名模块判断当前状态是否满足预设条件,是则清除保存的所述验PIN签名数据,并给所述终端返回签名成功信息,否则给所述终端返回签名失败信息;
步骤L1:当签名模块接收到终端发送的获取签名结果指令时,将签名结果返回给终端。
8.如权利要求7所述的方法,其特征在于,所述步骤P2包括:
步骤P21:所述签名模块根据所述密钥容器ID判断对应的密钥容器是否存在,是则执行步骤P22,否则结束;
步骤P22:所述签名模块根据所述算法ID判断是否支持对应的算法,是则执行步骤P3,否则结束。
9.如权利要求7所述的方法,其特征在于,所述步骤T3还包括:所述签名模块给所述终端返回所述哈希值。
10.如权利要求1或7所述的方法,其特征在于,所述步骤F2还包括:将验PIN签名标识设为有效;
所述步骤H1、步骤P1、步骤T1、步骤Q1中还包括:所述签名模块判断所述验PIN签名标识是否有效,是则继续,否则报错;
所述步骤H3中判断为是时还包括:将所述验PIN签名标识设为无效。
11.如权利要求10所述的方法,其特征在于,所述将所述验PIN签名标识设为有效,具体为:将验PIN签名标识置位;
所述判断所述验PIN签名标识是否有效,具体为:判断所述验PIN签名标识是否置位;
所述将所述验PIN签名标识设为无效,具体为:将所述验PIN签名标识复位。
12.如权利要求11所述的方法,其特征在于,所述步骤F2还包括:将签名次数设为初始值;
所述签名模块判断当前状态是否满足预设条件,包括:更新所述签名次数,并判断所述签名次数是否等于预设值,是则满足预设条件,否则不满足预设条件。
13.如权利要求1或7所述的方法,其特征在于,所述步骤F2还包括:设置签名有效时间;
所述签名模块判断当前状态是否满足预设条件,包括:判断当前时间是否在签名有效时间内,是则不满足预设条件,否则满足预设条件。
14.如权利要求1所述的方法,其特征在于,还包括:
当签名模块接收到设置PIN码指令时,所述签名模块判断PIN码是否已设置,是则报错,否则对所述设置PIN码指令进行验证,如验证成功则根据所述设置PIN码指令中的第一密文生成PIN码并保存,如验证失败则结束。
15.如权利要求14所述的方法,其特征在于,所述签名模块对所述设置PIN码指令进行验证,包括:
步骤M1:所述签名模块将保存的签名模块私钥与所述设置PIN码指令中的终端公钥进行计算得到第一计算值,对第一计算值进行哈希运算,将哈希结果作为第二共享密钥;
步骤M2:所述签名模块使用所述第二共享密钥、对所述设置PIN码指令中的第一密文进行HMAC运算得到第二运算结果,并提取第二运算结果中的前16个字节数据得到提取数据;
步骤M3:所述签名模块判断所述提取数据是否与所述设置PIN码指令中的第一结果数据一致,是则验证成功,否则验证失败。
16.如权利要求15所述的方法,其特征在于,所述步骤M1之前还包括:
所述签名模块对接收到的所述设置PIN码指令进行解析,并判断是否解析成功,是则执行步骤M1,否则报错。
17.如权利要求15所述的方法,其特征在于,所述根据所述设置PIN码指令中的第一密文生成PIN码并保存,包括:
步骤N1:所述签名模块使用所述第二共享密钥对所述设置PIN码指令中的第一密文进行解密得到第一解密值,去除所述第一解密值中的填充数据得到密码中间值;
步骤N2:所述签名模块判断所述密码中间值是否小于第一预设值,是则报错,否则执行步骤N3;
步骤N3:所述签名模块对所述密码中间值进行哈希运算得到哈希结果,提取哈希结果中的前16个字节数据并保存为PIN码。
18.如权利要求17所述的方法,其特征在于,还包括:
当所述签名模块接收到修改PIN码指令时,对所述修改PIN码指令进行验证,如验证成功则用所述修改PIN码指令中的PIN码替换保存的PIN码,如验证失败则报错。
19.如权利要求18所述的方法,其特征在于,所述对所述修改PIN码指令进行验证,包括:
步骤W1:所述签名模块对保存的签名模块私钥与所述修改PIN码指令中的终端公钥进行计算得到第一结果数据,对第一结果数据进行哈希运算得到第二共享密钥;将所述修改PIN码指令中的第一加密值和所述修改PIN码指令中的第二加密值进行拼接得到第二拼接结果;
步骤W2:所述签名模块使用第二共享密钥、对第二拼接结果进行HMAC运算得到第二运算结果,并从第二运算结果中提取前16个字节数据得到提取数据;
步骤W3:所述签名模块判断所述修改PIN码指令中的中间数据与所述提取数据是否一致,是则执行步骤W4,否则报错;
步骤W4:所述签名模块使用所述第二共享密钥对所述第一加密值进行解密得到第一解密值;
步骤W5:所述签名模块判断所述第一解密值与内部保存的PIN码是否一致,是则验证成功,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。
20.如权利要求19所述的方法,其特征在于,所述用所述修改PIN码指令中的PIN码替换保存的PIN码,包括:
步骤K1:所述签名模块使用所述第二共享密钥对所述第二加密值进行解密得到第二解密值,去除所述第二解密值中的填充数据得到第一中间值;
步骤K2:所述签名模块判断第一中间值的长度是否小于第一预设值,是则执行步骤K3,否则报错;
步骤K3:所述签名模块对所述第一中间值进行哈希运算得到哈希结果,提取所述哈希结果的前16个字节数据并替换所述内部保存的PIN码。
21.如权利要求20所述的方法,其特征在于,所述步骤W1之前还包括:
所述签名模块解析接收到的修改PIN码指令,并判断是否解析成功,是则执行步骤W1,否则报错。
22.如权利要求20所述的方法,其特征在于,所述步骤N3还包括:所述签名模块将PIN码重试次数设为初始值;
所述步骤K3还包括:所述签名模块将所述PIN码重试次数改为初始值;
所述步骤W1之前还包括:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤W1;
所述步骤W5中验证失败之后还包括:
步骤W6:所述签名模块更新所述PIN码重试次数;
步骤W7:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤W8;
步骤W8:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
23.如权利要求17所述的方法,其特征在于,还包括:
当签名模块接收到获取验PIN签名数据指令时,对所述获取验PIN签名数据指令进行验证,如验证成功则生成验PIN签名数据并发送给所述终端,如验证失败则结束。
24.如权利要求23所述的方法,其特征在于,所述对所述获取验PIN签名数据指令进行验证,包括:
步骤R1:所述签名模块将所述获取验PIN签名数据指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
步骤R2:所述签名模块使用第二共享密钥、对所述获取验PIN签名数据指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码,将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据得到提取数据;
步骤R3:所述签名模块判断所述第二结果数据是否与提取数据相同,是则验证成功,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。
25.如权利要求23所述的方法,其特征在于,所述生成验PIN签名数据并发送给所述终端,包括:生成第一随机数作为验PIN签名数据,使用所述第二共享密钥对验PIN签名数据进行加密得到密文数据,并将密文数据返回给终端。
26.如权利要求24所述的方法,其特征在于,所述步骤R1之前还包括:
步骤R0:所述签名模块解析接收到的获取验PIN签名数据指令,并判断是否解析成功,是则执行步骤R1,否则报错。
27.如权利要求24所述的方法,其特征在于,所述步骤N3还包括:所述签名模块将PIN码重试次数设为初始值;
所述步骤R3验证成功时还包括:所述签名模块将所述PIN码重试次数改为初始值;
所述步骤R1之前还包括:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则执行步骤R1;
所述步骤R3判断为否还包括:
步骤R4:所述签名模块更新PIN码重试次数;
步骤R5:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤R6;
步骤R6:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
28.如权利要求4或15或19或24所述的方法,其特征在于,还包括:
当所述签名模块接收到协商共享密钥指令时,生成签名模块密钥对并保存,将所述签名模块密钥对中的签名模块公钥返回给所述终端。
29.一种安全签名的实现装置,其特征在于,包括签名模块,所述签名模块:
接收子模块,用于接收终端发送的验PIN指令和签名操作指令;
第一生成子模块,用于当所述接收子模块接收到验PIN码指令时,根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥;
第一验证子模块,用于使用所述第一生成子模块生成的第二共享密钥对所述验PIN指令中的第一计算结果进行验证,如验证成功则触发第三生成子模块;如验证失败则触发第二生成子模块;
所述第二生成子模块,用于重新生成签名模块密钥对并替换保存的签名模块密钥对;所述签名模块密钥对包括签名模块私钥和签名模块公钥;
所述第三生成子模块,用于生成验PIN签名数据并保存;根据所述第一生成子模块生成的第二共享密钥和所述验PIN签名数据生成第二计算结果;
第一判断子模块,用于当所述接收子模块接收到终端发送的签名操作指令时,判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发签名子模块,否则报错;
所述签名子模块,用于使用保存的签名私钥对所述签名操作指令中的待签名中间数据进行签名;
判断清除子模块,用于判断当前状态是否满足预设条件,是则清除保存的所述验PIN签名数据;
发送子模块,用于将所述第三生成子模块生成的第二计算结果发送给所述终端,还用于在所述判断清除子模块判断为是或否时将所述签名子模块得到的签名结果发送给所述终端。
30.如权利要求29所述的装置,其特征在于,所述签名模块还包括:
第一解析子模块,用于解析所述接收子模块接收到的验PIN指令,并判断是否解析成功,是则触发所述第一验证子模块,否则报错;
第二解析子模块,用于解析所述接收子模块接收到的签名操作指令,并判断是否解析成功,是则触发所述第一判断子模块,否则报错。
31.如权利要求29所述的装置,其特征在于,所述第一验证子模块具体用于使用生成的第二共享密钥对所述验PIN指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码转换成第二字节流数据,对所述第二字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据,判断提取数据是否与所述第二结果数据一致,是则验证成功,触发第三生成子模块;否则验证失败,触发第二生成子模块。
32.如权利要求29所述的装置,其特征在于,所述第一生成子模块具体用于将所述验PIN指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对所述第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥。
33.如权利要求29所述的装置,其特征在于,所述签名模块还包括:
第二判断子模块,用于判断PIN码重试次数是否为预定数据,是则报错,提示PIN码锁定;否则触发所述第一验证子模块;
第一更新子模块,用于在所述第一验证子模块验证失败后更新所述PIN码重试次数;
第三判断子模块,用于判断所述PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第四判断子模块;
所述第四判断子模块,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;
第一修改子模块,用于在所述第一验证子模块验证成功后将所述PIN码重试次数改为初始值。
34.如权利要求29所述的装置,其特征在于,所述第三生成子模块具体用于使用第二共享密钥对验PIN签名数据进行加密得到密文数据作为第二计算结果。
35.如权利要求29所述的装置,其特征在于,所述接收子模块还用于接收所述终端发送的设置安全环境操作指令、哈希操作指令、获取签名结果指令;
所述签名模块还包括:
第五判断子模块,用于当所述接收子模块接收到所述终端发送的设置安全环境操作指令时,判断所述设置安全环境操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发第六判断子模块,否则结束;
所述第六判断子模块,用于根据所述设置安全环境指令中的算法ID和密钥容器ID判断设置签名算法是否合法,是则触发打开设置子模块,否则结束;
所述打开设置子模块,用于根据所述密钥容器ID打开对应的密钥容器,根据所述算法ID设置对应的算法;
第七判断子模块,用于当所述接收子模块接收到所述终端发送的哈希操作指令时,判断所述哈希操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则触发解析保存子模块,否则结束;
所述解析保存子模块,用于对所述哈希操作指令进行解析得到待签名数据并保存;
哈希运算子模块,用于根据设置的算法对所述待签名数据进行哈希运算得到哈希值并保存;
所述提取判断子模块,用于在所述第一判断子模块判断为是时从保存的待签名数据中提取关键信息并判断是否提取成功,是则触发显示判断子模块,否则结束;
所述显示判断子模块,用于显示所述提取判断子模块提取的关键信息并判断是否接收到用户确认信息,是则触发所述签名子模块,否则结束;
所述签名子模块,具体用于使用与所述签名操作指令中的容器ID所对应的容器中的签名私钥对保存的哈希值进行签名得到签名结果并保存;
所述发送子模块还用于在所述打开设置子模块设置完对应算法之后给所述终端返回成功设置安全环境响应;还用于在哈希运算子模块运算完成之后给所述终端返回哈希计算成功响应;还用于当所述判断清除子模块判断为是时给所述终端返回签名成功信息,当所述判断清除子模块判断为否时给所述终端返回签名失败信息;还用于当所述接收子模块接收到终端发送的获取签名结果指令时,将所述签名保存子模块保存的签名结果返回给终端。
36.如权利要求35所述的装置,其特征在于,所述所述第六判断子模块具体用于根据所述密钥容器ID判断对应的密钥容器是否存在且根据所述算法ID判断是否支持对应的算法,如判断均为是则触发打开设置子模块,否则结束。
37.如权利要求35所述的装置,其特征在于,所述发送子模块还用于在所述哈希运算子模块运算完成之后给所述终端返回所述哈希值。
38.如权利要求29或35所述的装置,其特征在于,所述第三生成子模块还用于将验PIN签名标识设为有效;
所述第一判断子模块还用于判断所述验PIN签名标识是否有效;
所述第五判断子模块还用于判断所述验PIN签名标识是否有效;
所述第七判断子模块还用于判断所述验PIN签名标识是否有效;
所述判断清除子模块还用于判断当前状态满足预设条件时将所述验PIN签名标识设为无效。
39.如权利要求38所述的装置,其特征在于,所述第三生成子模块还用于将验PIN签名标识设为有效,具体为:所述第三生成子模块还用于将验PIN签名标识置位;
所述第一判断子模块还用于判断所述验PIN签名标识是否有效,具体为:所述第一判断子模块还用于判断所述验PIN签名标识是否置位;
所述第五判断子模块还用于判断所述验PIN签名标识是否有效,具体为:所述第五判断子模块还用于判断所述验PIN签名标识是否置位;
所述第七判断子模块还用于判断所述验PIN签名标识是否有效,具体为:所述第七判断子模块还用于判断所述验PIN签名标识是否置位;
所述判断清除子模块还用于判断当前状态满足预设条件时将所述验PIN签名标识设为无效,具体为:所述判断清除子模块还用于判断当前状态满足预设条件时将所述验PIN签名标识复位。
40.如权利要求39所述的装置,其特征在于,所述第三生成子模块还用于将签名次数设为初始值;
所述判断清除子模块,具体用于更新所述签名次数,并判断所述签名次数是否等于预设值,是则清除保存的所述验PIN签名数据。
41.如权利要求29或35所述的装置,其特征在于,所述第三生成子模块还用于设置签名有效时间;
所述判断清除子模块,具体用于判断当前时间是否在签名有效时间内,是则清除保存的所述验PIN签名数据。
42.如权利要求29所述的装置,其特征在于,所述接收子模块还用于接收设置PIN码指令;
所述签名模块还包括:
第八判断子模块,用于当所述接收子模块接收到设置PIN码指令时,判断PIN码是否已设置,是则报错,否则触发第二验证子模块;
所述第二验证子模块,用于对所述设置PIN码指令进行验证,如验证成功则根据所述设置PIN码指令中的第一密文生成PIN码并保存,如验证失败则结束。
43.如权利要求42所述的装置,其特征在于,所述第二验证子模块具体包括:
计算哈希单元,用于将保存的签名模块私钥与所述设置PIN码指令中的终端公钥进行计算得到第一计算值,对第一计算值进行哈希运算,将哈希结果作为第二共享密钥;
第一运算提取单元,用于使用所述第二共享密钥、对所述设置PIN码指令中的第一密文进行HMAC运算得到第二运算结果,并提取第二运算结果中的前16个字节数据得到提取数据;
第一判断单元,用于判断所述提取数据是否与所述设置PIN码指令中的第一结果数据一致,是则触发生成保存单元,否则结束;
所述生成保存单元,用于根据所述设置PIN码指令中的第一密文生成PIN码并保存。
44.如权利要求43所述的装置,其特征在于,所述第二验证子模块还包括:
第一解析判断单元,用于对接收到的所述设置PIN码指令进行解析,并判断是否解析成功,是则触发所述计算哈希单元,否则报错。
45.如权利要求43所述的装置,其特征在于,所述所述生成保存单元具体包括:
解密去除子单元,用于使用所述第二共享密钥对所述设置PIN码指令中的第一密文进行解密得到第一解密值,去除所述第一解密值中的填充数据得到密码中间值;
第一判断子单元,用于判断所述密码中间值是否小于第一预设值,是则报错,否则触发哈希提取子单元;
所述哈希提取子单元,用于对所述密码中间值进行哈希运算得到哈希结果,提取哈希结果中的前16个字节数据并保存为PIN码。
46.如权利要求45所述的装置,其特征在于,所述接收子模块还用于接收修改PIN码指令;
所述签名模块还包括:
第三验证子模块,用于当所述接收子模块接收到修改PIN码指令时,对所述修改PIN码指令进行验证,如验证成功则触发替换保存子模块,如验证失败则报错;
所述替换保存子模块,用于用所述修改PIN码指令中的PIN码替换保存的PIN码。
47.如权利要求46所述的装置,其特征在于,所述第三验证子模块具体包括:
计算拼接单元,用于对保存的签名模块私钥与所述修改PIN码指令中的终端公钥进行计算得到第一结果数据,对第一结果数据进行哈希运算得到第二共享密钥;将所述修改PIN码指令中的第一加密值和所述修改PIN码指令中的第二加密值进行拼接得到第二拼接结果;
第二运算提取单元,用于使用第二共享密钥、对第二拼接结果进行HMAC运算得到第二运算结果,并从第二运算结果中提取前16个字节数据得到提取数据;
第二判断单元,用于判断所述修改PIN码指令中的中间数据与所述提取数据是否一致,是则触发第一解密单元,否则报错;
所述第一解密单元,用于使用所述第二共享密钥对所述第一加密值进行解密得到第一解密值;
第三判断单元,用于判断所述第一解密值与内部保存的PIN码是否一致,是则触发替换保存子模块,否则报错,重新生成签名模块密钥对并替换保存的签名模块密钥对。
48.如权利要求47所述的装置,其特征在于,所述替换保存子模块具体包括:
解密去除单元,用于使用所述第二共享密钥对所述第二加密值进行解密得到第二解密值,去除所述第二解密值中的填充数据得到第一中间值;
第四判断单元,用于判断第一中间值的长度是否小于第一预设值,是则触发哈希替换单元,否则报错;
所述哈希替换单元,用于对所述第一中间值进行哈希运算得到哈希结果,提取所述哈希结果的前16个字节数据并替换所述内部保存的PIN码。
49.如权利要求48所述的装置,其特征在于,所述所述第三验证子模块还包括:
第二解析判断单元,用于解析接收到的修改PIN码指令,并判断是否解析成功,是则触发所述计算拼接单元,否则报错。
50.如权利要求48所述的装置,其特征在于,所述哈希提取子单元还用于将PIN码重试次数设为初始值;
所述哈希替换单元还用于将所述PIN码重试次数改为初始值;
所述第三验证子模块还包括:
第五判断单元,用于判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发所述计算拼接单元;
第一更新判断单元,用于当第三判断单元判断为否时,更新所述PIN码重试次数;判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第六判断单元;
所述第六判断单元,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
51.如权利要求29所述的装置,其特征在于,所述接收子模块还用于接收获取验PIN签名数据指令;
所述签名模块还包括:
第四验证子模块,用于当所述接收子模块接收到获取验PIN签名数据指令时,对所述获取验PIN签名数据指令进行验证,如验证成功则触发第四生成子模块,如验证失败则结束;
所述第四生成子模块,用于生成验PIN签名数据;
所述发送子模块,还用于将所述第四验证子模块生成的验PIN签名数据发送给所述终端。
52.如权利要求51所述的装置,其特征在于,所述第四验证子模块具体包括:
计算哈希单元,用于将所述获取验PIN签名数据指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;
解密提取单元,用于使用第二共享密钥、对所述获取验PIN签名数据指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码,将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据得到提取数据;
第七判断单元,用于判断所述第二结果数据是否与提取数据相同,是则验证成功,触发第四生成子模块,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。
53.如权利要求51所述的装置,其特征在于,所述第四生成子模块具体用于生成第一随机数作为验PIN签名数据,使用所述第二共享密钥对验PIN签名数据进行加密得到密文数据;
所述发送子模块,还用于将所述第四验证子模块生成的验PIN签名数据发送给所述终端,具体为:所述发送子模块,还用于将所述第四验证子模块生成的密文数据返回给终端。
54.如权利要求52所述的装置,其特征在于,所述第四验证子模块还包括:
第三解析判断单元,用于解析接收到的获取验PIN签名数据指令,并判断是否解析成功,是则触发计算哈希单元,否则报错。
55.如权利要求52所述的装置,其特征在于,所述哈希提取子单元还用于将PIN码重试次数设为初始值;
所述第七判断单元判断为是时还用于将所述PIN码重试次数改为初始值;
所述第四验证子模块还包括:
第八判断单元,还用于判断所述PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则触发所述计算哈希单元;
第二更新判断单元,用于当第七判断单元判断为否时,更新PIN码重试次数;判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则触发第九判断单元;
所述第九判断单元,用于判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。
56.如权利要求32或43或47或52所述的装置,其特征在于,所述接收子模块还用于接收终端发送的协商共享密钥指令;
所述签名模块还包括:
第五生成子模块,用于当所述接收子模块接收到协商共享密钥指令时,生成签名模块密钥对并保存;
所述发送子模块还用于将所述签名模块密钥对中的签名模块公钥返回给所述终端。
57.如权利要求29所述的装置,其特征在于,所述签名模块为硬件设备或计算机程序或硬件设备与计算机程序的组合。
CN201910503324.XA 2019-06-11 2019-06-11 一种安全签名的实现方法及装置 Active CN110190950B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910503324.XA CN110190950B (zh) 2019-06-11 2019-06-11 一种安全签名的实现方法及装置
PCT/CN2020/084238 WO2020248686A1 (zh) 2019-06-11 2020-04-10 一种安全签名的实现方法及装置
US17/546,692 US20220103376A1 (en) 2019-06-11 2021-12-09 Method and apparatus for realizing secure signature

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910503324.XA CN110190950B (zh) 2019-06-11 2019-06-11 一种安全签名的实现方法及装置

Publications (2)

Publication Number Publication Date
CN110190950A true CN110190950A (zh) 2019-08-30
CN110190950B CN110190950B (zh) 2021-04-27

Family

ID=67721305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910503324.XA Active CN110190950B (zh) 2019-06-11 2019-06-11 一种安全签名的实现方法及装置

Country Status (3)

Country Link
US (1) US20220103376A1 (zh)
CN (1) CN110190950B (zh)
WO (1) WO2020248686A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110519309A (zh) * 2019-10-15 2019-11-29 中国建设银行股份有限公司 数据传输方法、装置、终端、服务器及存储介质
WO2020248686A1 (zh) * 2019-06-11 2020-12-17 飞天诚信科技股份有限公司 一种安全签名的实现方法及装置
CN112651053A (zh) * 2020-12-30 2021-04-13 飞天诚信科技股份有限公司 一种区块链终端设备免密操作的方法及装置
CN113452705A (zh) * 2021-06-28 2021-09-28 长春吉大正元信息技术股份有限公司 一种加密通信方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100242102A1 (en) * 2006-06-27 2010-09-23 Microsoft Corporation Biometric credential verification framework
CN104104505A (zh) * 2013-04-03 2014-10-15 北京旋极信息技术股份有限公司 一种电子签名设备及其实现方法及客户端
CN105553672A (zh) * 2015-12-25 2016-05-04 北京握奇智能科技有限公司 一种电子签名方法及装置
CN106921497A (zh) * 2015-12-25 2017-07-04 北京握奇智能科技有限公司 一种电子签名方法及装置
US20180152297A1 (en) * 2016-11-01 2018-05-31 Netcomm Inc. System and Method For Digitally Signing Documents Using Biometric Data in a Blockchain or PKI

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098053A (en) * 1998-01-28 2000-08-01 Citibank, N.A. System and method for performing an electronic financial transaction
DE19923807A1 (de) * 1999-05-19 2000-11-23 Deutsche Telekom Ag Verfahren zur Erhöhung der Sicherheit bei digitalen Unterschriften
US7178030B2 (en) * 2000-10-25 2007-02-13 Tecsec, Inc. Electronically signing a document
WO2005029292A1 (en) * 2003-09-24 2005-03-31 Accenture Global Services Gmbh Server-based digital signature
CN101129018A (zh) * 2005-02-25 2008-02-20 高通股份有限公司 基于公钥的认证用小数字签名
KR101014849B1 (ko) * 2005-12-02 2011-02-15 고려대학교 산학협력단 제 3의 신뢰기관의 도움 없이 공개키에 대한 상호 인증 및키 교환 방법 및 그 장치
US8302167B2 (en) * 2008-03-11 2012-10-30 Vasco Data Security, Inc. Strong authentication token generating one-time passwords and signatures upon server credential verification
US9148423B2 (en) * 2008-12-29 2015-09-29 Google Technology Holdings LLC Personal identification number (PIN) generation between two devices in a network
CN101807237B (zh) * 2010-03-01 2012-10-03 飞天诚信科技股份有限公司 签名方法及装置
US9191375B2 (en) * 2011-01-13 2015-11-17 Infosys Limited System and method for accessing integrated applications in a single sign-on enabled enterprise solution
US8966268B2 (en) * 2011-12-30 2015-02-24 Vasco Data Security, Inc. Strong authentication token with visual output of PKI signatures
US10515363B2 (en) * 2012-06-12 2019-12-24 Square, Inc. Software PIN entry
JP6317099B2 (ja) * 2013-01-08 2018-04-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America プログラムの正当性を確認するための確認方法及び、確認システム
US9331989B2 (en) * 2014-10-06 2016-05-03 Micron Technology, Inc. Secure shared key sharing systems and methods
US9819648B1 (en) * 2014-10-21 2017-11-14 Amazon Technologies, Inc. Secure content delivery
CN105871557B (zh) * 2016-05-18 2019-04-16 飞天诚信科技股份有限公司 电子邮件签名方法、装置及系统
CN106656504B (zh) * 2016-10-27 2019-06-18 飞天诚信科技股份有限公司 一种签名设备、系统及其工作方法
CN106899413B (zh) * 2017-04-07 2020-05-08 深圳奥联信息安全技术有限公司 数字签名验证方法及系统
US9990632B1 (en) * 2017-10-25 2018-06-05 Capital One Services, Llc Dynamic modification of a verification method associated with a transaction card
CN108881310B (zh) * 2018-08-15 2020-05-19 飞天诚信科技股份有限公司 一种注册系统及其工作方法
CN110190950B (zh) * 2019-06-11 2021-04-27 飞天诚信科技股份有限公司 一种安全签名的实现方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100242102A1 (en) * 2006-06-27 2010-09-23 Microsoft Corporation Biometric credential verification framework
CN104104505A (zh) * 2013-04-03 2014-10-15 北京旋极信息技术股份有限公司 一种电子签名设备及其实现方法及客户端
CN105553672A (zh) * 2015-12-25 2016-05-04 北京握奇智能科技有限公司 一种电子签名方法及装置
CN106921497A (zh) * 2015-12-25 2017-07-04 北京握奇智能科技有限公司 一种电子签名方法及装置
US20180152297A1 (en) * 2016-11-01 2018-05-31 Netcomm Inc. System and Method For Digitally Signing Documents Using Biometric Data in a Blockchain or PKI

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黎艳: "《基于用户卡的数字签名技术研究》", 《基于用户卡的数字签名技术研究》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020248686A1 (zh) * 2019-06-11 2020-12-17 飞天诚信科技股份有限公司 一种安全签名的实现方法及装置
CN110519309A (zh) * 2019-10-15 2019-11-29 中国建设银行股份有限公司 数据传输方法、装置、终端、服务器及存储介质
CN112651053A (zh) * 2020-12-30 2021-04-13 飞天诚信科技股份有限公司 一种区块链终端设备免密操作的方法及装置
CN113452705A (zh) * 2021-06-28 2021-09-28 长春吉大正元信息技术股份有限公司 一种加密通信方法、装置、电子设备和存储介质
CN113452705B (zh) * 2021-06-28 2023-02-21 长春吉大正元信息技术股份有限公司 一种加密通信方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
US20220103376A1 (en) 2022-03-31
WO2020248686A1 (zh) 2020-12-17
CN110190950B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN110190950A (zh) 一种安全签名的实现方法及装置
CN108521333A (zh) 一种基于动态口令进行离线认证的登录方法及系统
CN105721443B (zh) 一种链路会话密钥协商方法及装置
CN105553674B (zh) 一种交互系统、智能密钥设备、服务器及工作方法
CN108256309A (zh) 硬件登录windows10以上系统的实现方法及装置
CN107969001A (zh) 一种蓝牙配对双向认证的方法及装置
CN109388961B (zh) 存储设备的安全控制方法及存储设备
CN107360175A (zh) 车联网控车安全方法
CN110149209A (zh) 物联网设备及其提高数据传输安全性的方法和装置
CN101102574A (zh) 终端验证方法和装置
CN104917603B (zh) 一种信息安全传递方法、接收终端、及发送终端
CN105320891B (zh) 一种计算机安全加载系统镜像的方法及装置
CN108270791A (zh) 一种安全运行可执行文件的方法及系统
CN109144552A (zh) 一种引导固件刷新方法和装置
CN105897748B (zh) 一种对称密钥的传输方法及设备
CN107368737A (zh) 一种防止拷贝攻击的处理方法、服务器及客户端
CN111143856A (zh) 一种plc远程固件升级系统及方法
CN110059089A (zh) 数据同步方法、装置、存储介质及电子设备
CN112865965B (zh) 一种基于量子密钥的列车业务数据处理方法及系统
Vanhoef et al. Symbolic execution of security protocol implementations: Handling cryptographic primitives
CN115630355A (zh) 密码模块的安全评测方法、安全评测设备以及存储介质
CN110071917A (zh) 用户口令检测方法、设备、装置及存储介质
CN108809982A (zh) 一种基于可信执行环境的免密认证方法及系统
CN103207964B (zh) 一种多功能智能密钥设备及其工作方法
CN113055340A (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