CN108667598A - 用于实现安全密钥交换的设备和方法及安全密钥交换方法 - Google Patents

用于实现安全密钥交换的设备和方法及安全密钥交换方法 Download PDF

Info

Publication number
CN108667598A
CN108667598A CN201810398349.3A CN201810398349A CN108667598A CN 108667598 A CN108667598 A CN 108667598A CN 201810398349 A CN201810398349 A CN 201810398349A CN 108667598 A CN108667598 A CN 108667598A
Authority
CN
China
Prior art keywords
key
cryptographic hash
random number
terminal device
information
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
CN201810398349.3A
Other languages
English (en)
Other versions
CN108667598B (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.)
Close Bill Co Ltd
Original Assignee
Close Bill 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 Close Bill Co Ltd filed Critical Close Bill Co Ltd
Priority to CN201810398349.3A priority Critical patent/CN108667598B/zh
Publication of CN108667598A publication Critical patent/CN108667598A/zh
Application granted granted Critical
Publication of CN108667598B publication Critical patent/CN108667598B/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/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了用于实现安全密钥交换的设备和方法及安全密钥交换方法。用于实现安全密钥交换的设备设置于具有网络接入能力的终端设备中,该用于实现安全密钥交换的设备包括:存储共享密钥MK的存储模块;第一计算模块,用于在接收到第一计算模块所在的密钥发送方输入的随机数NB的哈希值和信息X的情况下,利用NB的哈希值和MK对信息X的哈希值进行加密,并向密钥发送方提供加密结果V;第二计算模块,用于在接收到第二计算模块所在的密钥接收方输入的NB和加密结果V的情况下,根据MK和NB的哈希值对加密结果V进行解密,以获得信息X的哈希值,并向密钥接收方输出信息X的哈希值。本公开可以在具有较小消耗的情况下,保证密钥的安全性。

Description

