CN107223322A - 签名验证的方法、设备和系统 - Google Patents

签名验证的方法、设备和系统 Download PDF

Info

Publication number
CN107223322A
CN107223322A CN201780000335.5A CN201780000335A CN107223322A CN 107223322 A CN107223322 A CN 107223322A CN 201780000335 A CN201780000335 A CN 201780000335A CN 107223322 A CN107223322 A CN 107223322A
Authority
CN
China
Prior art keywords
message
receiving terminal
check code
public key
main frame
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
CN201780000335.5A
Other languages
English (en)
Other versions
CN107223322B (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.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Huiding Technology 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 Shenzhen Huiding Technology Co Ltd filed Critical Shenzhen Huiding Technology Co Ltd
Publication of CN107223322A publication Critical patent/CN107223322A/zh
Application granted granted Critical
Publication of CN107223322B publication Critical patent/CN107223322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L9/3249Cryptographic 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 using RSA or related signature schemes, e.g. Rabin scheme
    • 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

Landscapes

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

Abstract

本申请实施例提供了签名验证的方法、设备和系统,包括:发送端根据私钥和数字签名算法确定需要发送的消息的签名;主机根据公钥和该数字签名算法对该消息和该签名进行验证,当公钥和私钥对应时,主机根据预置密钥确定该消息的校验码,其中,确定该校验码所使用的算法的复杂度低于该数字签名算法的复杂度,主机和发送端具有数字签名的能力;接收端根据该校验码对该消息进行校验,并获取该消息,接收端为嵌入式系统。本申请实施例中,即主机代替接收端执行数字签名算法,从而使得接收端不需要使用复杂度高的数字签名算法对数据进行验证,因而本申请实施例能够保证低硬件成本的接收端接收的数据的真实性和完整性。

Description

签名验证的方法、设备和系统
技术领域
本申请涉及通信领域,并且更具体的,涉及通信领域中的签名验证的方法、设备和系统。
背景技术
数字签名技术在安全领域的应用非常广泛,其可以使得接收方有效验证数据的真实性和不可抵赖性。数字签名算法例如可以为RSA公钥密码学算法、椭圆曲线密码学(Elliptic curve cryptography,ECC)算法等。并且,因为哈希Hash函数能够保证输入数据的完整性,通常数字签名技术结合Hash函数可以保证数据的完整性、真实性和不可抵赖性。
数字签名算法通常是大数运算,非常消耗CPU运行时间。嵌入式系统为了降低成本,无法采用高性能的处理硬件,不具备执行数字签名的能力。在需要可靠、安全性保障的嵌入式系统中,为了保护数据的真实性和完整性,需要使用数字签名和验证等相关的安全措施,但这必然需要增加额外的成本。
发明内容
本申请实施例提供了一种签名验证的方法、设备和系统,能够保证低硬件成本的接收端接收的数据的真实性和完整性。
第一方面,提供了一种签名验证的方法,该方法包括:
主机接收发送端发送的消息和该消息的签名,其中,该消息的签名是该发送端根据私钥和数字签名算法确定的;
主机根据公钥和该数字签名算法对该消息和该签名进行验证;
当该公钥和该私钥对应时,该主机根据预置密钥确定该消息的校验码,其中,确定该校验码所使用的算法的复杂度低于该数字签名算法的复杂度;
主机将该消息和该校验码发送给接收端,使得该接收端根据该校验码对该消息进行校验,其中,该接收端为嵌入式系统。
本申请实施例中,主机根据对发送端向接收端发送的数据进行数字签名验证,即主机代替接收端执行数字签名算法,从而使得接收端不需要使用复杂度高的数字签名算法对数据进行验证,因而本申请实施例能够保证低硬件成本的接收端接收的数据的真实性和完整性。
该在一些可能实现的方式中,所述方法由具有数字签名的能力的主机执行,且所述发送端也具有数字签名的能力。
该在一些可能实现的方式中,该方法还包括:主机接收该接收端发送的该公钥;主机接收该接收端发送的该公钥的校验码,其中,该校验码是该接收端根据该预置密钥确定的,主机根据该预置密钥对该公钥和该公钥的校验码进行验证。
本申请中,接收端将公钥发送给主机,使得主机可以根据接收端提供的公钥对将要转发给接收端的数据进行数字验证,提高验证的可靠性。
在接收端将公钥发送给主机的同时,接收端可以将该公钥的校验码发送给主机,使得主机能够对接收到的公钥进行验证,进一步提高数据传输的安全性。
在一些可能实现的方式中,主机接收该接收端发送的该公钥之前,向该接收端发送请求消息,该请求消息用于请求该接收端发送该公钥。
在一些可能实现的方式中,该请求消息还用于请求该接收端发送该公钥的校验码。
在一些可能实现的方式中,其特征在于,该数字签名算法为RSA公钥密码学算法,该校验码为基于Hash函数的消息认证码HMAC。
在一些可能实现的方式中,该嵌入式系统为生物识别嵌入式系统。
第二方面,提供了一种签名验证的方法。该方法包括:
发送端根据私钥和数字签名算法确定需要发送的消息的签名,并将该消息和该签名发送给该主机;
主机根据公钥和该数字签名算法对该消息和该签名进行验证,当该公钥和该私钥对应时,该主机根据预置密钥确定该消息的校验码,其中,确定该校验码所使用的算法的复杂度低于该数字签名算法的复杂度;
主机将该消息和该校验码发送给该接收端;
接收端根据该校验码对该消息进行校验,并获取该消息。
本申请实施例中,主机根据对发送端向接收端发送的数据进行数字签名验证,即主机代替接收端执行数字签名算法,从而使得接收端不需要使用复杂度高的数字签名算法对数据进行验证,因而本申请实施例能够保证低硬件成本的接收端接收的数据的真实性和完整性。
在一些可能的实现方式中,该方法由签名验证系统执行,该系统包括发送端、主机和接收端,该主机和该发送端具有数字签名的能力,该接收端为嵌入式系统。
在一些可能的实现方式中,该方法还包括:该接收端向该主机发送该公钥,该接收端根据该预置密钥确定该公钥的校验码,并向该主机发送该公钥的校验码;该主机根据该预置密钥对该公钥和该公钥的校验码进行验证。
本申请中,接收端将公钥发送给主机,使得主机可以根据接收端提供的公钥对将要转发给接收端的数据进行数字验证,提高验证的可靠性。在接收端将公钥发送给主机的同时,接收端可以将该公钥的校验码发送给主机,使得主机能够对接收到的公钥进行验证,进一步提高数据传输的安全性。
在一些可能的实现方式中,该接收端向该主机发送该公钥之前,还包括:
该主机向该接收端发送请求消息,该请求消息用于请求该接收端发送该公钥。
在一些可能的实现方式中,该请求消息还用于请求该接收端发送该公钥的校验码。
在一些可能的实现方式中,该数字签名算法为RSA公钥密码学算法,该校验码为基于Hash函数的消息认证码HMAC。
在一些可能的实现方式中,该嵌入式系统为生物识别嵌入式系统。
第三方面,提供了一种签名验证的设备,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法,具体的,该设备包括用于执行上述第一方面或第一方面任意可能的实现方式中的方法的模块。
第四方面,提供了一种签名验证的设备,该设备包括:存储器、处理器和收发器。其中,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第五方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
附图说明
图1是通过数字签名技术进行数据传输的示意性流程图。
图2是本申请实施例的一种签名验证的系统的架构图。
图3是本申请实施例的另一种签名验证的系统的架构图。
图4是本申请实施例的一种签名验证的方法的示意性流程图。
图5是本申请实施例的一种签名验证的设备的示意性框图。
图6是本申请实施例的另一种签名验证的设备的示意性框图。
具体实施方式
图1示出了通过数字签名技术进行数据传输的示意性流程图。图1中的传输数据的方法中使用的数字签名算法为RSA公钥密码学算法。该方法中,发送端10和接收端11都具有数字签名的能力,包括:
S110,发送端10获取将要传输的数据M的签名SigM
S120,发送端10向接收端11发送该数据M和签名SigM
S130,接收端11验证该签名SigM和数据M。
具体的,以Alice和Bob分别使用发送端和接收端进行身份认证为例进行说明。当Alice需要向Bob发送数据M时,使用自身的私钥(SK)对数据M进行签名,得到SigM。其中,数据M为明文数据。应注意,Alice的私钥只有Alice本人拥有,而Alice的公钥所有人都可以可靠获取到。并且根据RSA公钥密码学算法的理论,只有Alice的公钥数据,难以获得对应的RSA私钥,所以Bob可以根据签名SigM确定数据M是Alice发出的,并且,因为只有Alice本人用于自己的私钥,Alice无法抵赖曾经发送过数据M的事实。
图2示出了本申请一个实施例的系统架构图。在该系统包括发送端10、主机30和接收端20三个实体,主机30和发送10端具有数字签名的能力,接收端20可以为嵌入式系统,该接收端20可以不具备数字签名的能力。其中,发送端10和主机30之间通过明文信道传输数据,主机30和接收端20之间也可以通过明文信道传输数据。
其中,主机30中包括验证模块301,该验证模块301用于校验发送端10发送的数据的真实性和完整性,并且使用基于Hash函数的消息认证码(Hash-based MessageAuthentication Code,HMAC)替换签名数据。具体的,验证模块301对经过RSA公钥密码学算法进行签名过的数据和签名进行验证,同时计算数据的HMAC。该验证模块301可以运行在可信执行环境(Trusted Execution Environment,TEE)中。
本申请实施例中,接收端20可以为低成本、低性能的嵌入式系统,并且该嵌入式系统同时对安全性的要求比较高,例如为生物识别认证系统。应注意,验证数据的HMAC的运算过程并不是大数运算,其对硬件性能的要求也低于使用数字签名技术对硬件性能的要求。因此,接收端20仅需要执行HMAC运算过程,而不需要执行数字签名运算过程。
图3示出了本申请另一个具体的实施例的整体架构图。在图3中,发送端10具体可以是FactoryTool10。接收端20具体可以包括微控制单元(Microcontroller Unit,MCU)201,接收端20中还可以包括传感器。主机30具体可以是Windows PC。其中,Windows PC 30中可以包括验证模块(VerifyModule)301和守护进程(daemon)302,并且VerifyModule301运行在TEE(例如Inter SGX(Software Guard Extensions))中,daemon302运行在普通的软件执行环境(Rich Execution Environment,REE)中。本申请中,MCU201的运算速度可以较慢,例如MCU201仅可以处理简单的逻辑运算,并且MCU201中存储软件代码的空间有限。
在图3所示的架构中,daemon302是FactoryTool 10、VerifyModule301和MCU201进行数据传输的桥梁。具体的,FactoryTool 10和daemon 302之间可以通过网络信道传输数据,daemon 302和MCU201之间可以通过串行外设接口(Serial Peripheral Interface,SPI)或通用串行总线(Universal Serial Bus,USB)传输数据,daemon 301和VerifyModule302之间可以通过ECALL/OCALL传输数据。
本申请中的主机30(例如Windows PC)和接收端20(例如MCU201)在生产的过程中可以设置预置密钥PSK,并且在接收端设备中可以预置发送端(例如FactoryTool10)所使用的私钥SK对应的公钥PK。
图4示出了本申请一个实施例的签名验证的方法的示意性流程图。该方法可以由图2或图3的架构中的各个实体执行。应理解,图4示出了签名验证的方法的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图4中的各个操作的变形。此外,图4中的各个步骤可以按照与图4呈现的不同的顺序来执行,并且有可能并非要执行图4中的全部操作。图2、图3或图4中相同的附图标记表示相同或相似的含义,为了简洁,此处不再赘述。图4所示的方法包括:
S210,发送端10获取将要传输的数据的签名。
具体地,该发送端可以为图3中所示的FactoryTool10,该将要传输的数据可以为消息M,消息M可以是命令或者其他信息。发送端10可以根据数字签名算法和该发送端中的预置的私钥对消息M进行签名,得到消息M的签名sigM。该数字签名算法例如可以为RSA公钥密码学算法或者ECC密码学算法。本申请实施例中,FactoryTool10和VerifyModule301可以采用2048bits长度密钥的RSA签名和验证签名算法。
S220,发送端10向主机30发送该数据和签名。
具体地,FactoryTool10可以向PC机中的daemon302发送消息M及其签名sigM
S230,主机30向接收端20发送请求消息。具体地,daemon302可以通过SPI或USB向MCU201发送该请求消息。该请求消息用于请求接收端20中向主机30发送公钥PK。该公钥可以是预先配置在接收端20中。可选地,该请求消息还用于请求接收端20发送该公钥PK的校验码。
应注意,本申请实施例中,S230可以在S220之后执行,也可以在S220之前执行,或者也可以不执行S230的步骤本申请实施例对此并不限定。
S240,接收端20向主机30发送公钥和该公钥的校验码。
具体地,接收端20可以根据其与主机30共享的预置密钥PSK计算公钥PK的校验码,确定该校验码的算法的复杂度低于上述数字签名算法,该校验码例如可以为基于Hash函数的消息认证码HMAC,则该公钥PK的校验码为HMACPK。具体地,MCU201可以通过SPI将公钥PK和校验码HMACPK发送给daemon302。
本申请实施例中,哈希Hash算法可以使用安全哈希函数(Security HashAlgorithm,SHA)-256,VerifyModule301和MCU使用基于SHA-256的HMAC算法。HMAC算法是基于Hash的消息认证码(Message Authentication Code,MAC),HMAC算法在一定程度上可以共享Hash函数的代码。因此,当接收端20采用HMAC算法而不是RSA或ECC密码学算法对数据的合法性验证时,可以减小接收端20的软件的大小。
本申请实施例中,Hash算法也可使用SHA-1等其他Hash算法,VerifyModule301和MCU201之间的HMAC算法可以采用基于SHA-1等HASH函数的其他MAC算法。
S250,主机30使用与接收端20共享的PSK验证公钥PK和校验码HMACPK。经过S250的验证,主机30可以确定公钥PK的合法性。
具体地,daemon302可以将接收到的公钥PK和校验码HMACPK发送至VerifyModule301,由VerifyModule301在TEE环境中对公钥PK的合法性进行验证。
S260,主机30使用验证合法的公钥PK验证消息M及其签名sigM。具体的,由VerifyModule301在TEE环境中对消息M及其sigM的合法性进行验证。
可以理解,现有技术中是由接收端根据预置的公钥PK验证M的签名sigM,此时接收端对硬件的要求比较高,例如,接收端需要有较快的处理能力,并且能够存储较大的代码,硬件成本较高。本申请实施例中,对M和sigM的验证由主机30执行,此时,对接收端20的硬件性能的要求较低,例如接收端20可以为具有较低的运行速度和较小的存储空间等低成本的嵌入式系统。
S270,主机30使用预置密钥PSK计算验证合法的消息M的校验码HMACM。可选地,S270可以由VerifyModule301在TEE环境计算消息M的校验码HMACM
具体地,主机30根据与接收端20共享的预置密钥PSK确定消息M的校验码HMACM。当该校验码为基于Hash函数的消息认证码HMAC,则该消息M的校验码可以表示为HMACM
S280,主机30向接收端20发送消息M和校验码HMACM
具体地,VerifyModule301可以将消息M和校验码HMACM发送至daemon302,再由daemon302将消息M和校验码HMACM发送至MCU201。
S290,接收端30利用共享的HMACMPSK验证消息M和校验码HMACM。具体地,可以由MCU201对消息M和校验码HMACM的合法性进行验证。
本申请实施例中,主机30根据对发送端10向接收端20发送的数据进行数字签名验证,即主机30代替接收端20执行数字签名算法,从而使得接收端20不需要使用复杂度高的数字签名算法对数据进行验证,因而本申请实施例能够保证低硬件成本的接收端20接收的数据的真实性和完整性。
图5示出了本申请实施例的签名验证的设备500,该设备500该具有数字签名的能力,该设备500包括:
接收单元510,用于接收发送端发送的消息和该消息的签名,其中,该发送端也具有数字签名的能力,该消息的签名是该发送端根据私钥和数字签名算法确定的;
验证单元520,用于根据公钥和数字签名算法对该消息和该签名进行验证。当该公钥和该私钥对应时,该验证单元520还用于根据预置密钥确定该消息的校验码,其中,确定该校验码所使用的算法的复杂度低于该数字签名算法的复杂度;
发送单元530,用于将该消息和该校验码发送给接收端,使得该接收端根据该校验码对该消息进行校验,其中,接收端为嵌入式系统。
本申请实施例中,主机根据对发送端向接收端发送的数据进行数字签名验证,即主机代替接收端执行数字签名算法,从而使得接收端不需要使用复杂度高的数字签名算法对数据进行验证,因而本申请实施例能够保证低硬件成本的接收端接收的数据的真实性和完整性。
在一些可能的实现方式中,该接收单元510还用于主机接收该接收端发送的该公钥。
在一些可能的实现方式中,该接收单元510还用于接收该接收端发送的公钥的校验码,其中,该校验码是该接收端根据该预置密钥确定的。
验证单元520还用于根据预置密钥对公钥和该公钥的校验码进行验证。
在一些可能的实现方式中,该发送单元530还用于向该接收端发送请求消息,该请求消息用于请求该接收端发送该公钥。
在一些可能的实现方式中,该请求消息还用于请求接收端发送该公钥的校验码。
在一些可能的实现方式中,该数字签名算法为RSA公钥密码学算法,该校验码为基于Hash函数的消息认证码HMAC。
在一些可能的实现方式中,该嵌入式系统为生物识别嵌入式系统。
应注意,本发明实施例中,验证单元520可以由处理器实现,接收单元510和发送单元530可以由收发器实现。如图6所示,设备600可以包括处理器610、存储器620和收发器630。其中,存储器620可以用于存储处理器610执行的代码等。
在实现过程中,上述方法的各步骤可以通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器620,处理器610读取存储器620中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
图5所示的设备500或图6所示的设备600能够实现前述图4所示的方法实施例对应的各个过程,具体的,该设备500或设备600可以参见上述图4中的描述,为避免重复,这里不再赘述。
本发明实施例还提供一种签名验证的系统,该系统包括上述设备500或设备600、上述发送端设备和上述接收端设备。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (26)

1.一种签名验证的方法,其特征在于,包括:
接收发送端发送的消息和所述消息的签名,所述消息的签名是所述发送端根据私钥和数字签名算法确定的;
根据公钥和所述数字签名算法对所述消息和所述签名进行验证;
当所述公钥和所述私钥对应时,根据预置密钥确定所述消息的校验码,其中,确定所述校验码所使用的算法的复杂度低于所述数字签名算法的复杂度;
将所述消息和所述校验码发送给接收端,使得所述接收端根据所述校验码对所述消息进行校验,其中,所述接收端为嵌入式系统。
2.根据权利要求1所述的方法,其特征在于,所述方法由具有数字签名的能力的主机执行,且所述发送端也具有数字签名的能力。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收所述接收端发送的所述公钥;
接收所述接收端发送的所述公钥的校验码,其中,所述校验码是所述接收端根据所述预置密钥确定的;
根据所述预置密钥对所述公钥和所述公钥的校验码进行验证。
4.根据权利要求3所述的方法,其特征在于,还包括:
在接收所述接收端发送的所述公钥之前,向所述接收端发送请求消息,所述请求消息用于请求所述接收端发送所述公钥。
5.根据权利要求4所述的方法,其特征在于,所述请求消息还用于请求所述接收端发送所述公钥的校验码。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述数字签名算法为RSA公钥密码学算法,所述校验码为基于哈希Hash函数的消息认证码HMAC。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述嵌入式系统为生物识别嵌入式系统。
8.一种签名验证的方法,其特征在于,包括:
发送端根据私钥和数字签名算法确定需要发送的消息的签名,并将所述消息和所述签名发送给主机;
所述主机根据公钥和所述数字签名算法对所述消息和所述签名进行验证,并在所述公钥和所述私钥对应时,根据预置密钥确定所述消息的校验码,其中,确定所述校验码所使用的算法的复杂度低于所述数字签名算法的复杂度;
所述主机将所述消息和所述校验码发送给接收端;
所述接收端根据所述校验码对所述消息进行校验,并获取所述消息。
9.根据权利要求8所述的方法,其特征在于,所述方法由签名验证系统执行,所述签名验证系统包括所述发送端、所述主机和所述接收端,所述主机和所述发送端具有数字签名的能力,所述接收端为嵌入式系统。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
所述接收端向所述主机发送所述公钥;
所述接收端根据所述预置密钥确定所述公钥的校验码,并向所述主机发送所述公钥的校验码;
所述主机根据所述预置密钥对所述公钥和所述公钥的校验码进行验证。
11.根据权利要求10所述的方法,其特征在于,还包括:
在所述接收端向所述主机发送所述公钥之前,所述主机向所述接收端发送请求消息,所述请求消息用于请求所述接收端发送所述公钥。
12.根据权利要求11所述的方法,其特征在于,所述请求消息还用于请求所述接收端发送所述公钥的校验码。
13.根据权利要求8-12任一项所述的方法,其特征在于,所述数字签名算法为RSA公钥密码学算法,所述校验码为基于哈希Hash函数的消息认证码HMAC。
14.根据权利要求8-13任一项所述的方法,其特征在于,所述嵌入式系统为生物识别嵌入式系统。
15.一种签名验证的设备,其特征在于,所述设备具有数字签名的能力,所述设备包括:
接收单元,用于接收发送端发送的消息和所述消息的签名,所述消息的签名是所述发送端根据私钥和数字签名算法确定的;
验证单元,用于根据公钥和所述数字签名算法对所述消息和所述签名进行验证,并在所述公钥和所述私钥对应时,根据预置密钥确定所述消息的校验码,其中,确定所述校验码所使用的算法的复杂度低于所述数字签名算法的复杂度;
发送单元,用于将所述消息和所述校验码发送给接收端,使得所述接收端根据所述校验码对所述消息进行校验,其中,所述接收端为嵌入式系统。
16.根据权利要求15所述的设备,其特征在于,所述接收单元还用于接收所述接收端发送的所述公钥,并接收所述接收端发送的所述公钥的校验码,其中,所述校验码是所述接收端根据所述预置密钥确定的;
所述验证单元还用于根据所述预置密钥对所述公钥和所述公钥的校验码进行验证。
17.根据权利要求16所述的设备,其特征在于,所述发送单元还用于向所述接收端发送请求消息,所述请求消息用于请求所述接收端发送所述公钥。
18.根据权利要求17所述的设备,其特征在于,所述请求消息还用于请求所述接收端发送所述公钥的校验码。
19.根据权利要求15-18任一项所述的设备,其特征在于,所述数字签名算法为RSA公钥密码学算法,所述校验码为基于哈希Hash函数的消息认证码HMAC。
20.根据权利要求15-19任一项所述的设备,其特征在于,所述嵌入式系统为生物识别嵌入式系统。
21.一种签名验证的系统,其特征在于,包括发送端、主机和接收端,所述主机和所述发送端具有数字签名的能力,所述接收端为嵌入式系统;
所述发送端用于根据私钥和数字签名算法确定需要发送的消息的签名,并将所述消息和所述签名发送给所述主机;
所述主机用于根据公钥和所述数字签名算法对所述消息和所述签名进行验证,并在所述公钥和所述私钥对应时,根据预置密钥确定所述消息的校验码,并且将所述消息和所述校验码发送给所述接收端,其中,确定所述校验码所使用的算法的复杂度低于所述数字签名算法的复杂度;
所述接收端用于根据所述校验码对所述消息进行校验,并获取所述消息。
22.根据权利要求21所述的系统,其特征在于,所述接收端还用于向所述主机发送所述公钥,根据所述预置密钥确定所述公钥的校验码,并向所述主机发送所述公钥的校验码;
所述主机还用于根据所述预置密钥对所述公钥和所述公钥的校验码进行验证。
23.根据权利要求22所述的系统,其特征在于,所述主机还用于向所述接收端发送请求消息,所述请求消息用于请求所述接收端发送所述公钥。
24.根据权利要求23所述的系统,其特征在于,所述请求消息还用于请求所述接收端发送所述公钥的校验码。
25.根据权利要求21-24任一项所述的系统,其特征在于,所述数字签名算法为RSA公钥密码学算法,所述校验码为基于哈希Hash函数的消息认证码HMAC。
26.根据权利要求21-25任一项所述的系统,其特征在于,所述嵌入式系统为生物识别嵌入式系统。
CN201780000335.5A 2017-04-25 2017-04-25 签名验证的方法、设备和系统 Active CN107223322B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/081812 WO2018195759A1 (zh) 2017-04-25 2017-04-25 签名验证的方法、设备和系统

Publications (2)

Publication Number Publication Date
CN107223322A true CN107223322A (zh) 2017-09-29
CN107223322B CN107223322B (zh) 2020-07-24

Family

ID=59954328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780000335.5A Active CN107223322B (zh) 2017-04-25 2017-04-25 签名验证的方法、设备和系统

Country Status (2)

Country Link
CN (1) CN107223322B (zh)
WO (1) WO2018195759A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835508A (zh) * 2019-04-23 2020-10-27 深圳市汇顶科技股份有限公司 一种密钥分配部署方法和系统
US20220109579A1 (en) * 2020-10-01 2022-04-07 Robert Bosch Gmbh Method for the digital signing of a message
CN114826772A (zh) * 2022-05-30 2022-07-29 中国联合网络通信集团有限公司 数据完整性验证系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030167407A1 (en) * 2002-03-01 2003-09-04 Brett Howard Authenticated file loader
CN101458638A (zh) * 2007-12-13 2009-06-17 安凯(广州)软件技术有限公司 一种用于嵌入式系统的大规模数据验证方法
US20110314271A1 (en) * 2010-06-18 2011-12-22 Intertrust Technologies Corporation Secure Processing Systems and Methods
US20120005466A1 (en) * 2004-12-20 2012-01-05 Koninklijke Philips Electronics N.V. Data processing device and method for operating such data processing device
CN102572609A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种嵌入式系统中的视频完整性认证方法
CN102819706A (zh) * 2012-07-26 2012-12-12 重庆大学 在现有嵌入式设备上实现可信嵌入式系统的装置和方法
CN103297429A (zh) * 2013-05-23 2013-09-11 北京大学 一种嵌入式升级文件传输方法
CN104052606A (zh) * 2014-06-20 2014-09-17 北京邮电大学 数字签名、签名认证装置以及数字签名方法
CN105787390A (zh) * 2016-03-02 2016-07-20 深圳大学 一种数据完整性的验证方法及其系统
CN106096420A (zh) * 2016-06-15 2016-11-09 京信通信技术(广州)有限公司 嵌入式设备安全启动的方法和装置
CN106416124A (zh) * 2014-06-02 2017-02-15 高通股份有限公司 半确定性数字签名生成

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101442408A (zh) * 2007-11-23 2009-05-27 上海千镭星电子科技有限公司 嵌入式加密系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030167407A1 (en) * 2002-03-01 2003-09-04 Brett Howard Authenticated file loader
US20120005466A1 (en) * 2004-12-20 2012-01-05 Koninklijke Philips Electronics N.V. Data processing device and method for operating such data processing device
CN101458638A (zh) * 2007-12-13 2009-06-17 安凯(广州)软件技术有限公司 一种用于嵌入式系统的大规模数据验证方法
US20110314271A1 (en) * 2010-06-18 2011-12-22 Intertrust Technologies Corporation Secure Processing Systems and Methods
CN102572609A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种嵌入式系统中的视频完整性认证方法
CN102819706A (zh) * 2012-07-26 2012-12-12 重庆大学 在现有嵌入式设备上实现可信嵌入式系统的装置和方法
CN103297429A (zh) * 2013-05-23 2013-09-11 北京大学 一种嵌入式升级文件传输方法
CN106416124A (zh) * 2014-06-02 2017-02-15 高通股份有限公司 半确定性数字签名生成
CN104052606A (zh) * 2014-06-20 2014-09-17 北京邮电大学 数字签名、签名认证装置以及数字签名方法
CN105787390A (zh) * 2016-03-02 2016-07-20 深圳大学 一种数据完整性的验证方法及其系统
CN106096420A (zh) * 2016-06-15 2016-11-09 京信通信技术(广州)有限公司 嵌入式设备安全启动的方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835508A (zh) * 2019-04-23 2020-10-27 深圳市汇顶科技股份有限公司 一种密钥分配部署方法和系统
CN111835508B (zh) * 2019-04-23 2023-02-28 深圳市汇顶科技股份有限公司 一种密钥分配部署方法和系统
US20220109579A1 (en) * 2020-10-01 2022-04-07 Robert Bosch Gmbh Method for the digital signing of a message
CN114826772A (zh) * 2022-05-30 2022-07-29 中国联合网络通信集团有限公司 数据完整性验证系统
CN114826772B (zh) * 2022-05-30 2024-03-08 中国联合网络通信集团有限公司 数据完整性验证系统

Also Published As

Publication number Publication date
CN107223322B (zh) 2020-07-24
WO2018195759A1 (zh) 2018-11-01

Similar Documents

Publication Publication Date Title
CN107085675B (zh) 受控安全代码验证
US8300811B2 (en) Method and device for processing data
EP3061027B1 (en) Verifying the security of a remote server
US8472621B2 (en) Protection of a prime number generation for an RSA algorithm
US10326590B2 (en) Technologies for trusted device on-boarding
US10057071B2 (en) Component for connecting to a data bus, and methods for implementing a cryptographic functionality in such a component
US11281781B2 (en) Key processing methods and apparatuses, storage media, and processors
US8509429B2 (en) Protection of a prime number generation against side-channel attacks
CN109818730B (zh) 盲签名的获取方法、装置和服务器
CN114710351A (zh) 用于在通信过程中改进数据安全性的方法和系统
CN106612180A (zh) 实现会话标识同步的方法及装置
WO2017053014A1 (en) Data protection keys
KR101739203B1 (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
CN111294203A (zh) 信息传输方法
CN110990484A (zh) 基于区块链的信息存储方法、系统、计算机设备及存储介质
CN107223322A (zh) 签名验证的方法、设备和系统
US8311212B2 (en) Method of processing data protected against attacks by generating errors and associated device
CN115664655A (zh) 一种tee可信认证方法、装置、设备及介质
EP3133791B1 (en) Double authentication system for electronically signed documents
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
JPWO2018179293A1 (ja) 検証情報付与装置、検証装置、情報管理システム、方法およびプログラム
CN111600703B (zh) 基于sm2的签名方法、系统、电子设备及存储介质
CN108322464B (zh) 一种密钥验证方法及设备
CN109981671A (zh) 基于加密机的数据处理方法及加密机
CN107026729B (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