CN110022320B - 一种通信配对方法及通信装置 - Google Patents

一种通信配对方法及通信装置 Download PDF

Info

Publication number
CN110022320B
CN110022320B CN201910275903.3A CN201910275903A CN110022320B CN 110022320 B CN110022320 B CN 110022320B CN 201910275903 A CN201910275903 A CN 201910275903A CN 110022320 B CN110022320 B CN 110022320B
Authority
CN
China
Prior art keywords
key
public key
pairing
intermediate value
temporary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910275903.3A
Other languages
English (en)
Other versions
CN110022320A (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.)
Beijing Wikipedia Technology Co.,Ltd.
Original Assignee
Beijing Wikipedia 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 Beijing Wikipedia Technology Co ltd filed Critical Beijing Wikipedia Technology Co ltd
Priority to CN201910275903.3A priority Critical patent/CN110022320B/zh
Publication of CN110022320A publication Critical patent/CN110022320A/zh
Application granted granted Critical
Publication of CN110022320B publication Critical patent/CN110022320B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例公开了一种通信配对方法,应用于第一设备,该方法包括:向第二设备发送配对请求后,从第二设备接收第二临时公钥;生成第一临时公钥和第一临时私钥,并基于输入第一设备的动态密码生成第一中间值,基于第一临时公钥和第二临时公钥生成第二中间值,基于第一中间值和第二中间值生成第一验证码,将第一临时公钥和第一验证码发送给第二设备进行第一验证;在第一验证通过之后,与第二设备交换配对公钥。本发明实施例还公开了一种通信装置。通过本发明实施例的配对方案,能够建立具有较高安全性和易用性的通信密钥。

Description

