买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】加密装置及方法_三星SDS株式会社_201710805322.7 

申请/专利权人:三星SDS株式会社

申请日:2017-09-08

公开(公告)日:2021-04-27

公开(公告)号:CN108023728B

主分类号:H04L9/14(20060101)

分类号:H04L9/14(20060101);H04L9/08(20060101);H04L9/06(20060101)

优先权:["20161028 KR 10-2016-0142252"]

专利状态码:有效-授权

法律状态:2021.04.27#授权;2018.06.05#实质审查的生效;2018.05.11#公开

摘要:本发明公开一种加密装置及方法,根据本发明的一实施例的加密装置包括:密钥表生成部,从由种子值导出的任意值生成至少一个加密用密钥表,并从所述至少一个加密用密钥表生成至少一个解密用密钥表;算法生成部,用于生成具有模糊结构的加密算法及具有模糊结构的解密算法,所述加密算法具有应用所述至少一个加密用密钥表的轮函数,所述解密算法具有应用所述至少一个解密用密钥表的轮函数;加密部,利用所述加密算法而对明文数据进行加密;解密部,利用所述解密算法而对被加密的数据进行解密。

主权项:1.一种加密装置,包括:密钥表生成部,从由种子值导出的任意值生成至少一个加密用密钥表,并从所述至少一个加密用密钥表生成至少一个解密用密钥表,所述至少一个加密用密钥表与所述至少一个解密用密钥表不同;算法生成部,用于生成具有模糊结构的加密算法及具有模糊结构的解密算法,所述加密算法具有应用所述至少一个加密用密钥表的轮函数,所述解密算法具有应用所述至少一个解密用密钥表的轮函数;加密部,利用所述算法生成部而进行加密;解密部,利用所述算法生成部而进行解密,其中,所述至少一个加密用密钥表和所述至少一个解密用密钥表分别为查找表,所述密钥表生成部基于用于加密的可用存储器的大小来确定所述任意值的大小,所述算法生成部基于单位输入的大小及所述任意值的大小来确定所述模糊结构的分支数。

