数据转换装置、数据转换方法和程序的制作方法

文档序号:2406023阅读:283来源:国知局
专利名称:数据转换装置、数据转换方法和程序的制作方法
数据转换装置、数据转换方法和程序技术领定义域本发明涉及一种 数据转换装置、数据转换方法和程序。更具体地,本发明涉及例如对输入的消息数据执行散列值产生处理的数据转换装置、数据转换方法和程序。
背景技术
在诸如加密处理的数据转换处理中,经常使用对输入的数据执行散列处理的散列函数。散列函数是用于对给定消息计算具有固定长度的压缩值(摘要)的函数。作为已知的散列函数,存在MD5,其具有128比特的输出值;SHA-1,其具有160比特的输出值;以及, SHA-256,其具有256比特的输出值;等等。例如,基于抗分析攻击性增强请求等,期望散列函数具有下面的抗攻击性。原像抗攻击性第二原像抗攻击性碰撞抗攻击性将简述这些抗攻击性。在输出y = h (χ)的散列函数中,其中,输入是X,并且散列函数是h,原像抗攻击性等同于在计算输入X上的困难,该输入X使得对于输出y而言h(x) = y。第二原像抗攻击性等同于在找到不同的输入值χ’上的困难,所述不同的输入值 X’当已知一个输入值χ时满足h (X’)= h (X)。碰撞抗攻击性等同于在找到两个不同的输入值χ和X’上的困难,所述两个不同的输入值X和X’满足h(x’ ) = h(x)。可以说,这些抗攻击性越高,则散列函数越安全。迄今,由于近年来分析方法的进步,已经显示了已经使用的散列函数在上述的抗攻击性上的脆弱性。例如,已经变得显然的是,经常被用作散列函数的MD5和SHA-I等的碰撞抗攻击性不满足许多系统要求水平。此外,存在作为现有的散列函数的、具有相对较长输出长度的SHA-256等,但是这个SHA-256遵循SHA-I的设计策略,因此,也仍然存在关于安全的担心,所以,期望出现基于其它设计策略的更安全的散列函数。

发明内容
已经考虑到上述问题做出了本发明,并且本发明旨在提供一种实现具有高安全级和高度处理效率的散列函数的数据转换装置、数据转换方法和程序。本发明的第一方面是一种数据转换装置,包括混合处理部,用于对输入数据执行数据混合处理;以及压缩处理部,用于对包括数据段的输入数据执行数据压缩处理,所述数据段是消息数据的分段,所述消息数据是数据转换的目标,其中,所述压缩处理部包括多级压缩子部,所述多级压缩子部能够接收在所述消息数据中的所有所述数据段,所述多级压缩子部的一部分被配置来基于所述混合处理部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,所述多级压缩子部的一部分被配置来基于前一级压缩子部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,并且,位于所述多级压缩子部的最后级中的压缩子部被配置来输出所述消息数据的散列值。此外,在本发明的所述数据转换装置的一种实现模式中,所述多级压缩子部具有 MD 结构(Merkle-Damgard 结构)。此外,在本发明的所述数据转换装置的一种实现模式中,所述多级压缩子部具有多个处理系列,所述多个处理系列接收在所述消息数据中的相同数据段以并行地执行处理。

此外,在本发明的所述数据转换装置的一种实现模式中,所述混合处理部被配置来对于所述输入数据执行所述数据混合处理,并且产生其比特数量等于在所述输入数据中的比特数量的输出数据,并且所述压缩处理部被配置来对于所述输入数据执行所述数据压缩处理,并且产生其比特数量小于在所述输入数据中的比特数量的输出数据。此外,在本发明的所述数据转换装置的一种实现模式中,所述数据转换装置被配置使得交错地执行在所述混合处理部中的所述数据混合处理和在所述压缩处理部中的所述数据压缩处理。此外,在本发明的所述数据转换装置的一种实现模式中,所述数据转换装置被配置使得与在所述压缩处理部中的每一个多级数据压缩处理对应地执行所述混合处理部的所述数据混合处理。此外,在本发明的所述数据转换装置的一种实现模式中,所述混合处理部包括数据转换部,用于执行在所述输入数据中的比特数量的调整处理;以及,混合部嵌入压缩部, 用于接收所述输入数据和来自所述数据转换部的输出,以对于其执行压缩处理。此外,在本发明的所述数据转换装置的一种实现模式中,所述数据转换部包括多个数据转换子部,所述多个数据转换子部并行地执行处理,并且,所述混合部嵌入压缩部具有多个压缩子部,所述多个压缩子部对于来自相应的数据转换部的输出并行地执行处理。此外,在本发明的所述数据转换装置的一种实现模式中,所述混合处理部包括具有中间输出的置换函数执行部,其被配置来重复地执行每一个置换处理,以输出作为每一个所述置换处理的结果的中间值;以及,具有附加输入的置换函数执行部,其被配置来使用从所述具有中间输出的置换函数执行部输出的所述中间值作为附加输入来重复地执行置换处理。此外,在本发明的所述数据转换装置的一种实现模式中,所述具有附加输入的置换函数执行部被配置来使用异或结果作为在后级的所述置换处理的输入数据,所述异或结果是在从所述具有中间输出的置换函数执行部输出的所述中间值和在前一级中的置换处理的结果之间的异或的逻辑值。此外,在本发明的所述数据转换装置的一种实现模式中,由所述置换函数执行部执行的置换处理的每一个被配置来包括对于输入数据的一部分或全部执行的非线性转换处理和作为数据交换处理的交换处理。此外,在本发明的所述数据转换装置的一种实现模式中,所述非线性转换处理是包括使用常数的异或运算、非线性转换和使用线性转换矩阵的线性转换的处理。此外,在本发明的所述数据转换装置的一种实现模式中,根据使用多个不同矩阵的DSM(扩散转换机制)执行由所述置换函数执行部执行的每一个所述置换处理中的所述线性转换处理。此外,在本发明的所述数据转换装置的一种实现模式中,由所述置换函数执行部执行的每一个所述置换处理被配置使得基于彼此不同的多个常数集的相应的一个来执行数据处理,并且,由对于基本集执行的数据转换处理产生并且彼此不同的多个常数集被应用到相应的置换处理,所述基本集被定义为要被应用到一个置换处理的常数集。此外,在本发明的所述数据转换装置的一种实现模式中,要被用作所述基本集的所述常数集包括通过向彼此不同的多个初始值S和T应用转换规则而产生的多个常数,并且所述转换规则被配置来包括对于所述初始值的更新处理,通过下面的表达式来表示所述更新处理;S — S · xa,T 一 T · Xb其中,a 乒 b。此外,在本发明的所述数据转换装置的一种实现模式中,所述基本集的所述数据转换处理是允许对于构成所述基本集的每一个常数执行比特旋转操作的处理或允许对于预定掩蔽数据执行运算的处理。

此外,在本发明的所述数据转换装置的一种实现模式中,所述数据转换部被配置来执行截止处理,所述截止处理允许最终输出的散列值在比特数量上减少,并且根据预定的计算表达式来对于构成所述数据转换部的输出的多个输出数据系列的每一个的输出比特执行要减少的比特数量的计算,然后,根据所述计算结果来执行所述截止处理。此外,本发明的第二方面是一种在数据转换装置中执行的数据转换方法,所述方法包括步骤混合处理部对输入数据执行数据混合处理;以及压缩处理部对输入数据执行数据压缩处理,所述输入数据包括数据段,所述数据段是消息数据的分段,所述消息数据是数据转换的目标,其中,所述压缩处理部包括多级压缩子部,所述多级压缩子部接收在所述消息数据中的所有所述数据段,所述多级压缩子部的一部分被配置来基于所述混合处理部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,所述多级压缩子部的一部分被配置来基于前一级压缩子部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,并且,位于所述多级压缩子部的最后级中的压缩子部被配置来输出所述消息数据的散列值。此外,本发明的第三方面是一种程序,包括记录序列,所述记录序列允许数据转换装置执行数据转换处理,所述序列包括步骤混合处理部对输入数据执行数据混合处理; 以及压缩处理部对输入数据执行数据压缩处理,所述输入数据包括数据段,所述数据段是消息数据的分段,所述消息数据是数据转换的目标,其中,所述压缩处理部包括多级压缩子部,所述多级压缩子部接收在所述消息数据中的所有所述数据段,所述多级压缩子部的一部分被配置来基于所述混合处理部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,所述多级压缩子部的一部分被配置来基于前一级压缩子部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,并且,位于所述多级压缩子部的最后级中的压缩子部被配置来输出所述消息数据的散列值。顺便提及,本发明的所述程序是可以由例如存储介质或通信介质以计算机可读形式提供到能够执行各种程序代码的通用系统的程序。这样的计算机可读形式的程序的提供根据在计算机系统上的程序来实现处理。
此外,通过下面基于本发明的实施例和附图提供的详细描述来披露本发明的其他目的、特征和优点。顺便提及,在本说明书中的系统是多个装置的逻辑组的配置,并且不限于其中在同一外壳内存在多个装置的配置。根据本发明的一个实施例,提供了用于对输入数据执行所述数据混合处理的混合处理部以及用于对输入数据执行所述数据压缩处理的压缩处理部,所述输入数据包括所述数据段,所述数据段是所述消息数据的分段,所述消息数据是所述数据转换的目标。多级压缩子部的部分被配置来基于所述混合处理部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理。提供了其中至少基于多个回合中的一个压缩处理回合的每个固定时间来执行所述混合处理的配置,因此,实现了产生具有 改善的抗分析攻击性和高度安全性的散列值的数据压缩装置。


图1是说明作为数据压缩处理部的压缩函数(f)的图。图2是说明作为代表性的定义域扩展方法的、具有消息填充的MD结构 (Merkle-Damgard 结构)的图。图3是说明通过使用小输出比特尺寸的压缩函数来实现大输出比特尺寸的散列值的级联散列配置的图。图4是说明具有改善的安全性的压缩处理部(压缩函数)的配置示例的图。图5是说明散列函数配置的示例的图,其中,链接了在图4中所示的压缩函数单元 50作为MD结构。图6是说明在图5中所示的配置的修改以及散列函数的配置示例的图,该散列函数使用压缩函数单元55,其中,交换了混合函数F以及压缩函数和f2的顺序。图7是说明其中删除了在图6中所示的配置中的最后部分的混合函数F的配置示例的图。图8是说明其中对于压缩函数的处理的每两个循环设置用于插入混合函数F的间隔的配置示例的图。图9是说明一般化的散列函数执行部的配置示例的图,其中,设置用于插入混合函数F的间隔使得每第k个压缩函数插入混合函数F。图10是说明其中通过使用两个压缩函数来实现混合函数F的配置示例的图。图11是说明散列函数的一般化配置的示例的图,其中,系列的数量是m,并且m是不小于2的整数。图12是说明mb比特输入和输出的混合函数F的配置示例的图。图13是说明混合函数f的内部配置示例的图。图14是说明其中在具有MD结构的散列函数中设置通过消息调度部(MS部)和链接变量(CV)处理部形成的压缩函数的配置示例的图。图15是说明其中共享消息调度部的散列函数的配置示例的图。图16是说明其中扩展在压缩函数中的输入消息尺寸的压缩函数的配置示例的图。图17是说明压缩函数的配置示例的图,该压缩函数具有其中将消息调度部划分为两个部分的配置。图18是说明压缩函数的配置示例的图,该压缩函数具有其中将消息调度部划分为两个部分的配置,并且具有异或(XOR)运算部。图19是说明压缩函数的配置示例的图,其中,在图17中所示的压缩函数的配置被一般化,并且被设置来支持na比特的输入。图20是说明压缩函数的配置示例的图,其中,在图18中所示的压缩函数的配置被一般化,并且被设置来支持na比特的输入。图21是说明具有附加输入的置换函数的示例的图。图22是说明具有中间输出的置换函数的示例的图。图23是说明使用现有的置换函数的压缩函数的配置示例的图。

