密钥交换设备和方法与流程

文档序号:19063320发布日期:2019-11-06 02:00阅读:296来源:国知局
密钥交换设备和方法与流程

本发明涉及网络节点、密钥协商方法和计算机可读介质。



背景技术:

在密码学中,密钥协商协议是其中可能尚未共享共用密钥的两方或更多方能够商定这样的密钥的协议。优选地,双方能够影响结果,使得没有一方可以强制密钥的选择。在双方之间的所有通信上窃听的攻击者应当不了解密钥。然而,尽管看到相同通信的攻击者不知道或者知道很少,但是各方自己可以导出共享密钥。

密钥协商协议是有用的,例如,以保护通信,例如,以加密和/或认证各方之间的消息。

当whitfielddiffie和martinhellman介绍公共密钥密码学的概念时,在1976年介绍了实际的密钥协商协议。其提出了用于利用在具有q个元素的有限域gf(q)上计算对数的显而易见的困难的双方之间的密钥协商的系统。使用系统,两个用户可以商定对称密钥。对称密钥可以然后被用于比如说双方之间的加密通信。

当各方尚未具有共享秘密时适用的当前密钥协商方法(诸如diffie-hellman密钥协商方法)要求重资源数学运算。例如,diffie-hellman要求人们在有限域上执行指数运算。指数和域大小两者可以是大的。这使密钥协商协议较不适于低资源设备。另一方面,密钥协商协议将在资源约束设备中是非常有用的。例如,在应用领域(诸如物联网、自组织无线网络等)中,密钥协商可以被用于保护设备之间的链接。另一范例是读取器与电子标签之间的通信,比如说读卡器和智能卡、或者标签读取器和标签,例如,rfid标签或nfc标签。具有将较小的负担放置在双方中的至少一个上(即,在电子标签上)的密钥协商协议将是有利的。

为了促进各方中间的安全通信,密钥协商协议有时还细分成密钥交换(kex)和密钥封装(kem)方案。密钥封装(kem)方案使用非对称密钥以使用用于每方的公开已知(例如,公共密钥)和秘密拥有(例如,秘密密钥)值在双方中间建立共享秘密。

kex方案涉及通过每方交换公共密钥,其然后独立地由另一方与其自己的秘密密钥使用以计算公共共享秘密。kex方案的公知范例是上文所提到的diffie-hellman密钥交换,其安全性基于解决离散对数问题。一些kex方案的感兴趣特征在于,共享秘密绝不在各方之间交换,甚至不以加密的形式,但是在每端处由双方独立计算。这导致被称为转发秘密的期望特征,其确保甚至由在将来由攻击者对一方的长期秘密密钥的损害将不使在过去交换的加密消息的秘密损害。

kem方案通过一方(通常通信的发起者)使用非对称密码在两个实体或方之间建立共享秘密,以将共享秘密加密(使用另一方的公共密钥)并且传送到另一方,被称为响应者,其可以然后将它解密(使用她的秘密密钥)并且然后它用于与发起者方安全通信。由于损害用于过去会话的一方的秘密密钥并且已经记录在该会话中的各方之间交换的所有消息的任何攻击者可以恢复用于该特定会话的共享秘密,因此kem方案不能实现转发秘密。

由于物联网中的增加的安全需要,密钥交换方案需要还实现高效率(即,最小量的通信或带宽要求),同时还针对经典以及有量子能力的敌手保持安全。



技术实现要素:

提供了一种被配置用于密钥交换协议的电子网络节点。所述网络节点将被称为所述第一网络节点以将其与其通信的第二网络节点区分。

所述第一网络节点包括:

-通信接口,其被布置用于与第二网络节点进行数字通信,以及

-处理器电路,其被配置为:

-获得共享矩阵,所述共享矩阵是通过所述通信接口与所述第二网络节点共享的,共享矩阵a中的条目被选择为以第一模量q为模,

-生成私有密钥矩阵,私有密钥矩阵中的条目是以界限的绝对值限制的整数,

-通过以下操作生成公共密钥矩阵:

-计算以第一模量为模的所述共享矩阵与所述私有密钥矩阵之间的矩阵乘积,从而获得矩阵乘积,

-将所述矩阵乘积中的条目按比例缩小到第二模量,缩放条目等于所述未缩放条目乘以所述第二模量,除以所述第一模量并且四舍五入到最近整数,所述第二模量小于所述第一模量,所述界限是至多所述第二模量,

-将所述第一网络节点的公共密钥矩阵发送到所述第二网络节点,

-接收所述第二网络节点的公共密钥矩阵,

-将原始密钥计算为以所述第二模量为模的所述第二节点的接收到的公共密钥与所述第一网络节点的私有密钥矩阵之间的矩阵乘积。

由于所述私有密钥矩阵有界并且所述公共密钥矩阵按比例缩小,因而减少所述密钥协商的计算和通信开销。使用一致数据,可以克服在第一网络节点和第二网络节点处计算的原始密钥矩阵之间的差异。所述节点中的一个计算一致数据并且另一个使用其。例如,所述第一网络节点的处理器电路可以被配置用于:

-接收所述第二网络节点的一致数据,

-通过将一致函数应用到接收到的所述一致数据和原始密钥来计算共享密钥,或者所述第一网络节点的处理器电路可以被配置用于:

-从所述原始密钥获得所述共享密钥和一致数据,

-将所述一致数据发送到所述第二网络节点。

所述网络节点是电子设备。例如,其可以是移动电子设备,诸如移动电话、平板电脑、或者智能卡、计算机。所述网络节点可以是机顶盒、计算机、电视等。本文所描述的密钥协商方法可以应用在各种各样的实际应用中。这样的实际应用包括因特网(物联网)中的安全性。协议可以应用到诸如ike、tls、ssh和其他的协议。一般而言,提出的方案是用于一般因特网用例和用于资源约束环境两者的后量子保证。无论何时要求两个节点之间的安全(例如,机密的)通信,可以使用密钥协商。这可以在传感器网络中,但是也例如以保护金融交易。

