《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 利用異步采樣電路提高SRAM工藝FPGA的設計安全性

利用異步采樣電路提高SRAM工藝FPGA的設計安全性

2008-05-07
作者:陳文濤, 金德鵬, 曾烈光

  摘 要: 提出了一種利用外接CPLD提高SRAM工藝FPGA設計安全性的方法。該方法利用異步采樣電路的不確定性生成隨機序列,并且每次上電" title="上電">上電都產生不同的隨機序列,斷絕了剽竊者通過克隆序列對系統進行破解的可能性。此外,芯片之間通信采用了M序列加密,以進一步增強系統的安全性。
  關鍵詞: SRAM工藝FPGA 設計安全性 異步采樣電路 M序列


  隨著FPGA的容量、性能以及可靠性的提高及其在消費電子、汽車電子等領域的大規模應用,FPGA設計的安全性問題越來越引起人們的關注。相比其他工藝FPGA而言,處于主流地位的SRAM工藝FPGA有一些優勢,但是由于SRAM的易失性,掉電以后芯片中的配置信息將丟失,所以每次系統上電時都需要重新配置。這就使得剽竊者可以通過對FPGA的配置數據引腳進行采樣,得到該FPGA的配置數據流,實現對FPGA內部設計電路" title="設計電路">設計電路的克隆。為了保護設計者的知識產權以及推動SRAM工藝FPGA更大規模的應用,產業界和學術界從加密算法的角度對SRAM工藝FPGA的設計安全性提出了多種解決方案[1~2]
  異步電路的競爭和險象問題所導致的不確定性,是數字電路設計中令人頭疼的問題。但是,如果把這種不確定性應用在本安全方案中,同樣可以困擾剽竊者,從而更有效地保護設計。為此,本文提出了利用異步采樣電路的不確定性提高SRAM工藝FPGA設計安全性的方法,以提高系統的安全性。
1 方案簡介
1.1 設計方案的指導思想
  (1) CPLD是難以用反向工程等物理手段進行破解的,而且用這些方法破解CPLD的成本和設計的開發成本相近。Xilinx公司聲稱其CoolRunner-II系列CPLD的安全性完全可以達到ASIC相當的等級[3]。并且,CPLD也可以用抗攻擊性強的小規模反熔絲FPGA來代替[4]
  (2) CPLD中觸發器資源較少,因此應盡量降低CPLD中的電路復雜度。
  本方案借助了跳頻的理念,在FPGA和CPLD中分別保存兩個密鑰表,在一開始同步之后,FPGA中的密鑰選擇狀態機根據異步采樣電路輸出的狀態跳轉指示信號進行跳轉。同時CPLD接收FPGA送來的狀態跳轉信號,其中的密鑰狀態機也進行相應的跳轉,并將密鑰傳回給FPGA。在沒有差錯的情況下,這兩個狀態機將一致地跳轉。FPGA通過對CPLD送來的密鑰進行確認來驗證CPLD的合法性:檢驗是否和自己的密鑰狀態機所選擇的密鑰一致,如果一致,則說明所連接的CPLD為合法的CPLD,FPGA電路正常工作;否則認為所連接的CPLD為非法,停止FPGA電路工作。由以上指導思想設計的系統框圖如圖1所示。


  此外,CPLD向FPGA傳遞的密鑰先利用M序列進行加密,這樣使得對系統的破解首先需要對M序列加密算法進行破解,從而進一步提高了系統的抗攻擊能力。
1.2 異步采樣電路
  溫度的變化、電壓的波動等因素都會使晶振所輸出的時鐘發生抖動。因此,用一個時鐘去采樣另一個時鐘驅動的信號,其采樣值是不可預測的。異步采樣電路的機理就是利用兩個時鐘之間相位和頻率的不確定性,產生一個不可預測的序列。單比特異步采樣電路的示意圖如圖2所示。圖中有4個觸發器(FF1、FF2、FF3、FF4)和兩個時鐘(clk、clks)。FF1、FF2由clks信號驅動,其中FF1是用于防止亞穩態出現的觸發器,它的輸入信號同步于clk的信號,FF2的輸出信號則同步于clks的信號。FF3、FF4由clk信號驅動,其中FF3的作用和FF1類似,用于防止亞穩態的出現,它的輸入信號同步于clks的信號;FF4的輸出信號則同步于clk的信號。通過上述處理后,FF4的輸出產生了一個隨機序列,這個隨機序列不同于同步電路產生的偽隨機序列" title="偽隨機序列">偽隨機序列,其狀態的轉移同溫度、電壓等外界因素有關,是一個完全不可預測的隨機序列。此外,異步采樣電路對兩個時鐘之間的相位敏感,所以在電路板每次上電時所生成的序列也是不同的。


  異步采樣模塊的VHDL實現如下:
  --this process is triggered by clks
  process(rst, clks)
    begin
      if rst=‘0’ then
        ff1 <= (others=>‘0’);
        ff2 <= (others=>‘0’);
      elsif clks‘event and clks=‘1’ then
        ff1 <= din; --din is the signal triggered by clk
        ff2 <= ff1;
      end if;
  end process;
  -- this process is triggered by clk
  process(rst, clk)
  begin
    if rst=‘0’ then
      ff3 <= (others=>‘0’);
      ff4 <= (others=>‘0’);
    elsif clk′event and clk=‘1’ then
      ff3 <= ff2;
      ff4 <= ff3;
    end if;
  end process;
  dout <= ff4; -- dout is output random signal
  其中:din為同步于clk的輸入序列,dout為輸出的隨機序列。
  將本文所設計的方法應用到Altera公司的Cyclone[5]系列FPGA中,利用Quartus II中的SignalTapII Logical Analyzer工具,兩次采樣復位后FPGA內異步采樣電路的輸入輸出信號,得到如圖3所示的波形,其中兩個時鐘:clk為2.000MHz,clks為2.048MHz。觀察系統復位后異步采樣電路輸出序列的隨機性可以發現,每次將系統復位后,采用同步電路設計的偽隨機序列發生器產生相同的偽隨機序列(din);但是,將這個偽隨機序列(din)輸入異步采樣電路后,在輸出(dout)卻得到不同的隨機序列。這說明同一塊電路板每次上電時都將生成不同的隨機序列。


