一種安全性適應(yīng)速度變化的加密方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種安全性適應(yīng)速度變化的加密方法及裝置,屬于信息安全領(lǐng)域。系統(tǒng)采用自上而下一體化的設(shè)計(jì)方案,由速度選擇模塊、系數(shù)計(jì)算模塊、輪數(shù)控制計(jì)數(shù)器、晶振、鎖相環(huán)PLL1、鎖相環(huán)PLL2、明文輸入模塊、加密模塊、密鑰擴(kuò)展模塊、密文輸出模塊十個(gè)部分組成。本發(fā)明首次提供了一種安全性適應(yīng)速度變化的加密方法,適用于速度可變的硬件平臺(tái)中,適應(yīng)速度更改加密算法的輪數(shù),使得空閑操作時(shí)鐘得到充分利用來增加系統(tǒng)的安全性。本發(fā)明可以應(yīng)用在保密的硬件存儲(chǔ)設(shè)備的靜態(tài)加密、微波或光通信鏈路、計(jì)算機(jī)終端的接受或者發(fā)射端口等工業(yè)和技術(shù)生產(chǎn)中。
【專利說明】一種安全性適應(yīng)速度變化的加密方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息傳輸中的高速加密技術(shù),加密電路設(shè)計(jì)以及加密控制電路設(shè)計(jì)技術(shù),屬于信息安全領(lǐng)域。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù),通信技術(shù)的飛速發(fā)展,信息安全問題越來越受到人們的重視,各種新型加密技術(shù)和分析技術(shù)不斷涌現(xiàn)。與傳統(tǒng)的軟件加密技術(shù)相比,硬件加密技術(shù)具有占用主機(jī)資源少、加密速度快等優(yōu)點(diǎn),無疑具有更大的發(fā)展?jié)摿Α?br>
[0003]但是當(dāng)前硬件加密技術(shù)普遍存在以下不足:
[0004]由于數(shù)據(jù)傳輸?shù)姆绞胶蛻?yīng)用背景多種多樣,數(shù)據(jù)傳輸?shù)乃俣炔⒉唤y(tǒng)一。以互聯(lián)網(wǎng)通信為例,速度從幾兆,幾十兆直到工程應(yīng)用的千兆不等。如果數(shù)據(jù)流的傳輸速度較慢,大量加密操作時(shí)鐘將被閑置,無法得到充分利用。在低速數(shù)據(jù)傳輸中,加密速度要高于數(shù)據(jù)傳輸速度,在加密操作結(jié)束后,下一步數(shù)據(jù)傳輸?shù)轿恢?,大量的可用時(shí)鐘會(huì)被閑置。而在密碼學(xué)中,加密的安全性和使用的加密算法的輪數(shù)密切相關(guān),目前比較典型的分組密碼分析方法如線性分析、差分分析、代數(shù)分析、Square分析等,都只能攻擊到某一個(gè)固定的輪數(shù),超過該輪數(shù)就無法破解密碼算法,因此算法的輪數(shù)越多,加密的安全性越高,而尚未有硬件加密技術(shù)利用閑置的時(shí)鐘來增加算法輪數(shù),提高加密的安全性。
[0005]本發(fā)明的先進(jìn)性體現(xiàn)在:首創(chuàng)性的利用了速度可變硬件平臺(tái)下,加密時(shí)鐘與數(shù)傳時(shí)鐘差異的空閑時(shí)鐘來增加加密的安全性。
【發(fā)明內(nèi)容】
`[0006]針對上述存在的問題,本發(fā)明提出了一種安全性適應(yīng)速度變化的加密方法及裝置。
[0007]本發(fā)明所述的安全性適應(yīng)速度變化的加密系統(tǒng),其特征在與,該系統(tǒng)包括以下十個(gè)部分:
[0008]1.一種安全性適應(yīng)速度變化的加密系統(tǒng),其特征在于,該系統(tǒng)包括速度選擇模塊、系數(shù)計(jì)算模塊、晶振、鎖相環(huán)PLL1、鎖相環(huán)PLL2、明文輸入模塊、加密模塊、密鑰擴(kuò)展模塊、密文輸出模塊;
[0009]模塊1.速度選擇模塊的方式多種多樣,任意可以發(fā)送出表征加密速度的參數(shù)spi的方法或裝置(比如多路器或者速度自適應(yīng)裝置)都在允許之列。在這里,不妨假設(shè)使用多路器來作為速度選擇模塊。該模塊由一路選擇信號(hào)sel_sp通過一個(gè)多路器將預(yù)設(shè)的可選加密速度spl、sp2……spn選擇其中一個(gè),并將該信號(hào)作為一個(gè)系數(shù)發(fā)送給系數(shù)計(jì)算模塊用于計(jì)算鎖相環(huán)PLLl的分頻系數(shù)para_spl以及加密模塊可以使用的輪數(shù)r_max ;該模塊通過調(diào)節(jié)按鈕來改變sel_sp輸入信號(hào),從而達(dá)到速度選擇的目的;
[0010]模塊2.系數(shù)計(jì)算模塊接受速度選擇模塊發(fā)來的速度信號(hào)spi,并依據(jù)選擇的加密速度sp1、預(yù)設(shè)的明文輸入(密文輸出)分組長度data_io_blc以及明文輸入(密文輸出)時(shí)鐘數(shù)rd_io 計(jì)算出鎖相環(huán)PLLl 的分頻系數(shù)para_spl= (data_io_blc*rd_io*clk_pri) /spi ;依據(jù)選擇的加密速度sp1、加密模塊加載的加密算法分組長度crypt_blc以及加密模塊加載的加密算法的最大鐘頻crypt_clk計(jì)算出加密模塊可以使用的輪數(shù)r_max=spi/(crypt_blc氺crypt_clk);
[0011]模塊3.輪數(shù)計(jì)數(shù)器接受來自系數(shù)計(jì)算模塊的參數(shù)r_max,并將其作為計(jì)數(shù)器的上限值,通過在O和rjnax之間的計(jì)數(shù)操作,達(dá)到算法的輪數(shù)控制的目的,實(shí)現(xiàn)了根據(jù)速度的變化自動(dòng)變更輪數(shù)來改變其安全性能。
[0012]模塊4.晶振產(chǎn)生一個(gè)IOMHz的原始時(shí)鐘clk_pri,并將其發(fā)送到鎖相環(huán)PLLl用于生成明文輸入和密文輸出鐘頻clk_io ;發(fā)送到鎖相環(huán)PLL2用于生成加密時(shí)鐘clk_rd ;
[0013]模塊5.鎖相環(huán)PLLl根據(jù)晶振產(chǎn)生的原始時(shí)鐘clk_pri和系數(shù)計(jì)算模塊計(jì)算出的分頻系數(shù)para_spl,生成用于明文輸入和密文輸出的鐘頻clk_io,并將clk_io發(fā)送到明文輸入模塊和密文輸出模塊;
[0014]模塊6.鎖相環(huán)PLL2根據(jù)晶振產(chǎn)生的原始時(shí)鐘clk_pri和預(yù)先依據(jù)加密模塊加載的加密算法的最大鐘頻crypt_clk,計(jì)算出的鎖相環(huán)PLL2的分頻系數(shù)para_sp2= (clk_pri)/(crypt_clk),生成用于加密和密鑰擴(kuò)展的時(shí)鐘clk_rd,并將clk_rd發(fā)送到加密模塊;
[0015]模塊7.明文輸入模塊采用預(yù)設(shè)的明文輸入分組長度data_io_blc和明文輸入輪數(shù)rd_io,以及鎖相環(huán)PLLl生成的分頻時(shí)鐘clk_io,將明文輸入到加密模塊;
[0016]模塊8.加密模塊加載一種加密算法,接受系數(shù)計(jì)算模塊計(jì)算出來的輪數(shù)r_max對自身輪數(shù)進(jìn)行調(diào)節(jié),使用時(shí)鐘clk_rd,從明文輸入模塊輸入明文,并對其進(jìn)行加密,并將密文輸出到密文輸出模塊進(jìn)行輸出;
[0017]模塊9.密鑰擴(kuò)展模塊可以通過手動(dòng)輸入種子密鑰,也可以通過外接偽隨機(jī)序列生成模塊(如圖4)的方式自動(dòng)生成種子密鑰,接受到種子密鑰后,使用時(shí)鐘clk_rd,依據(jù)加密模塊加載的加密算法配套的密鑰擴(kuò)展方案,接受系數(shù)計(jì)算模塊計(jì)算出來的輪數(shù)r_max對自身產(chǎn)生輪密鑰數(shù)進(jìn)行調(diào)節(jié),生成輪密鑰,并發(fā)送給加密模塊;
[0018]模塊10.密鑰輸出模塊采用預(yù)設(shè)的密文輸出分組長度data_io_blc和密文輸出輪數(shù)rd_io,以及鎖相環(huán)PLLl生成的分頻時(shí)鐘clk_io,接受加密模塊傳來的密文,并輸出出去。
【專利附圖】
【附圖說明】
[0019]圖1為本發(fā)明的整體結(jié)構(gòu)示意圖;
[0020]圖2為速度選擇模塊示意圖;
[0021]圖3為偽隨機(jī)序列生成模塊示意圖;
[0022]圖4為系數(shù)計(jì)算模塊示意圖;
[0023]圖5為本發(fā)明提供方法的流程圖。
[0024]具體實(shí)施方法
[0025]具體實(shí)施步驟如圖1總體結(jié)構(gòu)示意圖和圖5方法流程圖所示:
[0026]步驟1:獲取數(shù)據(jù)傳輸?shù)乃俣?。觸發(fā)速度選擇模塊,通過調(diào)節(jié)按鈕來改變sel_sp輸入信號(hào),從而達(dá)到速度選擇的目的,并將選擇的加密速度spi傳到系數(shù)計(jì)算模塊,轉(zhuǎn)至步驟2。
[0027]步驟2:計(jì)算得出鎖相環(huán)PLLl的分頻系數(shù)para_spl和加密模塊可以使用的加密輪數(shù)r_max,實(shí)現(xiàn)輪數(shù)控制。觸發(fā)系數(shù)計(jì)算模塊,依據(jù)選擇的加密速度sp1、預(yù)設(shè)的明文輸入(密文輸出)分組長度data_io_blc以及明文輸入(密文輸出)時(shí)鐘數(shù)rd_io計(jì)算出鎖相環(huán)PLLl 的分頻系數(shù) para_spl=(data_io_blc*rd_io*clk_pri)/spi,并將其傳到鎖相環(huán) PLLl ;依據(jù)選擇的加密速度sp1、加密模塊加載的加密算法分組長度crypt_blc以及加密模塊加載的加密算法的最大鐘頻crypt_clk計(jì)算出加密模塊可以使用的輪數(shù)r_max=spi/(crypt_blc*crypt_clk),其中data_io_blc為明文輸入和密鑰輸出預(yù)設(shè)的分組長度,為常值;rd_io為明文輸入和密鑰輸出預(yù)設(shè)的時(shí)鐘數(shù),為已知預(yù)設(shè)值;clk_pri為晶振生成的原始時(shí)鐘;crypt_clk為加密模塊加載的加密算法的最大鐘頻,對特定的加密算法而言,為已知預(yù)設(shè)值;crypt_blc為加密模塊加載的加密算法的分組長度,對特定的加密算法而言,為常值;因此相對特定的spi,生成para_spl為常值,r_max為常值。將計(jì)算出的r_max值傳送到輪數(shù)計(jì)數(shù)器,作為計(jì)數(shù)器的上限值,從而實(shí)現(xiàn)輪數(shù)控制。轉(zhuǎn)到步驟3。
[0028]步驟3:輸入種子密鑰。種子密鑰的輸入有兩種方式,可以手動(dòng)輸入,也可以外接物理噪聲源自動(dòng)生成。
[0029]步驟4:明文輸入模塊讀取明文,并輸入到加密模塊中。鎖相環(huán)PLLl接受來自系數(shù)計(jì)算模塊的分頻系數(shù)para_spl,并進(jìn)行分頻處理,生成鐘頻clk_io,明文輸入模塊按照鐘頻cIk_iο,每個(gè)時(shí)鐘讀入data_io_bIc個(gè)比特?cái)?shù)據(jù),總計(jì)使用rd_io個(gè)時(shí)鐘完成明文輸入過程,并將輸入的明文轉(zhuǎn)到加密模塊,轉(zhuǎn)到步驟5。
[0030]步驟5:進(jìn)行密鑰擴(kuò)展,并將擴(kuò)展密鑰round key輸入到加密模塊中,加密模塊進(jìn)行加密。鎖相環(huán)PLL2接受來自系數(shù)計(jì)算模塊的分頻系數(shù)para_sp2,并進(jìn)行分頻處理,生成鐘頻clk_rd ;加密模塊和密鑰擴(kuò)展模塊按照鐘頻clk_rd進(jìn)行操作,同時(shí)接受輪數(shù)計(jì)數(shù)器的計(jì)數(shù)信號(hào)para_r的調(diào)節(jié)。轉(zhuǎn)到步驟6。
[0031]步驟6:密文輸出模塊輸出密文。密文輸出模塊按照鐘頻clk_io,每個(gè)時(shí)鐘輸出data_io_blc個(gè)比特?cái)?shù)據(jù),總計(jì)使用rd_io個(gè)時(shí)鐘完成密文輸出過程。加密結(jié)束。
[0032]本發(fā)明的有益效果:
[0033]本發(fā)明首次提供了一種安全性適應(yīng)速度變化的加密方法,適用于速度可變的硬件平臺(tái)中,適應(yīng)速度更改加密算法的輪數(shù),使得空閑操作時(shí)鐘得到充分利用來增加系統(tǒng)的安全性,在不增加加密裝置資源,不影響加密裝置速度變化的條件下,成功的更加了加密的安全性,實(shí)現(xiàn)了裝置性能的提高。本發(fā)明可以應(yīng)用在保密的硬件存儲(chǔ)設(shè)備的靜態(tài)加密、微波或光通信鏈路、計(jì)算機(jī)終端的接受或者發(fā)射端口等工業(yè)和技術(shù)生產(chǎn)中。
【權(quán)利要求】
1.一種安全性適應(yīng)速度變化的加密方法及裝置,其特征在于,該系統(tǒng)包括速度選擇模塊、系數(shù)計(jì)算模塊、晶振、鎖相環(huán)PLL1、鎖相環(huán)PLL2、明文輸入模塊、加密模塊、密鑰擴(kuò)展模塊、密文輸出模塊; 模塊1.速度選擇模塊的方式多種多樣,任意可以發(fā)送出表征加密速度的參數(shù)spi的方法或裝置(比如多路器或者速度自適應(yīng)裝置)都在允許之列。在這里,不妨假設(shè)使用多路器來作為速度選擇模塊。該模塊由一路選擇信號(hào)sel_sp通過一個(gè)多路器將預(yù)設(shè)的可選加密速度spl、sp2……spn選擇其中一個(gè),并將該信號(hào)作為一個(gè)系數(shù)發(fā)送給系數(shù)計(jì)算模塊用于計(jì)算鎖相環(huán)PLLl的分頻系數(shù)para_spl以及加密模塊可以使用的輪數(shù)r_max ;該模塊通過調(diào)節(jié)按鈕來改變sel_sp輸入信號(hào),從而達(dá)到速度選擇的目的; 模塊2.系數(shù)計(jì)算模塊接受速度選擇模塊發(fā)來的速度信號(hào)spi,并依據(jù)選擇的加密速度sp1、預(yù)設(shè)的明文輸入(密文輸出)分組長度data_io_blc以及明文輸入(密文輸出)時(shí)鐘數(shù) rd_io 計(jì)算出鎖相環(huán) PLLl 的分頻系數(shù) para_spl=(data_io_blc*rd_io*clk_pri)/spi ;依據(jù)選擇的加密速度sp1、加密模塊加載的加密算法分組長度crypt_blc以及加密模塊加載的加密算法的最大鐘頻crypt_clk計(jì)算出加密模塊可以使用的輪數(shù)r_max=spi/(crypt_blc氺crypt_clk); 模塊3.輪數(shù)計(jì)數(shù)器接受來自系數(shù)計(jì)算模塊的參數(shù)r_max,并將其作為計(jì)數(shù)器的上限值,通過在O和rjnax之間的計(jì)數(shù)操作,達(dá)到算法的輪數(shù)控制的目的,實(shí)現(xiàn)了根據(jù)速度的變化自動(dòng)變更輪數(shù)來改變其安全性能。 模塊4.晶振產(chǎn)生一個(gè)IOMHz的原始時(shí)鐘clk_pri,并將其發(fā)送到鎖相環(huán)PLLl用于生成明文輸入和密文輸出鐘 頻clk_io ;發(fā)送到鎖相環(huán)PLL2用于生成加密時(shí)鐘clk_rd ; 模塊5.鎖相環(huán)PLLl根據(jù)晶振產(chǎn)生的原始時(shí)鐘clk_pri和系數(shù)計(jì)算模塊計(jì)算出的分頻系數(shù)para_spl,生成用于明文輸入和密文輸出的鐘頻clk_io,并將clk_io發(fā)送到明文輸入模塊和密文輸出模塊; 模塊6.鎖相環(huán)PLL2根據(jù)晶振產(chǎn)生的原始時(shí)鐘clk_pri和預(yù)先依據(jù)加密模塊加載的加密算法的最大鐘頻crypt_clk,計(jì)算出的鎖相環(huán)PLL2的分頻系數(shù)para_sp2 = (clk_pri)/ (crypt_clk),生成用于加密和密鑰擴(kuò)展的時(shí)鐘clk_rd,并將clk_rd發(fā)送到加密模塊;模塊7.明文輸入模塊采用預(yù)設(shè)的明文輸入分組長度data_io_b I c和明文輸入輪數(shù)rd_io,以及鎖相環(huán)PLLl生成的分頻時(shí)鐘clk_io,將明文輸入到加密模塊; 模塊8.加密模塊加載一種加密算法,接受系數(shù)計(jì)算模塊計(jì)算出來的輪數(shù)r_max對自身輪數(shù)進(jìn)行調(diào)節(jié),使用時(shí)鐘clk_rd,從明文輸入模塊輸入明文,并對其進(jìn)行加密,并將密文輸出到密文輸出模塊進(jìn)行輸出; 模塊9.密鑰擴(kuò)展模塊可以通過手動(dòng)輸入種子密鑰,也可以通過外接偽隨機(jī)序列生成模塊(如圖4)的方式自動(dòng)生成種子密鑰,接受到種子密鑰后,使用時(shí)鐘clk_rd,依據(jù)加密模塊加載的加密算法配套的密鑰擴(kuò)展方案,接受系數(shù)計(jì)算模塊計(jì)算出來的輪數(shù)r_max對自身產(chǎn)生輪密鑰數(shù)進(jìn)行調(diào)節(jié),生成輪密鑰,并發(fā)送給加密模塊; 模塊10.密鑰輸出模塊采用預(yù)設(shè)的密文輸出分組長度data_io_blc和密文輸出輪數(shù)rd_io,以及鎖相環(huán)PLLl生成的分頻時(shí)鐘clk_io,接受加密模塊傳來的密文,并輸出出去。
【文檔編號(hào)】H04L9/06GK103607275SQ201310597201
【公開日】2014年2月26日 申請日期:2013年11月22日 優(yōu)先權(quán)日:2013年11月22日
【發(fā)明者】鄭志明, 張?bào)? 姚望, 姚丹丹, 韋衛(wèi), 姜鑫 申請人:北京航空航天大學(xué)