根据本发明的方法可以在计算机上被实施为计算机实施的方法或者在专用硬件或者在两者的组合中。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的范例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,所述计算机程序产品包括被存储在用于当所述程序产品被运行在计算机上时执行根据本发明的方法的计算机可读介质上的非瞬态程序代码。

在优选的实施例中,所述计算机程序包括适于当所述计算机程序被运行在计算机上时执行根据本发明的方法的所有步骤的计算机程序代码。优选地,所述计算机程序被实现在计算机可读介质上。

根据本发明的另一方面提供一种使所述计算机程序可用于下载的方法。该方面当所述计算机程序被上载到例如苹果的appstore、谷歌的playstore或微软的windowsstores中时并且当所述计算机程序可用于从这样的商店下载时被使用。

附图说明

将仅通过范例参考附图描述本发明的另外的细节、方面和实施例。为简单和清楚起见,图中的元件被图示,并且不一定按比例绘制。在附图中,与已经描述的元件对应的元件可以具有相同的附图标记。在图中,

图1示意性地示出了密钥协商网络的实施例的范例;

图2示意性地示出了原始密钥的实施例的范例;

图3示意性地示出了电子密钥交换方法的实施例的范例;

图4a示意性地示出了根据实施例的具有包括计算机程序的可写部件的计算机可读介质;并且

图4b示意性地示出了根据实施例的处理器系统的表示。

附图标记列表,在图1-2中:

100密钥协商网络

110发起者类型的网络节点

120通信接口

130共享矩阵单元

140私有密钥矩阵单元

150公共密钥矩阵单元

160共享密钥单元

162原始密钥

164一致数据(h)

166共享密钥

210响应者类型的网络节点

220通信接口

230共享矩阵单元

240私有密钥矩阵单元

250公共密钥矩阵单元

260共享密钥单元

262原始密钥

264一致数据(h)

266共享密钥

300原始密钥

301最高有效部分

302中间有效部分

303最低有效部分

具体实施方式

尽管本发明容许许多不同形式的实施例,但是在附图中示出并且将在本文中详细描述一个或多个具体实施例,应理解本公开应被认为是本发明的原理的范例,并非旨在将本发明限制于示出和描述的特定实施例。

在下文中,为了理解,在操作中描述了实施例的元件。然而,将显而易见的是,相应元件被布置为执行描述为由它们执行的功能。

此外,本发明不限于实施例,并且本发明在于本文描述的或在互不相同的从属权利要求中记载的每个或每一个新颖特征或特征组合。

图1示意性地示出了密钥协商网络100的实施例的范例。

图1中示出的是系统中的两个网络节点:发起者类型的网络节点110和响应者类型的网络节点210。在密钥协商系统的实施例中,节点的数目可以比两个更大、甚至大得多,例如,多于1000个节点,例如多于10^6个节点。

发起者或者响应者类型的网络节点之间的差异是其如何处理一致数据。发起者类型的网络节点接收一致数据并且应用其以获得共享密钥,而响应者类型的网络节点生成一致数据并且将其发送到发起者类型的网络节点。响应者类型网络节点不需要一致数据以获得共享密钥。通常,发起者类型将还发起两个网络节点之间的密钥协商协议,因为这可以减少两个网络节点之间执行的圈数。然而,其不是必要的;密钥协商协议也可以由响应者类型的网络节点发起。

此外,在网络节点的实施例中,网络节点被配置为根据发起者模式和根据响应者模式进行操作。例如,如果网络节点发起密钥协商,例如,向另一网络节点发送用信号通知密钥协商协议的开始的消息,那么网络节点可以切换到发起者模式。如果网络节点对密钥协商作出反应,例如,从另一网络节点接收用信号通知密钥协商协议的开始的消息,那么网络节点可以切换到响应者模式。尽管这实际上是便利的,但是该选项也不是严格必要的;例如,在密钥协商系统中,一些节点可以仅被配置为发起者并且一些可以仅被配置为响应者节点。这样做的结果将是,一些节点不能一起商定共享密钥。对于一些网络,这不必是问题,例如,在自组织网络或者自组织无线网格等中,只要足够多的网络节点对可以通信并且商定共享密钥。

发起者节点110包括通信接口120。响应者节点210包括通信接口220。通信接口可以被布置用于与密钥协商系统中的其他节点数字通信。尽管可以一直到达系统中的所有节点,但是这是不必要的。

通信接口120和220被布置用于数字通信。例如,通信接口可以被布置为通过计算机网络通信。例如,通信接口可以被布置用于无线通信(例如,wi-fi、zigbee、蓝牙等)和/或有线通信(例如,以太网、usb等)。节点110与210之间的通信也可以是有线和无线连接的组合。例如,系统100中的节点(包括节点110和120)可以包括包含通信标识符的电子存储装置,所述通信标识符唯一标识系统100内的节点。例如,通信标识符可以包括在节点110与210之间交换的数字消息中,例如以寻址消息。例如,通信标识符可以是ip地址、mac地址等。

电子网络节点被配置用于密钥交换(kex)协议。协议涉及通过通信接口120和220在节点110与210之间交换消息,并且在例如从另一节点接收到的数据上执行计算。密钥协商协议的执行实现在处理器电路中,下面示出了其范例。图1示出了可以是处理器电路的功能单元的功能单元。例如,图1可以被用作处理器电路的可能功能组织的蓝图。处理器电路未示出为与图1中的单元分离。例如,图1中所示的功能单元也可以全部或者部分实现在存储在网络节点处并且可由网络节点的微处理器执行的计算机指令中。

发起者节点110和响应者节点210被配置用于密钥交换(kex)协议。kex方案涉及通过每方交换公共数据(常常被称为公共密钥),其然后独立地由另一方与其私有数据(常常被称为秘密密钥)一起使用,以计算公共共享秘密。一些实施例的感兴趣特征在于,共享秘密绝不在各方之间交换,甚至不采取加密的形式,但是在每端处由双方独立计算。这导致被称为转发秘密的期望特征,其确保甚至在将来由攻击者对一方的长期秘密密钥的损害将不使在过去交换的加密消息的秘密损害。