1.3 密鑰選擇狀態機
  FPGA和CPLD中各有一個完全相同的密鑰選擇狀態機,該狀態機根據異步采樣電路輸出的隨機序列進行跳轉,其跳轉規則可以自定義。在本文設計的系統中,密鑰表中存放有8個32位長的密鑰,密鑰狀態機共有8個狀態,記為狀態0~狀態7,每個狀態分別對應一個密鑰,記為密鑰0~密鑰7。
  假設當前狀態為狀態i,異步采樣電路的輸出為j,其中i、j∈N,且0≤i, j≤7。那么可以采用如下簡單的跳轉規則:當采樣電路的輸出為0時,跳轉到狀態0;否則,跳轉到狀態(i+j)mod8。為了提高系統的安全性,也可以采用各種無序的跳轉規則,通過改變跳轉規則和密鑰表,可以得到不同的系統。
1.4 M序列加密解密電路
  由于CPLD向FPGA傳遞密鑰之前,先利用M序列進行加密,使得對系統的破解首先需要對M序列加密算法進行破解,這樣既防止了密鑰的明文傳輸,又提高了系統的安全性。之所以采用M序列作為加密算法,主要考慮的是解密的自同步特性。此外根據本設計的假設即CPLD的破解是不可行的,考慮到CPLD觸發器資源緊張,對FPGA向CPLD之間的跳轉指示信號的傳輸沒有進行加密,為此而節省了CPLD中的電路。
  M序列的級數越大,生成的隨機序列的周期越長,破解的難度也越大。這里采用20階的M序列,其本原多項式為x20+x3+1。
1.5 密鑰校驗
  CPLD將其密鑰狀態機所對應的密鑰回送給FPGA,FPGA則通過對CPLD送來的密鑰進行確認來驗證CPLD的合法性。為了不至于多占用引腳,32位密鑰是串行傳輸" title="串行傳輸">串行傳輸的。串行傳輸給剽竊者的破解也增加了難度,但同時帶來的問題是:FPGA需要先進行同步和串并轉換之后才能進行密鑰校驗。


  密鑰校驗的狀態機如圖4所示。狀態機共有失步" title="失步">失步、預同步、同步和保護四種狀態。預同步狀態的設置是為了防止假同步,只有連續三次校驗正確才認為找到了同步。保護狀態的設置是為了防止誤碼引起不必要的失步,使得偶爾的誤碼并不會導致校驗狀態機失步。下面分別介紹密鑰校驗電路在這四種狀態的具體工作方式:
  (1)失步狀態:系統剛啟動時,FPGA的密鑰校驗狀態機處于失步狀態,此時異步采樣電路不工作,輸出為0,CPLD一直發送密鑰0。密鑰校驗電路在M序列解密電路輸出的串行密鑰流里搜索密鑰0的碼型,在搜索到密鑰0的碼型后,密鑰校驗狀態機跳轉到預同步狀態。
  (2)預同步狀態:當密鑰校驗狀態機處于預同步狀態時,異步采樣電路仍然不工作,輸出跳轉指示為0,CPLD仍發送密鑰0。密鑰校驗電路進行密鑰0校驗,如果連續三次密鑰校驗正確,則進入同步態;否則返回失步態重新進行密鑰搜索。
  (3)同步狀態:此時異步采樣電路開始工作,輸出隨機序列指示FPGA和CPLD中兩個密鑰狀態機進行跳轉。此時密鑰校驗電路將CPLD送來的密鑰和FPGA內部選擇的密鑰進行對比,如果發生校驗錯誤則跳轉至保護狀態;否則繼續進行密鑰校驗工作。
  (4)保護狀態:異步采樣電路依然工作,密鑰校驗電路繼續進行密鑰校驗,如果連續三次密鑰校驗錯誤則跳轉到失步狀態重新進行密鑰搜索;否則返回同步狀態。
  在密鑰校驗電路中設有錯誤計數器,該計數器在失步狀態下計數。一旦錯誤計數器的計數超過設定的閾值,則認為密鑰檢驗失敗,停止FPGA電路的工作使能。