图24是说明其中向压缩函数输入的数据的尺寸被扩展的压缩函数的配置示例的图。图25是说明其中将输入比特增加到3a比特的压缩函数的配置示例的图。图26是说明其中将输入比特增加大3a比特的压缩函数的配置示例的图。图27是说明其中共享两个系列的压缩函数的消息调度部的配置示例的图。图28是说明其中扩展了向压缩函数输入的数据的尺寸的压缩函数的配置示例的图。图29是通过组合两个具有中间输出的置换函数和两个具有附加输入的置换函数而配置的混合函数F的配置示例的图。图30是说明可以被用作内部函数的置换函数的具体配置示例的图。图31是说明在内部置换处理部(置换函数)中配置的非线性转换部的内部配置的一个示例的图。图32是说明内部置换处理部的重复回合的配置示例的图,其中,进行设置使得多个不同的矩阵被用作在内部置换处理部(置换函数)的非线性转换部中使用的线性转换矩阵[M]。图33是说明内部置换处理部的重复回合的配置示例的图,其中,进行设置使得多个不同的矩阵被用作线性转换矩阵[M]。图34是说明产生用于整体置换的常数Ci,」(2),Ci,」(3),-^,,.(m)的技术的图。图35是说明用于减少散列函数的输出比特的技术的一个示例的图。图36是说明用于减少散列函数的输出比特的技术的一个示例的图。图37是说明作为执行根据本发明的处理的数据转换装置的IC模块的配置示例的图。
具体实施例方式下面,将参考附图详细描述本发明的数据转换装置、数据转换方法和程序。使用以下面的顺序的项目来提供说明。1.定义域扩展方法2.用于扩展输出尺寸的新定义域扩展方法3.用于改善在新定义域扩展方法中的处理效率的方法
4.用于实现混合函数F的方法5.定义域扩展方法的一般化6.混合函数F的配置的一般化7.关于不同压缩函数的使用8.有效地实现压缩函数的内部处理的方法 9.用于扩展输入消息长度的方法10.使用用于CV处理部和MS部的重复类型的置换的散列函数实现方法11.扩展MS部的尺寸的方法12.扩展CV处理部的尺寸的方法13.扩展CV处理部和MS部的尺寸的方法14.配置用于定义域扩展方法的混合函数F的方法15.实现具有高扩散性能的置换处理的方法16.产生具有高独立性的输出的置换函数的方法17.产生向置换函数应用的常数的处理18.产生用于多个整体置换的常数的方法19.减少散列函数的输出值的技术20.数据转换装置的配置示例[1.定义域扩展方法]如上所述,期望散列函数执行部具有上述各种抗攻击性,即下面的抗攻击性。原像抗攻击性第二原像抗攻击性碰撞抗攻击性顺便提及,本发明的数据转换装置包括各种函数执行部,诸如下述的散列函数执行部和压缩函数执行部。在下面的描述中,在本发明的数据转换装置中的、执行每一个函数的函数执行部中执行仅被表达为“…函数”者。顺便提及,通过使用硬件、软件或这两者来实现函数执行部。散列函数使用对给定消息计算具有固定长度的压缩值(摘要)的压缩函数。当建立通过执行散列函数的硬件和软件形成的散列处理部时,期望通过考虑上述各种抗攻击性来提供配置。散列处理部的配置被大致划分为两层。所述两层是(1)作为定义域扩展部分的第一层,以及(2)作为压缩函数的内部配置的第二层。定义域是可接受作为散列函数的输入值的比特尺寸(输入尺寸)。一个压缩函数执行部执行将具有固定长度的输入值转换为具有固定长度的输出值的处理,但是通常,在一个压缩函数执行部中,可接受的输入比特尺寸较小,并且不能处理大比特尺寸的输入值, 因此,通过链接多个压缩函数来执行扩展,以使得处理任意长度的消息输入。与此类似的处理使得可以执行具有长比特长度的输入数据的散列处理。定义域扩展处理是这种处理。上述抗攻击性的水平取决于作为第一层的定义域扩展配置和作为第二层的压缩函数的内部配置。首先,在此,将描述在前者中用于定义域扩展处理的新的方案。压缩函数是将输入值的比特串转换为具有比输入比特长度短的长度的比特串的函数。图1是图示作为压缩函数部的压缩函数(f)的图。在图1中所示的压缩函数10是接收a+b比特输入并且输出b比特值的输出Z的函数,a+b比特输入是作为输入值的X和初始值Y的和,X是a比特,Y是b比特。可接受为压缩函数的输入值的比特尺寸被称为定义域(输入尺寸)。一个压缩函数10单独不能处理长输入消息,因此,通过适当地将压缩函数彼此链接并且由此扩展定义域(输入尺寸)来扩展输入消息尺寸。换句话说,可以输入具有长比特长度的输入数据。图2图示作为代表定义域扩展方法的、具有消息填充的MD结构(Merkle-Damgard 结构)。顺便提及,对于这种配置,例如参见[参考文献R.Merkle,‘‘ One way hash functions and des. " in Proceedings of Crypto' 89 (G. Brassard, ed.), no.435 in LNCS, pp.428-446, Springer-Verlag, 1989 ;I.Damgard, " A design principle for hash functions. " in Proceedings of Crypto' 89(G. Brassard, ed.), no. 435 in LNCS, pp. 417-427,Springer-Verlag, 1989.]MD结构是使得可以通过如图2中所示串联布置压缩函数(f)来扩展输入尺寸的配置。通过作为用于比特长度调整的比特数据应用处理执行的填充处理,输入消息被校正为作为压缩函数的消息输入部尺寸的a比特的整数倍的值。在填充处理后的输入消息被划分为作为M0, M1 ,MfiMn^M1JPadding的比特单元。[MlriIPadding]是其中通过下述方式使得输入比特尺寸是a比特的数据向作为输入消息的最后数据的[Mn_J增加作为开销比特的填充数据。在这种配置中,为了建立关于消息的摘要,通过使用多个压缩函数来重复下述操作,以使 得最后获得散列值(H)预定b比特初始值IV (初始值)和第一分段消息Mtl被输入压缩函数11并且被压缩,因此,b比特值被输出为中间值,并且该中间值输出与随后的消息被输入到压缩函数12并且被压缩。此时的中间值被称为改变变量。已知这种配置可以表明,如果在独立的压缩函数本身中存在碰撞抗攻击性,则整个散列函数具有碰撞抗攻击性,并且这种配置经常用于实际的散列函数。作为使用这种配置的代表散列函数,存在MD5和SHA-I。[2.用于扩展输出尺寸的新定义域扩展方法]在上述配置中,已经描述了 b比特输出的情况,接下来,将讨论产生长比特长度的 2b比特散列值的散列函数的配置。当原样使用上述的MD结构时,必须准备具有2b比特输出的压缩函数。然而,通常, 难以新产生具有大尺寸输出和高安全度的压缩函数。必须设计新的压缩函数并且评估安全性,并且,尺寸越大,则这种设计和评估变得越困难。因此,期望能够通过使用已经评估的b 比特输出的压缩函数来配置2b比特输出的散列函数。作为通过使用小输出比特尺寸的压缩函数来实现大输出比特尺寸的散列值的现有技术,已知级联散列配置。将参考图3来描述级联散列配置。级联散列配置是其中通过并列使用两个压缩函数而使得大输出尺寸的散列值成为可能的配置。如图3中所示,在级联散列中,仅并行地布置两个压缩函数f\*f2。这种配置使得可以配置具有2b比特输出的散列函数。然而,通过布置两个b比特输出的压缩函数来执行2b比特输出的这样的散列函数的安全性未达到具有2b比特输出尺寸的散列函数所需要的等级。已知严格而言,仅具有b比特输出尺寸的散列函数的尺度上的安全性。例如在下面的文献中描述这一点 [A. Joux, “ Multicollisions in iterated hash functions, application to cascaded constructions. “ in Proceedings of Crypto’ 04(M. Franklin, ed.), no. 3152 in LNCS, p. 306-316,Springer-Verlag,2004.]。接下来,将参考图4来描述根据本发明的一个实施例的、具有改善的安全性的压缩处理部(压缩函数)的配置。图4图示作为a比特输入和2b比特输出的压缩处理部的压缩函数单元50。在图4中所示的压缩函数单元50包括压缩函数f\和f2,其作为两个独立的a+b比特输入和b比特输出的数据压缩部;混合函数F,其作为2b比特输入和输出的数据混合处理部。换句话说,提供了一个混合函数F和两个系列压缩函数f\和f2。压缩函数单元50接收作为a比特[X]和2b比特[Y]的和的2b+a比特输入。在输入中,经由通过具有2b比特输入和输出的混合函数F来混合2b比特数据[Y]。随后,将混合函数F的2b比特输出划分为b比特分段,并且通过在压缩函数单元50中的压缩函数 f来处理该单元的一个b比特分段数据和剩余的a比特数据X。另一个b比特分段数据和 a比特数据X通过在压缩函数单元50中的压缩函数f2来进行并行处理。最终,作为和 f2的输出的组合的2b比特输出变为压缩函数单元50的输出。顺便提及,混合函数F是混合输入的2b比特数据并且产生输出的函数,并且两个压缩函数和f2是不同的压缩函数。图5图示用于使得能够处理长输入比特长度的定义域扩展的散列函数配置的一个示例,其中,链接了在图4中所示的压缩函数单元50作为MD结构。在图5中所示的数据转换装置包括由MD结构形成的数据转换部。通过数据转换部来形成在图5中所示的配置, 数据转换部具有η级 的参考图4描述的压缩函数单元50。换句话说,数据转换装置具有由 η级的压缩函数单元50形成的散列函数执行部,每一个压缩函数单元50具有2b比特输入和输出的一个混合函数F以及a+b比特输入和b比特输出的两个系列压缩函数和f2。在图5中所示的散列函数中,通过使用压缩函数单元50-0至50-(n-l)作为η级配置来进行重复的应用,并且从在最后级的压缩函数单元50-(η-1)输出2b比特的散列值 (H1IH2)0向在第一级的压缩函数单元50-0输入在输入比特Mtl至Mlri中的第一个a比特M0 和两个b比特初始值IV1和IV2,并且通过压缩函数和f2的每一个来产生b比特的输出, 即输出总共2b比特的输出。随后,馈送从在前一级的压缩函数单元中的压缩函数和f2输出的2b比特以及其比特是Mtl至Mlri的构成比特的a比特输入,并且产生2b比特输出。其后,重复地执行相同的处理,并且在最后级中,供给在前一级的2b比特输出以及由Mlri和填充数据形成的a比特输入,并且产生b比特输出H1和H2, S卩,输出2b比特散列值(H1IH2)15这种配置示出,如果压缩函数单元50的内部压缩函数和f2与混合函数F满足被称为随机预言的属性,则存在足够的安全度。随机预言是下述函数该函数在内部产生随机数,并且当被提供输入时输出随机数,并且当再一次被提供已经给出过的输入时,再一次输出过去输出的随机数。实际上,通过下述方式来实现这一点设计函数,该函数近似象随机预言那样的行为,并且通过不需要产生随机数的确定过程来计算输出;并且使用所设计的函数来执行替换。这种配置使得可以在压缩函数内使用其安全性容易被评估并且其处理轻的部件,因此可以实现容易设计并且在效率上高的散列函数。
根据本实施例,提供了至少在由多个回合形成的压缩处理回合中在每一个固定时间执行混合处理的配置,因此,实现了产生具有增强的抗分析攻击性和高安全度的散列值的数据转换装置。此外,作为在图5中所示的配置的修改,存在如图6中所示使用压缩函数单元55 的情况,并且这种情况也可以用作具有相同效果的散列函数,其中,在压缩函数单元55中, 混合函数F与压缩函数和f2的顺序被交换。此外,作为在图5和图6中所示的配置的修改,存在其中如图7中所示删除在图6 中所示的配置中的最后部上的混合函数F的配置,并且这种配置也可以被用作在安全性上具有相同效果的散列函数。也从下述情况得出这一点通过将第一混合函数F的输出重新定义为在图5中所示的配置中的IV1和IV2来实现这种配置。

以这种方式,可以通过较小b比特输出的压缩函数和混合函数F来配置具有高的安全度的2b比特输出的散列函数,而不用建立专用于2b比特输出的压缩函数。此外,在图5、图6和图7中所示的配置中,在压缩函数单元中的内部压缩函数f\ 和f2的各自的输出这两者的比特的数量是b比特,并且配置使得在内部压缩函数和f2之间的中间值,即链接变量上一致。然而,这些内部压缩函数和f2的链接变量(CV)的比特尺寸不必彼此一致。例如,可以提供下述配置内部压缩函数fi被设置为输出b比特链接变量(CV),并且内部压缩函数f2被设置为输出C比特的链接变量(CV),并且链接变量(CV)整体是b+c比特变量。 在这种配置中,也可以通过较小函数的配置来实现压缩函数单元,因此,已经确认安全并且支持小比特尺寸的压缩函数可以被应用为内部压缩函数。[3.用于改善在新定义域扩展方法中的处理效率的方法]随后,将参考图8来描述散列函数的配置示例,其中,改善了参考图5和图6所述的定义域扩展方法的处理效率。图8是散列函数的配置示例,其中,对于压缩函数的处理的每两个循环设置用于插入混合函数F的间隔。压缩函数单元60被配置来包括混合函数F、两级的内部压缩函数以及两级的内部压缩函数f2*f4。顺便提及,在压缩函数单元60中包括的四个内部压缩函数是彼此独立的压缩函数。换句话说,在两个混合函数F之间插入的区域中包括的四个内部压缩函数是独立的压缩函数。两个b比特初始值IV1和IV2被输入到在第一级中的压缩函数单元60,并且混合函数F混合所输入的2b比特数据,并且向每一个压缩函数4和&产生b比特的输出。向压缩函数f工和f2输入在输入比特M0至Mlri中的第一 a比特M0和来自混合函数F的b比特输出,并且b比特输出被产生并被供给到在随后级中的压缩函数&和f4。向压缩函数&和&输入在输入比特Mtl至Mlri中的a比特M1以及来自在前一级中的压缩函数和f2的b比特输出,并且b比特输出被产生并被供给到在随后级中的压缩函数单元的混合函数F。随后,供给来自在前一级中的压缩函数单元中的压缩函数的2b比特输出以及具有作为Mtl至Mlri的构成比特的比特的2a比特输入,并且产生2b比特输出。其后,重复执行同一处理,并且在最后级中,供给来自前一级的2b比特输出、a比特Mn_2以及由Mlri和填充数据形成的a比特输入,并且产生b比特输出H1和H2,即输出2b比特散列值(H1IH2)15
在这种配置中,与在图5中所示的配置相比,减少了在处理相同长度的消息时对于混合函数F调用的次数,因此,改善了处理效率。具体地说,在图5中所示的配置中,在处理两个a比特消息期间的时间中所需要的处理使用混合函数F两次并且使用压缩函数四次,而在图8中所示的配置中,通过使用混合函数F—次并且使用压缩函数四次的处理来执行这一点,因此,可以减少F的处理一次,并且实现了处理上的效率的提升。在图8中所示的配置中,在两步中的混合函数F和压缩函数被设置为重复地执行。 也可以提供下述配置在混合函数中的处理的数量被进一步减少,并且对于压缩函数的每三个或更多级设置混合函数F。图9图示一般化的散列函数执行部的配置示例,其中,设置用于插入混合函数F的间隔使得每隔k个压缩函数插入混合函数F。在图9中所示的配置中,压缩函数单元70具有包括2比特输入和输出的一个混合函数F以及在k级中的a+b比特输入和b比特输出的两个系列压缩函数。两个b比特初始值1义和IV2被输入到在第一级中的压缩函数单元70,并且,混合函数F混合输入的2b比特数据,并且向以两个系列配置的压缩函数和f2的每一个产生b 比特的输出。向压缩函数f工和f2输入在输入比特M0至Mlri中的第一 a比特M0和来自混合函数F的b比特输出,并且,b比特输出被产生并被供给到在随后级中的压缩函数&和f4。向压缩函数f3和f4输入在输入比特Mtl至Mlri中的a比特M1和来自在前一级中的压缩函数和f2的b比特输出,并且b比特输出被产生并被供给到下一个压缩函数。其后,来自在前一级中的压缩函数的输出和具有形成输入比特此至^—的比特的a比特输入被供给到在随后级中的压缩函数,并且产生每一个b比特输出,这个过程被重复k次,并且来自两个系列的第k压缩函数的输出被输入到下一个压缩函数单元71的混合函数F。 压缩函数单元71的处理类似于压缩函数单元70的处理。然而,在输入比特Mtl至 Mlri的后一半中的比特数据和填充数据被输入。最终,从在压缩函数单元71的最后级中的两个系列的压缩函数产生b比特的输出H1和H2,即输出2b比特的散列值(H11H2)。顺便提及,根据作为散列值的输出长度2b,插入混合函数F的间隔是在不危害安全性的范围内确定的值。例如,存在其中当b = 256时k = 8的配置。k越大,则处理效率改善越多。在图9中所示的配置是下述配置其中,像在图5中的配置那样,向混合函数F输入初始值,并且在混合函数F之后的级中设置两个系列的压缩函数,但是也可能提供使用压缩函数单元的配置,其中,首先,向参考图6等所述的两个系列的压缩函数输入初始值, 并且在多个级中执行两个系列的压缩函数后,最后执行混合函数F。[4.用于实现混合函数F的方法]混合函数F是混合输入比特并且输出其比特数量等于在输入数据中的比特数量的数据的函数。将参考图10来描述用于实现混合函数的具体配置。图10是其中通过使用两个压缩函数来实现混合函数F的配置。在图10(1)中所示的混合函数F 80是其中通过下述部来实现2b比特输入和输出的混合函数F 80的示例b比特输入和a比特输出的两个转换部81和82 ;以及,a+b比特输入和b比特输出的两个压缩函数83和84。划分所产生并输入到混合函数F 80的两个b 比特数据被分别作为输入的b比特部分提供到压缩函数83和84。此外,同时,相应的b比特数据被输入到转换部81和82,被转换为a比特数据,并且作为输入数据的a比特部分被提供到转换函数83和84。转换部81和82可能仅需要执行用于调整比特长度的简单处理,并且可以通过例如简单处理配置实现,该简单处理配置诸如是通过复制比特和异或的扩展。期望转换部81和82被设置来满足下面的条件。换句话说,进行设置使得混合函数F 80的2b比特输入的每一个比特影响转换函数83和84的每一个的a+b比特输入。可以通过在图10中所示的配置来形成混合函数F,结果,可以通过两个压缩函数所需要的处理规模来实现混合函数F。在图10⑵中所示的混合函数F 85是其中向转换部86和87的每一个的输入是 2b比特输入的示例。转换部86和87每一个由函数形成,该函数在a > b的情况下链接两个b比特数据并且减少数据,由此通过诸如异或的简单运算来建立a比特。也期望设置转换部86和87来满足下面的条件。换句话说,进行设置使得混合函数F 85的2b比特输入的每一个比特影响向转换函数88和89的每一个的a+b比特输入。在这种配置中,也可以通过两个压缩函数所需要的处理的规模来实现混合函数F。在这个图10中的混合函数F的配置可以被用作在参考图5至图9的散列函数的配置中的混合函数F。通过使用这样的配置,可以通过重新使用原来在图5至图9中的压缩函数单元中设置的压缩函数来实现混合函数F。这样的部件共享在安装硬件时产生门规模减小的效果,并且使得可以减小装置的尺寸和成本。[5.定义域扩展方法的一般化]具有参考图5至图9所述的MD结构的散列函数是其中一个混合函数F的输出被输入到两个系列的压缩函数的配置或其中两个系列的压缩函数的输出被输入到一个混合函数F的配置。换句话说,压缩函数被设置来使用两个系列。压缩函数的系列的数量不限于二,并且该配置可以使用三个或更多的系列。图11 图示其中系列的数量是m并且m是不小于2的整数的散列函数的一般化配置的示例。在图11中的配置是下述配置其中,基于在图9中所示的配置,压缩函数的系列的数量被从2改变为m。压缩函数单元90包括mb比特输入和输出的混合函数F和以m个系列配置的多级压缩函数。在第一级中的、其数量为m的压缩函数Π至fm的每一个被供给来自混合函数F的mb比特输出的比特数据的b比特部分和在输入比特M0至Mlri中的第一 a比特M0,并且产生向随后级中的压缩函数输入的b比特输出。在k级中的m系列的压缩函数的每一个被供给来自在前一级中的压缩函数的输出和输入比特M0至Mlri中的a比特M, 并且产生b比特输出。在k级中的压缩函数的处理后,在压缩函数单元90的最后级中的压缩函数的mb比特输出被输入到下一个压缩函数单元的混合函数F。作为从在最后级中的压缩函数单元91的最后级中的、其数量是m的压缩函数的每一个输出的b比特的输出H1至Hm的和的2mb比特输出被作为散列值(H11H21··· |Hm)产生。 所获得的散列值H1,H2,…,Hm最多有mb比特。通过这种技术,可以实现具有更长尺寸的输出的散列函数。[6.混合函数F的配置的一般化]接下来,将描述混合函数F的一般化配置。已经在上面参考图10描述了混合函数 F的具体配置。参考图10所述的混合函数F是应用两个系列的压缩函数的配置。图12图示mb比特输入和输出的混合函数F的一般化配置的示例。在图12中图示的混合函数F 100由下述部分形成m个系列的c比特输入和b比特输出的压缩函数fl 至fm以及在前一级中的其数量为m的转换部。在图12中图示的示例中,假定向m种不同的压缩函数fl至fm的每一个的输入的尺寸是c比特。为了所有的输入比特影响压缩函数fl至fm的每一个,每一个mb比特输入被供给到转换部一次,并且被减小以满足压缩函数的输入尺寸。在转换部中,通过例如异或 (XOR)或比特尺寸扩展处理等来从mb比特输入产生c比特输出。转换部所需要的条件是使得作为向混合函数F的输入比特的mb比特的每一个比特影响c比特输出的任何比特。这可以通过简单的运算来实现。例如,在c = mb的情况下, 转换部可以直接对输入链接并输出。[7.关于不同压缩函数的使用]在上面的描述中,在具有多级配置的多个系列的压缩函数fl、f2、…、fm的压缩函数单元中,已经将在压缩函数单元中的多个系列的压缩函数fl、f2、…、fm描述为具有不同的结构。这是可以客观地示出安全度最高的配置,但是即使当使用单个压缩函数时也不立即损害安全性。存在在实现上重复地使用单个压缩函数有益的情况,因此,其中所有压缩函数相同的配置作为另一个实施例也是可能的。此外,可以不使用单个压缩函数,并且其中重复地使用较少类型的压缩函数的配置也同样是可能的。[8.有效地实现压缩函数的内部处理的方法] 接下来,将描述在如上所述的压缩函数单元中设置的压缩函数fi的具体配置示例。在图13中示出压缩函数f的内部配置示例。图13是在参考图5至图12描述的压缩函数单元中设置的压缩函数fi的配置示例,此外,压缩函数fi可用作混合函数F的构成元
ο如图13中所示,压缩函数120具有消息调度部(MS部)121和链接变量(CV)处理部122。对于压缩函数120的a+b比特输入的[X]a比特输入被供给到消息调度部(MS 部)121,并且剩余的[Y]b比特输入被供给到链接变量(CV)处理部122。消息调度部(MS部)121通过基于a比特输入的消息调度处理来产生和向链接变量(CV)处理部122输入C比特输出。链接变量(CV)处理部122接收由向压缩函数120的 b比特输入以及来自消息调度部(MS部)121的c比特输入构成的b+c比特输入,并且产生作为压缩函数120的输出的b比特输出[Z]。图14图示其中在具有上面参考图5描述的MD结构的散列函数中设置在这个图13 中图示的压缩函数,即由消息调度部(MS部)和链接变量(CV)处理部形成的压缩函数的配置示例。在图14中图示的压缩函数单元130以与参考图5的上面的描述的方式类似的方式由混合函数F和两个系列的压缩函数Π和f2形成。这些压缩函数Π和f2每一个具有参考图13所述的配置。换句话说,这是由消息调度部(MS部)和链接变量(CV)处理部形成的压缩函数。在图14中所示的示例中,在两种压缩函数fl和f2中的消息调度部(MS部)被分别图示为MSl和MS2,并且链接变量(CV)处理部被分别图示为CVl和CV2。这种配置使得可以实现散列函数。下面,将描述实现在处理效率上进一步改善的配置。在图14中所示的压缩函数单元130-0至130_(n_l)的每一个中,同时向在两个压缩函数中的消息调度部(MS部)MSl和MS2输入消息Mi。因此,可以在垂直地布置的两个系列的压缩函数之间共享消息调度部,这使得可以减少处理。图 15是图示其中共享消息调度部的散列函数的配置示例。在图14中,设置了压缩函数142,其中,在压缩函数单元130-0至130-(n-1)的每一个中包括的两个垂直压缩函数的消息调度部被转换为共享的单个消息调度部(MS部)141。当应用具有这种单个消息调度部(MS部)141的压缩函数142的配置时,仅执行一次在单个压缩函数单元140中执行的单个消息调度部(MS部)的算术处理,使得可以减少必要的算术处理。例如,实现了在硬件配置的尺寸上的减小和处理步骤的简化。在参考图15描述的多个压缩函数中共享消息调度部的配置可以被应用到上述的多个散列配置。换句话说,这种配置也可以被应用到参考图5至图12描述的具有多个系列的压缩函数的压缩函数单元和在混合函数F中的压缩函数。[9.用于扩展输入消息长度的方法]接下来,将描述用于扩展在压缩函数中的输入消息尺寸的方法。在图16中图示的压缩函数150由例如参考图13描述的压缩函数120、消息调度部(MS部)151和链接变量 (CV)处理部152形成。如上参考图13所述的压缩函数120是其中a比特输入作为向消息调度部(MS部)121的消息输入的配置。相反,在图16中所示的压缩函数150具有用于支持2a比特输入的消息调度部(MS部)151。通常,用于支持a比特输入的函数和用于支持2a比特输入的函数不同,并且基于不同的安全评估标准来评估它们。因此,当可能时,期望组合支持a比特输入并具有已经评估的安全和性能的函数,由此配置用于支持2a比特的消息调度部。此外,这也使得可以重新使用支持a比特输入的其他现有函数。下面将描述该函数的具体配置示例,并且在此,将描述一种通过使用支持a比特输入的函数来配置支持2a比特或更多比特的输入的压缩函数的方法。图17图示具有其中将消息调度部划分为两个部分的配置的压缩函数160的配置示例。在向压缩函数160的输入消息2a比特数据被划分为两个a比特数据段后,执行用于在相应的消息调度部161和162中产生c比特输出的处理。相应的两个消息调度部161和 162的c比特输出两者被提供到链接变量(CV)处理部163。链接变量(CV)处理部163接收两个消息调度部161和162的c比特输出和向压缩函数160的b比特输入,并且产生和输出作为压缩函数的输出的b比特输出[Z]。这种配置的优点是可以配置下述压缩函数该压缩函数通过使用支持比2a比特短的a比特输入的函数(消息调度部)来实现2a比特消息输入。在图18中所示的压缩函数170是像在图17中所示的压缩函数160那样具有下述配置的压缩函数170的配置示例在该配置中,将消息调度部划分为两个部分。这个压缩函数170具有异或(XOR)运算部174。在向压缩函数170的输入消息2a比特数据被划分为两个a比特数据段后,执行用于在相应的消息调度部171和172中产生c比特输出的处理。在异或(XOR)运算部174中执行异或(XOR)运算后,相应的两个消息调度部171和172的c比特输出两者被提供到链接变量(CV)处理部173。这是下述配置其中,两个消息调度部的输出在异或(XOR)运算部174中被处理一次,然后被提供到链接变量(CV)处理部173。这种配置的优点是可以通过防止在由链接变量(CV)处理部173接收的消息的尺寸上的增加来简化链接变量(CV)处理部173的内部。 顺便提及,可以将异或(XOR)部分替换为模加法处理。图19图示压缩函数210的配置示例,其中,在图17中所示的压缩函数160的配置被一般化,并且被设置来支持na比特的输入。向压缩函数210的na比特消息输入被划分为其数量为η的a比特消息,并且在每一个独立地支持a比特输入的消息调度部(MS部)211_1 至211-n中处理每一个a比特消息,以使得消息调度部(MS部)211-1至211_n产生c比特输出。相应的消息调度部(MS部)211-1至211_n的c比特输出被提供到链接变量(CV) 处理部212。链接变量(CV)处理部212接收其数量为η的消息调度部(MS部)211-1至 211-n的nc比特输出以及向压缩函数210的b比特输入,并且产生和输出作为压缩函数的输出的b比特输出[Z]。这种配置也具有与上面参考图17描述的优点类似的优点。换句话说,可以配置下述压缩函数该压缩函数通过使用支持比皿比特短的a比特的输入的函数(消息调度部) 来实现na比特消息输入。图20图示压缩函数220的配置示例,其中,在图18中所示的压缩函数170的配置被一般化,并且被设置来支持na比特的输入。向压缩函数220的na比特消息输入被划分为其数量为η的a比特消息,并且在每一个独立地支持a比特输入的消息调度部(MS部)221_1 至221- n中处理每一个a比特消息,以使得消息调度部(MS部)221-1至221_n产生c比特输出。相应的消息调度部(MS部)221-1至221_n的c比特输出在异或(XOR)运算部 223-1至223-n中被异或,然后被提供到单个链接变量(CV)处理部222。在接收到异或 (XOR)运算部223-n的c比特输出和向压缩函数220的b比特输入时,链接变量(CV)处理部222产生和输出作为压缩函数的输出的b比特输出[Z]。使用这种配置,也可以配置下述压缩函数,该压缩函数通过使用支持比na比特短的a比特的函数(消息调度部)来实现 na比特消息输入。顺便提及,其中将异或(XOR)处理部替换为模加法处理部的配置也是可能的。以这种方式,根据本发明的一个实施例的数据转换装置具有下述配置该配置具有多个处理系列,将划分消息数据得到的数据段并行输入该多个处理系列,并且该配置执行应用了多个压缩函数执行部(f)的数据转换处理。多个压缩函数执行部(f)的每一个被配置来执行应用消息调度部(MS部)的处理,该消息调度部(MS部)通过接收作为消息数据的分段的数据段的输入来执行消息调度处理;以及,应用链接变量(CV)处理部的处理,该链接变量(CV)处理部接收消息调度部 (MS部)的输出和作为在前一级的处理部的输出的中间值(链接变量)的输入,并且通过输入数据的压缩来产生其比特数量等于在中间值中的比特的数量的输出数据。在多个处理系列中并行地执行处理的多个压缩函数执行部共享消息调度部(MS 部)和链接变量(CV)处理部之一或两者,并且使用单个消息调度部或单个链接变量处理部来执行处理。这种配置实现了例如在硬件配置的尺寸上的减小和处理步骤的简化。[10.使用用于CV处理部和MS部的重复类型的置换的散列函数实现方法]
如上所述,可以通过使得消息调度部(MS部)和链接变量(CV)处理部作为构成元素来实现压缩函数。将描述这些消息调度部(MS部)和链接变量(CV)处理部的具体配置示例。作为消息调度部(MS部)和链接变量(CV)处理部,基于置换函数的那些是通常已知的。例如,作为散列函数已知的SHA-I和Whirlpool等具有基于置换函数的配置。期望向消息调度部(MS部)和 链接变量(CV)处理部应用的置换函数具有高混合性能。将描述置换函数的配置示例,该置换函数的混合性能通过重复地应用相对简单的置换函数而被改善。在下面的描述中,在置换函数中重复的相对简单的置换将被称为“内部置换”,并且可以作为该置换的结果执行的置换将被称为“整体置换”。顺便提及,置换函数是下述函数,该函数基于输入值来产生输出值,使得输入和输出在尺寸上相同,并且相应的输入和输出值一对一对应。顺便提及,对于置换函数,逆函数因为这种属性而存在。在整体置换内,可以执行外部数据与在两个内部置换处理之间的中间数据的加法,并且向函数的外部输出该中间数据。在压缩函数中,存在下述情况其中,通过使用这种中间数据,执行向除了整体置换的原始输入和输出之外的位置的数据输入以及附加数据的输出。向除了原始输入之外的输入给出的这样的数据被称为附加输入,并且当使得中间数据成为除了原始输出之外的输出时,该数据被称为中间输出。在图21中图示的置换函数(置换处理部)310是具有附加输入311的置换函数的示例。此外,在图22中图示的置换函数(置换处理部)320是具有中间输出321的置换函数的示例。在图21和图22中图示的置换函数都基于支持a比特输入和输出的整体置换。内部被配置使得从内部置换1向内部置换k重复应用。在图21中图示的置换函数310具有下述配置附加输入311与作为内部置换的输出值的中间数据异或,并且被输出到在随后级的内部置换处理部或被输出到外部。在图22中所示的置换函数320中,作为内部置换的输出值的中间数据被作为中间输出321输出到外部。从现在开始,为了在这样的整体置换和通常的整体置换之间相区别,将在图21中图示的类型的置换函数称为具有附加输入的置换函数,并且将在图22中图示的类型的置换函数称为具有中间输出的置换函数。顺便提及,具有附加输入的置换函数继承了置换的下面的原始属性。*当附加输入固定时,在输入和输出之间有一对一的对应。此外,具有中间输出的置换函数具有带有从置换函数得出的下面的属性的特征。*输入和相应的中间输出一对一地对应。如上参考图13至图20所述,具有散列函数的压缩函数被配置来包括消息调度部 (MS部)和链接变量(CV)处理部。已知通过下述方式来来配置压缩函数在链接变量(CV)处理部中使用具有附加输入的置换函数,在消息调度部(MS部)中使用具有中间输出的置换函数,并且建立相互连接(Whirlpool)。图23图示使用这种现有的置换函数的压缩函数330的配置示例。在图23中所示的压缩函数330具有下述配置,消息调度部(MS部)331被设置为a比特的具有中间输出的置换函数,并且这个中间输出连接到 在链接变量(CV)处理部332中使用的具有附加输入的 a比特置换函数的附加输入。在图23中所示的配置中,为了使得描述容易,消息调度部(MS部)331和链接变量 (CV)处理部332作为a比特置换函数,但是消息调度部(MS部)331和链接变量(CV)处理部332可以不必然在尺寸上相同。当长度不同时,可以通过适当地执行扩展和减少操作来进行调整。此外,在图23中所示的所有中间输出可以不必然在消息调度部(MS部)331和链接变量(CV)处理部332之间连接,并且可以执行通过考虑安全性和处理效率的诸如适当的变薄的处理,并且可以选择在消息调度部(MS部)331和链接变量(CV)处理部332之间连接的中间数据。[11.扩展MS部的尺寸的方法]在图24中图示其中向压缩函数输入的数据的尺寸被扩展的压缩函数的配置示例。在图24中图示的压缩函数340是其中输入比特被增大到3a比特的压缩函数。在这个图24中图示的压缩函数340以与如上参见图18所述的配置类似的方式来配置,并且具有两个消息调度部(MS部)341和342以及单个链接变量(CV)处理部343,来自两个消息调度部(MS部)341的输出的异或(XOR)运算的结果被输入到链接变量(CV)处理部343。通过具有中间输出的置换函数来形成两个消息调度部(MS部)341和342的每一个。并且通过具有附加输入的置换函数来形成单个链接变量(CV)处理部343。在图24中所示的置换函数340被配置使得将2a比特的输入X划分为a比特部分, 所述a比特部分分别被输入到两个消息调度部(MS部)341和342,并且相应的两个消息调度部(MS部)341和342的中间输出被提供到单个链接变量(CV)处理部343。当以这种方式来使用具有附加输入的置换函数和具有中间输出的置换函数时,可以容易地提高输入长度。此外,在这个图24中所示的置换函数340的配置中,用作消息调度部(MS部)的两个置换函数应当不是相同的,这是因为在它们相同的情况下,当向相应的置换输入相同的a比特数据段时,对应的中间输出彼此匹配,并且取消异或(XOR)运算的结果。因为这个原因,必须准备用于这两者的不同置换函数,而不能失败。通过使得内部置换配置不同来实现这一点。也可以通过一般化在图24中所示的压缩函数的配置来将输入X增加为3a或更多的比特。例如,可以通过增加消息调度部(MS部)来实现这一点。将示出一种通过减小在图24中所示的配置中的处理量来提高速度的方法。在具有形成散列函数的多系列配置的压缩函数中,如参考例如图4和图5所述,由压缩函数输入的值是作为数据[X]的消息和作为数据Y的中间值,作为数据Y的中间值即链接变量(CV)。此时,用于消息处理的置换的重复的次数和用于链接变量(CV)系列的置换的重复次数不必然彼此一致。将例如描述下述情况其中,用于消息处理的置换的处理的次数在不损害安全性的范围内减半。像图24那样,图25是压缩函数350,其中,将输入比特增加到3a比特。向压缩函数350的2a比特输入X被划分为a比特分段,所述a比特分段然后分别被输入到两个消息调度部(MS部)351和352,并且相应的两个消息调度部(MS部)351和352的中间输出被输入到单个链接变量(CV)处理部353。
在图25中图示的两个消息调度部(MS部)351和352中的内部置换的重复次数被设置为在链接变量(CV)处理部353中的内部置换的重复次数的一半。在消息调度部(MS部)351中去除偶数编号的置换,而在消息调度部(MS部)352 中去除奇数编号的置换,使得在两个消息调度部(MS部)351和352中的内部置换的重复次数减半 。这种配置使得可以将消息处理所需要的运算减半。在图25中所示的这个压缩函数350中,与在图24中所示的压缩函数340的配置相比,减少了处理,并且可以预期软件处理将改善。在消息调度部(MS部)351和352中的函数的交替减小产生下述优点可以设置能够在硬件实现时同时执行处理的两种置换,并且可以使用小电路规模来实现处理,使得可以缩小硬件。此外,在图26中所示的压缩函数360中,像图25那样,将输入比特增加为3a比特。 向压缩函数360的2a比特输入X被划分为a比特分段,该a比特分段然后分别被输入到两个消息调度部(MS部)361和362,并且相应的两个消息调度部(MS部)361和362的中间输出被输入到单个链接变量(CV)处理部363。在图26中所示的压缩函数360中的链接变量(CV)处理部363被配置使得将一个内部置换部364加到在图25中所示的压缩函数350中的链接变量(CV)处理部353的第一级,这是其中向内部置换的重复次数增加一次重复的配置。在图26中所示的压缩函数360中,向链接变量(CV)处理部363的整体置换的开始位置加上一个内部置换。这是下述配置伴随这种改变,上消息调度部(MS部)361的输入值与链接变量(CV)处理部363的输入值异或。本配置具有下述特征当关注消息调度部(MS部)之一时,总是在链接变量(CV) 处理部363的每两个置换函数提供向链接变量(CV)处理部363提供的中间数据。在这种配置中,垂直消息调度部(MS部)361和362均勻地影响链接变量(CV)处理部363的系列, 并且平滑的混合是可能的。结果,存在安全性评估变得容易的优点。[12.扩展CV处理部的尺寸的方法]在图27中所示的压缩函数370指示下述配置其中,共享如上参考图15所述的压缩函数的两个系列的消息调度部。向在图15中提供的定义域扩展方法的b = a的情况的应用扩展了链接变量(CV)处理部的尺寸。在图27中所示的压缩函数370中,向消息调度部(MS部)371输入消息[X]的a 比特,并且作为充当中间值的两个链接变量(CV)的a比特分别被输入到链接变量(CV)处理部372和373。通过具有中间输出的置换函数来形成消息调度部(MS部)371。通过具有附加输入的置换函数形成两个链接变量(CV)处理部372和373每一个。消息调度部(MS部)371 的中间输出被设置为两个链接变量(CV)处理部372和373的附加输入。在链接变量(CV) 处理部372和373的每一个中,消息调度部(MS部)371的输出与输入或中间值异或,并且被输入到内部置换部。或者,这个输出用于产生输出值。[13.扩展CV处理部和MS部的尺寸的方法]在图28中所示的压缩函数380是在图27中图示的压缩函数370的修改,并且是如下压缩函数的配置示例,其中,通过与如上参考图24所述的压缩函数340的技术类似的技术来扩大向压缩函数输入的数据的尺寸。在图28中图示的压缩函数380是其中输入比特被增加到3a比特的压缩函数。在图28中所示的这个压缩函数380具有两个消息调度部(MS部)381和382 ;以及,单个链接变量(CV)处理部383、384,其被输入来自两个消息调度部(MS部)381和382的输出的异或(XOR)运算的结果。通 过具有中间输出的置换函数来形成两个消息调度部(MS部)381和382的每一个。通过具有附加输入的置换函数来形成两个链接变量(CV)处理部383和384的每一个。 消息调度部(MS部)381的中间输出被设置为向链接变量(CV)处理部383的附加输入。消息调度部(MS部)382的中间输出被设置为向链接变量(CV)处理部384的附加输入。通过两个链接变量(CV)处理部383和384,附加输入与输入或中间值异或,然后被输入到内部置换部,或被用于产生输出值。[14.配置用于定义域扩展方法的混合函数F的方法]可以通过下述方式来配置混合函数F:组合具有中间输出的置换函数和具有附加输入的置换函数。图29是通过组合两个具有中间输出的置换函数和两个具有附加输入的置换函数而配置的混合函数F 390的配置示例。混合函数F 390具有两个消息调度部(MS部)391和392 ;以及,单个链接变量 (CV)处理部393、394,向其输入来自两个消息调度部(MS部)391和392的输出的异或(XOR)
运算的结果。通过具有中间输出的置换函数来形成两个消息调度部(MS部)391和392的每一个。通过具有附加输入的置换函数来形成两个链接变量(CV)处理部393和394的每一个。消息调度部(MS部)391的中间输出被设置为向链接变量(CV)处理部393的附加输入。消息调度部(MS部)392的中间输出被设置为向链接变量(CV)处理部394的附加输入。通过两个链接变量(CV)处理部393和394,附加输入与输入或中间值异或,然后被输入到内部置换部,或被用于产生输出值。混合函数F 390接收作为输入[Y]的2a比特输入,并且产生和输出2a比特输出 [Z]。顺便提及,根据本发明的数据转换装置的内部置换可以被配置为部分减少,就像如上所述图25和图26中的配置那样。[15.实现具有高扩散性能的置换处理的方法]如上所述,可以通过重复地应用作为相对简单的置换函数的内部置换来实现向消息调度部(MS部)和链接变量(CV)处理部应用的置换函数。通过重复地应用这样的相对简单的置换函数,可以配置其混合性能被改善的置换函数。将参考图30来描述用作内部置换的置换函数的具体配置示例。在图30中,配置了具有高混合性能的置换函数的重复类型,因此这是作为在执行整体置换的置换函数中使用的内部置换的置换函数的配置示例。这个内部置换被重复地链接和应用,因此,配置了整体置换。在图30中的内部置换处理部(置换函数)410示出执行256比特输入和输出的置换的配置。通过32字节数据来表示要向内部置换处理部(置换函数)410输入的256比特的数据。每一个字节对应于在附图中图示的单条输入数据线。通过首先将从左起的4个字节(32比特)数据划分为8个组(Gl至G8)来进行描述。首先,在对应的非线性转换部411中,向奇数编号的组(G1、G3、G5和G7)中包括的4字节数据应用非线性转换处理。
当被从非线性转换部4 11输出时,四组(G1、G3、G5和G7)的每一个的4字节数据在异或(XOR)运算部412中与右侧下一个组的以字节为单位的数据异或,并且更新四个偶数编号的组(G2,G4,G6和G8)的每一个的4字节(32比特)数据。换句话说,组(Gl)的4字节数据的非线性转换结果数据与组(G2)的输入数据异或,组(G3)的4字节数据的非线性转换结果数据与组(G4)的输入数据异或,组(G5)的4字节数据的非线性转换结果数据与组(G6)的输入数据异或,并且组(G7)的4字节数据的非线性转换结果数据与组(G8)的输入数据异或。通过这些处理,更新四个偶数编号的组(G2,G4,G6和G8)的每一个的4字节(32 比特)数据。接下来,在交换处理部413中,执行每一个1字节单位数据的交换处理。由从非线性转换部411输出的数据形成的四组(G1、G3、G5和G7)的数据以组来移动,即左端的组的数据移动到右端组的位置,并且每一个剩余组的数据移动到左侧紧邻的下一个组的位置。换句话说,组(Gl)输出到输出组(Gout8)的位置,组(G3)输出到输出组(Gout2)的位置,组(G5)输出到输出组(Gout4)的位置,并且组(G7)输出到输出组(Gout6)的位置。以这样的对应来执行交换处理,并且产生输出。另一方面,在异或(XOR)运算部412中,通过被异或而更新的四个偶数编号的组 (G2,G4,G6和G8)的每一个的4字节(32比特)数据以字节划分,并且进行将每一个字节向不同的组移动的交换处理。向组(G2)的4字节数据应用下面的交换处理。从第一字节起,向组(G2)的4字节数据的相应字节分配AB⑶。组(G2)的第一个1字节数据A被输出为输出组(Goutl)的第一个1字节数据,组(G2)的第二个1字节数据B被输出为输出组(Gout3)的第二个1字节数据,组(G2)的第三个1字节数据C被输出为输出组(Gout5)的第三个1字节数据,并且组(G2)的第四个1字节数据D被输出为输出组(Gout7)的第四个1字节数据。以这样的对应来执行交换处理,并且产生输出。向组(G4)的4字节数据应用下面的交换处理。从第一字节起,向组(G4)的4字节数据的相应字节分配EFGH。组(G4)的第一个1字节数据E被输出为输出组(Gout3)的第一个1字节数据,组(G4)的第二个1字节数据F被输出为输出组(Gout5)的第二个1字节数据,组(G4)的第三个1字节数据G被输出为输出组(Gout7)的第三个1字节数据,组(G4)的第四个1字节数据H被输出为输出组(Goutl)的第四个1字节数据。以这样的对应来执行交换处理,并且产生输出。向组(G6)的4字节数据应用下面的交换处理。从第一字节起,向组(G6)的4字节数据的相应字节分配IJKL。
组 (G6)的第一个1字节数据I被输出为输出组(Gout5)的第一个1字节数据,组(G6)的第二个1字节数据J被输出为输出组(Gout7)的第二个1字节数据,组(G6)的第三个1字节数据K被输出为输出组(Goutl)的第三个1字节数据,组(G6)的第四个1字节数据L被输出为输出组(Gout3)的第四个1字节数据。以这样的对应来执行交换处理,并且产生输出。向组(G8)的4字节数据应用下面的交换处理。从第一字节起,向组(G8)的4字节数据的相应字节分配ΜΝ0Ρ。组(G8)的第一个1字节数据M被输出为输出组(Gout7)的第一个1字节数据,组(G8)的第二个1字节数据N被输出为输出组(Goutl)的第二个1字节数据,组(G8)的第三个1字节数据0被输出为输出组(Gout3)的第三个1字节数据,组(G8)的第四个1字节数据P被输出为输出组(Gout5)的第四个1字节数据。以这样的对应来执行交换处理,并且产生输出。顺便提及,在下一个回合的内部置换处理部(置换函数)中,将输出组(Goutl, Gout3, Gout5和Gout7)输入到非线性转换。以这种方式,通过执行用于交换输入和输出的交换处理,保证对于每一个以字节为单位的数据,执行不同类型的转换处理。如在图30中图示的内部置换处理部(置换函数)410的输出部中所示,假定32字节的输出是Xl至x32。例如,在图22中所示的具有中间输出的置换函数的中间输出等同于这些输出。换句话说,在参考图23至图27所述的每一个压缩函数或混合函数F的配置中的消息调度部(MS部)由具有中间输出的置换函数形成,但是等同于由这些消息调度部 (MS部)输出的中间输出。这个中间输出被输入为在图21中图示的具有附加输入的置换函数中的附加输入。例如,在参考图23至图27所述的每一个压缩函数或混合函数F的配置中的链接变量 (CV)处理部由具有附加输入的置换函数形成,并且作为这些链接变量(CV)处理部的附加输入,输入在图30中所示的内部置换处理部(置换函数)410的输出部的32字节输出xl 至 x32。顺便提及,如参考图23至图27所述,在压缩函数或混合函数F内多次设置在图30 中所示的内部置换处理部(置换函数)410的配置。可以进行设置,使得由这个内部置换处理部(置换函数)产生的中间数据的输出值xl至x32被全部使用或部分使用。例如,可以提供一种配置,其中,关注在图30中所示的内部置换处理部(置换函数)410的配置,并且仅在非线性转换部411的输出侧上的x5至x8、xl3至xl6、x21至x24 和x29至x32被用作中间输出。或者,可以提供如下配置,其中相反地,仅向在下一个置换函数中的非线性转换部输入的xl至x4、x9至xl2、xl7至x20和x25至x28被用作中间值。接下来,参考图31,将描述在参考图30所述的内部置换处理部(置换函数)410中配置的非线性转换部411的内部配置的示例。非线性转换部411可以被配置为接收4字节数据并且输出4字节数据的置换函数。向在图31中所示的非线性转换部411输入4字节数据。在图31中所示的单条线对应于1字节数据。在异或(XOR)运算部421中,输入数据分别与对于每一个非线性转换部411预定的四个常数值(常数)C1、C2、C3和C4进行异或。顺便提及,存在在参考图30描述的内部置换处理部(置换函数)410中配置的四个非线性转换部411,并且,在这四个非线性转换部411中设置相互不同的参数值(常数)。下面将描述设置这个常数值(常数) 的处理。在小非线性转换部422中对在异或(XOR)运算部421中分别与对于每一个非线性转换部411预定的四个常数值(常数)C1、C2、C3和C4异或的数据进行1字节输入和输出的非线性转换处理。小非线性转换部422的输出被输入到线性转换部423,并且在进行线性转换后被输出。顺便提及,在此所述的小非线性转换部422可以被称为S-box,并且可以被表达为256 个1字节数据的转换表。此外,线性转换部423被执行为通过相对于输入数据使用线性转换矩阵(M)进行转换处理来计算输出数据的处理。线性转换矩阵(M)也被称为扩散矩阵, 并且可以被表达为具有GF(28)个元素的4X4矩阵。顺便提及,也期望在可能的情况下,置换函数使得特定数据影响最大数量的数据段,并且同时不使得在输入和输出中包括的非零元素的和在低水平上。这对于改善抗分析攻击性和消除易损性是有效的。具体地说,这变成对于差分攻击和线性攻击的措施。如参考图23至图27所述,在压缩函数或混合函数F中多次地设置 在图30中所示的内部置换处理部(置换函数)410的配置。换句话说,执行下述处理,其中,以多个回合来重复在图30中所示的内部置换处理部(置换函数)410。此外,存在许多执行回合运算的加密算法,其中,以多个回合来重复同一置换处理配置,并且已知,所谓的DSM(扩散转换机制)的应用作为对抗易损性的措施是有效的,该措施使用多个不同的矩阵,例如两个矩阵[Ml]和[M2],而不使用作为单个固定矩阵向所有的回合应用的线性转换矩阵[M]。顺便提及,例如在日本未审查专利申请公报 No. 2007-199156中描述了应用了 DSM的加密算法,该日本未审查专利申请公报是与本申请相同的申请人的专利申请。通过这种DSM来改善易损性的效果在散列函数中也是有效的。换句话说,使用多个不同的矩阵,而不使得向所有回合应用的线性转换矩阵[M]是单个固定矩阵,因此,可以使得难以与随机函数相区别,并且可以改善对于各种分析处理的抗攻击性。图32图示内部置换处理部的重复回合的配置示例,其中,进行设置使得多个不同的矩阵被用作在图30中图示的内部置换处理部(置换函数)410的非线性转换部411中使用的线性转换矩阵[M],在压缩函数和混合函数F中设置了大量的内部置换处理部(置换函数)410。图32是描述简化配置的图,在该简化配置中,组合在压缩函数或混合函数F中多次设置的、在图30中所示的内部置换处理部(置换函数)的两个回合。内部置换处理部 (置换函数)440具有与在图30中的内部置换处理部(置换函数)410类似的配置。内部置换处理部(置换函数)450指示执行下一个内部置换的回合。每条输入线等同于4字节数据。如在图30中所示的内部置换处理部(置换函数)410那样,内部置换处理部(置换函数)440具有非线性转换部441、异或(XOR)运算部442和交换处理部443。非线性转换部441具有参考图31来描述的配置。如参考图31所述那样,非线性转换部441具有异或(XOR)运算部、小非线性转换部和线性转换部。线性转换部使用线性转换矩阵(M)来执行线性转换处理。图32图示每一个对于4字节数据单位作为非线性转换部441的四个非线性转换处理部,并且这些的每一个具有参考图31所述的配置。向在这四个非线性转换部中的线性转换部应用的线性转换矩阵(M)指示为在图32左起的M1、M2、M3和M4。线性转换矩阵Ml、 M2、M3和M4是不同的线性转换矩阵。在相应的回合中的内部置换处理部(置换函数)440和450具有相同的配置。换句话说,在内部置换处理部(置换函数)440和450的任何一个中,向在该四个非线性转换部中的线性转换部应用的线性转换矩阵(M)是从左起的M1、M2、M 3和M4。以这种方式,在该内部置换中,在相同的位置使用相同的矩阵。从在图32中所示的链接回合的线(粗线)中显然的那样,在上级的回合中的内部置换处理部(置换函数)440的非线性转换的输出与在下级的回合中的内部置换处理部 (置换函数)450中的一个非线性转换的输出进行异或。例如,在异或(XOR)运算部452中,在上级的回合中的内部置换处理部(置换函数)440中的非线性转换部441的左端的、具有线性转换矩阵Ml的非线性转换部441a的输出(在图中的输出A)与在下级的回合中的内部置换处理部(置换函数)450中的非线性转换部451的右端的、具有线性转换矩阵M4的非线性转换部451d的输出(在图中的输出B) 进行异或。作为结果的输出是在图中所示的输出C。在上级的回合中的在内部置换处理部(置换函数)440中的非线性转换部441 的四个非线性转换部的输出的任何一个与在下级的回合中的在内部置换处理部(置换函数)450中的非线性转换部451的四个非线性转换部的输出的任何一个进行异或。当其中每一个在每一个垂直回合中被异或的、非线性转换部441的输出和非线性转换部451的输出的组合被表达为在每一个非线性转换部中的线性转换矩阵[M]的组合时,该组合如下所示。(I)Ml和M4(非线性转换部441a和451d)(2)M2和Ml (非线性转换部441b和451a)(3)M3和M2(非线性转换部441c和451b)(4)M4和M3(非线性转换部441d和451c)以这种方式,通过提供其中使得使用不同的线性转换矩阵执行线性转换处理的结果彼此影响的配置,可以实现应用了上述的DSM(扩散转换机制)的配置,并且改善抗分析攻击性。顺便提及,当通过使用符号“ I ”来表达在两个矩阵之间的链接时并且当提供了下述配置时,可以进一步改善抗分析攻击性选择和使用矩阵,在该矩阵中,进行设置使得作为成对的上述矩阵(1)至(2)的链接矩阵的分支的数量变大(例如,三个或更多),该成对的上述矩阵(1)至(2)为M1|M4,M2|M1,M3|M2,M4|M3。或者,它是下述配置在该配置中,其中获得通过置换相应的逆矩阵而获取的所有矩阵的、矩阵tMr1ItMf1, tMf1ItMr1, tIO-11 tIC-1,和tMf11 tIC-1的分支的数量是三个或更多个。通过提供其中因此使得分支的数量较大的配置,可以改善对于差分攻击和线性攻击的抗攻击性。以这种方式,期望提供提供下述配置作为在要作为重复的回合操作执行的内部置换处理部(置换函数)中的非线性转换部中设置的线性转换矩阵,使用通过采用DSM配置的不同矩阵。此外,期望要使用的矩阵具有下述配置在成对的相互影响的矩阵的链接矩阵中的分支的数量被设置得较大。顺便提及,在参考图32提供的描述中,使用四个矩阵来用于描述,但是通过使用两个矩阵来满足相同数量的分支的条件的实施方式也是可能的。例如,可以提供下述配置 Ml |M2的分支的数量是3个或更多个,或通过布置通过置换逆矩阵而获取的矩阵而获得的 tMr11 tMT1的分支的数量是3个或更多个,因此,以与在图33中图示的配置类似的方式来建立矩阵布置。在图33中所示的配置中,当在每一个垂直回合中进行异或的非线性转换部441的输出与非线性转换部451的输出的组合被表达为在每一个非线性转换部中的线性转换矩阵[M]的组合时,该组合如下所示。(I)Ml和M2(非线性转换部461a和471d)(2)M2和Ml (非线性转换部461b和471a)
(3) Ml和M2(非线性转换部461c和471b)(4)M2和Ml (非线性转换部461d和471c)在图33中所示的这种配置可以在实现上减少硬件电路和减小矩阵所需要的存储器中的表的大小,因此是另一种优选的配置。以这种方式,通过提供其中使得使用不同的线性转换矩阵执行线性转换处理的结果彼此影响的配置,可以实现应用了上述的DSM(扩散转换机制)的配置,并且改善抗分析攻击性。至此,已经描述了用于实现改善其混合性能的整体函数的内部置换的配置示例。 顺便提及,上述的处理示例已经被描述为256比特输入的示例,但是这是示例,可以不同地设置数据尺寸,并且可以根据数据尺寸来提供配置。在该情况下,进行设置以还根据小非线性转换部和线性转换部的输入尺寸和输出尺寸来执行处理。[16.产生具有高独立性的输出的置换函数的方法]在上面的处理示例中,已经将在压缩函数和混合函数F中多次设置的内部置换处理配置描述为其中例如使用在图30中图示的内部置换处理配置的处理示例,并且将这个同一配置设置为重复进行。通过如上所述配置这个内部置换处理的非线性转换部中的线性转换处理矩阵,可以改善抗分析攻击性。此外,在需要多个整体压缩函数的配置中,存在下述情况通过使用多个整体置换来改善抗分析攻击性,就好像置换独立于彼此作用那样。在该情况下,存在通过改变在这些整体置换中包括的内部置换而实现的方法。将描述其配置示例。为了实现多个不同的整体置换的处理,用于改变在整体置换的每一个中的内部置换中包括的部件的技术是有效的。然而,考虑实现效率和安全评估处理的容易性,不总是期望使用多个不同的部件。期望通过将要使用的部件减少到最少来实现各种处理。作为用于使得内部置换处理对于每一个整体置换不同的配置,可以设想下面的配置。*进行改变使得要用于每一个整体置换的常数(在图31的异或(XOR)运算部421 中使用)彼此替换。
*使得作为非线性 转换部的S-box(图31的小非线性转换部422)或线性转换矩阵(图31的线性转换部423)不同,并且被重复地使用以提供整体置换,其中,该非线性转换部是在整体置换中包括的内部置换的部件。顺便提及,常数值是要在参考图30和图31所述的内部置换处理部410的非线性转换部411的异或(XOR)运算部421中输入的常数。然而,为了对于每一个整体置换全面改变常数值或改变S-box、矩阵等,需要提供这些不同的数据段和部件配置,并且必须提高电路和存储器容量。在电路和存储器容量上的这种提高在实现上是缺点,并且用于重新评估安全性的成本也提高,这是一个问题。因此,在本发明中,进行设置使得内部置换处理配置从一个整体置换向另一个整体置换不同。(a)当使用多个不同的小非线性操作(S-box)(图31的小非线性转换部422)时, 对于每一个整体置换替换内部置换的小非线性操作(S-box)。(b)要被用作线性转换部(图31的线性转换部423)的矩阵被设置为从单个矩阵产生的多个不同的矩阵,并且所述矩阵被设置为从一个整体置换到另一个整体置换变化。 例如,通过执行行的交换和列的交换,从单个矩阵产生多个不同的矩阵。(c)当将多种矩阵用作要被用作线性转换部(图31的线性转换部423)的矩阵时, 对于每一个整体替换替换内部置换的矩阵(在其中DSM的条件未被破坏的范围内、当使用上述的DSM时等)。(d)上述的(a)至(C)的任何一个的组合。可以基于诸如上述的(a)至(d)的设置来在重复地执行的内部置换处理中有效率地改变置换处理配置。换句话说,在不大大地提高电路和存储器容量的情况下,可以执行不同的置换处理。具体地说,当组合上述的(C)和(b)时,可以有效地实现不同的整体置换。换句话说,当应用上述的DSM配置并且在存储器中存储两种或更多种的线性转换矩阵时,提供了下述配置通过交换这些矩阵的行和列来产生新的矩阵,并且这些新的矩阵被用作线性转换矩阵。当进行这样的设置时,可以基于小数据量来有效地执行不同的线性转换处理。顺便提及,在其中使用DSM并且提供多个不同的线性转换矩阵的配置中,产生当执行交换矩阵的行和列的处理时评估安全性的问题,但是已知如果使用具有预定规则的矩阵,例如轮换矩阵或Hadamard矩阵,则即使当应用通过交换行和列而产生的矩阵时也不影响安全评估。因此,可以说,安全评估是容易的,并且通过容易的改变来建立不同的置换函数是有效的手段。[17.产生向置换函数应用的常数的处理]如上所述,作为用于将每一个回合的置换处理配置设置为不同的一种技术,用于进行改变以使得以每一个回合为单位或以多个回合为单位将常数(在图31的异或(XOR) 运算部421中使用的[C])替换为另一个的技术是有效的。然而,为了保留与大量的回合对应的常数,需要大的存储器容量。下面,将描述下述配置示例其中,从小数量的常数来有效率地产生多个不同的常数,并且可以在置换函数中使用所述多个不同的常数。首先,限定置换函数所需要的常数。在此,将4个字节统称为一个字。例如,在图30中的内部置换处理部(置换函数)410中有四个非线性转换部,每一个非线性转换部具有在图31中所示的配置。如图31中所示,在一个非线性转换部411中,使用四个常数。每一个常数在与1字节的输入数据的异或运算中使用,因此,一个常数Cn是1字节数据。在一个非线性转换部411中,使用四个常数,因此,每一个非线性转换需要1个字的常数。在图 30中的内部置换处理部(置换函数)410中,存在四个非线性转换部,因此, 对于一个内部置换处理需要4个字的常数。当将这个基本置换重复k次并且因此配置整体置换时,总共需要4k字的常数。在此,在其数量为k的内部置换中,在从输入侧数的第i个内部置换中包括的第j 个常数值被表达为Cu。因此,可以将单个整体置换所需要的常数表达如下。(单个整体操作所需要的常数组的示例)第一内部置换=Clil,Clj2,C1j3, C1j4第二内部置换=C2il,C2j2,C2j3, C2,4第三内部置换=C3il,C3j2,C3,3,C3,4第四内部置换=C4il,C4j2,C4j3, C4,4第k-Ι 内部置换(; ,CkI2, Qri,3,C1^4第k 内部置换=Cu, Ckj2, Ckj3, Ck,4作为公开产生常数的方法的常规技术,存在在例如日本未审查专利申请公报 No. 2008-58827中公开的一种技术。这种常规技术是用于下述的方法8次使用在8比特变量中存储的值以产生64比特的常数;并且,为了进一步产生下一个常数,假定在该变量中的数据为在GF (28)上的元素,并且将该数据进行χ倍或χ—1倍的运算,由此依序增大该种类的数据。顺便提及,当通过多项式f(x)来表达用于限定要使用的有限场GF(2n)的不可约多项式时,在此使用的χ是变量X。下面,作为常数产生处理结构,将描述一种下面的方法基于通过参数产生数据的 X倍运算而获得的系列来产生部分常数,并且基于通过χ—1倍运算获得的系列来产生其余部分。这种方法使得可以局部破坏在常数值之间的简单关系,而不增加用于产生的工作。结果,可以增加常数的无序性。在该情况下,将描述下述示例其中,从单个16比特值来建立等同于两个字的64个比特。将与在上述日本未审查专利申请公报No. 2008-58827中公开的常数产生处理作比较地描述根据本发明的常数产生处理。首先,将描述常规的常数产生过程。常规的常数产生过程如下。[1]在16比特变量S的每一个中存储初始值。[2]i = 1···1 进行下面的处理。(2. DCia = (S xor Mask1) <<< Rot1I (S xor Mask2) <<< Rot2Ci,2 = (S xor Mask3) <<< Rot3 (S xor Mask4) <<< Rot4Ci,3 = (S xor Mask5) <<< Rot5 (S xor Mask6) <<< Rot6Ci,4 = (S xor Mask7) <<< Rot7 (S xor Mask8) <<< Rot8(2. 2) S — S · χ顺便提及,Maskn和Rotn是单独地确定的常数。顺便提及,在此,符号“ |,,指示在比特之间的链接。(A xor B)指示A和B的异或(XOR)运算处理。以这种方式产生的四个常数(CiJo Ci,4)可以第一眼看起来是随机数,但是仅通过掩蔽运算和旋转移位运算来进行改变,因此,存在下述特征不论值S是什么,总是在常数之间保持由特定线性操作表达的关系。正如块加密的示例中明显的那样,仅通过线性转换来提高无序经常是不够的,并且期望在可能时存在非线性属性。接下来,将描述根据本发明的参数产生技术,其中,在常数之间引入非线性关系, 而不提高实现成本和降低性能。[1]在16比特变量S和T的每一个中存储初始值。[2]i = 1···1 进行下面的处理。(2. DCia = (S xor Mask1) <<< Rot1I (S xor Mask2) <<< Rot2Ci,2 = (S xor Mask3) <<< Rot3 (S xor Mask4) <<< Rot4Ci,3 = (Τ xor Mask5) <<< Rot5I (Τ xor Mask6) <<< Rot6Ci,4 = (Τ xor Mask7) <<< Rot7I (Τ xor Mask8) <<< Rot8(2· 2)S 一 S · χ,T 一 T · χ-1根据上面的处理,应用16比特变量S和Τ,因此,产生四个常数(Cu至Ci,4),使得在每一个内部置换中包括的四个常数的一半是χ倍系列,并且剩余的一半属于χ-1倍系列。通过以这种方式配置,在从S产生的常数和由T构成的常数之间不保持固定的线性关系,并且,获得改善独立性的效果。当一般化和描述上述的常数产生处理时,可以解释这是下述处理其中,通过使用诸如Xa和Xb的具有不同的指数的值来更新初始值S和Τ。通过经由应用这样的初始值S和 T来产生多个常数,所产生的常数的一半变为Xa倍系列,并且剩余的一半属于Xb倍系列。顺便提及,此外,如果可接受不仅S和T两个系列的增加,此外可接受初始值的增力口,则可以提供其中通过使用三个或更多个系列来产生常数的配置。[18.产生用于多个整体置换的常数的方法]在压缩函数中,存在多个整体置换,并且对于每一个整体置换,必须准备由多个常数形成的一组常数值。假定整体置换的数量是m,则这些被表达为Ρ1、Ρ2、…、Pm。如果应用上述的常数产生技术,则可以应用下述方法其中,根据其数量为m的这些整体置换来对于每一个整体置换改变在m个组中的初始值,并且产生要在整体置换中的内部置换中应用的每一个常数值。然而,这样的技术的使用使得用于通过m来产生常数值的工作加倍,这是低效率的。将描述一种用于简化产生要向多个整体置换应用的常数组的处理的技术。例如, 当在压缩函数中存在其数量为m的整体置换时,通过使用多个初始值S和T的上述方法来产生第一整体置换所需要的常数,通过将对于第一整体置换产生的常数进行简单操作来产生第二和随后的整体置换所需要的常数。在数据转换处理的一种配置中,例如,在其中在压缩函数中设置其数量为m的整体置换的配置中,由Cm (χ)来表达在从第χ整体置换的输入侧数的第i个内部置换中包括的第j个常数值(字)。假定通过使用多个初始值S和T的上述方法来产生用于第一整体置换的常数(;,」(1)。此时,产生用于第二和随后的整体置换的常数Ci,」(2),Ci,」(3),…(;,“!!!)。参考图34,将描述一种用于产生用于第二和随后的整体置换的常数Ciij (2),Ciij (3),-Ci, ,.(m) 的方法。图34图示作为其数量为m的整体置换所需要的常数组的、由使用多个初始值S和 T的上述方法产生的第一常数组480以及通过第一常数组480的转换处理产生的第二常数组481、第三常数组482和第m个常数组483。这是下述示例其中,进行设置使得在其数量为m的所有整体置换中,其数量为k 的内部置换被包括在一个整体置换中,并且对于一个整体置换需要四个常数的字。 由向第一常数组480应用的转换处理来产生第二到第m个组。将描述转换处理的具体示例。作为转换处理,可以应用下面三种类型的转换处理的任何一种。(转换处理示例1)假定对于每一个整体置换所区别地确定的旋转量是Rx,并且基于Ciij(X) = Ci, j(l) <<<Rx来产生常数。Cio- (1)是作为由使用多个初始值S和T的上述方法产生的第一常数组480的元素的常数。χ是常数组的标识号,并且取值2至m。(转换处理示例2)假定对于每一个整体置换所区别地确定的掩蔽值(字)是Mx,并且基于Cm(X)= Cijj(I)Xor Mx来产生常数。Cio- (1)是作为由使用多个初始值S和T的上述方法产生的第一常数组480的元素的常数。χ是常数组的标识号,并且取值2至m。(转换处理示例3)从上述转换处理示例1和2的组合产生的方法。基于Cy (χ) = (Cijj(I) <<< Rx) xor Mx ^ Cijj (χ) = (Cijj(I)Xor Mx) <<< Rx
来产生常数。Cio- (1)是作为由使用多个初始值S和T的上述方法产生的第一常数组480的元素的常数。χ是常数组的标识号,并且取值2至m。通过应用上述转换处理示例1至3的任何一个,可以从一个常数组产生多个不同的常数组,并且这些被设置为向相应的整体置换应用的常数。顺便提及,在上述转换处理示例1的情况下,可以保证,只要Cm(O)没有特殊比特模式,则在对于任意的x、y的Cm(X)和CM(y)之间的异或的结果不变为0,因此,可以配置不同的整体置换。此外,在上述转换处理示例2的情况下,也可以保证异或运算的结果不变为0,因此,这个处理示例也适合于产生不同的整体置换。顺便提及,在上述转换处理示例中所示的旋转量和掩蔽值被配置来使用对于每一个整体置换确定的值,但是可以在其中多个值被设置并且用于产生一个整体置换所需要的多个常数值的配置中预期类似的效果。通过采用这些方案,只要存在用于第一置换函数的一组常数值,则可以以轻处理为代价来建立用于另一个置换函数的一组常数值,因此,可以预期处理的加速。具体地说,当在数据转换装置中实现程序执行功能,即软件时,可以必要时以动态地建立用于所有的整体置换的一组常数值的形式来提供编程配置而没有在存储器上展开, 因此,可以预期在存储器使用效率上的提高。顺便提及,已经通过使用下述示例来提供描述在该示例中,旋转操作的目标基于字单位,但是这可以改为以连接的两个或更多个字为单位来应用旋转的形式,并且可以预期与如上所述的效果类似的效果。[19.减少散列函数的输出值的技术]接下来,将描述数据转换装置的配置示例,其中,在散列值产生处理配置中,准备用于输出η比特散列值的函数,并且截断k比特输出,因此可以输出n-k比特散列值。这是下述配置其中,例如,准备具有256比特的输出的散列函数,并且该输出被减少32比特以产生224比特的散列函数。图35图示在整体置换的最后级中的内部置换处理配置,这是与在图30中所示的内部置换处理部(置换函数)410类似的配置。输出71至%是整体置换的输出,并且指示作为散列函数的输出的散列值。顺便提及,图35以简化的方式图示作为一条数据线的1个字(4字节)的数据线。71至%的输出整体变为4\8 = 32字节=256比特的输出。顺便提及,为了容易描述,假定在输出紧前不执行在异或运算后交换数据段的处理。此外,假定与在输出紧前的数据系列进行异或的数据Xi代表前向反馈的数据,所述前向反馈的数据是由作为向这个压缩函数输入的中间值的链接值(CV)、消息等形成的。在此,将描述一种用于删除输出的η比特数据的k比特数据并由此执行输出数据的减少的方法。必须在图中的输出系列Y1至y8中确定要切断在哪个数据系列中包括的比特。作为一种方法,存在其中从左依序切断每一个k比特块的方案。在该情况下,可设想下面的问题。如果该k个比特在从左起的两条数据线的尺寸的和之外,则在左端的非线性转换处理的结果不影响剩余输出的任何比特。这使得显然这部分的计算是无用的。关于不被偏置到特定数据系列以使得避免这样的浪费的减少技术,将描述下面两种处理技术。(数据减少技术1)假定输出数据系列的数量是m,并且,假定要切断的比特的数量(要删除的比特的数量)是k。为了将k个比特尽可能均勻地划分为m个块,根据下面的等式来计算参数a和b。[等式1]
a = m-(k-mx Lk/mJ )
b = k - m χ Lk/mJ|_k/m」指示(k/m)的整数部分。在下面,将|_k/m j表达为f (k/m)。通过上面的公式,计算a和b。
32
顺便提及,a+b= m。在作为输出获得的其数量为m的系列yl至ym中,从在其数量是a的输出系列中的每一个输出数据段,减少了 f(k/m)比特。此外,从在其数量是b的剩余的输出系列中的每一个输出数据段,减少了 f(k/m)+l比特。换句话说,如图36中所示,对每一个输出系列执行数据减少处理。当使用置换时,可以通过执行离散的切断,而不是通过切断依序比特串来保证所有的非线性转换的结果影响任何输出,因此,在用于产生输出值的处理中不发生浪费。在如上所述的输出比特减少处理中,以所有的输出数据系列作为数据减少的目标来执行处理,但是可以提供下述配置仅选择输出系列的一部分,并且执行数据减少处理。例如,在图33中所示的内部置换处理配置中,从左起的两个输出数据被同一非线性转换的输出影响,因此,可以提供下述配置例如,仅将从左起的奇数编号(或偶数编号) 的数据系列选择为切断的目标。即使当执行这样的处理时,也可以预期像上述效果那样的不出现处理的浪费的效果,此外,可以减少处理的工作,因为要切断的部分的数量变小。顺便提及,当输出系列的数量是η时,这个系列的选择配置可以被应用到要切断的比特长度不大于η/2的情况。(数据减少技术2)假定输出数据系列的数量是m,并且,假定要切断的比特的数量(要删除的比特的数量)是k。为了将k个比特尽可能均勻地划分为m个块,根据下面的等式来计算参数a和b。[等式2]
权利要求
1.一种数据转换装置,包括混合处理部,用于对输入数据执行数据混合处理;以及压缩处理部,用于对包括数据段的输入数据执行数据压缩处理,所述数据段是消息数据的分段,所述消息数据是数据转换的目标,其中所述压缩处理部包括多级压缩子部,所述多级压缩子部能够接收在所述消息数据中的所有所述数据段,所述多级压缩子部的一部分被配置来基于所述混合处理部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,所述多级压缩子部的一部分被配置来基于前一级压缩子部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,并且位于所述多级压缩子部的最后级中的压缩子部被配置来输出所述消息数据的散列值。
2.根据权利要求1所述的数据转换装置,其中,所述多级压缩子部具有MD结构 (Merkle-Damgard 结构)。
3.根据权利要求1所述的数据转换装置,其中,所述多级压缩子部具有多个处理系列, 所述多个处理系列接收在所述消息数据中的相同数据段以并行地执行处理。
4.根据权利要求1所述的数据转换装置,其中所述混合处理部被配置来对所述输入数据执行所述数据混合处理,并且产生其比特数量等于在所述输入数据中的比特数量的输出数据,并且所述压缩处理部被配置来对所述输入数据执行所述数据压缩处理,并且产生其比特数量小于在所述输入数据中的比特数量的输出数据。
5.根据权利要求1所述的数据转换装置,其中,所述数据转换装置被配置使得交错地执行在所述混合处理部中的所述数据混合处理和在所述压缩处理部中的所述数据压缩处理。
6.根据权利要求1所述的数据转换装置,其中,所述数据转换装置被配置使得与在所述压缩处理部中的每一个多级数据压缩处理对应地执行所述混合处理部的所述数据混合处理。
7.根据权利要求1所述的数据转换装置,其中,所述混合处理部包括 数据转换部,用于执行在所述输入数据中的比特数量的调整处理;以及混合部嵌入压缩部,用于接收所述输入数据和来自所述数据转换部的输出,以对于其执行压缩处理。
8.根据权利要求7所述的数据转换装置,其中,所述数据转换部包括多个数据转换子部,所述多个数据转换子部并行地执行处理,并且所述混合部嵌入压缩部具有多个压缩子部,所述多个压缩子部对于来自相应的数据转换部的输出并行地执行处理。
9.根据权利要求1所述的数据转换装置,其中,所述混合处理部包括具有中间输出的置换函数执行部,其被配置来重复地执行每一个置换处理,以输出作为每一个所述置换处理的结果的中间值;以及具有附加输入的置换函数执行部,其被配置来使用从所述具有中间输出的置换函数执行部输出的所述中间值作为附加输入来重复地执行置换处理。
10.根据权利要求9所述的数据转换装置,其中,所述具有附加输入的置换函数执行部被配置来使用异或结果作为在后级的所述置换处理的输入数据,所述异或结果是在从所述具有中间输出的置换函数执行部输出的所述中间值和在前一级中的置换处理的结果之间的异或的逻辑值。
11.根据权利要求9所述的数据转换装置,其中,由所述置换函数执行部执行的置换处理的每一个被配置来包括对于输入数据的一部分或全部执行的非线性转换处理和作为数据交换处理的交换处理。
12.根据权利要求11所述的数据转换装置,其中,所述非线性转换处理是包括使用常数的异或运算、非线性转换和使用线性转换矩阵的线性转换的处理。
13.根据权利要求12所述的数据转换装置,其中,根据使用多个不同矩阵的DSM(扩散切换机制)执行由所述置换函数执行部执行的每一个所述置换处理中的所述线性转换处理。
14.根据权利要求9所述的数据转换装置,其中,由所述置换函数执行部执行的每一个所述置换处理被配置使得基于彼此不同的多个常数集的相应的一个来执行数据处理,并且由对于基本集执行的数据转换处理产生并且彼此不同的多个常数集被应用到相应的置换处理,所述基本集被定义为要被应用到一个置换处理的常数集。
15.根据权利要求14所述的数据转换装置,其中要被用作所述基本集的所述常数集包括通过向彼此不同的多个初始值S和T应用转换规则而产生的多个常数,并且所述转换规则被配置来包括对于所述初始值的更新处理,通过下面的表达式来表示所述更新处理S — S · xa,T — T · xb其中,a ^ b0
16.根据权利要求14所述的数据转换装置,其中,用于所述基本集的所述数据转换处理是允许对于构成所述基本集的每一个常数执行比特旋转操作的处理或允许对于预定掩蔽数据执行运算的处理。
17.根据权利要求1所述的数据转换装置,其中所述数据转换部被配置来执行截止处理,所述截止处理允许最终输出的散列值在比特数量上减少,并且根据预定的计算表达式来对于构成所述数据转换部的输出的多个输出数据系列的每一个的输出比特执行要减少的比特数量的计算,然后,根据所述计算的结果来执行所述截止处理。
18.—种在数据转换装置中执行的数据转换方法,所述方法包括步骤混合处理部对输入数据执行数据混合处理;以及压缩处理部对输入数据执行数据压缩处理,所述输入数据包括数据段,所述数据段是消息数据的分段,所述消息数据是数据转换的目标,其中,所述压缩处理部包括多级压缩子部,所述多级压缩子部接收在所述消息数据中的所有所述数据段,所述多级压缩子部的一部分被配置来基于所述混合处理部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,所述多级压缩子部的一部分被配置来基于前一级压缩子部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,并且位于所述多级压缩子部的最后级中的压缩子部被配置来输出所述消息数据的散列值。
19. 一种程序,包括记录序列,所述记录序列允许数据转换装置执行数据转换处理,所述序列包括步骤混合处理部对输入数据执行数据混合处理;以及压缩处理部对输入数据执行数据压缩处理,所述输入数据包括数据段,所述数据段是消息数据的分段,所述消息数据是数据转换的目标,其中,所述压缩处理部包括多级压缩子部,所述多级压缩子部接收在所述消息数据中的所有所述数据段,所述多级压缩子部的一部分被配置来基于所述混合处理部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,所述多级压缩子部的一部分被配置来基于前一级压缩子部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理,并且位于所述多级压缩子部的最后级中的压缩子部被配置来输出所述消息数据的散列 值。
全文摘要
实现了一种用于产生具有增强的抗分析攻击性和高安全度的散列值的数据转换装置。提供了用于对输入数据执行数据混合处理的混合处理部以及用于对包括数据段的输入数据执行数据压缩处理的压缩处理部,所述数据段是消息数据的分段,所述消息数据是数据转换的目标。多级压缩部的一部分接收所述混合处理部的输出和在所述消息数据中的所述数据段两者来执行所述数据压缩处理。提供了至少在多个回合的压缩处理回合的固定时间执行混合处理的配置,因此,实现了产生具有改善的抗分析攻击性和高安全度的散列值的数据转换装置。
文档编号G09C1/00GK102216967SQ20098013227
公开日2011年10月12日 申请日期2009年8月25日 优先权日2008年8月25日
发明者岩田哲, 涩谷香士, 白井太三, 盛合志帆, 秋下彻 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1