本发明的实施例不依赖于受信第三方来提供机密通信。通信接口120与220之间的通信信道不需要必须是安全信道。攻击者可能能够在通信信道上窃听。即使这样,在节点110与120之间协商的密钥可以是安全的。如果通信信道被防止变更,可以在如由信道提供的程度内获得认证的程度。然而,如果通信接口120与220之间的信道未防止变更,则无kex方案将实现认证。为了获得认证,实施例可以与任何已知认证机制组合,例如,隐含认证机制(例如,使用验证公共密钥),或者明确认证机制(例如,使用数字签名)。

kex方案的公知范例是diffie-hellman密钥交换,其安全性基于解离散对数问题。在本发明中,定义其硬度基于所谓的学习与舍入(lwr)问题的密钥交换机制。当lwe实例的数目有界时,lwr问题的硬度可以基于所谓的学习与误差(lwe)问题的硬度假定。由于lwe问题的平均情况硬度基于对于量子计算机解决困难的某些相关的基于格的问题的最差情况硬度,该密钥交换方案是后量子安全密钥协商协议。

学习与误差(lwe)问题是数学上困难的问题,这引起归因于其甚至针对量子计算机和公知安全性推测困难的后量子密码方案。然而,产生于其的方案通常相对于计算和通信复杂性两者在性能方面是重量级的。学习与误差(lwe)问题可以被描述如下:

对于n维向量s∈zqn和zq上的误差分布χ,上的lwe分布通过从均匀并且随机选择向量a并且从χ选择误差e并且输出获得。

搜索lwe问题是给定来自的任意许多独立样本(ai,bi),找到由lwenq,χ(d)指代的决策lwe问题是对于固定s←d,将分布与具有不可忽略优点的上的均匀分布区分。

lwr问题是lwe问题的“去随机化”版本,通过利用模量“p”舍入而不是插入误差以隐藏秘密信息,并且然后通过从zq(其中,q是原始lwe模量)按比例缩小到zp引入确定性误差。

对于n维向量上的lwr分布通过从均匀并且随机地选择向量a并且输出来获得。

此处,指代最接近于x的整数。依据找到确切地类似于搜索lwe问题的秘密s定义搜索lwe问题。决策lwr问题是将分布与具有用于固定s←d的m个实例的上的均匀分布区分。已经示出当m有界时,搜索和决策lwr问题至少与对应的lwe问题一样困难,使得2mbp/q是常量(其中,b是lwe问题中的误差上的界限)。

由于lwe问题的公知安全性,因而基于lwe问题的后量子密钥交换方案享有广泛信任。然而,不存在能够使用在资源约束环境中的在性能中轻量的基于lwe的密钥交换方案。现有算法包括在有限资源设备上缓慢的各种操作,诸如:矩阵乘法模量q、从概率分布(诸如高斯分布)采样,以及具有大条目的计算或者传输。

在本发明中,双方生成近似但是并非确切相等的两个矩阵。为了达到确切协商,发送一些一致数据。在2016年11月4日在epo提交的题为“reachingagreementonasecretvalue”的申请号16197277.3的相同申请人的专利申请中解释了这样做的方案;例如,第7-10页上的方法可以被用于根据本发明的实施例的一致。还可以采用在引用的专利申请中其他地方公开的变型。

在本申请中,我们将使用对于以下三个函数的以下概念:

1.舍入函数对于q,bh,b∈z,bh≥1,b<log2q-bh,让

那么,

直观地,提取的b个最高有效位,其中,第二分量是确保无偏舍入误差的舍入因数。

2.交叉舍入函数对于q,bh,b∈z,bh>1,b<log2q-bh,让

那么,

直观地,提取v的(b+bh)个最高有效位的bh个最低有效位。

3.一致函数rec(w,b):对于q,bh,b∈z,bh≥1,b<log2q-bh,w∈zq,

其中,v是w的最近元素,使得

在本文中,上文引用的一致函数被用作范例。如所述,也可以使用上文引用的申请中的一致方法。图2是舍入和交叉舍入函数的示意性图示。作为范例,图2示出了原始密钥300。原始密钥300被图示为具有左边的最高有效位和右边的最低有效性的位串。直观地,应用到原始密钥的舍入函数对应于最高有效位301中的b位,交叉舍入函数到中间部分302中的bh下一位。可以丢弃最低有效log2q-b-bh。

发起者节点110包括共享矩阵单元130。响应者节点210包括共享矩阵单元230。共享矩阵单元130和230被配置为获得在两个节点之间共享的共享矩阵(a)。共享矩阵a中的条目是以第一模量q为模选择的整数。特别地给定矩阵a不必对于节点110和210保持私有的事实,存在确保在节点110与210之间共享相同矩阵的许多方式。

例如,节点中的一个(比如说发起者节点110,例如,在共享矩阵单元130中)可以选择矩阵a,例如,在具有以q为模的元素的随机数处。条目可以然后通过通信单元发送到另一节点,例如,到共享矩阵单元230。在这种情况下,后者共享矩阵单元230将简单地接收矩阵并且将其存储。矩阵a还可以代替地通过响应者节点选择并且发送到发起者节点110。

两个节点还可以在选择矩阵a时协作。例如,每个节点可以选择条目中的一些,并且将其发送到另一侧。例如,发起者节点可以选择奇数条目,并且响应者节点可以选择偶数条目等。以这种方式,两个节点中没有一个具有关于最后矩阵a的控制。例如,两个节点可以各自选择全矩阵a并且将其传递到另一侧。在此之后,可以以q为模添加两个矩阵。为了避免向发送矩阵的最后节点给予优点,选择矩阵上的保证可以首先通过所述最后节点发送。

