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