用于生成比特向量的方法

文档序号:7685803阅读:146来源:国知局
专利名称:用于生成比特向量的方法
技术领域
本发明涉及一种用于生成比特向量的方法以及用于实施该方法的电路装置。
背景技术
密码设备和密码算法容易遭受攻击,其中应该通过其来操纵或读出受保护的数据。在当今常用的加密方法中比如“advanced encryption standard,先进加密标准” AES 中使用密钥,其由于具有1 和更多比特的密钥长度甚至在采用快速计算技术的情况下也不能通过“尝试”(所谓的“蛮力”攻击)来确定。攻击者因此还检查一种实施的副效应,如电流耗用的时间变化曲线、在加密操作时电路的时长或电磁辐射。因为攻击并不是直接针对函数,所以把这种攻击称作侧信道攻击。这种侧信道攻击(side channel attacks)利用了在设备中密码系统的的物理实施。在此该控制设备利用密码函数在实施密码算法时被观测,以找到在所观测的数据与密钥假设之间的关联。已知有许多侧信道攻击,如其例如在Mangard、Oswald和Popp的出版物在 "Power Analysis Attacks (功率分析攻击)” (Springer 2007)中所述的一样。尤其利用 "differential power analysis (差分功率分析)”(DPA)在实际中能够实施对AES密钥的成功攻击。其中在密码计算期间微处理器的电流消耗被记录,并通过静态方法把电流耗用的痕迹与假设相比较。在已知的使得DPA变得困难的方法中,其介入算法本身。在此在掩蔽时利用随机变化的操作数来实施操作,并在结果中然后再次计算出该随机值,这意味着,这种随机并不影响结果。另一可能性是所谓的隐藏,其中通过相应的低-高过渡来尝试对高-低过渡进行补偿。在文献US 6 510 518 Bl中公开了用于所谓智能卡的一种密码方法以及其他的密码逻辑系统。在该文献中描述了一种采用密钥的方法,以便用密码方式处理消息。在此所接收的消息在硬件单元中被处理,其中实施了多个子操作。每个子操作都把输入通过中间级传输给输出,其中实施了一定数量的状态变换,该状态变换的数量又与要处理的消息以及所使用的密钥无关。文献US 6 327 661 Bl描述了用于保护密码系统以防止外部攻击的一种方法。在此降低了可用信息的量。为此在密码处理时记录不可预测的数据或信息。其描述了采用不同技术、诸如降低信噪比的实施。所介绍的技术可以以硬件或软件来实现,可以采用数字和模拟技术的组合,并且可以在许多密码装置中被应用。