减少发送全矩阵a的开销的感兴趣方式是生成随机种子并且通过通信信道将随机种子发送到另一节点。在接收到种子之后,第一网络节点和第二网络节点可以使用其以以上方式中的任一个生成矩阵a。相同随机种子被用于对确定性伪随机数生成器播种,其继而根据伪随机数生成器的输出生成矩阵(a)。如上文,每个节点可以发送种子(例如,以生成a的不同部分),或者两个种子可以组合(例如,添加、或xor等),并且组合种子可以被用于生成a。

种子可以例如选自另一随机数生成器,例如,真实随机数生成器。节点还可以被配置有随机数的列表(例如,在制造时)。在这种情况下,每次针对新密钥协商生成新矩阵a时,节点从列表选择下一随机数。如果随机数的列表耗尽,则其可以从受信任源再填满。

在实施例中,矩阵a是具有维度n×n的方形矩阵。这不是严格必要的,协议的其他元素的维度可以适于考虑非方形矩阵a。然而,选择方形矩阵a是最便利的并且将自始至终假定。

发起者节点110包括私有密钥矩阵单元140。响应者节点210包括私有密钥矩阵单元240。私有密钥矩阵单元140被配置为生成私有密钥矩阵si;私有密钥矩阵单元240被配置为生成私有密钥矩阵sr。私有密钥矩阵中的条目是以界限s的绝对值为界的整数。例如,可以在-s与s(包括的界限)之间选择私有密钥矩阵中的条目。

发明人发现,出人意料地,选择界限小具有双重优点:与私有密钥矩阵的矩阵乘法是较快的,并且在每侧处计算的原始密钥之间的距离是较小的(参见下文)。后者意指需要较少的一致数据和/或协议中的失败的机会,因为商定不同密钥的节点是较小的。界限s被选择为至多第二模量,例如,小于或等于第二模量。由于稍后我们乘以以p为模,因而该选择是有利的。如果我们允许s中的有符号条目,则我们可以将其限制到至多(或小于)第二模量的一半(p/2)。

界限可以低于第二模量或者第二模量的一半,并且实际上界限将通常选择为比第二模量或者第二模量的一半小得多。在实施例中,私有密钥矩阵(si,sr)中的条目的绝对值上的界限s是2(s=2)。即,私有密钥矩阵中的所有条目是-2、-1、0、1或2。为了将矩阵a乘以私有密钥矩阵,仅需要1位上的加法、减法和移位。因此,这样的矩阵乘法可以非常高效地实现。

从实现视角,通过将界限选择为1(s=1)达到最好结果。即,私有密钥矩阵的条目仅是值-1、0和1。我们还将此称为“有符号二进制数”。与有符号二进制数中的矩阵的矩阵乘法仅包含加法和减法。不需要用于以p或q为模的相乘的乘法单元。

对于s的其他小数目也是可能的,例如,如果s=3,允许条目是0、1、-1、2、-2、3、-3。用于乘以这些数目的乘法例程可以包括在节点中。例如,+1、-1可以由加法器/减法器来处理,-2、+2可以由跟随有加法器/加法器的移位来处理,并且+3、-3可以通过加上/减去移位和非移位数目两者来处理。

在实施例中,私有密钥矩阵仅包括作为0、二的幂并且可选地减去二的幂的条目,因为这些容易相乘。

在实施例中,私有密钥矩阵包含正数和负数两者。然而,进一步将私有密钥矩阵限制为非负数也是可能的。例如,私有密钥矩阵中的条目可以在0与s(包括的界限)之间。例如,通过选择s=1,在后者情况下,避免乘法和减法运算两者。

选择私有密钥矩阵的维度,使得其可以乘以矩阵a。例如,如果a是n×n,那么发起者节点的私有密钥矩阵可以是矩阵;响应者节点的私有密钥矩阵可以是矩阵。的大小被选择足够大以获得共享密钥中的足够的位数,并且获得足够高的安全水平。

除限制私有密钥矩阵的条目的大小之外,通过限制非零元素的数目获得另外的优点。我们将参考矩阵的列或行的汉明权重作为其零条目的数目。

发明人研究了限制私有密钥矩阵的汉明权重的不同方式。其通常足以限制用于列或者用于行的汉明权重,这取决于私有密钥矩阵是左还是右乘矩阵a。例如,如果私有密钥矩阵右乘以矩阵a(例如,as),则其足以限制私有密钥矩阵的列中的汉明权重。

例如,可以针对私有密钥矩阵的列和/或行的汉明权重选择上限。上限可以对于所有列和/或行相同。在实施例中,私有密钥矩阵(si,sr)的列和/或行具有相同固定汉明权重。

改进安全性,如果-经受条件-私有密钥矩阵均匀随机选自候选私有密钥矩阵,即来自满足选择要求的矩阵,例如,关于条目上的界限以及列或行中的汉明权重。例如,如果人们期望加强每列的汉明权重是50的条件,那么从带有具有用于每列的50的汉明权重的正确维度的所有矩阵的集合选择私有密钥矩阵是有利的。选择任何期望的汉明权重的均匀随机位串的高效算法是已知的。

限制私有密钥矩阵的汉明权重的不同方式是从概率分布选择私有密钥矩阵(si,sr)的列和/或行。例如,私有密钥矩阵(si,sr)中的条目可以选自非均匀概率分布,其中,零条目的概率大于非零条目的概率。在实施例中,选择概率分布,使得其给定用于列和/或行的预定预期汉明权重。例如,为了选择长度n和预期汉明权重hs的列,人们可以选择每个条目作为具有概率hs/n的非零。非零条目可以被选择为1或-1(例如,在等概率的情况下)。

太小的列或行中的汉明权重可能影响安全性。例如,对于有符号二进制数情况,人们可以选择汉明权重hs,使得是至少127,更优选地至少255。原因是使通过在私有密钥矩阵上循环进行蛮力攻击不可行。在实施例中,尽可能小的汉明权重hs满足上限。

发起者节点110包括公共密钥矩阵单元150。响应者节点210包括公共密钥矩阵250。公共密钥矩阵单元根据矩阵a和私有密钥矩阵s计算公共密钥矩阵。

