数据变换装置和数据变换方法

文档序号:7893910阅读:467来源:国知局
专利名称:数据变换装置和数据变换方法
技术领域
本发明涉及进行数据的编码或数据的译码的数据变换装置及其方法。
背景技术
下面,说明关联的技术。
图56是关联的数据变换装置的结构和动作图。
如图56所示,进行块编码处理的数据变换装置由密钥生成部20和数据搅拌部30构成。
密钥生成部20是生成用于进行数据的编码/译码的密钥生成部。
数据搅拌部30是把输入的数据编码或译码的部。
密钥生成部20由中间密钥生成部40和密钥调度部210构成。中间密钥生成部40输入编码密钥,从输入的编码密钥生成中间密钥(密钥KL)和输出密钥(密钥KA)。密钥调度部210输入由中间密钥生成部40生成的中间密钥(密钥KL)和输出密钥(密钥KA)(密钥KLL、密钥KLH、密钥KAL、密钥KAH),调度应该从输入的各密钥向数据搅拌部30供给的密钥。这样,在密钥生成部20中,通过中间密钥生成部40和密钥调度部210,进行密钥的生成和密钥的调度。
在数据搅拌部30中,当输入P(普通数据)时,进行把数据编码的数据变换,把变换的数据作为C(编码数据)输出。此外,数据搅拌部30当输入了P(编码数据)时,进行把数据译码的数据变换,把变换的数据作为C(译码数据)输出。这样,数据搅拌部30进行数据的编码处理和译码处理。
在数据搅拌部30中,主变换部320和副变换部330串联。
主变换部320是进行数据的非线性变换的部。即主变换部320具有1级或多级进行数据的非线性变换的F函数,或具有F函数的一部分,使用F函数或F函数的一部分,进行数据的非线性变换。在图57中,主变换部320具有1级以上的F函数。
副变换部330是具有进行基于数据的线形变换的数据正变换部(FL)和进行与数据正变换部(FL)相反的变换的数据逆变换部(FL-1)中的至少任意一个,并且根据输入的密钥,把使用数据正变换部(FL)或变换数据逆变换部(FL-1)输入的数据进行线性变换的部。
选择器310是将主变换部320、副变换部330、P(普通数据或编码数据)和密钥作为输入信息,从输入信号中选择一个信号的选择器。图56所示的选择器310具有三个将从4个输入信号输出一个输出信号的4-1选择器换算为从2个输入信号选择1个输出信号的2-1选择器。
运算寄存器350是把作为主变换部320、副变换部330以及C(编码数据或译码数据)输出的数据保持预定期间的存储器。
这样,在数据搅拌部30中,通过交替重复多次由主变换部320对输入数据P(普通数据或编码数据)进行非线性变换、由副变换部330进行线性变换,来进行数据的编码/译码处理,并作为C(编码数据或译码数据)输出。
下面,说明主变换部320的内部结构。
图57是主变换部320的内部结构的一例。在图57中,主变换部320由6个F函数部构成。这里,如果假定F函数部由进行一级的F函数处理的电路构成,则在图57所示的主变换部320中,进行基于6级F函数的非线性数据变换处理。
关于6级F函数处理电路,主变换部320可以具有6个F函数处理电路,可以具有一个F函数处理电路,通过重复6次基于F函数的处理,进行基于6级F函数的数据处理。
在主变换部320中,首先,输入数据中被分割成的高位数据输入到F函数部321a中。此外,也输入由密钥调度部210调度的密钥1。在F函数部321a中,如上所述,使用密钥对高位输入数据进行非线性变换。在EXOR电路322a中,取非线性变换的数据和低位输入数据的异或。从EXOR电路322a输出的数据成为F函数部321b的输入数据。F函数部321b与F函数部321a同样,进行非线性变换处理,取由EXOR电路322b变换的数据和高位输入数据的异或。从EXOR电路322b输出的数据成为F函数部321c的输入数据。这样,由F函数部321b和EXOR电路322b、F函数部321c和EXOR电路322c、F函数部321d和EXOR电路322d、F函数部321e和EXOR电路322e、F函数部321f和EXOR电路322f进行与基于F函数部321a和EXOR电路322a的处理同样的处理。这样,进行6级(或重复6次)基于F函数部的数据的非线性变换后,输出变换的数据。
这样,把具有以下特性的非线性变换处理构造称作FEISTEL构造输入分割为高位数据和低位数据的数据中的任一个,把输入的数据通过非线性进行数据变换,输出进行数据变换的高位数据和低位数据的任一个,把输出的高位数据和低位数据的数据的任一个与高位数据和低位数据的数据的另一方进行异或运算,通过切换输出进行异或运算的数据、未输入到所述F函数部的高位数据和低位数据的任意另一方,来切换输出高位数据和低位数据。
作为把数据随机化的代表性构造,存在所述FEISTEL构造和SPN(Substitution Permutation Network)构造。具有SPN构造的主变换部320在并行处理上优异。而具有FEISTEL构造的主变换部320在把硬件规模小型化上优异。
须指出的是,SPN构造象FEISTEL构造那样,不分割输入数据,具有重复由S层(非线性层)和P层(线形层)构成的F函数的构造。
说明副变换部330的内部构造。
图58是表示构成副变换部330的电路的图。
图58的副变换部330具有数据正变换部50和数据逆变换部70。
在数据正变换部50中,取由AND电路54输入的64位数据中的高位32位数据和密钥1的逻辑积,循环左移1位,通过EXOR电路55取与输入数据的低位32位的异或,把结果作为低位32位的输出信号输出,并且输入到OR电路57中。在OR电路57中,取与密钥2的逻辑或,通过EXOR电路56取与输入数据的高位32位的异或,把结果作为高位32位的输出信号输出。这样把64位的输入数据进行线性变换,作为64位的输出信号输出。
在数据逆变换部70中,取由OR电路74输入的64位数据中的低位32位数据和密钥3的逻辑或,通过EXOR电路75取与输入数据的高位32位的异或,把结果作为高位32位的输出信号输出,并且输入到AND电路77中。在AND电路77中,取与密钥4的逻辑积,循环左移1位,通过EXOR电路76取与输入数据的低位32位数据的异或,把结果作为低位32位的输出信号输出。这样,通过数据正变换部50和数据逆变换部70把64位输入数据进行线性变换,作为64位输出信号输出。须指出的是,从密钥调度部210供给密钥1~密钥4。
图59是表示作为副变换部330的另一例,共用数据正变换部50和数据逆变换部70的电路的图。
在图59中,输入切换数据正变换部50和数据逆变换部70的切换信号,切换数据正变换部50和数据逆变换部70。即在图59所示的共用电路中,通过输入切换信号,2-1选择器99a切换输入信号A和输入信号E,2-1选择器99b切换输入信号C和输入信号F。
首先,说明共用电路作为数据正变换部50工作的情形。
2-1选择器99a从输入信号E和输入信号A中选择输入信号A,作为输出信号B输出,通过AND电路101取与密钥1的逻辑积,循环左移1位后,通过EXOR电路91取与输入数据的低位32位的异或,作为低位32位的输出信号输出,并且作为输入信号C输入到2-1选择器99b。在2-1选择器99b中,从输入信号C和输入信号F选择输入信号C,作为输出信号D输出。在OR电路92中取输出信号D和密钥2的逻辑或,通过EXOR电路92取与输入数据的高位32位数据的异或,作为高位32位的输出信号输出。
下面,说明共用电路作为数据逆变换部70工作时的情形。
在2-1选择器99b中,从输入信号C和输入信号F中选择输入信号F,作为输出信号D输出,通过OR电路92取与密钥2的逻辑或,通过EXOR电路93取与输入数据的高位32位的异或,作为高位32位的输出信号输出,并且作为输入信号E输入到2-1选择器99a中。在2-1选择器99a中,从输入信号A和输入信号E中选择输入信号E,作为输出信号B输出。在AND电路101中,取输出信号B和密钥1的逻辑或,循环左移1位后,通过EXOR电路91取与输入数据的低位32位的异或,作为低位32位的输出信号输出。
图60是表示对图56所示的数据变换装置,主变换部320具有处理未满1级的F函数的1/2x(x≥1)F函数时的数据变换装置的图。
主变换部320在例如具有1/2F函数时,通过从主变换部320,经过副变换部330、选择器310和运算寄存器350,到达主变换部320的路径,进行2周期的处理,能使通过F函数把数据进行非线性变换的处理变为1次。为了进行这样的处理,在图60所示的数据变换装置中,与图56所示的数据变换装置比较,附加有从运算寄存器350到选择器310的路径。
说明利用从运算寄存器350到选择器310的路径的主变换部320的动作。
图61就主变换部320的内部结构加以说明。
如图61所示,主变换部320作为处理未满1级的F函数的一例,由进行1/2F函数处理的12级的F函数部(1/2F函数)构成。在图61的主变换部320中,使用F函数部1321a、F函数部1321b、EXOR电路1322a和EXOR电路1322b,进行使用图57的主变换部320的数据变换。
在图61的主变换部320中,首先说明第一级的处理。从高位输入数据中分割的高位数据输入到F函数部1321a中。此外,也输入通过由密钥调度部210调度的密钥1的高位构成的密钥1H。F函数部1321a进行使用密钥1H的所述高位数据的非线性变换。变换的数据输入到EXOR电路1322a中,与从低位输入数据中分割的高位数据取异或。
从EXOR电路1322a输出的数据在进行EXOR电路1322b中的数据处理前,在运算寄存器350中作为中间数据保持。
下面,说明第二级处理。从高位输入数据中分割的低位数据被输入到F函数部1321b中。此外,也输入通过由密钥调度部210调度的密钥1的低位构成的密钥1L。F函数部1321b进行使用密钥1L的所述低位数据的非线性变换。变换的数据输入到EXOR电路1322b中。
这里,产生把刚才保持在运算寄存器350中的来自EXOR电路1322a的输出数据即中间数据输入到EXOR电路1322b中。因此,从运算寄存器350到选择器310的路径成为必要。即通过使用从运算寄存器350到选择器310的路径,能把保持在运算寄存器350中的中间数据输入到选择器310中。选择器310选择输入的中间数据。中间数据经过运算寄存器350输入到主变换部320中,通过EXOR电路1322b取与F函数部1321b的输出数据的异或。从EXOR电路1322b输出的数据成为F函数部1321c的输入数据。
这样,与基于F函数部1321a、EXOR电路1322a、F函数部1321b、EXOR电路1322b的处理同样的处理作为基于F函数部1321c、EXOR电路1322c、F函数部1321d、EXOR电路1322d的处理、基于F函数部1321e、EXOR电路1322e、F函数部1321f、EXOR电路1322f的处理、基于F函数部1321g、EXOR电路1322g、F函数部1321h、EXOR电路1322h的处理、基于F函数部1321i、EXOR电路1322i、F函数部1321j、EXOR电路1322j的处理、基于F函数部1321k、EXOR电路1322k、F函数部1321l、EXOR电路1322l的处理进行。
在图56和图60所示的数据变换装置中,密钥生成部20为了生成在数据的编码/译码中使用的密钥,使用主变换部320的一部分和副变换部330的一部分。之所以在密钥的生成中使用主变换部320的一部分和副变换部330的一部分是谋求数据变换装置整体的小型化。
该密钥生成动作的细节如后所述,但是为了使用主变换部320的一部分和副变换部330的一部分生成密钥,如图56所示,把从密钥KL寄存器240输出的中间密钥(密钥KL)输入选择器310中的路径成为必要。因此,由于增加从密钥KL寄存器240到选择器310的路径,阻碍了数据变换装置的小型化。
此外,增加使用从密钥KL寄存器240到选择器310的路径的对选择器310的输入信号数,成为使构成选择器310的选择器数增加的要因。因此,在这一点上,也阻碍数据变换装置的小型化。
此外,如上所述,当用多个周期进行基于F函数的1次数据变换时,有必要把保持一定期间的中间数据输入到主变换部320中。因此,由于增加从运算寄存器350向选择器310发送中间数据的路径,阻碍数据变换装置的小型化。
此外,因为使用从运算寄存器350到选择器310的路径的对选择器310的输入信号数,所以成为使构成选择器310的选择器数增加的要因。因此,在这一点上,也阻碍数据变换装置的小型化。
在图56和图60所示的数据变换装置的数据搅拌部30中,主变换部320和副变换部330串联。因此,通过从主变换部320,经副变换部330后,经选择器310,通过运算寄存器350,回到主变换部320的路径,唯一决定工作频率,阻碍工作频率的增加。因此,通过缩短用于数据搅拌部30中的数据处理的最大路径,提高工作频率,能大幅度提高处理速度。
此外,因为不存在不通过主变换部320地把从选择器310和运算寄存器350输出的数据输入到副变换部330的路径,所以无法灵活地应对数据变换装置的内部结构变更,在全体能进行的动作中缺乏灵活性。
此外,如上所述,当用多个周期进行基于F函数的1次数据变换时,在1周期中成为变换对象的数据是输入数据的一部分(1/2F函数,输入数据的1/2)。因此,有必要在数据搅拌部30中设置在运算寄存器350中保持输入数据的一部分变换数据,在一定期间后向副变换部330发送的路径,或在主变换部320中设置在一定期间后在主变换部320中传送,向副变换部330发送的路径。
当使用图59所示的数据正变换部50和数据逆变换部70的共用电路时,A→B→C→D→E→B→C…的路径相当于环路。因此,在实际的电路中,由于切换信号的传输延迟差引起的紊乱、噪声等的影响,需要下工夫,以免变成发射电路。此外,在具有所述环路(反馈环路)的电路中,逻辑合成工具无法对应,不能高效进行逻辑合成。
本发明以数据变换装置的小型化为目的。
此外,本发明以数据变换装置的工作频率的提高为目的。

