專利名稱:加密、解密裝置及擴(kuò)展密鑰生成裝置、方法以及記錄媒體的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)基于2000年7月12日申請(qǐng)的已有日本專利申請(qǐng)No.2000-211686并且宣稱有該申請(qǐng)的優(yōu)先權(quán),該申請(qǐng)的全部?jī)?nèi)容在此引入為參考。
本發(fā)明涉及在加密時(shí)和解密時(shí)按相反順序使用多個(gè)擴(kuò)展密鑰的加密裝置,解密裝置以及擴(kuò)展密鑰生成裝置,擴(kuò)展密鑰生成方法以及記錄媒體。
背景技術(shù):
為了電子化信息、尤其有關(guān)著作權(quán)的信息、機(jī)密信息或有關(guān)私人的信息等的安全控制,加密技術(shù)越來越重要。實(shí)際上在各種領(lǐng)域以各種形式利用了加密技術(shù)。
有各種加密方式,其中之一有公用密鑰加密方式。公用密鑰加密方式是使用與加密時(shí)所用的密鑰同一密鑰(有公用密鑰的情況,也有私有密鑰的情況)進(jìn)行解密的方式。
有各種公用密鑰加密方式,其中之一有使用擴(kuò)展密鑰的方式。該方式是基于公用密鑰生成比其具有的位數(shù)多的總位數(shù)的多個(gè)擴(kuò)展密鑰。
作為擴(kuò)展密鑰的生成方式之一有對(duì)公用密鑰采用循環(huán)函數(shù)(段函數(shù)),基于該輸出值生成擴(kuò)展密鑰,同時(shí)還對(duì)該輸出值采用循環(huán)函數(shù),基于該輸出值生成下一擴(kuò)展密鑰,同時(shí)還對(duì)該輸出值采用循環(huán)函數(shù)…,像這樣,依次采用循環(huán)函數(shù),逐個(gè)生成擴(kuò)展密鑰。在比,將這樣的方式稱為循環(huán)方式。
作為采用這樣的擴(kuò)展密鑰生成方式的公用密鑰加密方式例如有公用密鑰塊加密方式。公用密鑰塊加密方式具有數(shù)據(jù)攪拌部對(duì)成為處理單位所定位長(zhǎng)的塊數(shù)據(jù)依次采用循環(huán)函數(shù)來進(jìn)行加密或解密的結(jié)構(gòu),其典型基本結(jié)構(gòu)有SPN型和Feistel型等。
另外,在生成擴(kuò)展密鑰時(shí)采用循環(huán)方式時(shí),例如像塊加密,要求按與加密時(shí)相反的順序采用擴(kuò)展密鑰。
下面,說明這種方式存在的問題。
圖48示出現(xiàn)有加密裝置的擴(kuò)展密鑰生成部的結(jié)構(gòu)例。生成部具有串接的循環(huán)函數(shù)處理部10011~1001n和,分別連接到循環(huán)函數(shù)處理部10011~1001n的輸出的擴(kuò)展密鑰變換部10051~1005n。
在數(shù)據(jù)攪拌部中,加密處理需要擴(kuò)展密鑰(1)。因此,對(duì)公用密鑰采用循環(huán)函數(shù)(1),求出該輸出值,并對(duì)其進(jìn)行擴(kuò)展密鑰變換(1),從而得到擴(kuò)展密鑰(1)。數(shù)據(jù)攪拌部采用該擴(kuò)展密鑰(1)進(jìn)行加密處理。
在數(shù)據(jù)攪拌部中,加密處理還需要擴(kuò)展密鑰(2)。因此,對(duì)循環(huán)函數(shù)(1)的輸出值采用循環(huán)函數(shù)(2),求出該輸出值,并對(duì)其進(jìn)行擴(kuò)展密鑰變換(2),從而得到擴(kuò)展密鑰(2)。數(shù)據(jù)攪拌部采用該擴(kuò)展密鑰(2)進(jìn)行加密處理。
之后,進(jìn)行同樣處理,在擴(kuò)展密鑰生成部生成擴(kuò)展密鑰,在數(shù)據(jù)攪拌部進(jìn)行加密處理。
在此,考慮解密時(shí)的處理。
在解密時(shí),需要按與加密時(shí)相反的順序,即擴(kuò)展密鑰(n)→擴(kuò)展密鑰(1)的順序采用擴(kuò)展密鑰。但是,具有與圖48相同結(jié)構(gòu)的擴(kuò)展密鑰生成部的現(xiàn)有的解密裝置由于按擴(kuò)展密鑰(1)→擴(kuò)展密鑰(n)的順序生成擴(kuò)展密鑰,所以需要例如在數(shù)據(jù)攪拌部的處理之前生成所有擴(kuò)展密鑰,并存儲(chǔ)到存儲(chǔ)器。
但是,存在例如像IC卡那樣只有貧乏的硬件環(huán)境的裝置沒有存儲(chǔ)所有解密所需的擴(kuò)展密鑰的剩余存儲(chǔ)區(qū)域的問題。
為了避免該問題,考慮如圖49例示結(jié)構(gòu)的解密裝置的擴(kuò)展密鑰生成部。生成部具有串接的循環(huán)函數(shù)處理部10011~1001n和,串接到最終級(jí)的循環(huán)函數(shù)處理部1001n的輸出,進(jìn)行與循環(huán)函數(shù)處理部1001n~10011的循環(huán)函數(shù)處理相反的處理的循環(huán)函數(shù)處理部1021n~10212和,分別連接到循環(huán)函數(shù)處理部1001n、1021n~10212的輸出的擴(kuò)展密鑰變換部1005n~10051。
該結(jié)構(gòu)暫時(shí)進(jìn)行與加密相同的擴(kuò)展密鑰生成處理,求出采用最終級(jí)的循環(huán)函數(shù)而得到的輸出值Rn。接著,預(yù)先對(duì)該輸出值Rn在與加密時(shí)相反循環(huán)方向采用各循環(huán)函數(shù)的反函數(shù),按擴(kuò)展密鑰(n)→擴(kuò)展密鑰(1)的順序,即隨時(shí)(On-the-fly)生成擴(kuò)展密鑰。
但是,由于有進(jìn)行與最初加密時(shí)同一擴(kuò)展密鑰Rn的生成處理所不需要的時(shí)間,從而存在在開始解密之前產(chǎn)生時(shí)延的問題。
如上所述,現(xiàn)有技術(shù)由于不能按相反順序生成擴(kuò)展密鑰,所以需要在解密處理之前生成并存儲(chǔ)所有擴(kuò)展密鑰,但存在例如像IC卡那樣在貧乏的硬件環(huán)境沒有存儲(chǔ)解密所需的所有擴(kuò)展密鑰的剩余存儲(chǔ)區(qū)域的問題。
為了利用隨時(shí)的密鑰生成避免該問題,需要暫時(shí)進(jìn)行與加密時(shí)同一擴(kuò)展密鑰生成處理,并求出在最終循環(huán)采用循環(huán)函數(shù)而得到的輸出值之后,預(yù)先對(duì)該輸出值在相反循環(huán)方向采用各循環(huán)函數(shù)的反函數(shù),但此時(shí)也存在不能避免開始解密之前的時(shí)延的問題。
技術(shù)內(nèi)容本發(fā)明是鑒于上述問題而提出的,其目的在于提供一種避免或減少用于生成擴(kuò)展密鑰的時(shí)延的產(chǎn)生,并且可以進(jìn)行隨時(shí)的密鑰生成的加密裝置,解密裝置以及擴(kuò)展密鑰生成裝置、擴(kuò)展密鑰生成方法以及記錄媒體。
根據(jù)本發(fā)明的一實(shí)施例,提供一種在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式的加密裝置,具有多級(jí)循環(huán)處理部,在初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成子密鑰,在第2級(jí)之后,將在前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;多個(gè)擴(kuò)展密鑰處理部,對(duì)于上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)Υ诉M(jìn)行所定變換處理之后,作為擴(kuò)展密鑰輸出。
根據(jù)本發(fā)明的一實(shí)施例,提供一種在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式的解密裝置,具有多級(jí)循環(huán)處理部,在初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成子密鑰,在第2級(jí)之后,將在前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;多個(gè)擴(kuò)展密鑰處理部,對(duì)于上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)Υ诉M(jìn)行所定變換處理之后,作為擴(kuò)展密鑰輸出。
圖1是表示本發(fā)明一個(gè)實(shí)施例的加密裝置的結(jié)構(gòu)例的圖。
圖2是表示該實(shí)施例的解密裝置的結(jié)構(gòu)例的圖。
圖3是用于說明循環(huán)行程結(jié)構(gòu)的循環(huán)函數(shù)序列結(jié)構(gòu)的圖。
圖4是用于說明環(huán)形結(jié)構(gòu)的循環(huán)函數(shù)序列結(jié)構(gòu)的圖。
圖5是用于說明循環(huán)行程結(jié)構(gòu)和環(huán)形結(jié)構(gòu)的復(fù)合型循環(huán)函數(shù)序列結(jié)構(gòu)的圖。
圖6是用于說明循環(huán)行程結(jié)構(gòu)和環(huán)形結(jié)構(gòu)的復(fù)合型循環(huán)函數(shù)序列結(jié)構(gòu)的圖。
圖7是用于說明循環(huán)行程結(jié)構(gòu)和環(huán)形結(jié)構(gòu)的復(fù)合型循環(huán)函數(shù)序列結(jié)構(gòu)的圖。
圖8是用于說明循環(huán)行程結(jié)構(gòu)和環(huán)形結(jié)構(gòu)的復(fù)合型循環(huán)函數(shù)序列結(jié)構(gòu)的圖。
圖9是用于說明循環(huán)行程結(jié)構(gòu)和環(huán)形結(jié)構(gòu)的復(fù)合型循環(huán)函數(shù)序列結(jié)構(gòu)的圖。
圖10是表示本實(shí)施例的加密裝置的另一結(jié)構(gòu)例的圖。
圖11是表示本實(shí)施例的解密裝置的另一結(jié)構(gòu)例的圖。
圖12是表示圖10、圖11的擴(kuò)展密鑰和攪拌處理的連接關(guān)系例的圖。
圖13是表示圖10、圖11的擴(kuò)展密鑰和攪拌處理的連接關(guān)系例的圖。
圖14是表示圖10、圖11的擴(kuò)展密鑰和攪拌處理的連接關(guān)系例的圖。
圖15是表示圖10、圖11的擴(kuò)展密鑰和攪拌處理的連接關(guān)系例的圖。
圖16是表示本實(shí)施例的加密裝置的又另一結(jié)構(gòu)例的圖。
圖17是表示本實(shí)施例的解密裝置的又另一結(jié)構(gòu)例的圖。
圖18是表示本實(shí)施例的加密裝置的又另一結(jié)構(gòu)例的圖。
圖19是表示本實(shí)施例的擴(kuò)展密鑰生成部的結(jié)構(gòu)例的圖。
圖20是表示本實(shí)施例的循環(huán)處理部的結(jié)構(gòu)例的圖。
圖21是表示本實(shí)施例的循環(huán)處理部的另一結(jié)構(gòu)例的圖。
圖22是表示圖21的循環(huán)處理部的非線性函數(shù)單元的結(jié)構(gòu)例的圖。
圖23是表示具有圖21的循環(huán)處理部的反函數(shù)的循環(huán)處理部的結(jié)構(gòu)例的圖。
圖24是表示本實(shí)施例的加密裝置的又另一結(jié)構(gòu)例的圖。
圖25是表示圖24的第1單元DU的結(jié)構(gòu)例的圖。
圖26是表示圖24的第2單元DD的結(jié)構(gòu)例的圖。
圖27是表示圖24的第3單元DD(woMDSH)的結(jié)構(gòu)例的圖。
圖28是表示圖24的擴(kuò)展密鑰生成部的結(jié)構(gòu)例的圖。
圖29是表示圖24的擴(kuò)展密鑰生成部的另一結(jié)構(gòu)例的圖。
圖30是用于說明圖28和圖29的非線性函數(shù)單元的圖。
圖31是用于說明圖28和圖29的“異”單元的圖。
圖32是用于說明圖28和圖29的“異”單元的圖。
圖33是用于說明圖28和圖29的伽羅瓦域上的乘法單元的圖。
圖34A、圖34B是用于說明圖28和圖29的伽羅瓦域上乘法單元的圖。
圖35是實(shí)現(xiàn)伽羅瓦域上的乘法的連接圖形。
圖36是表示本實(shí)施例的加密裝置的擴(kuò)展密鑰生成部的又另一結(jié)構(gòu)例的圖。
圖37是表示圖36的非線性函數(shù)單元F的結(jié)構(gòu)例的圖。
圖38A、圖38B是用于說明圖36的“異”單元的圖。
圖39A、圖39B是表示PA級(jí)的結(jié)構(gòu)的圖。
圖40是表示虛設(shè)級(jí)的結(jié)構(gòu)的圖。
圖41是表示本實(shí)施例的加密裝置的擴(kuò)展密鑰生成部的又另一結(jié)構(gòu)例的圖。
圖42是表示圖41的非線性函數(shù)單元F的結(jié)構(gòu)例的圖。
圖43A、圖43B是用于說明圖41的“異”單元的圖。
圖44是表示虛設(shè)級(jí)的結(jié)構(gòu)的圖。
圖45是表示利用了本實(shí)施例的加密方式的系統(tǒng)一例的圖。
圖46是表示利用了本實(shí)施例的加密方式的系統(tǒng)另一例的圖。
圖47是表示利用了本實(shí)施例的加密方式的系統(tǒng)又另一例的圖。
圖48是用于說明現(xiàn)有的擴(kuò)展密鑰生成裝置的圖。
圖49是用于說明現(xiàn)有的擴(kuò)展密鑰生成裝置的圖。
具體實(shí)施例方式
下面,參考
本發(fā)明的實(shí)施例。
實(shí)施例1本發(fā)明可適用于在加密時(shí)和解密時(shí)按相反順序采用擴(kuò)展密鑰的所有公用密鑰加密方式,但下面說明進(jìn)行對(duì)所定位長(zhǎng)度的塊數(shù)據(jù)逐個(gè)采用了各擴(kuò)展密鑰的數(shù)據(jù)攪拌處理的公用密鑰塊加密方式的例子。
下面參考的各圖(為了著眼于該加密進(jìn)行說明)中將成為加密對(duì)象的數(shù)據(jù)作為明文示出,但當(dāng)然也可以是成為加密對(duì)象的數(shù)據(jù)已經(jīng)由同一或另一加密方式加密的密文。本加密方式可以利用硬件實(shí)現(xiàn),也可以利用軟件實(shí)現(xiàn),下面所示的結(jié)構(gòu)例也可以作為加密裝置(解密裝置)的功能框圖,也可以作為加密算法(解密算法)的功能模塊圖或流程圖。
圖1示出了本發(fā)明一個(gè)實(shí)施例的加密裝置的結(jié)構(gòu)例。本加密裝置具有數(shù)據(jù)攪拌部1和擴(kuò)展密鑰生成部3。
擴(kuò)展密鑰生成部3具有多個(gè)循環(huán)處理部311~31n(根據(jù)情況還具有31n+1)。
第1級(jí)循環(huán)處理部311對(duì)公用密鑰kc采用第1級(jí)循環(huán)函數(shù)f1,并輸出第1子密鑰kc1=f1(kc)。
第2級(jí)循環(huán)處理部312對(duì)前一級(jí)(在此第1級(jí))的循環(huán)處理部311輸出的子密鑰kc1采用第2級(jí)循環(huán)函數(shù)f2,并輸出子密鑰kc2=f2(kc1)=f2(f1(kc))。
未圖示的第3級(jí)至第(n-1)級(jí)循環(huán)處理部也是同樣的。
第n級(jí)循環(huán)處理部31n對(duì)前一級(jí)(在此為第(n-1)級(jí))的循環(huán)處理部31n-1(未圖示)輸出的子密鑰kcn-1采用第n級(jí)循環(huán)函數(shù)fn,并輸出子密鑰kcn=fn(kcn-1)=fn(fn-1(…f2(f1(kc))…))。
本實(shí)施例中,在第(n+1)級(jí)循環(huán)處理部31n+1對(duì)第n級(jí)循環(huán)處理部31n輸出的子密鑰kcn采用循環(huán)函數(shù)fn+1,使這樣得到的輸出值kcn=fn+1(kcn-1)=fn+1(fn(fn-1(…f2(f1(kc))…)))與公用密鑰kc相等。
該第n級(jí)循環(huán)函數(shù)fn+1的反函數(shù)fn+1-1成為解密裝置的擴(kuò)展密鑰生成部的初級(jí)循環(huán)處理部的循環(huán)函數(shù)。
加密裝置的擴(kuò)展密鑰生成部也可以不具有循環(huán)函數(shù)fn+1的循環(huán)處理部,但如果具有循環(huán)函數(shù)fn+1的循環(huán)處理部,則在加密裝置和解密裝置中密鑰生成部的結(jié)構(gòu)相同,所以在兼有加密功能和解密功能2個(gè)功能的裝置中,通過在加密時(shí)和解密時(shí)兼用1個(gè)擴(kuò)展密鑰生成部,具有減小裝置規(guī)模的優(yōu)點(diǎn)。
擴(kuò)展密鑰生成部3具有多個(gè)擴(kuò)展密鑰變換部331至33n。
第1級(jí)擴(kuò)展密鑰變換部331對(duì)第1級(jí)循環(huán)處理部311的輸出kc1的全部或部分采用第1級(jí)擴(kuò)展密鑰變換函數(shù)c1,生成第1級(jí)擴(kuò)展密鑰k1。
第2級(jí)擴(kuò)展密鑰變換部332對(duì)第2級(jí)循環(huán)處理部312的輸出kc2的全部或部分采用第2級(jí)擴(kuò)展密鑰變換函數(shù)c2,生成第2級(jí)擴(kuò)展密鑰k2。
未圖示的第3級(jí)至第(n-1)級(jí)的擴(kuò)展密鑰變換部也是同樣的。
第n級(jí)擴(kuò)展密鑰變換部33n對(duì)第n級(jí)循環(huán)處理部31n的輸出kcn的全部或部分采用第n級(jí)擴(kuò)展密鑰函數(shù)cn,生成第n級(jí)擴(kuò)展密鑰kn。
數(shù)據(jù)攪拌部1具有從屬連接的多個(gè)(例如利用循環(huán)函數(shù)的)攪拌處理部111至11n。
第1級(jí)攪拌處理部111輸入成為加密對(duì)象的塊數(shù)據(jù)(明文),并使用擴(kuò)展密鑰k1進(jìn)行攪拌處理R1。
第2級(jí)攪拌處理部112輸入第1級(jí)攪拌處理部111輸出的塊數(shù)據(jù),并使用擴(kuò)展密鑰k2進(jìn)行攪拌處理R2。
未圖示的第3級(jí)至第(n-1)級(jí)的攪拌處理部也是同樣的。
第n級(jí)攪拌處理部11n輸入第(n-1)級(jí)攪拌處理部輸出的塊數(shù)據(jù),并使用擴(kuò)展密鑰kn進(jìn)行攪拌處理Rn。第n級(jí)攪拌處理部11n的輸出成為應(yīng)求出的密文。
用于多個(gè)攪拌處理的循環(huán)函數(shù)也可以是全不同,也可以是全相同,也可以是不同的和相同的混合在一起。在要使多個(gè)循環(huán)函數(shù)不同時(shí),除了使函數(shù)不同的方法之外,還有基本上是同一函數(shù),但根據(jù)級(jí)而具有不同的常數(shù)的方法等。
多個(gè)循環(huán)函數(shù)也可以是都為線性函數(shù),也可以是任意函數(shù),但最好其中至少一個(gè)是非線性函數(shù)。也可以是多于2個(gè)循環(huán)函數(shù)或所有循環(huán)函數(shù)為非線性函數(shù)。
實(shí)現(xiàn)循環(huán)函數(shù)的方法有利用變換表實(shí)現(xiàn)的方法、用行列運(yùn)算或其它運(yùn)算實(shí)現(xiàn)的方法、利用實(shí)際電路實(shí)現(xiàn)的方法等各種結(jié)構(gòu)方法。
這些點(diǎn)對(duì)于多個(gè)擴(kuò)展密鑰變換函數(shù)也是同樣的。
作為各級(jí)擴(kuò)展密鑰生成部331至33n的變形例,也可以是將輸入的子密鑰或其一部分原封不動(dòng)地作為擴(kuò)展密鑰輸出的結(jié)構(gòu)(或?qū)⒆用荑€直接連接到數(shù)據(jù)攪拌部1(或后述的開關(guān)電路15))。
塊數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度和公用密鑰kc的數(shù)據(jù)長(zhǎng)度也可以相同,也可以不同。擴(kuò)展密鑰的數(shù)據(jù)長(zhǎng)度和塊數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度也可以相同,也可以不同。子密鑰的數(shù)據(jù)長(zhǎng)度和擴(kuò)展密鑰的數(shù)據(jù)長(zhǎng)度也可以相同,也可以不同。
圖2示出本發(fā)明一個(gè)實(shí)施例的解密裝置的結(jié)構(gòu)例。本解密裝置具有數(shù)據(jù)攪拌部2和擴(kuò)展密鑰生成部4。圖2的解密裝置具有進(jìn)行圖1的加密裝置的反變換的功能。
擴(kuò)展密鑰生成部4具有多個(gè)循環(huán)處理部422至42n+1(根據(jù)情況還具有421),按相反順序采用圖1的加密裝置的擴(kuò)展密鑰生成部2的多個(gè)循環(huán)函數(shù)的各反函數(shù)。
循環(huán)處理部42n+1對(duì)公用密鑰kc=fn+1(kcn)=fn+1(fn(fn-1(…f2(f1(kc))…)))采用循環(huán)函數(shù)fn+1-1,并輸出子密鑰kcn=fn+1-1(kc)=fn+1-1(fn+1(fn(fn-1(…f2(f1(kc))…))))=(fn(fn-1(…f2(f1(kc))…))。
循環(huán)處理部42n對(duì)前一級(jí)循環(huán)處理部42n+1輸出的子密鑰kcn采用循環(huán)函數(shù)fn-1,輸出kcn-1=fn-1(…f2(f1(kc))…)。
未圖示的循環(huán)處理部42n-1至423也是同樣的。
循環(huán)處理部422對(duì)前一級(jí)循環(huán)處理部423輸出的子密鑰kc2=f2(f1(kc))采用循環(huán)函數(shù)f2-1,輸出kc1=f1(kc)。
在循環(huán)處理部421對(duì)前一級(jí)循環(huán)處理部422輸出的子密鑰kc1采用循環(huán)函數(shù)f1-1,這樣得到的輸出值與公用密鑰kc相等。
循環(huán)函數(shù)f1-1的反函數(shù)f1成為加密裝置的擴(kuò)展密鑰生成部的初級(jí)循環(huán)處理部的循環(huán)函數(shù)。圖2的結(jié)構(gòu)例中,在擴(kuò)展密鑰生成部也可以不具有循環(huán)函數(shù)f1-1的循環(huán)處理部421,但如果具有循環(huán)函數(shù)f1-1的循環(huán)處理部421,由于加密裝置和解密裝置的密鑰生成部的結(jié)構(gòu)相同,所以在兼有加密功能和解密功能雙方的裝置中,通過在加密時(shí)和解密時(shí)兼用1個(gè)擴(kuò)展密鑰生成部,具有減小裝置規(guī)模的優(yōu)點(diǎn)。
擴(kuò)展密鑰生成部4具有多個(gè)擴(kuò)展密鑰變換部441~44n。該部分與對(duì)應(yīng)圖1的加密裝置的部分處理內(nèi)容相同。
數(shù)據(jù)攪拌部2具有從屬連接的多個(gè)(例如利用循環(huán)函數(shù))攪拌處理部221至22n。
最終級(jí)的攪拌處理部22n輸成為解密對(duì)象的塊數(shù)據(jù)(密文),并使用擴(kuò)展密鑰kn進(jìn)行成為加密裝置的攪拌處理Rn的反變換內(nèi)攪拌處理Rn-1。
同樣,第(n-1)級(jí)至第2級(jí)的攪拌處理部22n-1至22n也依次輸入后一級(jí)的攪拌處理部輸出的塊數(shù)據(jù),使用擴(kuò)展密鑰kn-1、…k2進(jìn)行攪拌處理Rn-1-1、…R2-1。
第1級(jí)的攪拌處理部221輸入第2級(jí)攪拌處理部222輸出的塊數(shù)據(jù),使用擴(kuò)展密鑰k1進(jìn)行成為加密裝置的攪拌處理R1的反變換的攪拌處理R1-1。第1級(jí)攪拌處理部221的輸出成為應(yīng)求的解密結(jié)果(塊數(shù)據(jù)(明文))。
即,如圖2所示,在解密時(shí),可以按與已加密時(shí)相反的順序開始生成擴(kuò)展密鑰,依次生成擴(kuò)展密鑰。
如上所述,通過對(duì)用于加密時(shí)生成擴(kuò)展密鑰的循環(huán)函數(shù)序列(但也有不具有最終級(jí)的情況)和成為其反函數(shù)的用于解密時(shí)生成擴(kuò)展密鑰的循環(huán)函數(shù)序列(但也有不具有最終級(jí)的情況),將循環(huán)函數(shù)系列設(shè)定為相當(dāng)于加密時(shí)的最終級(jí)的輸出的值與原來的公用密鑰一致,可以在加密時(shí)和解密時(shí)雙方不用像現(xiàn)有那樣耗費(fèi)無用的時(shí)延和存儲(chǔ)容量,從公用密鑰隨時(shí)生成擴(kuò)展密鑰。
下面,說明圖1的加密裝置、圖2的解密裝置的擴(kuò)展密鑰生成部的多個(gè)循環(huán)處理部的循環(huán)函數(shù)序列。由于加密裝置的循環(huán)函數(shù)序列和解密裝置的循環(huán)函數(shù)序列成為反函數(shù)關(guān)系,所以只要確定一個(gè),也就可以確定另一個(gè)。在此,以加密裝置為例進(jìn)行說明。
對(duì)于循環(huán)函數(shù)序列f1、f2、…、fn+1,循環(huán)函數(shù)序列的內(nèi)容或各順序的循環(huán)函數(shù)的內(nèi)容是該循環(huán)函數(shù)序列作為整體可以在滿足輸入公用密鑰并輸出與公共密鑰相同值的條件的范圍內(nèi)適當(dāng)設(shè)定,有各種變化。下面,舉例說明幾個(gè)循環(huán)函數(shù)序列的變形。
(循環(huán)行程結(jié)構(gòu))在此,設(shè)循環(huán)函數(shù)序列的級(jí)數(shù)為2r級(jí)(如上所述,也有不具有第2r級(jí)循環(huán)函數(shù)的情況)。
構(gòu)成循環(huán)函數(shù)序列的1個(gè)方法是對(duì)于滿足0≤i≤r的所有i構(gòu)成為滿足第(r+i)級(jí)的級(jí)函數(shù)成為第(r-i+1)級(jí)的級(jí)函數(shù)的反函數(shù)的關(guān)系的方法。
例如,將循環(huán)函數(shù)序列設(shè)為8級(jí),即f1、f2、f3、f4、f5、f6、f7、f8,將f1~f4作為任意循環(huán)函數(shù),如果設(shè)f5=f4-1、f6=f3-1、f7=f2-1、f8=f1-1,則成為f1、f2、f3、f4、f4-1、f3-1、f2-1、f1-1順序的序列。即,通過將公用密鑰作為輸入依次采用f1、f2、f3、f4、f4-1、f3-1、f2-1、f1-1,使最終級(jí)的輸出與公用密鑰一致。
將這樣的結(jié)構(gòu)稱為循環(huán)行程結(jié)構(gòu)。圖3示出其結(jié)構(gòu)。
在采用循環(huán)行程時(shí),加密裝置的循環(huán)函數(shù)序列和解密裝置的循環(huán)函數(shù)序列相同。
在上述例子的情況下,如果設(shè)加密裝置的8級(jí)循環(huán)函數(shù)為f1、f2、f3、f4、f4-1、f3-1、f2-1、f1-1,則由于解密裝置的8級(jí)循環(huán)函數(shù)成為其反函數(shù),所以(f1-1)-1、(f2-1)-1、(f3-1)-1、(f4-1)-1、(f4)-1、(f3)-1、(f2)-1、(f1)-1,從而成為f1、f2、f3、f4、f4-1、f3-1、f2-1、f1-1,可知兩者一致。
加密裝置也可以不具有最終級(jí)循環(huán)函數(shù)(上述例中f1-1),解密裝置也可以不具有最終級(jí)循環(huán)函數(shù)(上述例中f1),但如果都具有最終級(jí)循環(huán)函數(shù),則成為同一結(jié)構(gòu),所以在兼有加密功能和解密功能雙方的裝置中,還可以通過在加密時(shí)和解密時(shí)兼用1個(gè)擴(kuò)展密鑰生成部,可以減小裝置規(guī)模。
在該結(jié)構(gòu)中,循環(huán)函數(shù)序列的前半部分的各循環(huán)函數(shù)也可以全不同,也可以全相同,也可以是不同的和相同的混合在一起。
例如,在循環(huán)函數(shù)序列的前半部分的各循環(huán)函數(shù)全相同的情況下,如果設(shè)級(jí)數(shù)為8級(jí),則加密側(cè)和解密側(cè)都成為f1、f1、f1、f1、f1-1、f1-1、f1-1、f1-1的序列。
但是,在采用循環(huán)行程的情況下,在循環(huán)函數(shù)序列中成為反函數(shù)關(guān)系的對(duì)應(yīng)部分的子密鑰相同。從而,如果對(duì)同一子密鑰采用同一擴(kuò)展密鑰變換函數(shù),則生成同一擴(kuò)展密鑰。因此,為了避免該問題,循環(huán)函數(shù)序列中也可以采用不同的成為反函數(shù)關(guān)系的對(duì)應(yīng)部分的2個(gè)擴(kuò)展密鑰變換部的擴(kuò)展密鑰變換函數(shù)。
例如,設(shè)8級(jí)循環(huán)函數(shù)序列為f1、f2、f3、f4、f4-1、f3-1、f2-1、f1-1,如果設(shè)使用f1輸出的擴(kuò)展密鑰變換函數(shù)為c1,…,使用f2-1輸出的擴(kuò)展密鑰變換變換函數(shù)為c7,則也可以使擴(kuò)展密鑰變換函數(shù)c1和擴(kuò)展密鑰函數(shù)c7不同。對(duì)于c2和c6、c3和c5也是同樣的。
(環(huán)路結(jié)構(gòu))在循環(huán)行程結(jié)構(gòu)中,使循環(huán)函數(shù)序列的后半部分為其前半部分的反函數(shù),但作為循環(huán)函數(shù)序列中的部分序列,也可以是不全具有相當(dāng)于循環(huán)行程結(jié)構(gòu)的部分的結(jié)構(gòu)。
將這樣的結(jié)構(gòu)稱為環(huán)路結(jié)構(gòu)。圖4概念性示出該結(jié)構(gòu)。
在循環(huán)行程結(jié)構(gòu)中,設(shè)循環(huán)函數(shù)序列的級(jí)數(shù)為偶數(shù)級(jí),但在環(huán)路結(jié)構(gòu)中,設(shè)循環(huán)函數(shù)序列的級(jí)數(shù)為偶數(shù)或奇數(shù)都可以。
例如,在將循環(huán)函數(shù)序列設(shè)為8級(jí)的情況下,通過以公用密鑰作為輸入依次采用f1、f2、f3、f4、f5、f6、f7、f8,使最終級(jí)的輸出與公用密鑰一致。此時(shí),該反函數(shù)為f8-1、f7-1、f6-1、f5-1、f4-1、f3-1、f2-1、f1-1,如果輸入公用密鑰,則最終級(jí)的輸出與公用密鑰一致。
例如,在循環(huán)函數(shù)序列的前半部分的各循環(huán)函數(shù)都相同的情況下,如果將級(jí)數(shù)設(shè)為8級(jí),則在加密側(cè)成為f1、f1、f1、f1、f1、f1、f1、f1序列,在解密側(cè)成為f1-1、f1-1、f1-1、f1-1、f1-1、f1-1、f1-1、f1-1序列。
滿足這樣條件的函數(shù)有移位運(yùn)算、行列運(yùn)算、伽羅瓦域運(yùn)算等各種運(yùn)算。
(循環(huán)行程/環(huán)路復(fù)合結(jié)構(gòu))作為循環(huán)函數(shù)序列也可以是具有作為其部分序列相當(dāng)于循環(huán)行程結(jié)構(gòu)的部分和相當(dāng)于環(huán)路結(jié)構(gòu)的部分復(fù)合的結(jié)構(gòu)。
下面,作為用圖3的表示方法示出循環(huán)行程結(jié)構(gòu)部分,用圖4的表示方法示出環(huán)路結(jié)構(gòu)部分,圖5~圖9示出了幾個(gè)變形例。
圖5的例子是在循環(huán)行程結(jié)構(gòu)部分的中途含有循環(huán)行程結(jié)構(gòu)部分的插入子結(jié)構(gòu),如果例示圖5情況下的循環(huán)函數(shù)序列,則成為a1a2a3b1b2b2-1b1-1a4a5a6a6-1a6-1a4-1a3-1c1c2c2-1d1d1-1c1-1a2-1a1-1。
在該例的情況下,在a1a2a3a4a5a6a6-1a5-1a4-1a3-1a2-1a1-1循環(huán)行程結(jié)構(gòu)中含有b1b2b2-1b1-1循環(huán)行程結(jié)構(gòu)和c1c2c2-1c1-1循環(huán)行程結(jié)構(gòu),而且在c1c2c2-1c1-1循環(huán)行程結(jié)構(gòu)中含有d1d1-1循環(huán)行程結(jié)構(gòu)。
圖6的例子是在環(huán)路結(jié)構(gòu)部分的中途含有環(huán)路結(jié)構(gòu)部分的插入子結(jié)構(gòu)。如果例示圖6情況下的循環(huán)函數(shù)序列,則成為s1s2s3s4t1t2t3s5s6s7s8。
在該例的情況下,在s1s2s3s4s5s6s7s8環(huán)路結(jié)構(gòu)中含有t1t2t3環(huán)路結(jié)構(gòu)。
圖7的例子是在環(huán)路結(jié)構(gòu)部分的中途含有循環(huán)行程結(jié)構(gòu)部分的結(jié)構(gòu),如果例示圖7情況下的循環(huán)函數(shù)序列,則成為s1s2s3s4s5a1a2a3a3-1a2-1a1-1s6s7s8s9。
在該例的情況下,s1s2s3s4s5s6s7s8s9環(huán)路結(jié)構(gòu)中含有a1a2a3a3-1a2-1a1-1循環(huán)行程結(jié)構(gòu)。
圖8的例子是在循環(huán)行程結(jié)構(gòu)部分的中途含有環(huán)路結(jié)構(gòu)部分的結(jié)構(gòu)。如果例示圖8情況下的循環(huán)函數(shù)序列,則成為a1a2a3a4a5a6s1s2s3s4a6-1a5-1a4-1a3-1a2-1a1-1。
在該例的情況下,在a1a2a3a4a5a6a6-1a5-1a4-1a3-1a2-1a1-1循環(huán)行程結(jié)構(gòu)中含有s1s2s3s4環(huán)路結(jié)構(gòu)。
圖9的例子是具有4個(gè)循環(huán)行程結(jié)構(gòu)部分和2個(gè)環(huán)路部分的結(jié)構(gòu)。
當(dāng)然,除此以外,還可以有組合循環(huán)行程結(jié)構(gòu)部分和環(huán)路結(jié)構(gòu)部分或采用層次結(jié)構(gòu)等各種變形。
另外,圖1、圖2的結(jié)構(gòu)例是假設(shè)只生成數(shù)據(jù)攪拌部所需數(shù)量的擴(kuò)展密鑰,但也可以具有可生成超過數(shù)據(jù)攪拌部所需個(gè)數(shù)的部分的擴(kuò)展密鑰的循環(huán)函數(shù)的級(jí)數(shù),在數(shù)據(jù)攪拌部使用可生成的擴(kuò)展密鑰的一部分的結(jié)構(gòu)。
圖10、圖11分別示出對(duì)應(yīng)于此時(shí)的圖1、圖2的加密裝置/解密裝置的結(jié)構(gòu)例。
在此,以和圖1、圖2的不同點(diǎn)為中心進(jìn)行說明。當(dāng)然,循環(huán)函數(shù)序列采用上述循環(huán)行程結(jié)構(gòu)等即可。
圖10的5和圖11的6是表示擴(kuò)展密鑰ki和攪拌處理Rj的連接關(guān)系的選擇部,圖12~圖15例示幾個(gè)具體例。本實(shí)施例中,圖10的選擇部5和圖11的選擇部6相同。
也可以將輸入給初級(jí)循環(huán)函數(shù)的公用密鑰和從最終級(jí)循環(huán)函數(shù)輸出的公用密鑰的雙方或一方作為子密鑰用于擴(kuò)展密鑰的生成。在使用后者的情況下,實(shí)際上也可以使用最終級(jí)的循環(huán)函數(shù)的輸出,也可以存儲(chǔ)公用密鑰并使用該密鑰。
使可生成的擴(kuò)展密鑰的個(gè)數(shù)多于攪拌處理所需的擴(kuò)展密鑰個(gè)數(shù),使擴(kuò)展密鑰ki和攪拌處理Rj適當(dāng)對(duì)應(yīng)。有可將同一擴(kuò)展密鑰用于多個(gè)攪拌處理的方法和,可將1個(gè)擴(kuò)展密鑰獨(dú)自用于攪拌處理的方法。
也可以不生成無用的擴(kuò)展密鑰。此時(shí),也可以不具有相應(yīng)的擴(kuò)展密鑰變換部。
只將這樣生成的擴(kuò)展密鑰的一部分用于數(shù)據(jù)攪拌的結(jié)構(gòu)在防攻擊的安全性方面有效。
下面,說明各種變形。
首先,數(shù)據(jù)攪拌部的攪拌處理級(jí)數(shù)為n,在(假設(shè)具有擴(kuò)展密鑰變換部)可生成的擴(kuò)展密鑰的個(gè)數(shù)為m(m>n)的情況下,基本上不允許重復(fù)使用擴(kuò)展密鑰的結(jié)構(gòu)可以是從m個(gè)擴(kuò)展密鑰中任意選擇n個(gè)擴(kuò)展密鑰的所有組合。在此,按生成的順序使用擴(kuò)展密鑰。
允許重復(fù)使用擴(kuò)展密鑰的結(jié)構(gòu)基本上可以有nm個(gè)組合。
關(guān)于選擇哪一個(gè)擴(kuò)展密鑰的方法除了隨機(jī)選擇的方法之外,還有根據(jù)所定基準(zhǔn)選擇的方法。
稱為SQUARE攻擊的特殊攻擊對(duì)于現(xiàn)有的加密方式,對(duì)初級(jí)(或與初級(jí)連接的數(shù)級(jí))或最終級(jí)(或連接到最終級(jí)的數(shù)級(jí))的擴(kuò)展密鑰的一部分位進(jìn)行全部搜索。此時(shí),在初級(jí)和最終級(jí)的擴(kuò)展密鑰相同時(shí),搜索空間變小,從而可譯碼的可能性變大。
對(duì)于由初級(jí)擴(kuò)展密鑰變換部得到的擴(kuò)展密鑰(下面,稱為初級(jí)擴(kuò)展密鑰)和由最終級(jí)擴(kuò)展密鑰變換部得到的擴(kuò)展密鑰(下面,稱為最終級(jí)擴(kuò)展密鑰),也可以最多只將一方用于數(shù)據(jù)攪拌(有只將某一方用于數(shù)據(jù)攪拌的方法和都不用于數(shù)據(jù)攪拌的方法)。
同樣,在從初級(jí)的連續(xù)的數(shù)級(jí)部分的擴(kuò)展密鑰和至最終級(jí)的連續(xù)的數(shù)級(jí)部分的擴(kuò)展密鑰范圍中,也可以對(duì)于使離初級(jí)或最終級(jí)的級(jí)數(shù)相同的2個(gè)級(jí)的擴(kuò)展密鑰組,無論哪一組最多只將一方用于數(shù)據(jù)攪拌。此時(shí),作為選擇使用和不用的方法考慮了各種變形。例如,無論對(duì)哪一組,設(shè)使用某一方時(shí),也可以按各組隨機(jī)選擇使用的一方(或不用的一方),例如也可以根據(jù)使前半部分和后半部分交互來選擇等一定基準(zhǔn)進(jìn)行選擇。例如,也可以隨機(jī)選擇,也可以根據(jù)一定基準(zhǔn)選擇使用級(jí)順序在前的或級(jí)順序在后的或都不用。
例如,如圖12所示,在可生成15級(jí)擴(kuò)展密鑰,攪拌處理為9級(jí)的情況下,在初級(jí)擴(kuò)展密鑰k1和最終級(jí)擴(kuò)展密鑰k15之中使用k15,在其一內(nèi)側(cè)級(jí)的k2和k14之中使用k2,同樣,也可以在k3和k13之中使用k13,在k4和k12之中使用k4,在k5和k11之中使用k11,在k6和k10之中使用k6。此時(shí),也按生成的順序使用擴(kuò)展密鑰。
也可以不在與初級(jí)的連續(xù)的數(shù)級(jí)部分的擴(kuò)展密鑰和至最終級(jí)的連續(xù)的數(shù)級(jí)部分的擴(kuò)展密鑰的范圍使用。圖13示出此時(shí)的情況。
也可以不在初級(jí)和最終級(jí),或與初級(jí)的連續(xù)的數(shù)級(jí)部分的擴(kuò)展密鑰和至最終級(jí)的連續(xù)的數(shù)級(jí)部分的擴(kuò)展密鑰的范圍使用,對(duì)于與其內(nèi)側(cè)的連續(xù)的數(shù)級(jí)部分的擴(kuò)展密鑰范圍使用與上述對(duì)應(yīng)的1組中的一方。圖14示出此時(shí)的情況。
當(dāng)然,除了上述例子之外,也可以有各種變形。
但是,至此雖然說明了按可生成擴(kuò)展密鑰的順序用于數(shù)據(jù)攪拌,但如果存儲(chǔ)器等硬件或計(jì)算時(shí)間有一定剩余,則也可以根據(jù)該剩余,更換生成擴(kuò)展密鑰的順序和將擴(kuò)展密鑰用于數(shù)據(jù)攪拌的順序。該順序的更換在圖1和圖2的結(jié)構(gòu)中也是同樣的。該順序的更換對(duì)防攻擊的安全性方面是有效的。
圖15示出更換生成擴(kuò)展密鑰的順序和將擴(kuò)展密鑰用于數(shù)據(jù)攪拌的順序的例子在更換順序時(shí),例如,由于將先生成的擴(kuò)展密鑰在后生成的擴(kuò)展密鑰之后使用,所以暫時(shí)存儲(chǔ)到存儲(chǔ)器即可。如果只更換1個(gè)擴(kuò)展密鑰順序,則只增加暫時(shí)存儲(chǔ)1個(gè)擴(kuò)展密鑰所需的存儲(chǔ)器容量。
為了不增加存儲(chǔ)器,對(duì)子密鑰采用循環(huán)函數(shù)的反函數(shù)并還原所需的子密鑰即可。例如,在使用從第2級(jí)循環(huán)函數(shù)f2的子密鑰kc2得到的擴(kuò)展密鑰k2之后使用從初級(jí)循環(huán)函數(shù)f1的子密鑰kc1得到的擴(kuò)展密鑰k1時(shí),暫時(shí)求出子密鑰kc2之后,通過對(duì)kc2采用第2級(jí)循環(huán)函數(shù)f2的反函數(shù)f2-1并求出子密鑰kc1(這樣得到擴(kuò)展密鑰k1),接著,對(duì)子密鑰kc1采用第2級(jí)循環(huán)函數(shù)f2并求出子密鑰kc2,對(duì)此采用第3級(jí)循環(huán)函數(shù)f3…,可以按使用順序生成擴(kuò)展密鑰。在循環(huán)函數(shù)序列具有循環(huán)行程結(jié)構(gòu)的情況下,由于也同時(shí)具有循環(huán)函數(shù)f2的反函數(shù)f2-1,所以也可以在上述處理利用它。
上述的擴(kuò)展密鑰的選擇和順序的更換是固定的,但也可以變成可變的。
圖16、圖17分別示出了與此時(shí)的圖10、圖11的加密裝置/解密裝置對(duì)應(yīng)的結(jié)構(gòu)例。圖中的7和8是譯碼器,15和16是開關(guān)電路。
此時(shí),預(yù)先準(zhǔn)備多種對(duì)各攪拌處理Rj對(duì)應(yīng)擴(kuò)展密鑰ki的連接模式(參考圖12等),編碼各模式,將它作為擴(kuò)展公用密鑰kc`附加到原來的公用密鑰kc。
在加密時(shí),將擴(kuò)展公用密鑰kc`供給譯碼器7,譯碼器7譯碼擴(kuò)展公用密鑰kc`,對(duì)開關(guān)電路15進(jìn)行開關(guān)控制,以便實(shí)現(xiàn)該擴(kuò)展公用密鑰kc`示出的連接模式(例如,圖12等模式)。
這些工作在解密時(shí)也是同樣的。
上述對(duì)模式進(jìn)行了編碼,但也可以代替它,采用表示不用的擴(kuò)展密鑰級(jí)數(shù)的信息等其它形態(tài)的信息。
這樣的結(jié)構(gòu)也對(duì)攻擊的安全性方面是有效的。
在上述各結(jié)構(gòu)例中,如圖18所示,也可以對(duì)初級(jí)和最終級(jí)插入像偽阿達(dá)碼變換那樣的輔助函數(shù)13。此時(shí),也可以對(duì)初級(jí)輔助函數(shù)和最終級(jí)輔助函數(shù)使用同一擴(kuò)展密鑰(例如初級(jí)擴(kuò)展密鑰)。偽阿達(dá)碼變換例如相當(dāng)于將塊數(shù)據(jù)的左半部分和右半部分算數(shù)相加作為新的左半部分,將新的左半部分和右半部分算數(shù)相加作為新的右半部分的處理。圖18是將輔助函數(shù)插入加密裝置的例子,但在解密裝置也可以同樣插入輔助函數(shù)。
下面,說明加密裝置和解密裝置的擴(kuò)展密鑰生成部的循環(huán)處理部的變形。
圖19示出了311~31n的1個(gè)循環(huán)處理部的結(jié)構(gòu)例。圖19中,101是作為8位非線性變換模塊的S-box,103是基于MDS(Maximum Distance Separable;最大距離分離)行列的32位的攪拌部。該例是作為子密鑰的全部或一部分輸入32×k位數(shù)據(jù),并輸出32×k位擴(kuò)展密鑰,將對(duì)41并行的S-box101連接了攪拌部103作為1個(gè)單位102,并行設(shè)置k個(gè)。
當(dāng)然,如上所述,擴(kuò)展密鑰生成部有各種結(jié)構(gòu)。
但是,不能完全否定由于某種破解而某個(gè)級(jí)(一般最終級(jí))的擴(kuò)展密鑰(的一部分)被公開的可能性。假定如果某個(gè)級(jí)的擴(kuò)展密鑰被公開,則通過進(jìn)行擴(kuò)展密鑰變換部的反變換,可以知道該級(jí)的(對(duì)于循環(huán)函數(shù))的子密鑰,其結(jié)果,知道其它級(jí)的所有子密鑰,結(jié)果,所有擴(kuò)展密鑰可能被公開。
因此,在一部分(例如,包含最終級(jí)的1級(jí)或數(shù)級(jí))的擴(kuò)展密鑰變換部中,也可以使用難以反變換的函數(shù)(例如,冪函數(shù))或不能唯一反變換的函數(shù)(例如,多對(duì)一函數(shù))。這樣,可以使不易破解其他級(jí)的擴(kuò)展密鑰,從而可維持安全性。當(dāng)然,也可以對(duì)全部擴(kuò)展密鑰變換部使用不易反變換的函數(shù)或不能唯一確定反變換的函數(shù)。
也可以對(duì)擴(kuò)展密鑰變換部供給對(duì)應(yīng)級(jí)的子密鑰的所有數(shù)據(jù),但也可以代替只傳遞對(duì)應(yīng)級(jí)的一部分子密鑰,使子密鑰的所有數(shù)據(jù)不公開,由此維持安全性。
被稱為側(cè)通道分析的特殊攻擊對(duì)于用硬件構(gòu)成的加密裝置基于功率、電磁波等、從IC卡等裝置泄漏的信息進(jìn)行密鑰的推測(cè)。特別是在數(shù)據(jù)攪拌部的某個(gè)回路中,有具有同一結(jié)構(gòu)的多個(gè)回路部分,如果這些回路的輸入位串和該回路所用的密鑰位串(擴(kuò)展密鑰本身或擴(kuò)展密鑰的一部分?jǐn)?shù)據(jù))相同,從側(cè)通道信息(例如,消耗電流的變化)的相同性推測(cè)輸入到該回路的位串為相同的。因此,在擴(kuò)展密鑰生成中最好不要生成成為在IC卡等中的問題的使側(cè)通道分析容易的密鑰。
因此,在至少可直接觀測(cè)或估計(jì)處理要素(回路部分)的輸入輸出的一部分的不同的處理要素(回路部分)中,不使用同一擴(kuò)展密鑰的擴(kuò)展密鑰生成方法是有效的。
將擴(kuò)展密鑰變換部或擴(kuò)展密鑰變換部和循環(huán)處理部、或循環(huán)處理部設(shè)計(jì)為所有擴(kuò)展密鑰通常不一致,也可以允許偶爾一致。
也可以將擴(kuò)展密鑰變換部、或擴(kuò)展密鑰變換部和循環(huán)處理部、或循環(huán)處理部設(shè)計(jì)為所有擴(kuò)展密鑰通常不一致,同時(shí)在生成公用密鑰時(shí),檢驗(yàn)所有擴(kuò)展密鑰是否不同,并只在判斷為所有擴(kuò)展密鑰不同時(shí),使用該公用密鑰。
在此,對(duì)于擴(kuò)展密鑰的一致考慮了各種電平。例如,也可以在2個(gè)擴(kuò)展密鑰的所有位相同時(shí)判斷為一致。也可以在2個(gè)擴(kuò)展密鑰的特定字節(jié)位置的數(shù)據(jù)相同時(shí)判斷為一致。也可以在2個(gè)擴(kuò)展密鑰的所有位或2個(gè)擴(kuò)展密鑰的特定字節(jié)位置的數(shù)據(jù)之間有一定關(guān)系時(shí)判斷為一致。除此之外,有各種一致判斷方法。
下面,說明加密裝置和解密裝置的擴(kuò)展密鑰生成部的多個(gè)循環(huán)處理部的變形。
圖20示出循環(huán)處理部的序列結(jié)構(gòu)例。圖20的例子中示出了3級(jí)部分,但各級(jí)的結(jié)構(gòu)為所定級(jí)數(shù)從屬連接。圖20中例示了公用密鑰為128位,各級(jí)的擴(kuò)展密鑰為64位的情況,圖中,105是非線性映射F,107的記號(hào)表示“異”,該105和107是圖1的311~31n的1個(gè)。
非線性映射F也可以在所有級(jí)都相同,也可以根據(jù)級(jí)不同而不同。在后者的情況下,基本上具有相同結(jié)構(gòu),但也可以依賴于根據(jù)級(jí)而不同的常數(shù)。
也可以在加密側(cè)(或解密側(cè))使用圖20和圖20的反函數(shù)中的一個(gè)。
一般,由于即使使用差分破解法或線性破解法強(qiáng)有力的破解法,最終級(jí)擴(kuò)展密鑰中特定最多數(shù)位是有限的,所以認(rèn)為循環(huán)函數(shù)序列在圖20所示的簡(jiǎn)單的Feistel結(jié)構(gòu)下也較安全,但如果因更強(qiáng)有力的破解法的出現(xiàn)而希望有更安全的結(jié)構(gòu),則例如也可以使用圖21所示的循環(huán)函數(shù)序列。
圖21的例子中示出了2級(jí)部分,但各級(jí)的結(jié)構(gòu)是所定級(jí)數(shù)從屬連接。圖21中例示了公用密鑰為128位,各級(jí)的擴(kuò)展密鑰為64位的情況。圖中,109、111和113分別示出了非線性函數(shù)f、g和h,115的標(biāo)號(hào)表示“異”。非線性函數(shù)f、g和h也可以全部相同,也可以全部不同,也可以部分相同。
圖22示出了圖21的非線性函數(shù)f、g和h的結(jié)構(gòu)例。圖22中,119為8位S-box,121為基于MDS行列的32位的攪拌部。
圖21與圖20相比更難以從輸出的128位唯一確定子密鑰。
圖23示出圖21的反函數(shù)。也可以在加密側(cè)(或解密側(cè))使用圖21和圖23中的一個(gè)。
下面,示出適用了本發(fā)明的加密裝置的一個(gè)具體例。
圖24示出本加密裝置的結(jié)構(gòu)例。
該加密裝置是128位(或64位)的塊加密,公用密鑰為256位(或128位)的例子。循環(huán)函數(shù)序列是具有循環(huán)行程結(jié)構(gòu)的例子。在通常的SPN結(jié)構(gòu)的S-box的部分遞歸放入小型SPN結(jié)構(gòu)的包含型SPN結(jié)構(gòu)的例子。
圖24中,數(shù)據(jù)攪拌部202在重復(fù)構(gòu)造循環(huán)函數(shù)(DU)處理部201和循環(huán)函數(shù)(DD)處理部203之后,連接循環(huán)函數(shù)(DU)處理部201、循環(huán)函數(shù)(DD(woMDSHwithout MDSH)205和循環(huán)函數(shù)(EXOR)207。
擴(kuò)展密鑰生成部204中,單元209和單元211對(duì)相當(dāng)于1級(jí)部分的循環(huán)函數(shù)。但是,圖24的例子是在單元209和單元209之間以及單元211和單元211之間不是出現(xiàn)圖1的子密鑰,而是在單元209和單元211的內(nèi)部出現(xiàn)子密鑰的結(jié)構(gòu)。
圖25示出了128位塊加密情況下的圖24的單元201的結(jié)構(gòu)例。圖25中,215是用于密鑰相加的8位“異”,217為8位S-box,219為基于MDS行列的32位的攪拌部,并行設(shè)有4個(gè)單元213。
在64位塊加密的情況下,并行設(shè)有2個(gè)S-box223。
圖26示出了128位塊加密情況下的圖24的單元203的結(jié)構(gòu)例。圖26中,221為用于密鑰相加的8位“異”,223為16個(gè)并行的8位S-box,225為基于MDS行列的128位的攪拌部。
在64位塊加密的情況下,并行設(shè)有8個(gè)S-box223。
圖27示出在128位塊加密的情況下的圖24的單元205的結(jié)構(gòu)例。圖27中,227為用于密鑰相加的8位“異”,229為16個(gè)并行的8位S-box。
在64位的塊加密的情況下,并行設(shè)置8個(gè)229的S-box。
在128位的塊加密的情況下,單元207是對(duì)從單元205輸出的128位塊數(shù)據(jù)相加128位擴(kuò)展密鑰的“異”。
在64位塊加密的情況下,單元207是對(duì)從單元205輸出的64位塊數(shù)據(jù)相加64位擴(kuò)展密鑰的“異”。
圖28示出公用密鑰的位長(zhǎng)度為256位時(shí)的圖24的擴(kuò)展密鑰生成部204的結(jié)構(gòu)例。圖28基于圖3所示的循環(huán)行程結(jié)構(gòu),只示出初級(jí)部分和返回部分。圖中,231是非線性函數(shù)F,233是“異”,235是與根據(jù)級(jí)而不同的常數(shù)const(r)的“異”。以后再說明231、237、239、241、243的單元。
圖29示出公用密鑰的位長(zhǎng)度為128位時(shí)的圖24的擴(kuò)展密鑰生成部204的結(jié)構(gòu)例。圖29也基于圖3所示的循環(huán)行程結(jié)構(gòu),只示出了初級(jí)部分和返回部分。圖中,251為非線性函數(shù)F,253為“異”,255為與根據(jù)級(jí)而不同的常數(shù)const(r)的“異”。以后再說明251、257、259、261、263的單元。
圖30示出圖28的非線性函數(shù)231、圖29的非線性函數(shù)251的結(jié)構(gòu)例。圖中,2311為“異”,2313為S-box。以后再說明2315、2317。
下面,說明表示為圖28的P(32)的單元237、表示為圖29的P(16)的單元257、表示為圖30的P(16)的單元2315,表示為圖30的P(8)的單元2317。圖31示出這些共同的一般結(jié)構(gòu)例。圖中,265為“異”,進(jìn)行4次取某個(gè)i位和另一i位的“異”的操作。用P(i)表現(xiàn)了該結(jié)構(gòu)的是各圖的P(8)、P(16)、P(32)。即,圖28的單元237是在圖31的結(jié)構(gòu)中為i=32,圖29的單元257在圖31的結(jié)構(gòu)中為i=16,圖30的單元2315在圖31的結(jié)構(gòu)中為i=16,圖30的單元2317在圖31的結(jié)構(gòu)中i=8。
圖32示出作為圖31的P(i)的反變換(P(i))-1的結(jié)構(gòu)例。圖中,267是“異”。圖28的單元243在圖31的結(jié)構(gòu)中為i=32,在圖29的單元263在圖31的結(jié)構(gòu)中為i=16。
圖30是在128位的塊加密的情況下,但在64位塊加密的情況,即在圖29的非線性函數(shù)251的情況下,在圖30設(shè)P(8)為P(4),P(16)為P(8)即可。
接著,說明圖28、圖29、圖30中表示為“5”的帶有斜線單元239、259、2313、圖28、圖29中表示為“B”的帶有斜線單元241、261。
圖33示出表示為“5”的單元和表示為“B”的單元的結(jié)構(gòu)例。兩者的不同點(diǎn)是圖33的單元269的函數(shù)內(nèi)容。
圖33的結(jié)構(gòu)是對(duì)輸入乘以伽羅瓦域GF(24)的元5,或乘以B的結(jié)構(gòu)。
即,將成為輸入的32位分為4組8位,匯集8位數(shù)據(jù)的同一位置數(shù)據(jù)(例如,在圖33示出最上位的最下位的例子)的1位,將其設(shè)為1組4位數(shù)據(jù),將8組各4位數(shù)據(jù)的每一個(gè)看做GF(24)的元。還有,對(duì)各4位數(shù)據(jù)由各單元269(根據(jù)伽羅瓦域上的乘法)乘以5或B之后,將各位返回分別對(duì)應(yīng)的原位置。
以上說明了取出相同位置的位并進(jìn)行處理,但也可以取出不同位置的位(排除)進(jìn)行處理。
伽羅瓦域上的乘法也可以利用查表,也可以利用運(yùn)算,也可以利用實(shí)際回路。
圖34A示出元5的圖33的單元269的部分結(jié)構(gòu)例,即GF(24)上的乘法的連線表示(連線模型)。圖34B示出元B的圖33的單元269的部分的結(jié)構(gòu)例,即GF(24)上的乘法的連線表示(連線模型)。如上所述,在結(jié)合部分271進(jìn)行了“異”。即,此時(shí),表示為圖28、圖29的5的單元239、259可以利用圖33和圖34A構(gòu)成。表示為圖29、圖30的B的單元241、261可以利用圖34A和圖34B構(gòu)成。
圖35對(duì)GF(24)的1~F的各個(gè)元示出伽羅瓦域GF(24)上的乘法的連線表示(連線模型)。另外,結(jié)合部分是“異”。
但是,在使數(shù)據(jù)攪拌部的擴(kuò)展密鑰工作的對(duì)象為已知或比較容易可估測(cè)的部分使用的擴(kuò)展密鑰,例如數(shù)據(jù)攪拌部的最初“異”運(yùn)算和,從輸出和密鑰的推測(cè)中可估計(jì)數(shù)據(jù)的最終密鑰加法之前的“異”運(yùn)算部的擴(kuò)展密鑰中,最好防止以不同位置的運(yùn)算元素單位(此例的情況下,單位為8位)擴(kuò)展密鑰通常一致或通常具有一定關(guān)系。
作為一結(jié)構(gòu)例,將擴(kuò)展密鑰生成為(或選擇公用密鑰)上述數(shù)據(jù)攪拌部的最初“異”運(yùn)算所用的擴(kuò)展密鑰與,最終密鑰相加之前的“異”運(yùn)算部的擴(kuò)展密鑰不會(huì)以要素單位(此例的情況下,單位為8位)保持通常一致。這樣,可以防止使側(cè)通道分析容易的擴(kuò)展密鑰的一致或成立一定關(guān)系。
對(duì)應(yīng)于圖24的解密裝置的結(jié)構(gòu)對(duì)于數(shù)據(jù)攪拌部成為圖24的數(shù)據(jù)攪拌部的反函數(shù)。擴(kuò)展密鑰生成部在加密側(cè)和解密側(cè)都具有最終級(jí)的循環(huán)函數(shù)的情況下,成為與圖24的擴(kuò)展密鑰生成部同樣的結(jié)構(gòu)。當(dāng)然,也可以在加密側(cè)和解密側(cè)都不具有最終級(jí)循環(huán)函數(shù)。
一邊參考圖1~圖34A、圖34B,一邊說明的上述實(shí)施例中舉了128位等的特定位長(zhǎng)度,但當(dāng)然也可以適用于任何長(zhǎng)度的塊數(shù)據(jù)。
任何結(jié)構(gòu)的數(shù)據(jù)攪拌部都可以適用。
下面,說明圖24的加密裝置的擴(kuò)展密鑰生成部204的另一結(jié)構(gòu)例。圖36示出公用密鑰的位長(zhǎng)度在256位時(shí)的圖24的加密裝置的擴(kuò)展密鑰生成部204A的結(jié)構(gòu)例。圖36基于圖3所示的循環(huán)行程結(jié)構(gòu),只示出初級(jí)部分和返回部分。圖中,231A是非線性函數(shù)F,233為“異”,235為與根據(jù)級(jí)而不同的常數(shù)const(r)的“異”。以后再說明231A、237A、239A、240A、241A、242A、243A的單元。另外,圖中的0.5L表示第0.5級(jí)的左半部分,0.5R表示第0.5級(jí)的右半部分。同樣,1.0L表示第1.0級(jí)的左半部分,1.OR表示第1.0級(jí)的右半部分。這樣,區(qū)分輸入成為Hierocrypt的輸入的放大S-box的初級(jí)的密鑰是否是下一級(jí)的輸入密鑰。
圖37示出圖36的非線性函數(shù)231A的結(jié)構(gòu)例。圖中,2311為“異”,2313為S-box,2315為P(16)。
圖38A、圖38B是圖36的表示為P(32)的單元237A、表示為(P(32))-1的單元243A的具體結(jié)構(gòu)。進(jìn)行4次取某32位和另一32位的“異”的操作。
圖36的表示為“5”“E”“B”“3”帶有斜線單元239A、240A、241A、242A是對(duì)輸入乘以伽羅瓦域GF(24)的元5、E、B、3,具有圖35所示的連線表示(連線模型)。
表1示出輸入到各級(jí)的“異”235的根據(jù)級(jí)而不同的常數(shù)const(r)。表2、表3示出供給初級(jí)的密鑰的位數(shù)為192位、128位的情況。密鑰級(jí)數(shù)表示從原密鑰看在利用第幾個(gè)密鑰級(jí)函數(shù)。另外,在密鑰的位數(shù)為192位,128位的情況下,為了對(duì)初級(jí)使位數(shù)擴(kuò)展到256位而進(jìn)行填充。圖39A示出使192位擴(kuò)展到256位的填充級(jí)的結(jié)構(gòu),圖39B示出使128位擴(kuò)展到256位的填充級(jí)的結(jié)構(gòu)。圖40示出虛擬級(jí)的密鑰生成部。表4示出常數(shù)G(0)~G(5)。
表125位(8R)
表2192位(7R)
從而判明,最好把前透鏡10的初始表面電阻值設(shè)定在1×1013Ω/□以下。
然而,要使前透鏡10的初始表面電阻值達(dá)到1×1013Ω/□以下,那么讓聚碳酸酯樹脂含多少表面活性劑才合適呢?專心研究后得知大約是2(重量)%。
也就是說,使聚碳酸酯樹脂含有2(重量)%的表面活性劑,即能可靠地防止前透鏡10發(fā)生樹枝狀條痕。
采用本發(fā)明的車輛用燈具能有效而可靠地防止前透鏡發(fā)生樹枝狀條痕,因而能夠消除車輛用燈具的外觀劣跡。
具體地說,在燈室內(nèi)是按規(guī)定的間隔(5mm以下)配置前透鏡和附加反射鏡的,所以前透鏡因其與附加反射鏡的放電而容易帶電,而本發(fā)明對(duì)于這種結(jié)構(gòu)的車輛用燈具,不管附加反射鏡的配置結(jié)構(gòu)也能有效而可靠地防止前透鏡發(fā)生樹枝狀條痕。
使前透鏡的基體材料本身帶有抗帶靜電功能的車輛用燈具,比起抗帶靜電的鍍覆方法來更能簡(jiǎn)化制造工序,能夠可靠地防止基體材料在成形脫模時(shí)帶電。而且,削減了抗帶靜電鍍覆處理的加工費(fèi),還降低了材料成本,因而有助于降低產(chǎn)品成本。
表5128位(6R)
下面,說明圖24的加密裝置的擴(kuò)展密鑰生成部204的又另一結(jié)構(gòu)例。圖41示出公用密鑰的位長(zhǎng)度為128位時(shí)的圖24的加密裝置的擴(kuò)展密鑰生成部204B的結(jié)構(gòu)例。圖41也基于圖3所示的循環(huán)行程結(jié)構(gòu),只示出初級(jí)部分和返回部分。圖中,231B為非線性函數(shù)F,233為“異”,235為與根據(jù)級(jí)而不同的常數(shù)const(r)的“異”。以后再說明231B、237B、239B、240B、241B、242B、243B單元。
圖42示出圖341的非線性函數(shù)231B的結(jié)構(gòu)例。圖中,2311為“異”,2313為S-box,2315B為P(8)。
圖43A、圖43B是圖41的表示為P(16)的單元237B、表示為(P(16))-1的單元243B的具體結(jié)構(gòu)。進(jìn)行4次取某個(gè)16位和其他16位的“異”的操作。
圖41的表示為“5”“B”的帶有斜線的單元是對(duì)輸入乘以伽羅瓦域GF(24)的5、B元,具有圖35所示的連線表示(連線模型)。
表5示出輸入到各級(jí)的“異”235的根據(jù)級(jí)而不同的常數(shù)const(r)。圖44示出虛擬級(jí)的密鑰生成部。常數(shù)H_0~H_4示于表4。
下面,說明本實(shí)施例的硬件結(jié)構(gòu)、軟件結(jié)構(gòu)。
本實(shí)施例的加密裝置和解密裝置用軟件或硬件都可以實(shí)現(xiàn)。
在用軟件實(shí)現(xiàn)的情況下,本實(shí)施例是記錄了實(shí)現(xiàn)加密裝置和解密裝置的程序,用于對(duì)計(jì)算機(jī)執(zhí)行所定手段的(或使計(jì)算機(jī)作為所定手段工作的,或用于使計(jì)算機(jī)實(shí)現(xiàn)所定功能的)程序的計(jì)算機(jī)可讀取的記錄媒體。
在構(gòu)成為硬件的情況下,可以形成為半導(dǎo)體裝置。
在構(gòu)成適用了本發(fā)明的加密裝置和解密裝置的情況下,或生成加密程序或解密程序的情況下,也可以分別生成所有塊或模塊,但也可以只準(zhǔn)備1個(gè)或適當(dāng)數(shù)量的具有同一結(jié)構(gòu)的塊或模塊,并將其在算法的各部分中共用(循環(huán)使用)。
在軟件的情況下,也可以利用多重處理而進(jìn)行并行處理,使處理高速化。
也可以構(gòu)成具有加密功能而不具有解密功能的裝置,也可以構(gòu)成具有解密功能而不具有加密功能的裝置,也可以構(gòu)成具有加密功能和解密功能雙方的裝置。同樣,也可以構(gòu)成具有加密功能而不具有解密功能的程序,也可以構(gòu)成具有解密功能而不具有加密功能的程序,也可以構(gòu)成具有加密功能和解密功能雙方的程序。
下面,說明對(duì)本實(shí)施例的系統(tǒng)的應(yīng)用。
本實(shí)施例的加密方式基本上可適用于任何系統(tǒng)。
例如,如圖45所示,在發(fā)送側(cè)裝置301和接收側(cè)裝置303之間利用所定方法或程序安全共有密鑰,發(fā)送側(cè)裝置301是將發(fā)送數(shù)據(jù)按塊長(zhǎng)度以本實(shí)施例的加密方式進(jìn)行加密,按照所定協(xié)議,經(jīng)通信網(wǎng)絡(luò)302,將密文發(fā)送給接收側(cè)裝置303,接收到密文的接收側(cè)裝置303將接收到的密文按塊長(zhǎng)度以本實(shí)施例的加密方式進(jìn)行解密,從而可以得到原來的明文。各裝置如果具有加密功能和解密功能雙方,則可以在雙方向進(jìn)行加密通信。
例如,如圖46所示,計(jì)算機(jī)311用所定方法生成密鑰,將要保存的數(shù)據(jù)按塊長(zhǎng)度以本實(shí)施例的加密方式進(jìn)行加密,經(jīng)所定網(wǎng)絡(luò)(例如,LAN、因特網(wǎng)等)314,作為加密數(shù)據(jù)保存到數(shù)據(jù)服務(wù)器313。計(jì)算機(jī)311在希望讀取該數(shù)據(jù)時(shí),從數(shù)據(jù)服務(wù)器313讀入所要的加密數(shù)據(jù),將其按塊長(zhǎng)度以本實(shí)施例的加密方式進(jìn)行加密,從而可以得到原來的明文。其他計(jì)算機(jī)312如果知道該密鑰,則可以同樣解密得到原來的明文,但不知道密鑰的其他計(jì)算機(jī)不能解密該加密數(shù)據(jù),從而可以進(jìn)行信息的安全控制。
例如,如圖47所示,在內(nèi)容提供側(cè)利用加密裝置321將某個(gè)內(nèi)容用某個(gè)密鑰,按塊長(zhǎng)度以本實(shí)施例的加密方式加密,將其作為加密內(nèi)容記錄到記錄媒體322,并分發(fā)等。取得記錄媒體322的用戶側(cè)通過用所定方法輸入某個(gè)密鑰,利用解密裝置323將該內(nèi)容按塊長(zhǎng)度以本實(shí)施例的加密方式進(jìn)行解密,并可以進(jìn)行內(nèi)容的閱覽或再生等。
當(dāng)然,除上述之外,還可以適用各種系統(tǒng)。
本實(shí)施例是在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式的加密裝置或解密裝置,具有對(duì)于多級(jí)循環(huán)函數(shù),在初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成子密鑰,在第2級(jí)以后,將在前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù),并生成新的子密鑰的循環(huán)處理部和,對(duì)上述循環(huán)處理部的全部或其一部分級(jí)生成的上述在密鑰的每一個(gè),將其全部或一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后,作為上述擴(kuò)展密鑰輸出的輸出部,上述循環(huán)處理部是從屬連接了多個(gè)循環(huán)函數(shù)的循環(huán)函數(shù)序列,將上述公用密鑰輸入到該初級(jí)的情況下,在設(shè)定為該最終級(jí)生成與該公用密鑰同一值的循環(huán)函數(shù)序列的所有級(jí)或其中一部分,將從初級(jí)連接的多級(jí)的循環(huán)函數(shù)根據(jù)該循環(huán)函數(shù)序列的級(jí)順序?qū)嵤?br>
也可以將上述循環(huán)函數(shù)序列設(shè)定為使與初級(jí)的級(jí)數(shù)和與最終級(jí)的級(jí)數(shù)一致的2個(gè)循環(huán)函數(shù)互為反函數(shù)。
上述循環(huán)函數(shù)序列也可以是至少包含對(duì)于連接第1特定級(jí)和第2特定級(jí)之間的多級(jí),設(shè)定為使與該第1特定級(jí)的級(jí)數(shù)和與該第2特定級(jí)的級(jí)數(shù)一致的2個(gè)循環(huán)函數(shù)互為反函數(shù)的部分序列。
上述循環(huán)函數(shù)序列也可以是至少包含對(duì)于連接到從第1特定級(jí)向級(jí)數(shù)增加方向隔特定級(jí)數(shù)的級(jí)的范圍和連接到從第2特定級(jí)向級(jí)數(shù)減少方向隔有特定級(jí)數(shù)的級(jí)的范圍,設(shè)定為使與該第1特定級(jí)的級(jí)數(shù)和與該第2特定級(jí)的級(jí)數(shù)一致的2個(gè)循環(huán)函數(shù)互為反函數(shù)的部分序列。
上述輸出部在為了輸出上述擴(kuò)展密鑰而使用上述子密鑰時(shí),對(duì)于該子密鑰,也可以只使用不能唯一確定從該所有位中選擇的該子密鑰的部分。
屬于上述循環(huán)函數(shù)序列的循環(huán)函數(shù)之中,也可以至少將對(duì)應(yīng)于屬于連接到該初級(jí)或從初級(jí)向增加方向隔了所定級(jí)數(shù)的級(jí)的范圍,以及或連接到最終級(jí)或從最終級(jí)向級(jí)數(shù)減少方向隔了所定級(jí)數(shù)的級(jí)的范圍的循環(huán)函數(shù)的子密鑰不作為上述擴(kuò)展密鑰或成為其原始的數(shù)據(jù)使用。
屬于上述循環(huán)函數(shù)序列的循環(huán)函數(shù)之中,也可以至少將對(duì)應(yīng)于與其初級(jí)的級(jí)數(shù)和與最終級(jí)的級(jí)數(shù)一致的2個(gè)循環(huán)函數(shù)的子密鑰的某一方或雙方不作為上述擴(kuò)展密鑰或成為其原始的數(shù)據(jù)使用。
屬于上述循環(huán)函數(shù)序列的循環(huán)函數(shù)之中,也可以至少將對(duì)應(yīng)于屬于連接到該初級(jí)或與初級(jí)向級(jí)數(shù)增加方向隔有所定級(jí)數(shù)的級(jí)的范圍,以及或連接到最終級(jí)或從最終級(jí)向級(jí)數(shù)減少方向隔有所定級(jí)數(shù)的范圍的循環(huán)函數(shù)的子密鑰中,與初級(jí)的級(jí)數(shù)和與最終級(jí)的級(jí)數(shù)一致的2個(gè)循環(huán)函數(shù)的某一方或雙方的子密鑰不作為上述擴(kuò)展密鑰或成為其原始的數(shù)據(jù)使用。
也可以使多個(gè)上述擴(kuò)展密鑰中的任意密鑰通常不一致。
也可以使多個(gè)上述擴(kuò)展密鑰中的任意密鑰對(duì)于擴(kuò)展密鑰的所有位中的任意位組通常不一致。
上述循環(huán)處理部以及上述輸出部可以將超過上述數(shù)據(jù)攪拌處理所需的擴(kuò)展密鑰數(shù)的個(gè)數(shù)的擴(kuò)展密鑰提供給該數(shù)據(jù)攪拌處理,將表示上述可提供的擴(kuò)展密鑰中實(shí)際上應(yīng)提供給上述數(shù)據(jù)攪拌處理的擴(kuò)展密鑰的信息,或表示應(yīng)提供給上述數(shù)據(jù)攪拌處理的擴(kuò)展密鑰以及其提供的順序的信息作為擴(kuò)展公用密鑰,上述輸出部根據(jù)上述擴(kuò)展公用密鑰輸出上述擴(kuò)展密鑰。
本實(shí)施例是用于加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反的順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式的加密裝置或解密裝置的擴(kuò)展密鑰生成裝置,具有對(duì)于多級(jí)的循環(huán)函數(shù),在初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成子密鑰,在第2級(jí)以后,將前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù),并生成新的子密鑰的循環(huán)處理部,和,對(duì)于上述循環(huán)處理部的全部或一部分級(jí)生成的上述各子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為上述擴(kuò)展密鑰輸出的輸出部,上述循環(huán)處理部是從屬連接了多個(gè)循環(huán)函數(shù)的循環(huán)函數(shù)序列,在設(shè)定為將上述公用密鑰輸入到其初級(jí)時(shí)該最終級(jí)生成與該公用密鑰同一值的循環(huán)函數(shù)序列的所有級(jí)或其一部分,將從初級(jí)連接的多級(jí)的循環(huán)函數(shù)根據(jù)該循環(huán)函數(shù)序列的級(jí)順序?qū)嵤?br>
根據(jù)本實(shí)施例,通過將用于生成擴(kuò)展密鑰的循環(huán)函數(shù)序列設(shè)定為輸入公用密鑰,輸出與公用密鑰相同值,在加密時(shí)和解密時(shí)雙方不像現(xiàn)有那樣耗費(fèi)無用的時(shí)延和存儲(chǔ)容量,可以從公用密鑰隨時(shí)生成擴(kuò)展密鑰。
本實(shí)施例示出的各結(jié)構(gòu)是一例,不排除其他結(jié)構(gòu),而是可以通過用其他部分置換例示結(jié)構(gòu)的一部分,或去掉例示結(jié)構(gòu)的一部分,或?qū)镜慕Y(jié)構(gòu)附加其他功能,或?qū)⑵浣M合等而得到的其他結(jié)構(gòu)。也可以是與例示的結(jié)構(gòu)在邏輯上相等的其他結(jié)構(gòu),含有與例示的結(jié)構(gòu)在邏輯上相等的部分的其他結(jié)構(gòu),與例示的結(jié)構(gòu)的主要部分在邏輯上相等的其他結(jié)構(gòu)等。也可以是與例示的結(jié)構(gòu)相同或達(dá)到類似目的的其他結(jié)構(gòu),與例示的結(jié)構(gòu)相同或具有類似效果的其他結(jié)構(gòu)等。
本發(fā)明不限于上述實(shí)施例,可在該技術(shù)范圍內(nèi)實(shí)施各種變形。例如,可以適當(dāng)組合并實(shí)施各種結(jié)構(gòu)部分的各種變形。本發(fā)明是內(nèi)在包含作為加密裝置的發(fā)明,作為解密裝置的發(fā)明,作為系統(tǒng)整體的發(fā)明,作為對(duì)個(gè)別裝置內(nèi)部的結(jié)構(gòu)部分的發(fā)明,或作為對(duì)應(yīng)這些的方法的發(fā)明,記錄了用于使計(jì)算機(jī)執(zhí)行所定功能的、使計(jì)算機(jī)作為所定手段工作的、或使計(jì)算機(jī)實(shí)現(xiàn)所定功能的程序的計(jì)算機(jī)可讀取的記錄媒體等各種觀點(diǎn)、層次、概念或種類的發(fā)明。
權(quán)利要求
1.一種加密裝置,用于在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式,其特征在于具有多級(jí)循環(huán)處理部(311~3n+1),在初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)而生成子密鑰,在第2級(jí)之后,將前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;多個(gè)擴(kuò)展密鑰處理部(331~33n),對(duì)于在上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為擴(kuò)展密鑰輸出。
2.如權(quán)利要求1所述的加密裝置,其特征在于第i級(jí)循環(huán)處理部的循環(huán)函數(shù)是第(j-i+1)級(jí)的循環(huán)處理部的循環(huán)函數(shù)的反函數(shù)(i=1~j、j為總級(jí)數(shù)的1/2)。
3.如權(quán)利要求1所述的加密裝置,其特征在于第L+i級(jí)循環(huán)處理部的循環(huán)函數(shù)是第(H-i)級(jí)的循環(huán)處理部的循環(huán)函數(shù)的反函數(shù)(i=0~j、j為(H-L)/2的正整數(shù))。
4.如權(quán)利要求1所述的加密裝置,其特征在于第L+i級(jí)循環(huán)處理部的循環(huán)函數(shù)是第(H-i)級(jí)的循環(huán)處理部的循環(huán)函數(shù)的反函數(shù)(i=0~j、j為(H-L)/2以下的正整數(shù))。
5.如權(quán)利要求1所述的加密裝置,其特征在于將上述循環(huán)函數(shù)序列設(shè)定為不包含第L+i級(jí)循環(huán)處理部的循環(huán)函數(shù)是第(H-i)級(jí)的循環(huán)處理部的循環(huán)函數(shù)的反函數(shù)(i=0~j、j為(H-L)/2的正整數(shù)或2以下的正整數(shù))的部分序列。
6.如權(quán)利要求1所述的加密裝置,其特征在于上述擴(kuò)展密鑰處理部將從上述多級(jí)循環(huán)處理部輸出的多個(gè)子密鑰任意選擇的子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為擴(kuò)展密鑰輸出。
7.如權(quán)利要求6所述的加密裝置,其特征在于上述擴(kuò)展密鑰處理部選擇含有初級(jí)的所定級(jí)數(shù)的循環(huán)處理部,和,含有最終級(jí)的所定級(jí)數(shù)的循環(huán)處理部以外的循環(huán)處理部輸出的多個(gè)子密鑰。
8.如權(quán)利要求6所述的加密裝置,其特征在于上述擴(kuò)展密鑰處理部不選擇從離初級(jí)的級(jí)數(shù)和離最終級(jí)的級(jí)數(shù)相等的2個(gè)循環(huán)處理部的一方輸出的子密鑰。
9.如權(quán)利要求1所述的加密裝置,其特征在于上述擴(kuò)展密鑰處理部通過將上述多級(jí)的循環(huán)處理部輸出的多個(gè)子密鑰更換順序,將其所有位或其一部分原封不動(dòng)或?qū)ζ溥M(jìn)行所定變換處理之后作為擴(kuò)展密鑰輸出,子密鑰的生成順序和擴(kuò)展密鑰的生成順序不同。
10.如權(quán)利要求1所述的加密裝置,其特征在于上述循環(huán)處理部以及上述擴(kuò)展密鑰處理部可以生成超過上述數(shù)據(jù)攪拌處理所需的擴(kuò)展密鑰個(gè)數(shù)的擴(kuò)展密鑰,上述擴(kuò)展密鑰處理部以及上述擴(kuò)展密鑰處理部將表示上述可生成的擴(kuò)展密鑰中實(shí)際上應(yīng)提供給上述數(shù)據(jù)攪拌處理的擴(kuò)展密鑰的信息作為擴(kuò)展公用密鑰輸出擴(kuò)展密鑰。
11.一種解密裝置,用于在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式,其特征在于具有多級(jí)循環(huán)處理部(421~42n+1),在初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)而生成子密鑰,在第2級(jí)之后,將前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;多個(gè)擴(kuò)展密鑰處理部(441~4n),對(duì)于在上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為擴(kuò)展密鑰輸出。
12.一種用于在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式中的加密裝置或解密裝置的擴(kuò)展密鑰生成裝置,其特征在于具有多級(jí)循環(huán)處理部(311~31n+1、421~42n+1),在初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)而生成子密鑰,在第2級(jí)之后,將前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;多個(gè)擴(kuò)展密鑰處理部(331-33n、441~4n),對(duì)于在上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為擴(kuò)展密鑰輸出。
13.一種用于在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式中的加密裝置的擴(kuò)展密鑰生成方法,其特征在于具有在多級(jí)循環(huán)處理部的初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)而生成子密鑰,在第2級(jí)之后,將前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;對(duì)于在上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為擴(kuò)展密鑰輸出。
14.一種用于在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式中的解密裝置的擴(kuò)展密鑰生成方法,其特征在于具有在多級(jí)循環(huán)處理部的初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)而生成子密鑰,在第2級(jí)之后,將前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;對(duì)于在上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為擴(kuò)展密鑰輸出。
15.一種存儲(chǔ)了用于在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式中的加密裝置的擴(kuò)展密鑰生成程序的計(jì)算機(jī)可讀取的記錄媒體,其特征在于具有在多級(jí)循環(huán)處理部的初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)而生成子密鑰,在第2級(jí)之后,將前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰的程序代碼單元,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;對(duì)于在上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為擴(kuò)展密鑰輸出的程序代碼單元。
16.一種存儲(chǔ)了用于在加密時(shí)的數(shù)據(jù)攪拌處理和解密時(shí)的數(shù)據(jù)攪拌處理按相反順序使用多個(gè)擴(kuò)展密鑰的公用密鑰加密方式中的解密裝置的擴(kuò)展密鑰生成程序的計(jì)算機(jī)可讀取的記錄媒體,其特征在于具有在多級(jí)循環(huán)處理部的初級(jí)將公用密鑰作為輸入實(shí)施所定循環(huán)函數(shù)而生成子密鑰,在第2級(jí)之后,將前一級(jí)生成的子密鑰作為輸入實(shí)施所定循環(huán)函數(shù)并生成新的子密鑰的程序代碼單元,在此,最終級(jí)的輸出與輸入到初級(jí)的公用密鑰相等;對(duì)于在上述多級(jí)循環(huán)處理部的至少一部分生成的上述子密鑰,將該子密鑰的所有位或其一部分原封不動(dòng)或?qū)ζ鋵?shí)施所定變換處理之后作為擴(kuò)展密鑰輸出的程序代碼單元。
全文摘要
本發(fā)明提供一種加密、解密裝置及擴(kuò)展密鑰生成裝置、方法以及記錄媒體。在加密時(shí)和解密時(shí)按相反順序使用擴(kuò)展密鑰的公用密鑰加密方式的加密裝置的擴(kuò)展密鑰生成部中,將與初級(jí)的級(jí)數(shù)和與最終級(jí)的級(jí)數(shù)相等的2個(gè)循環(huán)函數(shù)f
文檔編號(hào)H04L9/06GK1349182SQ0114315
公開日2002年5月15日 申請(qǐng)日期2001年7月12日 優(yōu)先權(quán)日2000年7月12日
發(fā)明者村谷博文, 本山雅彥, 大熊建司, 佐野文彥, 川村信一 申請(qǐng)人:株式會(huì)社東芝