《用于产生单向函数的方法.pdf》由会员分享,可在线阅读,更多相关《用于产生单向函数的方法.pdf(16页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104063202A43申请公布日20140924CN104063202A21申请号201410107208322申请日20140321102013205166220130322DEG06F7/5820060171申请人罗伯特博世有限公司地址德国斯图加特72发明人E贝尔K达姆74专利代理机构中国专利代理香港有限公司72001代理人臧永杰胡莉莉54发明名称用于产生单向函数的方法57摘要本发明涉及用于产生单向函数的方法。提出用于产生单向函数的方法和实施该单向函数的电路装置。在该方法中,对两个操作数进行运算,将该运算的结果划分为两个部分结果,将这两个部分结果相互比较并且依据该比较将。
2、两个部分结果相互逻辑关联。30优先权数据51INTCL权利要求书1页说明书7页附图7页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书7页附图7页10申请公布号CN104063202ACN104063202A1/1页21用于产生用于密码功能的单向函数(60)的方法,其中对两个操作数进行运算,将该运算的结果划分为两个部分结果,将这两个部分结果相互比较并且依据该比较将两个部分结果相互逻辑关联。2根据权利要求1所述的方法,其中作为运算执行与至少两个操作数的乘法。3根据权利要求2所述的方法,其中对于两个操作数都为0的情况输出确定的值。4根据权利要求1至3之一所述的方法,其中对于第一。
3、操作数为0的情况,根据预先给定的规定仅修改第二操作数的值,并且选择该修改为,使得当第二操作数被改变使得采用所有可能的值时,对于每个任意的第二操作数出现所有可能的值。5根据权利要求1至4之一所述的方法,其中用至少两个操作数执行运算,其中对于第一操作数的任意固定的值能够选择第二操作数为,使得能够达到每个可能的结果值。6根据权利要求1至5之一所述的方法,其中创建代表单向函数的表,并且将该表存储在存储装置中。7根据权利要求1至6之一所述的方法,其中借助电子电路装置来实施所述单向函数(60)。8根据权利要求1至7之一所述的方法,其中考虑操作数的弱点。9代表按照根据权利要求1至8之一的方法产生的单向函数的。
4、电路装置。10根据权利要求9所述的电路装置,其是组合的逻辑电路。权利要求书CN104063202A1/7页3用于产生单向函数的方法技术领域0001本发明涉及一种用于产生用于密码方法的单向函数的方法和一种电路装置。该电路装置尤其是用于实施或实现该单向函数。背景技术0002单向函数是能被“轻易”计算但是“难以”逆转的数学函数。密码单向函数被需要,由此攻击者不能或只能以也许不合理的耗费从所生成的数据中计算内部状态、所使用的输入数据或者先前输出的数据。这样的行动也称为回溯(BACKTRACKING)。0003对于这种单向函数,通常使用乘法、拉宾(RABIN)函数(X2MODN)、离散指数函数或散列函数。
5、。也可以采用无传递的乘法,如这例如在出版物US20100125728A1中所描述的。在此利用的是,乘法可以被简单地执行,但是反演运算或因子分解由于尤其是提供多种可能性而变得复杂。该多样性在未使用传递或者如在拉宾函数情况下那样使用模N函数时还被增加。0004在没有传递或模X的情况下单独乘法尤其是不为针对一些应用具有小比特宽度的操作数提供所要求的复杂性和非线性性。0005所提出的方法在产生随机输出比特序列时被采用并且由此被用于生成随机数。称为随机元件的结果的随机数为很多应用所需要。为了产生随机数采用所谓的随机生成器。随机生成器是提供随机数序列的方法。随机数的决定性准则是生成的结果是否能被看作与早先。
6、的结果无关。0006为了产生随机的比特序列采用在输入输入比特序列的情况下提供随机输出比特序列的随机比特生成器(RANDOMBITGENERATOR)。0007例如对于密码方法来说随机数被需要。这些随机数被用于生成用于加密方法的密钥。对这样的密钥提出涉及随机特性的高要求。0008尤其是随机的量或程度、也就是每比特的熵应当是足够的。此外对于来自0,1的值的比特概率应当是同概率的。要注意的是,为此由已知的随机源生成的随机值大多不满足这些要求。因此需要附加的方法,其中这些方法被概括在概念“后处理”(“POSTPROCESSING”)下。对于这样的后处理典型地采用DRBG(DETERMINISTISCH。
7、ERRANDOMBITGENERATOR,确定性随机比特生成器),如这例如通过在2001年9月25日的BSIAIS31中的DASBUNDESAMTFRSICHERHEITINDERINFORMATIONSTECHNIKBSI,联邦局信息技术安全性中描述的那样。这样的生成器产生确定性的比特序列,但是该比特序列看起来是随机的。也将这样的生成器称为伪随机生成器。如果未知的种子(SEED)被用作伪随机序列的起始点,则该序列不允许是可预测的,即使人们知道该伪随机序列的已经输出的比特,但不知道种子。0009在此情况下,DRBG的特性被更准确地检查并且由国家标准技术局(NIST)在2007年3月的SPECI。
8、ALPAPERNISTSP80090中给出针对DRBG的建议。0010根据现有技术的后处理典型地通过弹性函数(RESILIENTFUNCTION)、线性反馈移说明书CN104063202A2/7页4位寄存器(LFSR)和多输入LFSR或MISR(MULTIPLEINPUTSIGNATUREREGISTER,多输入签名寄存器)加以实现。0011根据现有技术的方法要么非常费事,例如弹性函数,要么所述方法不精确地满足50比特概率,例如LFSR。上述两种方法此外不具有识别装置中例如由于误攻击而导致的错误。发明内容0012以此为背景提出一种具有权利要求1的特征的方法和一种根据权利要求9的电路装置。其它实。
9、施由从属权利要求和说明书得出。0013利用乘法的结果比特的上半部与下半部的逻辑关联以及由此与这两个部分的值关系以及具有值0的操作数的特殊函数有关的低位(NIEDERWERTIG)半部,可以获得均衡的分配表,但是该分配表也可以作为关于表值的ROM版本简单地借助组合电路实现。0014所提出的电路装置可以在用于产生随机输出比特序列的方法的范围中被用于实施单向函数,下面将讨论该方法。0015为此首先提出一种用于生成伪随机输出比特序列的方法,其中使用2N个分别相同构建的状态自动机的装置,其中这些状态自动机分别包括N个状态比特,其中每个状态自动机总是采取与该装置的其它状态自动机不同的状态,其中在输入侧向这。
10、些状态自动机分别输送相同的输入信号,并且这些状态自动机分别依据其状态而产生N个签名比特,这些签名比特一起形成签名比特序列,其中通过从该装置的所有状态自动机的签名比特序列中选择各个比特来产生随机输出比特序列。0016该方法例如利用用于用未知种子(SEED)生成随机输出比特序列的伪随机比特生成器来执行,该伪随机比特生成器包括2N个分别相同构建的状态自动机的装置,其中这些状态自动机分别包括N个状态比特,其中每一个总是采取与该装置的其它状态自动机不同的状态,其中在输入侧能够向这些状态自动机输送输入信号,并且这些状态自动机分别依据其状态而产生N个签名比特,这些签名比特一起形成签名比特序列,其中通过从该装。
11、置的所有状态自动机的签名比特序列中选择各个比特来产生随机输出比特序列。0017该方法与已知方法相比具有识别误攻击的可能性。此外提供了比LFSR更好的比特概率。但是该方法具有以下缺点可能出现冲突,也就是可能出现不同输入比特序列的相同输出序列。通过这样的冲突可能有利于攻击者或袭击者的攻击。此外在该方法情况下对所输出的输出信号的回溯可能比这里在下面提出的方法情况下更为简单。0018上述方法现在通过以下方式加以扩展,即输入被处理两次,而且这些输入一次直接进入状态机的装置(也称为COSSMA装置(COMPLETESETOFSTATEMACHINES,完整的状态机组),并且附加地与单向函数逻辑关联地进入。。
12、0019直接输入保证,在处理时不丢失熵并且第二次逻辑关联的输入有助于避免冲突,使得难以回溯(BACKTRACKING),也就是说难以计算出前任输出值,并且在种子(SEED)未知的情况下使得难以预告或预测未来的输出值。如果可以证明在与单向函数逻辑关联(VERKNPFUNG)的情况下不丢失熵并且冲突也不由此加强地出现,则也可以放弃直接输入。0020附加地,如果在处理最后的输入比特之后也还计算出奇偶性并且该奇偶性进入输出值中,则所有输入比特对输出值的影响可以被同等化。说明书CN104063202A3/7页50021本发明的其它优点和构型从说明书和附图中得到。0022不言而喻,上面提到以及下面还要阐述。
13、的特征不仅能以分别说明的组合,而且还能以其它组合或者单独地加以使用,而不脱离本发明的范围。附图说明0023图1示出单向函数。0024图2示出所提出的方法的实施布置。0025图3示出所描述的用于执行所述方法的设备的实施方式。0026图4示出状态自动机的装置。0027图5示出4比特状态自动机。0028图6示出状态过渡。0029图7示出DRBG输出级。具体实施方式0030本发明借助实施方式在附图中被示意性示出并在下面参照附图加以详尽描述。0031图1阐明具有输入半字节X和在此期间的输出Y的反馈作为输入参量的单向函数GXY。由此得到G的较高半字节180和G的较低半字节182,这些半字节经历修改184,。
14、从而获得结果186。0032如在图1中所示,单向函数通过两个操作数的乘法实现。该运算的结果典型地具有双倍比特宽度,在两个具有单倍比特宽度的部分结果中可以将该双倍比特宽度分为上比特和下比特。要注意,可能需要将双倍比特宽度化为单倍比特宽度。为此,两个部分结果的数值被相互比较并且根据比较结果不同地被逻辑关联。为此在该实施例中观察各具有4比特的操作数并且在将结果的下半字节和上半字节相互逻辑关联之前将两者相比较。对于一个或两个操作数等于0的情况,使用没有乘法的特殊运算。如果操作数为0,则另一个操作数作为负值产生,但是没有符号,并且将值2加到该值上。该负值与操作数的二进制补码对应,该二进制补码通过将所有比。
15、特求逆以及接着递增来实现。也可以计算出所得到的值,其方式是将该操作数的所有比特求逆并且将值3与之相加。这是递增与加上2的联合。在这些加法运算中不考虑传递。如果两个操作数是0,则输出所确定的值。为此在所示出的实施中使用值2。通过这些运算,在表1中对所有行和列实现了所有可能值的均匀分布。如果两个操作数不同于0,则从下部的4比特中减去较高的4比特并且或者添加1或者添加2,这根据低位的半字节是否大于较高位的半字节而定。在此对于操作数也使用在负值情况下的二进制补码表示。0033可以规定,对于第一操作数为0的情况,仅根据预先给定的规定修改第二操作数的值并且这样来选择该修改,使得当第二操作数被改变使得所有可。
16、能的值包括0在内都被采用时对于每个任意第二操作数出现所有可能的值包括0在内。0034表1是代表单向函数的结果表说明书CN104063202A4/7页6表1。0035通过从表1中可取得的该分配,保证每个输出出现16次。为此参照表2。该表2示出表1的变换的统计学,其方式是对每个值说明频度。表1的附加特性是在每一行和每一列中每个值恰好出现一次。表2。0036如果每单个结果比特在该变换之后通过布尔(BOOLESCH)等式表示,该布尔等式称为代数标准形式ANF并且由连接项AND的异或逻辑关联XOR组成,则该变换的复杂度可以被确定。0037表3总结地示出这些等式的分析结果并且是固定操作数的总结果的单比特函。
17、数的复杂度检查结果。操作数/比特MSBDMSB1CMSB2BLSBA所有4个比特(总计的)0简单4复杂4复杂4简单1复杂41复杂4复杂4复杂4简单1复杂42简单4简单4简单4简单4简单43复杂4复杂4复杂4复杂4复杂44复杂4复杂4简单4复杂4复杂45复杂4复杂4复杂4复杂4复杂46复杂4复杂4复杂4复杂4复杂47复杂4复杂4复杂4复杂4复杂48复杂4复杂4复杂4简单2复杂49复杂4复杂4简单4简单2复杂4A复杂4复杂4复杂4复杂4复杂4B复杂4复杂4复杂4复杂4复杂4C复杂4复杂4复杂4复杂4复杂4D复杂4复杂4简单4简单3复杂4E复杂4复杂4复杂4复杂4复杂4F简单4简单1简单4简单3简单。
18、4表3。0038在此,如果ANF包含至少两个分别具有至少两个变量的连接项,则将函数评估为复杂的,否则将该函数评估为简单的。数字原则上说明该函数总共取决于多少个变量。总之可以确定出,仅对固定的操作数0X2和0XF将每个比特函数本身分类为简单的。说明书CN104063202A5/7页70039但是所有4个比特的全体在任何情况下都取决于所有4个比特并且所有4个比特总的来说大致对总函数具有相同的影响。此外要注释的是,在所提到的两个操作数情况下存在要注意的弱点。该弱点例如是在操作数0X2和0XF情况下不复杂的函数。尤其是,当能排除在多重应用时这些操作数(0X2或0XF)以高于平均水平的数目出现时,如果单。
19、向函数被多次用于生成输出函数,则可以接受该弱点。0040根据图1的修改的选择原则上可以依据部分结果的不同特性来进行。这样的结果可能是A部分结果的十进制值的关系,如在图1中所示的,B部分结果的1的数目的关系,C在部分结果中的最大关联的1的数目的关系,D在部分结果中的最大关联的0的数目的关系。0041通过这种方式可以选择是否加上或减去部分结果,即是否添加一个值。所选择的逻辑关联运算由部分结果的特性彼此间的关系来选择。0042所说明的函数可以通过简单的方式实现为组合的电路,其方式是例如创建VHDL描述并且合成该VHDL描述。0043下面借助图2至7阐述单向函数在产生随机输出比特序列时的使用。0044。
20、如在图2中所示,在第一步骤10中基于64个输入比特分别产生4个输出比特S0,S1,S2,S3,这64个输入比特称为种子。该种子被预先给定并且例如可以是TRNG源的输出。在计算出4个输出比特之后,通过内建的增量器将该种子提高1,并且该被递增的种子被用于产生接着的4个输出比特。该行动一直继续,直到预先给定新的种子为止。从64比特的输入中首先在第一步骤中选择第一4个比特,并且直接应用于具有16个状态自动机14的状态自动机装置12。0045状态自动机装置的功能在图3,4和5中加以阐述。0046图3示出用于执行该方法的设备的结构,该设备总地用附图标记50表示。该图示作为输入示出被分成4比特的块的输入向量。
21、52、第一初始状态54,该第一初始状态将所述装置的内部计数器复位,所述内部计数器与输入向量52的值相关地起作用用于选择输出比特58。此外,该图示示出单向函数60、状态自动机的装置62(COSSMA),第二初始状态64作用于该装置,该第二初始状态或者在每次新处理输入向量52之前有效或者也在预先给定数目的输入向量52之后才确定在该装置62中存在的状态自动机的初始状态。由此在两次输入处理之后在装置62的输出端66处得到值。0047图4阐明状态自动机的装置,该装置总地用附图标记100表示并且也称为完整的状态自动机组(COSSMACOMPLETESETOFSTATEMACHINES)。由此图3示出与图2。
22、中的装置12对应的完整的状态自动机组。0048装置100具有4比特输入S0,S1,S2,S3和64比特输出102。输出102的比特通过状态自动机104的触发器驱动。0049图5示出用附图标记150表示并且被实施为4比特NLMISR(NONLINEARMULTIPLEINPUTSIGNATUREREGISTER,非线性多输入签名寄存器)的4比特状态自动机。0050如果对于任意预先给定的输入序列分别明确地确定后续状态(FOLGEZUSTAND)和前任状态,则代替图5的NLMISR还可以使用任意的状态自动机。说明书CN104063202A6/7页80051图5的电路的过渡函数在下面的表中加以说明。0。
23、052所有16个NLMISR的输入比特分别是相同的。但是它们的初始状态是不同的。由此根据上述前提条件每个NLMISR在每个时刻具有与每个其它NLMISR不同的状态。0053在图6中示出在S0S1S30时所使用的状态自动机的状态过渡。实线箭头示出针对S20的过渡,其中在该情况下也可以针对分别一个时钟实现经由相应中间状态对角向右下方的直接过渡,如通过箭头170向右表示的。虚线箭头代表S21。0054图7示出总地配备有附图标记200的DRBG输出级。该图示示出与乘法器204连接的状态自动机202的系列。输出级200提供在此期间的输出,该输出被用于反馈和最后的输出。0055下面借助附图阐述本发明作为状。
24、态自动机装置12,62,100的初始状态,可以选择分布0,1,2,3,15。重要的是每个相同构建的状态自动机14具有不同的初始状态。该初始状态不必是秘密的,但是对于专门的应用该初始状态也可以被作为秘密状态来对待。于是与所谓的“带密钥的散列函数(KEYEDHASHFUNCTION)”可比的函数可用,所述带密钥的散列函数具有进一步改善的密码特性。0056与用于第一步骤10的所使用的输入半字节S0,S1,S2,S3(与S0,S1,S2,S3相同,并且步骤号I0)对应地根据图2确定4个内部计数器Z0Z3,这些内部计数器确定从来自根据图4的状态自动机装置100的状态自动机202中对4个比特的选择。状态自。
25、动机装置100在此通过第一输入半字节已经根据图4和5修改过。这4个比特是“中间输出反馈”(INTERMEDIATEOUTPUTFEEDBACK)值,即在此期间的输出反馈值,这些值在图1中用附图标记16阐明。利用这些值,在第一输入步骤之后在第二步骤20中通过在图1中描述的单向函数修改相同的输入半字节。该修改在表1中加以解释。0057利用作为第一操作数的第一输入半字节S0,S1,S2,S3和来自做出4个比特的选择的输出级22的作为第二操作数的在此期间的输出O0,O1,O2,O3,对于单向函数获得输出结果S0,S1,S2,S3,该结果与S0,S1,S2,S3的区别在于根据表1的置换。该输出被应用于状。
26、态自动机装置12。通过这种方式将所有64个输入比特相继地作为半字节分别使用两次,而且是在无单向函数和有单向函数的情况下。0058分别在特定数目、例如5个输入步骤之后插入奇偶性步骤。前面的5个输入步骤的输入SI被用于各产生在随后的步骤中插入的串行奇偶性。在该实施例中从LSBS0中生成偶数奇偶性并且对所有其它比特各生成奇数奇偶性。奇偶性(PARITY)应当对奇数数目的输入比特是奇数奇偶性,而对于剩余的输入是偶数奇偶性。这通过触发器的不同初始状态表现。通过对装置12,62,100应用奇偶性,保证多项式Y(根据图5)的切换信号对于这六个步骤至少一次不同。说明书CN104063202A7/7页90059。
27、该切换信号例如在出版物DE102009000322A1中被更详细阐述。这引起非线性性,因为依据输入信号选择NLMISR的不同多项式。0060如果单向函数具有使得多项式的切换对于任意输入序列都有可能的特性,则也可以放弃插入奇偶性。0061在处理了所有输入之后,将三个其它步骤的在此期间的输出直接用作装置12的输入,以最后还用奇偶性结束64比特向量的处理循环。必要时也可以放弃这些附加步骤。0062当在处理了所有64个输入比特后而产生4比特输出值O0,O1,O2,O3之后分别对种子进行递增,并且利用该经修改后的种子根据相同的方法生成其它4个比特。在生成例如分别总共128个输出比特之后,将装置12,62。
28、,100的状态复位到初始状态64。与此对应地,适宜地在每次处理了输入向量52之后采取选择计数器Z0至Z3的初始状态54,所述选择计数器被用于操控图7中的乘法器204。代替所述递增,也可以递减种子,根据代码表继续计数、推移、旋转或以其它方式修改种子。0063装置12,62,100的状态可以通过不同的方法检验。这因此是可能的,因为在装置12,62,100中每个状态自动机在每个时刻都具有不同的状态。此外可以对该方法进行检验。不同的状态通过以下方式得到保证,即在开始时所有状态自动机都被初始化到不同的起始值。通过类似地作用于具有明确的追随者和前任的输入,不能在两个状态自动机中达到相同的状态。0064如果。
29、由于攻击或由于暂时的错误(例如由宇宙辐射引起的软错误)不再符合所提到的条件,则确定该错误并且可以采取合适的措施,例如复位。0065在上述方法中还可以代替所述的乘法而使用任意其它单向函数。这样的单向函数例如是离散指数函数、拉宾(RABIN)函数X2MODN或散列函数。0066此外可以放弃奇偶性的插入并且还可以去掉三个附加的步骤,其中将在此期间的输出直接应用于装置12,62,100。这对于具有较小要求的应用来说可以是适宜的;单向函数的非线性性必要时已足以满足对应的要求。也可以避免每个输入半字节的两次处理并且仅将借助单向函数生成的信号输送给装置12,62,100。0067所描述的电路装置用于由两个操。
30、作数产生单向函数,两个操作数借助乘法运算而分别包括多个比特。将该运算结果分为至少两个部分,并且依据这些部分的特性彼此间的关系(VERHLTNIS)或联系(RELATION)将这些部分分别与另一个函数逻辑关联,使得对于操作数为0的情况产生其它操作数的函数,并且对于两个操作数都为0的情况输出预先给定的值。0068单向函数可以存储在表中,而该表又存储在存储装置中。根据操作数值可以读取和输出所分配的存储单元。0069替换地,可以通过具有逻辑关联元件的电路实现单向函数。说明书CN104063202A1/7页10图1说明书附图CN104063202A102/7页11图2说明书附图CN104063202A113/7页12图3说明书附图CN104063202A124/7页13图4说明书附图CN104063202A135/7页14图5说明书附图CN104063202A146/7页15图6说明书附图CN104063202A157/7页16图7说明书附图CN104063202A16。