发明内容
本发明的一种数据变换装置,输入密钥和数据,并使用输入的密钥进行输入数据的编码和数据的译码中的至少一种数据变换,其特征在于上述数据变换装置具有对数据进行变换的数据搅拌部、以及控制传送信号的控制部,所述传送信号指示传送输入的密钥和输入的数据中的任一个;其中所述控制部在传送密钥和数据中的任一个时,输出传送信号;所述数据搅拌部具有通过使用输入的密钥对数据进行变换,至少进行数据编码和数据译码中的任一种数据变换,并且当输入由所述控制部输出的传送信号时,不进行数据变换地传送所输入的密钥和所输入的数据中的任一个的副变换部。
所述数据搅拌部还具有输入数据,并对输入的数据进行非线性数据变换的主变换部;所述控制部在传送数据时,输出数据传送信号作为传送信号;所述副变换部输入由所述控制部输出的数据传送信号和由所述主变换部进行数据变换后的数据,并按照输入的数据传送信号传送输入的数据。
所述数据变换装置的其特征在于还具有生成密钥的密钥生成部;所述控制部在传送密钥时,输出密钥传送信号作为传送信号;所述副变换部输入由所述控制部输出的密钥传送信号和由所述密钥生成部生成的密钥,并按照输入的密钥传送信号来传送输入的密钥。
所述密钥生成部还具有输入编码密钥,并根据输入的编码密钥生成中间密钥的中间密钥生成部;所述副变换部在输入由所述控制部输出的密钥传送信号时,按照输入的密钥传送信号,把所述中间密钥生成部生成的中间密钥传送给所述主变换部;所述主变换部重复变换输出由所述副变换部传送的中间密钥的处理1次以上;所述副变换部重复变换输出由所述主变换部输出的中间密钥的处理1次以上;所述主变换部和所述副变换部中的至少任一个重复变换输出所述中间密钥的处理1次以上;所述主变换部把由所述主变换部和所述副变换部中的至少任一个输出的中间密钥作为输出密钥输出;所述中间密钥生成部通过输入由所述主变换部输出的输出密钥,生成由中间密钥和输出密钥构成的扩大密钥。
所述中间密钥生成部具有用于从输入的6个密钥中选择1个密钥的6-1KL选择器、和把从6-1KL选择器中选择的一个密钥作为中间密钥保持的密钥KL寄存器;所述6-1KL选择器输入编码密钥,并输入由输入的编码密钥、由所述密钥KL寄存器保持的中间密钥以及根据所述密钥KL寄存器保持的中间密钥以4个不同的移位数分别循环移位的4个密钥构成的6个密钥,从输入的6个密钥中选择1个密钥;所述密钥KL寄存器保持由所述6-1KL选择器选择的密钥;所述副变换部在输入从所述控制部输出的密钥传送信号时,把保持在所述密钥KL寄存器中的密钥作为中间密钥输入,并传送所输入的中间密钥。
所述中间密钥生成部具有从输入的4个密钥中选择1个密钥的4-1选择器、从输入的3个密钥中选择1个密钥的3-1KL选择器、以及把从3-1KL选择器选择的一个密钥作为中间密钥保持的密钥KL寄存器;所述4-1选择器输入根据由所述密钥KL寄存器保持的中间密钥以4个不同的移位数分别循环移位后的4个密钥,并从输入的4个密钥中选择一个密钥;所述3-1KL选择器输入编码密钥,输入由输入的编码密钥、由所述4-1选择器选择的1个密钥、保持在所述密钥KL寄存器中的中间密钥构成的3个密钥,并从输入的3个密钥中选择1个密钥;所述密钥KL寄存器保持由所述3-1KL选择器选择的密钥;所述副变换部在输入从所述控制部输出的密钥传送信号时,把保持在所述密钥KL寄存器中的密钥作为中间密钥输入,并传送所输入的中间密钥。
所述副变换部具有进行基于数据的线性的数据变换的数据正变换部(FL)、进行与所述数据正变换部(FL)相反的数据变换的数据逆变换部(FL-1)中的至少任一个;所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的至少任一个进行数据变换,并且在所述控制部输出传送信号时,输入所述控制部输出的传送信号,不进行数据变换地按照输入的传送信号来传送数据和密钥中的至少任一个。
所述控制部输出密钥传送信号即密钥传递信号和掩码信号作为传送所输入的密钥的传送信号;所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的至少任一个在输入了由所述控制部输出的密钥传递信号和掩码信号时,通过根据输入的密钥传递信号而使输入的数据无效,并且根据输入的掩码信号而使输入的密钥通过,来传送密钥。
所述控制部输出数据传送信号即数据传递信号作为传送输入的数据的传送信号;所述数据正变换部(FL)和数据逆变换部(FL-1)中的至少任一个在输入了由所述控制部输出的数据传递信号时,通过根据输入的数据传递信号而使输入的密钥无效,并且使输入的数据通过,来传送数据。
所述副变换部具有共用同一电路进行执行基于数据的线性的数据变换的数据正变换和执行与所述正变换相反的数据变换的数据逆变换的1/2副变换部,通过1/2副变换部对数据进行变换,并且在所述控制部输出传送信号时,输入所述控制部输出的传送信号,并按照输入的传送信号,来传送密钥和数据中的至少任一个。
所述副变换部具有进行基于数据的线性的数据变换的数据正变换部(FL)和进行与所述正变换相反的数据变换的数据逆变换部(FL-1),所述数据正变换部(FL)和所述数据逆变换部(FL-1)串联配置;所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的任一个输入由所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的任一个进行数据变换的数据、所传送的密钥、或所传送的数据中的任一个,并使用所输入的经数据变换后的数据、所传送的密钥、或所传送的数据中的任一个,来进行数据变换、密钥的传送、数据的传送中的任一种。
所述数据变换装置的特征在于输入128位、192位、或256位的任一密钥,使用所输入的密钥,对所输入的数据进行数据变换。
本发明的一种数据变换方法,输入密钥和数据,使用输入的密钥进行对输入的数据进行编码和数据译码中的至少一种数据变换,其特征在于当传送密钥和数据中的任一个时,输出用以指示传送输入的密钥和输入的数据中的任一个的传送信号;通过使用输入的密钥对数据进行变换,进行数据编码和数据译码中的至少任一种数据变换,并且在输入所述输出的传送信号时,不进行数据变换地传送输入的密钥和输入的数据中的至少任一个。
本发明的一种数据变换程序,输入密钥和数据,使用输入的密钥进行对输入的数据进行编码和数据译码中的至少一种数据变换,其特征在于使计算机执行以下处理当传送密钥和数据中的任一个时,输出用以指示传送输入的密钥和输入的数据中的任一个的传送信号的处理;通过使用输入的密钥对数据进行变换,进行数据编码和数据译码中的至少任一种数据变换,并且当输入所述输出的传送信号时,不进行数据变换地传送输入的密钥和输入的数据中的至少任一个的处理。
在记录本发明的数据变换程序的计算机可读取记录媒体中,该数据变换程序输入密钥和数据,使用输入的密钥进行输入的数据的编码和数据的译码中的至少任一种数据变换,其特征在于,使计算机执行以下处理当传送密钥和数据中的任一个时,输出用以指示传送输入的密钥和输入的数据中的任一个的传送信号的处理;通过使用输入的密钥对数据进行变换,进行数据编码和数据译码中的至少任一种数据变换,并且当输入所述输出的传送信号时,不进行数据变换地传送输入的密钥和输入的数据中的至少任一个的处理。
所述数据变换装置的特征在于还具有生成密钥的密钥生成部;所述密钥生成部还具有中间密钥生成部,用于输入编码密钥,根据输入的编码密钥生成中间密钥,根据生成的中间密钥使用所述主变换部和所述副变换部生成输出密钥。
所述中间密钥生成部具有输入6个密钥并从输入的6个密钥中选择1个密钥的6-1KL选择器;把从所述6-1KL选择器选择的1个密钥作为中间密钥保持的密钥KL寄存器;从6个密钥中选择1个密钥的6-1KA选择器;把由6-1KA选择器选择的1个密钥作为输出密钥保持的密钥KA寄存器;所述6-1KL选择器输入编码密钥,并输入由所述输入的编码密钥、由所述密钥KL寄存器保持的中间密钥、根据保持在所述密钥KL寄存器中的中间密钥以4个不同的移位数分别循环移位后的4个密钥构成的6个密钥,从输入的6个密钥中选择1个密钥;
所述密钥KL寄存器把由所述6-1KL选择器选择的密钥作为中间密钥保持;所述6-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,输入由输入的输出密钥、保持在所述密钥KA寄存器中的输出密钥、根据保持在所述密钥KA寄存器中的输出密钥以4个不同的移位数分别循环移位后的4个密钥构成的6个密钥,从输入的6个密钥中选择1个密钥;所述密钥KA寄存器把由所述6-1KA选择器选择的密钥作为输出密钥保持。
所述中间密钥生成部具有从2个密钥中选择1个密钥的2-1选择器、从4个密钥中选择1个密钥的4-1选择器、从3个密钥中选择1个密钥的3-1KL选择器、把由3-1KL选择器选择的密钥作为中间密钥保持的密钥KL寄存器、从3个密钥中选择1个密钥的3-1KA选择器、把由3-1KA选择器选择的密钥作为输出密钥保持的密钥KA寄存器;所述2-1选择器从保持在所述密钥KL寄存器中的中间密钥、保持在所述密钥KA寄存器中的输出密钥中选择1个密钥;所述4-1选择器输入根据由所述2-1选择器选择的密钥以4个不同的移位数分别循环移位后的4个密钥,并从输入的4个密钥中选择1个密钥;所述3-1KL选择器输入编码密钥,输入由输入的编码密钥、由所述4-1选择器选择的密钥、保持在所述密钥KL寄存器中的中间密钥构成的3个密钥,并从输入的3个密钥中选择1个密钥;所述密钥KL寄存器把由所述3-1KL选择器选择的密钥作为中间密钥保持;所述3-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,输入由输入的输出密钥、所述4-1选择器选择的密钥、保持在所述密钥KA寄存器中的输出密钥构成的3个密钥,从输入的3个密钥中选择1个密钥;
所述密钥KA寄存器把由所述3-1KA选择器选择的密钥作为输出密钥保持。
所述中间密钥生成部具有从2个密钥中选择1个密钥的2-1KL选择器、保持由2-1KL选择器选择的密钥的密钥KL寄存器、从2个密钥中选择1个密钥的2-1KA选择器、保持由2-1KA选择器选择的密钥的密钥KA寄存器、从2个密钥中选择1个密钥的2-1选择器、从8个密钥中选择1个密钥的8-1选择器;所述2-1KL选择器输入编码密钥,从输入的编码密钥和保持在所述密钥KL寄存器中的密钥中选择1个密钥;所述2-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,从输入的输出密钥和保持在所述密钥KA寄存器中的密钥中选择1个密钥;所述2-1选择器从由所述2-1KL选择器和所述2-1KA选择器选择的2个密钥中选择1个密钥;所述8-1选择器输入根据所述2-1选择器选择的密钥以8个不同的移位数分别循环移位后的8个密钥,并从输入的8个密钥中选择1个密钥。
本发明的一种数据变换装置,具有对数据进行数据变换的数据搅拌部,其特征在于所述数据搅拌部并联有输入数据并对输入的数据进行非线性数据变换的主变换部、和对输入的数据进行线性数据变换的副变换部;所述主变换部输入密钥和数据,使用输入的密钥,根据用于进行非线性数据变换的函数即F函数,对输入的数据进行非线性数据变换,并输出非线性变换后的数据;所述副变换部输入密钥和数据,使用输入的密钥,对输入的数据进行线性变换,并输出线性变换后的数据;所述主变换部和所述副变换部通过反复进行基于所述主变换部的数据变换和基于所述副变换部的数据变换,进行数据的编码和数据的译码中的至少一种数据变换。
所述主变换部具有F函数部,该F函数部多次重复使用输入的密钥、根据F函数对输入的数据进行非线性数据变换,并输出数据变换后的数据的处理。
所述F函数部通过重复2X次使用输入的密钥、根据1/2XF函数(X≥0),对输入的数据进行非线性数据变换并输出数据变换后的数据的处理,结束1次基于F函数的非线性数据变换并输出结束的数据,通过重复多次上述处理,进行多次基于F函数的非线性数据变换。
所述F函数部输入分割为高位数据和低位数据的数据的任一个,对输入的数据进行非线性数据变换,输出数据变换后的高位数据和低位数据中的任一个,把输出的高位数据和低位数据中的任一个与高位数据和低位数据中的另一个进行异或运算,切换输出异或运算后的数据、未输入到所述F函数中的高位数据和低位数据中的另一个。
所述数据变换装置的特征在于还具有生成密钥的密钥生成部;所述密钥生成部具有中间密钥生成部,输入编码密钥,根据输入的编码密钥生成中间密钥,根据生成的中间密钥、使用所述主变换部和所述副变换部生成输出密钥。
所述密钥生成部还具有密钥调度部,输入由所述中间密钥生成部生成的中间密钥和预定常数,根据输入的中间密钥、输出密钥和预定常数、按照预定条件调度在所述主变换部和所述副变换部进行的数据变换中所使用的密钥;所述主变换部和所述副变换部分别输入由所述密钥调度部调度的密钥,并根据各自输入的密钥,对输入到各自中的数据进行数据变换。
所述中间密钥生成部具有输入6个密钥并且从输入的6个密钥中选择1个密钥的6-1KL选择器、把由所述6-1KL选择器选择的1个密钥作为中间密钥保持的密钥KL寄存器、从6个密钥中选择1个密钥的6-1KA选择器、把由6-1KA选择器选择的1个密钥作为输出密钥保持的密钥KA寄存器;所述6-1KL选择器输入编码密钥,输入由所述输入的编码密钥、保持在所述密钥KL寄存器中的中间密钥、根据保持在所述密钥KL寄存器中的中间密钥以4个不同的移位数分别循环移位后的4个密钥构成的6个密钥,并从输入的6个密钥中选择1个密钥;所述密钥KL寄存器把由所述6-1KL选择器选择的密钥作为中间密钥保持;所述6-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,输入由输入的输出密钥、保持在所述密钥KA寄存器中的输出密钥、根据保持在所述密钥KA寄存器中的输出密钥以4个不同的移位数分别循环移位后的4个密钥构成的6个密钥,并从输入的6个密钥中选择1个密钥;所述密钥KA寄存器把由所述6-1KA选择器选择的密钥作为输出密钥保持。
所述中间密钥生成部具有从2个密钥中选择1个密钥的2-1选择器、从4个密钥中选择1个密钥的4-1选择器、从3个密钥中选择1个密钥的3-1KL选择器、把由3-1KL选择器选择的密钥作为中间密钥保持的密钥KL寄存器、从3个密钥中选择1个密钥的3-1KA选择器、把由3-1KA选择器选择的密钥作为输出密钥保持的密钥KA寄存器;所述2-1选择器从保持在所述密钥KL寄存器中的中间密钥、保持在所述密钥KA寄存器中的输出密钥中选择1个密钥;所述4-1选择器输入根据由所述2-1选择器选择的密钥以4个不同的移位数分别循环移位后的4个密钥,并从输入的4个密钥中选择1个密钥;所述3-1KL选择器输入编码密钥,输入由输入的编码密钥、所述4-1选择器选择的密钥、保持在所述密钥KL寄存器中的中间密钥构成的3个密钥,并从输入的3个密钥中选择1个密钥;所述密钥KL寄存器把由所述3-1KL选择器选择的密钥作为中间密钥保持;所述3-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,输入由输入的输出密钥、所述4-1选择器选择的密钥、保持在所述密钥KA寄存器中的输出密钥构成的3个密钥,从输入的3个密钥中选择1个密钥;所述密钥KA寄存器把由所述3-1KA选择器选择的密钥作为输出密钥保持。
所述中间密钥生成部具有从2个密钥中选择1个密钥的2-1KL选择器、保持由2-1KL选择器选择的密钥的密钥KL寄存器、从2个密钥中选择1个密钥的2-1KA选择器、保持由2-1KA选择器选择的密钥的密钥KA寄存器、从2个密钥中选择1个密钥的2-1选择器、从8个密钥中选择1个密钥的8-1选择器;所述2-1KL选择器输入编码密钥,并从输入的编码密钥和保持在所述密钥KL寄存器中的密钥中选择1个密钥;所述2-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,从输入的输出密钥和保持在所述密钥KA寄存器中的密钥中选择1个密钥;所述2-1选择器从由所述2-1KL选择器和所述2-1KA选择器选择的2个密钥中选择1个密钥;所述8-1选择器输入根据所述2-1选择器选择的密钥以8个不同的移位数分别循环移位后的8个密钥,并从输入的8个密钥中选择1个密钥。
所述副变换部具有对数据进行线性变换的数据正变换部(FL)和进行与所述数据正变换部(FL)的变换相反的变换的数据逆变换部(FL-1)中的至少任一个,通过所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的至少一个对数据进行数据变换。
所述副变换部具有共用同一电路进行对数据执行线性变换的数据正变换和执行与所述数据正变换相反的逆变换的数据逆变换的1/2副变换部,并通过1/2副变换部对数据进行数据变换。
所述数据变换装置的特征在于所述数据变换装置输入128位、192位或256位的任一密钥,使用所输入的密钥,对输入的数据进行编码和数据译码中的任一种数据变换。
本发明的一种数据变换方法,其特征在于通过重复进行下述处理,进行数据编码和数据译码中的至少一种数据变换,其中所述处理包括通过与对数据进行线性数据变换的副变换部并联配置的、输入密钥和数据,使用输入的密钥,根据用于进行非线性数据变换的函数即F函数,进行非线性数据变换的主变换部,对输入的数据进行非线性数据变换,并输出非线性变换后的数据的处理;输入密钥和数据,使用输入的密钥,通过与所述主变换部并联配置的所述副变换部,对输入的数据进行线性变换,并输出线性变换的数据的处理。
本发明的一种数据变换程序,其特征在于使计算机执行以下处理通过重复进行下述处理,进行数据编码和数据译码中的至少一种数据变换,其中所述处理包括通过与对数据进行线性数据变换的副变换部并联配置的、输入密钥和数据,使用输入的密钥,根据用于进行非线性数据变换的函数即F函数,进行非线性数据变换的主变换部,对输入的数据进行非线性数据变换,并输出非线性变换后的数据的处理;输入密钥和数据,使用输入的密钥,通过与所述主变换部并联配置的所述副变换部,对输入的数据进行线性变换,并输出线性变换的数据的处理。
在记录本发明的一种记录了数据变换程序的计算机可读取记录媒体,该程序使计算机执行以下处理通过重复进行下述处理,进行数据编码和数据译码中的至少一种数据变换,其中所述处理包括通过与对数据进行线性数据变换的副变换部并联配置的、输入密钥和数据,使用输入的密钥,根据用于进行非线性数据变换的函数即F函数,进行非线性数据变换的主变换部,对输入的数据进行非线性数据变换,并输出非线性变换后的数据的处理;输入密钥和数据,使用输入的密钥,通过与所述主变换部并联配置的所述副变换部,对输入的数据进行线性变换,并输出线性变换的数据的处理。