一种通信配对方法及通信装置
技术领域
本发明涉及信息安全技术领域,特别涉及一种通信配对方法及通信装置。
背景技术
设备之间的通信通道,特别是无线通信通道,容易受到恶意攻击者的窃听和对通信数据的篡改。因此,需要在通信通道上进行数据加密。配对是指在两个设备之间建立互相信任的关系,能够安全的协商通信密钥,从而在设备间建立安全的数据通道。
现有技术中,通常在设备上,预先设置相同的加密密钥。这种方式,需要设备在出厂时进行统一设置,如果设备由不同厂商生产,则在不同厂商间需要协商共同的密钥,密钥的协商和管理成本很高,且容易泄露。
现有技术中,也有采用Diffie-Hellman算法协商密钥的,Diffie-Hellman算法的缺点是存在中间人攻击问题,攻击者可以在通信通道上截获密钥协商信息,而分别与通信双方建立通信密钥。
发明内容
有鉴于此,本发明实施例提出了一种通信配对方法和通信装置,能够解决现有技术中的安全风险,攻击者无法通过在通信信道上截获密钥协商信息来进行中间人攻击。
为此,本发明实施例一方面提出了一种通信配对方法,应用于第一设备,该方法包括:向第二设备发送配对请求后,从第二设备接收第二临时公钥;生成第一临时公钥和第一临时私钥,并基于输入第一设备的动态密码生成第一中间值,基于第一临时公钥和第二临时公钥生成第二中间值,基于第一中间值和第二中间值生成第一验证码,将第一临时公钥和第一验证码发送给第二设备进行第一验证;在第一验证通过之后,与第二设备交换配对公钥。
本发明实施例另一方面提出了一种通信配对方法,应用于第一设备,包括:生成第三临时公钥和第三临时私钥,将第三临时公钥发送给第二设备,并从第二设备接收配对公钥标识密文和第四临时公钥;基于约定的算法和约定的参数计算第二密钥,使用第二密钥从所述配对公钥标识密文获得配对公钥标识和第一校验值,所述约定的参数包括第三临时私钥和第四临时公钥;使用与配对公钥标识对应的配对公钥对所述第一校验值进行第三验证;在第三验证通过之后,以所述第二密钥为通信密钥与第二设备进行数据通信。
本发明实施例同时提供了一种通信装置,其作为第一设备,包括:存储器,其配置为存储预定的计算机指令;处理器,其配置为执行所述预定的计算机指令以实现前述任一通信配对方法实施例中的处理。
通过本发明实施例的通信配对方法和通信装置,待配对的双方设备先进行基于临时公钥和动态密码的验证,验证通过后双方设备交换配对公钥,以便进行配对和通信,一旦配对成功,可以很容易地建立一个有一定时效的通信密钥,具有很高的易用性。
附图说明
图1为本发明一个实施例的通信配对方法的示意性流程图;
图2为本发明另一实施例的通信配对方法的示意性流程图;
图3为本发明另一实施例的通信配对方法的示意性流程图;
图4为本发明的通信配对方法的一个示意性实施例的流程图。
具体实施方式
下面参照附图对本发明的各个实施例进行详细说明。
图1为本发明一个实施例的通信配对方法的示意性流程图。本发明实施例的通信配对方法应用于要进行通信配对和数据传输的两个通信设备(第一设备和第二设备)中的发出配对请求的一个通信设备(第一设备)。
如图1所示,本发明实施例的通信配对方法包括:
S11、第一设备向第二设备发送配对请求后,从第二设备接收第二临时公钥;
S12、生成第一临时公钥和第一临时私钥,并基于输入第一设备的动态密码生成第一中间值,基于第一临时公钥和第二临时公钥生成第二中间值,基于第一中间值和第二中间值生成第一验证码,将第一临时公钥和第一验证码发送给第二设备进行第一验证;
S13、在第一验证通过之后,与第二设备交换配对公钥。
第一设备和第二设备可以由同一用户所有,也可以由不同用户所有。第一设备和第二设备通过广播信号及请求连接而建立起通信通道后,第一设备向第二设备发出通信配对请求。第二设备接收到来自第一设备的通信配对请求后,生成第二临时公钥和第二临时私钥,将其中的第二临时公钥发送给第一设备。
用户向第一设备输入动态密码,用于第一设备基于动态密码生成第一中间值。动态密码可以是第二设备生成并显示给用户后由用户输入到第一设备中,也可以是由其他设备生成并显示或发送给第一设备的用户和第二设备的用户后由用户分别输入到第一设备和第二设备中。第一设备和第二设备可以预先协商基于动态密码生成第一中间值的算法,以便第一设备和第二设备能够基于同一动态密码生成相同的第一中间值。生成第一中间值的算法例如可以是MD5、SHA1、MAC等。
第一设备生成自身的第一临时公钥和第二临时公钥,并在从第二设备接收到第二临时公钥后,基于第一临时公钥和第二临时公钥生成第二中间值。生成第二中间值的算法也由第一设备和第二设备预先协商,以便第一设备和第二设备均能够基于第一临时公钥和第二临时公钥生成相同的第二中间值。生成第二中间值的算法可以与生成第一中间值的算法相同或者不同,例如也可以是MD5、SHA1、MAC等。
在生成第一中间值和第二中间值后,第一设备基于第一中间值和第二中间值生成第一验证码。生成第一验证码时例如可以直接使用MD5、SHA1、MAC等算法对第一中间值和第二中间值进行运算得到,也可以先对第一中间值和第二中间值使用与第二设备协商的约定算法计算第三中间值,再使用MD5、SHA1、MAC等算法对第三中间值进行运算得到,等等。
生成第一验证码后,第一设备将生成的第一验证码与为自身生成的第一临时公钥发送给第二设备进行验证。第二设备接收到来自第一设备的第一验证码和第一临时公钥后,基于上述动态密码用与第一设备协商的算法生成一个中间值,基于第一临时公钥和第二临时公钥用与第一设备协商的算法生成一个中间值,并基于所生成的这两个中间值用与第一设备协商的算法生成一个验证码,将生成的验证码与从第一设备接收的第一验证码进行比较,如比较结果一致则通过第一验证,第一设备与第二设备进行配对公钥的交换,完成第一设备与第二设备之间的通信配对。
在第一设备和第二设备交换配对公钥时,可以分别使用对方的设备公钥对配对公钥进行加密后发送给对方,也可以使用预先协商的对称密钥对配对公钥加密后再用对方的设备公钥对该对称密钥加密并将配对公钥密文和对称密钥密文发送给对方。此外,在发送配对公钥时,还可以同时将配对公钥的标识一同发送给对方,以便对配对公钥进行管理,也便于根据标识查找不同设备的配对公钥。另外,在发送配对公钥时还可以使用配对私钥对配对公钥进行签名运算,并将得到的数字签名与配对公钥一同发送给对方,以便对方使用发送方设备的配对公钥对数字签名进行验签,进一步提高设备间配对的安全性。
通过本发明实施例的通信配对方法,在进行配对前的验证时,不但使用基于第一设备的临时公钥和第二设备的临时公钥生成的中间值,还使用基于第一设备和第二设备两者共享的动态密码生成的中间值来生成用于进行配对验证的验证码,动态密码并不通过通信线路传输给第一设备,而是由用户输入第一设备,实现了安全的配对验证和配对密钥的安全派送。即使攻击者在第一设备和第二设备之间的通信通道上截获了第一设备的临时公钥和第二设备的临时公钥,也无法无得动态密码,无法通过中间人攻击的手段将其非法设备与作为合法设备的第一设备和第二设备分别进行配对,从而无法与第一设备和第二设备建立起合法的配对关系。此外,通信设备厂商也无需事先在通信设备中预置通信密钥,避免了在不同厂商之间协商共同密钥的繁琐操作及不安全性。
图2为本发明另一实施例的通信配对方法的示意性流程图。
如图2所示,本发明实施例的通信配对方法包括:
S21、第一设备向第二设备发送配对请求后,从第二设备接收第二临时公钥;
S22、生成第一临时公钥和第一临时私钥,并基于输入第一设备的动态密码生成第一中间值,基于第一临时公钥和第二临时公钥生成第二中间值,基于第一中间值和第二中间值生成第一验证码,将第一临时公钥和第一验证码发送给第二设备进行第一验证;
S23、在第一验证通过之后,从第二设备接收第二验证码并进行第二验证,也即,基于第一临时公钥和第二临时公钥中的至少一个以及第一验证码生成第三验证码,并将第三验证码与第二验证码进行比较;
S24、在第二验证通过之后,与第二设备交换配对公钥。
本发明实施例中S21-S22与图1所示实施例中的S11-S12相同,在此省略具体说明,下面具体对S23-S24进行说明。
在本发明实施例中,第二设备对第一验证码进行验证通过后,还生成第二验证码返回给第一设备进行第二验证,第一设备通过第二验证后才进行第一设备和第二设备之间交换配对公钥的操作。具体而言,在本发明一个实施例中,第二设备对第一验证码进行验证通过后,可以使用与第一设备协商的算法对由第一验证码和第一临时公钥组成的数据进行运算生成第二验证码发送给第一设备进行第二验证,第二设备使用相同的算法对由第一验证码和第一临时公钥组成的数据进行运算生成验证码并将生成的验证码与第二设备发来的第二验证码进行对比,如果对比一致则通过第二验证,否则结束配对流程。在本发明另一个实施例中,第二设备对第一验证码进行验证通过后,可以使用协商算法对由第一验证码和第二临时公钥组成的数据进行运算生成第二验证码发送给第一设备进行第二验证,第二设备使用相同的算法对由第一验证码和第二临时公钥组成的数据进行运算生成验证码并将生成的验证码与第二设备发来的第二验证码进行对比验证。在本发明再一个实施例中,第二设备对第一验证码进行验证通过后,可以使用协商算法对由第一验证码、第一临时公钥和第二临时公钥组成的数据进行运算生成第二验证码发送给第一设备进行第二验证,第二设备使用相同的算法对由第一验证码和第二临时公钥组成的数据进行运算生成验证码并将生成的验证码与第二设备发来的第二验证码进行对比进行验证。
通过本发明实施例的通信配对方法,第二设备在完成对第一验证码的第一验证后,还基于第一验证码生成第二验证码对第一设备进行验证,通过双向验证进一步提高了配对验证的可靠性,能够有效应对中间人攻击。
在本发明一些实施例中,第一设备和第二设备在生成第一中间值和第二中间值时,可以取采用协商算法运算生成的值的一部分作为要使用的中间值。具体而言,可选地,在生成第一中间值时,可以使用MD5等协商算法基于动态密码进行运算得到第一运算值,取第一运算值的预定部分作为第一中间值,例如取第一运算值的前1-3个字节作为第一中间值。可选地,在生成第二中间值时,可以使用MD5等协商算法基于第一临时公钥和第二临时公钥的组合数据进行运算得到第二运算值,取第二运算值的预定部分作为第二中间值,例如取第二运算值的前2个字节作为第二中间值。通过本发明实施例的通信配对方法,能够在确保较高的安全性的同时,减少配对过程所需的运算量,提高操作效率。
在本发明一些实施例中,第一设备生成第一临时私钥和第一临时公钥时,可以先生成一个随机数作为第一临时私钥,然后基于第一临时私钥进行运算得到第一临时公钥,例如可以先生成ECC私钥,然后使用KDF(密钥派生函数)方法计算对应的私钥。可选地,第二设备生成第二临时私钥和第二临时公钥时也可以采用类似的方法。
在本发明一些实施例中,第一设备生成第一临时公钥时,可以基于第一临时私钥并根据幂运算和模运算中的一种或两种运算计算得到。例如,可以使用约定的基数对第一临时私钥进行幂运算得到第一临时公钥,或使用约定的模数对第一临时私钥进行模运算得到第一临时公钥,或者使用约定的基数对第一临时私钥进行幂运算之后对运算结果用约定的模数进行模运算得到第一临时公钥。可选地,第二设备生成第二临时私钥和第二临时公钥时也可以采用类似的方法。
在本发明一些实施例中,第二设备还生成随机数作为第一盐值发送给第一设备,第一设备从第二设备接收到第一盐值后,可以在生成第一中间值、第二中间值或第一验证码时将第一盐值也作为运算参数之一进行运算,可以仅在生成第一中间值和第二中间值时使用第一盐值作为参数之一进行运算,也可以在生成第一中间值和第二中间值以及第一验证码时均将第一盐值作为运算参数之一。例如,在生成第一中间值时,可以将第一盐值和动态密码进行组合后再使用协商算法进行运算生成第一中间值。第二设备在生成第一中间值、第二中间值和第一验证码时也相应地使用第一盐值作为参数之一进行运算,以便第二设备能够顺利地完成对第一验证码的验证。通过本发明实施例,能够进一步提高配对验证的安全性和可靠性。
在本发明一些实施例中,第一设备在生成第一验证码时,可以先基于第一中间值和第二中间值计算第一密钥因子,根据第一密钥因子生成第一密钥,然后再基于第一密钥生成第一验证码。第二设备在对第一验证码进行验证时进行相应的计算。本发明实施例中,计算第一密钥因子的方法不受限制,例如,第一设备可以使用协商的算法对由第一中间值和第二中间值拼接成的数值进行运算得到第一密钥因子;可选地,第一设备还可以将第一中间值和第二中间值进行乘法运算并取运算结果的约定位上的数值作为第一密钥因子,等等。根据第一密钥因子生成第一密钥可以使用SHA算法或者任意KDF算法。基于第一密钥生成第一验证码时,可以使用协商算法对第一密钥进行运算生成第一验证码,也可以使用协商算法对由第一密钥和其他数据拼接成的数值进行运算生成第一验证码。本发明实施例中生成的第一密钥可以作为约定密钥对预定数值进行加密,例如,可以在第一设备和第二设备交换配对公钥时,使用第一密钥作为约定密钥对要传输的配对公钥和其他数据(如标识数据、签名数据等)一起进行加密后进行传输,从而进一步提高通信配对的安全性和可靠性。
在本发明一些实施例中,第一设备在基于第一中间值和第二中间值计算第一密钥因子时,可以对第一中间值和第二中间值进行幂运算和模运算中的至少一种运算来计算第一密钥因子。例如,第一设备可以将根据约定的基数对第一中间值进行幂运算得到的值与根据约定的基数对第二中间值进行幂运算得到的值相加、相减或相乘等运算得到第一密钥因子;可选地,第一设备可以将根据约定的模数对第一中间值进行模运算得到的值与根据约定的模数对第二中间值进行模运算得到的值相加、相减或相乘等运算得到第一密钥因子,或者将根据约定的基数对第一中间值进行幂运算得到的值与根据约定的模数对第二中间值进行模运算得到的值进行相加、相减或相乘等运算得到第一密钥因子;可选地,第一设备还可以在使用约定的基数对第一中间值和第二中间值的平均值进行幂运算之后对运算结果用约定的模数进行模运算得到第一密钥因子,等等。
在本发明一些实施例中,第一设备在基于第一中间值和第二中间值计算第一密钥因子时,除了将第一中间值和第二中间值作为运算参数外,还可以将第一临时公钥、第二临时公钥或第一临时私钥作为运算参数之一,或者将第二临时公钥和第一临时公钥作为运算参数,或者将第二临时公钥和第一临时私钥作为运算参数。
具体而言,在本发明一些实施例中,当将第一临时公钥和/或第二临时公钥以及第一中间值和第二中间值作为运算参数时,可以使用与将第一中间值和第二中间值作为参数时类似的方式计算第一密钥因子,例如使用约定的基数分别对第一中间值、第二中间值、第一临时公钥和第二临时公钥进行幂运算后将各个运算结果进行相加、相减或相乘等运算得到第一密钥因子,用约定的基数对由第一中间值、第二中间值、第一临时公钥相加得到的值进行幂运算后对运算结果用约定的模数进行模运算,等等。
上述实施例中当第一设备与第二设备在分别计算第一密钥因子时使用了共有的参数,因此可以使用相同的算式或算法计算第一密钥因子。在另一些实施例中,当第一/第二临时公钥是基于第一/第二临时私钥计算得出时,第一设备和第二设备在分别计算第一密钥因子时使用可以不同的参数,并使用对应的算式或算法计算第一密钥因子。在一些实施例中,当第一设备将第一临时私钥以及第一中间值和第二中间值作为运算参数计算第一密钥因子时,第二设备可以使用第一临时公钥以及第一中间值和第二中间值作为运算参数计算第一密钥因子,例如,将第一中间值记为x,第二中间值记为u,第一密钥因子记为S,并将第一临时私钥记为a,第一临时公钥记为A,且A=g^a%N,其中g为约定的基数,N为约定的模数,^表示幂运算,%表示模运算,则第一设备计算第一密钥因子时可以使用算式S=(g^a+g^x+g^u)%N,第二设备计算第一密钥因子时可以使用算式S=(A+g∧x+g^u)%N。在另一些实施例中,当第一设备将第一临时私钥、第二临时公钥以及第一中间值和第二中间值作为运算参数计算第一密钥因子时,第二设备可以使用第一临时公钥、第二临时私钥以及第一中间值和第二中间值作为运算参数计算第一密钥因子,例如,沿用上述标记,并且将第二临时私钥记为b,第二临时公钥记为B,且A=g^a%N,B=g^b%N,则第一设备计算第一密钥因子时可以使用算式S=(g^a+B+g^x+g^u)%N,第二设备计算第一密钥因子时可以使用算式S=(A+g^b+g^x+g^u)%N。通过本发明实施例的方法,第一设备和第二设备使用不同的算式或算法计算第一密钥因子,能够进一步提高配对验证的安全性和可靠性。
在本发明一些实施例中,第二设备如前所述还生成第一盐值发送给第一设备时,第一设备还可以在生成第一验证码时将第一盐值也作为参数之一,例如使用协商算法对第一密钥和第一盐值的组合数据进行运算得到第一验证码,或者使用协商算法对第一密钥、第一盐值和第一临时公钥的组合数据进行运算得到第一验证码,或者使用协商算法对第一密钥、第一盐值、第一临时公钥和第二临时公钥的组合数据进行运算得到第一验证码。通过本发明实施例,能够进一步提高第一验证码的复杂度,提高配对验证的安全性和可靠性。
在本发明一些实施例中,第一设备在生成第一验证码时,还可以使用第一密钥和第一约定值作为参数生成第一验证码。在一些实施例中,第一约定值可以是第一设备和第二设备协商的固定值,例如前述的约定基数或约定模数即可用作第一约定值。在另一些实施例中,第一约定值可以是第一设备和第二设备用约定算法对第一设备和第二设备协商的固定值进行计算得到的,例如可以使用协商的MD5或SHA等算法对前述的约定基数或约定模数进行运算得到第一约定值,或者使用协商的算法对约定基数和约定模数的和进行运算得到第一约定值。在又一些实施例中,还可以使用例如SHA的协商算法分别对前述的约定基数和约定模数进行运算后,将运算结果进行加、减、OR(或运算)或HOR(异或运算)等运算得到第一约定值。通过本发明实施例,也能够进一步提高第一验证码的复杂度,提高配对验证的安全性和可靠性。
本发明一些实施例中可以通过对上述实施例进行不同的结合得到。例如,可以将进行第一验证后进行第二验证的实施例与计算第一密钥的实施例进行结合,得到如下实施例:第一设备向第二设备发送配对请求后,从第二设备接收第二临时公钥。随后,第一设备生成第一临时公钥和第一临时私钥,并基于输入第一设备的动态密码生成第一中间值,基于第一临时公钥和第二临时公钥生成第二中间值,基于第一中间值和第二中间值计算第一密钥因子,根据第一密钥因子生成第一密钥,再根据第一密钥生成第一验证码,然后将第一临时公钥和第一验证码发送给第二设备进行第一验证。第二设备根据协商算法基于第一中间值和第二中间值计算第一密钥因子,根据第一密钥因子生成第一密钥,再根据第一密钥生成验证码,将生成的验证码与第一验证码进行比较验证。在第二设备对第一验证码进行验证成功,也即在第一验证通过之后,第二设备使用协商算法对由第一验证码和第一密钥组成的数据进行运算生成第二验证码发送给第一设备进行第二验证,第二设备使用协商算法对由第一验证码和第一密钥组成的数据进行运算生成第三验证码并将生成的第三验证码与第二设备发来的第二验证码进行对比验证。在第二验证通过后,再与第二设备交换配对公钥,其中,在交换配对公钥时,可以用第一密钥对配对公钥和其他数据进行加密后进行传输。可选地,在本实施例中,第二设备在生成第二验证码时,还可以将第一临时公钥和第二临时公钥中的至少一个同时作为运算参数,例如可以使用第一临时公钥、第一密钥和第一验证码作为参数来计算第二验证码,或者使用第一临时公钥、第二临时公钥、第一密钥和第一验证码作为参数来计算第二验证码。第一设备在验证第二验证码时,也使用相应的参数计算第三验证码来验证第二验证码是否一致。通过本发明实施例,验证码基于第一密钥生成,配对公钥用第一密钥来加密后传输,能够较强地提高配对验证的安全性和可靠性。
图3为本发明另一实施例的通信配对方法的示意性流程图。本发明实施例的通信配对方法应用于要进行数据传输的两个通信设备(第一设备和第二设备)中的发出通信请求的一个通信设备(第一设备)。本发明实施例的方法可以在前述实施例的交换配对公钥步骤之后进行,也可以在根据现有技术进行配对公钥交换之后进行。
如图3所示,本发明实施例的通信配对方法包括:
S31、生成第三临时公钥和第三临时私钥,将第三临时公钥发送给第二设备,并从第二设备接收配对公钥标识密文和第四临时公钥;
S32、基于约定的算法和约定的参数计算第二密钥,使用第二密钥从所述配对公钥标识密文获得配对公钥标识和第一校验值,所述约定的参数包括第三临时私钥和第四临时公钥;
S33、使用与配对公钥标识对应的配对公钥对所述第一校验值进行第三验证;
S34、在第三验证通过之后,以所述第二密钥为通信密钥与第二设备进行数据通信。
本发明实施例中,第一设备和第二设备完成配对公钥的交换后,当第一设备和第二设备之间需要建立通信密钥时,执行配对验证步骤。在配对验证中,第一设备不再使用第一临时公钥和第二临时公钥,而是生成第三临时公钥和第三临时私钥,并且将其中的第三临时公钥通过配对验证请求发送给第二设备。第二设备从第一设备接收到第三临时公钥和配对验证请求时,生成第四临时公钥和第四临时私钥,基于约定的算法和约定的参数生成第二密钥,生成第二密钥的方法可采用与前述生成第一密钥类似的方法或者其他方法。然后,第二设备使用第二设备的配对私钥对第二设备的配对公钥的标识进行处理生成第一校验值,或者使用第二设备的配对私钥对由第二设备的配对公钥的标识和其他数据组成的数据进行处理生成第一校验值,然后使用第二密钥对第二设备的配对公钥的标识或包含第二设备的配对公钥的标识在内的数据和第一校验值加密得到配对公钥标识密文,将配对公钥标识密文和第四临时公钥发送给第一设备。其中,第一校验值例如可以是使用第二设备的配对私钥对第二设备的配对公钥的标识或包含第二设备的配对公钥的标识在内的数据进行签名得到的数字签名。并且其中,生成第一校验值时处理的数据中可以包括第二设备的配对公钥的标识、第三临时公钥和/或第四临时公钥。
第一设备从第二设备接收到配对公钥标识密文和第四临时公钥后,也基于约定的算法和约定的参数生成第二密钥,使用第二密钥对配对公钥标识密文进行解密得到第一校验值和第二设备的配对公钥额标识或包含第二设备的配对公钥的标识在内的数据,然后根据解密得到的第二设备的配对公钥的标识查找到先前通过配对获得并存储的第二设备的配对公钥,使用查找到的该第二设备的配对公钥对第一校验值进行第三验证。在第三验证通过后,第一设备和第二设备可以以第二密钥为通信密钥进行相互之间的数据通信。
本发明实施例中,通过在建立通信密钥时进行单独的配对验证,能够使得之后建立的通信通道具有较高的安全性,有效地抵御中间人攻击。
在本发明一些实施例中,S34中在第三验证通过后,还需进行第四验证并且验证通过,第一设备和第二设备才以第二密钥为通信密钥进行相互数据通信。具体而言,第一设备使用第一设备的配对私钥对第一设备的配对公钥的标识或者包括第一设备的配对公钥的标识在内的数据计算第二校验值,用第二密钥对第一设备的配对公钥的标识或包含第一设备的配对公钥的标识在内的数据与第二校验值一同加密后发送给第二设备进行第四校验。第二设备接收到第一设备的配对公钥标识密文后,使用第二密钥对配对公钥标识密文解密得到第二校验值和第一设备的配对公钥的标识或包含第一设备的配对公钥的标识在内的数据,然后根据解密得到的第一设备的配对公钥的标识查找到先前通过配对获得并存储的第一设备的配对公钥,使用查找到的该第一设备的配对公钥对第二校验值进行第四验证。在第四验证通过后,第一设备和第二设备可以以第二密钥为通信密钥进行相互之间的数据通信。
本发明实施例中,通过在建立通信密钥时进行单独的双向配对验证,能够使得之后建立的通信通道具有更高的安全性,更有效地抵御中间人攻击。
本发明实施例同时提供了一种通信装置,可作为上述第一设备,该通信装置包括存储器和处理器,存储器可以配置为存储预定的计算机指令,处理器可以配置为执行该预定的计算机指令以实现上述任一通信配对方法中第一设备实现的操作处理。本发明实施例还相应地提供了一种通信装置,可作为上述第二设备,该通信装置包括存储器和处理器,存储器可以配置为存储预定的计算机指令,处理器可以配置为执行该预定的计算机指令以实现上述任一通信配对方法中第二设备实现的操作处理。
图4为本发明的通信配对方法的一个示意性实施例的流程图。在图4中,两个相连接的设备已建立通信通道后进行的操作流程,这两个设备分别标记为设备A和设备B。具体操作流程如下:
步骤401、设备A向设备B发起配对请求。
步骤402、设备B随机生成盐值s和临时私钥b,随机生成动态密码p并在其显示屏上显示,计算第一中间值x=H(s|p),H表示哈希计算,并取其中一部分;计算临时公钥B=g^(x+b)%N,其中g为事先约定的基数,N为事先约定的模数,^表示幂运算,%表示模运算;将s和B发送给设备A。
步骤403、设备A接收使用者输入的密码p,计算第一中间值x=H(s|p);随机生成临时私钥a,计算临时公钥A=g^a%N;计算第二中间值u=H(A|B);计算作为第一密钥因子的共享秘密S=(B-g^x)^(a+u*x)%N;通过共享秘密S派生出作为第一密钥的密钥K,派生算法可以是哈希算法或者任意KDF算法;计算验证码M=H(H(N)XOR H(g)|s|A|B|K),其中XOR表示异或运算;将A和M发送给设备B。
步骤404、设备B计算共享秘密S=(A*v^u)^b%N,其中v=g^x%N;通过共享秘密S派生出密钥K;设备B用同样方法计算M’,与M比较,如果不同,配对失败,结束本流程;如果相同,计算M2=H(A|M|K),将M2发送给设备A。
步骤405、设备A用同样方法计算M2’,与M2比较,如果不同,配对失败,结束本流程;如果相同,将Enc(IdA|PublicKeyA|Sig)发送给设备B。其中,IdA为设备A配对密钥的标识,PublicKeyA为设备A配对公钥,Sig为使用设备A配对私钥计算IdA|PublicKeyA的数字签名,Enc表示使用共享密钥K加密。
步骤406、设备B使用共享密钥K解密Enc(IdA|PublicKeyA|Sig),验证数字签名,验证成功后将IdA和PublicKeyA关联存储,并将Enc(IdB|PublicKeyB|Sig)发送给设备A。其中,IdB为设备B配对密钥的标识,PublicKeyB为设备B配对公钥,Sig为使用设备B配对私钥计算IdB|PublicKeyB的数字签名,Enc表示使用共享密钥K加密。
步骤407、设备A使用共享密钥K解密Enc(IdB|PublicKeyB|Sig),验证数字签名,验证成功后将IdB和PublicKeyB保存。
通过上述步骤401-407,完成了设备A与设备B的配对。
当设备A和设备B之间要建立通信密钥时,执行如下配对验证步骤:
步骤408、设备A向设备B发起配对验证,生成临时密钥对:临时公钥TempPublicKeyA和临时私钥TempPrivateKeyA,将临时公钥TempPublicKeyA发送给设备B。
步骤409、设备B生成临时密钥对:临时公钥TempPublicKeyB和临时私钥TempPrivateKeyB,使用TempPrivateKeyB和TempPublicKeyA通过Diffie-Hellman算法计算出作为第二密钥因子的共享秘密S,通过共享秘密S派生出作为第二密钥的密钥K,派生算法可以是哈希算法或者任意KDF算法;计算Enc(IdB|Sig),其中IdB为设备B配对公钥标识,Sig为使用配对私钥计算TempPublicKeyB|IdB|TempPublicKeyA的数字签名,Enc表示使用密钥K加密;将临时公钥TempPublicKeyB和Enc(IdB|Sig)发送给设备A。
步骤410、设备A使用TempPrivateKeyA和TempPublicKeyB通过Diffie-Hellman算法计算出共享秘密S,通过共享秘密S派生出密钥K,派生算法可以是哈希算法或者任意KDF算法;解密Enc(IdB|Sig)得到IdB|Sig,使用设备B的配对公钥验证签名。如果验证不通过,配对验证失败,结束本流程;如果验证通过,计算Enc(IdA|Sig),其中IdA为设备A配对公钥标识,Sig为使用配对私钥计算TempPublicKeyA|IdA|TempPublicKeyB的数字签名,Enc表示使用密钥K加密;将Enc(IdA|Sig)发送给设备B。
步骤411、设备B使用密钥K解密Enc(IdA|Sig)得到IdA|Sig,使用设备A的配对公钥验证签名。如果验证不通过,配对验证失败,结束本流程;如果验证通过,配对验证成功,设备A与设备B建立了共享密钥K。
需要说明的是,本发明实施例中虽然同时包括了根据本发明的配对过程(401-407)和根据本发明的配对验证过程(408-411),但这两个过程之间可以是相互独立的,换言之,在步骤401-407之后也可以不继续执行步骤408-411,而是执行现有技术的配对验证过程或者不执行配对验证而直接进行数据传输;同时,在步骤408-411之前也可以不是执行步骤408-411,而是执行根据现有技术的配对过程来完成配对公钥的交换。
通过上述方法,实现了设备之间的配对,无需使用者参与即能够在已配对的设备间建立可靠的通信密钥,从而确保通信通道的数据安全。可以看出,即使恶意攻击者截获了通道上的数据,由于无法取得动态密码,无法通过中间人攻击将其非法设备与合法设备进行配对,进而在配对验证过程中也无法伪造合法的签名,从而无法与合法设备建立共享密钥。
以下给出如4所示实施例的两个具体的实施方式,可仍参照图4以便更好地理解本发明的实施例:
第一实施方式
为了方便说明,本实施方式中选取的参数位数较小,实际应用中应当使用更大的位数来保证算法的安全性。本例子中,在设备A和设备B间建立配对,设备A的标识为00,设备B的标识为01(如无特殊说明,以下数据均以16进制格式表示)。g取值2,N取值7。哈希算法使用SHA1算法,数字签名算法使用RSA算法,临时密钥为Diffie-Hellman算法密钥。
401、设备A向设备B发起配对请求。
402、设备B生成随机数5作为盐值,生成随机数6作为动态密码,生成随机数2作为临时私钥,则SHA1(05|06)取第一个字节得到x=F0,公钥B=2^F0+2^2%7=5,将05 05发送给设备A。
403、设备A接收使用者输入的密码06,计算出x=F0;生成随机数3作为临时私钥,公钥A=2^3%7=1;SHA1(01|04)取第一个字节得到u=A7;计算共享秘密S=(05-2^F0)^(03+A7*F0)%7=1,使用SHA1算法派生密钥K=2D 01 34 ED 3B 9D E1 32 C7 20 FE 697B 53 2B 4C,计算校验码M=SHA1(99 F1 C6 52 EB FA 50 62 63 4C 9D 2A BC 96 08 307A 11 63 FA|05|01|04|2D 01 34 ED 3B 9D E1 32C7 20FE 69 7B 53 2B 4C)=83 4A 7202 C0 2F 33 E4 F9 3C 47 39 DD ED 33 D8 E1 07D2 57,将01 83 4A 72 02 C0 2F 33E4 F9 3C 47 39 DD ED 33 D8E1 07 D2 57发送给设备B。
404、设备B计算共享秘密S=(01*1^A7)^2%7=1,使用SHA1算法派生密钥K=2D01 34 ED 3B 9D E1 32 C7 20 FE 69 7B 53 2B 4C,计算校验码M’=834A 72 02 C0 2F33 E4 F9 3C 47 39 DD ED 33 D8 E1 07 D2 57,与接收的M相同;计算校验码M2=SHA1(01|83 4A 72 02 C0 2F 33 E4 F9 3C 47 39 DD ED 33 D8 E1 07 D2 57|2D 01 34 ED 3B9D E1 32 C7 20 FE 69 7B 53 2B 4C)=B5 E4 6C E5 65 E2 D1 4C 11 5B 7B 81 99 F2D3 89 DD 80 A2 09,将M2发送给设备A。
405、设备A用同样方法计算M2’=B5 E4 6C E5 65 E2 D1 4C 11 5B 7B 81 99 F2D3 89 DD 80 A2 09,与M2相同。生成RSA公私钥对,公钥为:
30818902818100a2a13e18384ff3cf56f9b52f5e80625d8ae5349c23bc122e9acf697c59cd479da95022e2b2709c4e3ad74e02c51d94d1eb471896a7cece375805240c67e4fb21fd752305c9086df489e8d32ac5b40824b706783bb41ee0284b75f7c95f8e6c6606f80808090c32974d23359ab353c5e32fb9802fffe67135f89ff5a3a22643030203010001
私钥为:
3082025c02010002818100a2a13e18384ff3cf56f9b52f5e80625d8ae5349c23bc122e9acf697c59cd479da95022e2b2709c4e3ad74e02c51d94d1eb471896a7cece375805240c67e4fb21fd752305c9086df489e8d32ac5b40824b706783bb41ee0284b75f7c95f8e6c6606f80808090c32974d23359ab353c5e32fb9802fffe67135f89ff5a3a226430302030100010281800440f26bab6c0fefa591e776cde279702d40b1d51456dd7a36eb63921b3e8977d564b6b23642481c55b6a9a031ec0451f9f4ef4435846d140e807d410e7b48999578eea5aeadd2805c88e95cb6b9955ec8ddb2323651cbd18d2ef2dd1dd3e57c11bfc5a11ffc97ba27e4d9d3892eaa85b8f785a85f2de26bf9303fe544e18799024100c0f1ca4a5b1cd37a3459151f2f83e2a6c51c6c5291d06fd2d537fc52bc644ef5960d5af012e4dd794bedcaab9ccc54e8543410bc28aebdcab92b7a0e67999eeb024100d7c74157be575a550aec6ceed3334b18b45675f55a5bdbef0fc475912ac4440658e56480c892416a9ff5c3af973bb189b4d45eaacc739295a51ff110589f5649024060575b3f0d87b3410dea7d5579104d98204c34fa75bcb2598005d88427759ec79a0949231f0c105a84c353b3a533922200098f61a49ebc3e017fe80e5144afc902410083db4f22bf3dc20595d743f9ed35bafe2db567ffb667cbce1a648333625eecf2b3fff99a78f666e3313c8d880f727adb1b956b04144bcb9786802e5f3ec89f8102404aceb656c94ea442419e9ecd74b28118dbe57648367420b5cdd786cdd1270335eb39ff123f02c9fb0ea2a641d2c565d1eac5a005aa7c8c0cbe54a9f6adfe180f
使用私钥对
00|30818902818100a2a13e18384ff3cf56f9b52f5e80625d8ae5349c23bc122e9acf697c59cd479da95022e2b2709c4e3ad74e02c51d94d1eb471896a7cece375805240c67e4fb21fd752305c9086df489e8d32ac5b40824b706783bb41ee0284b75f7c95f8e6c6606f80808090c32974d23359ab353c5e32fb9802fffe67135f89ff5a3a22643030203010001签名得到:
24b999451f018ce9d15a61bbdf984a6669066b48fd8e2c3eafb2c72dbb317c29c5c97b03b49eaac7a7cc0c5415ff15a34e8d69655db277721cf4427ef2c67e2f41a304217a652d7f05e0959baf1871cff9da2a2fef0f4b323cb0a5dea6b65dc94a88d81009b1afbec96b350b162cb0562e5bad71024f9f42893033f71c970850
使用密钥K加密
00|30818902818100a2a13e18384ff3cf56f9b52f5e80625d8ae5349c23bc122e9acf697c59cd479da95022e2b2709c4e3ad74e02c51d94d1eb471896a7cece375805240c67e4fb21fd752305c9086df489e8d32ac5b40824b706783bb41ee0284b75f7c95f8e6c6606f80808090c32974d23359ab353c5e32fb9802fffe67135f89ff5a3a22643030203010001|24b999451f018ce9d15a61bbdf984a6669066b48fd8e2c3eafb2c72dbb317c29c5c97b03b49eaac7a7cc0c5415ff15a34e8d69655db277721cf4427ef2c67e2f41a304217a652d7f05e0959baf1871cff9da2a2fef0f4b323cb0a5dea6b65dc94a88d81009b1afbec96b350b162cb0562e5bad71024f9f42893033f71c970850030303
得到:
1239acf9750e0b3cd7a18658ce721148ee992861757f772c3ba8a5f02d074c85060f5139fc665be3dbe911f89a132d95404f48886a2253717819e483106c92c35ef584314b0cca00ee8c5388d53593cb6ab6ca7b16cda29d166a8144221f867f113cb0a6e7a505ca5618a68fecbc7120d9907ba3da6ea325cabbf6b54e583ab861c35f1be7186e3fd622ccfdabe40bb904ae7c0a59d722fffbd35ed9ea09c9f6dedc2ae9b2f34f9c279b415a79560b94e97cf5128547e93eb75e1513778df2d7f2aa44a147d0410e014fb0c82269f8544bd00d32020e70297e46de314a9384b0faa2d598ccd43f954a4e883b565e5111a25834d5a0577193a6f75091af07cb8aeca20066ed8ae03b96e7fe7c2cc13f02
将其发送给设备B。
406、设备B使用密钥K解密得到:
0030818902818100a2a13e18384ff3cf56f9b52f5e80625d8ae5349c23bc122e9acf697c59cd479da95022e2b2709c4e3ad74e02c51d94d1eb471896a7cece375805240c67e4fb21fd752305c9086df489e8d32ac5b40824b706783bb41ee0284b75f7c95f8e6c6606f80808090c32974d23359ab353c5e32fb9802fffe67135f89ff5a3a2264303020301000124b999451f018ce9d15a61bbdf984a6669066b48fd8e2c3eafb2c72dbb317c29c5c97b03b49eaac7a7cc0c5415ff15a34e8d69655db277721cf4427ef2c67e2f41a304217a652d7f05e0959baf1871cff9da2a2fef0f4b323cb0a5dea6b65dc94a88d81009b1afbec96b350b162cb0562e5bad71024f9f42893033f71c970850
验证签名后,将设备A标识00和公钥
30818902818100a2a13e18384ff3cf56f9b52f5e80625d8ae5349c23bc122e9acf697c59cd479da95022e2b2709c4e3ad74e02c51d94d1eb471896a7cece375805240c67e4fb21fd752305c9086df489e8d32ac5b40824b706783bb41ee0284b75f7c95f8e6c6606f80808090c32974d23359ab353c5e32fb9802fffe67135f89ff5a3a22643030203010001保存。生成RSA公私钥对,公钥为:
30818902818100b0b83434bb25eba44ed48cdab0eec816b7dc672a755f4538ddf35f09c673d925f2c3ce99d127145f695031609015650e21eddc6cae313a819e08d4b5c5953a2fd01cb3d87131d39da423958dc56539b62aa040474e2712b6c6ec18c38a30722770e85fc3866022f616b04655650dc4a9665a881905f76ebbd201f85fbe5909dd0203010001
私钥为:
3082025c02010002818100b0b83434bb25eba44ed48cdab0eec816b7dc672a755f4538ddf35f09c673d925f2c3ce99d127145f695031609015650e21eddc6cae313a819e08d4b5c5953a2fd01cb3d87131d39da423958dc56539b62aa040474e2712b6c6ec18c38a30722770e85fc3866022f616b04655650dc4a9665a881905f76ebbd201f85fbe5909dd02030100010281805384aaffa4d71617d03db9d7fd38cc8d98156d186ee238b7d885958bec238223e228d23275db8f504c585f0db0eabb98c346441f84efb523df097365f8dc3ee3e2da0a3b6ecd293094aba565ea11a1c9efce99375a0ac3f1d7d774e6a2a3982f33ad8699b37690daa691588d8a25658444fc85b2c9c423a191afe0d1c353348d024100d77f92e8643792d14ec356b323ac839b17cc2e77cde9f292de090dcf416c0551f0bb6ef620f04f2fc7a1229f0efb360a920d406634b969eb9bd088dbd975f853024100d1eed69eed467df25cf62b273d1444502c45d0e109a5d69964d8c9a86bd39e3ed379a1b7ea0f1cdeef92118bd05da877fa78fb2af95235226c736bd930beef0f024100807c74f81080be0e03fb1ddf735eb19d3044325486367dc629929664436a878582960ea3bba1ec64dd8eea98919320768efc4db062b146410f46f7c2b556cc3702403f6a4b70c4b237977fd768dfb886a7c0242f8ed27bcc99cfca73e62eb72bbcb0b3c7193fea37587c4b982f2eb1e9a8db5d51306621dc606a9ea21b2107a595a702401ca2359415432ccb243e08b77de0b9791379ecbef0179813f38b3752121f8a68276959a1785019c052072546866d9206f5c748044a341c8bad019e2a187bbee2
使用私钥对
01|30818902818100b0b83434bb25eba44ed48cdab0eec816b7dc672a755f4538ddf35f09c673d925f2c3ce99d127145f695031609015650e21eddc6cae313a819e08d4b5c5953a2fd01cb3d87131d39da423958dc56539b62aa040474e2712b6c6ec18c38a30722770e85fc3866022f616b04655650dc4a9665a881905f76ebbd201f85fbe5909dd0203010001签名得到:
0ae2357a8a97ec6e5e4bc754d9619f76cb217e57e57069467cbd169e4c4939a39da8e2303c8f0cc8ab31ba528acee2e6d309428197350b29762735ab979456ff874680cd78bc1d8f0dee4a839a9227c7f7c2c6c5dfc4f62363b1ff738b4e94bb7f2a7f7433368f14eb497efe47c057eb8dd45a56207a8c9ba18a12dcae5b6813
使用密钥K加密
01|30818902818100b0b83434bb25eba44ed48cdab0eec816b7dc672a755f4538ddf35f09c673d925f2c3ce99d127145f695031609015650e21eddc6cae313a819e08d4b5c5953a2fd01cb3d87131d39da423958dc56539b62aa040474e2712b6c6ec18c38a30722770e85fc3866022f616b04655650dc4a9665a881905f76ebbd201f85fbe5909dd0203010001|0ae2357a8a97ec6e5e4bc754d9619f76cb217e57e57069467cbd169e4c4939a39da8e2303c8f0cc8ab31ba528acee2e6d309428197350b29762735ab979456ff874680cd78bc1d8f0dee4a839a9227c7f7c2c6c5dfc4f62363b1ff738b4e94bb7f2a7f7433368f14eb497efe47c057eb8dd45a56207a8c9ba18a12dcae5b6813030303
得到:
8b5a647c3c10bb5c495121d03ddbba7c55093f3a93a6d9c7196888d18a538cf9acfc04c5917ddfccd31e8568cd5ed1543e7bb6e293f37f7bf8e666ea9aed780081ba50e150a0e018f39ff3f490e870020f08d67b3c73f9e33ea375cc3793a92fbebdf0d617f17adc8b2f6585209b34bd4b3bcc9e3e781dca94889b3f594d830ba9de867e62f51e7c6ad0e06fe57fb90ae934d466dc0b2c83fff2add73c09c64d23dfc492e658717852518512c852651d2bb311343d9b9a1a029c1cab8a2aa545e50a5d3399d4f492590fe24866788b43bfb3ff31ed29e3af1d8aac22700985b0ff13e30d52d743b65bf1fa06374889300ce6b30ee144fc7b2eae5d06ca213136b36c47da29a91cd8d9af1543adac2c73
将其发送给设备A。
407、设备A使用密钥K解密得到:
0130818902818100b0b83434bb25eba44ed48cdab0eec816b7dc672a755f4538ddf35f09c673d925f2c3ce99d127145f695031609015650e21eddc6cae313a819e08d4b5c5953a2fd01cb3d87131d39da423958dc56539b62aa040474e2712b6c6ec18c38a30722770e85fc3866022f616b04655650dc4a9665a881905f76ebbd201f85fbe5909dd02030100010ae2357a8a97ec6e5e4bc754d9619f76cb217e57e57069467cbd169e4c4939a39da8e2303c8f0cc8ab31ba528acee2e6d309428197350b29762735ab979456ff874680cd78bc1d8f0dee4a839a9227c7f7c2c6c5dfc4f62363b1ff738b4e94bb7f2a7f7433368f14eb497efe47c057eb8dd45a56207a8c9ba18a12dcae5b6813
验证签名后,将设备B标识01和公钥
30818902818100b0b83434bb25eba44ed48cdab0eec816b7dc672a755f4538ddf35f09c673d925f2c3ce99d127145f695031609015650e21eddc6cae313a819e08d4b5c5953a2fd01cb3d87131d39da423958dc56539b62aa040474e2712b6c6ec18c38a30722770e85fc3866022f616b04655650dc4a9665a881905f76ebbd201f85fbe5909dd0203010001保存。
至此,设备A与设备B完成了配对,下面描述配对验证过程:
Diffie-Hellman算法中g取值2,N取值5。
408、设备A生成随机数3作为临时私钥,临时公钥2^3%5=3。将03发送给设备B。
409、设备B生成随机数2作为临时私钥,临时公钥2^2%5=4;共享秘密S=3^2%5=4;使用SHA1算法计算K=SHA1(S)=a42c6cf1de3abfdea9b95f34687cbbe9;计算签名Sig=Sign(04 01 03)=
2804c0441052398b6c030e5016b62e34144852e97e68599099ec2ba25b77039f22893f832ca2b714c2f35c7ae1fe2b9ba5810ed7c640bdf32d24b691b948e3246b9f9bfaa3607d908f8985ea615be52d03c51b5865932faa6347ba8c012695b4cb83c0ce458e81ace6793f7b32054f3a007a50d7655b26957d68f098a2e45458;
使用密钥K加密
01
2804c0441052398b6c030e5016b62e34144852e97e68599099ec2ba25b77039f22893f832ca2b714c2f35c7ae1fe2b9ba5810ed7c640bdf32d24b691b948e3246b9f9bfaa3607d908f8985ea615be52d03c51b5865932faa6347ba8c012695b4cb83c0ce458e81ace6793f7b32054f3a007a50d7655b26957d68f098a2e454580f0f0f0f0f0f0f0f0f0f0f0f0f0f0f得到:
91202ec6faaee01415da9491fd8cbec34f63f241bc8323c24f656003453580786b9854c28f3dbac648351d914a2a157ba34f503756380296d6d5e8e9c960447eb740845c6f07c4bd8b4f0d5725b7e9ddc0a47acabb47fad1cbd7e27c424e8c6b71ccd860141c4a09183b3ec998bf9c2d33b8438250ec1c5e1a33c787d30cf4c08124daf5bcbc5f21db8c742e00208f2d,将其和临时公钥04发送给设备A。
410、设备A计算S=4^3%5=4;使用SHA1算法计算K=SHA1(S)=a42c6cf1de3abfdea9b95f34687cbbe9;使用密钥K解密
91202ec6faaee01415da9491fd8cbec34f63f241bc8323c24f656003453580786b9854c28f3dbac648351d914a2a157ba34f503756380296d6d5e8e9c960447eb740845c6f07c4bd8b4f0d5725b7e9ddc0a47acabb47fad1cbd7e27c424e8c6b71ccd860141c4a09183b3ec998bf9c2d33b8438250ec1c5e1a33c787d30cf4c08124daf5bcbc5f21db8c742e00208f2d得到:
01
2804c0441052398b6c030e5016b62e34144852e97e68599099ec2ba25b77039f22893f832ca2b714c2f35c7ae1fe2b9ba5810ed7c640bdf32d24b691b948e3246b9f9bfaa3607d908f8985ea615be52d03c51b5865932faa6347ba8c012695b4cb83c0ce458e81ace6793f7b32054f3a007a50d7655b26957d68f098a2e454580f0f0f0f0f0f0f0f0f0f0f0f0f0f0f,验证签名通过。
计算签名Sig=Sign(03 00 04)=
8af8a79111d21b1082a7d72147f7a19f223ab7109590b9c439c4b9a80b39af2b92d950316435f28c1fe9f158dccf14dab236ab6a9ba0b4492ac5cf1285c7286d95c1bb1fc2fb35408be8432d9cb29af3c9b4edc6abcc7408559e748ce98a44b9be5ecc0ff0bcc6501da1b1e1c8ae8d481612ec23567bdbc876587594dde6ce79
使用密钥K加密
00
8af8a79111d21b1082a7d72147f7a19f223ab7109590b9c439c4b9a80b39af2b92d950316435f28c1fe9f158dccf14dab236ab6a9ba0b4492ac5cf1285c7286d95c1bb1fc2fb35408be8432d9cb29af3c9b4edc6abcc7408559e748ce98a44b9be5ecc0ff0bcc6501da1b1e1c8ae8d481612ec23567bdbc876587594dde6ce790f0f0f0f0f0f0f0f0f0f0f0f0f0f0f得到:
2a42ce5d8245c9481473ba489e0e5fe5a26e343fd0728f7512a9ddc1db5fe110ede6b6e9442e3e027d89bd242145318e4440f1920e3711dab298e5848584c0e1ebbfffaeb4e1d0a122d3556d9f059c25c0fc5adef0e278475786b15d8560eab9a9b262c58de24587519badbe62f6f4ba88723a1776740d514ce635ee7f612c6f19555a4eeaf37375044824821a21ea43,将其发送给设备B。
411、设备B使用密钥K解密
2a42ce5d8245c9481473ba489e0e5fe5a26e343fd0728f7512a9ddc1db5fe110ede6b6e9442e3e027d89bd242145318e4440f1920e3711dab298e5848584c0e1ebbfffaeb4e1d0a122d3556d9f059c25c0fc5adef0e278475786b15d8560eab9a9b262c58de24587519badbe62f6f4ba88723a1776740d514ce635ee7f612c6f19555a4eeaf37375044824821a21ea43得到:
00
8af8a79111d21b1082a7d72147f7a19f223ab7109590b9c439c4b9a80b39af2b92d950316435f28c1fe9f158dccf14dab236ab6a9ba0b4492ac5cf1285c7286d95c1bb1fc2fb35408be8432d9cb29af3c9b4edc6abcc7408559e748ce98a44b9be5ecc0ff0bcc6501da1b1e1c8ae8d481612ec23567bdbc876587594dde6ce790f0f0f0f0f0f0f0f0f0f0f0f0f0f0f,验证签名通过,设备B与设备A共享了密钥K。
第二实施方式
与第一实施方式类似地,本实施方式中选取的参数位数较小,实际应用中应当使用更大的位数来保证算法的安全性。本例子中,在设备A和设备B间建立配对,设备A的标识为00,设备B的标识为01(如无特殊说明,以下数据均以16进制格式表示)。g取值2,N取值5。哈希算法使用MD5算法,数字签名算法使用ECDSA算法,临时密钥为ECDH算法密钥。
401、设备A向设备B发起配对请求。
402、设备B生成随机数5作为盐值,生成随机数6作为动态密码,生成随机数2作为临时私钥,则MD5(05|06)取第一个字节得到x=8A,公钥B=2^8A+2^2%5=3,将05 03发送给设备A。
403、设备A接收使用者输入的密码06,计算出x=8A;生成随机数3作为临时私钥,公钥A=2^3%5=3;MD5(03|03)取第一个字节得到u=AC;计算共享秘密S=(03-2^8A)^(03+AC*8A)%5=1,使用MD5算法派生密钥K=55a54008ad1ba589aa210d2629c1df41,计算校验码M=MD5(9e688c58a5487b8eaf69c9e1005ad08f|05|03|03|5a54008ad1ba589aa210d2629c1df41)=12552e8715c6f9ee8a2183e8c33eb7f8,将03 12552e8715c6f9ee8a2183e8c33eb7f8发送给设备B。
404、设备B计算共享秘密S=(03*4^AC)^2%5=1,使用MD5算法派生密钥K=55a54008ad1ba589aa210d2629c1df41,计算校验码M’=12552e8715c6f9ee8a2183e8c33eb7f8,与接收的M相同;计算校验码M2=MD5(03|12552e8715c6f9ee8a2183e8c33eb7f8|55a54008ad1ba589aa210d2629c1df41)=acff8544a74516d28e4bbdc727241024,将M2发送给设备A。
405、设备A用同样方法计算M2’=acff8544a74516d28e4bbdc727241024,与M2相同。生成ECC公私钥对,公钥为:
3049301306072a8648ce3d020106082a8648ce3d03010103320004cf62a2cd76c65ef3af60e4b53408719cf9bfb58da01b9d38842e7de78b0dfc8cf7a7b349cdc71f3dda844a2944671f14
私钥为:
305f02010104186284531840613b006faf0764aef2fc22666231b5519ad37fa00a06082a8648ce3d030101a13403320004cf62a2cd76c65ef3af60e4b53408719cf9bfb58da01b9d38842e7de78b0dfc8cf7a7b349cdc71f3dda844a2944671f14
使用私钥对
00|3049301306072a8648ce3d020106082a8648ce3d03010103320004cf62a2cd76c65ef3af60e4b53408719cf9bfb58da01b9d38842e7de78b0dfc8cf7a7b349cdc71f3dda844a2944671f14
签名得到:
3035021900fc4b73226eef4a5bc506cce81db597be9a2c0d94df17f8fd021865944bee18bf68ed1e5dd3a48fbbe747818e2be4277261b0
使用密钥K加密
00|3049301306072a8648ce3d020106082a8648ce3d03010103320004cf62a2cd76c65ef3af60e4b53408719cf9bfb58da01b9d38842e7de78b0dfc8cf7a7b349cdc71f3dda844a2944671f14|3035021900fc4b73226eef4a5bc506cce81db597be9a2c0d94df17f8fd021865944bee18bf68ed1e5dd3a48fbbe747818e2be4277261b0
得到:
90d46584f35c05ab65cc6cd9e655f4d0b6629e3b9a5505a4f77aa9d45807ece3cd69fe01239a6c7724bf1b5070eafd2747131563b49492a23bf41bebf00211b6b39590be5565fefd5b3905a7272eeed1d77e1ea8eeb9bef545ac4e43d32ffdbea2eb44bbc57c8577b91cb89b7715cd69da98538de93908b0f2a5cc86edf883267486458dbc0686fe3ff584184a4e9cbb
将其发送给设备B。
406、设备B使用密钥K解密得到:
003049301306072a8648ce3d020106082a8648ce3d03010103320004cf62a2cd76c65ef3af60e4b53408719cf9bfb58da01b9d38842e7de78b0dfc8cf7a7b349cdc71f3dda844a2944671f143035021900fc4b73226eef4a5bc506cce81db597be9a2c0d94df17f8fd021865944bee18bf68ed1e5dd3a48fbbe747818e2be4277261b0
验证签名后,将设备A标识00和公钥
3049301306072a8648ce3d020106082a8648ce3d03010103320004cf62a2cd76c65ef3af60e4b53408719cf9bfb58da01b9d38842e7de78b0dfc8cf7a7b349cdc71f3dda844a2944671f14保存。生成ECC公私钥对,公钥为:
3049301306072a8648ce3d020106082a8648ce3d03010103320004c7ae724b1294905cc937e1bfb0c99340a629433475387066a0d81f57af281c961b01f6e2ee7a6183b12bc1d11f7292c4
私钥为:
305f0201010418fdced95b87ee50d1f79cb4a721623d0c3cc147fee2126f88a00a06082a8648ce3d030101a13403320004c7ae724b1294905cc937e1bfb0c99340a629433475387066a0d81f57af281c961b01f6e2ee7a6183b12bc1d11f7292c4
使用私钥对
01|3049301306072a8648ce3d020106082a8648ce3d03010103320004c7ae724b1294905cc937e1bfb0c99340a629433475387066a0d81f57af281c961b01f6e2ee7a6183b12bc1d11f7292c4
签名得到:
303502190089c4f5cb26db9af36a45e796275d6b2bde67e6259cd80bc6021839646d7e7b37123e9197885bf18c148f6f84b503791b19ce
使用密钥K加密
01|3049301306072a8648ce3d020106082a8648ce3d03010103320004c7ae724b1294905cc937e1bfb0c99340a629433475387066a0d81f57af281c961b01f6e2ee7a6183b12bc1d11f7292c4|303502190089c4f5cb26db9af36a45e796275d6b2bde67e6259cd80bc6021839646d7e7b37123e9197885bf18c148f6f84b503791b19ce
得到:
142ccc00a0f6fbcb48d0895108312ed6edd030bb875a5aa9804977e624c9be01a342dadf97daa7601a0a8268ff90cfa5ec39a110c3f2cf5203a086c78473f44c9b6344a798f9caa3aba3ec0ef05de6040ccff242f86dd4c59f0e9d830e7501c9c541a8781da4abe778a289b5bfeed493d7b5f2f08816db330ffb0a639fc78a94ca421919d7193c9ed314a450d7b48c40
将其发送给设备A。
407、设备A使用密钥K解密得到:
013049301306072a8648ce3d020106082a8648ce3d03010103320004c7ae724b1294905cc937e1bfb0c99340a629433475387066a0d81f57af281c961b01f6e2ee7a6183b12bc1d11f7292c4303502190089c4f5cb26db9af36a45e796275d6b2bde67e6259cd80bc6021839646d7e7b37123e9197885bf18c148f6f84b503791b19ce
验证签名,将设备B标识01和公钥
3049301306072a8648ce3d020106082a8648ce3d03010103320004c7ae724b1294905cc937e1bfb0c99340a629433475387066a0d81f57af281c961b01f6e2ee7a6183b12bc1d11f7292c4保存。
至此,设备A与设备B完成了配对,下面描述配对验证过程:
本实施方式中采用了ECDH算法中的ECC P192曲线。
408、设备A生成临时公私钥对,临时公钥:
3049301306072a8648ce3d020106082a8648ce3d030101033200040806482e610d2a1955f3e8b1a7fb64e572497217cf0b64b07a5812533f30991ec1f4f1d5a982a73fcd880ca6ba87b841
临时私钥:
305f02010104185d86ced608d5141560765157784f05300db7b6da6d1ac982a00a06082a8648ce3d030101a134033200040806482e610d2a1955f3e8b1a7fb64e572497217cf0b64b07a5812533f30991ec1f4f1d5a982a73fcd880ca6ba87b841
将临时公钥
3049301306072a8648ce3d020106082a8648ce3d030101033200040806482e610d2a1955f3e8b1a7fb64e572497217cf0b64b07a5812533f30991ec1f4f1d5a982a73fcd880ca6ba87b841
发送给设备B。
409、设备B生成临时公私钥对,临时公钥:
3049301306072a8648ce3d020106082a8648ce3d03010103320004cae168ec1b2d17ddb15bcf970cc2bb3461d1014b5bf10e90b400d2c51e6187ddcd2fe4ddd0f852320f77a8877b2fd38c
临时私钥:
305f0201010418468e4fbb4118a204a397980dba1450940963327a4ea33622a00a06082a8648ce3d030101a13403320004cae168ec1b2d17ddb15bcf970cc2bb3461d1014b5bf10e90b400d2c51e6187ddcd2fe4ddd0f852320f77a8877b2fd38c
计算共享秘密S=
(305f0201010418468e4fbb4118a204a397980dba1450940963327a4ea33622a00a06082a8648ce3d030101a13403320004cae168ec1b2d17ddb15bcf970cc2bb3461d1014b5bf10e90b400d2c51e6187ddcd2fe4ddd0f852320f77a8877b2fd38c)˙
(3049301306072a8648ce3d020106082a8648ce3d030101033200040806482e610d2a1955f3e8b1a7fb64e572497217cf0b64b07a5812533f30991ec1f4f1d5a982a73fcd880ca6ba87b841)=
C05284A68EAE44497D93D6CC2241595A6E156D947CC1F89ED31F96D7495B052ED008B53A017F12B582C8924CDD42A586
其中,符号˙表示ECC算法中的点乘运算;
使用MD5算法计算K=
MD5(C05284A68EAE44497D93D6CC2241595A6E156D947CC1F89ED31F96D7495B052ED008B53A017F12B582C8924CDD42A586)=
87643663dbb2e3b90ac7e59580668a65;
计算签名Sig=
Sign(3049301306072a8648ce3d020106082a8648ce3d03010103320004cae168ec1b2d17ddb15bcf970cc2bb3461d1014b5bf10e90b400d2c51e6187ddcd2fe4ddd0f852320f77a8877b2fd38c|01|
3049301306072a8648ce3d020106082a8648ce3d030101033200040806482e610d2a1955f3e8b1a7fb64e572497217cf0b64b07a5812533f30991ec1f4f1d5a982a73fcd880ca6ba87b841)=
303402183032a76a9aba849cc385147fc002fe78eb5198c27c83a6c202180dc4afbab5b652cefac391f0ab59053edf722ab4036c6f25;
使用密钥K加密
01
303402183032a76a9aba849cc385147fc002fe78eb5198c27c83a6c202180dc4afbab5b652cefac391f0ab59053edf722ab4036c6f25
得到:
9781763338592ba879a610cda024753b8192f998bbaaf593510682f248871da049f1bb8b1c4fb450fd8a1e54980fc4869fcecc54bf17c2d75bfc280cf74e102a,
将其和临时公钥
3049301306072a8648ce3d020106082a8648ce3d03010103320004cae168ec1b2d17ddb15bcf970cc2bb3461d1014b5bf10e90b400d2c51e6187ddcd2fe4ddd0f852320f77a8877b2fd38c发送给设备A。
410、设备A计算S=
(305f02010104185d86ced608d5141560765157784f05300db7b6da6d1ac982a00a06082a8648ce3d030101a134033200040806482e610d2a1955f3e8b1a7fb64e572497217cf0b64b07a5812533f30991ec1f4f1d5a982a73fcd880ca6ba87b841)˙
(3049301306072a8648ce3d020106082a8648ce3d03010103320004cae168ec1b2d17ddb15bcf970cc2bb3461d1014b5bf10e90b400d2c51e6187ddcd2fe4ddd0f852320f77a8877b2fd38c)=
C05284A68EAE44497D93D6CC2241595A6E156D947CC1F89ED31F96D7495B052ED008B53A017F12B582C8924CDD42A586;
使用MD5算法计算K=
MD5(C05284A68EAE44497D93D6CC2241595A6E156D947CC1F89ED31F96D7495B052ED008B53A017F12B582C8924CDD42A586)=87643663dbb2e3b90ac7e59580668a65;
使用密钥K解密
9781763338592ba879a610cda024753b8192f998bbaaf593510682f248871da049f1bb8b1c4fb450fd8a1e54980fc4869fcecc54bf17c2d75bfc280cf74e102a得到:
01
303402183032a76a9aba849cc385147fc002fe78eb5198c27c83a6c202180dc4afbab5b652cefac391f0ab59053edf722ab4036c6f25,验证签名通过。
计算签名Sig=
Sign(3049301306072a8648ce3d020106082a8648ce3d030101033200040806482e610d2a1955f3e8b1a7fb64e572497217cf0b64b07a5812533f30991ec1f4f1d5a982a73fcd880ca6ba87b841|00|
3049301306072a8648ce3d020106082a8648ce3d03010103320004cae168ec1b2d17ddb15bcf970cc2bb3461d1014b5bf10e90b400d2c51e6187ddcd2fe4ddd0f852320f77a8877b2fd38c)=
303502190093244003af0a68b5a8382f6392cd47303b35f7adacf1854f02180dac065452db02fb6f74d7ec09cb262a38ad334b46526fd1
使用密钥K加密
00
303502190093244003af0a68b5a8382f6392cd47303b35f7adacf1854f02180dac065452db02fb6f74d7ec09cb262a38ad334b46526fd1得到:
73337415d21502fe5fb6bd403534b7c3bff9ff247eff5b802dfee57e3cf9fc5b23a4a2a4b24f0195ba47b6d18d2765f3d51bb516cb31ef78e12eec43ed556c0f,将其发送给设备B。
411、设备B使用密钥K解密
73337415d21502fe5fb6bd403534b7c3bff9ff247eff5b802dfee57e3cf9fc5b23a4a2a4b24f0195ba47b6d18d2765f3d51bb516cb31ef78e12eec43ed556c0f得到:
00
303502190093244003af0a68b5a8382f6392cd47303b35f7adacf1854f02180dac065452db02fb6f74d7ec09cb262a38ad334b46526fd1,验证签名通过,设备B与设备A共享了密钥K=87643663dbb2e3b90ac7e59580668a65。

Claims (20)

1.一种通信配对方法,应用于第一设备,该方法包括:
向第二设备发送配对请求后,从第二设备接收第二临时公钥;
生成第一临时公钥和第一临时私钥,并基于输入第一设备的动态密码生成第一中间值,基于第一临时公钥和第二临时公钥生成第二中间值,基于第一中间值和第二中间值生成第一验证码,将第一临时公钥和第一验证码发送给第二设备进行第一验证;
在第一验证通过之后,与第二设备交换配对公钥;
其中,所述第一验证是否通过由所述第二设备根据第四验证码和所述第一验证码的比较结果确定,所述第四验证码基于第四中间值和第五中间值生成,所述第四中间值基于所述动态密码生成,所述第五中间值基于所述第一临时公钥和所述第二临时公钥生成。
2.如权利要求1所述的方法,其特征在于,在与第二设备交换配对公钥之前,该方法还包括:
从第二设备接收第二验证码并进行第二验证,第二验证包括:基于第一临时公钥和第二临时公钥中的至少一个以及第一验证码生成第三验证码,并将第三验证码与第二验证码进行比较。
3.如权利要求1所述的方法,其特征在于,
第一中间值的生成包括:基于所述动态密码进行预定运算得到第一运算值,将第一运算值的预定部分作为第一中间值;和/或
第二中间值的生成包括:基于第一临时公钥和第二临时公钥进行预定运算得到第二运算值,将第二运算值的预定部分作为第二中间值。
4.如权利要求1所述的方法,其特征在于,第一临时私钥是随机生成的,第一临时公钥是基于第一临时私钥计算得到的。
5.如权利要求4所述的方法,其特征在于,第一临时公钥是基于第一临时私钥并根据幂运算和模运算中的至少一种运算计算得到的。
6.如权利要求1所述的方法,其特征在于,该方法还包括从第二设备接收第一盐值,其中,在生成第一中间值、第二中间值和/或第一验证码时还使用了第一盐值。
7.如权利要求1所述的方法,其特征在于,基于第一中间值和第二中间值生成第一验证码,包括:
基于第一中间值和第二中间值计算第一密钥因子;
根据第一密钥因子生成第一密钥;
基于第一密钥生成第一验证码。
8.如权利要求7所述的方法,其特征在于,基于第一中间值和第二中间值计算第一密钥因子,包括:基于第一中间值和第二中间值并根据幂运算和模运算中的至少一种运算计算第一密钥因子。
9.如权利要求7或8所述的方法,其特征在于,基于第一中间值和第二中间值计算第一密钥因子,包括:基于第一中间值和第二中间值以及第一临时公钥、第二临时公钥和第一临时私钥这三者中的至少一者计算第一密钥因子。
10.如权利要求7所述的方法,其特征在于,该方法还包括从第二设备接收第一盐值,则所述基于第一密钥生成第一验证码,包括:基于第一临时公钥、第二临时公钥和第一盐值中的至少一个和所述第一密钥生成第一验证码。
11.如权利要求7所述的方法,其特征在于,基于第一密钥生成第一验证码,包括:基于第一密钥和第一约定值生成第一验证码。
12.如权利要求11所述的方法,其特征在于,第一约定值是使用约定算法对至少一个约定因子进行计算得到的。
13.如权利要求11所述的方法,其特征在于,第一约定值是对多个约定因子中的每个约定因子分别使用第一约定算法计算得到运算结果后,使用第二约定算法对所述运算结果进行处理后得到的。
14.如权利要求7所述的方法,其特征在于,在与第二设备交换配对公钥之前,该方法还包括:
从第二设备接收第二验证码并进行第二验证,第二验证包括:基于所述第一密钥和第一验证码生成第三验证码,并将第三验证码与第二验证码进行比较。
15.如权利要求14所述的方法,其特征在于,基于所述第一密钥和第一验证码生成第三验证码,包括:
基于第一临时公钥和第二临时公钥中的至少一个以及所述第一密钥和第一验证码生成第三验证码。
16.如权利要求7所述的方法,其特征在于,在与第二设备交换配对公钥时,用所述第一密钥加密配对公钥。
17.一种通信配对方法,应用于第一设备,其特征在于,包括:
生成第三临时公钥和第三临时私钥,将第三临时公钥发送给第二设备,并从第二设备接收配对公钥标识密文和第四临时公钥;
基于约定的算法和约定的参数计算第二密钥,使用第二密钥从所述配对公钥标识密文获得配对公钥标识和第一校验值,所述约定的参数包括第三临时私钥和第四临时公钥;
使用与配对公钥标识对应的配对公钥对所述第一校验值进行第三验证;
在第三验证通过之后,以所述第二密钥为通信密钥与第二设备进行数据通信。
18.如权利要求17所述的方法,其特征在于,在与第二设备进行数据通信之前,该方法还包括:
使用第一设备的配对私钥对包括第一设备的配对公钥的标识在内的数据计算第二校验值,用第二密钥对第一设备的配对公钥的标识与第二校验值加密后发送给第二设备进行第四校验。
19.如权利要求18所述的方法,其特征在于,所述数据还包括第三临时公钥和/或第四临时公钥。
20.一种通信装置,其作为第一设备,包括:
存储器,其配置为存储预定的计算机指令;
处理器,其配置为执行所述预定的计算机指令以实现如权利要求1-19中任一项所述的方法。
CN201910275903.3A 2019-04-08 2019-04-08 一种通信配对方法及通信装置 Active CN110022320B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910275903.3A CN110022320B (zh) 2019-04-08 2019-04-08 一种通信配对方法及通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910275903.3A CN110022320B (zh) 2019-04-08 2019-04-08 一种通信配对方法及通信装置