术语公共和私有旨在传达共享密钥不能在仅知道公共密钥或者在不知道一些私有信息的情况下获得。尽管公共信息主动共享,但是不存在要求。例如,密钥协商协议可以在(推测的)安全信道上执行,其保持公共密钥安全远离窃听者。在这种情况下,在信道的安全性被破坏的情况下,密钥协商协议提供安全性的额外的层。

公共密钥矩阵单元通过以下来计算公共密钥矩阵p(分别用于发起者和响应者的pi、pr):以第一模量(q)为模计算共享矩阵(a)与公共密钥矩阵(分别地si或sr)之间的矩阵乘积,从而获得矩阵乘积并且按比例缩小结果。

然而,未揭示该中间矩阵乘法。共享矩阵a的知识和该矩阵乘法的结果将揭示私有密钥,因为其可以通过转换矩阵a计算。由公共密钥矩阵单元执行的缩放步骤阻止该选项。公共密钥矩阵单元将矩阵乘积中的条目按比例缩小到第二模量p。第二模量p小于第一模量q。缩放条目等于未缩放条目乘以第二模量(p),除以第一模量(q)并且四舍五入到最近整数。例如,如果x是矩阵乘积中以q为模的未缩放条目,则缩放条目可以被选择为其中,表示最近整数。在缩放运算之后,根据公共密钥和矩阵a计算私有密钥不再是直接可能的。

公共密钥矩阵中的条目可以被表示为间隔[0,p-1]内的整数。私有密钥矩阵中的条目也可以被表示为间隔[0,p-1]内的整数。存在选择间隔[-p/2,p/2]内的条目以减少用于后续乘法的整数的大小的优点。如上文指出的,私有密钥矩阵还具有在间隔[-s,s]或者甚至[0,s]内选择的条目。

矩阵a和私有密钥矩阵s的乘法以第一模量q为模完成。为此目的,网络节点可以包括用于以为q模降低的模数约减单元。如果私有密钥矩阵s中的条目是小的(例如,以1为界、或者以取绝对值的1为界),则可以简化模数约减;在矩阵乘法期间,每次条目变得大于q或小于0时,通过减去或加上q使结果返回间隔0到q-1。

发起者节点和响应者节点两者将其公共密钥矩阵发送到另一节点(例如,使用通信接口120和220)。发明人发现通过将矩阵乘积按比例缩小的至少三个优点。首先,避免将噪声生成并且明确添加到矩阵乘积中。引入噪声要求概率分布(例如,高斯分布)的计算。这些是相对计算密集的。第二,减少通信要求。由于第二模量p小于第一模量q,因而表示公共密钥矩阵的条目比私有密钥矩阵的条目需要更少的位。第三,涉及公共密钥矩阵的计算是较小的,因为其涉及较小的数目。出人意料的是,单个措施同时提供三个优点。

强烈地优选的是,第二模量p除以第一模量q。有趣地,发明人发现第一模量和第二模量两者都不需要是素数。实际上,人们发现,将第一模量(p)和/或第一模量(q)选择为2的幂具有公共密钥和私有密钥均匀分布的优点。在实施例中,第一模量和第二模量两者是2的幂。

在实施例中,我们还要求除模量p和q之外是二的幂。即使观察一致数据,这也引起均匀共享密钥。b是根据原始密钥的条目提取的共享密钥位的数目。

模量的大小不需要是非常大的。例如,在实施例中,第二模量具有12或更多的位大小,和/或第一模量具有8或更多的位大小。取决于安全性要求,较大或较小大小是可能的。在实施例中,q在2^12和2^15的范围内,p在2^7和2^9的范围内(包括的)。如安全性命令指示,p和q的值可以选择为更大或更小。

发起者节点110包括共享密钥单元160。响应者节点210包括共享密钥单元260。在其要么生成和传送、要么接收和应用一致数据的意义上,共享密钥单元是不同的。

共享密钥单元160和共享密钥单元260被配置为将原始密钥162、262计算为另一节点的接收到的公共密钥与网络节点自己的私有密钥矩阵之间的以第二模量(p)为模的矩阵乘积。选择矩阵的维度和矩阵乘法,使得如果省略缩放操作,则双方将计算相同的原始密钥。即,相同密钥将产生而没有缩放,并且所有计算以q为模完成。然而,由于缩放,因而这两个原始密钥不需要是相同的。以p为模完成计算原始密钥。网络节点可以包括用于降低以p为模的乘法的结果的模数单元。

响应者节点210的共享密钥单元260被布置为从原始密钥262获得共享密钥266和一致数据264,并且向发起者网络节点110发送一致数据264。一致数据可以采取原始密钥中的一个或多个位的形式。出于生成密钥的目的忽略被选择为一致数据的位。

共享密钥单元260从原始密钥的条目选择一些位以形成密钥形式。例如,可以连结选择位。在实施例中,选择的位被输入到密钥导出函数(kdf),例如,密码散列函数。在例如来自cmlatechnicalspecification,version:v1.43-20131218的cmla_kdf或在“drmspecification”,oma-ts-drm-drm-v2_0_2-20080723-a,openmobilealliancetm,2.0.2版本,7.1.2章节等中定义的kdf函数中给出kdf的范例。密钥导出函数可以应用到例如通过舍入函数(例如,在连结之后)或者从来自一致函数的输出(例如,也在连结之后)获得的原始密钥中的密钥位的条目。

未被选择为密钥位的一些位可以被选择为一致数据。最后,一些位可以全部丢弃。在实施例中,密钥位选自原始密钥条目的msb部分,一致数据选自原始密钥条目的中间部分,原始密钥的最低有效部分可以丢弃。例如,密钥位可以通过将舍入函数应用到原始密钥的条目获得;一致位可以通过将交叉舍入函数应用到原始密钥的条目获得。

通过共享密钥单元260从原始密钥获得的密钥一致数据被发送到发起者节点110。

共享密钥单元160被配置为接收第二网络节点的一致数据164(h),并且通过将一致函数应用到接收到的一致数据和原始密钥矩阵162计算共享密钥。例如,一致函数可以应用到原始密钥162中的条目中的每一个和一致数据的对应部分。例如,如果一致数据164是由响应者单元210生成的原始密钥的一部分,则发起者节点可以选择能够已经由节点210获得并且与接收到的一致数据兼容(例如,具有与接收到的相同的中间位)的原始密钥。这样做的一个方式是使用上文定义的一致函数。因此,恢复节点210用于创建共享密钥的相同位。通过以相同方式连结位,或者通过将其输入到相同kdf,获得相同共享密钥166。在实施例中,共享密钥是对称密钥。

不需要许多一致数据,仅单个位可以是足够的。然而,观察到,将一致位的数目增加到2位或更多是有利的,因为其降低协议的失效概率。

b和bh的典型值是1或2。在本文中,b是每原始密钥条目提取的密钥位的数目,并且bh是每原始密钥条目的一致位的数目。选择的大小,使得是足够大的,例如,例如,可以选择大约相等。为了保持开销小,人们可以将其选择为

人们可以重新使用矩阵a和私有密钥矩阵之一以用于密钥协商协议的多次执行(如果两者是将获得相同共享密钥的同一个)。这将降低通信开销,尤其是如果矩阵a重新使用。然而,发明人认识到,由于无验证被连接到这些元素,因而不需要重新使用矩阵a和私有密钥矩阵中的任一个。在优选实施例中,针对每个新密钥交换获得新矩阵a和新私有密钥。这具有以下优点:攻击者不具有通过观察协议的多次执行观察额外信息的选项。此外,改进转发秘密。

在协议完成并且这两个节点已经计算相同密钥之后,节点中的一个可以将密钥确认消息发送到另一个来验证其已经商定相同密钥。例如,密钥确认消息可以是共享密钥的散列、固定值的加密、随机值的加密连同随机值。密钥确认还可以使用挑战响应协议执行。人们还可以选择省略密钥确认。如果各方获得不同共享密钥,那么在其之间执行的后续通信将失败。例如,秘密密钥可以被用于加密和/或认证另外的通信,例如,数字通信。如果其到达不同共享密钥,那么解密和/或验证可能失败。

下文描述了另外的特定有利实施例。表示本发明的基本系统是可以通过两个实体或方(从此被称为发起者和响应者)执行的协议(从此被称为密钥交换(kex)方案)以便建立仅对其已知的其之间的共享秘密。出于该目的,其使用其必须在执行kex方案、由其中的每一个具有的一些私有信息(从此被称为其秘密密钥)和由其中的每一个具有的一些公共信息(从此被称为其公共密钥)之前必须商定的多个共同系统参数。kex方案的安全性基于学习与舍入(lwr)问题,其安全性基于学习与误差(lwe)问题,从而保护共享秘密的保密性和发起者和响应者的秘密密钥的保密性。在以下范例中,私有密钥矩阵是有符号二进制数。

kex方案的实施例包括三个阶段:

1.设置:

·发起者和响应者商定用于作为正整数的以下系统参数的共同值。

i.q:lwr问题的模量。

ii.n:lwr问题的维度。其还表示矩阵的尺寸,即lwr问题的公共参数。

iii.hs:有符号二进制数(即,三元的)字符串的分布中的每个字符串的汉明权重,使得hs<n。

iv.在kex协议期间由发起者创建的lwr问题实例或者样本的数目。

v.在kex协议期间由响应者创建的lwr问题实例或者样本的数目。

vi.b:依据双方的原始密钥的系数提取的位数,同时创建最后共享秘密或密钥。

vii.bh:依据双方的原始密钥的系数提取的位数,同时创建一致数据。

viii.p:lwr问题的舍入模量,的整数倍并且满足p|q。注意,作为二的幂的p的要求允许更快并且更高效的实现方案。

·此外,各方商定公共矩阵:

i.该矩阵的新实例被选择用于每个kex会话。

如果特定参数被映射到给定标识符,则公共参数的选择可以被集成到诸如tls或ike的协议。例如,协议标识符(例如,在tls中密码组元素)可以被用于编码公共参数。公共矩阵还可以从种子导出(例如,借助于散列函数)。在不同解决方案中,发起者将决定将被发送给响应者的一些参数。

2.密钥生成:

·发起者通过从分布hwtn(hs)采样次创建新秘密密钥该分布hwtn(hs)表示具有hs的汉明权重的{0,±1}n中的均匀向量的分布。

·发起者创建她的公共密钥

·响应者通过从分布hwtn(hs)采样次创建新秘密密钥该分布hwtn(hs)表示具有hs的汉明权重的{0,±1}n中的均匀向量的分布。

·响应者创建她的公共密钥

3.密钥交换:

表1:发起者i与响应者r之间的密钥交换利用舍入和稀疏,秘密矩阵包含三元条目,从而导致i与r之间的共享秘密k的建立。中间列给出可以在发起者与响应者之间交换的消息的范例。

发明人发现可以施加在参数上以改进安全性的四个要求。这些包括以下各项:

1.最小密钥长度:为了确保共享秘密包含至少目标位数,发起者的参数响应者的参数和系统参数b应当使得,

2.针对秘密密钥的穷举搜索攻击的安全性:我们假定s(后量子)和2s(古典的)的位中的目标安全水平。为了确保秘密密钥的穷尽蛮力攻击搜索以便估计其条目具有足够高的工作量,秘密密钥向量(均具有汉明权重hs)中的秘密的数目应当满足:

其中,22s是grover量子搜索算法的运行时间,并且2s是经典搜索算法的运行时间。例如,s可以是128或256等。注意,该界限用于其中私有密钥矩阵中的条目的绝对值上的界限是1的情况。可以针对较大界限s建立类似界限。

3.成功概率:为了确保发起者和响应者不到达相同最后共享秘密的概率是至多pfail,应当选择针对参数hs和常量ξ的值,使得