用于实现安全密钥交换的设备和方法及安全密钥交换方法
技术领域
本公开涉及网络通讯技术领域,尤其是涉及一种用于实现安全密钥交换的设备、用于实现安全密钥交换的方法、安全密钥交换方法、计算设备以及机器可读存储介质。
背景技术
随着电子信息技术和网络技术的飞速发展,人们越来越多地通过网络来传输信息。为了保证信息在网络中传输的安全性,信息发送方通常需要使用密钥对信息进行加密,而信息接收方通常需要使用密钥对其接收到的信息进行解密。
发明内容
鉴于上述技术问题,本公开提出了能够有效避免信息传输双方所使用的密钥被中间人获取的用于实现安全密钥交换的设备和方法及安全密钥交换方法。
根据本公开的一个方面,提供了一种用于实现安全密钥交换的设备,设置于具有网络接入能力的终端设备中,所述终端设备被作为安全密钥交换过程中的密钥发送方或者密钥接收方,所述用于实现安全密钥交换的设备包括:存储模块,用于存储共享密钥MK;第一计算模块,用于在接收到第一计算模块所在的密钥发送方输入的随机数NB的哈希值和信息X的情况下,利用所述随机数NB的哈希值和所述共享密钥MK对所述信息X的哈希值进行加密,并向第一计算模块所在的密钥发送方提供加密结果V,其中所述随机数NB由密钥接收方随机产生,所述随机数NB的哈希值由所述密钥接收方传输给密钥发送方,所述信息X由密钥发送方产生,所述加密结果V由密钥发送方传输给密钥接收方;以及第二计算模块,用于在接收到第二计算模块所在的密钥接收方输入的随机数NB和加密结果V的情况下,根据所述共享密钥MK和随机数NB的哈希值对所述加密结果V进行解密,以获得信息X的哈希值,并向第二计算模块所在的密钥接收方输出信息X的哈希值,其中所述信息X的哈希值被作为密钥发送方和密钥接收方之间进行信息交互的密钥。
在一些实施方式中,所述第一计算模块进一步用于:在接收到第一计算模块所在的密钥发送方输入的随机数NB的哈希值和信息X的情况下,利用基于所述共享密钥MK和随机数NB的哈希值串接形成的密钥,对所述信息X的哈希值进行加密,从而获得加密结果V,并向第一计算模块所在的密钥发送方提供加密结果V。
在一些实施方式中,所述第二计算模块进一步用于:在接收到第二计算模块所在的密钥接收方输入的随机数NB和加密结果V的情况下,利用基于所述共享密钥MK和随机数NB的哈希值串接形成的密钥,对所述加密结果V进行解密,从而获得信息X的哈希值,并向所述第二计算模块所在的密钥接收方输出信息X的哈希值。
在一些实施方式中,一旦一次密钥交换过程结束,就清除所述随机数NB。
在一些实施方式中,所述存储模块、第一计算模块和/或第二计算模块通过计算机程序实现,所述计算机程序是基于白盒密码技术和程序混淆技术设计实现的。
在一些实施方式中,所述存储模块、第一计算模块和/或第二计算模块是通过标准超大规模集成电路混淆技术设计实现的。
在一些实施方式中,所述存储模块、第一计算模块和/或第二计算模块是通过混淆芯片技术设计实现的。
在一些实施方式中,所述存储模块、第一计算模块和/或第二计算模块是通过混淆打包电路技术设计实现的。
根据本公开的另一方面,还提供了一种用于实现安全密钥交换的方法,所述方法在具有网络接入能力的终端设备中执行,所述终端设备被作为安全密钥交换过程中的密钥发送方或者密钥接收方,所述方法包括:在接收到作为密钥发送方的终端设备输入的随机数NB的哈希值和信息X的情况下,利用所述随机数NB的哈希值和预先存储的共享密钥MK对所述信息X的哈希值进行加密,并向作为密钥发送方的终端设备提供加密结果V,其中所述随机数NB由作为密钥接收方的终端设备随机产生,所述随机数NB的哈希值由作为密钥接收方的终端设备传输给作为密钥发送方的终端设备,所述信息X由作为密钥发送方的终端设备产生,所述加密结果V由所述作为密钥发送方的终端设备传输给作为密钥接收方的终端设备;在接收到作为密钥接收方的终端设备输入的随机数NB和加密结果V的情况下,根据预先存储的共享密钥MK和随机数NB的哈希值对所述加密结果V进行解密,以获得信息X的哈希值,并向所述作为密钥接收方的终端设备输出信息X的哈希值,其中所述信息X的哈希值被作为密钥接收方和密钥发送方之间进行信息交互的密钥。
在一些实施方式中,所述利用所述随机数NB的哈希值和预先存储的共享密钥MK对所述信息X的哈希值进行加密包括:利用通过预先存储的共享密钥MK和所述随机数NB的哈希值串接形成的密钥,对所述信息X的哈希值进行加密,从而获得加密结果V。
在一些实施方式中,所述根据预先存储的共享密钥MK和随机数NB的哈希值对所述加密结果V进行解密包括:利用通过共享密钥MK和所述随机数NB的哈希值串接形成的密钥,对所述加密结果V进行解密,从而获得信息X的哈希值。
在一些实施方式中,一旦一次密钥交换过程结束,就清除所述随机数NB。
根据本公开的再一个方面,还提供了一种安全密钥交换方法,所述方法包括:作为密钥接收方的终端设备B产生随机数NB,并将随机数NB的哈希值传输给作为密钥发送方的终端设备A;终端设备A在接收到随机数NB的哈希值的情况下,产生信息X,并利用所述随机数NB的哈希值和预先存储的共享密钥MK对所述信息X的哈希值进行加密,将加密结果V传输给终端设备B;终端设备B在接收到所述加密结果V的情况下,根据预先存储的共享密钥MK和随机数NB的哈希值,对所述加密结果V进行解密,获得所述信息X的哈希值;所述信息X的哈希值被作为终端设备A和终端设备B之间进行信息交互的密钥。
在一些实施方式中,所述利用所述随机数NB的哈希值和预先存储的共享密钥MK对所述信息X的哈希值进行加密包括:利用通过共享密钥MK和所述随机数NB的哈希值串接形成的密钥,对所述信息X的哈希值进行加密,从而获得加密结果V。
在一些实施方式中,所述根据预先存储的共享密钥MK和随机数NB的哈希值对所述加密结果V进行解密包括:利用通过共享密钥MK和所述随机数NB的哈希值串接形成的密钥,对所述加密结果V进行解密。
在一些实施方式中,一旦一次密钥交换过程结束,就清除所述随机数NB。
根据本公开的再一个方面,还提供了一种计算设备,其包括:存储器,用于存储计算机程序指令;处理器,用于执行所述存储器中存储的计算机程序指令,所述计算机程序指令在由所述处理器执行时实现上述用于实现安全密钥交换的方法或者安全密钥交换方法中的各步骤。
在公开的再一个方面,还提供了一种机器可读存储介质,其上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现如上文所述的用于安全密钥交换的方法或者安全密钥交换方法。
与现有技术相比,本公开的有益效果包括:
本公开的用于实现安全密钥交换的设备,由于在一次密钥交换过程中,只需要其中的第一计算模块执行一次加密计算或者只需要其中的第二计算模块执行一次解密计算,因此,本公开对所述设备的计算能力以及能源供应能力的要求并不高,从而本公开的设备能够较好地应用于物联网环境中;本公开通过由作为密钥接收方的终端设备产生随机数NB,并向作为密钥发送方的终端设备传输随机数NB的哈希值,且作为密钥发送方的终端设备中的用于实现安全密钥交换的设备会基于作为密钥发送方的终端设备产生的信息X和作为密钥发送方的终端设备接收到的随机数NB的哈希值进行加密计算,并由作为密钥发送方的终端设备将加密结果V提供给作为密钥接收方的终端设备,避免中间人在截获到随机数NB的哈希值时,可以利用随机数NB的哈希值对用于实现安全密钥交换的设备产生的加密结果V进行解密,从而获得作为密钥的信息X的哈希值的现象;
进一步地,本申请通过利用白盒密码技术和程序混淆技术设计实现设备中的存储模块、第一计算模块和第二计算模块,或者利用标准超大规模集成电路混淆技术实现设备中的存储模块、第一计算模块和第二计算模块,或者利用混淆芯片技术实现设备中的存储模块、第一计算模块和第二计算模块,或者利用混淆打包电路技术实现设备中的存储模块、第一计算模块和第二计算模块,可以有效避免通过反向工程获得本申请的作为密钥的信息X的哈希值的现象。
附图说明
在所附权利要求书中具体阐述了本公开的新颖特征。通过参考对在其中利用到本发明原理的说明性实施方式加以阐述的以下详细描述和附图,将会对本发明的特征和优点获得更好的理解。附图仅用于示出实施方式的目的,而并不应当认为是对本发明的限制。而且在所有附图中,用相同的附图标记表示相同的元素,在附图中:
图1示出了本公开的一个应用场景的示意图;
图2示出了依据本公开一示例性实施方式的用于实现安全密钥交换的设备的结构示意图;
图3示出了依据本公开一示例性实施方式的用于实现安全密钥交换的方法的流程图;
图4示出了依据本公开一示例性实施方式的安全密钥交换方法的流程图;以及
图5示出了依据本公开一示例性实施方式的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整地传达给本领域技术人员。在以下详细描述中没有任何内容旨在表明任何特定组件、特征或步骤对于本发明是必不可少的。本领域技术人员将会理解,在不脱离本公开的范围内各种特征或步骤可以彼此替代或结合。
本公开示例性实施方式的用于实现安全密钥交换的设备,通常设置于终端设备中,该终端设备通常具有网络接入能力,例如,该终端设备具有互联网接入能力或者具有物联网接入能力等。该终端设备可以具体为计算机、智能移动电话、平板电脑、智能家电设备、智能交通设备、智能医疗设备或者智能物流设备等。本公开不限制终端设备的具体表现形式。
本公开的包含有用于实现安全密钥交换的设备的终端设备,在与网络中的其他终端设备进行信息交互的过程中,往往需要利用密钥对交互信息进行加密处理,以保证信息传输的安全性。本公开的用于实现安全密钥交换的设备主要用于使两终端设备安全地获得用于对交互信息进行加密的密钥。
本公开的一个应用场景如图1所示。在图1中,终端设备A和终端设备B中均设置有用于实现安全密钥交换的设备。在终端设备A和终端设备B利用本公开提供的技术方案获得了密钥之后,终端设备A利用其获得的密钥对待传输信息A1进行加密处理,并向终端设备B发送加密处理后的信息A1’。终端设备B在接收到来自终端设备A的信息A1’后,利用其获得的密钥对信息A1’进行解密处理,从而获得信息A1。相应地,终端设备B利用其获得的密钥对待传输信息B1进行加密处理,并向终端设备A发送加密处理后的信息B1’。终端设备A在接收到来自终端设备B的信息B1’后,利用其获得的密钥对信息B1’进行解密处理,从而获得信息B1。
图2示出了依据本公开示例性实施方式的用于实现安全密钥交换的设备的结构示意图。如图2所示,本公开的用于实现安全密钥交换的设备主要包括:存储模块200、第一计算模块210以及第二计算模块220。该用于实现安全密钥交换的设备可以分别设置于上述终端设备A和终端设备B中。下面结合终端设备A和终端设备B对各模块分别进行说明。
存储模块200中存储有共享密钥MK。本公开中的共享密钥MK可以认为是很多用于实现安全密钥交换的设备都具有的共享密钥。共享密钥MK通常无法从存储模块200中读取出来,而且,共享密钥MK通常也无法被复制。共享密钥MK可以是在用于实现安全密钥交换的设备出厂或者销售时,注入到存储模块200中。共享密钥MK可以是具有一定长度的字符串等,本公开不限制共享密钥MK的具体表现形式以及将共享密钥MK存储于存储模块200中的具体实现方式。
在下文示例中,假定设置有用于实现安全密钥交换的设备的终端设备A作为密钥发送方,而设置有用于实现安全密钥交换的设备的终端设备B作为密钥接收方。假定终端设备A中设置的用于实现安全密钥交换的设备称为设备a,而终端设备B中设置的用于实现安全密钥交换的设备称为设备b。
终端设备A在接收到来自终端设备B的随机数NB的哈希值的情况下,会产生信息X。该信息X用于生成密钥。上述随机数NB由终端设备B随机产生。终端设备B在产生了随机数NB之后,生成该随机数NB的哈希值。本公开不限制针对随机数NB进行哈希运算的具体实现方式。
终端设备A将随机数NB的哈希值以及信息X提供给设备a。设备a中的第一计算模块210对接收到的信息X进行哈希运算,获得信息X的哈希值。第一计算模块210利用接收到的随机数NB的哈希值和存储模块200中存储的共享密钥MK对信息X的哈希值进行加密处理,获得加密结果V。设备a输出该加密结果V,使终端设备A获得加密结果V。终端设备A向终端设备B发送该加密结果V。另外,设备a还可以向终端设备A输出第一计算模块210运算获得的信息X的哈希值。终端设备A将信息X的哈希值作为其与终端设备B进行信息交互的密钥。
第一计算模块210对信息X的哈希值进行加密处理的一个可选示例为:第一计算模块210对接收到的信息X进行哈希运算,获得信息X的哈希值。第一计算模块210将共享密钥MK和随机数NB的哈希值串接,并对串接结果进行哈希运算。第一计算模块210将串接后的哈希运算结果作为密钥,对信息X的哈希值进行加密,从而获得加密结果V。另外,在一些实施方式中,本公开中的第一计算模块210也可以将共享密钥MK和随机数NB的哈希值串接后的结果作为密钥,对信息X的哈希值进行加密,从而获得加密结果V。在其他实施方式中,本公开中的第一计算模块210也可以针对共享密钥MK和随机数NB的哈希值串接后的结果进行其他计算,并将计算结果作为密钥,对信息X的哈希值进行加密,从而获得加密结果V。本申请不限制第一计算模块210基于共享密钥MK和随机数NB的哈希值串接形成密钥的具体实现方式。
终端设备B在接收到来自终端设备A的加密结果V的情况下,会将其之前产生的随机数NB和加密结果V提供设备b。设备b中的第二计算模块220会针对随机数NB进行哈希运算,生成随机数NB的哈希值。第二计算模块220根据随机数NB的哈希值以及共享密钥MK,对加密结果V进行解密,从而获得信息X的哈希值。设备b向终端设备B输出第二计算模块220获得的信息X的哈希值,从而使终端设备B获得信息X的哈希值。终端设备B可以将当前获得的信息X的哈希值作为其与终端设备A进行信息交互的密钥。终端设备B在获得了密钥后,可以将其之前产生的随机数NB清除。
第二计算模块220对加密结果V进行解密处理的一个可选示例为:第二计算模块220将共享密钥MK和随机数NB的哈希值串接,并对串接结果进行哈希运算。第二计算模块220将串接后的哈希运算结果作为密钥,对接收到的加密结果V进行解密处理,从而获得信息X的哈希值。另外,在一些实施方式中,本公开中的第二计算模块220也可以将共享密钥MK和随机数NB的哈希值串接后的结果作为密钥,对接收到的加密结果V进行解密处理,从而获得信息X的哈希值。在其他实施方式中,本公开中的第二计算模块220也可以针对共享密钥MK和随机数NB的哈希值串接后的结果进行其他计算,并将计算结果作为密钥,对接收到的加密结果V进行解密处理,从而获得信息X的哈希值。本申请不限制第二计算模块220基于共享密钥MK和随机数NB的哈希值串接形成密钥的具体实现方式。
本公开中的随机数NB通常只应用在一次密钥交换过程中。即作为密钥接收方的终端设备会在不同的密钥交换过程中,产生不同的随机数NB,而且,一旦一次密钥交换过程结束,终端设备就将其产生的随机数NB清除。作为密钥发送方的终端设备也会将其接收到的随机数NB的哈希值清除。例如,终端设备B清除其产生的随机数NB以及该随机数NB的哈希值,而终端设备A清除其接收到的随机数NB的哈希值。在终端设备A作为密钥接收方的情况下,终端设备A所产生的随机数NB通常不会与终端设备B所产生的随机数NB相同。
假定终端设备C中设置有本公开的用于实现安全密钥交换的设备(下文称为设备c),同时假定终端设备C可以截获终端设备A和终端设备B之间的密钥交换过程中所传输的信息。在上述假定的情况下,在终端设备B将随机数NB的哈希值传输给终端设备A的过程中,终端设备C可以截获随机数NB的哈希值,在终端设备A将加密结果V提供给终端设备B的过程中,终端设备C可以截获加密结果V,终端设备C将其截获的随机数NB的哈希值和加密结果V提供给设备c,则设备c中的第二计算模块会针对随机数NB的哈希值进行哈希运算,生成随机数NB的哈希值的哈希值,由于设备c中的第二计算模块应使用通过共享密钥MK和随机数NB的哈希值串接形成的密钥,才能对加密结果V执行正确解密处理操作,因此,设备c无法利用通过共享密钥MK和随机数NB的哈希值的哈希值串接形成的密钥对加密结果V执行正确解密处理操作,从而终端设备C无法获得信息X的哈希值,即终端设备C无法获得相应的密钥。
由于本公开中的终端设备A中的设备a在一次安全密钥交换过程中,可以仅执行一次计算操作(即利用随机数NB的哈希值对信息X进行加密处理),而终端设备B中的设备b在一次安全密钥交换过程中,同样可以仅执行一次计算操作(即利用随机数NB的哈希值对加密结果V进行解密处理),因此,本公开对设置于终端设备中的用于实现安全密钥交换的设备的计算能力以及能源供应能力的要求并不高,从而本公开的用于实现安全密钥交换的设备能够较好地应用于物联网环境中。
由上述描述可知,本公开提供的用于实现安全密钥交换的设备可以在具有较小消耗的情况下,保证密钥的安全性。
本公开中的用于实现安全密钥交换的设备通常应使用具有防攻击以及防信息窃取等特点的技术来实现。这些技术不仅应保证本公开中的共享密钥MK无法被窃取,还应保证设备所执行的操作不能够被攻击者分割为多个部分,从而不仅可以避免出现攻击者针对不同的部分各自进行分析的现象,而且可以避免出现攻击者利用某个数值来取代设备所执行操作过程中所采用的某一数值的现象。下面示例性地介绍几种用于实现安全密钥交换的设备的实现方式。
在实现方式1中,本公开中的存储模块200、第一计算模块210以及第二计算模块220中的至少一个模块(例如,所有模块),可以通过计算机程序实现,即通过软件实现。该计算机程序可以是基于白盒密码技术和程序混淆技术设计实现的。白盒密码技术可以防止共享密钥MK被窃取的现象。程序混淆技术通过将随机数NB、随机数NB的哈希值以及信息X等变量分割为多个部分,可以保证变量的安全性。程序混淆技术通过对编译和反编译过程进行混淆,可以避免出现软件被反编译的现象。程序混淆技术通过在程序代码中引入虚假的代码,可以使真正的程序代码看似与虚假的程序代码之间存在相互影响,从而可以避免出现真正的程序代码中的变量被控制的现象。程序混淆技术通过执行随机的语义防护变换,可以避免出现程序代码被攻击者掌握的现象。程序混淆技术通过重用变量名以及变量位置,可以避免出现随机数NB、随机数NB的哈希值以及信息X等变量被窃取的现象。
在实现方式2中,本公开中的存储模块200、第一计算模块210以及第二计算模块220中的至少一个模块(例如,所有模块),可以通过标准超大规模集成电路混淆技术(obfuscation within standard VLSItechnology)设计实现。标准超大规模集成电路混淆技术通过利用CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)、单核处理器或者门级电路(gate level)或者FPGA(Field Programmable GateArray,现场可编程门阵列),来实现本公开的模块,避免出现本公开中的模块被窃取的现象。
在实现方式3中,本公开中的存储模块200、第一计算模块210以及第二计算模块220中的至少一个模块(例如,所有模块),可以通过混淆芯片技术(Obfuscating chiptechnology)设计实现。混淆芯片技术通过利用多层电路或者3维电路可以使为了获得密钥的逆向工程更为复杂,从而有利于避免密钥被窃取的现象。
在实现方式4中,本公开中的存储模块200、第一计算模块210以及第二计算模块220中的至少一个模块(例如,所有模块),可以通过混淆打包(Obfuscating packaging)电路技术设计实现。混淆打包电路技术通过在存储的整个包中的部分内容被读取时,使包中的其他部分内容被破坏,可以避免出现本公开中的模块被窃取的现象。
本公开通过利用上述四种实现方式来实现用于实现安全密钥交换的设备,可以提高作为密钥的信息X的哈希值的安全性。另外,上述四种实现方式仅为举例说明,本公开也可以采用其他技术来实现用于实现安全密钥交换的设备。本公开不限制实现用于实现安全密钥交换的设备的技术的具体表现形式,也不限制实现用于实现安全密钥交换的设备的技术的具体实现过程。
图3示出了依据本公开示例性实施方式的用于实现安全密钥交换的方法的流程图。如图3所示,本公开的用于实现安全密钥交换的方法主要包括:S300以及S310。本公开的用于实现安全密钥交换的方法通常在具有网络接入能力的终端设备中执行。执行本公开的方法的终端设备通常具有互联网接入能力或者物联网接入能力等网络接入能力。执行本公开的方法的终端设备可以作为安全密钥交换过程中的密钥发送方,也可以作为安全密钥交换过程中的密钥接收方。下面对图3中的各步骤分别进行说明。
接收到来自终端设备(下文称为对端终端设备)的随机数NB的哈希值的终端设备(下文称为本端终端设备),产生信息X,并将随机数NB的哈希值和信息X提供给设置于本端终端设备中的用于实现安全密钥交换的设备(下文简称为密钥交换设备),该密钥交换设备执行下文S300。上述本端终端设备接收到的随机数NB的哈希值是由对端终端设备随机产生的随机数NB形成的。
在步骤S300,对接收到的信息X进行哈希运算,并利用接收到的随机数NB的哈希值和密钥交换设备中预先存储的共享密钥MK对计算获得的信息X的哈希值进行加密处理,例如,密钥交换设备将预先存储的共享密钥MK和随机数NB的哈希值串接,并对串接结果进行哈希运算,密钥交换设备将串接后的哈希运算结果作为密钥,对信息X的哈希值进行加密处理,从而获得加密结果V。再例如,密钥交换设备将预先存储的共享密钥MK和随机数NB的哈希值串接,密钥交换设备将串接后的值作为密钥,对信息X的哈希值进行加密处理,从而获得加密结果V。密钥交换设备向本端终端设备提供加密结果V。
在上述S300中,本端终端设备作为密钥发送方,本端终端设备可以将信息X的哈希值作为其与对端终端设备进行信息交互的密钥。然而,本端终端设备也可以作为密钥接收方。在本端终端设备作为密钥接收方的情况下,下文S310被执行。
在本端终端设备接收到来自对端终端设备的加密结果V的情况下,本端终端设备将其产生的随机数NB和其接收到的加密结果V提供给设置于本端终端设备中的密钥交换设备,该密钥交换设备执行下文S310。
在步骤S310,对接收到的随机数NB进行哈希运算,然后,利用预先存储的共享密钥MK和计算获得的随机数NB的哈希值对接收到的加密结果V进行解密处理,例如,密钥交换设备将预先存储的共享密钥MK和计算获得的随机数NB的哈希值串接,并对串接结果进行哈希运算,密钥交换设备将串接后的哈希运算结果作为密钥,对加密结果V进行解密处理,从而获得信息X的哈希值。再例如,密钥交换设备将预先存储的共享密钥MK和计算获得的随机数NB的哈希值串接,密钥交换设备将串接后的值作为密钥,对加密结果V进行解密处理,从而获得信息X的哈希值。密钥交换设备可以向其所在的本端终端设备输出信息X的哈希值。本端终端设备可以将信息X的哈希值作为其与对端终端设备进行信息交互的密钥。
一旦上述密钥交换过程结束,随机数NB以及随机数NB的哈希值均会被清除。例如,产生随机数NB的终端设备会将随机数NB和随机数NB的哈希值清除,而接收到随机数NB的哈希值的终端设备会将随机数NB的哈希值清除。
图4示出了依据本公开示例性实施方式的安全密钥交换方法的流程图。如图4所示,本公开的安全密钥交换方法主要包括步骤:S400、S410以及S420。本公开的安全密钥交换方法通常在具有网络接入能力的两个终端设备中执行。执行本公开的方法的两个终端设备通常均具有互联网接入能力或者物联网接入能力等网络接入能力。执行本公开的方法的两个终端设备中的其中一个(终端设备A)作为密钥发送方,其中另一个(终端设备B)作为密钥接收方。下面对图4中的各步骤分别进行说明。
在步骤S400,作为密钥接收方的终端设备B,产生随机数NB,并将随机数NB的哈希值传输给作为密钥发送方的终端设备A。例如,终端设备B针对其产生的随机数NB进行哈希运算,并将计算获得随机数NB的哈希值向终端设备A发送。当然,终端设备B也可以将其产生的随机数NB提供给其内部设置的设备b,由设备b针对随机数NB进行哈希运算,并将哈希运算结果提供给终端设备B。
在步骤S410,作为密钥发送方的终端设备A,在接收到来自终端设备B的随机数NB的哈希值的情况下,产生信息X,并利用接收到的随机数NB的哈希值和共享密钥MK对信息X的哈希值进行加密,将加密结果V传输给终端设备B。例如,终端设备A将接收到的随机数NB的哈希值提供给其内部设置的设备a,由设备a利用接收到的随机数NB的哈希值和共享密钥MK对信息X的哈希值进行加密处理,获得加密结果V。设备a输出该加密结果V,使终端设备A获得加密结果V。例如,设备a可以对接收到的信息X进行哈希运算,获得信息X的哈希值,设备a将共享密钥MK和随机数NB的哈希值串接,并对串接结果进行哈希运算,设备a将串接后的哈希运算结果作为密钥,对信息X的哈希值进行加密,从而获得加密结果V。再例如,设备a可以对接收到的信息X进行哈希运算,获得信息X的哈希值,设备a将共享密钥MK和随机数NB的哈希值串接,设备a将串接后的值作为密钥,对信息X的哈希值进行加密,从而获得加密结果V。
在步骤S420,作为密钥接收方的终端设备B,在接收到来自作为密钥发送方的终端设备A的加密结果V的情况下,根据共享密钥MK和随机数NB的哈希值,对该加密结果V进行解密处理,从而获得信息X的哈希值。例如,终端设备B将其产生的随机数NB和其接收到的加密结果V提供给其内部设置的设备b,由设备b对接收到的随机数NB进行哈希运算,获得随机数NB的哈希值,设备b利用该随机数NB的哈希值和共享密钥MK对加密结果V进行解密处理,获得信息X的哈希值。设备b输出该信息X的哈希值,使终端设备B获得信息X的哈希值。例如,设备b可以对接收到的随机数NB进行哈希运算,获得随机数NB的哈希值,设备b将共享密钥MK和随机数NB的哈希值串接,并对串接结果进行哈希运算,设备b将串接后的哈希运算结果作为密钥,对加密结果V进行解密处理,从而获得信息X的哈希值。再例如,设备b可以对接收到的随机数NB进行哈希运算,获得随机数NB的哈希值,设备b将共享密钥MK和随机数NB的哈希值串接,设备b将串接后的值作为密钥,对加密结果V进行解密处理,从而获得信息X的哈希值。终端设备B可以将信息X的哈希值作为其与终端设备A进行信息交互的密钥。
在本公开的一个方面,如图5所示,还提供了一种计算设备500,其包括处理器501和存储器502,其中所述存储器502上存储有计算机程序指令5020,所述计算机程序指令5020在由所述处理器501执行时实现上文描述的用于实现安全密钥交换的方法以及安全密钥交换方法。由于前面已经详细描述了用于实现安全密钥交换的方法以及安全密钥交换方法,故在此不再详述。
在公开的另一方面,还提供了一种机器可读存储介质,该机器可读存储介质上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现上文所述的用于实现安全密钥交换的方法以及安全密钥交换方法。对于用于实现安全密钥交换的方法以及安全密钥交换方法的技术方案,在上文已经进行了详细描述,在此不再赘述。在一些实施方式中,机器可读存储介质是数字处理设备的有形组件。在另一些实施方式中,机器可读存储介质可选地是可从数字处理设备移除的。在一些实施方式中,举非限制性示例而言,机器可读存储介质可以包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、闪速存储器、可编程存储器(PROM)、可擦除可编程存储器(EPROM)、固态存储器、磁碟、光盘、云计算系统或服务等。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
在本文所提供的说明书中,说明了大量的具体细节。然而,应当理解,本公开的实施方式可以在没有这些具体细节的情况下实践。在一些实施方式中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
虽然本文已经示出和描述了本发明的优选实施方式,但对于本领域技术人员显而易见的是,这样的实施方式只是以示例的方式提供的。本领域技术人员现将会在不偏离本发明的情况下想到许多更改、改变和替代。应当理解,在实践本发明的过程中可以采用对本文所描述的本发明实施方式的各种替代方案。以下权利要求旨在限定本发明的范围,并因此覆盖这些权利要求范围内的方法和结构及其等同项。