Publications (2)

Publication Number Publication Date
CN110022320A CN110022320A (zh) 2019-07-16
CN110022320B true CN110022320B (zh) 2020-12-18

Family

ID=67190695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910275903.3A Active CN110022320B (zh) 2019-04-08 2019-04-08 一种通信配对方法及通信装置

Country Status (1)

Country Link
CN (1) CN110022320B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314072B (zh) * 2020-02-21 2021-06-22 北京邮电大学 一种基于sm2算法的可扩展身份认证方法和***
CN112187832A (zh) * 2020-11-03 2021-01-05 北京指掌易科技有限公司 数据传输方法和电子设备
CN112636910B (zh) * 2020-12-29 2021-08-24 北京深思数盾科技股份有限公司 临时密码的生成与验证方法、设备及***
CN112529588A (zh) * 2020-12-30 2021-03-19 楚天龙股份有限公司 防止硬件钱包被恶意配对的方法及装置
CN113032815B (zh) * 2021-05-18 2021-08-24 杭州海康威视数字技术股份有限公司 一种密钥组合计算管理方法、装置及设备
WO2023212904A1 (zh) * 2022-05-06 2023-11-09 Oppo广东移动通信有限公司 中继通信的方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101494640A (zh) * 2008-01-23 2009-07-29 华为技术有限公司 保护移动ip路由优化信令的方法、***、节点和家乡代理
CN105590040A (zh) * 2014-11-03 2016-05-18 索尼公司 用于加密数字内容的数字权限管理的方法和***

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004048660A (ja) * 2002-05-24 2004-02-12 Sony Corp 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
KR100930577B1 (ko) * 2006-11-13 2009-12-09 한국전자통신연구원 스트림 암호를 이용한 메시지 인증 코드 생성 방법과스트림 암호를 이용한 인증 암호화 방법 및 스트림 암호를이용한 인증 복호화 방법
CN100488099C (zh) * 2007-11-08 2009-05-13 西安西电捷通无线网络通信有限公司 一种双向接入认证方法
EP2128781A1 (en) * 2008-05-27 2009-12-02 Benny Kalbratt Method for authentication
CN101582906B (zh) * 2009-06-23 2012-04-18 中国人民解放军信息工程大学 密钥协商方法和装置
CN102035644B (zh) * 2009-09-29 2013-02-27 国基电子(上海)有限公司 主密钥动态配置***及方法
US9092385B2 (en) * 2011-08-17 2015-07-28 Cleversafe, Inc. Facilitating access of a dispersed storage network
CN104955040B (zh) * 2014-03-27 2019-12-24 西安西电捷通无线网络通信股份有限公司 一种网络鉴权认证的方法及设备
EP2966805A1 (en) * 2014-07-09 2016-01-13 Broadcom Corporation Push button configuration pairing
CN105184553B (zh) * 2015-09-06 2019-01-22 宁波大学 基于近场通信的影院移动支付方法
CN107786572A (zh) * 2017-11-07 2018-03-09 苏州工业园区服务外包职业学院 一种用户身份的验证方法、装置及终端
CN108880783B (zh) * 2018-09-06 2021-04-20 成都三零嘉微电子有限公司 一种针对sm4算法的联合攻击方法
CN109286921B (zh) * 2018-09-25 2021-07-02 锐达互动科技股份有限公司 一种便携式多场景教学身份认证方法
CN109617701A (zh) * 2019-01-23 2019-04-12 桂林航天工业学院 用于使用电子通信中的认证安全的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101494640A (zh) * 2008-01-23 2009-07-29 华为技术有限公司 保护移动ip路由优化信令的方法、***、节点和家乡代理
CN105590040A (zh) * 2014-11-03 2016-05-18 索尼公司 用于加密数字内容的数字权限管理的方法和***

Also Published As

Publication number Publication date
CN110022320A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
CN110022320B (zh) 一种通信配对方法及通信装置
Biham et al. Breaking the Bluetooth pairing–the fixed coordinate invalid curve attack
US8644515B2 (en) Display authenticated security association
US7814320B2 (en) Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
JP7389103B2 (ja) 追跡に対するプライバシーを維持しながら無線セキュアリンクを確立する方法および装置
Ray et al. Establishment of ECC-based initial secrecy usable for IKE implementation
CN110048849B (zh) 一种多层保护的会话密钥协商方法
CN103763356A (zh) 一种安全套接层连接的建立方法、装置及***
CN104270249A (zh) 一种从无证书环境到基于身份环境的签密方法
CN112104453B (zh) 一种基于数字证书的抗量子计算数字签名***及签名方法
CN104301108A (zh) 一种从基于身份环境到无证书环境的签密方法
CN103118363A (zh) 一种互传秘密信息的方法、***、终端设备及平台设备
CN115499250B (zh) 一种数据加密方法及装置
CN107508684A (zh) 非对称加解密方法和装置
CN111416712B (zh) 基于多个移动设备的量子保密通信身份认证***及方法
Niu et al. A novel user authentication scheme with anonymity for wireless communications
CN103401872A (zh) 基于rdp改进协议的防止和检测中间人攻击的方法
CN111526131B (zh) 基于秘密共享和量子通信服务站的抗量子计算的电子公文传输方法和***
CN101888383B (zh) 一种可扩展的可信ssh的实现方法
CN108932425B (zh) 一种离线身份认证方法、认证***及认证设备
CN114070570B (zh) 一种电力物联网的安全通信方法
CN113014376B (zh) 一种用户与服务器之间安全认证的方法
CN110365482B (zh) 一种数据通信方法和装置
CN113905359A (zh) 一种银行外设的蓝牙安全通讯方法、装置、设备和介质
KR20170087120A (ko) 무인증서 공개키 암호 시스템 및 수신 단말기

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
TA01 Transfer of patent application right

Effective date of registration: 20201028

Address after: Room 124, 1 / F, building 2, yard 9, jiaogezhuang street, Nanfaxin Town, Shunyi District, Beijing

Applicant after: Beijing Wikipedia Technology Co.,Ltd.

Address before: 100193, No. 5, building 5, east 10, East Hospital, No. 510 Wang Dong Road, Beijing, Haidian District

Applicant before: BEIJING SENSE SHUDUN TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant