專利名稱:一種基于Petri網(wǎng)的分組密碼算法的硬件實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于Petri網(wǎng)的分組密碼算法的硬件實現(xiàn),屬于密碼算法硬件實現(xiàn)領(lǐng)域。
背景技術(shù):
信息安全問題日益重要,密碼技術(shù)是信息安全的核心技術(shù),各國均在不斷研究更高安全性、更高效的密碼算法。本發(fā)明涉及的基于Petri網(wǎng)的分組密碼算法是我國山東科技大學(xué)吳哲輝教授承擔的國家自然科學(xué)基金研究成果,設(shè)計思想不同于現(xiàn)有密碼體系,算法基本思路是選取一個唯一可達向量無界Petri網(wǎng),通過該Petri網(wǎng)的運行得到該Petri網(wǎng)部分可達標識集與達到此標識的可達向量集、通過整數(shù)的素因子分解和合成將Petri網(wǎng)的標識向量轉(zhuǎn)換為大整數(shù)、對此大整數(shù)及可達向量排序,并由可達標識與可達向量排序后的序號對應(yīng)關(guān)系確定一個2k元置換,從而實現(xiàn)k位分組密碼。該密碼算法重要特點是一次一密,且分組長度可調(diào),有效對抗現(xiàn)有密碼分析手段,從而有更好的安全性。置換關(guān)系只在加解密算法開始時計算一次,隨后對數(shù)據(jù)的加解密操作最終簡化為置換操作,加解密大數(shù)據(jù)量時,計算置換關(guān)系的初始開銷比重降低,加解密效率近似等于置換效率,效率較其他算法高。 該算法涉及的Petri網(wǎng)運算操作可以轉(zhuǎn)化為矩陣操作,算法復(fù)雜,涉及矩陣乘法、排序等操作,需要的計算量較大。采用純軟件實現(xiàn)時,在取分組長度為9的情況下,加密算法大致需要60萬次整數(shù)的加法、乘法和比較運算。經(jīng)過測試,在2. 40GHz的雙核CPU臺式機上,Petri網(wǎng)的關(guān)聯(lián)矩陣為4X6矩陣,L1為1, L2為7,計算置換表一次所花的時間為10ms。在嵌入式系統(tǒng)中,CPU運算能力、存儲等硬件資源都非常有限,純軟件實現(xiàn)該算法需要更長的時間,經(jīng)測試,在運行uCli皿x操作系統(tǒng)的NiosII/f微處理器平臺上,時鐘頻率100MHz,4Kbytes指令緩存,2Kbytes數(shù)據(jù)緩存的情況下,Petri網(wǎng)的關(guān)聯(lián)矩陣為4X6矩陣,L1為1,L2為7時,計算置換表的時間高達3470ms,這是實際應(yīng)用中是無法忍受的,因此限制了該算法在嵌入式系統(tǒng)中的應(yīng)用。采用硬件實現(xiàn)該算法是可行的解決方案。
發(fā)明內(nèi)容
本發(fā)明提出了一種基于Petri網(wǎng)的分組密碼算法的硬件實現(xiàn)方法。內(nèi)容包括
(1)將Petri網(wǎng)信息按矩陣形式表達,并傳送給硬件,硬件通過矩陣操作實現(xiàn)Petri網(wǎng)運行,單時鐘周期計算得到指定某Petri網(wǎng)標識的所有下一級可達標識,去除重復(fù)標識后加入系統(tǒng)可達標識集中并按計算順序附序號; (2)硬件采用有限狀態(tài)機控制,實現(xiàn)Petri網(wǎng)有效可達標識Mx間的排序;
(3)硬件采用有限狀態(tài)機控制,實現(xiàn)Mx序號與計算序號的對應(yīng)關(guān)系,得到置換表;
(4)核心電路外部掛接主流片上總線接口后可形成知識產(chǎn)權(quán)模塊(IP核),模塊內(nèi)部設(shè)計為硬件DMA方式從外部存取器中讀取明文/密文數(shù)據(jù),采用(3)中置換表置換后,寫出密文/明文數(shù)據(jù)。
3
本發(fā)明采用純硬件實現(xiàn)基于Petri網(wǎng)的分組密碼算法,顯著降低算法執(zhí)行時間,實測加解密速度相比純軟件實現(xiàn)可提高210倍,掃除了該算法在嵌入式系統(tǒng)中應(yīng)用的性能障礙。
圖1是本發(fā)明涉及的硬件功能電路框圖 圖2是基于Petri網(wǎng)的分組密碼算法的輸入說明 圖3是采用本發(fā)明涉及的方法,設(shè)計的基于avalon總線接口的Petri網(wǎng)密碼算法硬件IP核在實際系統(tǒng)中的連接圖
具體實施例方式
本實現(xiàn)例具體說明如何應(yīng)用本發(fā)明方法設(shè)計avalon總線接口的Petri網(wǎng)密碼算法硬件知識產(chǎn)權(quán)模塊(IP核)。 (1)將Petri網(wǎng)表達為關(guān)聯(lián)矩陣形式,如圖2所示,將示例4X6唯一可達無界Petri網(wǎng)表達為關(guān)聯(lián)矩陣A,將A輸入算法。同樣,將可達標識表達為向量形式。
(2) Petri網(wǎng)運行模土央 本模塊首先采用組合邏輯電路,根據(jù)公式Mx' = Mx+ATX并行計算可達標識Mx的所有下一級可達標識,在單周期內(nèi)完成。 采用有限狀態(tài)機FSM設(shè)計,對本次得到的下一個Mx',按順序判斷是否已在系統(tǒng)有效可達標識集內(nèi),若已存在,則舍棄,否則,將其加入系統(tǒng)有效可達標識集內(nèi),并按計算順序標序號。 (3)Mx排序模塊 生成足夠數(shù)量的可達標識后,有限狀態(tài)機FSM控制下進入Mx排序階段,按照一定的排序規(guī)則,對得到的Mx排序,并賦序號,選擇前2K個Mx子集。
(4)計算序重排序模塊 對按Mx本身排序選取的2K個Mx子集,按(2)中標識的計算序號重新排序,并重
按0 2K-1賦序號。 (5)置換表生成模塊 步驟(3)與(4)中的得到的兩個序號對應(yīng)關(guān)系即置換表,F(xiàn)SM控制下遍歷一次Mx,
即可輸出置換表。 (6)DMA方式置換模塊 為提高加解密效率,采用硬件DMA方式讀取數(shù)據(jù)、采用置換表置換、寫出數(shù)據(jù)。軟件只需要給出明文/密文buffer地址。DMA控制兩個主端口讀取數(shù)據(jù),根據(jù)置換表完成數(shù)據(jù)置換,并寫出數(shù)據(jù),完成后給出狀態(tài)信號或者中斷信號。
(7)外部總線接口模塊 在核心電路外圍添加標準總線接口 ,本例采用的是avalon總線,即可構(gòu)建知識產(chǎn)權(quán)IP核。 整個實例系統(tǒng)連接關(guān)系如圖3所示。
權(quán)利要求
一種基于petri網(wǎng)的分組密碼算法的硬件實現(xiàn)方法,其特征在于(1)硬件實現(xiàn)petri網(wǎng)運行,單時鐘周期計算得到指定某petri網(wǎng)標識的所有下一級可達標識,去除重復(fù)標識后加入系統(tǒng)可達標識集中并按計算順序附序號;(2)硬件實現(xiàn)petri網(wǎng)有效可達標識Mx間的排序;(3)硬件實現(xiàn)petri網(wǎng)有效可達標識Mx序號與計算序號的對應(yīng)關(guān)系,得到置換表;(4)對明文數(shù)據(jù)采用置換表置換,得到密文數(shù)據(jù),實現(xiàn)加密;或者對密文數(shù)據(jù)采用置換表置換,得到明文數(shù)據(jù),實現(xiàn)解密。
2. —種根據(jù)權(quán)利要求1所述方法設(shè)計Petri網(wǎng)分組密碼算法硬件知識產(chǎn)權(quán)模塊(IP 核)的方法,其特征在于(1) 核心電路采用權(quán)利要求1中(1)、 (2)、 (3)所述方法(2) 采用主流片上總線接口 (如wishbone, avalon, amba等),設(shè)計硬件DMA方式從外 部存儲器中讀取明文/密文數(shù)據(jù),采用置換表置換后,寫出密文/明文數(shù)據(jù)。
全文摘要
一種基于petri網(wǎng)的分組密碼算法的硬件實現(xiàn),屬于密碼算法硬件實現(xiàn)領(lǐng)域。本發(fā)明的技術(shù)方案是(1)硬件實現(xiàn)petri網(wǎng)運行,單時鐘周期并行計算得到指定某petri網(wǎng)標識的所有下一級可達標識,去除重復(fù)標識后加入系統(tǒng)可達標識集中并按計算順序附序號;(2)硬件實現(xiàn)petri網(wǎng)有效可達標識Mx間的排序;(3)硬件實現(xiàn)Mx序號與計算序號的對應(yīng)關(guān)系,得到置換表;(4)采用主流片上總線接口,硬件DMA方式從外部存取器中讀取明文/密文數(shù)據(jù),采用(3)中置換表置換后,寫出密文/明文數(shù)據(jù)。本發(fā)明采用純硬件實現(xiàn)基于petri網(wǎng)的分組密碼算法,顯著降低算法執(zhí)行時間,實測加解密速度相比純軟件實現(xiàn)可提高210倍。
文檔編號H04L9/14GK101719827SQ20091025369
公開日2010年6月2日 申請日期2009年12月3日 優(yōu)先權(quán)日2009年12月3日
發(fā)明者吳振寰, 張德學(xué), 沈國新, 焦?jié)h明, 羅虎, 陳新華 申請人:山東科技大學(xué)