本發(fā)明的實施例涉及一種加密技術(shù)。
背景技術(shù):
::現(xiàn)有的白盒密碼算法的實現(xiàn)方式可以根據(jù)成為基礎(chǔ)的對稱密鑰密碼算法的內(nèi)部特征而不同,并且因為依靠基礎(chǔ)算法,所以很難提供普適性,并且為了保護基礎(chǔ)算法的密鑰而需要插入較多的額外運算,所以相比于基礎(chǔ)算法,導(dǎo)致降低幾十倍的效率。并且,現(xiàn)有的白盒密碼算法無法提供與設(shè)計者的初衷相匹配的足夠的安全性,且實時暴露于密鑰復(fù)原攻擊下?,F(xiàn)有技術(shù)文獻(xiàn)專利文獻(xiàn)(專利文獻(xiàn)0001)韓國公開專利第10-2012-0030335號(2012.03.28)技術(shù)實現(xiàn)要素:本發(fā)明的實施例的目的在于提供一種加密裝置以及方法。根據(jù)本發(fā)明的一實施例的加密裝置,包括:密鑰表生成部,用于生成從種子值導(dǎo)出的任意值,并生成包含所生成的所述任意值的密鑰表;以及加密部,使所生成的所述密鑰表和置換函數(shù)交叉地反復(fù)結(jié)合而生成加密算法,并利用所生成的所述加密算法而對明文數(shù)據(jù)塊進(jìn)行加密。所述種子值可以是能夠用比特串表示的初始輸入值。所述種子值可以是密鑰、計數(shù)器值以及初始化向量中的一個。所述密鑰表生成部可以基于用于加密的可用存儲器的大小確定所述任意值的大小。所述加密部可以基于密鑰值被所述密鑰表代替的艾文-曼蘇爾方案來使所述密鑰表和所述置換函數(shù)交叉地反復(fù)結(jié)合。所述加密部可以使r+1個(其中,r為r≥1的整數(shù))密鑰表和r個置換函數(shù)交叉地反復(fù)結(jié)合而生成所述加密算法。所述r+1個密鑰表可以全部相同。所述r+1個密鑰表可以均不相同。所述r+1個密鑰表中可以部分密鑰表不相同。所述r個置換函數(shù)可以全部相同。所述r個置換函數(shù)可以均不相同。所述r個置換函數(shù)中可以部分置換函數(shù)不相同。所述置換函數(shù)可以是塊加密算法。根據(jù)本發(fā)明的一實施例的加密方法,包括如下步驟:生成由種子值導(dǎo)出的任意值;生成包含所生成的所述任意值的密鑰表;使所生成的所述密鑰表和置換函數(shù)交叉地反復(fù)結(jié)合而生成加密算法;利用所生成的所述塊加密算法而對明文數(shù)據(jù)塊進(jìn)行加密。所述種子值可以是能夠用比特串表示的初始輸入值。所述種子值可以是密鑰、計數(shù)器值以及初始化向量中的一個。在所述生成任意值的步驟中,可以基于用于加密的可用存儲器的大小來確定所述任意值的大小。在生成所述塊加密算法的步驟中,可以基于密鑰值被所述密鑰表代替的艾文-曼蘇爾方案來使所述密鑰表和所述置換函數(shù)交叉地反復(fù)結(jié)合。在所述生成加密算法的步驟中,可以交叉地反復(fù)結(jié)合r+1個密鑰表和r個置換函數(shù)。所述r+1個密鑰表可以全部相同。所述r+1個密鑰表可以均不相同。所述r+1個密鑰表中可以部分密鑰表不相同。所述r個置換函數(shù)可以全部相同。所述r個置換函數(shù)可以均不相同。所述r個置換函數(shù)中可以部分置換函數(shù)不相同。所述置換函數(shù)可以是塊加密算法。根據(jù)本發(fā)明的一實施例的儲存于計算機可讀存儲介質(zhì)的計算機應(yīng)用程序,該應(yīng)用程序與硬件結(jié)合以執(zhí)行如下步驟:生成由種子值導(dǎo)出的任意值;生成包含所生成的所述任意值的密鑰表;使所生成的所述密鑰表和置換函數(shù)交叉 地反復(fù)結(jié)合而生成加密算法;利用所生成的所述塊加密算法加密明文數(shù)據(jù)塊。根據(jù)本發(fā)明的實施例,可以不進(jìn)行現(xiàn)有的為了保護密鑰而伴隨的多個額外運算過程,而在基礎(chǔ)函數(shù)的效率性上只增加密鑰表的接近(access)速度,并且可以與應(yīng)用環(huán)境內(nèi)的所要保護的數(shù)據(jù)的大小無關(guān)而可變地進(jìn)行設(shè)計,因此與現(xiàn)有的白盒實現(xiàn)方式相比可以提高效率性。附圖說明圖1為根據(jù)本發(fā)明的一實施例的加密裝置的構(gòu)成圖。圖2為示出由加密部生成的加密算法的構(gòu)成的示例圖。圖3為示出利用置換函數(shù)生成AES算法的加密算法的構(gòu)成的示例圖。圖4為根據(jù)本發(fā)明的一實施例的密鑰表生成部的詳細(xì)構(gòu)成圖。圖5為例示出運算部中使用的輪函數(shù)的例子的圖。圖6為根據(jù)本發(fā)明的一實施例的加密方法的流程圖。符號說明100:加密裝置110:密鑰表生成部111:密鑰生成部113:運算部130:加密部具體實施方式以下,將參照附圖而對本發(fā)明的具體實施形態(tài)進(jìn)行說明。以下的詳細(xì)的說明是為幫助包括對本說明書中描述的方法、裝置以及/或者系統(tǒng)的理解而提供的。然而這僅僅為示例,本發(fā)明并不局限于此。在說明本發(fā)明的實施例時,如果判斷為對與本發(fā)明相關(guān)的公知技術(shù)進(jìn)行的具體說明會給本發(fā)明的主旨帶來不必要的混亂,則將省略對其的詳細(xì)說明。并且,下述的術(shù)語為考慮到本發(fā)明中的作用而給出定義的術(shù)語,其可以根據(jù)用戶、適用者的意圖或者習(xí)慣等而不同。所以,其需要基于本說明書的整體內(nèi)容來做出定義。在詳細(xì)的說明中使用的術(shù)語只是用于敘述本發(fā)明的實施例的,而并不具有限制作用。在沒有明確的反例時,單數(shù)形態(tài)的表現(xiàn)形式包括復(fù)數(shù)形態(tài)的含義。本說明書中,要理解“包括”或者“具有”等表述指某些特征、數(shù)字、步驟、操作、要素以及它們的部分或者組合,不能理解成排除 所敘述的之外的一個或以上的其他特征、數(shù)字、步驟、操作、要素以及它們的部分或者組合的存在或者可能性。圖1為根據(jù)本發(fā)明的一實施例的加密裝置的構(gòu)成圖。參考圖1,根據(jù)本發(fā)明的一實施例的加密裝置100包括密鑰表生成部110以及加密部130。密鑰表生成部110利用種子值(seedvalue)生成從種子值導(dǎo)出的任意值,并生成包含生成的任意值的密鑰表(Keytable)。此時,密鑰表可以是由種子值導(dǎo)出的任意值組成的查找表(lookuptable)。并且,種子值可意指能夠用比特串(bitstring)表示的初始輸入值。例如,種子值可以包括密鑰、塊加密(BlockCipher)的操作作業(yè)模式中使用的計數(shù)器值、由任意比特串組成的初始化向量等。另外,根據(jù)本發(fā)明的一實施例,由密鑰表生成部110生成的密鑰表的各個任意值的大小可根據(jù)在應(yīng)用加密裝置100的計算環(huán)境內(nèi)可為加密而得到利用的可用存儲器的大小而確定。加密部130可以通過交叉地反復(fù)結(jié)合由密鑰表生成部110生成的密鑰表和置換函數(shù)而生成加密算法,并且可以利用所生成的加密算法而對明文數(shù)據(jù)塊進(jìn)行加密。此時,置換函數(shù)指將輸入的值輸出為相同長度的不同值的、在密碼學(xué)角度上安全的所有形態(tài)的函數(shù)。例如,置換函數(shù)可以是AES(高級加密標(biāo)準(zhǔn):AdvancedEncryptionStandard)算法、DES(數(shù)據(jù)加密標(biāo)準(zhǔn):DataEncryptionStandard)算法、IDEA(國際數(shù)據(jù)加密技術(shù):InternationalDataEncryption)算法、Blowfish算法等塊加密算法。另外,根據(jù)本發(fā)明的一實施例,加密部130在如下述的數(shù)學(xué)式1的艾文-曼蘇爾方案(Even-Mansourscheme)中,可以基于由在密鑰表110中生成的密鑰表代替密鑰值的艾文-曼蘇爾方案而將密鑰表和置換函數(shù)交叉地反復(fù)結(jié)合?!緮?shù)學(xué)式1】E(P)=F(P+k0)+k1其中,P為明文數(shù)據(jù)、F為置換函數(shù)、k0以及k1指密鑰值。具體地,加密部130可以基于所述艾文-曼蘇爾方案來將r+1個密鑰表和r個置換函數(shù)交叉地反復(fù)結(jié)合,從而生成加密算法(其中,r為r≥1的整數(shù))。 此時,r可以根據(jù)所要求的安全強度而確定。更具體地,圖2為示出由加密部130生成的加密算法的構(gòu)成的示例圖。如圖2所示的示例,加密部130可以通過以下方式生成加密算法:使r個密鑰表和r個置換函數(shù)交叉地反復(fù)結(jié)合,以使密鑰表的結(jié)果值輸入到置換函數(shù),并且使置換函數(shù)的結(jié)果值再次輸入到密鑰表,然后在最后再結(jié)合一個密鑰表。另外,如圖2所示的例中,對相同的r+1個密鑰表和相同的r個密鑰表進(jìn)行結(jié)合,然而并不局限于此。例如,不同于圖2所圖示的例,r+1個密鑰表可以均不相同或者部分不相同。此時,在使用不同的r+1個密鑰表的情況下,密鑰表生成部110可以由接收到的種子值生成r+1個不同的密鑰表。并且,例如,在使用不同的兩種r+1個密鑰表的情況下,密鑰表生成部110可以由接收到的種子值生成不同的兩個密鑰表。另外,與密鑰表相同地,不同于圖2所圖示的例,r個置換函數(shù)可以均不相同或者部分不相同。圖3為示出將AES算法利用為置換函數(shù)而生成的加密算法的構(gòu)成的示例圖。圖3中,加密算法通過由三個密鑰表和由5輪(round)組成的兩個相同的AES算法交叉地反復(fù)結(jié)合而生成。并且,在各AES算法中,構(gòu)成為使加密密鑰利用固定的值。另外,在圖示的例中,示出了反復(fù)結(jié)合的密鑰表和AES算法相同的情況,然而如上文所述,三個密鑰表可以使用互不相同的密鑰表或者使用兩個相同的密鑰表和一個不同的密鑰表,并可以利用一個AES算法和一個其他置換函數(shù)。圖4為根據(jù)本發(fā)明的一實施例的密鑰表生成部110的詳細(xì)構(gòu)成圖。參照圖4,密鑰表生成部110可以包括:密鑰生成部111,用于由種子值生成多個子密鑰;運算部113,利用所生成的各個子密鑰生成密鑰表。具體而言,密鑰生成部111在接收種子值并生成子密鑰后,可以由前一個所生成的子密鑰反復(fù)生成新的子密鑰。例如,假設(shè)生成三個子密鑰時,密鑰生成部111可以從輸入的種子值生成隨機數(shù)而生成第一個子密鑰。之后,密鑰生成部111可以由所生成的第一個子密鑰生成隨機數(shù),從而生成第二個 子密鑰,并且可以由所生成的第二個子密鑰生成隨機數(shù),從而生成第三個子密鑰。運算部113由從密鑰生成部111生成的各個子密鑰生成用于構(gòu)成密鑰表的任意值,并可以生成包含所生成的任意值的密鑰表。具體而言,運算部113可以利用用于由所輸入的子密鑰來生成任意值的輪函數(shù),從而可以通過在每一輪均將各子密鑰應(yīng)用于輪函數(shù)而生成任意值。具體而言,圖5為示出運算部113中應(yīng)用的輪函數(shù)的例子的圖。參照圖5,如圖示的例子那樣,運算部113可以對在密鑰生成部111中生成的子密鑰ki以及具有與子密鑰ki相同大小的任意的值a進(jìn)行XOR運算(異或運算),之后將XOR運算結(jié)果分成兩個部分并將其分別應(yīng)用于S盒(S-box)。之后,運算部113可以對兩個S盒的輸出結(jié)果值進(jìn)行矩陣運算而產(chǎn)生任意值ri。此時,矩陣運算例如可以利用使用MDS(MaximumDistanceSeparable)矩陣的矩陣運算等具有能夠使針對輸入值的擴散效果最大化的性質(zhì)的多種形態(tài)的矩陣運算。另外,由密鑰表生成部110進(jìn)行的密鑰表的生成并不一定要局限于圖4以及圖5中示出的例子。例如,除了圖4以及圖5中示出的例子之外,密鑰表生成部110還可以在利用具有單向特性的多種方式而由種子值生成任意值之后生成包含所生成的任意值的密鑰表。另外,在一實施例中,如圖1所示的密鑰表生成部110以及加密部130可以在包括一個以上的處理器以及與該處理器連接的計算機可讀記錄介質(zhì)的,一個以上的計算裝置上實現(xiàn)。計算機可讀記錄介質(zhì)可以位于處理器的內(nèi)部或者外部,并且可以通過公知的多種手段連接到處理器。計算裝置內(nèi)的處理器可以使各個計算裝置照著本說明書中記載的示例性的實施例運轉(zhuǎn)。例如,處理器可以執(zhí)行計算機可讀記錄介質(zhì)中儲存的指令,計算機可讀記錄介質(zhì)中儲存的指令在由處理器執(zhí)行時,可以使計算裝置執(zhí)行根據(jù)本說明書中記載的示例性的實施例的操作。圖6為根據(jù)本發(fā)明的一實施例的加密方法的流程圖。圖6中示出的方法例如可以由圖1中示出的加密裝置100來執(zhí)行。參考圖6,加密裝置100生成從種子值導(dǎo)出的任意值(610)。之后,加密裝置100生成包含所生成的任意值的密鑰表(620)。此時,構(gòu)成密鑰表的任意值的大小可以根據(jù)可用存儲器的大小而確定。之后,加密裝置100通過交叉地反復(fù)結(jié)合所生成的密鑰表和置換函數(shù)而生成加密算法(630)。具體而言,加密裝置100例如可以基于由密鑰表來代替密鑰值的艾文-曼蘇爾方案而使r+1個密鑰表和r個置換函數(shù)交叉地反復(fù)結(jié)合,從而生成加密算法。此時,r的值可以根據(jù)所要求的安全強度而確定。另外,r+1個密鑰表可以全部相同,但是并不局限于此,r+1個密鑰表根據(jù)實施例而可以全部都不相同或者部分不相同。同樣,r個置換函數(shù)可以全部相同,但并不局限于此,r個置換函數(shù)根據(jù)實施例而可全部都不相同或者部分不相同。之后,加密裝置100利用所生成的加密算法對明文數(shù)據(jù)塊進(jìn)行加密(640)。另外,在如圖6所示的流程圖中將所述方法分成了多個步驟而進(jìn)行了圖示,然而還可以由如下的方式來執(zhí)行:交換至少一部分步驟而執(zhí)行;與其他步驟結(jié)合而一起執(zhí)行;省略或分為細(xì)分的步驟而執(zhí)行;或者附加未圖示的一個以上的步驟而執(zhí)行。另外,本發(fā)明的一實施例可以包括計算機可讀記錄介質(zhì),其包括用于在計算機上執(zhí)行本說明書中記載的方法的程序。所述計算機可讀記錄介質(zhì)可以單獨地或者組合地包括程序命令、本地數(shù)據(jù)文件、本地數(shù)據(jù)結(jié)構(gòu)等。所述介質(zhì)可以是為本發(fā)明而特別地設(shè)計并構(gòu)成的介質(zhì),或者可以是在計算機軟件領(lǐng)域中通常被使用的介質(zhì)。計算機可解碼記錄介質(zhì)的示例包括:磁介質(zhì),如硬盤、軟盤以及磁帶等;光記錄介質(zhì),如CD-ROM、DVD等;磁-光介質(zhì),軟盤等;以及ROM、RAM、閃存等為了儲存命令并執(zhí)行程序命令而特別構(gòu)成的硬件裝置。作為程序命令的例,不僅包括如利用編譯器制作的計算機語音代碼,還可以包括可利用翻譯器等由計算機執(zhí)行的高級語言代碼。以上,對本發(fā)明的具有代表性的實施例進(jìn)行了詳細(xì)的說明,然而在本發(fā)明所屬的
技術(shù)領(lǐng)域:
:中具有基本知識的人員可以理解對上述的實施例可在不脫離本發(fā)明的范圍的限度內(nèi)進(jìn)行多種變形。因此,本發(fā)明的權(quán)利范圍并不局限于上述的實施例,本發(fā)明的權(quán)利范圍需要根據(jù)權(quán)利要求書的范圍以及與該權(quán)利要求書均等的范圍來確定。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3