Claims (18)

1.一种用于实现安全密钥交换的设备,设置于具有网络接入能力的终端设备中,所述终端设备被作为安全密钥交换过程中的密钥发送方或者密钥接收方,所述用于实现安全密钥交换的设备包括:
存储模块,用于存储共享密钥MK;
第一计算模块,用于在接收到第一计算模块所在的密钥发送方输入的随机数NB的哈希值和信息X的情况下,利用所述随机数NB的哈希值和所述共享密钥MK对所述信息X的哈希值进行加密,并向第一计算模块所在的密钥发送方提供加密结果V,其中所述随机数NB由密钥接收方随机产生,所述随机数NB的哈希值由所述密钥接收方传输给密钥发送方,所述信息X由密钥发送方产生,所述加密结果V由密钥发送方传输给密钥接收方;以及
第二计算模块,用于在接收到第二计算模块所在的密钥接收方输入的随机数NB和加密结果V的情况下,根据所述共享密钥MK和随机数NB的哈希值对所述加密结果V进行解密,以获得信息X的哈希值,并向第二计算模块所在的密钥接收方输出信息X的哈希值,其中所述信息X的哈希值被作为密钥发送方和密钥接收方之间进行信息交互的密钥。
2.如权利要求1所述的用于实现安全密钥交换的设备,其中,所述第一计算模块进一步用于:
在接收到第一计算模块所在的密钥发送方输入的随机数NB的哈希值和信息X的情况下,利用通过所述共享密钥MK和随机数NB的哈希值串接形成的密钥,对所述信息X的哈希值进行加密,从而获得加密结果V,并向第一计算模块所在的密钥发送方提供加密结果V。
3.如权利要求2所述的用于实现安全密钥交换的设备,其中,所述第二计算模块进一步用于:
在接收到第二计算模块所在的密钥接收方输入的随机数NB和加密结果V的情况下,利用通过所述共享密钥MK和随机数NB的哈希值串接形成的密钥,对所述加密结果V进行解密,从而获得信息X的哈希值,并向第二计算模块所在的密钥接收方输出信息X的哈希值。
4.如权利要求1至3中任一项所述的用于实现安全密钥交换的设备,其中,一旦一次密钥交换过程结束,就清除所述随机数NB。
5.如权利要求1至3中任一项所述的用于实现安全密钥交换的设备,其中,所述存储模块、第一计算模块和/或第二计算模块通过计算机程序实现,且所述计算机程序是基于白盒密码技术和程序混淆技术设计实现的。
6.如权利要求1至3中任一项所述的用于实现安全密钥交换的设备,其中,所述存储模块、第一计算模块和/或第二计算模块是通过标准超大规模集成电路混淆技术设计实现的。
7.如权利要求1至3中任一项所述的用于实现安全密钥交换的设备,其中,所述存储模块、第一计算模块和/或第二计算模块是通过混淆芯片技术设计实现的。
8.如权利要求1至3中任一项所述的用于实现安全密钥交换的设备,其中,所述存储模块、第一计算模块和/或第二计算模块是通过混淆打包电路技术设计实现的。
9.一种用于实现安全密钥交换的方法,所述方法在具有网络接入能力的终端设备中执行,所述终端设备被作为安全密钥交换过程中的密钥发送方或者密钥接收方,所述方法包括:
在接收到作为密钥发送方的终端设备输入的随机数NB的哈希值和信息X的情况下,利用所述随机数NB的哈希值和预先存储的共享密钥MK对所述信息X的哈希值进行加密,并向作为密钥发送方的终端设备提供加密结果V,其中所述随机数NB由作为密钥接收方的终端设备随机产生,所述随机数NB的哈希值由作为密钥接收方的终端设备传输给作为密钥发送方的终端设备,所述信息X由作为密钥发送方的终端设备产生,所述加密结果V由作为密钥发送方的终端设备传输给作为密钥接收方的终端设备;以及
在接收到作为密钥接收方的终端设备输入的随机数NB和加密结果V的情况下,根据预先存储的共享密钥MK和随机数NB的哈希值对所述加密结果V进行解密,以获得信息X的哈希值,并向作为密钥接收方的终端设备输出信息X的哈希值,其中所述信息X的哈希值被作为密钥接收方和密钥发送方之间进行信息交互的密钥。
10.如权利要求9所述的用于实现安全密钥交换的方法,其中,所述利用所述随机数NB的哈希值和预先存储的共享密钥MK对所述信息X的哈希值进行加密进一步包括:
利用通过预先存储的共享密钥MK和所述随机数NB的哈希值串接形成的密钥,对所述信息X的哈希值进行加密,从而获得加密结果V。
11.如权利要求10所述的用于实现安全密钥交换的方法,其中,所述根据预先存储的共享密钥MK和随机数NB的哈希值对所述加密结果V进行解密进一步包括:
利用通过预先存储的共享密钥MK和所述随机数NB的哈希值串接形成的密钥,对所述加密结果V进行解密,从而获得信息X的哈希值。
12.如权利要求9至11所述的用于实现安全密钥交换的方法,其中,一旦一次密钥交换过程结束,就清除所述随机数NB。
13.一种安全密钥交换方法,包括:
作为密钥接收方的终端设备B产生随机数NB,并将随机数NB的哈希值传输给作为密钥发送方的终端设备A;
终端设备A在接收到随机数NB的哈希值的情况下,产生信息X,并利用所述随机数NB的哈希值和预先存储的共享密钥MK对所述信息X的哈希值进行加密,并将加密结果V传输给终端设备B;以及
终端设备B在接收到所述加密结果V的情况下,根据预先存储的共享密钥MK和随机数NB的哈希值,对所述加密结果V进行解密,获得所述信息X的哈希值;
其中所述信息X的哈希值被作为终端设备A和终端设备B之间进行信息交互的密钥。
14.如权利要求13所述的安全密钥交换方法,其中,所述利用所述随机数NB的哈希值和预先存储的共享密钥MK对所述信息X的哈希值进行加密进一步包括:
利用通过共享密钥MK和所述随机数NB的哈希值串接形成的密钥,对所述信息X的哈希值进行加密,从而获得加密结果V。
15.如权利要求14所述的安全密钥交换方法,其中,所述根据预先存储的共享密钥MK和随机数NB的哈希值对所述加密结果V进行解密进一步包括:
利用通过共享密钥MK和所述随机数NB的哈希值串接形成的密钥,对所述加密结果V进行解密。
16.如权利要求13至15所述的安全密钥交换方法,其中,一旦一次密钥交换过程结束,就清除所述随机数NB。
17.一种计算设备,包括:
存储器,用于存储计算机程序指令;
处理器,用于执行所述存储器中存储的计算机程序指令,且所述计算机程序指令在由所述处理器执行时实现上述权利要求9至16中任一权利要求中的步骤。
18.一种机器可读存储介质,其上存储有计算机程序指令,其中所述计算机程序指令在由处理器执行时实现如权利要求9至16中任一权利要求中的步骤。
CN201810398349.3A 2018-04-28 2018-04-28 用于实现安全密钥交换的设备和方法及安全密钥交换方法 Active CN108667598B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810398349.3A CN108667598B (zh) 2018-04-28 2018-04-28 用于实现安全密钥交换的设备和方法及安全密钥交换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810398349.3A CN108667598B (zh) 2018-04-28 2018-04-28 用于实现安全密钥交换的设备和方法及安全密钥交换方法