下面简要说明附图。
图1是实施例1的数据变换装置的结构图。
图2是表示128位密钥时,中间密钥生成部40从中间密钥生成输出密钥的动作的图。
图3是表示密钥调度部210的内部结构及其动作的图。
图4是表示数据搅拌部30的数据编码/译码处理的动作的图。
图5是表示F函数部321的内部结构和动作的图。
图6是相反配置图1的主变换部320和副变换部330的数据变换装置的结构图。
图7是并联配置主变换部320和副变换部330的数据变换装置的结构图。
图8是表示中间密钥生成部40的6-1KL选择器220和6-1KA选择器230的内部结构的图。
图9是表示中间密钥生成部40的其他结构例的图。
图10是数据正变换部50具有密钥传送功能时的副变换部330的内部结构图。
图11是数据逆变换部70具有密钥传送功能时的副变换部330的内部结构图。
图12是数据正变换部50和数据逆变换部70具有密钥传送功能时的副变换部330的内部结构图。
图13是实施例2的数据正变换部50具有数据传送功能时的副变换部330的内部结构图。
图14是数据逆变换部70具有数据传送功能时的副变换部330的内部结构图。
图15是数据正变换部50和数据逆变换部70具有数据传送功能时的副变换部330的内部结构图。
图16是实施例3的数据正变换部50具有密钥传送功能、数据逆变换部70具有密钥传送功能时的副变换部330的内部结构图。
图17是数据逆变换部70具有密钥传送功能和数据传送功能、数据正变换部50具有密钥传送功能时的副变换部330的内部结构图。
图18是数据正变换部50和数据逆变换部70具有密钥传送功能和数据传送功能时的副变换部330的内部结构图。
图19是数据正变换部50具有密钥传送功能和数据传送功能时的副变换部330的内部结构图。
图20是数据逆变换部70具有密钥传送功能和数据传送功能时的副变换部330的内部结构图。
图21数据正变换部50具有密钥传送功能和数据传送功能、数据逆变换部70具有数据传送功能时的副变换部330的结构图。
图22是数据逆变换部70具有密钥传送功能和数据传送功能、数据正变换部50具有数据传送功能时的副变换部330的结构图。
图23是数据正变换部50具有数据传送功能、数据逆变换部70具有密钥传送功能时的副变换部330的结构图。
图24是数据正变换部50具有密钥传送功能、数据逆变换部70具有数据传送功能时的副变换部330的结构图。
图25是把数据逆变换部70和数据正变换部50串联,数据正变换部50和数据逆变换部70分别具有数据传送功能时的副变换部330的结构图。
图26是图25的数据正变换部50和数据逆变换部70上下交换时的副变换部330的结构图。
图27是串联数据正变换部50和数据逆变换部70,数据正变换部50具有密钥传送功能和数据传送功能,数据逆变换部70具有数据传送功能时的副变换部330的结构图。
图28是图27的数据正变换部50和数据逆变换部70上下交换时的副变换部330的结构图。
图29是串联数据正变换部50和数据逆变换部70,数据正变换部50具有数据传送功能,数据逆变换部70具有密钥传送功能和数据传送功能时的副变换部330的结构图。
图30是图29的数据正变换部50和数据逆变换部70上下交换时的副变换部330的结构图。
图31是在实施例4的1/2副变换部90中附编码钥传送功能和数据传送功能时的副变换部330的结构图。
图32是1/2副变换部90中附加数据传送功能时的副变换部330的结构图。
图33是1/2副变换部90中附编码钥传送功能时的副变换部330的结构图。
图34是表示使用128位密钥的CAMELLIA数据变换装置的数据编码处理的图。
图35是表示使用128位密钥的CAMELLIA数据变换装置的数据译码处理的图。
图36是CAMELLIA数据变换装置的F函数内部结构图。
图37是表示实施例5的全体结构和动作的图。
图38是表示实施例6的全体结构和动作的图。
图39是表示实施例11的全体结构和动作的图。
图40是表示实施例12的全体结构和动作的图。
图41是表示实施例13的全体结构和动作的图。
图42是表示实施例14的全体结构和动作的图。
图43是表示实施例15的全体结构和动作的图。
图44是表示实施例16的全体结构和动作的图。
图45是表示实施例17的全体结构和动作的图。
图46是表示实施例18的全体结构和动作的图。
图47是表示实施例7的全体结构和动作的图。
图48是表示实施例8的全体结构和动作的图。
图49是表示实施例9的全体结构和动作的图。
图50是表示实施例10的全体结构和动作的图。
图51是表示实施例19的全体结构和动作的图。
图52是表示实施例20的全体结构和动作的图。
图53是表示密钥为192、256位时,中间密钥生成部40从中间密钥生成输出密钥的动作的图。
图54是表示使用192、256位密钥的CAMELLIA数据变换装置的数据编码处理的图。
图55是表示使用192、256位密钥的CAMELLIA数据变换装置的数据译码处理的图。
图56是关联的数据变换装置的结构和动作图的一例。
图57是主变换部320的内部结构的一例。
图58是表示构成副变换部330的电路的图。
图59是表示共用构成副变换部330的数据正变换部50和数据逆变换部70的电路的图。
图60是关联的数据变换装置的结构和动作图的另一例。
图61是主变换部320的内部结构的另一例。
图62是串联数据正变换部50和数据逆变换部70,数据正变换部50和数据逆变换部70具有密钥传送功能和数据传送功能时的副变换部330的结构图。
图63是图62的数据正变换部50和数据逆变换部70上下交换时的副变换部330的结构图。
图64是CAMELLIA数据变换装置的主变换部内部结构的一例。
具体实施例方式
实施例1下面说明实施例中记载的数据变换装置。
数据变换装置图1是本实施例的数据变换装置的结构和动作图。
在本实施例中,不存在图56和图60所示的“把从密钥KL寄存器240输出的中间密钥(密钥KL)输入到选择器310的路径”、“把从主变换部320输出的数据输入到选择器310的路径”。这是因为在本实施例的副变换部330中,除了本来具有的数据变换功能,还追加传送密钥和数据的功能。
下面,说明使用了副变换部330所具有的传送密钥和数据的功能的密钥生成和数据的编码/译码。其他结构和动作与实施图56以及图60说明的同样,所以省略说明。
在本实施例中,从密钥KL寄存器240输出的中间密钥(密钥KL)不直接输入到选择器310,而是利用从密钥KL寄存器240到密钥调度部210的以往的路径,经由密钥调度部210输入到副变换部330。副变换部330具有“变换数据的模式”和“传送密钥或数据的模式”,所以如果输入密钥,就把模式切换到“传送密钥或数据的模式”,把输入的密钥传送给选择器310。
此外,在本实施例中,经主变换部320非线性变换的数据不直接输入到选择器310,而输入到副变换部330。副变换部330如果输入经主变换部320非线性变换的数据,就把模式切换为“传送密钥或数据的模式”,把输入的数据传送给选择器310。
通过使副变换部330进行这样的传送动作,可以不要图56和图60所示的所述2个路径。
须指出的是,如前所述,当主变换部320用多个周期进行基于F函数的1次数据变换时,有必要把保持一定期间的中间数据输入到主变换部320,所以在图1中存在用虚线表示的“把中间数据从运算寄存器350向选择器310发送的路径”,但是当主变换部320用1个周期进行基于F函数的1次数据变换时,不需要用虚线表示的“从运算寄存器350到选择器310的路径”。关于后面描述的图6的虚线所示的路径,也同样。
密钥生成方法下面,说明由中间密钥生成部40进行的中间密钥和输出密钥的生成方法。
图2表示表示中间密钥生成部40根据中间密钥生成输出密钥的动作。
首先,把编码密钥输入中间密钥生成部40,经过6-1KL选择器220,作为中间密钥(密钥KL)保持在密钥KL寄存器240中。保持在密钥KL寄存器240中的编码密钥作为中间密钥(密钥KL)经由密钥调度部210输入到主变换部320中。在主变换部320的第一级F函数部321a,使用从密钥调度部210输出的常数∑1,对输入的中间密钥(密钥KL)的高位进行非线性变换,通过EXOR电路322a,取中间密钥(密钥KL)的低位的异或,输入到F函数部321b。在F函数部321b中也是同样,使用从密钥调度部210输出的常数∑2,对从EXOR电路322a输出的密钥进行非线性变换,通过EXOR电路322b,取与中间密钥(密钥KL)的低位的异或。结果,使输出的密钥为密钥的高位,使从EXOR电路322a输出的密钥为密钥的低位,向副变换部330输出。
副变换部330输入这些数据,使用副变换部330的数据正变换部50中包含的2个异或运算器(EXOR)和副变换部330的数据逆变换部70中包含的2个异或运算器(EXOR),分别把密钥的高位和密钥的低位取异或运算,结果,把输出的数据再输入到主变换部320。
主变换部320与使用所述主变换部320的一部分的处理同样,进行包含主变换部320具有的F函数部321a和EXOR电路322a、F函数部321b和EXOR电路322b的2级变换处理,切换输出变换后的密钥的高位和低位。
输出的数据输入到中间密钥生成部40的6-1选择器230中,作为输出密钥(密钥KA)保持在密钥KA寄存器250中。这样,中间密钥生成部40使用进行数据编码/译码处理的构成部分的主变换部320一部分和副变换部一部分,由中间密钥(密钥KL)生成输出密钥(密钥KA)。由生成的中间密钥(密钥KL)的高位构成的密钥KLH和由下位构成的密钥KLL、由输出密钥(密钥KA)的高位构成的密钥KAH和由下位构成的密钥KAL等4个密钥输入到密钥调度部210,作为用于数据的编码/译码的密钥(称作扩大密钥)使用。此外,使用这样生成的输出密钥(密钥KA)和中间密钥(密钥KL),通过同样的处理,在各预定期间中生成新的中间密钥和输出密钥。
密钥调度说明密钥调度部210的内部结构及其动作。
图3是表示密钥调度部210的内部结构及其动作的图。
从中间密钥生成部40输出的中间密钥(密钥KL)被分割为高位的密钥KLH和低位的密钥KLL,输入到4-1选择器216和4-1选择器217中。从中间密钥生成部40输出的输出密钥(密钥KA)也同样分割为密钥KAH和密钥KAL,输入到4-1选择器216和4-1选择器217中。4-1选择器216和4-1选择器217从这4个密钥中选择1个密钥。把由4-1选择器216和4-1选择器217选择的信号、使选择的信号循环右移1位后的信号输入到2-1选择器214和2-1选择器215。如上所述,之所以使信号循环右移1位,是在中间密钥生成部40生成输出密钥(密钥KA)时,使用副变换部330,但是这时,通过副变换部330中包含的循环移位器使信号循环左移1位,所以预想预先循环左移1位而循环右移1位,以使循环移位的影响不波及结果。因此,密钥调度部210并不一定进行循环右移1位的处理,考虑副变换部330的循环移位器使信号循环移位的数和方向,预先在与该方向相反的方向把输入密钥循环移位副变换部330的循环移位器所循环移位的数。因此,2-1选择器214和2-1选择器215从这2个信号中选择1个关于密钥的信号,但是在生成输出密钥(密钥KA)时,向副变换部330输出密钥时,一定选择循环移动预先决定的位的密钥,然后向副变换部330输出。
当在生成输出密钥(密钥KA)时使用副变换部330时,向副变换部330输入从2-1选择器214和2-1选择器215输出的密钥,并且在生成输出密钥(密钥KA)时使用主变换部320时和进行数据的编码/译码处理时,输入到2-1选择器212,此外,把循环右或左移1字节的密钥输入到2-1选择器212。之所以把循环右或左移1字节的密钥输入到2-1选择器212,是因为在数据的编码/译码处理时,在F函数部由处理1/2、1/4、1/8等未满1的F函数的部分构成的情况下是必要的,但是后面详细描述。
212从这2个密钥中选择1个密钥,把选择的密钥输入到2-1选择器211。8-1选择器213输入把作为常数的∑1~∑4分割为高位数据和低位数据的数据,从这8个信号中选择一个信号,向2-1选择器211输入。2-1选择器211从输入的2个信号中选择1个信号,把选择的信号作为密钥向主变换部320输出。
数据的编码处理/译码处理下面,说明由数据搅拌部30进行的编码/译码处理。
图4是表示数据搅拌部30编码/译码处理的动作的图。
首先,输入P(普通数据或编码数据)。这里,假定P(普通数据或编码数据)为128位。输入数据P输入到EXOR电路311a中,输入到密钥生成部20中,与经由中间密钥生成部40和密钥调度部210输出的编码密钥(128位)异或。须指出的是,编码密钥首先输入到中间密钥生成部40,由6-1KL选择器220选择,作为中间密钥(密钥KL)保存在密钥KL寄存器240中后,作为中间密钥(密钥KL)输入到密钥调度部210中。
在进行公共密钥块编码处理的CAMELLIA中,EXOR电路31a和EXOR电路31b使用副变换部330具有的异或运算器。即如图58所示,把输入数据分割为高位的高位数据和低位的低位数据,把分割的各数据和输入的密钥由数据正变换部50的EXOR电路55和EXOR电路56或数据逆变换部70的EXOR电路56以及EXOR电路76取异或,输出。
使用从密钥调度部210输出的扩大密钥中的任意一个,通过主变换部320和副变换部330把输出的数据进行数据变换。在图4中,象主变换部320a、副变换部330a、主变换部320b、副变换部330b那样,交替进行数据变换。
这样变换的数据通过副变换部330的EXOR电路31b取与从密钥调度部210输出的密钥的异或,作为C(编码数据或译码数据)输出。
参照图1和图4,说明由CAMELLIA的数据搅拌部30进行的基于主变换部320和副变换部330的数据变换处理的动作的细节。
把从EXOR电路31a输出的数据分割为高位数据和低位数据,分别输入到主变换部320a中。在主变换部320a中,把输入的各数据进行非线性变换,使变换后的高位数据为低位数据,即如图4所示,把高位数据和低位数据交换后,输入到副变换部330a中。
在副变换部330a中,把输入数据线性变换。变换后的数据如图1所示,输入到选择器310中,保持在运算寄存器350中,输入到主变换部320(在图4中,由主变换部320b表示)。
在主变换部320b和副变换部330b中,重复主变换部320a和副变换部330b的处理,主变换部320c中再度重复与主变换部320a相同的处理。来自主变换部320c的输出数据通过EXOR电路31b,取与重复后的输出数据和从密钥调度部210输出的密钥的异或,作为C输出。在CAMELLIA中,31b与EXOR电路31a同样,使用副变换部330中包含的异或逻辑运算器。此外,在CAMELLIA中,主变换部320a、主变换部320b、主变换部320c通过使用同一主变换部320重复处理,进行数据变换。可是,也能采用分别设置具有同一内部结构的主变换部320a、主变换部320b、主变换部320c的结构。副变换部330a和副变换部330b也是同样。
这里,主变换部320具有1级的F函数处理部分时,如图57所示,进行基于6级F函数的数据变换处理时,通过重复6次基于主变换部320的处理,能完成基于6级的F函数的数据变换处理。这意味着在图1中,重复6次利用从主变换部320通过选择器310和运算寄存器350,回到主变换部320的路径,主变换部320完成基于6级的F函数的数据变换处理。因此,在图56和图60所示的关联技术中,“用于把来自主变换部320的输出数据向选择器310输入的路径”是必要的。
可是,在本实施例中,副变换部330具有后面描述的传送功能,所以来自主变换部320的数据可以在副变换部中传送后,向选择器310输入。因此,在本实施例的数据变换装置中,通过使用“把来自主变换部320的数据由副变换部330传送后,向选择器310输入的路径”,不需要“把来自主变换部320的数据向选择器310输入的路径”。
主变换处理-主变换部320参照图57、图61说明了主变换部320的内部结构和动作。
如上所述,把主变换部320具有的构造即具有重复以下处理的特征的非线性变换处理构造称作FEISTEL构造把输入数据分割为高位的高位数据和低位的低位数据,通过F函数对分割后的高位数据和低位数据中的任一方进行非线性变换,从非线性变换后的高位数据和低位数据的任一个、高位数据和低位数据的任意另一方生成输入F函数的数据,把生成的数据作为所述输入数据,分割为高位数据和低位数据,使用F函数再度变换。
主变换处理-主变换部320-F函数部321下面,说明主变换部320中包含的F函数部321的内部结构和动作。
图5是表示F函数部321的内部结构和动作的图。
首先,输入数据通过EXOR电路323取与扩大密钥的异或,进行8分割后,输入到S函数324中。扩大密钥是指把从编码密钥由中间密钥生成部40生成的输出密钥(密钥KA)和中间密钥(密钥KL)相加的密钥。当编码密钥为128位长度的CAMELLIA时,扩大密钥变为256位。把中间密钥(密钥KL)分割为高位的密钥KLH和低位的密钥KLL,同样,把输出密钥(密钥KA)高位的密钥KAH和低位的密钥KAL,从这4个密钥中由密钥调度部210调度的1个密钥输入到EXOR电路323中。S函数324是合成GF(28)的逆元运算和仿射变换的函数(S1到S4),进行字节单位的非线性变换。变换输出的数据输入到P函数325,通过进行线性变换的P函数325,进行数据的搅拌后输出。
下面,关于F函数部由处理F函数的1/2的部分(1/2F函数)构成时,说明其动作。
F函数部处理F函数的1/2的部分由EXOR电路323、S4324e到S1324h等4个S框、图5的约一半P函数部构成。从这样的结构首先进行所述F函数第一级的数据变换处理的1/2的处理。接着,再进行相同的处理,结束F函数的第一级的处理。在第一级的处理中,在密钥调度部210中,如上所述,使用循环右或左移1字节的密钥和数据。通过使密钥和数据循环右或左移1字节,不变更配置在S1~S4的S框的配置,就能产生与使S框错开1字节时相同的效果。即如图5所示,不改变由S4324e到S1324h表示的配置在S1、S2、S3、S4的S框的配置,输入循环移位1字节的密钥和数据,与由S1324a到S4324d表示的在配置S2、S3、S4、S1配置S框时同样的处理成为可能。
通过这样的操作,用2周期结束F函数第一级的处理。
把主变换部320和副变换部330交换配置的数据变换装置图6是把图1的主变换部320和副变换部330交换配置的数据变换装置的结构和动作图。
当把主变换部320和副变换部330相反配置的数据变换装置时,也与图1所示的数据变换装置同样,副变换部330使用传送功能传送数据,从而向主变换部320输出。利用这样的路径,主变换部320能结束基于6级F函数的数据变换处理。因此,图56和图60所示的“把来自副变换部330的输出数据向选择器310输入的路径”变为不要。
此外,从密钥KL寄存器240输出的中间密钥(密钥KL)不直接输入选择器310,而是利用从密钥KL寄存器240到密钥调度部210的路径,经由密钥调度部210,输入到副变换部330中。副变换部330如果输入密钥,就使用传送功能,把输入的密钥向主变换部320传送。
通过使副变换部330进行这样的传送动作,能不需要图56和图60所示的“把从密钥KL寄存器240输出的中间密钥(密钥KL)向选择器310输入的路径”、或“把从副变换部330输出的数据向选择器310输入的路径”等两条路经。
把主变换部320和副变换部330并联配置的数据变换装置图7是表示与图1、图6比较,在并联配置主变换部320和副变换部330、存在从2个输入信号中选择1个输出信号的选择器340这两点上不同的数据变换装置的图。
其他结构与图1、图6同样。
在采用这样的结构的数据变换装置中,并联配置主变换部320和副变换部330,所以选择从主变换部320和副变换部330输出的信号中的任一个的选择器340成为必要。然后,选择器340进行选择,选择器310根据经由运算寄存器350的信号和P(普通数据或编码数据)而选择的信号向主变换部320和副变换部330输入。
可是,在生成输出密钥(密钥KA)时,从密钥KL寄存器240输出的中间密钥(密钥KL)不直接输入选择器310中,而利用从密钥KL寄存器240到密钥调度部210的路径,经由密钥调度部210,输入到副变换部330。副变换部330如果输入密钥,就使用传送功能,把输入的密钥传送给主变换部320。因此,能不需要图56和图60所示的“把从密钥KL寄存器240输出的中间密钥(密钥KL)输入到选择器310中的路径”。
此外,能不需要“把从主变换部320输出的数据向选择器310输入的路径”或“把从副变换部330输出的数据向选择器310输入的路径”等两条路径。
中间密钥生成部40的内部结构下面,说明中间密钥生成部40的6-1KL选择器220和6-1KA选择器230的内部结构。
图8是表示中间密钥生成部40的6-1KL选择器220和6-1KA选择器230的内部结构的图。
在中间密钥生成部40中,保持在密钥KL寄存器240中的中间密钥(密钥KL)向密钥调度部210输出,并且再输入到6-1KL选择器220中。
在6-1KL选择器220中,把输入的中间密钥(密钥KL)向6-1选择器221输入,并且向6-1选择器221输入把中间密钥(密钥KL)以任意4个不同的移位数分别循环移位的4个信号。例如,虽然未图示,但是考虑到输入把中间密钥分别左移17位、左移15位、右移17位、右移15位的4个信号的情形。把这些中间密钥(密钥KL)、循环移位的4个信号、编码密钥作为6个输入信号,6-1选择器221从6个输入信号选择1个输出信号,把选择的输出信号作为新的中间密钥(密钥KL)保持到密钥KL寄存器240中。
从输出密钥(密钥KA)生成新的输出密钥(密钥KA)的方法也与从中间密钥(密钥KL)生成新的中间密钥(密钥KL)的方法完全同样。
图9是表示中间密钥生成部40的其他结构例的图。
图9中,与图8相比,谋求4-1选择器223所示的选择器的共享化。即把从密钥KL寄存器240输出的中间密钥(密钥KL)和从密钥KA寄存器250输出的输出密钥(密钥KA)输入到2-1选择器224,2-1选择器224从两个密钥选择1个密钥,使选择的1个密钥以4个不同的移位数分别循环移位,生成四个信号,把这四个信号输入4-1选择器223中。4-1选择器223从四个信号选择1个信号,输出到3-1KL选择器222或3-1KA选择器223中。
3-1KL选择器222从由4-1选择器223选择的密钥、编码密钥和保持在密钥KL寄存器240中的中间密钥(密钥KL)选择1个密钥,作为新的中间密钥保持到密钥KL寄存器240中。
3-1KA选择器223也同样,把由4-1选择器223选择的密钥、生成的输出密钥(密钥KA)和保持在密钥KA寄存器250中的输出密钥(密钥KA)选择1个密钥,作为新的输出密钥(密钥KA)保持到密钥KL寄存器240中。
在图8所示的结构中,如果换算为2-1选择器,需要10个,而在图9所示的结构中,如果换算为2-1选择器,需要8个,所以与图40所示的结构的中间密钥生成部40相比,能削减2个2-1选择器。这样,能谋求电路规模的削减。
须指出的是,图8所示的中间密钥生成部40的结构能应用于全部实施例的数据变换装置中。此外,图9所示的中间密钥生成部40的结构能应用于全部实施例的数据变换装置中。
后面描述的图51所示的中间密钥生成部40的结构能应用于全部实施例的数据变换装置中。
副变换处理-副变换部330下面,说明副变换部330的内部结构及其动作。
在本实施例中,说明数据正变换部50或数据逆变换部70的至少任一个具有密钥传送功能时的情形。
副变换处理-副变换部330-数据正变换部50具有密钥传送功能时的情形图10是表示副变换部330的内部结构和动作的图。
在本实施例中,与使用图58说明的关于关联技术的数据正变换部50和数据逆变换部70的结构图相比,附加传送密钥或信号的传送信号和伴随着这些传送信号的电路。
在图10中,数据正变换部50具有传送输入密钥的功能。
即向数据正变换部50输入传送密钥的传送信号,输入传送信号的数据正变换部50按照传送信号传送所输入的密钥。
具体而言,由控制部5控制传送信号,当传送密钥时,输出FL密钥传递信号和FL掩码信号。数据正变换部50输入由控制部5输出的FL密钥传递信号和FL掩码信号。
具体说明使用这些传送信号的基于数据正变换部50的密钥的传送处理。
当传送密钥时,把FL密钥传递信号设置为0,输入到AND电路51中。在AND电路51中也输入成为编码/译码的对象的数据。
因为FL密钥传递信号为0,所以输入的数据由AND电路51的AND电路抑制,变为无效。即无论输入的数据取怎样的值,AND电路51的输出数据变为0。
具有0值得AND电路51的输出数据的高位输入到OR电路53,低位输入到EXOR电路55。
而FL掩码信号输入到NOT电路52中。当传送密钥时,控制部5把FL掩码信号设置为0,所以NOT电路52的输出信号变为1,因为输入信号为0和1,所以OR电路53的输出信号为输出1。
AND电路54输入作为OR电路53的输出值的1和密钥1的信息,所以AND电路54的输出数据一定为密钥1。
由AND电路54输出的密钥1循环左移1位,输入到EXOR电路55中。密钥1自身在图3所示的密钥调度部210中预先循环右移1位,所以通过把由AND电路54输出的密钥1循环左移1位,成为应该传递的本来的密钥1的值。
在EXOR电路55中输入从AND电路51输出的具有0值的低位,所以由EXOR电路55的运算输出的是密钥1。它变为输出信号的低位。
因此,数据正变换部50根据FL密钥传递信号和FL掩码信号,能把密钥1原封不动作为输出信号输出。
关于密钥2也是同样,根据FL密钥传递信号和FL掩码信号,原封不动作为输出信号传送。下面,就其动作加以说明。
FL掩码信号如上所述为0。因此,在AND电路58中输入0和由EXOR电路55输出的密钥1,一定输出0。
OR电路57输入密钥2和0,所以输出值一定变为密钥2。
密钥2输入到EXOR电路56中,取与AND电路51输出的高位数据0的异或,所以输出一定为密钥2。它成为输出信号的高位。
如上所述,输入FL密钥传递信号和FL掩码信号,能原封不动地传送密钥1和密钥2。虽然在图11、图12、图14~图33中未图示控制传送信号即FL密钥传递信号和FL掩码信号的控制部5,但是与图10同样,由控制部5控制。
副变换处理-副变换部330-数据逆变换部70具有密钥传送功能时的情形下面,说明数据逆变换部70具有传送输入密钥的功能时的情形。
图11是表示数据逆变换部70具有密钥传送功能时的图。
在AND电路71中输入FL-1密钥传递信号和数据。
与所述FL密钥传递信号同样,FL-1密钥传递信号保持0,所以抑制输入到AND电路71中的数据,变为无效,AND电路71的输出数据固定为0。
与所述FL掩码信号同样,FL-1掩码信号是0,所以输入到AND电路73的信号双方为0,AND电路73的输出数据固定为0。
作为AND电路73的输出数据的0和密钥3为输入信号,所以OR电路74输出密钥3。
EXOR电路75输入来自AND电路71的输出数据0的高位0和密钥3,所以输出密钥3。它成为输出信号的高位。
此外,在OR电路78中,输入由NOT电路72把FL-1掩码信号0取反的值1和密钥3,所以OR电路78输出1。AND电路77输入来自OR电路78的输出数据1和密钥4,所以AND电路77的输出变为密钥4。密钥4循环左移1位,输入到EXOR电路76中。这里,密钥4由密钥调度部210预先循环右移1位,输入到数据逆变换部70中,所以这里通过循环左移1位,变为本来的密钥4的值。
在EXOR电路76中输入作为AND电路71的输出数据的低位的0和密钥4,所以EXOR电路76输出密钥4。它成为输出信号的低位。
这样,数据逆变换部70把FL-1密钥传递信号和FL-1掩码信号作为传送信号,输入传送信号时,能原封不动输出输入的密钥(密钥3、密钥4)。
副变换处理-副变换部330-数据正变换部50和数据逆变换部70具有密钥传送功能时的情形下面,说明数据正变换部50和数据逆变换部70具有传送输入密钥的功能时的情形。
图12是数据正变换部50和数据逆变换部70具有传送密钥的功能时的副变换部330的内部结构图。
数据正变换部50与图10的数据正变换部50为同一结构和同一动作,此外,数据逆变换部70与图11的数据逆变换部70为同一结构和同一动作,所以省略内部的结构和动作。
这样,通过使数据正变换部50和数据逆变换部70的至少任一个具有传送密钥的功能,可以不要图56和图60所示的从密钥KL寄存器240到密钥调度部210的路径,而是从密钥KL寄存器240经过密钥调度部210,把密钥输入到副变换部330,并且把传送密钥的传送信号输入到副变换部330,通过副变换部330把密钥向选择器310传送。
通过使基于这样的路径的密钥的传送成为可能,数据变换装置作为全体能削减选择器的数。即本实施例的数据变换装置为了实现小型化,如图2所示,通过中间密钥生成部40共用用于生成扩大密钥的函数和进行基于主变换部320和副变换部330的数据变换的函数,但是这时,图56和图60所示的“从密钥KL寄存器240向选择器310输入,经过运算寄存器350,输入到主变换部320的中间密钥(密钥KL)的路径”在本实施例中,利用“从密钥KL寄存器240经过密钥调度部210,通过副变换部330向选择器310传送,经过运算寄存器350,输入到主变换部320的中间密钥(密钥KL)的路径”,从而能抑制选择器的增加。
这样,抑制进行块编码处理的数据变换装置的数据搅拌部具有的选择器的增加,减少电路全体的门数,从而能谋求电路芯片全体的小型化和耗电的降低。因此,在强烈要求小型化和低耗电的移动电话等便携式仪器中也能有效安装本实施例的进行块编码处理的数据变换装置。
须指出的是,从图10到图33中输入的输入密钥分别可以是不同的密钥,也可以是相同的密钥。此外,FL密钥传递信号和FL-1密钥传递信号可以是同一信号。此外,FL掩码信号和FL-1掩码信号可以是同一信号。
实施例2
在本实施例中,说明数据正变换部50或数据逆变换部70的至少任一个具有数据传送功能时的情形。
副变换处理-副变换部330-数据正变换部50具有数据传送功能时的情形在本实施例中,说明副变换部330具有传送数据的功能时的数据变换装置。
图13是数据正变换部50具有传送数据的功能时的副变换部330的内部结构图。
控制部5把以FL数据传递信号作为传送数据的信号输入到数据正变换部50中。输入到数据正变换部50中的FL数据传递信号具有0值。该信号输入到AND电路59和AND电路60中。
在AND电路54中,输入数据的高位和密钥1输入到AND电路54中。AND电路54的输出数据根据输入数据的值,是不特定的,但是即使向AND电路60输入把输出数据循环左移1位的数据,另一方的信号即FL数据传递信号具有0值,所以AND电路60的输出信号与AND电路54的输出信号的值无关,变为0。AND电路60的输出数据0输入到EXOR电路55,取输入数据和低位的异或。因为AND电路60的输出为0,所以在EXOR电路55中,输出输入的数据的低位,作为输出信号的低位数据输出。
而EXOR电路55的输出数据与密钥一起成为OR电路57的输入信号。这里,虽然OR电路57的输出信号是不特定的,但是FL数据传递信号固定为0,所以AND电路59的输出数据变为0,在EXOR电路56中,取输入的数据的高位和AND电路59的输出数据0的异或,所以输出输入的数据的高位,作为输出信号的高位数据输出。
这样,数据正变换部50把FL数据传递信号作为传送信号输入,从而能不根据密钥的输入,原封不动把输入的数据输出。
须指出的是,图13的数据逆变换部70具有与图57所示的数据逆变换部70相同的结构,所以省略说明。
副变换处理-副变换部330-数据逆变换部70具有数据传送功能时的情形图14是数据逆变换部70具有数据传送功能时副变换部330的内部结构图。
数据逆变换部70输入传送数据的FL-1数据传递信号。当传送数据时,FL-1数据传递信号具有0,所以与OR电路74的输出信号的值无关,AND电路79输出0。因此,在EXOR电路75中,把输入的数据的高位原封不动地输出,成为输出信号的高位数据。
此外,FL-1数据传递信号输入到AND电路80中,所以AND电路77的输出信号无论取何值,AND电路80的输出信号都变为0。因此,输入的数据的低位由EXOR电路76原封不动地输出,成为输出信号的低位数据。
这样,数据逆变换部70能把数据原封不动地作为输出信号传送。
副变换处理-副变换部330-数据正变换部50和数据逆变换部70具有数据传送功能时的情形图15是表示数据正变换部50和数据逆变换部70具有数据传送功能时的副变换部330的内部结构图。
数据正变换部50的结构与图13的数据正变换部50为相同的结构,数据逆变换部70的结构与图14的数据逆变换部70为相同的结构。因此,图15所示的数据正变换部50和数据逆变换部70分别能把输入的数据原封不动输出。
这样,副变换部330具有把输入的数据原封不动传送,以向选择器310输入的功能,从而图56所示的把主变换部320的输出数据向选择器310传送的路径变为不必要。
此外,如图60所示,在主变换部320具有1级以下的F函数时的数据编码/译码处理中,为了通过主变换部320进行1级的F函数的非线性变换,如上所述,运算寄存器350有必要在一定期间保持中间数据。在图60中,从主变换部320输出的中间数据经过选择器310向运算寄存器350输出的环路相当于此。
可是,如果象本实施例那样,使用把副变换部330的数据传送的功能,则所述环路变为不要。即从主变换部320输出的中间数据由副变换部330传送,输入到选择器310中,选择器310选择输入的中间数据,从而发送给主变换部320。
通过使用该数据路径,与图56和图60所示的给选择器310的输入信号数相比,能减少给选择器310的输入信号数,所以能抑制、减少选择器的增加。
图6、图7所示的数据变换装置中也同样,从主变换部320到选择器310的路径变为不要,能谋求装置的小型化,此外,能谋求基于选择器数减少的低耗电。
须指出的是,FL数据传递信号和FL-1数据传递信号可以是同一信号。
实施例3在本实施例中,说明数据正变换部50或数据逆变换部70的至少任一个具有密钥传送功能和数据传送功能时的情形。
副变换处理-副变换部330-数据正变换部50具有密钥传送功能和数据传送功能,数据逆变换部70具有密钥传送功能时的情形图16是数据正变换部50具有密钥传送功能和数据传送功能,数据逆变换部70具有密钥传送功能时的副变换部330的内部结构图。
数据逆变换部70的结构和动作与图11所示的具有密钥传送功能的数据逆变换部70同样,所以这里省略说明。
数据正变换部50的结构和动作是组合图10所示的具有密钥传送功能的数据正变换部50、图13所示的具有数据传送功能的数据正变换部50的结构。
在数据正变换部50中,FL密钥传递信号具有抑制输入的数据,使其无效的功能,FL掩码信号具有使输入密钥通过的功能。
此外,FL数据传递信号具有使输入密钥无效,使数据通过的功能。
因此,当FL密钥传递信号和FL掩码信号作为使密钥传送的传送信号,保持0时,无法进行数据的传送,所以FL数据传递信号作为使数据传送的传送信号,无法保持0。同样,当FL数据传递信号作为使数据传送的传送信号,保持0时,无法进行密钥的传送,所以FL密钥传递信号和FL掩码信号作为使密钥传送的传送信号,无法保持0。
此外,当FL密钥传递信号、FL掩码信号、FL数据传递信号和FL-1掩码信号都作为传送信号,无法保持0时,数据正变换部50和数据逆变换部70进行本来应该进行的输入数据的线性变换处理。
首先,说明数据正变换部50传送密钥的动作。
数据正变换部50输入0作为FL密钥传递信号,输入0作为FL掩码信号。因为不传送数据,所以FL数据传递信号保持1。
首先,AND电路51通过FL密钥传递信号抑制数据,使之无效。密钥1原封不动通过AND电路54,循环左移1位后,输入到AND电路60中。FL数据传递信号为1,所以密钥1原封不动通过AND电路60,在EXOR电路55中,取密钥1和从AND电路51输出的输出数据的低位的异或,所以密钥1作为输出信号的低位数据输出。
密钥2根据从AND电路58输出的0,通过OR电路57,根据FL数据传递信号,通过AND电路59,在EXOR电路56中取与从AND电路51输出的输出数据0的高位的异或,所以也通过EXOR电路56,成为输出信号的高位数据。这样,数据正变换部50能原封不动传送密钥(密钥1、密钥2)。
下面,说明数据正变换部50传送数据时的动作。
FL数据传递信号使输入信号为0。FL密钥传递信号和FL掩码信号保持1。
AND电路51使数据通过,把通过的数据的低位输入到EXOR电路55。在AND电路60中,输入的FL数据传递信号为0,所以AND电路60的输出为0,输入到EXOR电路55中的数据的低位通过EXOR电路55,作为输出信号的低位数据输出。
同样,因为FL数据传递信号为0,所以AND电路59的输出变为0,输入到EXOR电路56的数据的高位通过EXOR电路56,作为输出信号的高位数据输出。
这样,数据正变换部50能使数据原封不动通过。
这样,FL密钥传递信号或FL-1密钥传递信号即密钥传递信号、由FL掩码信号和FL-1掩码信号构成的掩码信号传送密钥,FL数据传递信号传送数据。
副变换处理-副变换部330-数据正变换部50具有密钥传送功能,数据逆变换部70具有密钥传送功能和数据传送功能时的情形图17是数据正变换部50具有密钥传送功能,数据逆变换部70具有密钥传送功能和数据传送功能时的副变换部330的内部结构图。
数据正变换部50的结构和动作与图10所示的具有密钥传送功能的数据正变换部50同样,所以这里省略说明。
数据逆变换部70的动作为与图16所示的数据正变换部50同样的动作,动作的细节已经描述,所以省略。
副变换处理-副变换部330-数据正变换部50和数据逆变换部70具有密钥传送功能和数据传送功能时的情形图18是数据正变换部50和数据逆变换部70分别具有密钥传送功能和数据传送功能时的副变换部330的内部结构图。
关于数据正变换部50和数据逆变换部70进行的传送动作,已经描述,所以省略。这里,数据正变换部50和数据逆变换部70都具有密钥传送功能和数据传送功能,所以数据变换装置能进行高度的密钥和数据传送处理。
副变换处理-副变换部330-数据正变换部50具有密钥传送功能和数据传送功能时的情形在图19是数据正变换部50具有密钥传送功能和数据传送功能,数据逆变换部70不具有这些传送功能的任一个时的副变换部330的结构图。
关于数据正变换部50和数据逆变换部70的动作,已经描述,所以省略。
副变换处理-副变换部330-数据逆变换部70具有密钥传送功能和数据传送功能时的情形在图20是数据逆变换部70具有密钥传送功能和数据传送功能,数据正变换部50不具有这些传送功能的任一个时的副变换部330的结构图。
关于数据正变换部50和数据逆变换部70的动作,已经描述,所以省略。
副变换处理-副变换部330-数据正变换部50具有密钥传送功能和数据传送功能,数据逆变换部70具有数据传送功能时的情形图21是数据正变换部50具有密钥传送功能和数据传送功能,数据逆变换部70只具有数据传送功能时的副变换部330的结构图。
关于数据正变换部50和数据逆变换部70的动作,已经描述,所以省略。
副变换处理-副变换部330-数据逆变换部70具有密钥传送功能和数据传送功能,数据正变换部50只具有数据传送功能时的情形图22是数据正变换部50具有数据传送功能,数据逆变换部70具有密钥传送功能和数据传送功能时的副变换部330的结构图。
关于数据正变换部50和数据逆变换部70的动作,已经描述,所以省略。
副变换处理-副变换部330-数据正变换部50具有数据传送功能,数据逆变换部70具有密钥传送功能时的情形图23是数据正变换部50具有数据传送功能,数据逆变换部70具有密钥传送功能时的副变换部330的结构图。
关于各动作,已经描述,所以省略。
副变换处理-副变换部330-数据正变换部50具有密钥传送功能,数据逆变换部70具有数据传送功能时的情形图24是数据正变换部50具有密钥传送功能,数据逆变换部70具有数据传送功能时的副变换部330的结构图。
关于各动作,已经描述,所以省略。
副变换处理-副变换部330-串联数据逆变换部70和数据正变换部50-数据正变换部50和数据逆变换部70具有数据传送功能时的情形图25是串联数据逆变换部70和数据正变换部50,数据逆变换部70具有数据传送功能,数据正变换部50也具有数据传送功能时的结构图。
关于各内部动作,已经描述,所以省略。
在图25所示的结构中,由数据逆变换部70传送的数据输入数据正变换部50中,作为由数据正变换部50进一步传送的输出信号输出。
这样,通过串联配置、连接数据正变换部50和数据逆变换部70,不仅基于数据正变换部50和数据逆变换部70的线性变换,而且只基于数据逆变换部70或只基于数据正变换部50的数据的线性变换成为可能。即把由数据逆变换部70进行数据的线性变换的数据输入数据正变换部50中,在数据正变换部50中,能把输入的数据不线性变换就传送。此外,用数据逆变换部70把输入的数据传送给数据正变换部50,能只用数据正变换部50把数据线性变换。
因此,是只想用数据正变换部50或数据逆变换部70进行数据变换时有效的结构。这样的效果在后面描述的图26~图30所示的副变换部330中也能产生同样的效果。
副变换处理-副变换部330-串联数据逆变换部70和数据正变换部50-数据正变换部50和数据逆变换部70具有数据传送功能时的情形图26表示图25的数据正变换部50和数据逆变换部70上下交换时的副变换部330的结构。
动作和效果与图25所示的副变换部330同样,所以省略。
副变换处理-副变换部330-串联数据逆变换部70和数据正变换部50-数据正变换部50具有密钥传送功能和数据传送功能,数据逆变换部70具有数据传送功能时的情形图27是在图26的数据正变换部50中再附编码钥传送功能时的副变换部330的结构图。
数据正变换部50和数据逆变换部70的内部结构和动作已经描述,所以省略。
副变换处理-副变换部330-串联数据逆变换部70和数据正变换部50-数据正变换部50具有密钥传送功能和数据传送功能,数据逆变换部70具有数据传送功能时的情形图28表示图27的数据正变换部50和数据逆变换部70上下交换时的副变换部330的结构。
数据正变换部50和数据逆变换部70的内部结构和动作已经描述,所以省略。
副变换处理-副变换部330-串联数据逆变换部70和数据正变换部50-数据正变换部50具有数据传送功能,数据逆变换部70具有密钥传送功能和数据传送功能时的情形图29是在图26所示的结构中追加数据逆变换部70的密钥传送功能的结构图。
数据正变换部50和数据逆变换部70的内部结构和动作已经描述,所以省略。
副变换处理-副变换部330-串联数据逆变换部70和数据正变换部50-数据正变换部50具有数据传送功能,数据逆变换部70具有密钥传送功能和数据传送功能时的情形图30表示图29的数据正变换部50和数据逆变换部70上下交换时的副变换部330的结构。
内部结构和动作如上所述,所以省略。
这样,FL密钥传递信号和FL-1密钥传递信号具有抑制输入的数据,使其无效的功能,FL掩码信号和FL-1掩码信号具有使输入密钥通过的功能。
此外,FL数据传递信号和FL-1数据传递信号具有使输入密钥无效,使数据通过的功能。
以上的6个信号全是传送信号,当不输入这些传送信号时,如关联技术所述,数据正变换部50和数据逆变换部70进行本来进行的数据的线性变换。
副变换处理-副变换部330-串联数据逆变换部70和数据正变换部50-数据正变换部50和数据逆变换部70具有密钥传送功能和数据传送功能时的情形图62由图27所示的数据正变换部50的结构和图29所示的数据逆变换部70的结构构成。即串联的数据正变换部50和数据逆变换部70双方都具有密钥传送功能和数据传送功能。
数据正变换部50和数据逆变换部70的结构和动作如上所述,所以省略。
副变换处理-副变换部330-串联数据逆变换部70和数据正变换部50-数据正变换部50和数据逆变换部70具有密钥传送功能和数据传送功能时的情形图63表示图62的数据正变换部50和数据逆变换部70上下交换时的副变换部330的结构。
内部结构和动作如上所述,所以省略。
实施例4在本实施例中,说明在以数据正变换部50和数据逆变换部70为共用电路的1/2副变换部90中附编码钥和数据传送功能的结构及其动作。
副变换处理-副变换部330-1/2副变换部90具有密钥传送功能和数据传送功能时的情形图31是在1/2副变换部90中附编码钥传送功能和数据传送功能时的副变换部330的结构图。
对于关联技术所示的图59,附编码钥传递信号、掩码信号、数据传递信号。此外,附加用于伴随着这些传送信号的输入,传送密钥和数据的电路。
首先,切换信号是切换数据正变换部50和数据逆变换部70的信号。当从输入到2-1选择器99a中的A信号和E信号中,根据切换信号选择A信号作为输出信号B输出,从输入到2-1选择器99b的C信号和F信号中,根据切换信号选择C信号作为输出信号D输出时,1/2副变换部90进行与数据正变换部50同样的数据变换。
而在2-1选择器99a根据切换信号,选择E信号作为输出信号,2-1选择器99b根据切换信号,选择B信号作为输出信号时,1/2副变换部90进行与数据逆变换部70相同的数据变换。
当根据切换信号,1/2副变换部90作为数据正变换部50起作用时,图31所示的动作变为与图18所示的数据正变换部50的动作同样。即密钥传递信号与图18的FL密钥传递信号对应,掩码信号与图18的FL掩码信号对应,数据传递信号与图18的FL数据传递信号对应。
此外,作为各电路的对应,98与AND电路51(图18)对应,91与EXOR电路55(图18)对应,95与AND电路60(图18)对应,101与AND电路54(图18)对应,94与OR电路53(图18)对应,100与NOT电路52(图18)对应,96与AND电路58(图18)对应,92与OR电路57(图18)对应,97与AND电路59(图18)对应,93与EXOR电路56(图18)对应。
通过这样对应,1/2副变换部90能发挥图18的数据正变换部50的功能。即在进行数据正变换的同时,输入密钥传送信号时,通过使输入的密钥为输出信号,能传送密钥(密钥1、密钥2)。须指出的是,关于这些动作,与图18的数据正变换部50同样,所以省略说明。
当1/2副变换部90根据切换信号,作为数据逆变换部70起作用时,图31所示的动作与图18所示的数据逆变换部70的动作同样。即密钥传递信号与图18的FL-1密钥传递信号对应,掩码信号与图18的FL-1掩码信号对应,数据传递信号与图18的FL-1传递信号对应。
此外,作为各电路的对应,98与AND电路71(图18)对应,91与EXOR电路76(图18)对应,95与AND电路80(图18)对应,101与AND电路77(图18)对应,94与OR电路78(图18)对应,96与AND电路73(图18)对应,92与OR电路74(图18)对应,97与AND电路79(图18)对应,93与EXOR电路75(图18)对应。
通过这样对应,1/2副变换部90能发挥与图18的数据逆变换部70的功能。即在进行数据逆变换的同时,输入密钥传送信号时,通过把输入的密钥作为输出信号,能传送密钥(密钥3、密钥4)。须指出的是,关于这些动作,与图18的数据逆变换部70同样,所以省略说明。
副变换处理-副变换部330-1/2副变换部90具有数据传送功能时的情形图32是对1/2副变换部90附加数据传送功能时的副变换部330的结构图。
与图31同样,由2-1选择器99a选择A信号,由2-1选择器99b选择C信号时,1/2副变换部90具有与图13的数据正变换部50同样的功能。这时,数据传递信号与FL数据传递信号对应。
此外,由根据切换信号,在2-1选择器99a选择E信号,在2-1选择器99b中选择F信号时,1/2副变换部90具有与图14的数据逆变换部70同样的功能。这时,数据传递信号与FL-1数据传递信号对应。
根据这样的1/2副变换部90的结构,在1/2副变换部90变换数据的同时,输入传送数据的传送信号时,不变换数据而输出,能进行传送处理。
须指出的是,关于这些动作,如上所述,所以省略说明。
副变换处理-副变换部330-1/2副变换部90具有密钥传送功能时的情形图33是在1/2副变换部90中附编码钥传送功能时的副变换部330的结构图。
与图31同样,由2-1选择器99a选择A信号,由2-1选择器99b选择C信号时,1/2副变换部90具有与图10的数据正变换部50同样的功能。这时,密钥传递信号和掩码信号与FL密钥传递信号和FL掩码信号对应。
此外,根据切换信号,在2-1选择器99a中选择E信号,在2-1选择器99b中选择F信号时,1/2副变换部90具有与图11的数据逆变换部70同样的功能。这时,密钥传递信号和掩码信号与FL-1密钥传递信号和FL-1掩码信号对应。
根据这样的1/2副变换部90,1/2副变换部90在变换数据的同时,输入传送密钥的传送信号时,通过不变换而输出密钥,能进行传送处理。
须指出的是,关于这些动作,已经描述,所以省略说明。
如本实施例所示,把数据正变换部50和数据逆变换部70作为共用电路构成的1/2副变换部90具有传送密钥的功能和传送数据的功能,从而通过副变换部330的小型化和通过不要所述密钥的路径和数据路径,防止选择器的增加,能使数据变换装置全体小型化。
以上,以CAMELLIA的结构为中心说明实施例1~实施例4描述的进行块编码的数据变换装置。可是,具有以上说明的传送功能的副变换部330能应用于CAMELLIA、MISTY、KASUMI等进行块编码的数据变换装置。
在上说明的图1或图6或图7所示的数据变换装置中,构成选择器310的2-1选择器能为1个或2个。
与此比较,在表示所述关联技术的数据变换装置中,如图56所示,为了从4个信号选择1个信号,需要3个2-1选择器。
在图60所示的使用1/2F函数的数据变换装置中,310为了从5个输入信号中选择1个输出信号,4个2-1选择器成为必要。
因此,根据图1或图6或图7所示的数据变换装置,与基于关联技术的数据变换装置相比,能减少构成数据搅拌部的选择器的数。
在图7所示的数据变换装置中,并联配置主变换部320和副变换部330,所以1个选择器340成为必要。选择器340把从主变换部320和副变换部330输出的2个输出信号作为输入信号输入,由1个从2个输入信号中选择1个输入信号的2-1选择器构成。因此,在图7中,选择器310和选择器340中必要的2-1选择器为2个。
因此,在图7所示的数据变换装置中,与基于关联技术的数据变换装置相比,能减少构成数据搅拌部的选择器的数。
实施例5在本实施例中,在进行块编码处理的CAMELLIA中,说明并联主变换部320和副变换部330的CAMELLIA。
CAMELLIA中,块长度为128位,密钥长度可利用128位、192位、256位。
算法的结构是具有上述特征的FEISTEL构造,基本上编码和译码处理能用同一硬件或软件实现。
F函数依存于密钥长度,当128位密钥时,为18级(图34的主变换部320的6级×3),当192位、256位密钥时,如图54和图55所示,成为24级。关于图54和图55,后面描述。
图34是表示128位密钥的CAMELLIA时的编码处理的图。即在图34中,对P(普通数据)进行基于主变换部320和副变换部330的数据变换(数据编码),输出C(编码数据)。在图34中,在F函数每6级中插入FL(数据正变换函数)和FL-1(数据逆变换函数)。
图34的左侧与作为基于图4的数据搅拌部30的动作记载的同样。即图4的EXOR电路31a和EXOR电路31b与图34的EXOR电路600和EXOR电路601对应,实际上由副变换部330中包含的EXOR进行处理。此外,图34所示的全部密钥如图4所示,由密钥调度部210调度,输入输出的密钥。
此外,图34的右侧与图57所示的图同样。
图35是表示128位密钥的CAMELLIA时的译码处理的图。
在图35中,对C(编码数据)进行基于主变换部320和副变换部330的数据变换(数据的译码),输出P(译码数据)。
须指出的是,图34和图35所示的动作如上所述,所以省略。
图36是CAMELLIA的F函数的内部结构图。
CAMELLIA的F函数的内部为SPN构造,数据处理基本上以从输入数据(1)到输入数据(8)的8位为单位进行,由基于称作S框构成的S函数和P函数的异或(EXOR)的线性变换构成。
在F函数部321中,首先输入各8位的输入数据(1)到输入数据(8),对输入的64位密钥分别取密钥(1)到密钥(8)各8位的合计64位密钥的异或,并输出。输出的数据输入到S函数324中,根据合成F(28)的逆元运算和仿射变换的S函数324,按字节单位进行非线性变换。
接着,根据P函数325,对数据进行即与异或的线性变换,通过这样的动作,搅拌数据后,作为输出数据(1)~输出数据(8)输出。
CAMELLIA的F函数的数据宽度为64位。在图36中,在S函数324中准备2组(从图36之下开始的S1、S2、S3、S4的一组和其上的S2、S3、S4、S1的一组)S1~S4的S框。
因此,如图36所示,首先进行从输入数据(1)到输入数据(4)的数据变换,进行从剩下的输入数据即输入数据(5)到输入数据(8)的数据变换,进行处理。这时,如上所述,为了在第二次数据变换中,有效利用构成从S1~S4按顺序配置的S框的电路,预先把数据循环移位1字节,通过输入循环移位的输入数据(5)到输入数据(8),不改变S函数324的结构,能使数据与S1~S4的S框对应。
这样,F函数通过密钥和输入数据的EXOR(异或)、4种S函数(S1~S4)的2次以及基于P函数325的运算,实现数据的非线性变换。
因为是SBOX(GF(28)上的逆元电路+仿射变换)S1~S4的S函数324、P函数325、数据正变换(FL)和数据逆变换(FL-1)函数,所以能以简单的圈代数的组合实现CAMELLIA的代表性的运算。
下面,详细说明CAMELLIA的全体结构和动作。
图37是表示CAMELLIA的全体结构和动作的图。
CAMELLIA当输入的编码密钥为128位时,在内部扩大为256位,使用扩大的扩大密钥,进行数据的编码/译码。
当输入的编码密钥为192位和256位密钥时,在内部扩大为512位后,在数据的编码/译码中使用,但是后面就192位和256位密钥的情形加以说明。
首先,描述CAMELLIA的构造的特征。
通过主变换部320重复运算同样的F函数,实现CAMELLIA的算法全体。此外,F函数采用图36所示的结构。
此外,在数据搅拌部30中,如图4的EXOR电路31a和EXOR电路31b所示,进行输入数据以及输出数据和密钥的异或运算(EXOR)。把它称作加白(whitening)。
此外,在数据搅拌部30中,在具有F函数6级的各主变换部320中插入具有数据正变换(FL)和数据逆变换(FL-1)的副变换部330。如图34和图35所示。
此外,如上所述,如图2所示生成扩大密钥(中间密钥+输出密钥)。
由此可知,能从具有数据正变换(FL)和数据逆变换(FL-1)的副变换部330、P函数325、4种S框构筑实现CAMELLIA算法的数据变换装置。
此外,通过按照“128位块编码Camellia算法规格书”所示的表现方法表现,能使P函数325小型化。
具体而言,根据所述规格书,P函数能表现如下。
z1’=z1+z3+z4+z6+z7+z8z2’=z1+z2+z4+z5+z7+z8z3’=z1+z2+z3+z5+z6+z8z4’=z2+z3+z4+z5+z6+z7z5’=z1+z2+z6+z7+z8z6’=z2+z3+z5+z7+z8z7’=z3+z4+z5+z6+z8z8’=z1+z4+z5+z6+z7求出所述z1’~z8’的表达式的“+”表示异或运算。
z1到z8分别是来自mS1、S2、S3、S4、S5(=S2)、S6(=S3)、S7(=S4)、S8(=S1)的输出。这里,如果把z5到z8变换记述为zz2、zz3、zz4、zz1,则变为如下。
z1’=z1+z3+z4+zz1+zz3+zz4z2’=z1+z2+z4+zz1+zz2+zz4z3’=z1+z2+z3+zz1+zz2+zz3
z4’=z2+z3+z4+zz2+zz3+zz4z5’=z1+z2+zz1+zz3+zz4z6’=z2+z3+zz1+zz2+zz4z7’=z3+z4+zz1+zz2+zz3z8’=z1+z4+zz2+zz3+zz4据此,通过象输出Z1~Z4的运算和输出zz1~zz4的运算那样,用2时钟运算S1~S4,能用约一半的电路构成P函数。
根据图37说明基于CAMELLIA的数据变换装置。
在图37所示的CAMELLIA的数据变换装置中,并联配置主变换部320和副变换部330。
副变换部330具有数据正变换部50和数据逆变换部70。
主变换部320具有由1/2的F函数构成的F函数部。主变换部320由未满F函数的F函数即1/2x(x≥1)F函数构成时,象以图61的1/2F函数为例说明的那样,必须在1级F函数保持基于F函数部1321a的处理和F函数部1321b的处理的中间结果即EXOR电路1322a的输出结果。
一般,如果采用减少安装的F函数的个数,用多次循环结构实现基于1级F函数的数据变换处理,F函数部分的电路规模减小,但是控制循环的控制电路、对各F函数输入密钥的选择器的电路增加。这样,F函数部分的电路规模和用于控制循环的电路规模为抵消的关系。
因此,考虑CAMELLIA的数据变换装置的小型化时,有必要研究安装的F函数的个数和重复的次数。即有必要充分研究实现在主变换部320上安装1个F函数的CAMELLIA的数据变换装置,或削减F函数内安装SBOX的数量,用数周期运算基于1级部分的F函数的数据变换。这意味着研究通过由未满1级的F函数构成F函数部而削减的电路规模和构成环路的选择器的增加引起的电路规模增加的抵消。
此外,当CAMELLIA时,如上所述,为了生成输出密钥(密钥KA)而使用的函数使用数据搅拌部30的主变换部320的一部分。因此,这时,有必要充分研究为了利用数据搅拌部30的F函数而追加的选择器等的影响。
如使用图36说明的那样,CAMELLIA的F函数使用进行8位输入输出的4种(S1、S2、S3、S4)S框各2次。这里,有必要研究安装8个SBOX,或安装4个,重复2次。
根据2001年编码和信息安全讨论会预稿集中记载的“关于128位块编码的硬件安装(III)”,1个S框的电路规模为约200门,如果把S框从8个削减为4个,就削减约800个门。
而用于进行与它处于抵消的关系的重复的2-1选择器至少需要32个(约NAND电路100门)。
据此,与安装8个S框相比,安装4个,重复2次,能减少电路。
因此,CAMELLIA的数据变换装置的F函数部321能安装8个S框,进行1次数据变换,但是也能通过安装4个S框,重复2次数据变换,也能进行数据变换,可以使用任一个。可是,如果考虑电路规模,希望重复2次数据变换。
当使用图37所示的CAMELLIA的算法时,根据该序列,能以中间密钥生成部40周期实现数据的编码/译码。
以下表示中间密钥生成部40周期的处理过程。
首先,在步骤1中,使用副变换部330运算加白(Whitening)。
接着,在步骤2中,使用主变换部320运算F函数的1/2处理(1/2F函数)。
同样,在步骤3中,使用主变换部320运算剩下的F函数的1/2处理(1/2F函数)。
在步骤4~步骤13中,进行5次步骤2~步骤3。
在步骤14中,通过计算副变换部330的数据正变换(FL)和数据逆变换(FL-1)函数,进行数据的变换。
在步骤15~步骤27中,重复步骤2~步骤14。
在步骤28~步骤39中,重复步骤2~步骤13。
最后,在步骤40中,运算与步骤S1同样的加白(Whitening)。
这里,步骤1表示基于图4的EXOR电路31a的运算,步骤40表示基于图4的EXOR电路31b的运算。即EXOR电路31a和EXOR电路31b使用设置在副变换部330中的数据正变换部50和数据逆变换部70具有的EXOR进行运算。
须指出的是,密钥生成部20的结构和动作与所述同样,所以省略说明。
在上述的步骤2和步骤3中,通过主变换部320,用2周期进行基于1个F函数的数据变换。关于该数据处理,使用图37和图64,说明具体的动作。
图64如果与图61比较,则不同点在于作为输入密钥,最初输入低位的密钥,接着输入高位的密钥,实现处理。
首先,说明步骤1的具体动作。输入数据即P(普通数据或译码数据)由2-1选择器311选择,分割为高位数据和低位数据,高位数据由副变换部330的数据正变换部50进行Whitening,低位数输入副变换部330的数据逆变换部70中,同样进行Whitening。进行Whitening的高位数据和低位数据输入到2-1选择器340的2-1选择器H341和3-1选择器L342中。各输入的数据由2-1选择器H341和3-1选择器L342选择,保持在运算寄存器H351和运算寄存器L352中。
下面,说明步骤2的动作。
保持在运算寄存器H351中的高位数据的高位输入到2-1选择器312中,并且高位数据的低位旋转移位1字节,输入到2-1选择器312中。2-1选择器312从2个输入数据选择旋转移位的低位,向主变换部320输出。通过把选择的低位旋转移位1字节,如图36所示,能把各输入数据(5)~(8)应用输入到各S框中。在主变换部320中,通过具有1/2F函数的F函数部321,进行图64所示的第一级的上半部分数据变换。这里,图37的F函数部321和图64的1/2F函数构成的F函数部1321a~F函数部部1321l采用同一结构。基于图64所示的F函数部1321a的数据变换使用密钥1L,把输入的高位数据中的低位的一半位进行数据变换,把变换后的数据向EXOR电路1322a输出。EXOR电路1322a输入由F函数部1321a输出的变换后的数据,并且取与输入的低位数据的异或。即输出的数据(中间数据)从主变换部320输入到3-1选择器342L中,保持在运算寄存器L352中。与此同时,保持在运算寄存器H351中的P的高位数据通过2-1选择器311,利用副变换部330的数据正变换部50的数据传送,进行数据传送,经由2-1选择器H341,从运算寄存器H351再保存到运算寄存器H351中。
下面,说明步骤3的动作。
基于图64的F函数部1321b的数据处理由基于图37的主变换部320的第二周期的处理实现。即不旋转移位1字节,2-1选择器312选择输入到2-1选择器312的高位数据的高位,输出到主变换部320。通过这样的应用,高位数据的高位一半位的数据由F函数部1321b进行非线性变换,向EXOR电路1322b输出。在EXOR电路1322b中,作为另一方的输入信号,在第一周期中主变换部320输出,通过把保持在运算寄存器L352中的中间数据向主变换部320输入,向EXOR电路1322b输入。由EXOR电路1322b取异或后的输出数据由2-1选择器H341选择,保持到运算寄存器H351。在这时,P的高位数据经由3-1选择器L342保持到运算寄存器L352中。因此,由图64的主变换部320进行的第2级的数据变换处理中使用的高位数据和低位数据保持在运算寄存器H351和运算寄存器L352中。
在步骤4~步骤13中,进行5次步骤2~步骤3。
即用F函数部1321c和EXOR电路1322c在1周期中,用F函数部1321d和EXOR电路1322d在1周期中,合计在2周期中进行的第二级的数据变换的处理相当于步骤4、步骤5的处理。第三级到第六级的处理也同样进行,但是它相当于步骤6~步骤13的处理。
须指出的是,如上所述,图64的F函数部1321a到F函数部1321l的函数是与图37的F函数部321的函数相同的函数。
下面,说明步骤14的处理。
它表示基于图37的副变换部330的处理。
首先,保持在运算寄存器H351和运算寄存器L352中的步骤13的处理后的高位数据和低位数据输入到2-1选择器3311中,进行选择后,把高位数据向数据正变换部50输入,把低位数据向数据逆变换部70输入。
在数据正变换部50和数据逆变换部70中,对输入的各数据进行线性变换,基于数据正变换部50的变换数据向2-1选择器H341输入,基于数据逆变换部70的变换数据向3-1选择器L342输入,分别选择,分别保持在运算寄存器H351和运算寄存器L352中。
从步骤15到步骤的处理相当于图37的主变换部320的处理和副变换部330的处理。
从步骤28到步骤39的处理相当于图37的主变换部320的处理。
在步骤40中,与步骤1同样,使用副变换部330的EXOR进行Whitening。
经过这些中间密钥生成部40步骤,当输入数据P为普通数据时,通过编码处理输出编码数据C,当输入数据P为编码文时,与编码处理通过同一电路进行译码处理,输出译码数据C。
这样在使用图37所示的CAMELLIA的数据变换装置中,通过并联配置主变换部320和副变换部330,与串联配置时相比,能缩短1周期的周期时间,能提高动作频率。
此外,通过并联配置主变换部320和副变换部330,存在能不通过主变换部320把信号输入副变换部330的路径、不通过副变换部330把信号输入主变换部320的路径,所以对于将来进行的其他结构和其他动作的附加、删除等变更,能灵活对应。
此外,在使用串联配置主变换部320和副变换部330的CAMELLIA的数据变换装置中,如上所述,当用多个周期进行基于F函数的1次的数据变换时,在1周期中成为变换对象的数据是输入数据的一部分,所以把输入数据的一部分变换数据保持在运算寄存器中,有必要在数据搅拌部30中设置用于在一定期间后向副变换部330发送的路径,或在主变换部320中设置在一定期间后在主变换部320中传送,向副变换部330发送的传送路径。
可是,在本实施例中,并联配置主变换部320和副变换部330,所以不需要所述路径的附加或主变换部320的传送路径功能的追加,能抑制装置的电路规模的增加。
当使用图59所示的数据正变换部50和数据逆变换部70的共用电路时,A→B→C→D→E→B→C…的路径为环路。因此,当实际的LSI时,由于切换信号的传输延迟的差引起的信号的紊乱、噪声等的影响,需要下工夫,以免变成发射电路。此外,在具有这样的环路(反馈环路)的电路中,逻辑合成工具无法对应,不能高效进行逻辑合成。
因此,在图37中,采用分别设置副变换部330的数据正变换部50和数据逆变换部70的结构。因此,能构筑不产生所述紊乱等问题的数据变换装置。
如上所述,在图37中,通过使用副变换部330的密钥和数据的传送功能,能不需要来自密钥KL寄存器240的密钥的路径和来自主变换部320的数据路径。因此,能谋求进行CAMELLIA的块处理的数据变换装置的进一步小型化和低耗电化。
实施例6下面,说明实施例6。
图38是实施例6的CAMELLIA的数据变换装置的结构图。
与图37相比,不同点在于副变换部330由数据正变换部50、数据逆变换部70为共用电路的1/2副变换部90构成。因此,不要图37的2-1选择器215、4-1选择器217。
这样,在本实施例的数据变换装置中,不需要向副变换部330输入由2-1选择器215、4-1选择器217中必要的4个选择器和2-1选择器215输出的密钥的路径。
因此,能简化密钥调度部210的结构,能谋求数据变换装置的进一步小型化。
实施例7图47是表示实施例7的CAMELLIA的数据变换装置的结构图。
本实施例与图37的结构图比较,主变换部320的F函数部321由1/8的F函数构成的部分不同。即在本实施例中,主变换部320用8周期进行F函数的一个数据变换。因此,与图37相比,图37的2-1选择器312变更为8-1选择器315。其他结构与图37同样。
实施例8图48是表示实施例8的CAMELLIA的数据变换装置的结构图。
在本实施例中,与图47所示的实施例相比,不同点在于330具有1/2副变换部90。因此,不要图47所示的2-1选择器215和4-1选择器217。
实施例9图49表示实施例9。
图49是表示实施例9的CAMELLIA的数据变换装置的结构图。
在本实施例中,与图37相比,不同点在于主变换部320的F函数部321由1/4的F函数构成的部分不同。因此,图37的2-1选择器312在图49中变为4-1选择器316。使用由4-1选择器316选择的16位输入数据,通过F函数部321,主变换部320进行4周期的数据变换,进行对于一个F函数的数据变换。其他结构与图37同样。
实施例10图50是表示实施例10的CAMELLIA的数据变换装置的结构图。
与图49所示的实施例相比,不同点在于副变换部330具有1/2副变换部90。因此,与图49相比,不要2-1选择器215和4-1选择器217。其他结构与图49同样。
实施例11下面,说明实施例11。
图39是表示实施例11的CAMELLIA的数据变换装置的结构图。
与图37的不同点在于主变换部320由具有一个F函数的F函数部321构成。因此,主变换部320能用1周期进行F函数1级的处理,所以图37中存在的2-1选择器312变为不要。此外,图37的2-1选择器212变为不要,8-1选择器213变为从4个常数选择一个常数的4-1选择器218。
实施例12下面,说明实施例12。
图40是表示实施例12的CAMELLIA的数据变换装置的结构图。
在图40中,附加2-1选择器313。这是因为副变换部330由1/2副变换部90构成,所以从由2-1选择器313选择的数据选择其高位数据或低位数据的任一个。在本实施例中,用1周期进行基于主变换部320的处理,所以与图39同样,2-1选择器312变为不要。此外,图39的2-1选择器215和4-1选择器217变为不要。
实施例13下面,说明实施例13。
图41是表示实施例13的CAMELLIA的数据变换装置的结构图。
如果与图39比较,则不同点在于主变换部320不重复6次F函数部321,而主变换部320具有串联的6级F函数321,进行数据变换。因此,在本实施例中,主变换部320的输出信号增加1个。这是因为把主变换部320的第二级F函数的输出数据输入到3-1选择器H343和4-1选择器L344,由运算寄存器H351和运算寄存器L352保持。因此,3-1选择器H343的输入信号变为3个,4-1选择器L344的输入信号变为4个。
此外,具有4组4-1选择器500和4-1选择器501,增加把由它们选择的4个密钥向主变换部320输入的选择器。此外,成为从密钥调度部210的其他选择器即4-1选择器502和4-1选择器503也向副变换部330和主变换部320供给密钥的结构。
实施例14下面,说明实施例14。
图42是表示实施例14的CAMELLIA的数据变换装置的结构图。
图42与图41同样,与图40的不同点在于主变换部320具有串联的6级F函数321。因此,与图41时同样,与图40相比,3-1选择器H343和4-1选择器L344各增加1个,此外,有必要具有4组4-1选择器500和4-1选择器501。此外,成为从密钥调度部210的其他选择器即4-1选择器502和3-1选择器504也向副变换部330和主变换部320供给密钥的结构。须指出的是,向3-1选择器504输入3个输入信号。
实施例15图43表示本实施例。
图43是表示实施例15的CAMELLIA的数据变换装置的结构图。
在本实施例中,与图41相比,不同点在于主变换部320包括具有2级F函数的F函数部321。因此,与图41相比,把3-1选择器H343和4-1选择器L344置换为2-1选择器H341和3-1选择器L342,并且不要具有4-1选择器500和4-1选择器501的4组选择器。
实施例16图44表示本实施例。
图44是表示实施例16的CAMELLIA的数据变换装置的结构图。
在本实施例中,与图42的实施例相比,不同点在于主变换部320具有的F函数部321由2级的F函数构成。因此,把3-1选择器H343和4-1选择器L344置换为2-1选择器H341和3-1选择器L342,此外,不要由4-1选择器500和4-1选择器501构成的4组选择器。
实施例17图45是表示实施例17的CAMELLIA的数据变换装置的结构图。
在本实施例中,主变换部320的F函数部321具有3级的F函数。因此,如果与图41相比,不要由4-1选择器500和4-1选择器501构成的4组选择器,而附加4-1选择器505。由4-1选择器505选择的信号输入到主变换部320中。
实施例18图46是表示实施例18的CAMELLIA的数据变换装置的结构图。
与图45所示的实施例同样,主变换部320的F函数部321具有3级的F函数。与图45比较,不同的部分在于副变换部330在本实施例中具有1/2副变换部90。其他结构同样。
实施例19图51是表示实施例19的CAMELLIA的数据变换装置的结构图。
在本实施例中,首先中间密钥生成部40的结构与图37不同。本实施例所示的中间密钥生成部40的结构与图37所示的中间密钥生成部40的结构是等价的,所以图37的中间密钥生成部40能置换为图51所示的中间密钥生成部40。
说明图51的中间密钥生成部40的结构。
首先,2-1KL选择器291把输入的编码密钥和密钥KL寄存器240保持的中间密钥(密钥KL)输入,从这2个输入信号选择1个信号,保持在密钥KL寄存器240中。此外,2-1KA选择器292中间密钥生成部40生成的输出密钥和保持在密钥KA寄存器中的输出密钥(密钥KA)输入。2-1KA选择器292从输入的2个输入信号选择1个信号,密钥KA寄存器250保持选择的信号。
2-1选择器227从保持在密钥KL寄存器240和密钥KA寄存器250中的中间密钥(密钥KL)和输出密钥(密钥KA)选择1个密钥,向8-1选择器228输出。如图51所示,8-1选择器228把由2-1选择器227选择的密钥以0、15、30、45、60、77、94、111等8个位数循环左或右移。即循环移位数为0时,数据不移动。当循环移位数为15时,使数据向右或左移动15位。其他也同样。这样,通过使数据循环移动,生成8个信号,8-1选择器228从8个信号选择1个信号输出。
通过这样的动作,具有本实施例的结构的中间密钥生成部40能实现与图37的中间密钥生成部40的功能同样的功能。这样,在从中间密钥生成部40输出的数据中,把一半高位作为KLH,把一半低位作为KLL,输入密钥调度部210的2-1选择器510和2-1选择器511中。这样,图37的4-1选择器216和4-1选择器217在本实施例中,能置换为2-1选择器510和2-1选择器511。
因此,在图52所示的中间密钥生成部40中,与图37所示的中间密钥生成部40同样需要10个2-1选择器,但是2-1选择器510和2-1选择器511中所必要的2-1选择器只需要2个,所以中间密钥生成部40和2-1选择器510和2-1选择器511中必要的2-1选择器全体为12个。
在图37所示的中间密钥生成部40中,10个2-1选择器是必要的,并且在4-1选择器216和4-1选择器217中需要6个2-1选择器,所以中间密钥生成部40、4-1选择器216和4-1选择器217具有的必要的2-1选择器合计16个。
与图37所示的数据变换装置相比,本实施例的数据变换装置作为全体能削减4个2-1选择器。
因此,在本实施例中,能谋求基于选择器的削减的小型化和伴随着基于选择器的削减的门数减少的低耗电化。
须指出的是,本实施例所示的中间密钥生成部40的结构能作为其他全部实施例的中间密钥生成部40的结构使用。
实施例20图52是表示实施例20的CAMELLIA的数据变换装置的结构图。
与图51比较,在本实施例中,不同点在于副变换部330具有1/2副变换部90。因此,图51所示的2-1选择器215和2-1选择器511在本实施例中变为不要。其他结构与图51同样。
须指出的是,图51和图52所示的旋转移位数与循环移位数是同义。
实施例21实施例4的说明中表示的图34和图35表示进行基于使用128位密钥的CAMELLIA的编码处理和译码处理的处理。
可是,关于全部实施例的数据变换装置的结构图不仅是128位长度的密钥,而且能应用于进行基于192位长度的密钥和256位密钥全部的编码/译码处理的CAMELLIA的数据变换装置。
图53是表示192位密钥的生成过程的图。
所述128位密钥时,生成256位长度的密钥作为扩大密钥,但是当输入的密钥为192位时和256位时,扩大密钥变为512位长度。
在图53中,密钥KL和密钥KR是中间密钥,密钥KA和密钥KB是输出密钥。密钥KL、密钥KR、密钥KA、密钥KB全部为128位,所以合计它们,生成扩大密钥512位。
当输入的编码密钥为256位时,密钥KL成为输入的编码密钥的一半高位的128位,密钥KR成为低位128位。
密钥KL和密钥KR取异或,如图53所示,输入到主变换部320的一部分中。
图53与表示编码密钥为128位长度时的扩大密钥的生成方法的图2的右侧部分对应。
从图53的左侧的输入密钥生成输出密钥KA的方法除了密钥KL和密钥KR的异或称为输入密钥这点,与图2所示的输出密钥KA的生成方法同样。从图53的右侧的密钥KR生成输出密钥KB的过程在图2中不存在。因此,说明输出密钥(密钥KB)的生成方法。
当输入的密钥为256位时,低位128位为输入密钥(KR),输入到主变换部320中。低位128位中的高位使用位于主变换部320的第一级的F函数部321a,根据常数∑5,进行非线性变换,并输出。输出的数据与输入密钥(密钥KR)的低位之间,通过EXOR电路322a取异或,输入到F函数部321b中。在F函数部321b中,根据常数∑6,再把数据进行非线性变换,在变换后的数据和输入密钥(密钥KR)的高位之间,通过EXOR电路322b取异或。基于EXOR电路322b的运算后的变换数据作为输出密钥(密钥KB)的高位64位数据输出,基于EXOR电路322a的运算结果的数据作为(密钥KB)的低位64位数据输出。
这样生成的输出密钥(密钥KA和密钥KB)和输入密钥(密钥KL和密钥KR)作为512位的扩大密钥从中间密钥生成部40向密钥调度部210发送,通过密钥调度部210进行密钥的调度,在数据的编码/译码中使用。
当编码密钥为192位时,输入的编码密钥的高位128位成为密钥KL。此外,输入的编码密钥的低位64位成为密钥KR的高位64位。密钥KR的低位64位是把密钥KR的高位64位即输入的编码密钥的低位64位取反。关于其他密钥生成方法,与编码密钥为256位时同样,所以省略说明。
图54是表示192位密钥和256位密钥CAMELLIA的编码处理的图。
当与表示128位密钥CAMELLIA的编码处理的图34比较时,主变换部320从3个增加到4个,副变换部330从2个增加到3个。因此,在192位密钥和256位密钥的编码处理中,全体进行基于24级的F函数的编码处理。其他结构与图34所示的128位密钥时同样,所以省略说明。
图55是表示192位密钥和256位密钥的CAMELLIA的译码处理的图。
图35表示128位密钥的CAMELLIA的译码处理,但是如果与图35比较,则主变换部320增加为4个,副变换部330增加为3个,与编码处理时同样,F函数成为24级。其他结构与128位密钥的CAMELLIA的译码处理同样,所以省略说明。
须指出的是,128位密钥、192位密钥和256位密钥的块编码CAMELLIA算法的细节记载在“128位块编码CAMELLIA算法规格书”中。
以上记载的全部实施例能在128位密钥数据变换装置、192位密钥数据变换装置、256位密钥数据变换装置中采用。
此外,在全部实施例中,能使用副变换部330具有的密钥传送和数据传送功能。
在全部实施例中,各构成要素的各动作彼此关联,各构成要素的的动作考虑所述动作的关联,能置换为一系列的动作。而且,通过这样置换,能成为方法的发明的实施例。
此外,通过把所述各构成要素的动作与各构成要素的处理置换,能成为程序的实施例。
此外,通过把程序存储到记录程序的计算机可读取记录媒体中,能成为记录程序的计算机可读取记录媒体的实施例。
程序的实施例和记录程序的计算机可读取记录媒体的实施例都能由在计算机上可工作的程序构成。
程序的实施例和记录程序的计算机可读取记录媒体的实施例的各处理由程序执行,但是程序记录在记录装置中,从记录装置读入中央处理单元(CPU)中,由中央处理单元执行各程序流程。须指出的是,记录装置、中央处理单元未图示。
此外,各实施例的软件或程序可以用存储在ROM(只读存储器)中的固件实现。或者通过软件、固件和硬件的组合,实现所述程序的各功能。
通过抑制、削减选择器的增加,能谋求装置的小型化。
此外,通过减少电路全体的门数,能谋求低耗电化。
此外,能提高工作频率。
副变换部副传送输入数据或输入密钥。
能灵活地对应装置的结构变更。
用数据正变换部50或数据逆变换部70的一方进行数据的变换,能用数据正变换部50或数据逆变换部70的另一方传送输入的数据或密钥。
从主变换部到选择器的路径变为不必要,能谋求装置的小型化,谋求基于选择器数的减少的低耗电化。
权利要求
1.一种数据变换装置,输入密钥和数据,并使用输入的密钥进行输入数据的编码和数据的译码中的至少一种数据变换,其特征在于上述数据变换装置具有对数据进行变换的数据搅拌部、以及控制传送信号的控制部,所述传送信号指示传送输入的密钥和输入的数据中的任一个;其中所述控制部在传送密钥和数据中的任一个时,输出传送信号;所述数据搅拌部具有通过使用输入的密钥对数据进行变换,至少进行数据编码和数据译码中的任一种数据变换,并且当输入由所述控制部输出的传送信号时,不进行数据变换地传送所输入的密钥和所输入的数据中的任一个的副变换部。
2.根据权利要求1所述的数据变换装置,其特征在于所述数据搅拌部还具有输入数据,并对输入的数据进行非线性数据变换的主变换部;所述控制部在传送数据时,输出数据传送信号作为传送信号;所述副变换部输入由所述控制部输出的数据传送信号和由所述主变换部进行数据变换后的数据,并按照输入的数据传送信号传送输入的数据。
3.根据权利要求1所述的数据变换装置,其特征在于还具有生成密钥的密钥生成部;所述控制部在传送密钥时,输出密钥传送信号作为传送信号;所述副变换部输入由所述控制部输出的密钥传送信号和由所述密钥生成部生成的密钥,并按照输入的密钥传送信号来传送输入的密钥。
4.根据权利要求3所述的数据变换装置,其特征在于所述密钥生成部还具有输入编码密钥,并根据输入的编码密钥生成中间密钥的中间密钥生成部;所述副变换部在输入由所述控制部输出的密钥传送信号时,按照输入的密钥传送信号,把所述中间密钥生成部生成的中间密钥传送给所述主变换部;所述主变换部重复变换输出由所述副变换部传送的中间密钥的处理1次以上;所述副变换部重复变换输出由所述主变换部输出的中间密钥的处理1次以上;所述主变换部和所述副变换部中的至少任一个重复变换输出所述中间密钥的处理1次以上;所述主变换部把由所述主变换部和所述副变换部中的至少任一个输出的中间密钥作为输出密钥输出;所述中间密钥生成部通过输入由所述主变换部输出的输出密钥,生成由中间密钥和输出密钥构成的扩大密钥。
5.根据权利要求4所述的数据变换装置,其特征在于所述中间密钥生成部具有用于从输入的6个密钥中选择1个密钥的6-1KL选择器、和把从6-1KL选择器中选择的一个密钥作为中间密钥保持的密钥KL寄存器;所述6-1KL选择器输入编码密钥,并输入由输入的编码密钥、由所述密钥KL寄存器保持的中间密钥以及根据所述密钥KL寄存器保持的中间密钥以4个不同的移位数分别循环移位的4个密钥构成的6个密钥,从输入的6个密钥中选择1个密钥;所述密钥KL寄存器保持由所述6-1KL选择器选择的密钥;所述副变换部在输入从所述控制部输出的密钥传送信号时,把保持在所述密钥KL寄存器中的密钥作为中间密钥输入,并传送所输入的中间密钥。
6.根据权利要求4所述的数据变换装置,其特征在于所述中间密钥生成部具有从输入的4个密钥中选择1个密钥的4-1选择器、从输入的3个密钥中选择1个密钥的3-1KL选择器、以及把从3-1KL选择器选择的一个密钥作为中间密钥保持的密钥KL寄存器;所述4-1选择器输入根据由所述密钥KL寄存器保持的中间密钥以4个不同的移位数分别循环移位后的4个密钥,并从输入的4个密钥中选择一个密钥;所述3-1KL选择器输入编码密钥,输入由输入的编码密钥、由所述4-1选择器选择的1个密钥、保持在所述密钥KL寄存器中的中间密钥构成的3个密钥,并从输入的3个密钥中选择1个密钥;所述密钥KL寄存器保持由所述3-1KL选择器选择的密钥;所述副变换部在输入从所述控制部输出的密钥传送信号时,把保持在所述密钥KL寄存器中的密钥作为中间密钥输入,并传送所输入的中间密钥。
7.根据权利要求4所述的数据变换装置,其特征在于所述密钥生成部还具有输入由所述中间密钥生成部生成的扩大密钥和预定常数,按照预定条件调度用于把输入的扩大密钥和预定常数中的任一个向所述主变换部和所述副变换部中的至少一个输出的密钥的密钥调度部。
8.根据权利要求1所述的数据变换装置,其特征在于所述副变换部具有进行基于数据的线性的数据变换的数据正变换部(FL)、进行与所述数据正变换部(FL)相反的数据变换的数据逆变换部(FL-1)中的至少任一个;所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的至少任一个进行数据变换,并且在所述控制部输出传送信号时,输入所述控制部输出的传送信号,不进行数据变换地按照输入的传送信号来传送数据和密钥中的至少任一个。
9.根据权利要求8所述的数据变换装置,其特征在于所述控制部输出密钥传送信号即密钥传递信号和掩码信号作为传送所输入的密钥的传送信号;所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的至少任一个在输入了由所述控制部输出的密钥传递信号和掩码信号时,通过根据输入的密钥传递信号而使输入的数据无效,并且根据输入的掩码信号而使输入的密钥通过,来传送密钥。
10.根据权利要求8所述的数据变换装置,其特征在于所述控制部输出数据传送信号即数据传递信号作为传送输入的数据的传送信号;所述数据正变换部(FL)和数据逆变换部(FL-1)中的至少任一个在输入了由所述控制部输出的数据传递信号时,通过根据输入的数据传递信号而使输入的密钥无效,并且使输入的数据通过,来传送数据。
11.根据权利要求1所述的数据变换装置,其特征在于所述副变换部具有共用同一电路进行执行基于数据的线性的数据变换的数据正变换和执行与所述正变换相反的数据变换的数据逆变换的1/2副变换部,通过1/2副变换部对数据进行变换,并且在所述控制部输出传送信号时,输入所述控制部输出的传送信号,并按照输入的传送信号,来传送密钥和数据中的至少任一个。
12.根据权利要求1所述的数据变换装置,其特征在于所述副变换部具有进行基于数据的线性的数据变换的数据正变换部(FL)和进行与所述正变换相反的数据变换的数据逆变换部(FL-1),所述数据正变换部(FL)和所述数据逆变换部(FL-1)串联配置;所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的任一个输入由所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的任一个进行数据变换的数据、所传送的密钥、或所传送的数据中的任一个,并使用所输入的经数据变换后的数据、所传送的密钥、或所传送的数据中的任一个,来进行数据变换、密钥的传送、数据的传送中的任一种。
13.根据权利要求1所述的数据变换装置,其特征在于所述数据变换装置输入128位、192位、或256位的任一密钥,使用所输入的密钥,对所输入的数据进行数据变换。
14.一种数据变换方法,输入密钥和数据,使用输入的密钥进行对输入的数据进行编码和数据译码中的至少一种数据变换,其特征在于当传送密钥和数据中的任一个时,输出用以指示传送输入的密钥和输入的数据中的任一个的传送信号;通过使用输入的密钥对数据进行变换,进行数据编码和数据译码中的至少任一种数据变换,并且在输入所述输出的传送信号时,不进行数据变换地传送输入的密钥和输入的数据中的至少任一个。
15.一种数据变换程序,输入密钥和数据,使用输入的密钥进行对输入的数据进行编码和数据译码中的至少一种数据变换,其特征在于使计算机执行以下处理当传送密钥和数据中的任一个时,输出用以指示传送输入的密钥和输入的数据中的任一个的传送信号的处理;通过使用输入的密钥对数据进行变换,进行数据编码和数据译码中的至少任一种数据变换,并且当输入所述输出的传送信号时,不进行数据变换地传送输入的密钥和输入的数据中的至少任一个的处理。
16.一种记录有数据变换程序的计算机可读取记录媒体,该数据变换程序输入密钥和数据,使用输入的密钥进行输入的数据的编码和数据的译码中的至少任一种数据变换,其特征在于,使计算机执行以下处理当传送密钥和数据中的任一个时,输出用以指示传送输入的密钥和输入的数据中的任一个的传送信号的处理;通过使用输入的密钥对数据进行变换,进行数据编码和数据译码中的至少任一种数据变换,并且当输入所述输出的传送信号时,不进行数据变换地传送输入的密钥和输入的数据中的至少任一个的处理。
17.根据权利要求1所述的数据变换装置,其特征在于还具有生成密钥的密钥生成部;所述密钥生成部还具有中间密钥生成部,用于输入编码密钥,根据输入的编码密钥生成中间密钥,根据生成的中间密钥使用所述主变换部和所述副变换部生成输出密钥。
18.根据权利要求17所述的数据变换装置,其特征在于所述中间密钥生成部具有输入6个密钥并从输入的6个密钥中选择1个密钥的6-1KL选择器;把从所述6-1KL选择器选择的1个密钥作为中间密钥保持的密钥KL寄存器;从6个密钥中选择1个密钥的6-1KA选择器;把由6-1KA选择器选择的1个密钥作为输出密钥保持的密钥KA寄存器;所述6-1KL选择器输入编码密钥,并输入由所述输入的编码密钥、由所述密钥KL寄存器保持的中间密钥、根据保持在所述密钥KL寄存器中的中间密钥以4个不同的移位数分别循环移位后的4个密钥构成的6个密钥,从输入的6个密钥中选择1个密钥;所述密钥KL寄存器把由所述6-1KL选择器选择的密钥作为中间密钥保持;所述6-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,输入由输入的输出密钥、保持在所述密钥KA寄存器中的输出密钥、根据保持在所述密钥KA寄存器中的输出密钥以4个不同的移位数分别循环移位后的4个密钥构成的6个密钥,从输入的6个密钥中选择1个密钥;所述密钥KA寄存器把由所述6-1KA选择器选择的密钥作为输出密钥保持。
19.根据权利要求17所述的数据变换装置,其特征在于所述中间密钥生成部具有从2个密钥中选择1个密钥的2-1选择器、从4个密钥中选择1个密钥的4-1选择器、从3个密钥中选择1个密钥的3-1KL选择器、把由3-1KL选择器选择的密钥作为中间密钥保持的密钥KL寄存器、从3个密钥中选择1个密钥的3-1KA选择器、把由3-1KA选择器选择的密钥作为输出密钥保持的密钥KA寄存器;所述2-1选择器从保持在所述密钥KL寄存器中的中间密钥、保持在所述密钥KA寄存器中的输出密钥中选择1个密钥;所述4-1选择器输入根据由所述2-1选择器选择的密钥以4个不同的移位数分别循环移位后的4个密钥,并从输入的4个密钥中选择1个密钥;所述3-1KL选择器输入编码密钥,输入由输入的编码密钥、由所述4-1选择器选择的密钥、保持在所述密钥KL寄存器中的中间密钥构成的3个密钥,并从输入的3个密钥中选择1个密钥;所述密钥KL寄存器把由所述3-1KL选择器选择的密钥作为中间密钥保持;所述3-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,输入由输入的输出密钥、所述4-1选择器选择的密钥、保持在所述密钥KA寄存器中的输出密钥构成的3个密钥,从输入的3个密钥中选择1个密钥;所述密钥KA寄存器把由所述3-1KA选择器选择的密钥作为输出密钥保持。
20.根据权利要求17所述的数据变换装置,其特征在于所述中间密钥生成部具有从2个密钥中选择1个密钥的2-1KL选择器、保持由2-1KL选择器选择的密钥的密钥KL寄存器、从2个密钥中选择1个密钥的2-1KA选择器、保持由2-1KA选择器选择的密钥的密钥KA寄存器、从2个密钥中选择1个密钥的2-1选择器、从8个密钥中选择1个密钥的8-1选择器;所述2-1KL选择器输入编码密钥,从输入的编码密钥和保持在所述密钥KL寄存器中的密钥中选择1个密钥;所述2-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,从输入的输出密钥和保持在所述密钥KA寄存器中的密钥中选择1个密钥;所述2-1选择器从由所述2-1KL选择器和所述2-1KA选择器选择的2个密钥中选择1个密钥;所述8-1选择器输入根据所述2-1选择器选择的密钥以8个不同的移位数分别循环移位后的8个密钥,并从输入的8个密钥中选择1个密钥。
21.一种数据变换装置,具有对数据进行数据变换的数据搅拌部,其特征在于所述数据搅拌部并联有输入数据并对输入的数据进行非线性数据变换的主变换部、和对输入的数据进行线性数据变换的副变换部;所述主变换部输入密钥和数据,使用输入的密钥,根据用于进行非线性数据变换的函数即F函数,对输入的数据进行非线性数据变换,并输出非线性变换后的数据;所述副变换部输入密钥和数据,使用输入的密钥,对输入的数据进行线性变换,并输出线性变换后的数据;所述主变换部和所述副变换部通过反复进行基于所述主变换部的数据变换和基于所述副变换部的数据变换,进行数据的编码和数据的译码中的至少一种数据变换。
22.根据权利要求21所述的数据变换装置,其特征在于所述主变换部具有F函数部,该F函数部多次重复使用输入的密钥、根据F函数对输入的数据进行非线性数据变换,并输出数据变换后的数据的处理。
23.根据权利要求22所述的数据变换装置,其特征在于所述F函数部通过重复2x次使用输入的密钥、根据1/2xF函数(X≥0),对输入的数据进行非线性数据变换并输出数据变换后的数据的处理,结束1次基于F函数的非线性数据变换并输出结束的数据,通过重复多次上述处理,进行多次基于F函数的非线性数据变换。
24.根据权利要求22所述的数据变换装置,其特征在于所述F函数部输入分割为高位数据和低位数据的数据的任一个,对输入的数据进行非线性数据变换,输出数据变换后的高位数据和低位数据中的任一个,把输出的高位数据和低位数据中的任一个与高位数据和低位数据中的另一个进行异或运算,切换输出异或运算后的数据、未输入到所述F函数中的高位数据和低位数据中的另一个。
25.根据权利要求21所述的数据变换装置,其特征在于还具有生成密钥的密钥生成部;所述密钥生成部具有中间密钥生成部,输入编码密钥,根据输入的编码密钥生成中间密钥,根据生成的中间密钥、使用所述主变换部和所述副变换部生成输出密钥。
26.根据权利要求25所述的数据变换装置,其特征在于所述密钥生成部还具有密钥调度部,输入由所述中间密钥生成部生成的中间密钥和预定常数,根据输入的中间密钥、输出密钥和预定常数、按照预定条件调度在所述主变换部和所述副变换部进行的数据变换中所使用的密钥;所述主变换部和所述副变换部分别输入由所述密钥调度部调度的密钥,并根据各自输入的密钥,对输入到各自中的数据进行数据变换。
27.根据权利要求25所述的数据变换装置,其特征在于所述中间密钥生成部具有输入6个密钥并且从输入的6个密钥中选择1个密钥的6-1KL选择器、把由所述6-1KL选择器选择的1个密钥作为中间密钥保持的密钥KL寄存器、从6个密钥中选择1个密钥的6-1KA选择器、把由6-1KA选择器选择的1个密钥作为输出密钥保持的密钥KA寄存器;所述6-1KL选择器输入编码密钥,输入由所述输入的编码密钥、保持在所述密钥KL寄存器中的中间密钥、根据保持在所述密钥KL寄存器中的中间密钥以4个不同的移位数分别循环移位后的4个密钥构成的6个密钥,并从输入的6个密钥中选择1个密钥;所述密钥KL寄存器把由所述6-1KL选择器选择的密钥作为中间密钥保持;所述6-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,输入由输入的输出密钥、保持在所述密钥KA寄存器中的输出密钥、根据保持在所述密钥KA寄存器中的输出密钥以4个不同的移位数分别循环移位后的4个密钥构成的6个密钥,并从输入的6个密钥中选择1个密钥;所述密钥KA寄存器把由所述6-1KA选择器选择的密钥作为输出密钥保持。
28.根据权利要求25所述的数据变换装置,其特征在于所述中间密钥生成部具有从2个密钥中选择1个密钥的2-1选择器、从4个密钥中选择1个密钥的4-1选择器、从3个密钥中选择1个密钥的3-1KL选择器、把由3-1KL选择器选择的密钥作为中间密钥保持的密钥KL寄存器、从3个密钥中选择1个密钥的3-1KA选择器、把由3-1KA选择器选择的密钥作为输出密钥保持的密钥KA寄存器;所述2-1选择器从保持在所述密钥KL寄存器中的中间密钥、保持在所述密钥KA寄存器中的输出密钥中选择1个密钥;所述4-1选择器输入根据由所述2-1选择器选择的密钥以4个不同的移位数分别循环移位后的4个密钥,并从输入的4个密钥中选择1个密钥;所述3-1KL选择器输入编码密钥,输入由输入的编码密钥、所述4-1选择器选择的密钥、保持在所述密钥KL寄存器中的中间密钥构成的3个密钥,并从输入的3个密钥中选择1个密钥;所述密钥KL寄存器把由所述3-1KL选择器选择的密钥作为中间密钥保持;所述3-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,输入由输入的输出密钥、所述4-1选择器选择的密钥、保持在所述密钥KA寄存器中的输出密钥构成的3个密钥,从输入的3个密钥中选择1个密钥;所述密钥KA寄存器把由所述3-1KA选择器选择的密钥作为输出密钥保持。
29.根据权利要求25所述的数据变换装置,其特征在于所述中间密钥生成部具有从2个密钥中选择1个密钥的2-1KL选择器、保持由2-1KL选择器选择的密钥的密钥KL寄存器、从2个密钥中选择1个密钥的2-1KA选择器、保持由2-1KA选择器选择的密钥的密钥KA寄存器、从2个密钥中选择1个密钥的2-1选择器、从8个密钥中选择1个密钥的8-1选择器;所述2-1KL选择器输入编码密钥,并从输入的编码密钥和保持在所述密钥KL寄存器中的密钥中选择1个密钥;所述2-1KA选择器输入使用所述主变换部和所述副变换部生成的输出密钥,从输入的输出密钥和保持在所述密钥KA寄存器中的密钥中选择1个密钥;所述2-1选择器从由所述2-1KL选择器和所述2-1KA选择器选择的2个密钥中选择1个密钥;所述8-1选择器输入根据所述2-1选择器选择的密钥以8个不同的移位数分别循环移位后的8个密钥,并从输入的8个密钥中选择1个密钥。
30.根据权利要求21所述的数据变换装置,其特征在于所述副变换部具有对数据进行线性变换的数据正变换部(FL)和进行与所述数据正变换部(FL)的变换相反的变换的数据逆变换部(FL-1)中的至少任一个,通过所述数据正变换部(FL)和所述数据逆变换部(FL-1)中的至少一个对数据进行数据变换。
31.根据权利要求21所述的数据变换装置,其特征在于所述副变换部具有共用同一电路进行对数据执行线性变换的数据正变换和执行与所述数据正变换相反的逆变换的数据逆变换的1/2副变换部,并通过1/2副变换部对数据进行数据变换。
32.根据权利要求21所述的数据变换装置,其特征在于所述数据变换装置输入128位、192位或256位的任一密钥,使用所输入的密钥,对输入的数据进行编码和数据译码中的任一种数据变换。
33.一种数据变换方法,其特征在于通过重复进行下述处理,进行数据编码和数据译码中的至少一种数据变换,其中所述处理包括通过与对数据进行线性数据变换的副变换部并联配置的、输入密钥和数据,使用输入的密钥,根据用于进行非线性数据变换的函数即F函数,进行非线性数据变换的主变换部,对输入的数据进行非线性数据变换,并输出非线性变换后的数据的处理;输入密钥和数据,使用输入的密钥,通过与所述主变换部并联配置的所述副变换部,对输入的数据进行线性变换,并输出线性变换的数据的处理。
34.一种数据变换程序,其特征在于使计算机执行以下处理通过重复进行下述处理,进行数据编码和数据译码中的至少一种数据变换,其中所述处理包括通过与对数据进行线性数据变换的副变换部并联配置的、输入密钥和数据,使用输入的密钥,根据用于进行非线性数据变换的函数即F函数,进行非线性数据变换的主变换部,对输入的数据进行非线性数据变换,并输出非线性变换后的数据的处理;输入密钥和数据,使用输入的密钥,通过与所述主变换部并联配置的所述副变换部,对输入的数据进行线性变换,并输出线性变换的数据的处理。
35.一种记录了数据变换程序的计算机可读取记录媒体,该程序使计算机执行以下处理通过重复进行下述处理,进行数据编码和数据译码中的至少一种数据变换,其中所述处理包括通过与对数据进行线性数据变换的副变换部并联配置的、输入密钥和数据,使用输入的密钥,根据用于进行非线性数据变换的函数即F函数,进行非线性数据变换的主变换部,对输入的数据进行非线性数据变换,并输出非线性变换后的数据的处理;输入密钥和数据,使用输入的密钥,通过与所述主变换部并联配置的所述副变换部,对输入的数据进行线性变换,并输出线性变换的数据的处理。
全文摘要
本发明提供一种数据变换装置和数据变换方法,其中进行数据的编码/译码的数据变换装置中存在的副变换部330具有数据变换功能、数据传送功能或密钥传送功能,切换数据变换功能、数据或密钥传送功能,在数据变换的同时,进行用主变换部320进行非线性变换的数据的传送或从密钥KL寄存器240输出的密钥的传送。
文档编号H04L9/00GK1647139SQ0380883
公开日2005年7月27日 申请日期2003年3月7日 优先权日2002年5月23日
发明者粕谷智巳, 松井充, 市川哲也 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1