发明内容
在此背景下,本发明推荐了具有权利要求1所述特征的用于生成比特向量的方法以及根据权利要求8所述的用于生成比特向量的电路装置。实施由从属权利要求、说明书和附图得到。与现有技术相反,所推荐的方法并不介入算法,并从而可以应用于任意的密码方法。另外,对附加硬件和处理时间具有较低的要求。所介绍的方法不仅适用于加密,而且适用于解密。在此可以生成掩码备用。其可以分别针对多个密码操作来应用。因此掩码生成并不降低操作的效率,因此该方法适合作为防护边信道攻击的措施。在一个实施中,从而设置了一种电路装置,其用于由预给定的输入信号来生成比特向量(掩码),以掩蔽密码操作的至少一个密钥和/或数据(纯文本、密文),以保护所述的密码操作以防边信道攻击,诸如DPA (differential power analysis,差分功率分析)攻击。在此该电路装置具有至少两个如下装置所述装置分别由m个相同构造并且相同控制的、各具有η个相关的(也即确定状态自动机状态的)存储器单元的状态自动机构成,其中 m=2n。所述m个状态自动机在掩码生成开始时或者在比特向量生成开始时利用各一个另外的起始状态而被初始化,其中在一装置中的所有这些状态自动机以相同方式与相同输入信号连接,并且使用每个装置的至少一个输出信号来形成所述的比特向量。对于这两个装置, 值m以及从而η也可以是不同的。也可以由第一计数器来输入计数器比特。该计数器对直到现在为止所提供的输入向量的数量进行计数。在另一扩展中,在一装置中所使用的m个状态自动机被构造为使得在利用m个不同的状态来初始化所有这些状态自动机时保证了所有的状态自动机根据任意的输入信号而总是具有不同的状态。另外还可以规定,由输入信号来形成切换信号y。该切换信号尤其用于改变该状态自动机的传输函数,使得根据输入信号而在两个简单的线性传输函数之间进行切换。所述切换应该在不同的装置中尽可能不同地进行。通过输入信号的附加的奇偶校验位,保证了在状态自动机中至少一次地在不同的线性函数之间被切换,并从而形成了整体非线性的传输函数。为了能够不可计算地形成所产生的比特向量,非线性传输函数是必要的。否则“蛮力”攻击可能更容易。另外还可以规定,该切换信号y加权地输入第二计数器值ζ中,并且该加权的大小按照装置和第一计数器值而变化。在该方法的一个扩展中,根据该第二计数器值ζ在一个装置中来进行状态自动机 (状态)内容的交换。所述交换可以是在该装置中状态的旋转(Rotation)。对于不同的装置,该计数器值ζ并且从而所述旋转是不同的,因为该切换值y以及加权也是不同的。在该电路装置的一种可能的扩展中,状态自动机的存储器单元由两部分(主部分/ 从部分(Master/Slaves))来构造,这两部分相继地被设置,并且这两部分不仅是单独可擦除的(复位值任意0或1,但对于所有的主部分及从部分都是一致的),而且相互无关地记录数据。为了交换状态,它们典型地被控制为使得首先该主部分被擦除,然后该主部分接收所待处理的(来自另一状态的)输入信息,之后该从部分被擦除,并接着该从部分接收该主部分的内容。因为否则在简单交换(或者旋转)的情况下在交换时的电流消耗与在交换时有多少个0-1和1-0过渡有关,因此该方法是必要的。在所推荐的方法中,在一个装置中在主部分擦除到值0时正好进行m*n/2个1-0过渡,并且在加载新值时正好进行m*n/2个0-1过渡。过渡的数量分别与相应的状态无关。
因此功率耗用总是相同的,并从而是不可观测的以及不可攻击的。为此,状态的旋转以及交换是必要的,从而所生成比特向量的各个比特尽可能平均地与起始状态的所有 n*m个比特或其中的至少许多相关。另外该比特向量(掩码)可以由不同装置的不同状态自动机的不同输出的逻辑运算来形成。此外所述逻辑运算操作的操作数可以平衡地、也即利用相同的导线长度和/或电容而被输送到该逻辑运算元件。在该电路装置以及该方法的另一可能的实施中,该逻辑运算操作部分地依次来实施,并且此外在每个子操作之后来交换状态自动机的状态,其中所述交换通过同时单独擦除以及之后同时写所有存储器单元的主以及从单元来进行。另外还可以给定,不与逻辑运算元件相连接的所有状态自动机的输出与负载元件相连接,并且这些负载元件具有与输出上的、与逻辑运算元件相连的负载相同的电特性(比如电容值)。此外也可以在状态的交换操作期间并且还在输入信号的处理期间把输送给逻辑运算元件以及负载元件的信号全部设置为一个相同的固定值(0或1)。在又另一实施中,用于生成比特向量的输入信号至少部分地是不可事先预测的 (随机的)值和/或与计数器有关。然后由输入信号来生成奇偶校验位,奇偶校验位在可预给定数量的输入比特之后被添加到该信号序列中。在另一实施中,在两个奇偶校验位之间的输入比特的数量是奇数,并且该奇偶校验位本身是奇数,也即在有关输入比特以及所属奇偶校验位中“一”的和是奇数。所介绍的电路装置可以被构造为采用了多个装置,其分别具有m=2n个状态自动机,状态自动机分别具有η个相关存储器单元,并且不同的装置具有相同的或不同的起始状态、和/或与相同的或不同的装置和/或输入信号的反相相连接。在该电路装置的另一可能的实施方案中,规定采用至少一个装置,所述至少一个装置分别具有m=2n个状态自动机,状态自动机分别具有η个相关存储器单元;并采用至少一个装置,所述至少一个装置分别具有Ρ=〗·1个状态自动机,状态自动机分别具有q个相关存储器单元。所有这P个状态自动机分别具有另一起始状态,并且或者与至少一个相同的输入信号间接相接、或者如所述m个状态自动机一样地直接连接。但也可以采用其他任意的输入信号。为了针对所生成的比特向量针对每个单个比特来保证相同的1和0的概率,一个装置的比特与至少第二装置的比特进行逻辑运算。该逻辑运算操作在此应该有利地是线性的(异或,等价),这与EXOR或EXNOR同义。本发明的其他优点和扩展由说明书和附图得到。应认为,前述的以及在下文中还要解释的特征不仅可以以相应所述的组合、而且还可以以其他的组合或者单独地来使用,而不脱离本发明的范畴。


