CN104303451A - 密钥共享设备以及用于其配置的系统 - Google Patents

密钥共享设备以及用于其配置的系统 Download PDF

Info

Publication number
CN104303451A
CN104303451A CN201380026762.2A CN201380026762A CN104303451A CN 104303451 A CN104303451 A CN 104303451A CN 201380026762 A CN201380026762 A CN 201380026762A CN 104303451 A CN104303451 A CN 104303451A
Authority
CN
China
Prior art keywords
key
modulus
polynomial
network equipment
privately owned
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
CN201380026762.2A
Other languages
English (en)
Other versions
CN104303451B (zh
Inventor
O.加西亚莫乔恩
L.M.G.M.托休伊泽恩
J.古蒂尔雷兹
S.S.库马
D.戈梅兹
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN104303451A publication Critical patent/CN104303451A/zh
Application granted granted Critical
Publication of CN104303451B publication Critical patent/CN104303451B/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/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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0431Key distribution or pre-distribution; Key agreement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0433Key management protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/121Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
    • H04W12/122Counter-measures against attacks; Protection against rogue devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种配置网络设备以用于密钥共享的方法以及一种用于第一网络设备确定共享密钥的方法。所述配置方法使用私有模数( p 1)、公共模数( N )和具有整数系数的二元多项式( f 1),公共模数的二进制表示和私有模数的二进制表示在至少密钥长度( b )连续位中是相同的。用于网络设备的本地密钥材料通过将身份号码代入二元多项式中并且以私有模数为模约简所述代入的结果以获得一元多项式而生成。安全性可以通过将一个或多个混淆数添加(440)到一元多项式的系数以便获得混淆的一元多项式而提高。在使用阶段,网络设备通过将另一个网络设备的身份号码代入(530)一元多项式中并且以公共模数为模约简且以密钥模数为模约简而确定共享密码密钥。

Description

密钥共享设备以及用于其配置的系统
技术领域
本发明涉及一种配置网络设备以用于密钥共享的方法,该方法包括:生成用于网络设备的本地密钥材料,包括以电子形式获得用于网络设备的身份号码,使用多项式操纵设备通过将身份号码代入二元多项式中而根据二元多项式确定一元多项式;以及将生成的本地密钥材料电子地存储在网络设备处。
本发明进一步涉及一种用于第一网络设备确定共享密钥的方法,该密钥为密码密钥,该方法包括:获得电子形式的用于第一网络设备的本地密钥材料,该本地密钥材料包括一元多项式;获得用于第二网络设备的身份号码,该第二网络设备不同于第一网络设备;将第二网络设备的身份号码代入一元多项式中;以及从中导出共享密钥。
本发明进一步涉及一种用于配置网络设备以用于密钥共享的系统,并且涉及被配置成确定共享密钥的网络设备。
背景技术
给定包括多个网络设备的通信网络,在各对的这样的网络设备之间设立安全连接是个问题。在C. Blundo, A. De Santis, A. Herzberg, S. Kutten, U. Vaccaro and M. Yung, “Perfectly-Secure Key distribution for Dynamic Conferences”, Springer Lecture Notes in Mathematics, Vol. 740, pp. 471-486, 1993(称为“Blundo”)中描述了实现这点的一种方式。
假设也称为网络权威机构或者受信任第三方(TTP)的中心权威机构生成具有有限域F中的系数的具有p个元素的对称二元多项式f(x,y),其中p为素数或者素数的幂。每个设备具有F中的身份号码,并且由TTP提供本地密钥材料。对于具有标识符η的设备而言,本地密钥材料是多项式f(η,y)的系数。
如果设备η希望与设备通信η’,那么它使用它的密钥材料生成密钥K(η, η’) = f(η, η’)。由于f是对称的,因而生成相同的密钥。
如果攻击者知道t+1或者更多个设备的密钥材料,那么该密钥共享方案的问题出现了,其中t为二元多项式的阶数。攻击者于是可以重构多项式f(x,y)。此时,系统的安全性完全被打破。给定任何两个设备的身份号码,攻击者就能重构在这对设备之间共享的密钥。
参照作者Song Guo、Victor Leung和Zhuzhong Qian的论文“A Permutation-Based Multi-Polynomial Scheme for Pairwise Key Establishment in Sensor Networks," IEEE International Conference on Communications, 2010。它提出了一种用于无线传感器网络中的成对密钥确立的基于排列(permutation)的多多项式方案,与Blundo不同的是,Song中提出的方案并不给予每个节点仅仅一个份额的对称多项式,而是一组排列的份额。
发明内容
有利的是,具有一种改进的用于在两个网络设备之间确立共享密钥的方法。提供了一种配置网络设备以用于密钥共享的方法以及一种用于网络设备确定共享密钥的方法。
配置网络设备以用于密钥共享的方法包括:以电子形式获得私有模数、公共模数和具有整数系数的二元多项式,公共模数的二进制表示和私有模数的二进制表示在至少密钥长度连续位中是相同的;生成用于网络设备的本地密钥材料,包括以电子形式获得用于网络设备的身份号码,使用多项式操纵设备通过将身份号码代入二元多项式中而根据二元多项式确定一元多项式,以私有模数为模约简所述代入的结果;以及将生成的本地密钥材料电子地存储在网络设备处。在一个实施例中,生成用于网络设备的本地密钥材料包括例如通过使用电子随机数生成器生成混淆数,并且使用多项式操纵设备将混淆数添加至一元多项式的系数以便获得混淆的一元多项式,生成的本地密钥材料包括混淆的一元多项式。可以使超过一个系数被混淆,优选地不同的系数不同地混淆。在一个实施例中,生成用于网络设备的本地密钥材料包括例如通过使用电子随机数生成器生成多个混淆数,并且使用多项式操纵设备将所述多个混淆数的每个混淆数添加至一元多项式的系数中的对应系数以便获得混淆的一元多项式。在一个实施例中,将混淆的数添加至一元多项式的每个系数。
二元多项式可以是或者可以不是对称的。如果该一个或多个二元多项式是对称的,那么任何两个网络设备可以导出共享密钥。有趣的是,通过使用非对称二元多项式或者多个二元多项式之中的一个或多个非对称二元多项式作为根建钥材料,允许适应诸如设备之类的两组设备的创建;属于相同组的两个设备不能生成共同的密钥,但是不同组中的两个设备可以。
添加混淆是可选的步骤。在没有混淆的情况下,仍然获得抗攻击的防护,因为本地密钥材料的导出使用与公共模数不同的私有模数;工作于比如单个有限域中时将存在的数学关系被扰乱。这意味着用于分析多项式的通常的数学工具(例如有限代数)不再适用。另一方面,由于私有和公共模数在若干连续位中重叠,因而具有本地密钥材料的两个网络设备很可能能够导出相同的共享密钥。安全性可以通过将一个或多个混淆数添加到一元多项式的系数以便获得混淆的一元多项式而提高。然而,添加混淆数的步骤是可选的,并且可以省略。是否添加混淆是正确地导出共享密钥的机会与附加的安全性之间的折衷。
公共模数用在网络设备中。配置网络设备以用于密钥共享的方法可以包括使得公共模数对于网络设备可用,例如将公共模数与本地密钥材料一起存储。
用于第一网络设备确定共享密钥(该密钥为密码密钥)的方法包括:获得电子形式的用于第一网络设备的本地密钥材料,该本地密钥材料包括可能地混淆的一元多项式;获得用于第二网络设备的身份号码,该第二网络设备不同于第一网络设备;将第二网络设备的身份号码代入混淆的一元多项式中;以公共模数为模约简所述代入的结果,接着以密钥模数为模进行约简;以及从以密钥模数为模的约简结果中导出共享密钥。在一个实施例中,例如,该方法包括以公共模数为模约简所述代入的结果,将该结果除以2的幂,以及以密钥模数为模进行约简。
每个具有身份号码以及为该身份号码生成的本地密钥材料的多个网络设备中的任何配对的两个网络设备能够利用很少的资源协商共享密钥。这两个网络设备只需交换其不必保密的身份号码,并且执行多项式计算。需要的计算类型无需大量计算资源,这意味着该方法适合于低成本高容积类型的应用。
如果从对称多项式中获得了本地密钥材料,那么这允许网络设备配对中的两个网络设备获得相同的共享密钥。如果混淆数添加到本地密钥材料,那么本地密钥材料与根密钥材料之间的关系被扰乱。存在于未混淆的一元多项式与对称二元多项式之间存在的关系不再存在。这意味着对于这种方案的直接攻击不再起作用。
即使没有使用混淆,攻击难度仍然存在,因为公共模数和私有模数(或者多个模数)不相等。以公共模数为模的约简即使在没有混淆的情况下也增加了导出相同共享密钥的机会。
在一个实施例中,公共模数的二进制表示和私有模数的二进制表示在至少密钥长度(b)连续位中是相同的。应当指出的是,可以使用多个私有模数;它们可以被选择成使得公共模数的所述多个私有模数的任何一个的二进制表示和私有模数的二进制表示在至少密钥长度(b)连续位中是相同的。对于所述多个私有模数中的每一个私有模数,选择具有整数系数的可选地对称的二元多项式以便获得多个且可选地对称的二元多项式。
由于本地密钥材料的导出使用了与公共模数不同的私有模数,因而工作于比如单个有限域中时将存在的数学关系被扰乱。这意味着用于分析多项式的通常的数学工具(例如有限代数)不再适用。攻击者最多可以使用效率低得多的结构,例如晶格(lattice)。再者,当导出共享密钥时,组合了在通常的数学意义上不兼容的两个模操作;因此,在两处避免了数学结构。该方法允许直接的成对密钥生成并且对于非常高数量(例如10^5或者甚至更高量级)的网络设备的捕获有弹性。另一方面,由于私有和公共模数在若干连续位中重叠,因而具有本地密钥材料的两个网络设备很可能能够导出相同的共享密钥。
本发明人特别的见解在于,公共模数无需是素数。在一个实施例中,公共模数是复合的。再者,不存在为什么公共模数应当在其二进制表示中为“全1”位数,例如仅由1位组成的数的原因。在一个实施例中,公共模数不是2的幂减去1。在一个实施例中,公共模数的二进制表示包括至少一个零位(不计算前导零,即公共模数的二进制表示包括不比公共模数的最高有效位有效的至少一个零位)。在一个实施例中,公共模数是2的幂减去1并且是复合的。
在一个实施例中,公共模数大于所述一个或多个私有模数。
在一个实施例中,公共模数减去私有模数的二进制表示的至少密钥长度连续位为全零位。该差值应当使用公共模数减去私有模数的符号数表示,而不是两补码表示求取。可替换地,可以要求公共模数减去私有模数的绝对值的二进制表示的至少密钥长度连续位为全零位。存在密钥长度(b)连续位置集合,其中公共模数的二进制表示与所有私有模数的二进制表示一致。
其中公共模数与私有模数一致的连续位位置可以是最低有效位。在一个实施例中,公共模数减去私有模数的二进制表示的最低有效密钥长度位为全零位;这具有以下优点:当导出共享密钥时,无需除以2的幂。
允许多个私有模数中的私有模数等于公共模数;然而,如果仅仅使用一个私有模数,那么这不是所希望的。
希望的是,私有模数引入足够的非线性。在一个实施例中,存在连续位位置集合,其中公共模数与每个私有模数都不同。此外,也可能强制要求私有模数在它们本身之中不同;私有模数的二进制表示的成对比较也可以在比如至少密钥长度连续位集合中的至少一位中不同,该集合对于所有私有模数是相等的并且可能地对于公共模数也相同。
网络设备可以是装备有电子通信和计算装置的电子设备。网络设备可以例如以RFID标签的形式附接到任何非电子对象。例如,该方法将适合于“物联网”。例如,对象,尤其是低成本对象可以装备有无线电标签,它们可以通过无线电标签通信,例如可以被标识。这样的对象可以通过诸如计算机之类的电子装置造册。被盗或者破碎的物品可以容易跟踪和定位。一个特别有希望的应用是包括被配置成确定共享密钥的网络设备的灯。这样的灯可以安全地传送其状态;这样的灯可以安全地进行控制,例如接通和/或关断。网络设备可以是多个网络设备之一,每一个网络设备包括用于发送和接收身份号码并且用于发送电子状态消息的电子通信器,并且每一个网络设备包括被配置用于遵循依照本发明的方法导出共享密钥的集成电路。
在一个实施例中,本发明的方法可以用作用于诸如IPSec、(D)TLS、HIP或ZigBee之类的安全协议的密码方法。特别地,使用那些协议之一的设备与标识符关联。愿意与第一设备通信的第二设备可以利用给定其标识符的第一设备生成共同的成对密钥,并且该成对密钥(或者借助于例如密钥导出函数据此导出的密钥)可以用在上面的协议的基于预共享密钥的方法中。特别地,如本发明中所限定的设备的标识符可以是网络地址,例如ZigBee短地址、IP地址或者主机标识符。标识符也可以是设备的IEEE地址或者与设备关联的专有位串,使得设备在制造期间接收与IEEE地址关联的某个本地建钥材料。
导出共享密钥可以用于许多应用。典型地,共享密钥将是一种密码对称密钥。对称密钥可以用于保密,例如可以利用对称密钥对外出的或者到来的消息加密。只有有权使用两个身份号码和两个本地密钥材料之一(或者有权使用根密钥材料)的设备才能够对通信解密。对称密钥可以用于认证,例如可以利用对称密钥对外出的或到来的消息进行认证。按照这种方式,可以验证消息的起源。只有有权使用两个身份号码和两个本地密钥材料之一(或者有权使用根密钥材料)的设备才能够创建认证的消息。
配置网络设备以用于密钥共享的方法典型地将由网络权威机构(例如受信任第三方)执行。网络权威机构可以从另一个源获得所需的材料,例如根密钥材料,但是也可以自身生成该材料。例如,可以生成公共模数。例如,即使公共模数为系统参数并且被接收,也可以生成私有模数。
在一个实施例中,公共模数N被选择成使得它满足 ,其中a表示二元多项式的阶数并且b表示密钥长度。例如,在一个实施例中,N=2(a+2)b -1。用于后一选择的模操作可以特别高效地实现。
具有固定公共模数具有以下优点:它不必传送至网络设备,而是可以与例如其系统软件集成在一起。特别地,公共模数可以使用随机数生成器进行选择。
公共和私有模数可以表示为位串。它们也可以使用每个特别的数学结构缩减。例如,代替存储私有模数的是,也可以存储短得多的其与公共模数的差值。
以公共模数减去私有模数的二进制表示的“密钥长度”数量的最低有效位为全零位的方式选择私有模数提高了网络设备配对的第一网络设备处的共享密钥接近网络设备配对的第二网络设备处导出的共享密钥的可能性;换言之,私有模数的二进制表示在“密钥长度”最低有效位置中具有与公共模数的二进制表示相同的位。例如,如果密钥长度为64,那么可以通过从公共模数中减去2^64的倍数选择私有模数。在一个实施例中,公共模数减去私有模数除以2的密钥长度次幂小于2的密钥长度次幂。
在一个实施例中,以电子形式获得或者生成多个私有模数,对于所述多个私有模数中的每个私有模数,选择具有整数系数的对称二元多项式以便获得多个对称二元多项式,使得对称二元多项式与每个私有模数相应。确定一元多项式包括将身份号码代入所述多个对称二元多项式中的每一个中,以与所述一个对称二元多项式相应的所述多个私有模数中的私有模数为模进行约简,并且将所述多个约简的多个结果加在一起。具有用于不同模数的多个对称二元多项式提高了安全性,因为进一步混合了不兼容的结构。典型地,私有模数是不同的。如果相应代数结构截然不同;例如,将它们选择成互素,尤其是成对互素,甚至更特别地通过将它们选择成不同的素数,那么具有多个私有模数进一步甚至更加使分析复杂化。
具有不同的私有模数,尤其是多个私有模数将使分析复杂化。为了进一步提高安全性,对于系数的附加控制是可能的。在一个实施例中,将多次约简的多个得到的一元多项式加在一起的权威机构核实每个得到的系数的值是太小还是太大,例如小于最小阈值还是高于最大阈值。这甚至进一步改进了安全性,因为在这两种情况中的任一情况下,攻击者可能发现所述多次约简的分量(如果它们太大或太小的话)。例如,如果在相加之后得到的系数的值等于1并且只存在两个一元多项式,那么攻击者知道与第一多项式关联的相应系数为1并且与第二多项式关联的系数为0,或者反过来。特别地,生成用于设备的本地密钥材料的权威机构可以核实本地建钥材料的每一个得到的系数的值至少为“最小值”并且至多为“最大值”。特别地,如果公共模数相对接近所有私有模数并且密钥材料的所有元素介于0与N-1之间,那么可以省略该核实。如果TTP能够分配身份号码,那么它也可以在TTP检测到小的或大的系数的情况下将另一个身份号码分配给设备。
在一个实施例中,每个特定私有模数使得公共模数减去该特定私有模数的二进制表示的最低有效密钥长度(b)位为全零位。
公共模数可以大于或小于私有模数。在一个实施例中,公共模数减去该特定私有模数的二进制表示具有全零的至少密钥长度位。这些零位至少密钥长度零位是连续的并且可以存在于二进制表示中的任何点处。在公共模数与私有模数之间的差值中具有零位串避免了混淆进行得太远。在一个实施例中,存在整数参数“s”,使得公共模数减去私有模数除以2的s次幂的密钥长度最低有效位全零。参数“s”对于所有私有模数是相同的。
例如,可以限定作为2的幂的零位串除数,使得每个特定私有模数使得公共模数减去该特定私有模数除以零位串除数的二进制表示的密钥长度(b)位为全零位。如果最低有效位为零,那么零位串除数可以取为1。在一个实施例中,零位串除数大于1。除以2的幂应当被解释为整数除法,给出与最低有效位方向上的位的移动相同的结果。该除法的任何余数被忽略。
为了生成密钥长度位的共享密钥,网络设备首先应用附加的除法步骤。第一网络设备以公共模数为模求取用于第二设备的身份号码的建钥材料,除以2^s并且以2的密钥长度的幂为模进行约简。应当指出的是,这等效于在以公共模数为模之后首先应用模2^(s+密钥长度),并且然后除以2^s。在这里,“除”包括向下取整。
在一个实施例中,私有模数使用随机数生成器生成。在一个实施例中,生成所述多个私有模数,使得它们成对互素。例如,所述多个私有模数可以通过对于每个新私有模数核实它们仍然成对互素并且如果不互素的话,丢弃最近生成的私有模数而迭代地生成。一个实施例包括使用随机数生成器迭代地生成候选模数,使得公共模数减去候选模数的二进制表示的密钥长度(b)连续位为全零位,例如最低有效密钥长度位,直到候选模数满足使用素性测试设备的素性测试,其中这样获得的满足素性测试的候选模数用作私有模数。素性测试可以例如为Miller–Rabin素性测试或者Solovay–Strassen素性测试。
变量xy的阶数为a的对称二元多项式只有形式为xiyj 的单项式,ia, ja。此外,与xiyj 相应的系数与xjyi 的系数相同。这可以用来减少存储的系数数量大约一半。应当指出的是,使用了阶数的更宽松的定义。我们将单项式的阶数定义为单项式中的变量的最大阶数。因此,xjyi 的阶数为max(i, j),即ia, ja。因此,例如我们所称的阶数为1的多项式具有一般形式a + bx + cy + dxy(应当指出的是,由于只考虑了对称多项式,因而b=c)。应当指出的是,如果希望的话,可以对二元多项式施加附加的限制,包括例如只使用i+ ja的单项式,但是这不是需要的。
在一个实施例中,对称二元多项式由网络权威机构生成。例如,对称二元多项式可以是随机对称二元多项式。例如,系数可以使用随机数生成器选择为随机数。
尽管使用的混淆大大提高了对于攻击、尤其是对于其中组合多个本地密钥材料的合谋攻击的抵御,但是它具有潜在的缺陷。有时,第一网络设备导出的共享密钥不在所有位中与第二网络设备导出的共享密钥相同。这主要归因于混淆系数相加之后进位的位的失配。另一个原因是影响生成的进位的位的密钥的生成期间每个私有模数的模数效应缺乏效果。尽管令人讨厌,但是这个缺陷可以以各种不同的方式解决。通过更仔细地选择所述混淆,可以显著地降低差值的可能性,尤其是大差值的可能性。此外,据发现,差值(如果有的话)很可能位于生成的密钥的最低有效位中。因此,通过移除最低有效位中的一个或多个,可以增加相同共享密钥的可能性。例如,在一个实施例中,确定共享密钥的方法包括:确定第一网络设备和第二网络设备是否导出了相同的共享密钥,并且如果没有的话,根据以密钥模数为模的约简结果导出另一共享密钥。可以导出另外的共享密钥,直到找到在两侧相等的共享密钥。如果少于阈值数量的位保留在共享密钥中,那么该方法可以终止。对于一些应用而言,可以简单地接受一定百分比的网络设备不能通信。例如,在其中可以沿着各种不同的路线路由消息的自组织无线网络中,如果一些网络设备不能通信,并不存在连接丢失。
应当指出的是,在没有混淆的情况下,也可能发生第一网络设备导出的共享密钥不在所有位中与第二网络设备导出的共享密钥相同,尽管这样的机会小于具有混淆的情况。
在一个实施例中,移除共享密钥的一定数量的最低有效位;例如,移除的位的数量可以是1,2或更多,4或更多,8或更多,16或更多,32或更多,64或更多。通过移除更多的最低有效位,具有不相等的密钥的机会降低;特别地,可以将其降低至任何希望的阈值。共享密钥相等的机会可以通过遵循数学关系计算,它也可以通过实验确定。
再者,在一个实施例中,可以控制混淆数的选择,对于与更高阶单项式相应的系数,减小从中选择混淆数的范围。特别地,可以要求,其中表示第i个单项式的混淆数,i表示与该系数相应的单项式的阶数,a表示二元多项式的阶数并且b表示密钥长度。A表示为其生成本地密钥材料的网络设备。在一个实施例中,对于每个系数例如使用上面的公式生成混淆数。不同的混淆可以应用于不同的网络设备。例如,即使存在3个或更多网络设备,对于每个网络设备,也可以生成不同的混淆数。
应当指出的是,可以将混淆数限制为正数,但是这不是需要的,并且混淆数可以为负。在一个实施例中,混淆的数使用随机数生成器生成。可以生成多个混淆数并且与一元多项式的系数相加以便获得混淆的一元多项式。一元多项式的一个或多个、优选地所有系数可以按照这种方式混淆。
网络设备的身份号码中的位数通常选择为小于或等于密钥长度。身份号码可以是位串,比如32或64或者更长的位串。密钥长度可以是32或更多,48或更多,64或更多,96或更多,128或更多,256或更多。密钥长度可以被选择为一定数量的位更高,以便减小确定的共享密钥的最低有效位的相应数量。另一方面,在一个实施例中,身份号码的长度长于密钥长度。在这种情况下,模操作的影响可以导致对于生成的密钥的密钥长度位的最低有效位的更高的影响,使得那些位对于愿意生成共同密钥的设备配对而言可能不相等。然而,具有用于标识符的更长长度可能对于安全性具有积极效果,因为在做相应的计算时更多的位混合在一起。
多项式操纵设备可以以运行在计算机上、比如运行在集成电路上的软件实现。多项式操纵设备可以以硬件非常高效地实现。组合也是可能的。例如,多项式操纵设备可以通过操纵代表多项式的系数阵列而实现。
在网络设备处电子地存储生成的本地密钥材料可以通过例如使用有线连接或者使用无线连接将生成的本地密钥材料电子地发送至网络设备并且将生成的本地密钥材料存储在该网络设备处而实现。这可以在制造或者安装网络设备中的集成电路期间,例如在测试该集成电路期间进行。测试装备可以包括或者连接到网络权威机构。这也可以发生在设备成功地加入到操作网络之后(即网络接入或者自引导之后)。特别地,可以将本地密钥材料作为操作网络参数的部分而分配。
以电子形式获得用于第一网络设备的本地密钥材料可以通过从用于配置网络设备(例如网络权威机构设备)以用于密钥共享的系统电子地接收本地密钥材料而进行。获得本地密钥材料也可以通过从本地存储装置(例如诸如闪存之类的存储器)获取本地密钥材料进行。
获得用于第二网络设备的身份号码可以通过从第二网络设备,例如直接从第二网络设备接收身份号码(例如从第二网络设备无线地接收)而进行。
公共模数和密钥模数可以存储在网络设备中。它们也可以接收自网络权威机构。它们也可以隐含在网络设备的软件中。例如,在一个实施例中,密钥模数为2的幂。以这样的密钥模数为模约简可以通过丢弃除了密钥长度最小有效位之外的所有位而进行。首先,以公共模数为模约简所述代入的结果,该结果然后以密钥模数为模进一步约简。
尽管不是所需的,公共模数和密钥模数可以互素。这可以通过让公共模数为奇数并且密钥模数为2的幂而实现。在任何情况下,避免密钥模数除尽公共模数,因为这时可以省略以公共模数为模的约简。
用于两个设备之间的密钥协定的方法可以使用一定数量的二元多项式作为根建钥材料。可以使用用于密钥协定的方法,通过使用x元多项式作为根建钥材料用于x方之间的x协定。在该扩展中,受信任第三方在相应环中求取一定变量的x元多项式,然后,在整数上对得到的x-1元多项式相加,生成存储在设备上的本地密钥材料。当x个设备需要商定密钥时,设备以其他x-1个设备的标识符求取其本地密钥材料。例如,可以在配置网络设备以用于密钥共享的方法中使用多元多项式,该方法包括以电子形式获得私有模数(p 1)、公共模数(N)和具有整数系数的多元多项式(f 1),公共模数的二进制表示和私有模数的二进制表示在至少密钥长度(b)连续位中是相同的;生成用于网络设备的本地密钥材料,包括以电子形式获得用于网络设备的身份号码(A),使用多项式操纵设备通过将身份号码代入多元多项式中而根据多元多项式确定多项式,以私有模数为模约简所述代入的结果;以及将生成的本地密钥材料电子地存储在网络设备处。多项式操纵设备获得的多项式少超过一个变量。如果所述多元在所有变量中是对称的,那么这对于密钥共享是方便的。一种用于第一网络设备确定共享密钥的相应方法,该密钥为密码密钥,该方法包括:获得电子形式的用于第一网络设备的本地密钥材料,该本地密钥材料包括可选地混淆的多项式;获得用于多个其他网络设备的身份号码,该第二网络设备不同于第一网络设备;将所述其他网络设备的身份号码代入可选地混淆的多项式中;以公共模数为模约简所述代入的结果,并且以密钥模数为模进行约简;以及从以密钥模数为模的约简结果中导出共享密钥。应当指出的是,在代入除一个以外的其他身份号码之后,该方法约简至其中使用一元多项式的情形。
在一个实施例中,第一网络设备接收与设备的标识符关联的多个(n个)本地密钥材料。在该第一设备与第二设备之间生成的密钥作为通过在第二设备的标识符下求取第一设备的所述多个(n个)本地密钥材料中的每一个而获得的所述多个(n个)密钥的组合(例如级联)获得。这允许并行地使用所述方法。
将非对称二元多项式用作根建钥材料,即f(x, y) !=f(y, x),允许适应两组设备的创建,例如,第一组中的设备接收KM(Id, y)并且第二组中的设备接收KM(x, iD),KM(x, iD)是存储在设备上的KM本地密钥材料。属于相同组的两个设备不能生成共同的密钥,但是不同组中的两个设备可以。进一步参见Blundo。
网络设备的身份号码可以计算为包含与设备关联的信息的位串的单向函数。该单向函数可以是诸如SHA2或者SHA3之类的密码散列函数。单向函数的输出可以被截断,使得它适合标识符大小。可替换地,单向函数的大小小于最大标识符大小。
在一个实施例中,对称多项式涉及形式为的单个单项式,其中< > p 表示模操作。在这种情况下,元素处于有限组内,并且操作为乘法。公共模数可以大于私有模数或者小于私有模数;如果存在多个私有模数,那么一些可以大于私有模数并且一些可以小于私有模数。
在用于配置网络设备以用于密钥共享的方法的一个实施例中,该方法包括以电子形式获得多个私有模数(pi )和具有整数系数的多个对称二元多项式(fi ),使得存在密钥长度(b)连续位置集合,其中公共模数的二进制表示和所有私有模数的二进制表示是相同的;生成用于网络设备的本地密钥材料,包括以电子形式获得用于网络设备的身份号码(A),使用多项式操纵设备通过将身份号码代入所述多个二元多项式的每一个中而根据所述多个二元多项式确定一元多项式,以所述多个私有模数的与所述一个对称二元多项式相应的私有模数为模进行约简,将多次约简的多个结果相加,以及生成混淆数并且使用多项式操纵设备将混淆数添加至一元多项式的系数以便获得混淆的一元多项式,生成的本地密钥材料包括混淆的一元多项式;以及将生成的本地密钥材料电子地存储在网络设备处。可以将所述多个二元多项式(fi )中的二元多项式表示为具有以相应私有模数(pi )为模的系数。
更一般而言,可以在任何环上求取根密钥材料。有可能使用诸如Ax^a之类的单一单项式的多项式,在这种情况下,可以使用组。
本发明的一个方面涉及一种用于配置网络设备(例如网络权威机构)以用于密钥共享的系统,该系统包括:密钥材料获取器,其用于以电子形式获得私有模数、可以大于或者可以不大于私有模数的公共模数和具有整数系数的对称二元多项式,公共模数减去私有模数的二进制表示的密钥长度位为全零位,可能地为密钥长度最低有效位;生成器,其用于生成用于网络设备的本地密钥材料,该生成器包括用于以电子形式获得用于网络设备的身份号码并且用于将生成的本地密钥材料电子地存储在网络设备处的网络设备管理器;以及多项式操纵设备,其用于通过将身份号码代入二元多项式中,以私有模数为模约简所述代入的结果而根据二元多项式确定一元多项式。
该系统的一个实施例包括用于生成混淆数的混淆数生成器,例如随机数生成器,多项式操纵设备被配置用于将混淆数添加到一元多项式的系数以便获得混淆的一元多项式,生成的本地密钥材料包括混淆的一元多项式。
本发明的一个方面涉及被配置成确定共享密钥的第一网络设备,该密钥为密码密钥,该第一网络设备包括:本地密钥材料获取器,其用于获得电子形式的用于第一网络设备的本地密钥材料,该本地密钥材料包括混淆的一元多项式;接收器,其用于获得用于第二网络设备的身份号码,该第二网络设备不同于第一网络设备;多项式操纵设备,其用于将第二网络设备的身份号码代入混淆的一元多项式中并且以公共模数为模约简所述代入的结果,接着以密钥模数为模进行约简,公共模数和密钥模数互素;密钥导出设备,其用于根据以密钥模数为模的约简结果导出共享密钥。
密钥导出设备可以实现为计算机,例如集成电路,运行软件、硬件或者这二者的组合等等,被配置用于根据以密钥模数为模的约简结果导出共享密钥。
根据以密钥模数为模的约简结果导出共享密钥可以包括应用密钥导出函数,例如在开放移动联盟的OMA DRM规范(OMA-TS-DRM-DRM-V2_0_2- 20080723-A, 7.1.2节 KDF)中所限定的函数KDF以及类似的函数。导出共享密钥可以包括丢弃一个或多个最低有效位(在应用密钥导出函数之前)。导出共享密钥可以包括加上、减去或者级联某个整数(在应用密钥导出函数之前)。
每个具有身份号码和相应本地密钥材料的多个网络设备可以一起形成被配置用于网络设备配对之间的安全(例如机密和/或认证的)通信的通信网络。
密钥生成是基于ID的,并且允许生成设备配对之间的成对密钥。第一设备A可以依赖于根据本地密钥材料和身份号码导出密钥的算法。
在一个实施例中,第一网络设备将密钥确认消息发送至第二网络设备。例如,确认消息可以包括消息的加密并且可选地包括消息本身。第二网络设备可以核实消息的加密。消息可以是固定的且存在于第二设备处,以避免需要发送它。消息可以是随机的或者是随机数等等,在这种情况下,它可以与所述加密一起发送。第二设备可以利用包含密钥是否一致的指示的消息应答。第二设备也可以利用它本身的密钥确认消息应答。如果第一和/或第二设备发现密钥不相等,那么它们可以例如通过删除最低有效位等开始密钥均等化过程。
所述网络设备和系统可以是电子设备。网络设备可以是移动网络设备。
依照本发明的方法可以在计算机上实现为计算机实现的方法,或者以专用硬件或以这二者的组合实现。用于依照本发明的方法的可执行代码可以存储在计算机程序产品上。计算机程序产品的实例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等等。优选地,计算机程序产品包括存储在计算机可读介质上的非暂时性程序代码装置,该程序代码装置用于在所述程序产品在计算机上执行时执行依照本发明的方法。
在一个优选的实施例中,计算机程序包括计算机程序代码装置,该计算机程序代码装置适于在计算机程序运行于计算机上时执行依照本发明的方法的所有步骤。优选地,计算机程序包含在计算机可读介质上。
为了完整起见,提及题目为“A method for secure communication in a network, a communication device, a network and a computer program therefor”的国际申请WO2010032161,其涉及一种用于通信网络中的安全通信的方法。
存在与该申请的若干差异,包括:使用模操作,尤其是组合具有不同公共模数和私有模数的模操作,重复的模操作,例如以公共模数为模的约简,接着以密钥模数为模的约简,使用混淆,使用整体多项式。
提供了一种配置网络设备以用于密钥共享的方法以及一种用于第一网络设备确定共享密钥的方法。所述配置方法使用私有模数(p 1)、公共模数(N)和具有整数系数的二元多项式(f 1),公共模数的二进制表示和私有模数的二进制表示在至少密钥长度(b)连续位中是相同的。用于网络设备的本地密钥材料通过将身份号码代入二元多项式中并且以私有模数为模约简所述代入的结果以获得一元多项式而生成。安全性可以通过将一个或多个混淆数添加(440)到一元多项式的系数以便获得混淆的一元多项式而提高。在使用阶段,网络设备通过将另一个网络设备的身份号码代入(530)一元多项式中并且以公共模数为模约简且以密钥模数为模约简而确定共享密码密钥。
附图说明
本发明的这些和其他方面根据以下描述的实施例是清楚明白的,并且将参照这些实施例进行阐述。在附图中,
图1为图示出根密钥材料生成器的示意性框图,
图2为图示出本地密钥材料生成器的示意性框图,
图3为图示出通信网络的示意性框图,
图4为图示出生成本地密钥材料的示意性流程图,
图5为图示出生成共享密钥的示意性流程图,
图6为图示出生成共享密钥的示意性序列图。
应当指出的是,不同图中具有相同附图标记的项目具有相同的结构特征和相同的功能,或者是相同的信号。在解释了这样的项目的功能和/或结构的情况下,没有必要在具体实施方式中重复其解释。
附图标记列表:
100 根密钥材料获取器
110 公共模数元件
112 多项式阶数元件
114 密钥长度元件
116 多项式数量元件
122 私有模数管理器
124 对称二元多项式管理器
200 本地密钥材料生成器
210 公共材料元件
220 私有材料元件
240 多项式操纵设备
250 网络设备管理器
260 混淆数生成器
300 通信网络
310 第一网络设备
320 第二网络设备
330 收发器
342 多项式操纵设备
344 本地密钥材料获取器
346 密钥导出设备
348 密钥均衡器
350 密码元件。
具体实施方式
尽管本发明容许许多不同形式的实施例,但是在附图中示出且将在这里详细地描述一个或多个特定实施例,并且理解本公开应当被认为示例性说明本发明的原理,且并不预期将本发明限制为示出和描述的特定实施例。
以下描述了密钥共享方法的实施例。该方法具有设立阶段和使用阶段。设立阶段可以包括启动步骤和登记步骤。启动步骤不涉及网络设备。
启动步骤选择系统参数。启动步骤可以由受信任第三方(TTP)执行。然而,系统参数也可以被认为作为输入而给出。在这种情况下,受信任第三方无需生成它们,并且可以跳过启动步骤。例如,受信任第三方可以接收来自设备制造商的系统参数。设备制造商可能已经执行启动步骤以便获得系统参数。为了方便论述,我们称受信任第三方执行启动步骤,记住这不是必需的。
启动步骤
选择用于在使用阶段中的设备之间共享的密钥的希望的密钥长度;该密钥长度称为“b”。用于低安全性应用的典型值可以为64或80。用于消费水平安全性的典型值可以为128。高度秘密的应用可能优选256或者甚至更高的值。
选择希望的阶数;该阶数控制特定多项式的阶数。阶数将称为“a”,它至少为1。用于a的实际选择为2。更安全的应用可以使用更高值的a,比如3或4或者甚至更高。对于简单应用而言,a=1也是可能的。a=1的情况与所谓的“隐藏数问题”有关;更高的“a”值与扩展隐藏数问题有关,扩展隐藏数问题证实这些情况难以破解。
选择多项式的数量。多项式的数量将称为“m”。m的实际选择为2。更安全的应用可以使用更高值的m,比如3或4或者甚至更高。应当指出的是,低复杂度的应用,比如对于资源有限设备而言,可以使用m=1。
更高值的安全性参数am增大了系统的复杂度,并且因此提高了其难解性。更复杂的系统更难于分析并且因而更能抵抗密码分析。
在一个实施例中,选择满足并且最优选地也满足的公共模数N。界线不是严格必需的;系统也可以使用更小/更大的N值,尽管这不被认为是最佳选项。
通常,密钥长度、多项式的阶数和数量例如通过系统设计师预先确定并且作为输入提供给受信任方。作为一个实际选择,可以取。例如,如果a=1,b=64,那么N可以为。例如,如果a=2,b=128,那么N可以为。对于N选择上面的区间的上界或下界具有容易计算的优点。为了提高复杂度,可以为N选择所述范围内的随机数。
选择数量为m的私有模数。模数为正整数。在登记步骤期间,将每个设备与身份号码关联。每个选择的私有模数大于使用的最大身份号码。例如,可以通过要求它们小于或等于2 b -1并且选择的私有模数大于2 b -1而对身份号码限界。每个选择的数字满足以下关系pj =N+γ j ∙2 b ,其中γ j 为整数,使得|γ j |<2 b 。一种选择满足该要求的数字的实际方式是选择m个随机整数γ j 的集合,使得-2 b +1≤ γ j ≤2 b -1,并且根据关系计算选择的私有模数。可以允许让|γ j |稍微更大,但是可能出现问题,因为模操作过犹不及,使得共享密钥可能不相等。
对于m >1,系统更加复杂并且因而更安全,因为即使在通常的数学意义上用于不同模数的模操作不兼容,也组合这样的操作。出于这个原因,有利的是将选择的私有模数选取为成对不同的。
生成数量为m、阶数为aj 的对称二元多项式f 1, f 2, …, fm 。所有阶数满足aj a,最优选地a = MAX{ a 1, …, am }。一个实际的选择是采取阶数为a的每个多项式。二元多项式是两个变量的多项式。对称多项式f满足f(x, y) = f(y, x)。每个多项式fj 在模pj 的整数形成的有限环中求取,通过计算模pj 获得。模pj 的整数形成具有pj 个元素的有限环。在一个实施例中,多项式fj 用从0至pj -1的系数表示。二元多项式可以例如通过选择这些界限内的随机系数而随机地选择。应当指出的是,所述二元多项式中的一些或全部可以非对称地生成,这导致具有两个组的系统。为了简单起见,我们将假设所有选择的多项式都是对称的。
密钥共享的安全性取决于这些二元多项式,因为它们是系统的根建钥材料;因此,优选地,采取强有力的措施保护它们,例如控制过程、防篡改设备等等。优选地,选择的整数也保密,包括与pj 相应的值γ j ,尽管这不那么关键。我们将引用也处于以下形式的二元多项式:对于j=1,2,...,m,写出
上面的实施例可以以若干方式变化。对于公共和私有模数的限制可以以各种不同的方式选择,使得一元多项式的混淆是可能的,然而网络设备处获得的共享密钥足够经常地保持彼此足够接近。如所解释的,什么是足够的将取决于应用、需要的安全性水平以及网络设备处可用的计算资源。上面的实施例组合正整数,使得在生成多项式份额时执行的模操作在整数上相加时以非线性方式组合,从而创建用于存储在网络设备上的本地密钥材料的非线性结构。上面用于Npj 的选择具有以下性质:(i)N的大小对于所有网络设备是固定的并且与a相联系;(ii)非线性效应出现在形成存储在设备上的密钥材料的系数的最高有效位上。由于该特定形式的原因,共享密钥可以通过在以N为模约简之后降低模数2 b 而生成。
这些设计构思可以以更一般的方式应用以便改进如最近段落中所提及的方面(i)和(ii)。在下文中,给出选择公共和私有模数的不同的一般构造。为了解决第一点(i),对于Npj ,该结构拟合更一般的表达式,其中写出,使得对于每个j,Yj + b α j = X并且|γ j | < 2b。该表达式允许实现更多变的形式pj ,同时在引入非线性效应时确保最大效果。应当指出的是,也可以使得Yj + b α j X,其中左右边之间的差值是密钥长度的一小部分。
为了解决第二点,上面用于Npj 的形式拟合甚至更一般的表达式,其中。通过设置例如并且,获得前一表达式,其中不同的γ j 值在网络设备上存储的密钥材料的系数的最高有效位中引入非线性效应。在这种情况下,恒定的公共模数(N)为N = 2 X -1,而模操作中涉及的不同正整数的生成中使用的私有变量部分为。可替换地,可以设置
其中对于不同的j是不同的,使得。在这种情况下,的差异允许在节点上存储的本地密钥材料的系数的最低有效位中引入非线性效应。公共部分的构造在这种情况下也是不同的,并且等于,即保持不变的部分。应当指出的是,在这种情况下非线性效应处于最低部分,并且由于前面提到的最大混合效果的条件的原因,之间的差异必须为α j b。按照类似的方式,可以遵循相同的构思限定其他构造。
登记步骤
在登记步骤中,给每个网络设备分配建钥材料(KM)。网络设备与身份号码关联。身份号码可以按需例如由TTP分配,或者可以已经存储在设备中,例如在制造时存储在设备中等等。
TTP如下生成用于设备A的建钥材料集合:
其中KMA (X)为具有身份号码A的设备的建钥材料;X为形式变量。应当指出的是,建钥材料是非线性的。符号表示以pj 为模约简括号之间的多项式的每个系数。符号“”表示随机整数,其是混淆数的一个实例,使得。应当指出的是,这些随机整数中的任何一个都可以是正的或负的。再次对于每个设备生成随机数。项因此表示阶数为aX的多项式,其系数长度随着阶数的增加而更短。可替换地,更一般但是更复杂的条件是是小的,例如<2a。应当指出的是,加法混淆是可选的并且可以省略,但是优选的以便获得更高的安全水平。我们假设使用了混淆。
所有其他加法可以使用自然整数运算,或者(优选地)它们使用模N加法。因此,一元多项式的求值是以较小的模数pj 为模每个单独地进行,但是这些约简的一元多项式本身的求和优选地以N为模进行。再者,添加混淆多项式可以使用自然整数运算或者优选地模N进行。建钥材料包括i=0,…, a的系数Ci A 。建钥材料可以像上面那样表示为多项式。在实践中,密钥材料可以存储为列表,例如整数Ci A 阵列。设备A也接收数字Nb。多项式的操纵可以实现为例如包含所述系数(例如以预定顺序列出所有系数)的阵列的操纵。应当指出的是,多项式可以在其他数据结构中实现为例如包括(阶数,系数)配对的集合的关联阵列(亦称“地图”),优选地使得每个系数在集合中出现最多一次。提供给设备的系数Ci A 优选地处于范围0, 1,..N-1内。
如果使用了N和整数pj 的更一般构造,那么需要适应性调节混淆多项式,使得随机数影响系数的不同部分。例如,如果在存储在网络设备上的密钥材料的系数的最低有效位中引入非线性效应,那么随机数应当仅仅影响系数的最高部分以及系数的最低部分中的可变数量的位。这是上面描述的方法的直接扩展,并且其他扩展是可行的。
使用阶段
一旦两个设备A和B具有身份号码并且从TTP接收它们的建钥材料,那么它们可以使用它们的建钥材料以获得共享密钥。设备A可以执行以下步骤以获得其共享密钥。首先,设备A获得设备B的身份号码B,接着A通过计算下式生成共享密钥:
换言之,A针对值B求取其被视为整数多项式的建钥材料;求取建钥材料的结果是整数。接下来,设备A首先以公共模数N为模并且然后以密钥模数2 b 为模约简求值的结果。该结果将称为A的共享密钥,它是0至2 b -1的范围内的整数。就其本身而言,设备B可以通过求取其针对身份A的密钥材料并且以N为模且然后以2 b 为模约简该结果而生成B的共享密钥。
根据以上描述,如果使用了N和正整数pj 的更一般表达式,那么获得b位的方法需要小的适应性调节。特别地,如果在网络设备上存储的密钥材料的系数的最低位中引入非线性效应,同时N的表达式中的第二项为Yj ,那么如下生成密钥:
由于根密钥材料中的二元多项式是对称的,因而A的共享密钥和B的共享密钥经常(尽管不一定总是)相等。对于整数p 1, p 2, …, pm 以及对于(可选的)随机数的要求使得这些密钥以2的密钥长度次幂为模经常相等以及几乎总是彼此接近。如果A和B获得相同的共享密钥,那么它们可以将它用作在A与B之间共享的对称密钥;例如,它可以用于各种各样的密码应用,例如,它们可以交换使用共享密钥加密和/或认证的一个或多个消息。优选地,将密钥导出算法应用到共享密钥以便进一步保护主密钥,例如,可以应用散列函数。
如果A和B没有获得相同的共享密钥,那么几乎确定的是,这些密钥彼此接近,通过移除密钥的一定数量的最低有效位,几乎总是可以使得生成的密钥相同。A和B可以通过执行密钥确认核实它们的共享密钥是否相等,例如,A可以向B发送包含配对(m, E(m))的消息,其中m为消息,比如固定字符串或者随机数,并且E(m)为使用A的共享密钥的加密。
通过使用B的共享密钥对E(m)解密,B可以核实所述密钥是否相等。如果相等,那么B可以对A响应,通知他有关情形。
如果密钥不相等,那么A和B可以参与密钥均衡化协议。例如,它们可以利用以下事实:这两个密钥在算术上彼此接近。例如,网络设备A和B可以迭代地移除最低有效位并且发送密钥确认消息,直到这些密钥相等。在获得相等的密钥之后,A和B可以执行密钥导出算法以便重新获得通常密钥长度的密钥。
选择的m个私有模数p 1, p 2, …, pm 优选地成对互素。如果这些数字成对互素,那么模操作之间的兼容性的缺乏增加。获得成对互素的数字可以通过按顺序选择整数,对于每个新整数测试是否所有配对的不同数字仍然互素,如果不是,则从集合中移除刚刚选择的数字。继续这个过程,直到选择了所有m个数字。
通过要求选择的m个私有模数p 1, p 2, …, pm 为不同的素数,复杂度甚至进一步增加。在这种情况下,可以要求每个素数具有形式pj = N +γ j ∙ 2 b ,其中γ j 为整数,使得|γ j | < 2 b 。实验证实,这些素数易于获得。例如,可以重复地选择随机数γ j 并且测试得到的pj ,直到找到素数。如果应用如上面所描述的更一般的表达式,这同样适用。事实上,根据算术级数的素数定理推断,尤其是对于a < b而言,只要a为大约和b相同的数量级,那么这样的素数是丰富的。特别地,对于组中的密钥长度64、128、196、256以及组中的阶数2、3的任意组合,我们通过实验证实,可以在实际时限内使用上面的算法生成这种形式的许多素数。当使用素数时,每个多项式fj 因此在有限域中被取为具有pj 个元素。
许多变型是可能的,以便选择登记和使用阶段期间使用的各种不同的参数。例如,在一个简化的实施例中,私有模数小于公共模数,并且满足关系pj = N - β j ∙ 2 b ,其中β j 为正整数,使得β j < 2 b 。一种选择满足该要求的数字的实际方式是选择m个随机正整数β j 的集合,使得β j < 2 b ,并且根据关系pj = N - β j ∙ 2 b 计算选择的私有模数。
如所指出的,之间的差异可能为α j b。按照类似的方式,可以遵循相同的构思限定其他构造。特别地,可以写出用于私有模数的和用于公共模数的。该构造的一个特定的示例为并且N = 22(a+1)b + 2 ab 。在该情况下,项γ j β j 的绝对值小于2 b 并且负责创建对于设备上的本地存储密钥材料的系数的MSB和LSB的非线性效应。应当指出的是,由于设备标识符为大约b位长,γ j (β j )影响模pj 的整数环中求取的多项式份额的系数的MSB(LSB)。其后,在生成用于设备的本地密钥材料期间,不同环中的多项式份额的系数在整数上相加,使得贡献的起源被隐藏。
密钥可以如下生成:,但是如果使用了允许在MSB和LSB二者上引入非线性效应的pj 和N的甚至更一般的表达式,那么以N为模的约简之后的除法是除以2的W次幂,其中2 W 为N为其整数倍的2的最高整数次幂。N和pj 的其他构造可能要求除以2的另一个幂。由于根密钥材料中的二元多项式是对称的,因而A的共享密钥和B的共享密钥经常(尽管不一定总是)相等。
密钥确认
可能希望的是,A和B之一将密钥确认消息发送至另一方。所谓的密钥确认消息(KC)使得密钥确认消息的接收者能够核实他计算出与密钥确认消息的发送者相同的密钥。特别地,在已知双方确立的密钥可能不同的密钥共享方案中,密钥确认消息可以用作双方都确立了相同密钥的确认,如果没有,则确定相等的共享密钥。例如,通常,基于确立的密钥的MAC(消息认证码)可以用作确认消息,例如基于SHA2或SHA3的HMAC,或者基于AES的CMAC,等等。再者,可以使用强密码散列函数,例如,确立的密钥的散列可以用作密钥确认消息。散列可以在密钥本身上计算。MAC可以在B已知或者密钥确认消息(例如随机数等)中包括的数据上计算。
然而,一般的强密码密钥确认消息需要一些资源,可能地比依照上面的原理的密钥共享算法更多的资源。上面给出的密钥共享方案允许比通用密钥确认方案少得多的计算资源。
设备A和B计算密钥KA(B)和KB(A)。通过遵循数学关系可以证明,根据设计参数,存在整数∆,使得:
再一次地,< x > m 表示0与m-1之间的整数,使得x - < x > m 是m的倍数。如下定义函数:,其中r为预定的整数,使得2 r ≥ 2∆ + 1。与一般实施例相比,无需设备计算可能复杂的散列函数;缺点在于,关于正被使用的密钥的一些信息通过可观察的通信信道发送。通常,优选的是,密钥确认消息不泄漏或者泄漏可忽略数量的关于对其进行计算的密钥的信息。该缺点可以通过在找到对于A和B二者均相同的密钥之后将确立的密钥除以2 r 而抵消。更一般而言,在第二实施例中,h(x) = <x>v,其中v ≥ 2∆ + 1使得2 b 是v的倍数或者<2b>v ≥ 2∆ + 1。在这两种情况下,h(KA(B))可以由A用作密钥确认消息。
除了发送密钥确认消息之外,可以通过将KA(B)和KB(A)除以2的幂而减小这两个密钥之间的差值。KA(B)和KB(A)为b位密钥,然后移除b位生成的密钥的l个最低有效位,使得与生成的密钥的b-l个最高有效位相应的b-l位密钥用来保护通信。如果b相对较大(比如100)并且l也是大的(比如50),那么b-l个最高有效位相等的概率非常高,即大约。该方法无需交换任何信息,原始的生成的密钥的l位被移除,并且得到的密钥可以用于通信。然而,这具有缺陷,因为密钥大小潜在地以相当大的方式减小,以确保网络中的所有设备以非常高的概率共享共同的b-l位密钥。
应当指出的是,移除最低有效位可以与密钥确认消息组合。例如,在移除l位之后,计算密钥确认消息并且将其发送至另一方。该方法具有以下优点:即使最低有效位的移除不足以确立共同的密钥,也将使得找到这样的共同的密钥更容易。
在一种不同的方法中,潜在地不同的密钥由各方A和B确立的问题如下:中心权威机构具有事先计算是否任何两个设备可能导出不同的密钥的所有信息。例如,中心权威机构可以以单个标识符A和为A计算的建钥材料开始。迭代地将设备添加到设备池。当要将新设备B’添加到系统时,TTP计算用于B’的建钥材料。TTP对于B’和已经在池中的设备的每个组合核实它们是否会达成相同的共同密钥。例如,TTP可以直接核实它们找到相同的密钥。TTP也可以核实B’和任何其他设备将达成共同的密钥,正参与适当的密钥协商协议以便例如通过除以2的幂和/或通过发送一个或多个密钥确认消息而修补可能的不同密钥。鉴于前面的概率方法,非常可能的是,如果设备A的数量相对较小,那么对于B’的随机选择使得{A, B’}对于所有A有效。
如果事实证明B’不会与已经在池中的一些设备达成共同的密钥,那么TTP将新标识符分配给B’或者计算新的建钥材料,但是利用不同的随机选择。尽管检查该条件表示相当大的开销,但是这对于相对较小的网络(比如~O(104)或者O(105)个设备)而言是可能的。
一种相关的方法也可以应用于设备组中。特别地,在一些设置中,例如,如果设备是静态的并且部署在组中(例如在建筑物中),那么不是所有的设备都可能彼此对话。在这种情况下,添加新设备B’时由TTP执行的核实限于检查属于将添加B’的组的设备。例如,如果移除了密钥的l个LSB,TTP可以核实是否给定组中的所有设备都生成了密钥。应当指出的是,该方法也允许设计更先进的分级方案,使得所有设备在第一层级都属于主要组,在第二层级将设备划分成一定数量的组,将第二层级的组中的设备进一步划分成一定数量的子组。在这样的分级组织中,TTP可能核实是否层级w的给定组中的所有设备在移除lw位之后都生成共同的密钥。在这样的系统中,更深层级的组可能需要移除更少数量的位,而高层级的组可能要求移除更多的位以便确保生成共同的密钥。
TTP可以在添加新设备的任何时候执行这些检查,但是它也可以积极主动地创建设备标识符和建钥材料池,使得来自该池的每对标识符给出有效的共同密钥。
例如,TTP可以限制成对的有效设备{A, B},其中在以下情况下配对是有效的:
其中ll表示与KA (B)和KB (A)的l个最低有效位相应的l位。该条件通常示出一种核实实际将使用的密钥相等的方式。另一个条件是,当且仅当对于所有A,KA (B)和KB (A)的l个最低有效位与[∆, 2 l -1-∆]中的数字相应时,接纳新的B。
图1为图示出根密钥材料生成器100的示意性框图。密钥材料获取器被配置成提供本地密钥材料生成器生成本地密钥材料所需的除了身份号码之外的输入数据。密钥生成器是密钥材料获取器的一个实例。代替生成输入数据的全部或部分的是,一些参数也可以由根密钥材料生成器通过接收它们而获得;例如,密钥获取器可以包括用于接收输入数据(例如公共和私有模数)的电子接收器。密钥材料获取器从外部源获得除了身份号码之外的所有需要的参数。在一个实施例中,abm被预先确定,例如被接收,并且生成公共模数和私有模数以及相应的对称二元多项式。在一个实施例中,公共模数也被预先确定,例如被接收。
根密钥生成器100包括分别被配置成提供多项式阶数、密钥长度和多项式数量(即abm)的多项式阶数元件112、密钥长度元件114和多项式数量元件116。尽管这些元件可以例如根据情况而产生,但是典型地这些参数由系统设计师选择。例如,这些元件可以设计成非易失性存储器或者用于接收元素值的接收器或者连接到接收器的易失性存储器,等等。一个适当的选择包括a=2,b=128,m=2。这些数字中的任何一个可以增加或减小以便获得更安全或者不那么安全的系统。
根密钥生成器100包括被配置成提供公共模数N的公共模数元件110。公共模数可以由或者可以不由系统设计师选择。例如,公共模数可以被设置为允许快速约简的方便数字(接近或者等于幂2)。公共模数在元件112和114确定的范围内选择。
根密钥生成器100包括被配置成提供私有模数p或者多个私有模数p 1, …, pm 的私有模数管理器122。例如,它们在适当的界限内随机选择。
根密钥生成器100包括被配置成提供对称二元多项式f或者多个对称二元多项式f 1, …, fm 的对称二元多项式管理器124。每个对称二元多项式被选择为系数随机模相应私有模数,即具有相同指标的私有模数。这些系数可以在0至p-1的范围内选择,并且可以随机选择。
私有模数可以通过将2的密钥长度次幂的倍数添加到公共模数或者减去该倍数而选择。这将导致这样的私有模数,使得与公共模数的差值结束于一系列的连续零。也可以选择公共模数和一个或多个私有模数,使得一系列密钥长度的连续零不出现在结尾,而是另一个位置,比如从最低有效位计数的位置“s”。
图2为图示出本地密钥材料生成器200的示意性框图。密钥材料生成器100和本地密钥材料生成器200一起形成用于配置网络设备以用于密钥共享的系统。
本地密钥材料生成器200包括多项式操纵设备240。本地密钥材料生成器200包括用于将公共参数aN提供给多项式操纵设备240的公共材料元件210。本地密钥材料生成器200包括用于将私有参数pi fi m提供给多项式操纵设备240的私有材料元件220。元件210和220可以由密钥材料生成器100的相应元件实现;这些元件也可以是连接到密钥材料生成器100的存储器或总线。
本地密钥材料生成器200包括用于将混淆数“”提供给多项式操纵设备240的混淆数生成器260。混淆的数字可以是例如利用随机数生成器生成的随机数。混淆数生成器260可以生成用于一元多项式的多个系数的多个混淆数。在一个实施例中,对于一元多项式的每个系数确定混淆数。
本地密钥材料生成器200包括网络设备管理器250,该管理器被配置成例如从网络设备接收对于其必须生成本地密钥材料的身份号码,并且被配置成将本地密钥材料发送至与该身份号码相应的网络设备。代替接收身份号码的是,它也可以例如生成为随机序列或者随机数。在后一情况下,身份号码与本地密钥材料一起发送至网络设备。
多项式操纵设备240通过将来自管理器250的身份号码代入二元多项式中的每一个并且以相应私有模数为模对每一个约简而获得可能地多个一元多项式。得到的多个约简的一元多项式利用自然算术加法逐系数相加。同样相加的是所述一个或多个混淆数。优选地,结果再次逐系数地以公共模数为模进行约简;后者的系数可以有利地表示在范围0至N-1中。
混淆的一元多项式是本地密钥材料的与身份号码相应的部分。如果需要的话,也将公共模数、阶数和密钥长度发送至网络设备。
图3为图示出包括多个网络设备的通信网络300的示意性框图;所示的是第一网络设备310和第二网络设备320。我们将说明第一网络设备310。第二网络设备320可以是相同的,或者依照相同的原理工作。
网络设备310包括收发器330,该收发器组合用于有线或无线地向/从第二网络设备320发送/接收电子(例如数字)格式的消息的发送器和接收器。可能的是,收发器330也用来从网络权威机构200接收本地密钥材料。通过收发器330,接收另一个网络设备(在图中,第二网络设备320)的身份号码。
网络设备310包括本地密钥材料获取器344。本地密钥材料获取器344可以实现为用于存储本地密钥材料的本地存储器,例如诸如闪存之类的非易失性存储器。本地密钥材料获取器344也可以被配置成例如经由收发器330从生成器200获得本地密钥材料。本地密钥材料获取器344被配置成向多项式操纵设备提供所需的参数。
网络设备310包括多项式操纵设备342,该多项式操纵设备被配置成将第二网络设备的身份号码代入混淆的一元多项式中并且对结果执行两次约简:首先,以公共模数为模约简所述代入的结果,其次,以密钥模数为模进行约简。应当指出的是,即使使用了多个私有模数,也只有一个公共模数将是需要的。应当指出的是,对于N和私有模数的一些组合,在以密钥模数为模对结果约简之前,需要除以2的幂。
网络设备310包括用于根据以密钥模数为模的约简结果导出共享密钥的密钥导出设备346。例如,密钥导出设备346可以移除一个或多个最低有效位。密钥导出设备346也可以应用密钥导出函数。也可能使用第二次约简的结果而不进一步处理。
网络设备310包括可选的密钥均衡器348。应当指出的是,可能发生第一网络设备中导出的共享密钥不等于第二网络设备中(基于第一网络设备的身份号码)导出的密钥。如果这被认为不是所希望的,那么可以遵循密钥均衡化协议。
网络设备310包括被配置成将共享密钥用于密码应用的密码元件350。例如,密码元件350可以在将第一网络设备的消息(比如状态消息)发送至第二网络设备之前利用共享密钥对该消息加密或者认证。例如,密码元件350可以解密接收自第二网络设备的消息或者核实该消息的真实性。
典型地,用于配置网络设备以用于密钥共享的系统200以及被配置成确定共享密钥的第一网络设备310中的每一个包括微处理器(未示出),该微处理器执行存储在各设备处的适当软件,例如所述软件已经被下载并且存储在相应存储器(例如RAM)(未示出)中。
对于a=1,尤其是结合更高的m值,比如高于1,2或更高,4或更高,获得一个有意义的实施例。所需的多项式操纵简化至单个乘法和约简,给出一种特别简单的实现方式。然而,甚至对于该简单情况,恢复原始二元多项式不是直截了当的,并且随着m值更高而变得越来越复杂。尽管甚至对于a=1也没有已知的可行攻击,但是该线性结构可能是用于未来分析的起点,因为人们可能出于这个原因想要限制为a>1。
图4为图示出生成本地密钥材料的方法400的示意性流程图。该方法包括:获得410公共和私有模数以及对称二元多项式;获得420网络设备的身份号码;将该身份号码代入430二元多项式中,以私有模数为模;将混淆数添加440至系数;以及将混淆的一元多项式存储450在网络设备处。
图5为图示出生成共享密钥的方法500的示意性流程图。该方法包括:获得510另一个网络设备的外部身份号码;将本地身份号码发送520至其他网络设备;将外部身份号码代入530混淆的一元多项式中,以公共模数为模;以密钥模数为模约简540;导出550共享密钥;将密钥确认消息发送560至另一个网络设备;确定570密钥是否被确认570;以及密码应用580。如果在步骤570中未确认密钥,那么该方法在步骤550中继续,导出新密钥。例如,步骤550可以在每次未确认密钥时移除一个附加的最低有效位。
步骤550、560和570一起形成密钥均衡化协议。例如,在步骤560中,可以将随机数以及在步骤550中导出的共享密钥下对随机数的加密发送至第二设备。在步骤560中,从第二设备接收消息。接收的消息可以简单地说明接收的密钥确认消息表明密钥不相等。接收的消息也可以包含密钥确认消息。在后一情况下,第一网络设备核实密钥确认消息并且确立密钥是否相等。如果不相等,那么例如通过删除最低有效位导出新密钥。
本领域技术人员应当清楚的是,许多不同的执行所述方法的方式是可能的。例如,可以改变步骤的顺序,或者一些步骤可以并行地执行。而且,在步骤之间,可以插入其他方法步骤。插入的步骤可以表示例如本文所描述的方法的改进,或者可以与该方法无关。例如,步骤410和420或者510和520可以至少部分地并行地执行。而且,在开始下一个步骤之前,给定步骤可能没有完全结束。
依照本发明的方法可以使用软件执行,该软件包括用于使得处理器系统执行方法400或500的指令。软件可以仅仅包括系统的特定子实体采取的那些步骤。软件可以存储在诸如硬盘、软盘、存储器等等之类的适当存储介质中。软件可以作为信号沿着导线或者无线地或者使用数据网络(例如因特网)发送。可以使得软件可用于下载和/或用于在服务器上远程使用。
图6以示意形式示出了在两个网络设备(设备A和B)生成共享密钥的同时,这些设备之间的可能消息序列。时间向下运行。在步骤610中,网络设备A将其身份号码发送至设备B。在步骤620中,设备B发送其身份号码以及用于它基于身份号码A及其本地密钥材料导出的共享密钥(K1)的密钥确认消息。在步骤630中,设备A发现它们没有生成相同的密钥。设备A删除了一个最低有效位(比如整数除以2)以便获得密钥K2。在步骤630中,设备A发送新的密钥确认消息。按照这种方式,A和B交换密钥确认消息640,直到它们在步骤650中达成相同的密钥。在步骤650中,设备A将密钥确认消息发送至设备B。设备B能够核实它们达成了相同的密钥。在步骤660中,它发送其确认,该确认可以是认证的消息或者密钥确认消息等等。在步骤670中,设备A使用现在相等的共享密钥发送经过加密(比如使用AES)和/或认证(比如使用HMAC)的消息M1。
下面的算法给出了该方法的一种可能的实现方式,即由设备A和设备B运行的相互密钥协商&会话密钥导出的协议
该协议移除了利用例如本文描述的密钥共享算法生成的位串的若干位,并且执行认证握手,例如挑战-响应。认证握手可以包括密钥确认消息。如果不成功,那么移除一些附加的位,依次类推,直到握手成功执行或者密钥变得太短。该协议可以以若干方式修改,例如通过根据迭代移除变化数量的位或者要求总是固定数量的步骤,使得观察协议执行的偷听者不获得关于A与B之间的共享共同密钥的长度的任何信息。该方法具有以下优点:它确保了共享密钥尽可能长;然而它具有以下潜在缺点:它需要若干交换以便商定共同密钥。另一方面,对于大多数应用而言,这不会是个大问题,因为对于大多数设备配对而言,密钥将相等或者仅在少数位中不同,并且只有一定的设备配对将得到具有相对较高数量的不同最低有效位。这根据生成的密钥的性质推断。
存在对于两个设备达成相同密钥的其他方式。再一次地,我们假设设备A和B计算密钥KA(B)和KB(A)。下面的协议适用于任何这样的密钥共享方案,对于该方案,存在整数∆,根据设计参数,使得:
例如,本文描述的密钥共享方案具有这样的性质。生成的密钥表示为b位整数。因此,密钥可以被认为是来自集合{0, 1, 2, …, 2b-1}的元素。例如,如果∆=2,并且KB(A)=1,那么KA(B)处于{1, 2, 3, 0, 2b-1}内(注意,)。对于适当选择的系统设计参数而言,∆相对较小。本发明确保了总是生成相同的密钥,因为生成共同密钥的失败可以被恢复。
依照该方法,设备A向设备B发送函数值h(KA(B))。在这里,h为适当的散列函数,例如密码散列函数。设备B对于中的所有i计算h(i),并且对于未来的通信,使用h(i)与h(KA(B))的接收值匹配的整数i。如果∆太大,那么设备A和B可以首先将其密钥除以2的幂以便减小∆的大小。
应当理解的是,本发明也扩展到计算机程序,尤其是载体上或载体内的适于将本发明付诸实施的计算机程序。该程序可以是源代码、目标代码、介于源代码与目标代码之间的代码的形式,例如部分编译的形式,或者是适用于实施依照本发明的方法的任何其他形式。涉及计算机程序产品的实施例包含与所阐述的方法中的至少一个的每个处理步骤相应的计算机可执行指令。这些指令可以细分成子例程和/或存储到可以静态地或动态地链接的一个或多个文件中。涉及计算机程序产品的另一个实施例包含与所阐述的系统和/或产品中的至少一个的每个装置相应的计算机可执行指令。
应当指出的是,上述实施例说明了而不是限制了本发明,并且本领域技术人员将能够设计出许多可替换的实施例。在权利要求书中,置于括号之间的任何附图标记都不应当被视为限制了权利要求。动词“包括”及其变体的使用并没有排除存在权利要求中未阐明的元件或步骤。元件之前的冠词“一”并没有排除存在多个这样的元件。本发明可以借助于包括若干不同元件的硬件以及借助于经过适当编程的计算机来实现。在列举了若干装置的设备权利要求中,这些装置中的一些可以由同一硬件项实施。在相互不同的从属权利要求中记载了特定的技术措施这一事实并不意味着这些技术措施的组合不可以加以利用。

Claims (15)

1. 一种配置网络设备以用于密钥共享的方法,该方法包括:
以电子形式获得(410)私有模数(p 1)、公共模数(N)和具有整数系数的二元多项式(f 1),公共模数的二进制表示和私有模数的二进制表示在至少密钥长度(b)连续位中是相同的,
生成用于网络设备的本地密钥材料,该生成步骤包括以电子形式获得(420)用于网络设备的身份号码(A),并且使用多项式操纵设备通过将身份号码代入(430)二元多项式中而根据二元多项式确定一元多项式,以私有模数为模约简所述代入的结果,以及
将生成的本地密钥材料电子地存储(450)在网络设备处。
2. 如权利要求1所述的方法,其中生成用于网络设备的本地密钥材料包括生成混淆数,并且使用多项式操纵设备将混淆数添加(440)至一元多项式的系数以便获得混淆的一元多项式,生成的本地密钥材料包括混淆的一元多项式。
3. 如权利要求1或2所述的方法,其中二元多项式(f 1)是对称多项式。
4. 如前面的权利要求中任何一项所述的方法,其中公共模数的二进制表示的最低有效密钥长度(b)位与私有模数的最低有效密钥长度(b)位相同。
5. 如前面的权利要求中任何一项所述的方法,进一步包括
使用电子随机数生成器生成私有模数(p 1),和/或
使用电子随机数生成器通过生成用于二元多项式的一个或多个随机系数而生成二元多项式。
6. 如前面的权利要求中任何一项所述的方法,其中公共模数满足2(a+2)b-1N,其中N表示公共模数,a表示二元多项式的阶数并且b表示密钥长度。
7. 如前面的权利要求中任何一项所述的方法,包括以电子形式获得多个私有模数(pi )和具有模pi 系数的多个二元多项式(fi ),使得存在密钥长度(b)连续位置集合,其中公共模数的二进制表示和所有私有模数的二进制表示一致,
确定一元多项式包括将身份号码代入所述多个二元多项式(fi )的每一个中,以所述多个私有模数的与所述一个对称二元多项式相应的私有模数为模进行约简,并且将多次约简的多个结果相加。
8. 如前面的权利要求中任何一项所述的方法,其中生成混淆数,使得
其中表示混淆数,i表示与系数相应的单项式的阶数,a表示二元多项式的阶数并且b表示密钥长度。
9. 一种用于第一网络设备确定共享密钥的方法,该密钥为密码密钥,该方法包括:
获得电子形式的用于第一网络设备的本地密钥材料,该本地密钥材料包括可选地混淆的一元多项式,
获得(510)用于第二网络设备的身份号码,该第二网络设备不同于第一网络设备,
将第二网络设备的身份号码代入(530)可选地混淆的一元多项式中,
以公共模数为模约简所述代入的结果,并且以密钥模数为模进行约简(540),以及
从以密钥模数为模的约简结果中导出(550)共享密钥。
10. 如权利要求9所述的方法,进一步包括
确定(560,570)第一网络设备和第二网络设备是否导出了相同的共享密钥,并且如果没有,则根据以密钥模数为模的约简结果导出另一共享密钥。
11. 如权利要求9或10所述的方法,进一步包括将以公共模数为模的所述代入的结果除以零位串除数,该除数是2的幂,该零位串除数大于1。
12. 一种用于配置网络设备以用于密钥共享的系统,该系统包括:
密钥材料获取器(100),其用于以电子形式获得私有模数(122,p 1)、公共模数(110,N)和具有整数系数的对称二元多项式(124,f 1),公共模数的二进制表示和私有模数的二进制表示在至少密钥长度(b)连续位中是相同的,
生成器(200),其用于生成用于网络设备的本地密钥材料,包括
网络设备管理器(250),其用于以电子形式获得用于网络设备的身份号码(A)并且用于将生成的本地密钥材料电子地存储在网络设备处,以及
多项式操纵设备(240),其用于通过将身份号码代入二元多项式中,以私有模数为模约简所述代入的结果而根据二元多项式确定一元多项式。
13. 第一网络设备(310),被配置成确定共享密钥,该密钥为密码密钥,该第一网络设备包括:
本地密钥材料获取器(344),其用于获得电子形式的用于第一网络设备的本地密钥材料,该本地密钥材料包括可选地混淆的一元多项式,
接收器(330),其用于获得用于第二网络设备的身份号码,该第二网络设备不同于第一网络设备,
多项式操纵设备(342),其用于将第二网络设备的身份号码代入可选地混淆的一元多项式中并且以公共模数为模约简所述代入的结果,接着以密钥模数为模进行约简,以及
密钥导出设备(346),其用于根据以密钥模数为模的约简结果导出共享密钥。
14. 一种计算机程序,包括计算机程序代码装置,该计算机程序代码装置适于在计算机程序运行于计算机上时执行权利要求1-11中任何一项的所有步骤。
15. 如权利要求14所述的计算机程序,包含在计算机可读介质上。
CN201380026762.2A 2012-05-21 2013-03-28 密钥共享设备以及用于其配置的系统 Active CN104303451B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201261649464P 2012-05-21 2012-05-21
US61/649464 2012-05-21
US61/649,464 2012-05-21
EP12168710.7 2012-05-21
EP12168710.7A EP2667539A1 (en) 2012-05-21 2012-05-21 Key sharing methods, device and system for configuration thereof.
US201261658475P 2012-06-12 2012-06-12
US61/658,475 2012-06-12
US61/658475 2012-06-12
PCT/EP2013/056730 WO2013174554A1 (en) 2012-05-21 2013-03-28 Key sharing device and system for configuration thereof

Publications (2)

Publication Number Publication Date
CN104303451A true CN104303451A (zh) 2015-01-21
CN104303451B CN104303451B (zh) 2016-11-16

Family

ID=46085856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380026762.2A Active CN104303451B (zh) 2012-05-21 2013-03-28 密钥共享设备以及用于其配置的系统

Country Status (11)

Country Link
US (1) US9722787B2 (zh)
EP (2) EP2667539A1 (zh)
JP (1) JP5755391B2 (zh)
CN (1) CN104303451B (zh)
BR (1) BR112014028752A2 (zh)
ES (1) ES2556027T3 (zh)
MX (1) MX336828B (zh)
PL (1) PL2853057T3 (zh)
RU (1) RU2621182C1 (zh)
WO (1) WO2013174554A1 (zh)
ZA (1) ZA201409370B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426176A (zh) * 2017-06-12 2017-12-01 东南大学 一种支持混淆和零知识的安全水下传输方法
CN110383755A (zh) * 2017-01-05 2019-10-25 皇家飞利浦有限公司 网络设备和可信第三方设备
CN110419194A (zh) * 2017-02-15 2019-11-05 皇家飞利浦有限公司 密钥交换设备和方法
CN111510291A (zh) * 2020-04-20 2020-08-07 重庆邮电大学 基于双线性对的高效身份认证密钥协商协议
CN114390065A (zh) * 2022-01-24 2022-04-22 浙江数秦科技有限公司 一种区块链网络数据快速传输方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104854814A (zh) * 2012-12-21 2015-08-19 皇家飞利浦有限公司 密钥共享网络设备及其配置
BR112015020422A2 (pt) 2013-02-28 2017-07-18 Koninklijke Philips Nv primeiro dispositivo de rede configurado para determinar uma chave criptográfica compartilhada de bits de comprimento de chave, sistema de compartilhamento de chave, método para determinar uma chave criptográfica compartilhada de bits de comprimento de chave, e, programa de computador
CN105379173A (zh) * 2013-07-12 2016-03-02 皇家飞利浦有限公司 用于共享密码密钥的系统
EP3161993A1 (en) * 2014-06-27 2017-05-03 Koninklijke Philips N.V. Device for determining a shared key
MX2017002788A (es) 2014-09-04 2017-05-30 Koninklijke Philips Nv Sistema criptografico dispuesto para intercambio de claves.
NL2013520B1 (en) * 2014-09-24 2016-09-29 Koninklijke Philips Nv Public-key encryption system.
US9331989B2 (en) * 2014-10-06 2016-05-03 Micron Technology, Inc. Secure shared key sharing systems and methods
NL2013944B1 (en) * 2014-12-09 2016-10-11 Koninklijke Philips Nv Public-key encryption system.
CN107251478A (zh) * 2015-02-12 2017-10-13 卡米纳利欧技术有限公司 秘密密钥管理的计算机化系统和方法
US10608814B2 (en) * 2015-05-17 2020-03-31 Gideon Samid Equivoe-T: Transposition equivocation cryptography
WO2017025597A1 (en) * 2015-08-11 2017-02-16 Koninklijke Philips N.V. Key sharing device and method
KR101902459B1 (ko) 2015-12-21 2018-09-28 고려대학교 산학협력단 구분불가능성 난독화기반의 비대화형 키 교환 방법
DE102017117907B4 (de) * 2017-08-07 2023-04-27 Infineon Technologies Ag Durchführen einer kryptografischen Operation
RU2695487C1 (ru) * 2018-09-26 2019-07-23 Олег Дмитриевич Гурин Способ и система обеспечения взаимодействия устройств интернета вещей (iot)
CN110061836B (zh) * 2019-04-10 2021-09-24 湖北工业大学 一种具有前向安全性的组密钥分发方法
KR20220012851A (ko) 2019-05-30 2022-02-04 김봉만 대칭 키 암호화/교환을 위한 양자 내성 암호화 및 진보된 암호화 및 키 교환(aeke) 방법
US11546134B2 (en) * 2020-04-16 2023-01-03 Samsung Electronics Co., Ltd. Method and apparatus for processing ciphertext based on homomorphic encryption
JP2022091498A (ja) 2020-12-09 2022-06-21 セイコーエプソン株式会社 暗号通信システム、暗号通信方法および暗号通信装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101409617A (zh) * 2008-10-08 2009-04-15 东南大学 一种容忍入侵的无线传感器网络拓扑生成方法
CN101473626A (zh) * 2006-06-22 2009-07-01 皇家飞利浦电子股份有限公司 分级确定性成对密钥预分发方案
CN102160406A (zh) * 2008-09-17 2011-08-17 皇家飞利浦电子股份有限公司 用于网络中通信的方法、通信设备和其系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995005712A2 (en) * 1993-08-13 1995-02-23 Frank Thomson Leighton Secret key exchange
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
US7076061B1 (en) * 2000-02-07 2006-07-11 Citibank, N.A. Efficient and compact subgroup trace representation (“XTR”)
DE102006013989A1 (de) * 2006-03-22 2007-09-27 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Verfahren zur Reduktion eines Polynoms in einem binären finiten Feld
JP5637991B2 (ja) * 2008-09-19 2014-12-10 コーニンクレッカ フィリップス エヌ ヴェ ネットワークにおけるセキュア通信に関する方法、通信デバイス、ネットワーク及びコンピュータプログラム
RU2534944C2 (ru) 2009-03-19 2014-12-10 Конинклейке Филипс Электроникс Н.В. Способ обеспечения безопасности связи в сети, используемые для этого устройство связи, сеть и компьютерная программа

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101473626A (zh) * 2006-06-22 2009-07-01 皇家飞利浦电子股份有限公司 分级确定性成对密钥预分发方案
CN102160406A (zh) * 2008-09-17 2011-08-17 皇家飞利浦电子股份有限公司 用于网络中通信的方法、通信设备和其系统
CN101409617A (zh) * 2008-10-08 2009-04-15 东南大学 一种容忍入侵的无线传感器网络拓扑生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SONG GUO ET AL: "《A Permutation-Based Multi-Polynomial Scheme for Pairwise Key Establishment in Sensor Networks》", 《COMMUNICATIONS(ICC),2010 IEEE INTERNATIONAL CONFERENCE ON》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110383755A (zh) * 2017-01-05 2019-10-25 皇家飞利浦有限公司 网络设备和可信第三方设备
CN110419194A (zh) * 2017-02-15 2019-11-05 皇家飞利浦有限公司 密钥交换设备和方法
CN107426176A (zh) * 2017-06-12 2017-12-01 东南大学 一种支持混淆和零知识的安全水下传输方法
CN107426176B (zh) * 2017-06-12 2020-02-18 东南大学 一种支持混淆和零知识的安全水下传输方法
CN111510291A (zh) * 2020-04-20 2020-08-07 重庆邮电大学 基于双线性对的高效身份认证密钥协商协议
CN114390065A (zh) * 2022-01-24 2022-04-22 浙江数秦科技有限公司 一种区块链网络数据快速传输方法
CN114390065B (zh) * 2022-01-24 2024-03-19 浙江数秦科技有限公司 一种区块链网络数据快速传输方法

Also Published As

Publication number Publication date
EP2667539A1 (en) 2013-11-27
RU2621182C1 (ru) 2017-05-31
EP2853057A1 (en) 2015-04-01
PL2853057T3 (pl) 2016-03-31
US9722787B2 (en) 2017-08-01
ES2556027T3 (es) 2016-01-12
US20160254909A1 (en) 2016-09-01
JP5755391B2 (ja) 2015-07-29
MX2014012053A (es) 2015-01-12
JP2015521001A (ja) 2015-07-23
WO2013174554A1 (en) 2013-11-28
CN104303451B (zh) 2016-11-16
MX336828B (es) 2016-02-03
EP2853057B1 (en) 2015-10-28
ZA201409370B (en) 2017-09-27
BR112014028752A2 (pt) 2017-06-27

Similar Documents

Publication Publication Date Title
CN104303451A (zh) 密钥共享设备以及用于其配置的系统
CN106797314B (zh) 密码系统、网络设备、共享方法以及计算机可读存储介质
JP7221872B2 (ja) 楕円曲線の同種に基づくキー合意プロトコル
JP6190470B2 (ja) 鍵共有ネットワークデバイス及びその構成
JP5519633B2 (ja) 暗号手段を配布するための方法
JP6328152B2 (ja) 共有鍵を導出するよう構成されたネットワークデバイス
EP3451574B1 (en) Data receiving device, data transmission system, and key generating device
CN106464490A (zh) 用于确定共享密钥的设备
CN105580309A (zh) 密钥协商设备和方法
WO2015003984A1 (en) System for sharing a cryptographic key
CN104303450A (zh) 密码密钥的确定
US20160301526A1 (en) System for sharing a cryptographic key
US10880278B1 (en) Broadcasting in supersingular isogeny-based cryptosystems
Li et al. Key exchange protocol for wireless sensor network: Formal verification using CSN modal logic

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant