專利名稱:一種密碼芯片密鑰快速更換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種密碼芯片設(shè)計技術(shù),確切說是涉及一種分組密碼芯片密鑰的快速更換方法。
背景技術(shù):
為了便于軟件和硬件的實現(xiàn),分組密碼算法普遍采用輪函數(shù)設(shè)計,輪函數(shù)在密鑰的作用下,迭代N次完成一次加密運算,N的大小根據(jù)輪函數(shù)的復(fù)雜性確定,如DES算法,N為16;而AES算法,N為12到14。在分組密碼芯片設(shè)計時,為了減少芯片的規(guī)模,分組密碼算法芯片一般只實現(xiàn)一級或幾級密碼輪函數(shù)運算,通過控制電路控制,將輪函數(shù)迭代N次完成一次加密運算。
現(xiàn)有技術(shù)在密鑰更換時,為了不影響前一組數(shù)據(jù)的加解密運算,必須等待前一組數(shù)據(jù)完成加解密運算后,再進(jìn)行密鑰更換,密鑰更換完成后再開始進(jìn)行后面的加解密運算。這種密鑰更換方法的主要缺點是①密鑰更換速度慢密鑰的更換必須等待前一組數(shù)據(jù)完成加解密運算后才能進(jìn)行;②不適應(yīng)流水線加解密操作由于在流水線上加解密工作,幾組數(shù)據(jù)同時進(jìn)行加解密運算,前一組數(shù)據(jù)還未完成加解密運算時,后面的數(shù)據(jù)已開始進(jìn)行加解密運算,若此時進(jìn)行密鑰更換,必然導(dǎo)致加解密結(jié)果出錯。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有密碼芯片密鑰更換存在的上述缺點,為用戶提供一種適于流水線加解密操作的、任何時刻都可進(jìn)行密鑰更換的快速密鑰更換方法。
本發(fā)明的目的是通過實施下述技術(shù)方案來實現(xiàn)的一種密碼芯片密鑰快速更換方法,通過密碼芯片上的一條介于數(shù)據(jù)輸入與加解密結(jié)果輸出間的、由多級密碼輪函數(shù)算法模塊依次串接的流水線來實現(xiàn),其中每一級密碼輪函數(shù)算法模塊,都與其相應(yīng)的該級工作密鑰存儲器相連接,其特征在于各級工作密鑰存儲器有兩個存儲器讀地址A和B,通過算法級控制信號選擇輸出,控制工作密鑰存儲器響該級的密碼輪函數(shù)輸出運算所需密鑰,各級密鑰的更換,通過對各級存儲器讀地址B發(fā)出換鑰命令而實現(xiàn)。
本發(fā)明的優(yōu)點在于與現(xiàn)有技術(shù)不同,由于本方法在密碼輪函數(shù)算法模塊每一級的計算中,都配置了兩個工作密鑰存儲器讀地址A和B,可以通過隨時向存儲器讀地址B發(fā)出換鑰命令,使該級密碼輪函數(shù)按更換的密鑰進(jìn)行計算,無須等待前一組數(shù)據(jù)完成加解密運算再更換密鑰,因而使密鑰的更換速度大大加快,且可隨時進(jìn)行,從而實現(xiàn)了在流水線上進(jìn)行加解密工作。
圖1為本發(fā)明方法工作程序原理框圖具體實施方式
一種具有四級密碼輪函數(shù)運算的密碼芯片密鑰快速更換方法,通過密碼芯片上的一條介于數(shù)據(jù)輸入與加解密結(jié)果輸出間的、由四級密碼輪函數(shù)算法模塊依次串接的流水線來實現(xiàn),其中每級密碼輪函數(shù)算法模塊,都與其相應(yīng)的該級工作密鑰存儲器相連接,該工作密鑰存儲器有兩個讀地址A和B,由算法級控制選擇輸入,并依照此地址向該級的密碼輪函數(shù)輸出運算所需密鑰,各級密鑰的更換,可隨時通過對各級存儲器讀地址B發(fā)出換鑰命令而實現(xiàn)。在本例中,每級運算所需的密鑰應(yīng)預(yù)先存放在相應(yīng)的密鑰存儲器中,依據(jù)存儲器讀地址讀出。在密鑰更換前,所有密鑰存儲器讀地址A和B一致,根據(jù)地址A,工作密鑰存儲器輸出相應(yīng)的密鑰數(shù)據(jù),供密碼算法各輪運算使用。密鑰更換時,換鑰命令信號產(chǎn)生一個脈沖,將存儲器1讀地址B改為新密鑰地址,當(dāng)輸入數(shù)據(jù)進(jìn)行第一級運算時,算法級控制選擇存儲器1讀地址B輸出,使工作密鑰存儲器1輸出密鑰至輪函數(shù)1供其計算使用,其它地址不變;進(jìn)行第二級運算時,算法級控制,選擇讀取存儲器2讀地址B輸出,使工作密鑰存儲器2輸出密鑰至輪函數(shù)2進(jìn)行加解密運算,其它地址不變,依次類推,直到完成所有級的運算。此時,舊密鑰地址已無用,新密鑰存儲器讀地址B覆蓋舊密鑰地址A,完成一次密鑰更換。當(dāng)多組數(shù)據(jù)比如兩組數(shù)據(jù)同時參與運算時,第一組數(shù)據(jù)先輸入算法輪函數(shù)1,經(jīng)選擇輸出讀取存儲器1讀地址A,使工作密鑰存儲器1中的密鑰輸入輪函數(shù)1進(jìn)行運算,加密完成后進(jìn)入到第二級密碼算法輪函數(shù)2的運算,此時第二組數(shù)據(jù)輸入到密碼算法輪函數(shù)1中;第一組數(shù)據(jù)通過存儲器2讀地址A,讀取工作密鑰存儲器2的密鑰至密碼算法輪函數(shù)2進(jìn)行運算,完成密碼運算后進(jìn)入到第三級密碼算法輪函數(shù)3進(jìn)行運算;而第二組數(shù)據(jù),根據(jù)換鑰命令改變存儲器1讀地址B,并通過算法級控制將其選擇輸出,控制工作密鑰存儲器1中的新密鑰輸出給密碼算法輪函數(shù)1進(jìn)行加解密運算,完成后進(jìn)入到第二輪密碼算法輪函數(shù)2的運算,依次類推。因此,只要需要更換密鑰,隨時通過換鑰命令,改變存儲器讀地址B,即可使各級工作密鑰存儲器向該級密碼算法輪函數(shù)輸入新密鑰。
權(quán)利要求
1.一種密碼芯片密鑰快速更換方法,通過密碼芯片上的一條介于數(shù)據(jù)輸入與加解密結(jié)果輸出間的、由多組密碼輪函數(shù)算法模塊依次串接的流水線來實現(xiàn),其中每一級密碼輪函數(shù)算法模塊,都與其相應(yīng)的工作密鑰存儲器相連接,其特征在于各級工作密鑰存儲器有兩個存儲器讀地址A和B,通過算法級控制信號選擇輸出,控制工作密鑰存儲器向該級的密碼輪函數(shù)輸出運算所需密鑰,各級密鑰的更換,通過對各級存儲器讀地址B發(fā)出換鑰命令而實現(xiàn)。
全文摘要
現(xiàn)有的密鑰更換方法,必須等待前組數(shù)據(jù)完成加解密運算后再進(jìn)行密鑰更換,因而密鑰更換速度慢,而且不能實現(xiàn)流水線操作。本發(fā)明公開了一種快速密鑰更換法,它是通過密碼芯片上的一條介于數(shù)據(jù)輸入與加解密結(jié)果輸出間的、由多級密碼輪函數(shù)算法模塊依次串接的流水線來實現(xiàn)。其中每級密碼輪函數(shù)算法模塊,都與其相應(yīng)的該級工作密鑰存儲器相連接,特征是各級中有兩個存儲器讀地址A和B,通過算法級控制信號控制選擇輸出控制工作密鑰存儲器,向該級密碼輪函數(shù)運算提供所需密鑰,各級密鑰更換,通過對各級存儲器讀地址B發(fā)出換鑰命令實現(xiàn)。具有更換密鑰隨意、快捷、方便和適于流水線操作等突出優(yōu)點。
文檔編號H04L9/18GK1509004SQ02128029
公開日2004年6月30日 申請日期2002年12月16日 優(yōu)先權(quán)日2002年12月16日
發(fā)明者呂永其, 尤坤, 王輝, 陸建 申請人:中國電子科技集團(tuán)公司第三十研究所