威尼斯人棋牌-威尼斯欢乐娱人城-首页

加密装置及方法与流程

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

威尼斯人棋牌|威尼斯欢乐娱人城

XML 地图 | Sitemap 地图