加密装置及方法与流程

文档序号:11147418阅读:1104来源:国知局
本发明的实施例涉及一种加密技术。
背景技术
::现有的白盒密码算法的实现方式可以根据成为基础的对称密钥密码算法的内部特征而不同,并且因为依靠基础算法,所以很难提供普适性,并且为了保护基础算法的密钥而需要插入较多的额外运算,所以相比于基础算法,导致降低几十倍的效率。并且,现有的白盒密码算法无法提供与设计者的初衷相匹配的足够的安全性,且实时暴露于密钥复原攻击下。现有技术文献专利文献(专利文献0001)韩国公开专利第10-2012-0030335号(2012.03.28)技术实现要素:本发明的实施例的目的在于提供一种加密装置以及方法。根据本发明的一实施例的加密装置,包括:密钥表生成部,用于生成从种子值导出的任意值,并生成包含所生成的所述任意值的密钥表;以及加密部,使所生成的所述密钥表和置换函数交叉地反复结合而生成加密算法,并利用所生成的所述加密算法而对明文数据块进行加密。所述种子值可以是能够用比特串表示的初始输入值。所述种子值可以是密钥、计数器值以及初始化向量中的一个。所述密钥表生成部可以基于用于加密的可用存储器的大小确定所述任意值的大小。所述加密部可以基于密钥值被所述密钥表代替的艾文-曼苏尔方案来使所述密钥表和所述置换函数交叉地反复结合。所述加密部可以使r+1个(其中,r为r≥1的整数)密钥表和r个置换函数交叉地反复结合而生成所述加密算法。所述r+1个密钥表可以全部相同。所述r+1个密钥表可以均不相同。所述r+1个密钥表中可以部分密钥表不相同。所述r个置换函数可以全部相同。所述r个置换函数可以均不相同。所述r个置换函数中可以部分置换函数不相同。所述置换函数可以是块加密算法。根据本发明的一实施例的加密方法,包括如下步骤:生成由种子值导出的任意值;生成包含所生成的所述任意值的密钥表;使所生成的所述密钥表和置换函数交叉地反复结合而生成加密算法;利用所生成的所述块加密算法而对明文数据块进行加密。所述种子值可以是能够用比特串表示的初始输入值。所述种子值可以是密钥、计数器值以及初始化向量中的一个。在所述生成任意值的步骤中,可以基于用于加密的可用存储器的大小来确定所述任意值的大小。在生成所述块加密算法的步骤中,可以基于密钥值被所述密钥表代替的艾文-曼苏尔方案来使所述密钥表和所述置换函数交叉地反复结合。在所述生成加密算法的步骤中,可以交叉地反复结合r+1个密钥表和r个置换函数。所述r+1个密钥表可以全部相同。所述r+1个密钥表可以均不相同。所述r+1个密钥表中可以部分密钥表不相同。所述r个置换函数可以全部相同。所述r个置换函数可以均不相同。所述r个置换函数中可以部分置换函数不相同。所述置换函数可以是块加密算法。根据本发明的一实施例的储存于计算机可读存储介质的计算机应用程序,该应用程序与硬件结合以执行如下步骤:生成由种子值导出的任意值;生成包含所生成的所述任意值的密钥表;使所生成的所述密钥表和置换函数交叉 地反复结合而生成加密算法;利用所生成的所述块加密算法加密明文数据块。根据本发明的实施例,可以不进行现有的为了保护密钥而伴随的多个额外运算过程,而在基础函数的效率性上只增加密钥表的接近(access)速度,并且可以与应用环境内的所要保护的数据的大小无关而可变地进行设计,因此与现有的白盒实现方式相比可以提高效率性。附图说明图1为根据本发明的一实施例的加密装置的构成图。图2为示出由加密部生成的加密算法的构成的示例图。图3为示出利用置换函数生成AES算法的加密算法的构成的示例图。图4为根据本发明的一实施例的密钥表生成部的详细构成图。图5为例示出运算部中使用的轮函数的例子的图。图6为根据本发明的一实施例的加密方法的流程图。符号说明100:加密装置110:密钥表生成部111:密钥生成部113:运算部130:加密部具体实施方式以下,将参照附图而对本发明的具体实施形态进行说明。以下的详细的说明是为帮助包括对本说明书中描述的方法、装置以及/或者系统的理解而提供的。然而这仅仅为示例,本发明并不局限于此。在说明本发明的实施例时,如果判断为对与本发明相关的公知技术进行的具体说明会给本发明的主旨带来不必要的混乱,则将省略对其的详细说明。并且,下述的术语为考虑到本发明中的作用而给出定义的术语,其可以根据用户、适用者的意图或者习惯等而不同。所以,其需要基于本说明书的整体内容来做出定义。在详细的说明中使用的术语只是用于叙述本发明的实施例的,而并不具有限制作用。在没有明确的反例时,单数形态的表现形式包括复数形态的含义。本说明书中,要理解“包括”或者“具有”等表述指某些特征、数字、步骤、操作、要素以及它们的部分或者组合,不能理解成排除 所叙述的之外的一个或以上的其他特征、数字、步骤、操作、要素以及它们的部分或者组合的存在或者可能性。图1为根据本发明的一实施例的加密装置的构成图。参考图1,根据本发明的一实施例的加密装置100包括密钥表生成部110以及加密部130。密钥表生成部110利用种子值(seedvalue)生成从种子值导出的任意值,并生成包含生成的任意值的密钥表(Keytable)。此时,密钥表可以是由种子值导出的任意值组成的查找表(lookuptable)。并且,种子值可意指能够用比特串(bitstring)表示的初始输入值。例如,种子值可以包括密钥、块加密(BlockCipher)的操作作业模式中使用的计数器值、由任意比特串组成的初始化向量等。另外,根据本发明的一实施例,由密钥表生成部110生成的密钥表的各个任意值的大小可根据在应用加密装置100的计算环境内可为加密而得到利用的可用存储器的大小而确定。加密部130可以通过交叉地反复结合由密钥表生成部110生成的密钥表和置换函数而生成加密算法,并且可以利用所生成的加密算法而对明文数据块进行加密。此时,置换函数指将输入的值输出为相同长度的不同值的、在密码学角度上安全的所有形态的函数。例如,置换函数可以是AES(高级加密标准:AdvancedEncryptionStandard)算法、DES(数据加密标准:DataEncryptionStandard)算法、IDEA(国际数据加密技术:InternationalDataEncryption)算法、Blowfish算法等块加密算法。另外,根据本发明的一实施例,加密部130在如下述的数学式1的艾文-曼苏尔方案(Even-Mansourscheme)中,可以基于由在密钥表110中生成的密钥表代替密钥值的艾文-曼苏尔方案而将密钥表和置换函数交叉地反复结合。【数学式1】E(P)=F(P+k0)+k1其中,P为明文数据、F为置换函数、k0以及k1指密钥值。具体地,加密部130可以基于所述艾文-曼苏尔方案来将r+1个密钥表和r个置换函数交叉地反复结合,从而生成加密算法(其中,r为r≥1的整数)。 此时,r可以根据所要求的安全强度而确定。更具体地,图2为示出由加密部130生成的加密算法的构成的示例图。如图2所示的示例,加密部130可以通过以下方式生成加密算法:使r个密钥表和r个置换函数交叉地反复结合,以使密钥表的结果值输入到置换函数,并且使置换函数的结果值再次输入到密钥表,然后在最后再结合一个密钥表。另外,如图2所示的例中,对相同的r+1个密钥表和相同的r个密钥表进行结合,然而并不局限于此。例如,不同于图2所图示的例,r+1个密钥表可以均不相同或者部分不相同。此时,在使用不同的r+1个密钥表的情况下,密钥表生成部110可以由接收到的种子值生成r+1个不同的密钥表。并且,例如,在使用不同的两种r+1个密钥表的情况下,密钥表生成部110可以由接收到的种子值生成不同的两个密钥表。另外,与密钥表相同地,不同于图2所图示的例,r个置换函数可以均不相同或者部分不相同。图3为示出将AES算法利用为置换函数而生成的加密算法的构成的示例图。图3中,加密算法通过由三个密钥表和由5轮(round)组成的两个相同的AES算法交叉地反复结合而生成。并且,在各AES算法中,构成为使加密密钥利用固定的值。另外,在图示的例中,示出了反复结合的密钥表和AES算法相同的情况,然而如上文所述,三个密钥表可以使用互不相同的密钥表或者使用两个相同的密钥表和一个不同的密钥表,并可以利用一个AES算法和一个其他置换函数。图4为根据本发明的一实施例的密钥表生成部110的详细构成图。参照图4,密钥表生成部110可以包括:密钥生成部111,用于由种子值生成多个子密钥;运算部113,利用所生成的各个子密钥生成密钥表。具体而言,密钥生成部111在接收种子值并生成子密钥后,可以由前一个所生成的子密钥反复生成新的子密钥。例如,假设生成三个子密钥时,密钥生成部111可以从输入的种子值生成随机数而生成第一个子密钥。之后,密钥生成部111可以由所生成的第一个子密钥生成随机数,从而生成第二个 子密钥,并且可以由所生成的第二个子密钥生成随机数,从而生成第三个子密钥。运算部113由从密钥生成部111生成的各个子密钥生成用于构成密钥表的任意值,并可以生成包含所生成的任意值的密钥表。具体而言,运算部113可以利用用于由所输入的子密钥来生成任意值的轮函数,从而可以通过在每一轮均将各子密钥应用于轮函数而生成任意值。具体而言,图5为示出运算部113中应用的轮函数的例子的图。参照图5,如图示的例子那样,运算部113可以对在密钥生成部111中生成的子密钥ki以及具有与子密钥ki相同大小的任意的值a进行XOR运算(异或运算),之后将XOR运算结果分成两个部分并将其分别应用于S盒(S-box)。之后,运算部113可以对两个S盒的输出结果值进行矩阵运算而产生任意值ri。此时,矩阵运算例如可以利用使用MDS(MaximumDistanceSeparable)矩阵的矩阵运算等具有能够使针对输入值的扩散效果最大化的性质的多种形态的矩阵运算。另外,由密钥表生成部110进行的密钥表的生成并不一定要局限于图4以及图5中示出的例子。例如,除了图4以及图5中示出的例子之外,密钥表生成部110还可以在利用具有单向特性的多种方式而由种子值生成任意值之后生成包含所生成的任意值的密钥表。另外,在一实施例中,如图1所示的密钥表生成部110以及加密部130可以在包括一个以上的处理器以及与该处理器连接的计算机可读记录介质的,一个以上的计算装置上实现。计算机可读记录介质可以位于处理器的内部或者外部,并且可以通过公知的多种手段连接到处理器。计算装置内的处理器可以使各个计算装置照着本说明书中记载的示例性的实施例运转。例如,处理器可以执行计算机可读记录介质中储存的指令,计算机可读记录介质中储存的指令在由处理器执行时,可以使计算装置执行根据本说明书中记载的示例性的实施例的操作。图6为根据本发明的一实施例的加密方法的流程图。图6中示出的方法例如可以由图1中示出的加密装置100来执行。参考图6,加密装置100生成从种子值导出的任意值(610)。之后,加密装置100生成包含所生成的任意值的密钥表(620)。此时,构成密钥表的任意值的大小可以根据可用存储器的大小而确定。之后,加密装置100通过交叉地反复结合所生成的密钥表和置换函数而生成加密算法(630)。具体而言,加密装置100例如可以基于由密钥表来代替密钥值的艾文-曼苏尔方案而使r+1个密钥表和r个置换函数交叉地反复结合,从而生成加密算法。此时,r的值可以根据所要求的安全强度而确定。另外,r+1个密钥表可以全部相同,但是并不局限于此,r+1个密钥表根据实施例而可以全部都不相同或者部分不相同。同样,r个置换函数可以全部相同,但并不局限于此,r个置换函数根据实施例而可全部都不相同或者部分不相同。之后,加密装置100利用所生成的加密算法对明文数据块进行加密(640)。另外,在如图6所示的流程图中将所述方法分成了多个步骤而进行了图示,然而还可以由如下的方式来执行:交换至少一部分步骤而执行;与其他步骤结合而一起执行;省略或分为细分的步骤而执行;或者附加未图示的一个以上的步骤而执行。另外,本发明的一实施例可以包括计算机可读记录介质,其包括用于在计算机上执行本说明书中记载的方法的程序。所述计算机可读记录介质可以单独地或者组合地包括程序命令、本地数据文件、本地数据结构等。所述介质可以是为本发明而特别地设计并构成的介质,或者可以是在计算机软件领域中通常被使用的介质。计算机可解码记录介质的示例包括:磁介质,如硬盘、软盘以及磁带等;光记录介质,如CD-ROM、DVD等;磁-光介质,软盘等;以及ROM、RAM、闪存等为了储存命令并执行程序命令而特别构成的硬件装置。作为程序命令的例,不仅包括如利用编译器制作的计算机语音代码,还可以包括可利用翻译器等由计算机执行的高级语言代码。以上,对本发明的具有代表性的实施例进行了详细的说明,然而在本发明所属的
技术领域
:中具有基本知识的人员可以理解对上述的实施例可在不脱离本发明的范围的限度内进行多种变形。因此,本发明的权利范围并不局限于上述的实施例,本发明的权利范围需要根据权利要求书的范围以及与该权利要求书均等的范围来确定。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1