其中,

4.安全性分析:为了确保bkz格约减算法的时间复杂性是至少2128,保证128位后量子安全性,lwr尺寸n必须大于依据bkzroot-hermite因子δ(bkz算法的参数)、舍入模量p和稀疏度θ=hs/n表达的以下下限:

bkzroot-hermite因子δ是bkz算法的准确度的指示。例如,对于经典安全性,可以假定δ=1.003922,其中,bkz块大小=409,对于后量子加密,人们可以假定δ=1.00367,其中,bkz块大小=450,并且对于后量子加密中的增加的安全性,人们可以假定δ=1.00309,其中,bkz块大小=573。

可以概率完成私有密钥矩阵的选择。概率性秘密密钥生成简化实现方案。在创建秘密密钥而不是依据秘密密钥的列生成hs非零条目时,在该实施例中每个(i,j)th秘密密钥条目sk(i,j)将创建如下:

sk(i,j)=1,其中,

sk(i,j)=-1,其中,

sk(i,j)=0,其中,

备选地,如果生成是确定性的,那么以下可以使用标准安全prf完成:如果在n个位置的向量中存在hs个非零元素(要么1要么-1),那么prf的输出连同随机+1或-1值一起选择列中的随机位置,直到prf在不同位置处选择hs个非零元素。例如,prf输出可以分成位的块,其中,块的前位识别非零元素的位置并且块的最后位确定元素是否是1或-1。

所提出的密钥交换具有若干优点。

计算复杂性:当秘密密钥矩阵是稀疏的并且具有条目0、1和-1时,我们的方案中以q为模的计算是快速的。特别地,可以高度优化涉及高维度(例如在公共密钥和原始密钥的生成期间)的矩阵的乘法。我们量化以下表中的我们提出的密钥交换方案的计算性能,这当在intelxeonquad-core3.2ghz处理器上运行时提供密钥交换方案的阶段所需的cpu时钟周期:

表2:提出方案的计算性能,其示出了对于三个安全水平的密钥生成和总密钥交换所需的cpu时钟周期。在第6列中示出选择的最后密钥位的数目(即,b)。

可以针对中等安全性(例如,针对经典安全性)选择情况i。可以针对后量子安全性选择情况ii和ii。情况iii比情况ii更安全。

通信复杂性:由于对于较低模量的舍入的使用,我们能够减少公共密钥和原始密钥的每个条目的大小,从而实现显著地较低的带宽要求。我们在两个下表中将此量化,其中,我们说明我们提出的方案的带宽要求(分别在使用和不使用舍入的情况下)。实施例与在j.bos,c.costello,l.ducas,i.mironov,m.naehrig,v.nikolaenko,a.raghunathan,d.stebila“frodo:takeoffthering!practical,quantum-securekeyexchangefromlwe”中描述的基于lwe的协议进行比较。

带宽被计算为交换的密钥交换消息(即,公共密钥和一致数据)的总大小并且不包括公共矩阵a的交换。

表3:提出方案的通信性能,其示出现有技术基于lwe的密钥交换方案frodo上的带宽要求的改进(最后密钥位的数目b=2,一致数据位的数目、bh=2)。

使用lwe和稀疏小秘密的带宽增益:

表4:当仅使用稀疏小秘密而不是与舍入的组合时提出方案的通信性能。(最后密钥位的数目b=2,一致数据位的数目bh=2)

由于以下原因,对于第一表-稀疏-lwr(与稀疏小秘密组合使用的舍入)的带宽增益相比于对于第二表-稀疏-lwe(仅使用稀疏小秘密)的是更期望的:与在稀疏lwr的情况下n的最小值相比较,lwr和lwr问题维度n的最小值在稀疏lwe的情况下是更高的。这是因为该最小值通过稀疏lwe中的高斯误差分布的方差确定,其比在稀疏lwr的情况下在n上施加更严格的最小界限(其中,n最小界限由比控制)。稀疏lwr中的带宽由log2p控制,其小于log2q(在稀疏lwe的情况下)。

在各种实施例中,通信接口可以选自各种备选方案。例如,通信接口可以是局域网或者广域网(例如,因特网)的网络接口、内部或者外部数据存储的存储接口、键盘等。

网络节点可以包括电子存储设备,例如,以存储中间数据,诸如矩阵a、公共和私有密钥矩阵和共享密钥等。存储设备可以被实现为电子存储器(比如说闪存)、或者磁性存储器(比如说硬盘等)。存储设备可以包括一起组成存储设备的多个分立存储器。存储设备还可以是临时存储器(比如ram)。在临时存储设备的情况下,存储设备可以使用一些模块在使用之前获得公共参数,例如通过在任选网络连接(未分离地示出)上获得它们。

通常地,设备110和210均包括微处理器(未分离地示出在图1中),其执行被存储在设备110和210处的适当的软件;例如,该软件可能已经被下载和/或被存储在对应的存储器中,例如,易失性存储器(诸如ram)或者非易失性存储器(诸如闪存)(未分离地示出)中。备选地,设备110和210可以全部或者部分地以可编程逻辑实现,例如,作为现场可编程门阵列(fpga)。设备110和120可以全部或者部分地被实现为所谓的专用集成电路(asic),即,针对其特定使用定制的集成电路(ic)。例如,电路可以以cmos实现,例如,使用硬件描述语言,诸如verilog、vhdl等。

在实施例中,网络节点包括通信接口电路、共享矩阵单元、私有密钥矩阵电路、电路实现本文所描述的对应单元。电路可以是处理器电路和存储电路,处理器电路运行电子地表示在存储电路中的指令。

处理器电路可以以分布式方式实现,例如,作为多个子处理器电路。存储设备可以被分布在多个分布式子存储设备上。存储器的部分或者全部可以是电子存储器、磁性存储器等。例如,存储设备可以具有易失性和非易失性部分。存储设备的部分可以是只读的。电路还可以是fpga、asic等。

