被配置成导出共享密钥的网络设备的制造方法_4

文档序号:9308942阅读:来源:国知局
步骤250可以每当密钥未被确认时去除一个额外的最 低有效比特。
[0091] 对于归约算法存在各种选择,如使用图4a-4f说明的。归约算法的执行可以由多 项式操纵设备来进行。可以按照以下说明的算法用软件在微处理器上进行该操作。
[0092] 步骤250、260和270 -起形成了密钥均衡协议。例如,在步骤260,可以将随机数 (nonce)和在步骤250中导出的共享密钥下随机数的加密发送至第二设备。在步骤260,从 第二设备接收消息。接收到的消息可以简单地说:接收到的密钥确认消息表明密钥不相等。 接收到的消息也可以包含密钥确认消息。在后一种情况下,第一网络设备验证密钥确认消 息,并在密钥相等的情况下建立。如果不相等,则例如通过删除最低有效比特来导出新的密 钥。
[0093] 如对于本领域技术人员来说将明显的是,许多执行该方法的不同方式是可能的。 例如,步骤的次序能够改变,或者一些步骤可以并行执行。而且,在步骤之间可以插入其他 方法步骤。插入的步骤可以代表比如本文描述的方法的细化,或者可以与该方法无关。例 如,可以至少部分并行地执行步骤210和220。而且,给定的步骤可以在下一步骤开始之前 尚未完全完成。
[0094] 图3以示意的形式示出了在两个网络设备(设备A和B)生成共享密钥时在它们之 间的可能的消息序列。时间向下进行。在步骤310,网络设备A将它的身份号发送至设备 B。在步骤320,设备B发送它的身份号和针对共享密钥(Kl)的密钥确认消息,所述共享密 钥(Kl)是设备B基于身份号A及设备B的本地密钥素材而导出的。在步骤330,设备A发 现它们没有生成相同的密钥。设备A删除了一个最低有效比特(比如整数除以2)以获得密 钥K2。在步骤330,设备A发送新的密钥确认消息。以这种方式,A和B交换密钥确认消息 340直到它们在步骤350达到相同的密钥。在步骤350,设备A向设备B发送密钥确认消息。 设备B能够验证它们已达到相同的密钥。在步骤360,设备B发送对此的确认,这可以是经 认证的消息或密钥确认消息等等。在步骤370,设备A发送使用现今相等的共享密钥加密 (比如说使用AES)和/或认证(比如说使用HMAC)的消息Ml。
[0095] 以下算法给出了这个办法的可能的实现,S卩,由设备A和设备B运行的用于相互的 密钥商定和会话密钥导出的协议。
[0096] 该协议去除了用比如本文中描述的密钥共享算法生成的比特串的多个比特并且 实施认证握手,例如,挑战-响应。认证握手可以包括密钥确认消息。如果认证握手没有成 功,则去除几个额外的比特,并以此类推直到握手被成功实施或者密钥变得太短。协议能够 以多种方式被修改,例如,通过取决于迭代而去除可变数目的比特或总是要求固定数目的 步级,使得观察协议的执行的偷听者不会获取与A和B之间共享的共有密钥的长度有关的 任何信息。这个办法具有的优点是,它确保了共享密钥尽可能的长,然而它具有的潜在缺点 是,它要求多次交换以便商定共有密钥。另一方面,对于大多数应用这不会是个大问题,因 为对于大多数设备对而言,密钥将会是相等的或仅有几个比特不同,且只有一设备对会得 到有相对大量的不同最低有效比特的密钥。这是从所生成的密钥的特性得出的。
[0097] 存在其他方式来为两个设备得到相同的密钥,例如,如在配置申请中描述的。
[0098] 贯穿图4a_4f地使用以下约定:执行归约结果的网络设备是第一网络设备,贡献 其身份号的网络设备是第二网络设备,/代表密钥长度,〃代表多项式的次数(有时在文本 中写成a),代表与对应于第一网络设备的多项式的次数的项相对应的系数,C是 第一网络设备的身份号,是第二网络设备的身份号,#是公共模数。符号^代表括 号中的数字对^取模的模归约。符号》C代表右移c比特,S卩,除以2'下舍入到下一个整 数。
[0099] 词语input、output、for、endfor、return是在计算机算法领域中标准的。
[0100] 在该示例中使用有利的公共模数~t。该特别的模数允许特别的快 速且简洁的归约。可以针对不同的模数采用这些算法,尤其是在公共模数等于2的指数幂 )减去(正)偏移时,其中所述指数是密钥长度的倍数,并且其中所述偏移的绝对 值小于2的密钥长度次幂。当偏移不是1而是更大时,比如说3,最高有效部分被加到最低 有效部分偏移次数(offsettimes)而不是一次。如果偏移是被加上而不是减去,则最高有 效部分被加到最低有效部分。
[0101] 作为示例,人们可以取〃 =2并且七128。对于更高的安全性,可以使用更大的值, 比如说0 =4或6。
[0102] 图4a以所谓的伪码形式图示了可以如何获得归约结果。
[0103] 第3行和第5行示出了在由系数1???给出的多项式的项上的迭代。在每个迭代 中,中间值"key"与新系数相乘。这种对密钥轉评估的实现使用所谓 的霍纳法。
[0104]图4b的算法类似于图4a的算法,但是利用了所使用的模数的特别形式。通过
并且这么做给出了近似。然而尤相比于N来说非常小,所以因没有进行二次归约而引入误 差的或然率较小。取而代之地,人们还可以在步骤7之后进行模N归约(以相同的技法),并 且只有那时才应用步骤8。
[0105] 如果汉=-偏移,则会获得类似的优化。其中偏移相比于N来说小,比如说 大于0但是小于密钥模数(2勹。
[0106] 图4c避免了不必要的计算。通过不实施对最终结果没有影响或影响很小的中间 计算,可以改进图4a和图4b的归约算法的性能。在图4c中,利用了以下事实:第一迭代和 最后迭代要求更少的计算。在这种设计中,还使用以下表达式& +K巧消除了
归约是如之前一样的简单相加,但是总是用b比特。图4a、图4b和图4c的算法不具有以下 特征:身份号被用在与系数的另外部分和最低有效部分的第一和第二乘法中,所述另外部 分和最低有效部分一起形成了比完整系数小的部分,即,多项式的某个部分未被使用。归约 算法4a-4c被包括以便与算法4d-4f比较。
[0109] 图4d降低了数据存储要求。在生成密钥时并不要求多项式系数的全部比特。该 算法需要仅存储将被使用的那些比特。这个办法还导致所要求的计算的数目的减少。符号 代表冲最高有效字。符号1??代表冲最低有效字。字是密钥长度(A)个比特 宽的。
[0110] 图4d在第3行和第10行示出了在多项式、的项上的迭代。在该具体实施例 中,每个迭代与多项式的具体项相关联;迭代依次与次数至1相关联。与次数〃和0 相对应的迭代是在循环外部实施的。
[0111] 第5行示出了在身份号(/r)与从多项式的表示获得的具体项的系数的最低有效 部分之间的第一乘法。系数的最低有效部分由所述具体项的系数的密钥长度个最低有效比 特形成。
[0112] 第4行示出了在身份号与从多项式的表示获得的具体项的系数的另外部分之间 的第二乘法,所述系数的另外部分由所述具体项的系数的不同于所述密钥长度个最低有效 比特的比特形成。
[0113] 注意,对于大多数迭代而言,所述另外部分和所述最低有效部分一起形成比在多 项式的具体项的系数中严格地更少的比特;事实上它们具有比多项式的具体项的系数更少 的字。未被使用的系数也不需要被存储。
[0114] 注意,在每个迭代中,最低有效部分正好是有密钥长度个比特的一个字。然而所述 另外部分中的比特数在循环中减少,即,随着次数而减少。
[0115] 所述另外部分中的字数是次数(j)加上误差控制数这里误差控制数被挑 选为1。误差控制数确定了归约算法的结果与图4a的算法的结果完全相同的可能性。为了 降低在第一网络设备和第二网络设备之间得到不相等结果的概率,可以增大误差控制数, 比如说增大到2。更大的值是可能的,然而概率随着误差控制数而指数地降低。
[0116] 该算法进一步利用了以下事实:并不是相乘的KMsX#的所有部分都对密钥的 最终结果做出贡献。一些部分具有非常微小的效果(由于进位(carry)),但是这些误差在共 享密钥的生成期间能够被校正,如在图2和图3中说明的。
[0117] 图4e如图4d的算法一样也尝试降低数据存储要求。尽管这种设计必须存储图4d 的算法并不要求的一些额外比特,但它是有利的,因为要求更少的中间计算,所以实现将会 更快。
[0118] 在第4行,获得另外的部分,并且在第5行示出了第二乘法。在第6行实施与在前 次迭代中已在引入的最低有效部分的第一乘法。在第5行,实施第二乘法。
[0119] 图4d的优化需要在每个迭代中从乂Afi跟踪正在使用的比特的量,并且要求额外 的指针管理。图4e的算法减小了对管理存储器的需要。这种优化在存储器方面以及在时 钟周期的数量方面更高效。
[0120] 图4f图示了另外的归约算法,其要求对系数的预计算步骤。该另外的归约算法既 具有低数据存储要求,又比图4e的算法更快速。一份建钥素材如下地生成:
因此每个:Il|具有特殊形式,这使得这个办法更快速,因为选择MSB和LSB的指令可 被跳过。于是,希望生成与第二网络设备的密钥的网络设备々可以将密钥计算为:
[0121] 这种变换具有的效果是,在中,具体项/(?的系数的最低有效部分和所述 另外部分被表示在单个比特串中彼此相邻。通常,最低有效部分和最高有效部分被多个中 间字彼此分隔开,随着次数越低,该中间部分越大。由于该变换,可以在单个步骤中实施第 一乘法和第二乘法。
[0122] 在图4f中使用的系数已按照这种方式被变换。因此,第3行中的乘法一起实施了 第一乘法和第二乘法。注意,优选地由TTP进行该变换,并且网络设备将这些变换后的系数 存储在本地密钥素材存储装置中。
[0123] 下表给出了对后面的归约算法的相对优势的指示。在闪存和针对动态存储器而用 的RAM中实现这些算法。以CPU周期来测量执行时间。用于运行测试的配置是:a=6,b=32, 以及32-比特CPU(ARMCortex-M3)。图4a和图4b的算法比以下给出的示例相对更差。
[0124] 图5再次以流程图的形式图示了用于从多项式和第二网络设备的身份号确定与 第二网络设备共享的有密钥长度(A)个比特的共享密码密钥的方法,所述多项式具有多个 项,每个项与不同的次数和系数相关联。
[0125] 在步骤510,针对第一网络设备以电子形式存储本地密钥素材,所述本地密钥素材 包括多项式的表示以用于由第一网络设备进行的稍后的评估。在步骤520,获得第二网络 设备的身份号,第二网络设备与第一网络设备不同。在步骤530,根据归约算法对
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1