Publications (2)

Publication Number Publication Date
CN108667598A true CN108667598A (zh) 2018-10-16
CN108667598B CN108667598B (zh) 2021-10-15

Family

ID=63780414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810398349.3A Active CN108667598B (zh) 2018-04-28 2018-04-28 用于实现安全密钥交换的设备和方法及安全密钥交换方法

Country Status (1)

Country Link
CN (1) CN108667598B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109274502A (zh) * 2018-11-02 2019-01-25 克洛斯比尔有限公司 公钥加密及密钥签名的创建方法、设备及可读存储介质
CN113556225A (zh) * 2021-07-07 2021-10-26 深圳前海新心数字科技有限公司 一种基于哈希及密钥交换的高效psi方法
CN114221755A (zh) * 2021-12-17 2022-03-22 建信金融科技有限责任公司 用于样本对齐的方法和装置
CN114726543A (zh) * 2022-04-12 2022-07-08 北京信息科技大学 报文链构建及密钥链生成、报文发送及接收方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060034454A1 (en) * 2004-08-12 2006-02-16 Damgaard Ivan B Exponential data transform to enhance security
CN101291325A (zh) * 2007-04-17 2008-10-22 三星电子株式会社 对消息加密的方法以及对消息解密的方法
CN101895538A (zh) * 2010-06-30 2010-11-24 北京握奇数据系统有限公司 建立数据交互通道的方法和系统、智能卡、服务器
CN102325320A (zh) * 2011-09-14 2012-01-18 北京握奇数据系统有限公司 一种无线安全通信方法及系统
CN104488218A (zh) * 2012-07-05 2015-04-01 克里普特欧贝西克株式会社 共享密钥生成装置、加密装置、解密装置、共享密钥生成方法、加密方法、解密方法以及程序
CN105281909A (zh) * 2015-06-26 2016-01-27 浙江巨联科技股份有限公司 一种加解密机制及采用该加解密机制的物联网锁系统
CN106487749A (zh) * 2015-08-26 2017-03-08 阿里巴巴集团控股有限公司 密钥生成方法及装置
CN107038383A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种数据处理的方法和设备
CN107070662A (zh) * 2017-03-23 2017-08-18 西安电子科技大学 基于混淆技术的加密盲签名方法
CN107294714A (zh) * 2017-07-31 2017-10-24 美的智慧家居科技有限公司 密钥协商方法、装置及其设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060034454A1 (en) * 2004-08-12 2006-02-16 Damgaard Ivan B Exponential data transform to enhance security
CN101291325A (zh) * 2007-04-17 2008-10-22 三星电子株式会社 对消息加密的方法以及对消息解密的方法
CN101895538A (zh) * 2010-06-30 2010-11-24 北京握奇数据系统有限公司 建立数据交互通道的方法和系统、智能卡、服务器
CN102325320A (zh) * 2011-09-14 2012-01-18 北京握奇数据系统有限公司 一种无线安全通信方法及系统
CN104488218A (zh) * 2012-07-05 2015-04-01 克里普特欧贝西克株式会社 共享密钥生成装置、加密装置、解密装置、共享密钥生成方法、加密方法、解密方法以及程序
CN105281909A (zh) * 2015-06-26 2016-01-27 浙江巨联科技股份有限公司 一种加解密机制及采用该加解密机制的物联网锁系统
CN106487749A (zh) * 2015-08-26 2017-03-08 阿里巴巴集团控股有限公司 密钥生成方法及装置
CN107038383A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种数据处理的方法和设备
CN107070662A (zh) * 2017-03-23 2017-08-18 西安电子科技大学 基于混淆技术的加密盲签名方法
CN107294714A (zh) * 2017-07-31 2017-10-24 美的智慧家居科技有限公司 密钥协商方法、装置及其设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109274502A (zh) * 2018-11-02 2019-01-25 克洛斯比尔有限公司 公钥加密及密钥签名的创建方法、设备及可读存储介质
CN109274502B (zh) * 2018-11-02 2021-11-23 克洛斯比尔有限公司 公钥加密及密钥签名的创建方法、设备及可读存储介质
CN113556225A (zh) * 2021-07-07 2021-10-26 深圳前海新心数字科技有限公司 一种基于哈希及密钥交换的高效psi方法
CN114221755A (zh) * 2021-12-17 2022-03-22 建信金融科技有限责任公司 用于样本对齐的方法和装置
CN114221755B (zh) * 2021-12-17 2023-06-13 建信金融科技有限责任公司 用于样本对齐的方法和装置
CN114726543A (zh) * 2022-04-12 2022-07-08 北京信息科技大学 报文链构建及密钥链生成、报文发送及接收方法及装置
CN114726543B (zh) * 2022-04-12 2023-07-18 北京信息科技大学 基于报文链的密钥链生成、报文发送及接收方法及装置

Also Published As

Publication number Publication date
CN108667598B (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
CN110324146B (zh) 对离线唯密文攻击的缓解
CN108667598A (zh) 用于实现安全密钥交换的设备和方法及安全密钥交换方法
CN103988461B (zh) 用于对数据进行解密的设备和方法
CN106790253A (zh) 基于区块链的认证方法和装置
US9948459B2 (en) Multiple encrypting method and system for encrypting a file and/or a protocol
CN107171785A (zh) 一种基于区块链技术的数字版权管理方法
CN108075882A (zh) 密码卡及其加解密方法
US11431491B2 (en) Protection of the execution of cipher algorithms
CN106529308A (zh) 一种数据加密方法、装置及移动终端
KR102397579B1 (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
CN102201137A (zh) 网络安全终端以及基于该终端的交互系统和交互方法
CN105592107A (zh) 一种基于fpga的工业过程数据安全采集装置及方法
CN106953723A (zh) 防止dfa攻击的拆分和合并方法
CN105610837A (zh) 用于scada系统主站与从站间身份认证的方法及系统
CN113722683B (zh) 模型保护方法、装置、设备、系统以及存储介质
CN109245894A (zh) 一种基于智能合约的分布式云存储系统
CN107171811A (zh) 一种基于Present算法的轻量级RFID安全认证方法
Shi et al. An ultra-lightweight white-box encryption scheme for securing resource-constrained IoT devices
CN101741826A (zh) 在虚拟化平台上实现加密卸载的系统和方法
CN110417553A (zh) 多方保密通信方法、装置及用户终端
Goel et al. LEOBAT: Lightweight encryption and OTP based authentication technique for securing IoT networks
CN109391469B (zh) 在控制领域中用于实现安全功能的方法和装置
Li et al. Trusting computing as a service for blockchain applications
Kavya et al. Vulnerability analysis and security system for NFC-enabled mobile phones
Drăguşin et al. A Brief Overview Of Current Encryption Techniques Used In Embedded Systems: Present And Future Technologies

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