图3示意性地示出了电子密钥交换方法的实施例的范例。方法可以通过第一电子网络节点(诸如发起者节点110或者响应者节点210)执行。

方法400包括

-布置(410)所述第一网络节点与第二网络节点之间的数字通信,

-获得(420)共享矩阵(a),所述共享矩阵是通过所述数字通信与所述第二网络节点共享的,所述共享矩阵a中的条目被选择为以第一模量q为模,

-生成(430)私有密钥矩阵(si),所述私有密钥矩阵中的条目以界限(s)的绝对值为界,

-通过以下操作生成(440)公共密钥矩阵(pi):

-计算以第一模量(q)为模的(442)共享矩阵(a)与私有密钥矩阵(si)之间的矩阵乘积,从而获得矩阵乘积,

-将矩阵乘积中的条目按比例缩小(444)到第二模量(p),缩放条目等于所述未缩放条目乘以第二模量(p),除以第一模量(q)并且四舍五入到最近整数,第二模量小于第一模量(q),界限(s)是至多第二模量(p),

-将第一网络节点的公共密钥矩阵发送(452)到第二网络节点,

-接收(454)第二网络节点的公共密钥矩阵(pr),

-将原始密钥计算(460)为以第二模量(p)为模的第二节点的接收到的公共密钥与第一网络节点的私有密钥矩阵之间的矩阵乘积,

如果第一网络节点根据发起者模式进行操作,那么第一网络节点执行以下另外的元素。

-接收(472)第二网络节点的一致数据(h),

-通过将一致函数(rec)应用到接收到的一致数据和原始密钥来计算(482)共享密钥。

如果第一网络节点根据响应者模式进行操作,那么第一网络节点执行以下另外的元素。

-从所述原始密钥获得(474)共享密钥和一致数据,

-将所述一致数据发送(484)到所述第一网络节点。

执行方法的许多不同方式是可能的,如对于本领域技术人员将显而易见的。例如,可以改变步骤的顺序或者可以并行执行一些步骤。此外,在步骤之间可以插入其他方法步骤。插入的步骤可以表示诸如本文描述的方法的细化,或者可以与该方法无关。例如,在下一步骤开始之前,给定步骤可能尚未完全完成。

根据本发明的方法可以使用软件执行,其包括用于使得处理器系统执行方法400的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。软件可以存储在合适的存储介质中,例如硬盘、软盘、存储器、光盘等。软件可以作为信号沿着线、无线或使用数据网络(例如,因特网)发送。该软件可以可用于下载和/或在服务器上远程使用。可以使用位流来执行根据本发明的方法,该位流被布置为配置可编程逻辑,例如,现场可编程门阵列(fpga),以执行该方法。

将意识到,本发明还扩展到计算机程序,特别是适于将本发明付诸实践的载体上或载体中的计算机程序。程序可以采取源代码、目标代码、代码中间源和诸如部分编译形式的目标代码的形式,或者适用于实现根据本发明的方法的任何其他形式。涉及计算机程序产品的实施例包括与阐述的方法中的至少一个的处理步骤中的每个相对应的计算机可执行指令。这些指令可以细分为子例程和/或存储在可以静态或动态链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与阐述的系统和/或产品中的至少一个的模块中的每个相对应的计算机可执行指令。

图4a示出了具有包括计算机程序1020的可写部件1010的计算机可读介质1000,计算机程序1020包括用于使得处理器系统执行根据实施例的密钥协商方法的指令。计算机程序1020可以根据物理标记或者借助于计算机可读介质1000的磁化被实现在计算机可读介质1000上。然而,任何其他适合的实施例也是可以想象的。此外,将意识到,尽管计算机可读介质1000此处被示出为光盘,但是计算机可读介质1000可以是任何适合的计算机可读介质(诸如硬盘、固态存储器、闪存等),并且可以是非可记录或可记录的。计算机程序1020包括用于使处理器系统执行所述密钥协商方法400的指令。

图4b示意性地示出了根据实施例的处理器系统1140的表示。处理器系统包括一个或多个集成电路1110。在图4b中示意性地示出了一个或多个集成电路1110的架构。电路1110包括处理单元1120(例如,cpu),其用于运行计算机程序部件以执行根据实施例的方法和/或实施其模块或者单元。电路1110包括用于存储编程代码、数据等的存储器1122。存储器1122的部分可以是只读的。电路1110可以包括通信元件1126,例如,天线、连接器或者两者等。电路1110可以包括用于执行方法中定义的处理的部分或全部的专用集成电路1124。处理器1120、存储器1122、专用ic1124和通信元件1126可以经由相互连接1130(比如说总线)彼此连接。处理器系统1110可以被布置用于分别地使用天线和/或连接器的接触和/或无接触通信。

例如,在实施例中,网络节点可以包括处理器电路和存储器电路,处理器被布置为运行存储在存储器电路中的软件。例如,处理器电路可以是intelcorei7处理器、armcortex-r8等。在实施例中,处理器电路可以是armcortexm0。存储器电路可以是rom电路、或者非易失性存储器,例如,闪存。存储器单元可以是易失性存储器(例如,sram存储器)。在后者情况下,设备可以包括非易失性软件接口(例如,硬盘驱动器、网络接口等),其被布置用于提供软件。

应当注意,上文所提到实施例图示而不是限制本发明,并且本领域的技术人员将能够设计许多备选实施例。

在权利要求中,括号内的任何附图标记不应被解释为对权利要求的限制。动词“包括”及其变形词的使用不排除权利要求中记载的元件或步骤之外的元件或步骤的存在。元件前面的词语“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括若干不同元件的硬件和借助于适当编程的计算机来实施。在列举了若干模块的设备权利要求中,这些模块中的若干个可以由同一个硬件项来实现。在互不相同的从属权利要求中记载了特定措施的仅有事实并不指示不能有利地使用这些措施的组合。

在权利要求中,括号中的参考涉及示范性实施例的附图中的附图标记或实施例的公式,从而增加了权利要求的可理解性。这些参考不应解释为对权利要求的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1