对称迭代块编码方法和相应设备技术

技术编号:12984235 阅读:71 留言:0更新日期:2016-03-04 04:26
对称迭代块编码方法和相应设备,包括预先确定的块的预先确定的数据字与预先确定的轮密钥的预先确定的数据字的按位XOR关联,以及所述预先确定的数据字与至少一个其它预先确定的数据字的按位XOR关联。

【技术实现步骤摘要】

本专利技术涉及对称迭代块编码方法和相应设备
技术介绍
诸如高级加密标准(Advanced Encryption Standard(AES))的现代的块编码方法 被设计为迭代的块编码。这意味着,对输入的处理包括被等同构造的多轮(Runde)。在此, 要加密的数据被细分成固定长度的各个块,这些块然后借助于通过密钥确定的变换被映射 到加密的值上。由此形成的密文块同样具有固定的长度。 块编码在此是将明文映射到密钥文上的函数。该函数对每个可能的密钥来说是单 射的,从而存在对每个密钥文重新计算明文的解密函数。 极大的兴趣在此在于选择块编码和密钥。对于确定的密码方法来说在此可行的 是,通过在实施相应密码算法时观察密码设备来找到所观察的数据和所使用的密钥之间的 相关性。由此可以推断出所使用的密钥,所述推断最终可以导致损害密码方法。 例如通过诸如所谓的差分功率分析(Differential Power Analysis)的侧通道攻 击可能的是,通过测量微处理器在密码计算期间的能量消耗来推断出所实施的运算以及因 此推断出所使用的密钥。 对抗这种侧通道攻击已经提出了对抗措施,这些对抗措施可以被划分成下面三 组: 单元层上的对抗措施,即改变微处理器的逻辑门或模拟部件的实现,以便如此影响电 子电路的物理特性,使得关于能量消耗的信息对侧通道攻击来说是不能测量的或仅能困难 地测量。 将密码算法的逻辑实现改变到标准CMOS单元上,所述CMOS单元尝试隐藏或掩蔽 为了物理分析所需的关于能量消耗的信息,以便由此阻止对算法的运行时间的分析。
技术实现思路
根据独立权利要求1的根据本专利技术的方法以及根据独立权利要求14的根据本 专利技术的设备具有这样的优点:在以硬件--例如以专用集成电路(Aplication Specific Integrated Circuit (ASIC))或现场可编程门阵列(Field Programmable Gate Array (FPGA) 一一实现的情况下需要比较少的处理器面积并且在作为软件实现在标准CMOS单元 上的情况下关于计算时间和存储器消耗提出更低的要求。由此实现提供防止侧通道攻击的 足够保护的有益的解决方案。 通过在从属权利要求中提出的措施,在独立的方法权利要求中说明的方法的有利 扩展方案和改进方式是可能的。 特别有利的是,迭代块编码方法的仅第一轮和最后一轮包括所述块与至少一个其 它字节的按位X0R关联。这在以微处理器实现的情况下节省面积以及在以软件实现的情况 下节省计算时间和存储器空间。 特别有利的是,针对多个从所述按位X0R关联所获得的字节从替换盒中确定多个 值。由此改进对抗侧通道攻击的对抗措施,其方式是加入尽可能多的或者甚至所有的密钥 候选(即字节的所有可能值)用于计算。由此困难的是,将所测量的能耗与正确的密钥关联。 所计算的值中的每个由此追溯到迭代块编码方法的可能密钥。由此,所有借助于侧通道攻 击获得的密钥是可信的。因此基本上不可能从多个可信的密钥中识别正确的密钥。 优选针对所述字节中的至少两个相继进行按位X0R关联的确定和从替换盒中确 定值。在以软件实现的情况下一一在该实现中不能任意并行地计算,确定正确的密钥因此 仍是基本上不可能的,因为对于每一轮相继计算所有识别为可信的密钥,其中可信密钥中 的哪个是正确的密钥保持为不清楚的。 特别有利的是,针对至少两个值基本上同时进行对映射替换盒的表的存储器访 问。因此,对于以软件实现的解决方案来说通过观察将处理器与存储器连接的数据总线的 能耗也不能得到关于正确的密钥的可靠结论,因为从所有包含在存储器访问中的数据仅能 推断出可信的密钥。 特别有利的是,针对所述字节中的至少两个基本上同时进行按位X0R关联的确定 或从替换盒中确定值。因此,在以ASIC或FPGA实现的情况下从ASIC或FPGA的能耗中不 能得到关于能耗分配给密钥的可靠的结论。【附图说明】 本专利技术的实施例在附图中示出并且在下面的描述中进一步阐述。 其中: 图1示出了集成电路的一部分, 图2示出了流程图, 图3示意性示出了电路的一部分,以及 图4不出了流程图。【具体实施方式】 下面描述该对称迭代编码的示例。这些示例包括预先确定的数据字与密钥的按 位X0R关联以及该预先确定的数据字与至少一个另外的密钥的至少一个另外的按位X0R关 联。 此外,这些示例包括根据替换盒(S-Box)进行的非线性的替换运算。该非线性替 换运算例如是一个数据字到另一相同长度的数据字上的映射。例如该S-Box根据高级加密 标准来构造。可替代地,也可以使用根据PRESENT的块编码方法的S-Box。同样可以使用诸 如Rijndael S-Box的每个其它适用于对称迭代块编码方法的S-Box。 下面借助于AES来描述对称迭代编码的示例。在此修改AES流程以便根据S-Box 实施另外的X0R关联和映射。 该实现要么借助于ASIC或FPGA形式的硬件、要么作为软件来进行。相应地,下面 提到的块和表以及信号路径要么映射在硬件中、要么实现为软件。 AES允许例如128位、192位和256位的预先确定的密钥和块长度。在示例中使用 具有256位长度的用户密钥的AES 256。 在开始时,要加密的明文被写入到上面提到长度的块中,必要时更长的明文被细 分成多个要相继处理的明文块。每个块与上面提到的预先确定的数据字相对应并且首先写 入到具有四行的二维表中,该表的单元分别为一个字节大。对于256位长的块来说例如产 生具有四行和八列的表。 每个块经历相继确定的变换。下面仅概述这些变换,因为这些细节从AES标准中 已知。 借助于AES的加密在此通过实施密钥扩展、首轮(Vorrunde)、多个加密轮和结 束轮来进行。在此使用四种变换:字节替换(SubBytes)、行移位(ShiftRows)、列混合 (MixColumns)和轮密钥加(AddRoundKey)。 该流程和变换要么实现为软件代码、要么以硬件形式在ASIC和FPGA中实现。 AES在变换中将扩展的原始密钥的不同部分使用到块上。这些不同的部分在下面 称为轮密钥。轮的数量变化并且在AES的情况下仅取决于密钥长度。对AES 256来说在块 长度为256的情况下例如执行14轮。 扩展的原始密钥在从用户密钥进行的密钥扩展中通过扩展到匹配的长度来确定。 该扩展的原始密钥被如此确定,使得每个轮密钥在此具有与块一样的长度。因此,每个轮密 钥在AES 256的情况下是256位长。 在密钥扩展之后进行首轮,在该首轮中初次实施轮密钥加变换。该轮密钥加变换 在首轮中包含块和第一轮密钥之间的按位X0R关联。这意味着,预先确定的数据字与密钥 按位X0R关联。在此,也可以相继将块的每个字节与第一轮密钥的相应字节X0R关联。在 这种情况下实施每个字节的按位X0R关联。 附加地,不同于通常的AES编码方法,实施块与另外的数据字的至少一次另外的 按位X0R关联,其中所述另外的数据字的长度与第一轮密钥相同。所述另外的数据字的每 个字节优选与第一轮密钥的相应字节不同。多个这种另外的数据字在另外的按位X0R关联 中优选应用到预先确定的数据字上。使用越多的其它数据字,就提供越多的并行的或相继 运行的变换。 例如可本文档来自技高网...

【技术保护点】
对称迭代块编码方法,其包括预先确定的块的预先确定的数据字与预先确定的轮密钥的预先确定的数据字的按位XOR关联,以及所述预先确定的数据字与至少一个其它预先确定的数据字的按位XOR关联。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:P杜普利斯S莱热
申请(专利权)人:罗伯特·博世有限公司
类型:发明
国别省市:德国;DE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1