图1示出了该电路装置的一个实施方案。图2示出了掩码的一种可能。图3示出了掩码的另一种可能。
图4示出了一个非线性多输入移位寄存器。图5示出了状态过渡。图6示出了完整的状态自动机组。图7示出了比特发生器的输入级。图8示出了奇偶校验位的生成与填充。
具体实施例方式本发明借助附图中的实施方案来示意性示出,并在下文中参考附图来详细描述。图1示意性示出了根据本发明的电路装置的一个实施方案,其整体用参考数字 100来表示。该电路装置100用于由输入信号102来形成具有128比特的比特向量。为此, 该电路装置100包含有四个装置104、106、108和110,其分别包含有十六个变换元件ΤΕ_0、
TE_1、TE_2.....TE_15。出于清晰目的,在图1中仅分别示出了十六个变换元件ΤΕ_0、TE_1、
TE_2.....TE_15中的四个。在该实施中,该电路装置100被构造为使得每个装置104、106、
108和110的每个变换元件TE_0、TE_1、TE_2.....TE_15都被输送了同一输入数据或同一
输入信号102。重要的是,在每个装置104、106、108和110中所有的变换元件ΤΕ_0、TE_1、 TE_2.....TE_15都同样地与该输入信号相连接,但不同的装置可以相互不同。变换元件TE_0、TE_1、TE_2.....TE_15由输送给它的输入信号102来形成一个当
前没有详细说明的输出信号。该输出信号被组合,并由此获得具有256比特的签名S 120 (Signatur)0变换元件TE_0、TE_1、TE_2、. . .、TE_15分别具有一个状态自动机ZA,该状态自动机的状态信息比如以预给定宽度的数字数据字的形式被存储。比如该状态自动机ZA 可以具有4比特的存储容量,从而可实现总共16个不同的状态。各个装置104、106、108、110的状态自动机ZA同样地来构造。同样意味着每个状态自动机ZA如另一同样的状态自动机ZA —样地从相同输入信号102以及相同初始状态出发在后继处理周期中采用同一后继状态。另外还规定,每个状态自动机ZA始终分别具有与相应装置104、106、108或110的所有其他状态自动机ZA不同的状态。由此使得DPA攻击变得困难,其中DPA攻击根据电流耗用和/或功率耗用的分析或者由干扰辐射来尝试推断该电路装置100或者各个变换元件 TE_0、TE_1、TE_2、. . .、TE_15 的内部处理状态。如果所设置的变换元件TE_0、TE_1、TE_2.....TE_15的数量等于状态自动机ZA
的最大可能的不同状态的数量,在该情况中为十六,那么这是有利的。由此始终、也即在每个处理周期中每个理论上可能的状态都出现在正好一个状态自动机ZA中,从而对外、也即对于实施DPA攻击的可能攻击者分别仅“可看到”全部十六个可能状态的一个组合。在随后的一个处理周期中,其中单个的状态自动机ZA虽然对应于预给定的规则来分别改变其状态,整体上在十六个状态自动机ZA的每一个中又存在十六个可能状态中的正好一个,从而对外又同时“可看到”全部十六个状态。这导致可能的攻击者不能根据在电路装置100的通常实现中所发出的相应电磁
辐射、或者根据该电路装置100的电功率耗用来推断在该变换元件TE_0、TE_1、TE_2.....
TE_15中内部信号处理的状态。在所有部件理想对称布置的情况下,电功率耗用始终是恒定的,使得所辐射的电磁场在相继的处理周期之间的状态变换时相应地不经历明显的变化。由该签名S 120通过在块122中的线性逻辑运算来生成具有1 比特的比特向量 130。该线性逻辑运算比如可以是EXOR或EXNOR逻辑运算。所推荐的方法以及所示的电路装置100采用了所谓的非线性签名生成。在图2中示出了一种掩码可能性。在此示出了掩码生成器10,其被输入了直至64个(随机的)输入比特(输入12)。可以选择4*16个比特值(包含随机性),其中每当必要就立即采用新的值。 在另一输入14上输入了 1 比特的明文。另外该图还示出了用于旋转一些比特的块16、密钥18 (key 1)、用于根据AES加密/解密的块20、第一 EXOR元件22和第二 EXOR元件24。 在输出26上然后输出1 比特的密文。从而加密操作的输入和输出通过比特方式的EXOR逻辑运算而被掩蔽。在此也可以针对输入和输出来分别生成并采用不同的掩码。图3示出了与图2类似的一个装置,其中在该情况中把掩码30与密钥18进行逻
辑运算。在该状态自动机中所使用的比特发生器基于的是非线性多输入移位寄存器 (NLMISR),其采用了多项式x4+x3+l和x4+x+l。该状态过渡在表格1中给出。在此Xi表示该 NLMISR的状态,i (k)表示NLMISR输入比特,y表示输入,其用于在多项式之间进行切换;
表格1。在图4中示出了一个4比特NLMISR。根据输入y来选择多项式x4+x3+l或x4+x+l。 从而十六个NLMISR级相组合,以形成在图6中所示的一个模块。在图5中示出了所使用的状态自动机的状态过渡。实线箭头表示i(2)=0的过渡, 其中在该情况中也可以进行朝右下对角线的直接过渡,如右侧通过箭头180所示。虚线箭头代表 U2)=l,其中 i(0)= i(l)= i(3)=0。在图6中示出了一个完整的状态自动机组,其形成了一个模块200。该模块具有4 比特输入A (3:0)、四个切换值y(i)和一个64比特输出q。q的比特通过该NLMISR电路的触发器来驱动。该模块200可以是图1的装置104、106、108或110之一。图7示出了所推荐的比特发生器的输入级。为了避免对不同的输入进行补偿,在该输入级中采用了计数器300。为了避免恒定的输入,在输入级中加入了用于奇校验的发生器302。该发生器302为比如5个相继输入的 4元组屯(3:0),...,di+3(3:0)来计算奇-奇偶校验向量p(3:0)。该奇偶校验向量p(3:0) 然后被用作该函数g 304的输入。如果cf (3:0)表示该函数g的一个4比特输入,那么就对应于表格2来计算级i 的NLMISR级的多项式切换的值y (i)。表格2示出了切换比特
权利要求
1.一种用于生成比特向量(130)的方法,其中采用了分别相同构造的状态自动机(ZA) 的至少两个装置(104,106,108,110),在输入侧给它们输送输入信号(102),并根据其状态来分别生成输出信号,其中每个状态自动机(ZA)始终具有与一装置(104,106,108,110)的其他状态自动机(ZA)不相同的状态,其中该比特向量(130)通过各个不同装置(104,106, 108,110)的状态自动机(ZA)的输出信号的线性的逻辑运算(122)来生成。
2.根据权利要求1所述的方法,其中进行状态自动机(ZA)的状态的旋转。
3.根据权利要求2所述的方法,其中在通过擦除以及后继的写入来进行所述旋转时, 电流消耗与在前的和后继的状态无关。
4.根据权利要求1至3之一所述的方法,其中给相应装置(104,106,108,110)的状态自动机(ZA)输送同一输入信号(102)。
5.根据权利要求4所述的方法,其中输送第一计数器值,并且不同的装置(104,106, 108,110)以不同的方式来处理所述输入信号和计数器信号。
6.根据权利要求1至5之一所述的方法,其中由所述输入信号(102)来形成切换信号, 并且这些状态自动机能够根据该切换信号来达到另一后继状态,其中能够为不同的装置而不同地形成所述切换信号。
7.根据权利要求1至6之一所述的方法,其中该比特向量(130)由不同装置(104,106, 108,110)的不同状态自动机(ZA)的不同输出的逻辑运算而形成。
8.一种用于生成比特向量(130)的电路装置,其具有分别相同构造的状态自动机(ZA) 的至少两个装置(104,106,108,110),在输入侧分别给它们输送相同或不同的输入信号 (102),并根据其状态来分别生成输出信号,其中在一装置(104,106,108,110)中的每个状态自动机(ZA)始终具有与其他状态自动机(ZA)不相同的状态,其中设置有线性逻辑运算元件(120)用于对优选不同装置的状态自动机(ZA)的输出信号进行逻辑运算,以生成该比特向量(130)。
9.根据权利要求7或8所述的电路装置,其中所述状态自动机(ZA)的存储器单元由两部分(主部分/从部分)来构造,这两部分能够相互无关地被擦除和写入。
10.根据权利要求7至9之一所述的电路装置,所述电路装置被构造为没有与逻辑运算元件相连接的所有状态自动机(ZA)的输出都与负载元件相连接。
全文摘要
本发明涉及一种用于生成比特向量的方法和电路装置。在此采用了分别相同构造的状态自动机的至少两个装置,在输入侧给它们输送输入信号,并根据其状态来分别生成输出信号,其中每个状态自动机始终具有与一装置的其他状态自动机不相同的状态,其中该比特向量通过各个不同装置的状态自动机的输出信号的线性逻辑运算而生成。
文档编号H04L9/28GK102271038SQ201110148950
公开日2011年12月7日 申请日期2011年6月3日 优先权日2010年6月7日
发明者E.博伊尔 申请人:罗伯特·博世有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1