全文数据:加密装置及方法技术领域[0001]本发明的实施例涉及加密技术。背景技术[0002]以往的白盒加密算法的实现方式可以根据成为其基础的对称密钥加密算法的内部特性而不同,并且依赖于基本算法,因此难以反映而体现基于应用环境的单位输入大小变化。[0003]并且,以往的白盒加密算法为了保护基本算法的加密密钥而插入较多的附加运算,因此相较于基本算法而导致几十倍的效率下降。[0004][现有技术文献][0005][专利文献][0006]韩国公开专利第10-2012-0030335号(2012.03.28发明内容[0007]本发明的实施例用于提供一种加密装置及方法。[0008]根据本发明的一实施例的加密装置包括:密钥表生成部,从由种子值导出的任意值生成至少一个加密用密钥表,并从所述至少一个加密用密钥表生成至少一个解密用密钥表;算法生成部,用于生成具有模糊结构的加密算法及具有模糊结构的解密算法,所述加密算法具有应用所述至少一个加密用密钥表的轮函数,所述解密算法具有应用所述至少一个解密用密钥表的轮函数;加密部,利用所述算法生成部而进行加密;解密部,利用所述算法生成部而进行解密。[0009]所述密钥表生成部可以从所述至少一个加密用密钥表生成与各个加密用密钥表之间处于逆函数关系的解密用密钥表。[0010]所述种子值可以是能够用比特串表示的初始输入值。[0011]所述种子值可以是密钥、计数器值及初始化向量中的一个。[0012]所述密钥表生成部可以基于用于加密的可用存储器的大小来确定所述任意值的大小。[0013]所述算法生成部可以基于单位输入的大小及所述任意值的大小来确定所述模糊结构的分支数。[0014]所述分支数基于下述数学式来确定,[0015][0016]此时,b为分支数,η为所述单位输入的大小,k为所述任意值的大小。)[0017]所述算法生成部可以基于所要求的安全强度来确定所述模糊结构的轮数。[0018]根据本发明的一实施例的加密方法包括如下的步骤:生成从种子值导出的任意值;从所述任意值生成至少一个加密用密钥表;从所述至少一个加密用密钥表生成至少一个解密用密钥表;生成具有模糊结构的加密算法以及具有模糊结构的解密算法,其中,所述加密算法具有应用所述至少一个加密用密钥表的轮函数,所述解密算法具有应用所述至少一个解密用密钥表的轮函数;利用所述加密算法而将明文数据加密;利用所述解密算法而将被加密的数据解密。[0019]在生成所述解密用密钥表的步骤中,可以从所述至少一个加密用密钥表生成与各个加密用密钥表之间处于逆函数关系的解密用密钥表。[0020]所述种子值可以是能够用比特串表示的初始输入值。[0021]所述种子值可以是密钥、计数器值及初始化向量中的一个。[0022]在生成所述任意值的步骤中,可以基于用于加密的可用存储器的大小来确定所述任意值的大小。[0023]在生成所述算法的步骤中,可以基于单位输入的大小及所述任意值的大小来确定所述模糊结构的分支数。[0024]所述分支数可以基于下述数学式而确定,[0025][0026]在此,b为分支数,η为所述单位输入的大小,k为所述任意值的大小。)[0027]生成所述算法的步骤可以基于所要求的安全强度来确定所述模糊结构的轮数。[0028]根据本发明的实施例,通过使用将能够在白盒环境内保护加密密钥的密钥表应用于轮函数的模糊结构的加密算法,可以在没有用于保护密钥的附加运算过程的情况下,在白盒环境内进行安全的数据加密。[0029]并且,根据本发明的实施例,能够根据应用加密的环境而可变地调节密钥表的大小及模糊结构的分支数及轮数,因此可以构成最优化于应用环境的加密算法。[0030]进而,根据本发明的实施例,可以利用应用到加密用密钥表的加密算法和应用到解密用密钥表的解密算法而设计成加密过程和解密过程彼此相异,因此即使加密算法或者解密算法被攻击者夺取,也可以保障安全性。附图说明[0031]图1是根据本发明的一实施例的加密装置的构成图。[0032]图2是根据本发明的一实施例的密钥表生成部的详细构成图。[0033]图3是示出加密用密钥表生成部中使用的轮函数的示例的图。[0034]图4是示出根据本发明的一实施例而生成的加密算法的模糊结构的图。[0035]图5是示出根据本发明的一实施例而生成的解密算法的模糊结构的图。[0036]图6是根据本发明的一实施例的加密方法的流程图。[0037]图7是示出根据本发明的一实施例的加密算法及解密算法的生成步骤的流程图。[0038]符号说明[0039]100:加密装置110:密钥表生成部[0040]130:算法生成部150:加密部[0041]170:解密部111:密钥生成部[0042]113:加密用密钥表生成部115:解密用密钥表生成部具体实施方式[0043]以下,参考附图而对本发明的具体实施方式进行说明。以下的详细说明是为了有助于全面理解本说明书中记载的方法、装置和或系统而提供的内容。然而,这只不过是示例,本发明并不局限于此。[0044]在对本发明的实施例进行说明的过程中,如果认为对有关本发明的公知技术的具体说明有可能对本发明的主旨造成不必要的混乱,则省略其详细说明。另外,后述的术语均为考虑到本发明中的功能而定义的术语,其可能根据使用者、运用者的意图或惯例等而不同。因此,需要以贯穿整个说明书的内容为基础而对其下定义。在详细说明中使用的术语只用于记载本发明的实施例而并非旨在限定本发明。除非明确不同地使用,单数形态的表述包括复数形态的含义。在本说明书中,“包括”或“具有”之类的术语用于指代某种特性、数字、步骤、操作、要素及其一部分或组合,对此不应解释为排除所记载项之外的一个或一个以上的其他特性、数字、步骤、操作、要素及其一部分或组合的存在性或可存在性。[0045]图1是根据本发明的一实施例的加密装置的构成图。[0046]参考图1,根据本发明的一实施例的加密装置100包括:密钥表生成部110、算法生成部130、加密部150及解密部170。[0047]密钥表生成部110利用种子值(seedvalue生成从种子值导出的任意值,并由所生成的任意值生成至少一个加密用密钥表。并且,密钥表生成部110从所生成的至少一个加密用密钥表生成至少一个解密用密钥表Keytable。[0048]此时,加密用密钥表可以是由从种子值导出的任意值组成的查找表(lookuptable〇[0049]另外,解密用密钥表可以是与加密用密钥表处于逆函数关系的密钥表。具体地,密钥表生成部110生成加密用密钥表之后,可以生成与加密用密钥表之间为逆函数关系的解密用密钥表。[0050]以下,“密钥表”表示同时包含加密用密钥表和解密用密钥表的含义。[0051]另外,种子值可以表示能够用比特串(bitstring表示的初始输入值。例如,种子值可以包括加密密钥、块加密(BlockCipher的运行模式中使用的计数器值(countervalue、由任意比特串组成的初始化向量等。[0052]根据本发明的一实施例,由密钥表生成部110生成的任意值的大小可根据在应用加密装置100的计算环境内能够为加密而利用的可用存储器的大小而确定。[0053]算法生成部130可以生成包括应用加密用密钥表的轮函数的模糊Misty结构的加密算法,所述加密用密钥表由密钥表生成部110生成。并且,算法生成部130可以生成包括应用解密用密钥表的轮函数的模糊Misty结构的解密算法,所述解密用密钥表由密钥表生成部110生成。[0054]具体地,算法生成部130可以为了生成加密算法及解密算法而确定模糊结构的分支branch数及轮数。[0055]此时,根据本发明的一实施例,模糊结构的分支数可以根据用于加密及解密的单位输入的大小、构成密钥表的任意值的大小而确定。具体地,算法生成部130例如可以基于下述数学式1来确定模糊结构的分支数b。[0056]_学式1][0057][0058]数学式1中,η表示单位输入的大小(bit,k表示构成密钥表的任意值的大小bit〇[0059]另外,根据本发明的一实施例,模糊结构的轮数可以根据应用加密装置100的环境内所要求的安全强度而确定。[0060]另外,在确定了模糊结构的分支数及轮数的情况下,算法生成部130可以对由所确定数量的分支及轮构成的模糊结构的各个轮函数应用加密用密钥表而生成加密算法。[0061]并且,算法生成部130可以对以与加密算法相同的数量的分支及轮构成的模糊结构的各个轮函数应用解密用密钥表而生成解密算法。[0062]此时,根据本发明的一实施例,由算法生成部130生成的加密算法及解密算法可以基于具有模糊结构的以往的加密算法来生成。例如,算法生成部130可以基于具有模糊结构的以往的加密算法来改变模糊结构的分支数和轮数,并对各个轮函数应用加密用密钥表或解密用密钥表,从而可以分别生成加密算法和解密算法。[0063]另外,加密部150利用由算法生成部130生成的加密算法而将明文数据加密。[0064]并且,解密部170利用由算法生成部130生成的解密算法而将被加密的数据解密。[0065]图2是根据本发明的一实施例的密钥表生成部110的详细构成图。[0066]参照图2,密钥表生成部110可以包括:密钥生成部111,用于由种子值生成多个子密钥;加密用密钥表生成部113,利用所生成的各个子密钥而生成加密用密钥表;解密用密钥表生成部115,由所生成的加密用密钥表生成解密用密钥表。[0067]具体而言,密钥生成部111在接收输入的种子值并生成子密钥后,可以由前一个所生成的子密钥反复生成新的子密钥。例如,假设有生成三个子密钥的情形,密钥生成部111可以由接收到的种子值生成随机数而生成第一个子密钥。之后,密钥生成部111可以由所生成的第一个子密钥生成随机数,从而生成第二个子密钥,并且可以由所生成的第二个子密钥生成随机数,从而生成第三个子密钥。[0068]加密用密钥表生成部113由从密钥生成部111生成的各个子密钥生成用于构成加密用密钥表的任意值,并可以生成包含所生成的任意值的加密用密钥表。具体而言,加密用密钥表生成部113可以利用用于由所输入的子密钥生成任意值的轮函数,而在每一轮均将各个子密钥应用于轮函数而生成任意值。[0069]解密用密钥表生成部115可以从由加密用密钥表生成部113生成的加密用密钥表分别生成解密用密钥表。具体地,解密用密钥表生成部115可以对由加密用密钥表生成部113生成的加密用密钥表分别生成与加密用密钥表之间处于逆函数关系的解密用密钥表。[0070]具体而言,图3为示出加密用密钥表生成部113中应用的轮函数的示例的图。[0071]参照图3,如图示的示例,加密用密钥表生成部113可以对在密钥生成部111中生成的子密钥ki以及具有与子密钥ki相同大小的任意的值a进行XOR运算(异或运算),之后将XOR运算结果分成两个部分并将其分别应用于置换盒Substitution-box;S-box。之后,加密用密钥表生成部113可以对两个置换盒的输出结果值进行矩阵运算而产生任意值ri。此时,矩阵运算例如可以是利用最大距离可分MDS:MaximumDistanceSeparable矩阵的矩阵运算等具有能够使针对输入值的扩散效果最大化的性质的多种形态的矩阵运算。[0072]另外,由密钥表生成部110进行的加密用密钥表的生成并不一定局限于图2以及图3中示出的示例。例如,除了图2以及图3中示出的例子之外,密钥表生成部110还可以在利用具有单向特性的多种方式而由种子值生成任意值,并生成包含所生成的任意值的加密用密钥表。[0073]图4是示出根据本发明的一实施例而生成的加密算法的模糊结构的图。[0074]图4中,假设要加密的明文数据的单位输入大小和构成加密用密钥表T的任意值的大小分别为64bit和16bit。[0075]算法生成部130例如根据上述数学式1而示出的示例,具有4个分支,并构成将加密用密钥表T用作轮函数的4轮的基本结构,并可以根据基于安全强度来确定的轮数(图示的示例中为32轮而以重复执行4轮的基本结构的方式构成模糊结构。[0076]另外,参照图示的4轮基本结构,在第一轮中,以左侧为基准而输入到第一分支的块block的值被转换成在加密用密钥表T中对应的任意的值,转换后的任意的值通过XOR运算而与输入到第二分支的块的值结合。此后,在第二轮中,通过第一轮而生成的值被转换成在加密用密钥表T中对应的任意值,被转换的任意的值通过XOR运算而与被输入到第三分支的块的值结合。此后,以相同的方式进行第三轮和第四轮,在第四轮中,通过加密用密钥表T而被转换的任意的值与在第一分支中被转换的任意的值通过XOR运算而结合。[0077]图5是示出根据本发明的一实施例而生成的解密算法的模糊结构的图。[0078]图5中,假设要解密的密文数据的单位输入大小和构成解密用密钥表Γ1的任意值的大小分别为64bit和16bit。[0079]算法生成部130例如根据上述数学式1而示出的示例,具有4个分支,并构成将解密用密钥表Γ1用作轮函数的4轮的基本结构,并可以根据基于安全强度来确定的轮数图示的示例中为32轮而以重复执行4轮的基本结构的方式构成模糊结构。[0080]另外,参照图示的基本结构,在第一轮中,以左侧为基准而输入到第一分支的块的值被转换成在解密用密钥表F1中对应的任意的值,转换后的任意的值通过XOR运算而与输入到第二分支的块的值结合。此后,在第二轮中,通过第一轮而生成的值被转换成在解密用密钥表Γ1中对应的任意值,被转换的任意的值通过XOR运算而与被输入到第三分支的块的值结合。此后,以相同的方式进行第三轮和第四轮,在第四轮中,通过解密用密钥表T而被转换的任意的值与在第一分支中被转换的任意的值通过XOR运算而结合。[0081]另外,在图4及图5中示出的示例中,示出了作为模糊结构的各轮的轮函数而分别利用加密用密钥表T和解密用密钥表Γ1的情形,但不限于此。例如,各轮的轮函数可以是将在作为基础的模糊结构的加密算法中利用的轮函数的一部分变更为加密用密钥表T或解密用密钥表Γ1的轮函数。[0082]另外,在一实施例中,如图1所示的密钥表生成部110、算法生成部130、加密部150及解密部170可以在包括一个以上的处理器以及与该处理器连接的计算机可读记录介质的一个以上的计算装置上实现。计算机可读记录介质可以位于处理器的内部或者外部,并且可以通过公知的多种手段连接到处理器。计算装置内的处理器可以使各个计算装置照着本说明书中记载的示例性的实施例运行。例如,处理器可以执行计算机可读记录介质中储存的指令,计算机可读记录介质中储存的指令在由处理器执行时,可以使计算装置执行根据本说明书中记载的示例性的实施例的操作。[0083]图6为根据本发明的一实施例的加密方法的流程图。[0084]图6中示出的方法例如可以由图1中示出的加密装置100来执行。[0085]参考图6,加密装置100生成由种子值导出的任意值610。[0086]此后,加密装置100由所生成的任意值生成至少一个加密用密钥表620。此时,任意值的大小可以根据可用存储器的大小而确定。[0087]此后,加密装置100从所生成的至少一个加密用密钥表生成至少一个解密用密钥表630。此时,解密用密钥表与加密用密钥表之间可处于逆函数关系。[0088]此后,加密装置100生成包括应用到所生成的加密用密钥表的轮函数的模糊结构的加密算法640。[0089]并且,加密装置100生成包括应用到所生成的解密用密钥表的轮函数的模糊结构的解密算法650。[0090]此后,加密装置100利用所生成的加密算法而将明文数据加密660。[0091]并且,加密装置100利用所生成的解密算法而将被加密的数据解密670。[0092]图7是示出根据本发明的一实施例的加密算法及解密算法的生成步骤的流程图。[0093]参照图7,加密装置100基于单位输入的大小及构成密钥表的任意值的大小来确定模糊结构的分支数710。[0094]此后,加密装置100基于所要求的安全强度来确定模糊结构的轮数720。[0095]此后,加密装置100生成具有确定的分支数及轮数的模糊结构的加密算法及解密算法730。[0096]具体地,加密装置100可以对由确定的分支数及轮数构成的模糊结构的各个轮函数应用加密用密钥表而生成加密算法。[0097]并且,加密装置100可以对由与加密算法相同的分支数及轮数构成的模糊结构的各个轮函数应用解密用密钥表而生成解密算法。[0098]另外,在如图6及图7所示的流程图中将所述方法分成了多个步骤而进行了记载,然而还可以由如下的方式来执行:交换至少一部分步骤而执行;与其他步骤结合而一起执行;省略或分为细分化的步骤而执行;或者附加未图示的一个以上的步骤而执行。[0099]另外,本发明的一实施例可以包括计算机可读记录介质,其包括用于在计算机上执行本说明书中记载的方法的程序。所述计算机可读记录介质可以单独地或者组合地包括程序命令、本地数据文件、本地数据结构等。所述介质可以是为本发明而特别地设计并构成的介质,或者可以是在计算机软件领域中通常被使用的介质。计算机可读记录介质的示例包括:磁介质,如硬盘、软盘以及磁带等;光记录介质,如⑶-ROM、DVD等;磁-光介质,如软盘等;以及R0M、RAM、闪存等为了储存并执行程序命令而特别构成的硬件装置。作为程序命令的示例,不仅包括如利用编译器制作的计算机语言代码,还可以包括可利用解释器等而由计算机执行的高级语言代码。[0100]以上,对本发明的具有代表性的实施例进行了详细的说明,然而在本发明所属的技术领域中具有基本知识的人员可以理解上述的实施例可在不脱离本发明的范围的限度内实现多种变形。因此,本发明的权利范围不应局限于上述的实施例,本发明的权利范围需要根据权利要求书的范围以及与该权利要求书均等的范围来确定。

权利要求:1.一种加密装置,包括:密钥表生成部,从由种子值导出的任意值生成至少一个加密用密钥表,并从所述至少一个加密用密钥表生成至少一个解密用密钥表;算法生成部,用于生成具有模糊结构的加密算法及具有模糊结构的解密算法,所述加密算法具有应用所述至少一个加密用密钥表的轮函数,所述解密算法具有应用所述至少一个解密用密钥表的轮函数;加密部,利用所述算法生成部而进行加密;解密部,利用所述算法生成部而进行解密。2.如权利要求1所述的加密装置,其特征在于,所述密钥表生成部从所述至少一个加密用密钥表生成与各个加密用密钥表属于逆函数关系的解密用密钥表。3.如权利要求1所述的加密装置,其特征在于,所述种子值是能够用比特串表示的初始输入值。4.如权利要求3所述的加密装置,其特征在于,所述种子值是密钥、计数器值及初始化向量中的一个。5.如权利要求1所述的加密装置,其特征在于,所述密钥表生成部基于用于加密的可用存储器的大小来确定所述任意值的大小。6.如权利要求1所述的加密装置,其特征在于,所述算法生成部基于单位输入的大小及所述任意值的大小来确定所述模糊结构的分支数。7.如权利要求6所述的加密装置,其特征在于,所述分支数基于下述数学式来确定,其中,b为分支数,η为所述单位输入的大小,k为所述任意值的大小。8.如权利要求1所述的加密装置,其特征在于,所述算法生成部基于所要求的安全强度来确定所述模糊结构的轮数。9.一种加密方法,包括如下的步骤:生成从种子值导出的任意值;从所述任意值生成至少一个加密用密钥表;从所述至少一个加密用密钥表生成至少一个解密用密钥表;生成具有模糊结构的加密算法以及具有模糊结构的解密算法,其中,所述加密算法具有应用所述至少一个加密用密钥表的轮函数,所述解密算法具有应用所述至少一个解密用密钥表的轮函数;利用所述加密算法而将明文数据加密;利用所述解密算法而将被加密的数据解密。10.如权利要求9所述的加密方法,其特征在于,在生成所述解密用密钥表的步骤中,从所述至少一个加密用密钥表生成与各个加密用密钥表属于逆函数关系的解密用密钥表。11.如权利要求9所述的加密方法,其特征在于,所述种子值是能够用比特串表示的初始输入值。12.如权利要求11所述的加密方法,其特征在于,所述种子值是密钥、计数器值及初始化向量中的一个。13.如权利要求9所述的加密方法,其特征在于,在生成所述任意值的步骤中,基于用于加密的可用存储器的大小来确定所述任意值的大小。14.如权利要求9所述的加密方法,其特征在于,在生成所述算法的步骤中,基于单位输入的大小及所述任意值的大小来确定所述模糊结构的分支数。15.如权利要求14所述的加密方法,其特征在于,所述分支数基于下述数学式来确定,其中,b为分支数,η为所述单位输入的大小,k为所述任意值的大小。16.如权利要求9所述的加密方法,其特征在于,生成所述算法的步骤基于所要求的安全强度来确定所述模糊结构的轮数。

百度查询: 三星SDS株式会社 加密装置及方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。