2 安全性分析
  這里列舉幾種常見的攻擊方法,并簡要分析本方案在這些攻擊下的安全性。由于本設計假設CPLD的破解是不可行的,所以不考慮對CPLD進行反向工程直接破解等方法。
2.1 對配置數據流進行采樣
  剽竊者通過對FPGA的配置數據引腳(圖1中的位置①)進行采樣,得到該FPGA的配置數據流,實現對FPGA內部設計電路的克隆。
  這種方法顯然是不可行的,因為FPGA只有在確認了所連接的為合法CPLD以后才能正常工作,也就是說,需要同時克隆一份CPLD內的設計才能使得FPGA正常工作。
2.2 對密鑰數據流進行采樣
  剽竊者利用2.1中所述方法對FPGA內部設計電路進行克隆以后,又對密鑰數據流(圖1中的位置②)進行采樣,用存儲器將這些密鑰數據流存起來,在FPGA上電后將這個密鑰數據流發送給FPGA,企圖模擬一個合法的CPLD。
  這種方法也是不可行的。因為異步采樣電路對兩個時鐘之間的相位敏感,所以在電路板每次上電時所生成的隨機序列是不同的,也就是說,每次上電后產生的密鑰數據流是不同的。因此,經過這次采樣得到的密鑰數據流,下次上電時能用的可能性很小。
2.3 CPLD工作原理分析
  由以上分析可以發現,本方案能夠很好地抵抗克隆攻擊。所以,要破解本方案,剽竊者只有同時對FPGA和CPLD之間的數據進行采樣(圖1中的位置②和③),根據CPLD的輸入輸出分析CPLD的工作原理,從算法層面上破解CPLD,但很難成功破解。因為:
  (1)由于FPGA和CPLD之間的密鑰數據流經過M序列
  加密以后再進行傳輸,所以破解M序列加密算法是分析CPLD的第一步。同時加密時因采用了20階M序列,并且每32個周期改變一下密鑰,提高了序列綜合進行分析的難度。
  (2)有8個32位的密鑰,而密鑰的長度和個數對于剽竊者來說都是未知的。
  (3)在破解了M序列加密算法和獲得所有的密鑰以后,還需要破解毫無規律的密鑰選擇狀態機。即使一個8狀態的狀態機,因每個狀態有8種轉移的可能性,總的轉移關系就有88=16 777 216種。
  因此,想要破解本系統所需的精力和成本都相當高。剽竊者需要知道足夠的系統設計參數,例如M序列生成多項式、密鑰個數、密鑰長度、密鑰狀態機個數以及密鑰選擇狀態機轉移規則等,才能對本方案成功破解。
  對FPGA設計安全性的思考源于所采用的Xilinx公司的Spartan3系列和Altera公司的Cyclone系列FPGA進行產品的開發。本文所提出的方案是利用異步采樣電路的不確定性使得系統不易被克隆。將該方案融合到其他加密方案中,可進一步提高這些方案的安全性。
參考文獻
1 Xilinx Coporation. Virtex-II platform FPGA Handbook[EB/OL]. Available on www.xilinx.com,2004
2 Bossuet L, Gogniat G, Burleson W. Dynamically configurablesecurity for SRAM FPGA bitstreams[A]. In Proceedings of the 18th international parallel and distributed processing symposium[C], 2004:146~152
3 Xilinx Coporation. CoolRunner-II CPLD in secure applica-tions[EB/OL]. Available on www.xilinx.com, 2002
4 Actel Corporation.Understanding actel antifuse device security[EB/OL]. Available on www.actel.com, 2004
5 Altera Corporation. Cyclone device handbook datasheet[EB/OL]. http://www.altera.com, 2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产欧美精品区一区二区三区 | 国产成人免费观看在线视频 | 深夜影院老司机69影院 | 爱啪啪网 | 亚洲色欲色欲综合网站 | 在线观看亚洲天堂 | 国产h视频| 亚洲免费视频观看 | 西西人体大胆77777视频 | 日韩视频在线一区 | 老司机精品久久最新免费 | 日韩国产片 | 欧美精品一级 | 在线毛片免费 | 视频区小说区图片区激情 | 在线色影院 | 一个人看www免费视频 | 国产精品入口麻豆免费看 | 一级做a爰片鸭王 | 一区二区三区免费在线观看 | 久久免费特黄毛片 | 亚洲激情专区 | 重口高h 全肉 文调教bl | 麻豆md国产在线观看 | 亚洲视频精品在线观看 | 国产又色又爽又黄的视频在线观看 | 国产www在线观看 | 中国黄色在线观看 | 精品无人区一区二区三区a 精品午夜国产在线观看不卡 | 日韩欧美在线观看一区 | 日本视频中文字幕 | 精品欧美一区二区三区 | 视频在线你懂的 | 成人综合网站 | 日本 欧美 在线 | 高h文bl | 天天好比网 | 国产伦一区二区三区高清 | 成年男女免费视频网站播放 | 亚洲 午夜在线一区 | 亚洲一区二区三区香蕉 |