指紋方法
【專利摘要】本發明屬于IP芯核集成電路的IP保護【技術領域】,是對IP芯核進行數字指紋嵌入和驗證的一種指紋方法。包括指紋嵌入部分和指紋驗證部分。指紋嵌入部分包括:首先把版權信息加密后生成數字指紋,IP設計經過預處理后,完成數字指紋與網表單元的映射,將映射的網表單元固定,運行EDA電路劃分工具,完成數字指紋的嵌入。指紋驗證部分包括:在數字指紋系統數據庫中,由IP的編號查找用戶對應的數字指紋,并提取原始IP網表數據文件,生成當前用戶經指紋保護的IP模塊,并生成與待驗證IP同一層次的IP模塊,采用模糊匹配算法與存在版權糾紛的IP模塊進行比對。該指紋方法效率高、費用低和開銷低。
【專利說明】指紋方法
【技術領域】
[0001]本發明屬于IP芯核集成電路的IP保護【技術領域】,是對IP芯核進行數字指紋嵌入和驗證的一種指紋方法。
【背景技術】
[0002]隨著半導體技術的飛速發展,超大規模集成電路(VLSI)系統高度的復雜化給芯片設計提出了新的要求,依靠傳統的設計方法已無法滿足當今芯片設計的需求。片上系統(SoC)設計作為新型高效的設計方法,解決了集成電路設計成本、性能和低電耗等問題。IP(Intellectual Property)復用在SoC設計中對解決設計層次、降低產品成本、縮短設計周期、降低市場風險起到了關鍵性的作用,但同時也暴露了很大的風險。隨著近年來IP盜版在亞洲尤其是在中國的泛濫,IP的安全正在受到威脅,IP所有者和IP的用戶正在受到侵犯,國民經濟和社會發展受到阻礙。IP保護技術這一重要課題也因而受到人們的普遍關注并得到了飛快發展。
[0003]為了解決IP安全問題,在VLSI設計的各個層面出現了大量IP保護技術,如標簽技術、指紋技術和數字水印技術等。標簽技術如PUF (Physically Unclonable Function)通過在IP核內部設置“標簽”存放版權信息,并通過外部“檢測器”來檢測標簽的存在與否。數字水印技術把不可見的、難以除掉的代碼永久地保存到設計中以到達IP保護目的。數字水印技術在VLSI設計的前端和后端過程都得到了長足的發展。
[0004]IP保護數字指紋技術由Lach等提出,以解決方案的劃分為基礎,把一個最初的解決方案劃分成很多部分,為每一部分提供幾種不同的實現形式,通過選擇不同組合來生成一定數量的功能相同、結構不同的IP設計。Caldwell等提出一種基于遞增迭代優化技術的IP數字指紋保護方法。相比較于Lach等的方法,此方案的實現開銷更低,能更有效地抵抗共謀攻擊。Qu將額外約束疊加到原始設計問題并產生大量帶有指紋的IP設計。
【發明內容】
[0005]本發明的目的是為解決IP保護與驗證問題,提供一種高效率、低費用和低開銷的數字指紋方法。
[0006]本發明為解決技術問題所采用的技術方案是:
本發明所述的一種指紋方法,首先對IP芯核進行數字指紋嵌入,包括順序執行以下步
驟:
(A)生成特定用戶的IP版權信息;
(B)生成數字指紋,利用加密算法加密上述特定用戶的IP版權信息生成數字指紋;
(C)拆分數字指紋,把數字指紋按一定大小順序分組,得到若干數字指紋塊;
(D)數字指紋塊與網表單元的映射,順序以數字指紋塊為輸入,采用混合同余法生成范圍在網表數據文件中的網表單元總數以內的隨機數,選定單元序號為該隨機數的網表單元與所述數字指紋匹配; (E)網表單元的處理,將上一步驟映射的網表單元移動到固定電路分區;
(F)循環執行過程(D)?(E),直至所有的指紋信息的數字指紋塊全部完成映射;
(G)數字指紋的嵌入保護;運行EDA電路劃分工具,輸出帶有該特定用戶數字指紋信息的IP芯核的網表數據文件,用于生成用戶所需要的IP模塊。
[0007]上述指紋方法,在數字指紋塊與網表單元的映射之前,利用post script對IP設計網表數據文件中的數據預處理,至少提取并保留網表單元序號、分區號、權重、節點信息,得到簡化的網表文件;隨后進行的數字指紋塊與網表單元的映射是針對簡化的網表數據文件進行的。
[0008]上述指紋方法,在網表單元處理之前,根據網表數據文件中的網表單元所在線網的單元數目判斷是否對該單元進行指紋保護,如該線網的單元數目大于特定值,則該網表單元不做處理,如該線網的單元數目小于等于特定值則進入網表單元處理步驟。
[0009]上述任意一項所述的指紋方法,輸出帶有該特定用戶數字指紋信息的IP芯核的網表數據文件之后,至少將所述網表數據文件、IP版權信息、加密密鑰以及數字指紋,委托可信任的第三方權威機構保存。
[0010]采用上述技術方案后,該指紋方法提出了基于FPGA保護的多層次的指紋保護系統,首先在網表層嵌入指紋,然后在二進制流層嵌入相同的指紋,在VLSI設計前端過程對電路網表文件進行操作,通過單元固定嵌入數字指紋。該方法嵌入的數字指紋具有安全性高、使用便利、資源開銷低、抗共謀攻擊等特點。與接近的【背景技術】相比較,本發明所述的數字指紋方法具有以下優點:(一)具有透明性。此方法可對任意集成電路的網表數據文件(cdl, spice, aucdl等格式)進行數字指紋操作。可以對不同設計方法、不同工藝下所有種類的IP進行數字指紋保護,具有普遍性與透明性。(二)本發明在VLSI物理設計前端過程操作網表文件,可根據用戶需求運行EDA工具生成各種形式的IP模塊,提高了數字指紋IP保護的便利性和安全性。(三)本發明提出的IP保護數字指紋可適用于ASIC模塊和FPGA模塊,發生版權糾紛時明確IP所有者與IP用戶的責任。(四)本發明利用模糊匹配算法對存在版權糾紛的IP模塊進行分析比對,提高了 IP驗證的準確度。(五)本發明利用真隨機數和多種加密算法生成數字指紋,提高了數字指紋系統的安全性。
【專利附圖】
【附圖說明】
[0011]圖1是本發明中數字指紋的嵌入以及備案保存過程的流程圖。
[0012]圖2是本發明中利用數字指紋方法實施IP保護和驗證的流程圖。
[0013]圖3是本發明中數字指紋產生方法的流程圖。
[0014]圖4是本發明中IP數字指紋化的流程圖。
[0015]圖5是本發明中線網指紋化無向圖的生成示意圖。
[0016]圖6是本發明中IP驗證的流程圖。
【具體實施方式】
[0017]如圖1所示,本發明所述的一種指紋方法首先對IP芯核進行數字指紋嵌入,包括順序執行以下步驟:
(A)生成特定用戶的IP版權信息; (B)生成數字指紋,利用加密算法加密上述特定用戶的IP版權信息生成數字指紋;
(C)拆分數字指紋,把數字指紋按一定大小順序分組,得到若干數字指紋塊;
(D)數字指紋塊與網表單元的映射,順序以數字指紋塊為輸入,采用混合同余法生成范圍在網表數據文件中的網表單元總數以內的隨機數,選定單元序號為該隨機數的網表單元與所述數字指紋匹配;
(E)網表單元的處理,將上一步驟映射的網表單元移動到固定電路分區;
(F)循環執行過程(D)?(E),直至所有的指紋信息的數字指紋塊全部完成映射;
(G)數字指紋的嵌入保護;運行EDA電路劃分工具,輸出帶有該特定用戶數字指紋信息的IP芯核的網表數據文件。
[0018]其中,在數字指紋塊與網表單元的映射之前,利用post script對IP設計網表數據文件中的數據預處理,至少提取并保留網表單元序號、分區號、權重、節點信息,得到簡化的網表文件;隨后進行的數字指紋塊與網表單元的映射是針對簡化的網表數據文件進行的。經過預處理的網表文件信息量大為減少,有利于提高運行效率,降低運行成本。
[0019]另外,還可以在網表單元處理之前,根據網表數據文件中的網表單元所在線網的單元數目判斷是否對該單元進行指紋保護,如該線網的單元數目大于特定值,則該網表單元不做處理,如該線網的單元數目小于等于特定值則進入網表單元處理步驟。這樣也可以減小系統運行負擔,提聞運行效率。
[0020]另外,為便于日后出現知識產權糾紛時比對指紋特征,在生成并輸出帶有該特定用戶數字指紋信息的IP芯核的網表數據文件之后,至少將所述網表數據文件、IP版權信息、加密密鑰以及數字指紋,委托可信任的第三方權威機構保存。
[0021]實施例1:
本發明提供了保護IP的數字指紋方法,在IP發布前通過如上所述步驟嵌入IP所有者和IP用戶信息聯合生成的數字指紋。在發生侵權糾紛后,通過先前保存在第三方權威機構數據庫中的數據生成IP模塊樣本,利用模糊匹配算法與被控侵權方提供的目標IP模塊進行比對,通過比對不僅可以判斷IP的合法性,在IP模塊侵權的情況下還可以分清侵權責任方。IP所有者指的是擁有IP產權的企業、團體及個人。IP用戶指的是任何購買使用IP的企業、團體或個人。
[0022]本發明實施IP保護的另一個前提是必須有一個可信任的第三方權威機構,負責保存和記錄數字指紋信息以及受保護的IP。任何IP發布前,必須到第三方進行申請和登記。登記內容包括IP設計網表文件、IP版權信息、加密密鑰、IP數字指紋以及IP數字指紋保護過程中產生的其它相關信息等。第三方同時負責IP數字指紋的嵌入、驗證以及版權裁
定等工作。
[0023]本發明在VLSI設計前端過程對電路網表文件進行操作,通過指紋映射與單元固定嵌入數字指紋,運行EDA工具生成各種形式的IP。該方法嵌入的數字指紋具有安全性高、驗證準確、使用便利、資源開銷低、抗共謀攻擊等特點。
[0024]下面根據附圖對本發明的【具體實施方式】具體說明。
[0025]圖1是本發明中數字指紋的嵌入以及備案保存過程的流程圖。圖2是本發明中利用數字指紋方法實施IP保護和驗證的流程圖。
[0026]如圖1、圖2所示,數字指紋的嵌入流程如下: (I)首先采集IP所有者和IP用戶的相關識別數據信息,如公司名稱、組織機構代碼、自然人的姓名等具有識別意義的字符生成針對該特定用戶的IP版權信息;該IP版權信息內含IP所有者和IP用戶共同的識別信息,若IP模塊遭到非法復制或篡改,IP驗證器可明確是哪位用戶或提供商進行了 IP非法行為。
[0027](2)利用真隨機數發生器生成數據加密密鑰Key,利用單向hash算法MD5處理版權信息文件生成16進制數序列,再經過RC4算法加密生成所需數字指紋。當然,也可以采用其他加密算法生成數字指紋,其目的是將可識別的數據加密形成未經解密不可識別的數據,避免非授權用戶使用。
[0028](3)數字指紋生成以后即可進入IP數字指紋保護階段,將數字指紋經過指紋嵌入器處理后嵌入受保護的IP。
[0029](4)為便于日后出現知識產權糾紛時比對指紋特征,在IP數字指紋保護完成之后,將產生的網表數據文件、IP版權信息、加密密鑰以及數字指紋,委托可信任的第三方權威機構保存。第三方可根據 申請人:提供的上述數據,加入時間戳,并生成數字指紋。若IP模塊遭到非法復制或篡改,便可使用IP驗證器鑒別是哪位用戶或提供商進行了 IP非法行為。若非法IP模塊與標準IP模塊(指的是從數據庫提取并指紋化的IP模塊)完全匹配,則斷定版權侵犯人為IP用戶。否則,IP所有者應為IP侵權負責。
[0030]數字指紋的驗證就是根據第三方保存的數字指紋信息對存在版權糾紛的IP模塊進行合法性驗證。當IP用戶或IP所有者需要確認存在糾紛的IP是否合法時,提出驗證申請,第三方權威機構利用本發明的IP工具從信息庫提取數字指紋,生成指紋保護的IP模塊,完成與存在版權糾紛的IP模塊的模糊匹配比對,驗證該IP的合法性。或者,當IP利用的任何一方對某一正在使用的IP產生質疑時,可向第三方權威機構提出驗證申請,根據驗證結果,進行IP合法性的權威裁定。
[0031]圖4給出了數字指紋生成的過程。根據IP所有者和IP用戶提交的IP版權信息生成版權信息文件,第三方權威機構進行信息檢查,使用MD5散列算法進行處理減少信息冗余。利用真隨機數發生器產生加密私用密鑰Key,利用RC4加密算法對版權信息文本文件加密生成數字指紋,增強系統安全性。
[0032]圖5給出了本發明中數字指紋方法的嵌入流程。一個以網表形式存在的IP,在經過本發明提供的工具進行數字指紋保護后,可繼續進行后續的設計制作流程。
[0033]過程開始,首先根據用戶提供的IP網表文件格式進行初始化,利用post script對IP設計網表數據文件中的數據預處理,至少提取并保留網表單元序號、分區號、權重、節點信息,得到簡化的網表文件;隨后進行的數字指紋塊與網表單元的映射是針對簡化的網表數據文件進行的。使網表形式的數據更易于處理;數據準備完成之后,將先前生成的數字指紋拆分成若干塊,每一數字指紋塊采用混合同余法生成隨機數,將此隨機數定義為將要進行數字指紋化的電路單元編號,完成一個數字指紋塊與電路單元的映射,多次循環執行映射過程,直到所有數字指紋塊全部完成映射。
[0034]圖5為單元固定的示例圖,其中帶剖面線的單元4為映射的單元,被隨機固定在PI分區。首先判斷單元所在線網中引腳的數目是否小于某一極限值η (如η〈7),如果符合條件,則將該單元固定于某一隨機分區,繼續下一個數字指紋塊的映射處理。如果數字指紋全部嵌入成功,返回受保護IP的線網數據文件,以上生成的信息納入數據庫保管。[0035]圖6給出了本發明中數字指紋方法的驗證流程。過程開始IP所有者或用戶需提交將要驗證IP產品相關信息(包括IP編號、數據文件等)。根據IP編號從數字指紋系統數據庫查找用戶對應的數字指紋,并提取原始未經數字指紋化的IP網表數據文件。按照數字指紋嵌入步驟,生成當前用戶經指紋保護的IP模塊,并運行EDA工具生成與待驗證IP同一層次的IP模塊,采用模糊匹配算法與存在版權糾紛的IP模塊進行比對,完成IP的驗證。根據IP判定結果以及判定過程所產生的各種數據撰寫驗證報告并存檔。
[0036]當然,本發明中網表數據文件的簡化處理過程提供了一個更優化的實施例,在其他實施例中也可以不經簡化處理直接對網表數據文件的電路單元經行映射。
[0037]另外,在網表單元處理之前,根據網表數據文件中的網表單元所在線網的單元數目判斷是否對該單元進行指紋保護,也是為提高效率采取的措施,并非必須的步驟,在其他實施例中也可以不經判斷,對所有網表單元進行指紋保護。
【權利要求】
1.一種指紋方法,其特征在于:對IP芯核進行數字指紋嵌入,包括順序執行以下步驟: (A)生成特定用戶的IP版權信息; (B)生成數字指紋,利用加密算法加密上述特定用戶的IP版權信息生成數字指紋; (C)拆分數字指紋,把數字指紋按一定大小順序分組,得到若干數字指紋塊; (D)數字指紋塊與網表單元的映射,順序以數字指紋塊為輸入,采用混合同余法生成范圍在網表數據文件中的網表單元總數以內的隨機數,選定單元序號為該隨機數的網表單元與所述數字指紋匹配; (E)網表單元的處理,將上一步驟映射的網表單元移動到固定電路分區; (F)循環執行過程(D)?(E),直至所有的指紋信息的數字指紋塊全部完成映射; (G)數字指紋的嵌入保護;運行EDA電路劃分工具,輸出帶有該特定用戶數字指紋信息的IP芯核的網表數據文件。
2.根據權利要求1所述的指紋方法,其特征在于:在數字指紋塊與網表單元的映射之前,利用post script對IP設計網表數據文件中的數據預處理,至少提取并保留網表單元序號、分區號、權重、節點信息,得到簡化的網表文件;隨后進行的數字指紋塊與網表單元的映射是針對簡化的網表數據文件進行的。
3.根據權利要求1或2所述的指紋方法,其特征在于:在網表單元處理之前,根據網表數據文件中的網表單元所在線網的單元數目判斷是否對該單元進行指紋保護,如該線網的單元數目大于特定值,則該網表單元不做處理,如該線網的單元數目小于等于特定值則進入網表單元處理步驟。
4.根據權利要求1-3任意一項所述的指紋方法,其特征在于:輸出帶有該特定用戶數字指紋信息的IP芯核的網表數據文件之后,至少將所述網表數據文件、IP版權信息、加密密鑰以及數字指紋,委托可信任的第三方權威機構保存。
【文檔編號】G06F21/16GK103984886SQ201410241695
【公開日】2014年8月13日 申請日期:2014年6月3日 優先權日:2014年6月3日
【發明者】聶廷遠 申請人:青島理工大學