專利名稱:密碼處理裝置、集成電路卡及密碼處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼處理裝置,特別是關(guān)于使用在IC(integrated circuit,集成電路)卡等的小型密碼處理裝置。
作為本發(fā)明的現(xiàn)有技術(shù),則以利用秘密鍵(公開鍵)系統(tǒng)之區(qū)塊密碼的美國商用密碼DES(data encryption standard)來做說明。
DES的詳細(xì)處理內(nèi)容,則記載于Hans Eberl的“A High-speed DESimplementation for Network Application”,Advances in Cryptology-CRYPTO’92,Lecture notes in Computer Science 740、Springer-Verlag。
圖18是DES密碼運(yùn)算法的流程圖。
在圖18中,1001~1004是進(jìn)行數(shù)據(jù)變換處理的函數(shù)F運(yùn)算,1011~1014是每個位元的“異-或”邏輯運(yùn)算。另外,初期轉(zhuǎn)置和結(jié)束轉(zhuǎn)置則省略。
接著說明其動作。
2n個位元(DES的情況是2×32位元)的輸入數(shù)據(jù)1050被分割成兩個n位元的數(shù)據(jù)1051和1052。n位元數(shù)據(jù)1051以原來形態(tài)輸出做為n位元數(shù)據(jù)1053,并且輸入到函數(shù)F1001,進(jìn)行數(shù)據(jù)的轉(zhuǎn)換。由函數(shù)F1011所輸出的數(shù)據(jù),則是藉由“異-或”邏輯運(yùn)算,輸出n位元數(shù)據(jù)1054。
與上述者相同,反覆地進(jìn)行函數(shù)F1002、1003、1004和“異-或”邏輯運(yùn)算1012、1013、1014的運(yùn)算處理,輸出數(shù)據(jù)1055、1056。再將這兩個n位元數(shù)據(jù)合成后,輸出作為2n位元數(shù)據(jù)1057。
圖19則是實(shí)現(xiàn)等效于圖18所示DES密碼流程圖的數(shù)據(jù)變換處理的密碼處理裝置之一例。
在圖19中,1101和1102是保存數(shù)據(jù)的暫存器A和暫存器B,1103和1104是選擇數(shù)據(jù)的選擇器A和選擇器B,1105是用來進(jìn)行函數(shù)F的數(shù)據(jù)變換運(yùn)算的函數(shù)F運(yùn)算電路,1106是“異-或”邏輯電路,1201和1202是n位元輸入數(shù)據(jù)A、B,1203和1204是n位元輸出數(shù)據(jù)A和B。
接著說明其動作。
2n個位元(DES的情況是2×32位元)的輸入數(shù)據(jù),被分割成各為n個位元的兩個輸入數(shù)據(jù)A1201和輸入數(shù)據(jù)B1202。這兩個輸入數(shù)據(jù)分別利用選擇器A1103和選擇器B1104加以選擇,并且保存在暫存器A1101和暫存器B1102中。接著,保存在暫存器A1101的數(shù)據(jù)被反饋到選擇器A1103和選擇器B1104,同時在輸入到函數(shù)F運(yùn)算電路1105并且進(jìn)行數(shù)據(jù)變換之后,與保存在暫存器B1102的數(shù)據(jù),由“異-或”邏輯電路1106中進(jìn)行“異-或”邏輯運(yùn)算。其結(jié)果則反饋到選擇器A1103和選擇器B1104。
接著,在選擇器A1103中選擇出“異-或”邏輯電路1106的結(jié)果,并且在選擇器B中選擇出保存在暫存器A1101的數(shù)據(jù),分別更新和儲存在暫存器A1101和暫存器B1102中。同樣地,接著,根據(jù)所需要的次數(shù),反覆進(jìn)行圖18中從函數(shù)F1002、1003、1004到“異-或”邏輯運(yùn)算1012、1013、1014,送出輸出數(shù)據(jù)A1203和輸出數(shù)據(jù)B1204。此在DES的情況中為16次。
另外,此現(xiàn)有技術(shù)的詳細(xì)內(nèi)容,則記載于Hans Eberl“A High-speed DES implementation for Network Application”,Advances inCryptology-CRYPTO’92,Lecture notes in Computer Science 740、Springer-Verlag。
上述形式的密碼處理裝置中,當(dāng)利用相同結(jié)構(gòu)的函數(shù)F進(jìn)行反覆處理時,能夠利用單一電路反覆執(zhí)行的方式,有效率地實(shí)現(xiàn)處理電路。因此,可以降低電路的規(guī)模,也可以減輕電力的消耗。然而,當(dāng)函數(shù)F的內(nèi)部具有較小處理要素的反覆結(jié)構(gòu)時,這樣的密碼處理裝置結(jié)構(gòu),也會有無法降低電路規(guī)模或者是伴隨其減輕電力的消耗問題。
本發(fā)明的目的,便是為了解決上述的問題,而提出一種密碼處理裝置,當(dāng)其包含相同結(jié)構(gòu)的函數(shù)F具有反覆處理結(jié)構(gòu),并且函數(shù)F的內(nèi)部具有較小處理要素的反覆結(jié)構(gòu)時,能夠有效地構(gòu)成密碼處理裝置,并且能夠降低電路規(guī)模和減輕電力消耗。
本發(fā)明的密碼處理裝置,利用第一運(yùn)算電路對于輸入數(shù)據(jù)進(jìn)行多次的第一數(shù)據(jù)變換處理,其特征在于上述第一運(yùn)算電路更具有環(huán)路處理電路,用以進(jìn)行多次第二數(shù)據(jù)變換處理;上述環(huán)路處理電路系以第二運(yùn)算電路、數(shù)據(jù)保存電路和選擇電路構(gòu)成處理環(huán)路;上述第二運(yùn)算電路進(jìn)行上述第二數(shù)據(jù)變換處理;上述數(shù)據(jù)保存電路用以暫時保存上述第二數(shù)據(jù)變換處理后的數(shù)據(jù);以及上述選擇電路用以選擇終止或是繼續(xù)上述環(huán)路處理電路中的第二數(shù)據(jù)變換處理。
上述的第二運(yùn)算電路包括數(shù)據(jù)分割電路,用以將輸入至上述第二運(yùn)算電路的數(shù)據(jù),分割為第一分割數(shù)據(jù)和第二分割數(shù)據(jù);第三運(yùn)算電路,用以對上述第一分割數(shù)據(jù)進(jìn)行數(shù)據(jù)變換;“異-或”邏輯電路,用以對上述第三運(yùn)算電路的輸出數(shù)據(jù)和上述第二分割數(shù)據(jù),依每個位元進(jìn)行“異-或”邏輯運(yùn)算;以及數(shù)據(jù)結(jié)合電路,用以結(jié)合上述“異-或”邏輯電路的輸出數(shù)據(jù)和上述第二分割數(shù)據(jù)。
上述選擇電路輸入第一運(yùn)算電路中進(jìn)行第一數(shù)據(jù)變換處理的數(shù)據(jù)以及保存在數(shù)據(jù)保存電路中的數(shù)據(jù),在上述環(huán)路處理電路繼續(xù)進(jìn)行處理的場合中,選擇該數(shù)據(jù)保存電路所保存的數(shù)據(jù)。
上述選擇電路在開始上述環(huán)路處理電路中的處理的場合中,選擇由第一運(yùn)算電路進(jìn)行第一數(shù)據(jù)變換處理的數(shù)據(jù)。
上述密碼處理裝置還包括暫存器A和暫存器B,用以交互保存由第一運(yùn)算電路進(jìn)行的第一數(shù)據(jù)變換處理的數(shù)據(jù);兩個“異-或”邏輯電路,分別對于第一運(yùn)算電路所進(jìn)行的第一數(shù)據(jù)變換處理的數(shù)據(jù),以及保存在暫存器A和暫存器B的數(shù)據(jù),依每個位元進(jìn)行“異-或”邏輯運(yùn)算;以及選擇器A和選擇器B,用以選擇第一運(yùn)算電路所進(jìn)行的第一數(shù)據(jù)變換處理的數(shù)據(jù)和“異-或”邏輯電路所進(jìn)行的“異-或”邏輯運(yùn)算的數(shù)據(jù)中之一,保存在暫存器A和暫存器B;上述選擇電路是交互選擇暫存器A和暫存器B,開始進(jìn)行上述環(huán)路處理電路中的處理。
上述第一運(yùn)算電路對于利用處理環(huán)路部所進(jìn)行的第二數(shù)據(jù)變換處理的數(shù)據(jù),更進(jìn)行輸出與第二數(shù)據(jù)變換處理不同的數(shù)據(jù)變換。
上述第二運(yùn)算電路包括m(m≥1)個函數(shù)運(yùn)算電路,用以從選擇電路輸入相同數(shù)據(jù);以及選擇器,具有m輸入和一輸出,用以從輸入的m個函數(shù)運(yùn)算電路所運(yùn)算的數(shù)據(jù)中選擇其一。
上述密碼處理裝置包括函數(shù)運(yùn)算部,對于從上述選擇電路所輸出的數(shù)據(jù),進(jìn)行數(shù)據(jù)變換;以及選擇器,其接收上述函數(shù)運(yùn)算部所運(yùn)算的數(shù)據(jù)以及從選擇電路所輸出的數(shù)據(jù),并且輸出其中一方的數(shù)據(jù)。
本發(fā)明的密碼處理方法,利用第一運(yùn)算步驟對于輸入數(shù)據(jù)進(jìn)行多次的第一數(shù)據(jù)變換處理,其特征在于上述第一運(yùn)算步驟更具有環(huán)路處理步驟,用以進(jìn)行多次第二數(shù)據(jù)變換處理;
上述環(huán)路處理步驟包括第二運(yùn)算步驟,用以進(jìn)行上述第二數(shù)據(jù)變換處理;數(shù)據(jù)保存步驟,用以暫時保存經(jīng)進(jìn)行過上述第二數(shù)據(jù)變換處理的數(shù)據(jù);以及選擇步驟,用以選擇終止或是繼續(xù)上述環(huán)路處理電路中的第二數(shù)據(jù)變換處理。
上述第二運(yùn)算步驟包括數(shù)據(jù)分割步驟,用以將在上述第二運(yùn)算步驟所輸入的數(shù)據(jù),分割為第一分割數(shù)據(jù)和第二分割數(shù)據(jù);第三運(yùn)算步驟,用以對上述第一分割數(shù)據(jù)進(jìn)行數(shù)據(jù)變換;“異-或”邏輯步驟,用以對上述第三運(yùn)算步驟的輸出數(shù)據(jù)和上述第二分割數(shù)據(jù),依每個位元進(jìn)行“異-或”邏輯運(yùn)算;以及數(shù)據(jù)結(jié)合步驟,用以結(jié)合上述“異-或”邏輯步驟的輸出數(shù)據(jù)和上述第二分割數(shù)據(jù)。
本發(fā)明的IC卡,用以進(jìn)行與讀寫器間的數(shù)據(jù)通信,其包括數(shù)據(jù)接收電路,用以從上述讀寫器接收上述數(shù)據(jù);數(shù)據(jù)發(fā)送電路,用以發(fā)送上述數(shù)據(jù)至上述讀寫器;以及如前所述的密碼處理裝置,用以對上述數(shù)據(jù)進(jìn)行密碼處理。
本發(fā)明的IC卡,用以進(jìn)行與讀寫器間的數(shù)據(jù)通信,其包括數(shù)據(jù)接收電路,用以從上述讀寫器接收上述數(shù)據(jù)數(shù)據(jù)發(fā)送電路,用以發(fā)送上述數(shù)據(jù)至上述讀寫器;以及如前所述的密碼處理裝置,用以對上述數(shù)據(jù)進(jìn)行密碼處理。
附圖簡單說明圖1是本發(fā)明第一實(shí)施例中加密運(yùn)算法的示意圖。
圖2是本發(fā)明第一實(shí)施例中,在加密運(yùn)算法中所使用的函數(shù)的結(jié)構(gòu)示意圖。
圖3是表示本發(fā)明第一實(shí)施例中密碼處理裝置的基本結(jié)構(gòu)方塊圖。
圖4是表示本發(fā)明第一實(shí)施例中密碼處理裝置的基本動作一例的流程圖。
圖5是表示本發(fā)明第一實(shí)施中密碼處理裝置的基本動作一例的流程圖。
圖6是本發(fā)明第一實(shí)施例中,在加密運(yùn)算法中所使用的函數(shù)的結(jié)構(gòu)示意圖。
圖7是本發(fā)明第一實(shí)施例中加密運(yùn)算的示意圖。
圖8是本發(fā)明第一實(shí)施例中,在加密算法中所使用的函數(shù)的結(jié)構(gòu)示意圖。
圖9表示本發(fā)明第一實(shí)施例中第二運(yùn)算電路的結(jié)構(gòu)方塊圖。
圖10是本發(fā)明第二實(shí)施例中加密運(yùn)算法的示意圖。
圖11是本發(fā)明第二實(shí)施例中,在加密運(yùn)算法中所使用的函數(shù)的結(jié)構(gòu)示意圖。
圖12是表示本發(fā)明第二實(shí)施例中密碼處理裝置的基本結(jié)構(gòu)方塊圖。
圖13是表示本發(fā)明第二實(shí)施例中密碼處理裝置的基本動作一例的流程圖。
圖14是表示本發(fā)明第二實(shí)施例中密碼處理裝置的基本動作一例的流程圖。
圖15是表示本發(fā)明第二實(shí)施例中密碼處理裝置的基本動作一例的流程圖。
圖16是表示本發(fā)明第三實(shí)施例中通信系統(tǒng)的基本結(jié)構(gòu)方塊圖。
圖17是表示本發(fā)明第三實(shí)施例中IC的基本結(jié)構(gòu)方塊圖。
圖18是現(xiàn)有技術(shù)中加密運(yùn)算法的示意圖。
圖19是表示習(xí)知技術(shù)中密碼處理裝置的基本結(jié)構(gòu)方塊圖。
較佳實(shí)施例第一實(shí)施例利用圖1~圖3,說明本發(fā)明實(shí)施例中的密碼處理裝置。
圖1是表示本發(fā)明實(shí)施例的密碼處理裝置中的密碼處理運(yùn)算法的流程圖。
在圖1中,101~104是進(jìn)行數(shù)據(jù)變換處理的函數(shù)F運(yùn)算,111~114是每個位元的“異-或”邏輯運(yùn)算。
圖2是表示函數(shù)F運(yùn)算的結(jié)構(gòu),它是由三個函數(shù)f201~203和一個函數(shù)g211運(yùn)算所構(gòu)成。
以下說明其動作。
2n個位元的輸入數(shù)據(jù)150分割成上位和下位的兩個位元數(shù)據(jù)151。N位元數(shù)據(jù)151以其原來形態(tài)輸出作為n位元數(shù)據(jù)153,同時利用函數(shù)F101進(jìn)行數(shù)據(jù)變換。從函數(shù)F101所輸出的數(shù)據(jù)在“異-或”邏輯運(yùn)算,輸出n位元數(shù)據(jù)154。在函數(shù)F中,反覆在函數(shù)f201-203進(jìn)行三次的運(yùn)算后,進(jìn)行g(shù)211的運(yùn)算并輸出。
同樣的,接著反覆進(jìn)行函數(shù)F102、103、104和“異-或”邏輯運(yùn)算112、113、114的運(yùn)算,并且輸出n位元數(shù)據(jù)155和156。將此兩個n位元數(shù)據(jù)合成后,輸出2n位元數(shù)據(jù)157。
圖3是表示用實(shí)現(xiàn)圖1、圖2所說的數(shù)據(jù)變換運(yùn)算的密碼處理裝置的概略結(jié)構(gòu)圖。
在圖3中,301、302和303是保存數(shù)據(jù)的暫存器A、暫存器B、暫存器C;311、312和313是選擇數(shù)據(jù)的選擇器A、選擇器B、選擇器C。321和322是每個位元的“異-或”邏輯運(yùn)算電路。323是用來進(jìn)行函數(shù)F運(yùn)算中某一構(gòu)成要素的函數(shù)f運(yùn)算電路,324是用來進(jìn)行函數(shù)F運(yùn)算中某一構(gòu)成要素的函數(shù)g運(yùn)算電路。
第一運(yùn)算電路100由暫存器C303、選擇器C313、函數(shù)f運(yùn)算電路323、函數(shù)g運(yùn)算電路324所構(gòu)成。環(huán)路處理電路200由暫存器C303、選擇器C313和函數(shù)f算電路323所構(gòu)成。
圖4和圖5是用來說明圖3的電路動作的流程圖。
利用圖4和圖5說明其動作。
函數(shù)F的運(yùn)算,是由函數(shù)f運(yùn)算電路323進(jìn)行3次的處理以及由函數(shù)g運(yùn)算電路324進(jìn)行1次的處理所構(gòu)成。
針對圖1中第一段的數(shù)據(jù)變換處理進(jìn)行說明。
2n位元的輸入數(shù)據(jù)被分割成兩個n位元數(shù)據(jù),輸入作為輸入數(shù)據(jù)A351和輸入數(shù)據(jù)B352。輸入的數(shù)據(jù)在選擇器A311和選擇器A312中加以選擇,分別保存在暫存器A301和暫存器B302(步驟S4-1)。
接著,在選擇器C313中判斷是奇數(shù)段的處理或是偶數(shù)段的處理(步驟4-2),而選擇出保存在暫存器A301的數(shù)據(jù)(步驟4-4),再利用函數(shù)f運(yùn)算電路323對所選擇出的數(shù)據(jù)進(jìn)行數(shù)據(jù)變換(步驟4-6)。由函數(shù)f運(yùn)算電路323所輸出的數(shù)據(jù),則保存在暫存器C303(步驟4-7)。藉此,結(jié)束函數(shù)f運(yùn)算電路中的第一次處理。
接著,在選擇器C313中,選擇出保存在暫存器C303中的數(shù)據(jù)(步驟4-8),所選擇的數(shù)據(jù)則利用函數(shù)f運(yùn)算電路323進(jìn)行數(shù)據(jù)變換(步驟4-6)。函數(shù)f運(yùn)算電路323所輸出的數(shù)據(jù),則保存在暫存器C303中(步驟4-7)。藉此,結(jié)束函數(shù)f運(yùn)算電路中的第二次處理。
再接著,在選擇器C313中,選擇出保存在暫存器C303中的數(shù)據(jù)(步驟4-8)。接著,所選擇的數(shù)據(jù)則利用函數(shù)f運(yùn)算電路323進(jìn)行數(shù)據(jù)變換(步驟4-6),其輸出數(shù)據(jù)再保存到暫存器C303中(步驟4-7)。藉此,結(jié)束函數(shù)f運(yùn)算電路中的第三次處理。
接著,在選擇器C313中,選擇出保存在暫存器C303中的數(shù)據(jù)(步驟4-9)。所選擇的數(shù)據(jù)則利用函數(shù)g運(yùn)算電路324進(jìn)行數(shù)據(jù)變換并且輸出(步驟4-10)。之后,結(jié)束函數(shù)F的運(yùn)算。
接著,判斷奇數(shù)段的處理或是保數(shù)段的處理(步驟4-11),而將函數(shù)g運(yùn)算電路324所輸出的數(shù)據(jù)反饋,而在“異-或”邏輯電路322中與保存在暫存器B302中數(shù)據(jù)進(jìn)行“異-或”邏輯運(yùn)算(步驟4-14)。由選擇器B312中選擇出此輸出數(shù)據(jù),并且將所選擇出的數(shù)據(jù)保存在暫存器B302中(步驟4-15)。以上即完成第一段的數(shù)據(jù)變換處理。
接著,說明第二段的數(shù)據(jù)變換處理。
在判斷出偶數(shù)段處理的情況時(步驟4-2),在選擇器313中選擇出保存在暫存器B302中的數(shù)據(jù)(步驟4-3)。然后利用函數(shù)f運(yùn)算電路323對于所選擇的數(shù)據(jù),進(jìn)行數(shù)據(jù)變換(步驟4-6),其輸出數(shù)據(jù)則保存在暫存器C303中(步驟4-7)。藉此,結(jié)束函數(shù)f運(yùn)算電路中的第一次處理。
接著,在選擇器C313中,選擇出保存在暫存器C303中的數(shù)據(jù)(步驟4-8),再利用函數(shù)f運(yùn)算電路323對于所選擇數(shù)據(jù)進(jìn)行數(shù)據(jù)變換(步驟4-6),而其輸出數(shù)據(jù)則保存在暫存器C303中(步驟4-7)。藉此,結(jié)束函數(shù)f運(yùn)算電路323中的第二次處理。
接著,在選擇器C313中,選擇出保存在暫存器C303中的數(shù)據(jù)(步驟4-8)。接著,利用函數(shù)f運(yùn)算電路323對于所選擇的數(shù)據(jù),進(jìn)行數(shù)據(jù)變換(步驟4-6),其輸出數(shù)據(jù)再保存到暫存器C303中(步驟4-7)。藉此,結(jié)束函數(shù)f運(yùn)算電路中的第三次處理。
接著,在選擇器C313中,選擇出保存在暫存器C303中的數(shù)據(jù)(步驟4-9)。利用函數(shù)g運(yùn)算電路324對于所選擇的數(shù)據(jù)進(jìn)行數(shù)據(jù)變換(步驟4-10)。以上結(jié)束函數(shù)F的運(yùn)算。
接著,判斷出偶數(shù)段處理的情況(步驟4-11),將函數(shù)g運(yùn)算電路324所輸出的數(shù)據(jù)進(jìn)行反饋,而在“異-或”邏輯電路321中與保存在暫存器A301中數(shù)據(jù)進(jìn)行“異-或”邏輯運(yùn)算(4-12)。其輸出數(shù)據(jù)利用選擇器A311加以選擇,而所選擇出的數(shù)據(jù)則保存在暫存器A301中(步驟4-13)。以上即完成第二段的數(shù)據(jù)變換處理。
之后,則是反覆進(jìn)行所需的等效于第一段數(shù)據(jù)變換處理和第二段數(shù)據(jù)變換處理的處理段。
最后將最終段中數(shù)據(jù)變換處理的結(jié)果,保存在暫存器A301和暫存器A302中的數(shù)據(jù),并且輸出做為輸出數(shù)據(jù)A353和輸出數(shù)據(jù)B354(步驟4-19)。
如上所述,在本發(fā)明中,由于透過選擇器C303和選擇器C313來反覆使用為構(gòu)成要素的單一函數(shù)f運(yùn)算電路323,所以只需要一個函數(shù)f運(yùn)算電路323,而因?yàn)椴恍枰峁┤齻€函數(shù)f運(yùn)算電路,所以能夠削減電路的規(guī)模。
特別是已知如果采用具有較高密碼強(qiáng)度的函數(shù),密碼處理數(shù)據(jù)變換所使用的函數(shù)F(函數(shù)f、函數(shù)g)就會變得相當(dāng)復(fù)雜,所以根據(jù)本發(fā)明,削減電路規(guī)模的效果就更大。
另外的本發(fā)明中,對于暫存器A301、暫存器B302、暫存器C303、選擇器A311、選擇器A312、暫存器B312以及選擇器C313,一般都不需要經(jīng)常動作,而可以根據(jù)需要實(shí)現(xiàn)處理,所以能夠?qū)崿F(xiàn)裝置的低耗電量特性。
因此,當(dāng)本發(fā)明應(yīng)用在IC卡之類的小型裝置時,便能夠產(chǎn)生特別明顯的效果。另外,本發(fā)明不僅可以應(yīng)用在IC卡上,也可以應(yīng)用在IC卡的讀寫器中。
另外,函數(shù)F并非限定在上述的結(jié)構(gòu)。舉例來說,當(dāng)函數(shù)F如圖6所示,只由函數(shù)f反覆所構(gòu)成時,在圖3中就不需要函數(shù)g,如同圖7所示,將選擇器C313所選擇的數(shù)據(jù)直接反饋即可。
另外,如圖8所示的情況,當(dāng)函數(shù)f運(yùn)算電路323由m個(m為1或1以上)函數(shù)并且可由任意順序所構(gòu)成時,如圖9所示,在圖3中對應(yīng)于函數(shù)f運(yùn)算電路323的部分,可以利用并列上述m個函數(shù),分別接收來自選擇器C313的數(shù)據(jù),并且其輸出是做為進(jìn)行m輸入單一輸出選擇動作的選擇器之輸入,在選擇出適當(dāng)之一個輸出數(shù)據(jù)后保存在暫存器C303中,在反覆進(jìn)行相當(dāng)于上述m個函數(shù)的任意順序方式來實(shí)現(xiàn)。
第二實(shí)施例利用圖10-圖14,說明本發(fā)明另一實(shí)施例中的密碼處理裝置。
圖10是表示MISTY密碼運(yùn)算法的流程圖。
至于MISTY處理的詳細(xì)內(nèi)容,已詳細(xì)記載于像是松井充“區(qū)塊密碼運(yùn)算法MISTY”,電子情報通信學(xué)會、信學(xué)技報ISEC96-11(1996-07)中。
在圖10中,501~506是函數(shù)FL的運(yùn)算,511~514是函數(shù)FO的運(yùn)算,521-524是“異-或”邏輯運(yùn)算。
圖11是表示圖10中函數(shù)FO511~514的運(yùn)算的結(jié)構(gòu)。
如圖11所示,在MISTY的函數(shù)FO511~514的處理,是以函數(shù)FI601~603和“異-或”邏輯運(yùn)算611~613為中心,反覆進(jìn)行三次的變換所構(gòu)成。
圖12是本發(fā)明實(shí)施例的密碼處理裝置,其采用圖10和圖11所示的MISTY數(shù)據(jù)變換處理。
接著說明圖10和圖11中密碼運(yùn)算法的動作。
首先,具有2n個位元的輸入數(shù)據(jù)55被分割成上位和下位的兩個n位元數(shù)據(jù),成為輸入數(shù)據(jù)A551以及輸入數(shù)據(jù)B552。在MISTY的情況中,n=32。n位元輸入數(shù)據(jù)551在經(jīng)過函數(shù)FL的數(shù)據(jù)換后,一方面以其原來形態(tài)輸出做為n位元數(shù)據(jù)553,另一方面再利用函數(shù)FO511進(jìn)行數(shù)據(jù)變換。在“異-或’邏輯運(yùn)算521中,則是將函數(shù)FO511所運(yùn)算處理的數(shù)據(jù),與另一個n位元輸入數(shù)據(jù)552在利用函數(shù)FL502數(shù)據(jù)變換后的輸出數(shù)據(jù),依每個位元進(jìn)行“異-或”邏輯運(yùn)算,再輸出n位元數(shù)據(jù)554。在函數(shù)FO中,則是由函數(shù)FI601~603以及“異-或”邏輯運(yùn)算611-613的運(yùn)算所構(gòu)成。亦即,將輸入的2m位元數(shù)據(jù)(n位元)650分割成兩個m位元數(shù)據(jù)651和652。數(shù)據(jù)651在經(jīng)過函數(shù)FI進(jìn)行數(shù)據(jù)變換之后,利用“異-或”邏輯運(yùn)算611與數(shù)據(jù)652依每個位元進(jìn)行“異-或”邏輯運(yùn)算,再輸出做為數(shù)據(jù)653。數(shù)據(jù)652則是以其原來形態(tài)輸出做為數(shù)據(jù)654。接下來的動作則是整個反覆進(jìn)行三次,最后在合并兩個m位元數(shù)據(jù)之后,輸出2m個位元(n位元)的數(shù)據(jù)655。
接著,說明第二段的處理。
第一段的輸出數(shù)據(jù)554以其原來形態(tài)輸出,同時利用函數(shù)FO512進(jìn)行數(shù)據(jù)變換。函數(shù)FO512的輸出數(shù)據(jù)則是在“異-或”邏輯運(yùn)算522中,與另一個n位元數(shù)據(jù)553依每個位元進(jìn)行“異-或”邏輯運(yùn)算并且輸出。
接著,則是反覆執(zhí)行與第一段和第二相同的數(shù)據(jù)變換所需要次數(shù),輸出n位元數(shù)據(jù)557、558。最后利用FL函數(shù)505和506并轉(zhuǎn)換其上位和下位,在合成這兩個n位元數(shù)據(jù)后,輸出2n位元數(shù)據(jù)559。
圖12則是表示用來實(shí)現(xiàn)圖10、圖11所說的數(shù)據(jù)變換運(yùn)算法的密碼處理裝置的概略結(jié)構(gòu)。
在圖12中,701、702、703是暫存器A、暫存器B、暫存器C。711、712、713、714則是選擇器A、選擇器B、選擇器C和選擇器D。721、722、723則是“異-或”邏輯電路。724則是進(jìn)行數(shù)據(jù)變換的函數(shù)FI運(yùn)算電路。725則是進(jìn)行數(shù)據(jù)變換的函數(shù)FI運(yùn)算電路。751是輸入數(shù)據(jù)A。752是輸入數(shù)據(jù)B。753是輸出數(shù)據(jù)A。754是輸出數(shù)據(jù)B。
此處,利用暫存器C703、選擇器C713、函數(shù)FI運(yùn)算電路724以及“異-或”邏輯電路723,構(gòu)成用來進(jìn)行第一數(shù)據(jù)變換的第一運(yùn)算電路101。另外,利用暫存器C703、選擇器C713、函數(shù)FI運(yùn)算電路724和“異-或”邏輯電路723亦構(gòu)成環(huán)路處理電路201。
圖13和圖15則是用來說明圖12所示的密碼處理裝置動作的流程圖。
利用圖13~圖15說明其動作。
首先,2n位元的輸入數(shù)據(jù)被分割成n位元的兩個數(shù)據(jù),輸入做為輸入數(shù)據(jù)A751和輸入數(shù)據(jù)B752。在MISTY的情況下,n=32。所輸入的數(shù)據(jù)在選擇器A711和選擇器B712中被選中,分別儲存在暫存器A701和暫存器B702(步驟8-1)。
接著,在選擇器C713中判斷是奇數(shù)段處理或是偶數(shù)段處理(步驟8-2),而選擇出儲存在暫存器A701中的數(shù)據(jù)(步驟8-3)。接著所選擇的數(shù)據(jù)在函數(shù)FL運(yùn)算電路725中進(jìn)行數(shù)據(jù)變換(步驟8-4),而在選擇器D714中選擇出其所輸出的數(shù)據(jù)(步驟8-5)。更在選擇器A711中選擇出此所選擇到的數(shù)據(jù)(步驟8-6),并且儲存在暫存器A701中(步驟8-7)。
接著,在選擇器C713中選擇出儲存在暫存器B702中的數(shù)據(jù)(步驟8-8)。所選擇的數(shù)據(jù)在函數(shù)FL運(yùn)算電路725中進(jìn)行數(shù)據(jù)變換(步驟8-9),而在選擇器D714中選擇出其所輸出的數(shù)據(jù)(步驟8-10)。更在選擇器B712中選擇出此所選擇到的數(shù)據(jù)(步驟8-11),并且儲存在暫存器B中(步驟8-12)。
接著,在選擇器C713中選擇出儲存在暫存器A710中的數(shù)據(jù)(步驟8-13)。接著,所選擇的數(shù)據(jù)(2m位元)被分成各m個位元。其中一個m位元數(shù)據(jù)以其原來形態(tài)輸出做為輸出數(shù)據(jù)。另一個m位元數(shù)據(jù)則是在輸入函數(shù)FI運(yùn)算電路724中進(jìn)行數(shù)據(jù)變換之后,與前一個m位元數(shù)據(jù)在“異-或”邏輯電路723中依每個位元進(jìn)行“異-或”邏輯運(yùn)算,并且合成這兩個輸出數(shù)據(jù)(步驟8-14)。輸出數(shù)據(jù)則儲存在暫存器C703(步驟8-15)中。藉此,結(jié)束第一次以函數(shù)FI運(yùn)算電路724為中心的處理。
接著,在選擇器C713中選擇出儲存在暫存器C703中的數(shù)據(jù)(步驟8-16)。所選擇的數(shù)據(jù)(2m位元)則被分成各m個位元。其中一個m位元數(shù)據(jù)以其原來形態(tài)輸出作為輸出數(shù)據(jù)。另一個m位元數(shù)據(jù)則是在函數(shù)FI運(yùn)算電路724中進(jìn)行數(shù)據(jù)變換之后,與前一個m位元數(shù)據(jù)在“異-或”邏輯電路723中依每個位元進(jìn)行“異-或”邏輯運(yùn)算,并且合成這兩個輸出數(shù)據(jù)(步驟8-14)。輸出數(shù)據(jù)則儲存在暫存器C703(步驟8-15)中。藉此,結(jié)束第二次以函數(shù)FI運(yùn)算電路724為中心的處理。
接著,在選擇器C713中選擇出儲存在暫存器C703中的數(shù)據(jù)(步驟8-16)。所選擇的數(shù)據(jù)(2m位元)則被分成各m個位元。其中一個m位元數(shù)據(jù)以其原來形態(tài)輸出做為輸出數(shù)據(jù)。另一個m位元數(shù)據(jù)則是在函數(shù)FI運(yùn)算電路724中進(jìn)行數(shù)據(jù)變換之后,與前一個m位數(shù)據(jù)在“異-或”邏輯電路723中依每個位元進(jìn)行“異-或”邏輯運(yùn)算,并且合成這兩個輸出數(shù)據(jù)(步驟8-14)。輸出數(shù)據(jù)則儲存在暫存器C703(步驟8-14)。藉此,結(jié)束第三次以函數(shù)FI運(yùn)算電路724為中心的處理。
接著,在選擇器C713中選擇出儲存在暫存器C703中的數(shù)據(jù)(步驟8-16),并且由選擇器D714選擇出此被選擇的數(shù)據(jù)(步驟8-18)。接著,判奇數(shù)段處理或是偶數(shù)段處理后(步驟8-19),將選擇的數(shù)據(jù)反饋并且在“異-或”邏輯電722中與儲存在暫存器B702中的數(shù)據(jù)進(jìn)行“異-或”邏輯運(yùn)算(步驟8-20)。在選擇器B712中選擇出此輸出數(shù)據(jù)(步驟8-21),再將此選擇出的數(shù)據(jù)儲存在暫存器B702中(步驟8-22)。以上即完成第一段的數(shù)據(jù)變換處理。
接著,進(jìn)行圖10中相當(dāng)于第二段數(shù)據(jù)變換處理的數(shù)據(jù)變換處理。
首先,在選擇器C713中判斷出是偶數(shù)段的處理(步驟8-2),并且選擇出儲存在暫存器B702中的數(shù)據(jù)(步驟8-24)。
所選擇的數(shù)據(jù)(2m位元)則被分成各m個位元,其中一個m位元數(shù)據(jù)以其原來形態(tài)輸出做為輸出數(shù)據(jù)。另一個m位元數(shù)據(jù)則是在函數(shù)FI運(yùn)算電路724中進(jìn)行數(shù)據(jù)變換之后,與前一個m位元數(shù)據(jù)在“異-或”邏輯電路723中依每個位元進(jìn)行“異-或”邏輯運(yùn)算,并且合成這兩個輸出數(shù)據(jù)(步驟8-14)。輸出數(shù)據(jù)則儲存在暫存器C703(步驟8-15)中。藉此,結(jié)束第一次以函數(shù)FI運(yùn)算電路724為中心的處理。
接著,在選擇器C713中選擇出儲存在暫存器C703中的數(shù)據(jù)(步驟8-16)。所選擇的數(shù)據(jù)(2m位元)則被分成各m個位元,其中一個m位元數(shù)據(jù)以其原來形態(tài)輸出作為輸出數(shù)據(jù)。另一個m位元數(shù)據(jù)則是在函數(shù)FI運(yùn)算電路724中進(jìn)行數(shù)據(jù)變換之后,與前一個m位元數(shù)據(jù)在“異-或”邏輯電路723中依每個位元進(jìn)行“異-或”邏輯運(yùn)算,并且合成這兩個輸出數(shù)據(jù)(步驟8-14)。輸出數(shù)據(jù)則儲存在暫存器C703(步驟8-15)中。藉此,結(jié)束第二次以函數(shù)FI運(yùn)算電路724為中心的處理。
接著,在選擇器C713中選擇出儲存在暫存器C703中的數(shù)據(jù)(步驟8-16)。所選擇的數(shù)據(jù)(2m位元)則被分成各m個位元,其中一個m位元數(shù)據(jù)以其原來形態(tài)輸出做為輸出數(shù)據(jù)。另一個m位元數(shù)據(jù)則是在函數(shù)FI運(yùn)算電路724中進(jìn)行數(shù)據(jù)變換之后,與前一個m位元數(shù)據(jù)在“異-或”邏輯電路723中依每個位元進(jìn)行“異-或”邏輯運(yùn)算,并且合成這兩個輸出數(shù)據(jù)(步驟8-14)。輸出數(shù)據(jù)則儲存在暫存器C703(步驟8-15)中。藉此,結(jié)束第三次以函數(shù)FI運(yùn)算電路724為中心的處理。
接著,在選擇器C713中選擇出儲存在暫存器C703中的數(shù)據(jù)(步驟8-16),并且由選擇器D714選擇出此被選擇的數(shù)據(jù)(步驟8-18)。接著,判斷出是偶數(shù)段處理后(步驟8-19),將所選擇的數(shù)據(jù)反饋并且在“異-或”邏輯電路721中與儲存在暫存器A701中的數(shù)據(jù)進(jìn)行“異-或”邏輯運(yùn)算(步驟8-25)。在選擇器A711中選擇出此輸出數(shù)據(jù)(步驟8-26),再將此選擇出的數(shù)據(jù)儲存在暫存器A701中(步驟8-27)。以上即完成第二段的數(shù)據(jù)變換處理。
以下則是反覆輪流地進(jìn)行數(shù)次第一段數(shù)據(jù)變換處理和第二段數(shù)據(jù)變換處理。MISTY則是一直進(jìn)行到第八段變換處理時為止。
接著,進(jìn)行步驟8-28的處理。在步驟2-28中,則是執(zhí)行上述的步驟8-3~8-12。首先,在選擇器C713中選擇出儲存在暫存器A701的數(shù)據(jù)(步驟8-3)。接著,所選擇的數(shù)據(jù)在函數(shù)FL運(yùn)算電路725中進(jìn)行數(shù)據(jù)變換(步驟8-4),而在選擇器D714中選擇出其所輸出的數(shù)據(jù)(步驟8-5)。更在選擇器A711中選擇出此所選擇到的數(shù)據(jù)(步驟8-6),并且儲存在暫存器A701中(步驟8-7)。
接著,在選擇器C713中選擇出儲存在暫存器B702中的數(shù)據(jù)(步驟8-8)。所選擇的數(shù)據(jù)在函數(shù)FL運(yùn)算電路725中進(jìn)行數(shù)據(jù)變換(步驟8-9),而在選擇器D714中選擇其輸出數(shù)據(jù)(步驟8-10)。更在選擇器B712中選擇出此所選擇到的數(shù)據(jù)(步驟8-11),并且儲存在暫存器B中(步驟8-12)。
最后將儲存在暫存器A701和暫存器B702中的數(shù)據(jù),輸出為輸出數(shù)據(jù)A753和輸出數(shù)據(jù)B754(步驟8-29)。
在本實(shí)施例中,即使各段函數(shù)FO511~514具有如圖11所示般的結(jié)構(gòu)的情況下,也不需要具備三個函數(shù)FI運(yùn)算電路和三個“異-或”邏輯電路。由于只需要一個函數(shù)FI運(yùn)算電路以及一個“異-或”邏輯電路,所以能夠削減電路的規(guī)模。另外,即使密碼化運(yùn)算法具有如圖10所示般的結(jié)構(gòu)的情況下,也不需要具備數(shù)個用來實(shí)現(xiàn)函數(shù)FL501~504的電路部分。由于只需要一個函數(shù)FL運(yùn)算電路,所以同樣地可以削減電路的規(guī)模。
在本實(shí)施例中的MISTY情況下,由于采用了具有較高密碼性的函數(shù),所以函數(shù)FI和函數(shù)FL的結(jié)構(gòu)變得相當(dāng)復(fù)雜。因此,根據(jù)本發(fā)明所得到削減電路規(guī)模的效果相當(dāng)大。
另外,如本實(shí)施例中的動作說明所示,暫存器A~暫存器C以及選擇器A~選擇器D不需要持續(xù)保持動作,而是根據(jù)需要進(jìn)行動作,便可以實(shí)現(xiàn)所要的處理,這使得在實(shí)現(xiàn)低耗電量的課題上可以得到相當(dāng)大的效果。
因此,在使用本發(fā)明在如IC卡般小型的裝置的情況中,可能產(chǎn)生特別明顯的效果。另外,本發(fā)明不僅可以應(yīng)用在IC卡,同樣也可以應(yīng)用在IC卡的讀寫器中。
第三實(shí)施例圖16和圖17是表示本發(fā)明實(shí)施例的通信系統(tǒng)的概略示意圖。
在圖16和圖17中,91是讀寫器,92是IC(集成電路),93是IC卡92的IC。在IC93的構(gòu)成部分中,94是用來進(jìn)行通信數(shù)據(jù)的收發(fā)信電路,95是用來進(jìn)行裝置控制等的CPU(中央處理單元),96是用來儲存數(shù)據(jù)、程式等的存儲器,97是用來進(jìn)行通信數(shù)據(jù)的加密/解密處理的密碼處理裝置。IC93的構(gòu)成部分包括收發(fā)信電路94、CPU95、存儲器96和密碼處理裝置97。
密碼處理裝置97則可以采用第一實(shí)施例或是第二實(shí)施例中的密碼處理裝置。
此通信系統(tǒng)中的通信過程,是以加密后的數(shù)據(jù)進(jìn)行通信。亦即,IC卡92是利用收發(fā)信電路94,將經(jīng)過密碼處理裝置97所加密的數(shù)據(jù)送到讀寫器91。另外,從讀寫器91所發(fā)出的數(shù)據(jù)亦利用收發(fā)信電路94加以接收后,再利用密碼處理裝置97解碼此收信數(shù)據(jù)而進(jìn)行通信。
另外,讀寫器91和IC卡92之間的通信,可以利用接觸或非接觸的方式進(jìn)行。
如上所述,本發(fā)明的用來加密數(shù)據(jù)進(jìn)行通信的通信系統(tǒng)中,可以達(dá)到削減密碼處理裝置的電路規(guī)格以及降低耗電量的目的。
另外,將本發(fā)明的密碼處理裝置應(yīng)用在IC卡上時,也可以在實(shí)現(xiàn)削減電路規(guī)模和降低耗電量的情況下構(gòu)成有效率的IC。
權(quán)利要求
1.一種密碼處理裝置,利用第一運(yùn)算電路對于輸入數(shù)據(jù)進(jìn)行多次的第一數(shù)據(jù)變換處理,其特征在于上述第一運(yùn)算電路更具有環(huán)路處理電路,用以進(jìn)行多次第二數(shù)據(jù)變換處理;上述環(huán)路處理電路是以第二運(yùn)算電路、數(shù)據(jù)保存電路和選擇電路構(gòu)成處理環(huán)路;上述第二運(yùn)算電路進(jìn)行上述第二數(shù)據(jù)變換處理;上述數(shù)據(jù)保存電路用以暫時保存經(jīng)過上述第二數(shù)據(jù)變換處理的數(shù)據(jù);以及上述選擇電路用以選擇終止或是繼續(xù)上述環(huán)路處理電路中的第二數(shù)據(jù)變換處理。
2.如權(quán)利要求1所述的密碼處理裝置,其特征在于,上述第二運(yùn)算電路包括數(shù)據(jù)分割電路,用以將輸入至上述第二運(yùn)算電路的數(shù)據(jù),分割為第一分割數(shù)據(jù)和第二分割數(shù)據(jù);第三運(yùn)算電路,用以對上述第一分割數(shù)據(jù)進(jìn)行數(shù)據(jù)變換;“異-或”邏輯電路,用以對上述第三運(yùn)算電路的輸出數(shù)據(jù)和上述第二分割數(shù)據(jù),依每個位元進(jìn)行“異-或”邏輯運(yùn)算;以及數(shù)據(jù)結(jié)合電路,用以結(jié)合上述“異-或”邏輯電路的輸出數(shù)據(jù)和上述第二分割數(shù)據(jù)。
3.如權(quán)利要求1所述的密碼處理裝置,其特征在于,上述選擇電路系接收第一運(yùn)算電路中進(jìn)行第一數(shù)據(jù)變換處理的數(shù)據(jù)和保存在數(shù)據(jù)保存電路中的數(shù)據(jù),在上述環(huán)路處理電路繼續(xù)進(jìn)行處理的場合中,選擇該數(shù)據(jù)保存電路所保存的數(shù)據(jù)。
4.如權(quán)利要求3所述的密碼處理裝置,其特征在于,上述選擇電路是在上述環(huán)路處理電路中的處理的場合中,選擇第一運(yùn)算電路中進(jìn)行第一數(shù)據(jù)變換處理的數(shù)據(jù)。
5.如權(quán)利要求4所述的密碼處理裝置,其特征在于,還包括暫存器A和暫存器B,用以交互保存在第一運(yùn)算電路中進(jìn)行第一數(shù)據(jù)變換處理的數(shù)據(jù);兩個“異-或”邏輯電路,分別對于第一運(yùn)算電路在進(jìn)行第一數(shù)據(jù)變換處理的數(shù)據(jù),以及保存在暫存器A和暫存器B的數(shù)據(jù),依每個位元進(jìn)行“異-或”邏輯運(yùn)算;以及選擇器A和選擇器B,用以選擇第一運(yùn)算電路在進(jìn)行第一數(shù)據(jù)變換處理的數(shù)據(jù)和“異-或”邏輯電路在進(jìn)行“異-或”邏輯運(yùn)算的數(shù)據(jù)中之一,保存在暫存器A和暫存器B;上述選擇電路系交互選擇暫存器A和暫存器B,開始進(jìn)行上述環(huán)路處理電路中的處理。
6.如權(quán)利要求1所述的密碼處理裝置,其特征在于,上述第一運(yùn)算電路對于利用處理環(huán)路部進(jìn)行第二數(shù)據(jù)變換處理的數(shù)據(jù),更進(jìn)行輸出與第二數(shù)據(jù)變換處理不同的數(shù)據(jù)變換。
7.如權(quán)利要求1所述的密碼處理裝置,其特征在于,上述第二運(yùn)算電路包括m(m≥1)個函數(shù)運(yùn)算電路,用以從選擇電路輸入相同數(shù)據(jù);以及選擇器,具有m輸入和一輸出,用以從輸入的m個函數(shù)運(yùn)算電路所運(yùn)算的數(shù)據(jù)中選擇其一。
8.如權(quán)利要求2所述的密碼處理裝置,其特征在于,上述密碼處理裝置包括函數(shù)運(yùn)算部,對于從上述選擇電路所輸出的數(shù)據(jù),進(jìn)行數(shù)據(jù)變換;以及選擇器,其接收上述函數(shù)運(yùn)算部所運(yùn)算的數(shù)據(jù)以及從選擇電路所輸出的數(shù)據(jù),并且輸出其中一方的數(shù)據(jù)。
9.一種密碼處理方法,利用第一運(yùn)算步驟對于輸入數(shù)據(jù)進(jìn)行多次的第一數(shù)據(jù)變換處理,其特征在于上述第一運(yùn)算步驟更具有環(huán)路處理步驟,用以進(jìn)行多次第二數(shù)據(jù)變換處理;上述環(huán)路處理步驟包括第二運(yùn)算步驟,用以進(jìn)行上述第二數(shù)據(jù)變換處理;數(shù)據(jù)保存步驟,用以暫時保存上述第二數(shù)據(jù)變換處理所進(jìn)行的數(shù)據(jù);以及選擇步驟,用以選擇終止或是繼續(xù)上述環(huán)路處理電路中第二數(shù)據(jù)變換處理。
10.如權(quán)利要求9所述的密碼處理方法,其特征在于,上述第二運(yùn)算步驟包括數(shù)據(jù)分割步驟,用以將在上述第二運(yùn)算步驟輸入的數(shù)據(jù),分割為第一分割數(shù)據(jù)和第二分割數(shù)據(jù);第三運(yùn)算步驟,用以對上述第一分割數(shù)據(jù)進(jìn)行數(shù)據(jù)變換;“異-或”邏輯步驟,用以對上述第三運(yùn)算步驟的輸出數(shù)據(jù)和上述第二分割數(shù)據(jù),依每個位元進(jìn)行“異-或”邏輯運(yùn)算;以及數(shù)據(jù)結(jié)合步驟,用以結(jié)合上述“異-或”邏輯步驟的輸出數(shù)據(jù)和上述第二分割數(shù)據(jù)。
11.一種IC卡,用以進(jìn)行與讀寫器間的數(shù)據(jù)通信,其特征在于,包括數(shù)據(jù)接收電路,用以從上述讀寫器接收上述數(shù)據(jù);數(shù)據(jù)發(fā)送電路,用以發(fā)送上述數(shù)據(jù)至上述讀寫器;以及如權(quán)利要求1所述的密碼處理裝置,用以對上述數(shù)據(jù)進(jìn)行密碼處理。
12.一種IC卡,用以進(jìn)行與讀寫器間的數(shù)據(jù)通信,其特征在于包括數(shù)據(jù)接收電路,用以從上述讀寫器接收上述數(shù)據(jù);數(shù)據(jù)發(fā)送電路,用以發(fā)送上述數(shù)據(jù)至上述讀寫器;以及密碼處理裝置,如權(quán)利要求2所述,用以對上述數(shù)據(jù)進(jìn)行密碼處理。
全文摘要
一種密碼處理裝置,其中函數(shù)F具有反覆處理的結(jié)構(gòu),函數(shù)F在其內(nèi)部具有函數(shù)f的反覆結(jié)構(gòu),其由暫時儲存數(shù)據(jù)的暫存器301~303、選擇應(yīng)輸出數(shù)據(jù)的選擇器A~C311~313以及進(jìn)行數(shù)據(jù)變換的函數(shù)f演算電路323所構(gòu)成。從函數(shù)f運(yùn)算電路323的輸出被儲存在暫存器C303,利用選擇器C313,以選擇是否反覆執(zhí)行函數(shù)f運(yùn)算電路323中的數(shù)據(jù)變換。在上述情況下,能夠有效率地構(gòu)成密碼處理裝置,并且能夠削減電路規(guī)模和降低消耗電力。
文檔編號H04L9/06GK1228183SQ98800708
公開日1999年9月8日 申請日期1998年4月24日 優(yōu)先權(quán)日1997年5月30日
發(fā)明者松井充, 時田俊雄 申請人:三菱電機(jī)株式會社