日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > EDA > 電子設(shè)計自動化
[導讀]隨著FPGA的容量、性能以及可靠性的提高及其在消費電子、汽車電子等領(lǐng)域的大規(guī)模應(yīng)用,F(xiàn)PGA設(shè)計的安全性問題越來越引起人們的關(guān)注。相比其他工藝FPGA而言,處于主流地位的SRAM工藝FPGA有一些優(yōu)勢,但是由于SRAM的易失

隨著FPGA的容量、性能以及可靠性的提高及其在消費電子、汽車電子等領(lǐng)域的大規(guī)模應(yīng)用,F(xiàn)PGA設(shè)計的安全性問題越來越引起人們的關(guān)注。相比其他工藝FPGA而言,處于主流地位的SRAM工藝FPGA有一些優(yōu)勢,但是由于SRAM的易失性,掉電以后芯片中的配置信息將丟失,所以每次系統(tǒng)上電時都需要重新配置。這就使得剽竊者可以通過對FPGA的配置數(shù)據(jù)引腳進行采樣,得到該FPGA的配置數(shù)據(jù)流,實現(xiàn)對FPGA內(nèi)部設(shè)計電路的克隆。為了保護設(shè)計者的知識產(chǎn)權(quán)以及推動SRAM工藝FPGA更大規(guī)模的應(yīng)用,產(chǎn)業(yè)界和學術(shù)界從加密算法的角度對SRAM工藝FPGA的設(shè)計安全性提出了多種解決方案 [1~2]。

異步電路的競爭和險象問題所導致的不確定性,是數(shù)字電路設(shè)計中令人頭疼的問題。但是,如果把這種不確定性應(yīng)用在本安全方案中,同樣可以困擾剽竊者,從而更有效地保護設(shè)計。為此,本文提出了利用異步采樣電路的不確定性提高SRAM工藝FPGA設(shè)計安全性的方法,以提高系統(tǒng)的安全性。

1 方案簡介

1.1 設(shè)計方案的指導思想

(1) CPLD是難以用反向工程等物理手段進行破解的,而且用這些方法破解CPLD的成本和設(shè)計的開發(fā)成本相近。Xilinx公司聲稱其CoolRunner- II系列CPLD的安全性完全可以達到ASIC相當?shù)牡燃塠3]。并且,CPLD也可以用抗攻擊性強的小規(guī)模反熔絲FPGA來代替[4]。

(2) CPLD中觸發(fā)器資源較少,因此應(yīng)盡量降低CPLD中的電路復雜度。

本方案借助了跳頻的理念,在FPGA和CPLD中分別保存兩個密鑰表,在一開始同步之后,F(xiàn)PGA中的密鑰選擇狀態(tài)機根據(jù)異步采樣電路輸出的狀態(tài)跳轉(zhuǎn)指示信號進行跳轉(zhuǎn)。同時CPLD接收FPGA送來的狀態(tài)跳轉(zhuǎn)信號,其中的密鑰狀態(tài)機也進行相應(yīng)的跳轉(zhuǎn),并將密鑰傳回給FPGA。在沒有差錯的情況下,這兩個狀態(tài)機將一致地跳轉(zhuǎn)。FPGA通過對CPLD送來的密鑰進行確認來驗證CPLD的合法性:檢驗是否和自己的密鑰狀態(tài)機所選擇的密鑰一致,如果一致,則說明所連接的CPLD為合法的CPLD,F(xiàn)PGA電路正常工作;否則認為所連接的CPLD為非法,停止FPGA電路工作。由以上指導思想設(shè)計的系統(tǒng)框圖如圖1所示。

 


此外,CPLD向FPGA傳遞的密鑰先利用M序列進行加密,這樣使得對系統(tǒng)的破解首先需要對M序列加密算法進行破解,從而進一步提高了系統(tǒng)的抗攻擊能力。

1.2 異步采樣電路

溫度的變化、電壓的波動等因素都會使晶振所輸出的時鐘發(fā)生抖動。因此,用一個時鐘去采樣另一個時鐘驅(qū)動的信號,其采樣值是不可預測的。異步采樣電路的機理就是利用兩個時鐘之間相位和頻率的不確定性,產(chǎn)生一個不可預測的序列。單比特異步采樣電路的示意圖如圖2所示。圖中有4個觸發(fā)器(FF1、FF2、FF3、 FF4)和兩個時鐘(clk、clks)。FF1、FF2由clks信號驅(qū)動,其中FF1是用于防止亞穩(wěn)態(tài)出現(xiàn)的觸發(fā)器,它的輸入信號同步于clk的信號,F(xiàn)F2的輸出信號則同步于clks的信號。FF3、FF4由clk信號驅(qū)動,其中FF3的作用和FF1類似,用于防止亞穩(wěn)態(tài)的出現(xiàn),它的輸入信號同步于clks的信號;FF4的輸出信號則同步于clk的信號。通過上述處理后,F(xiàn)F4的輸出產(chǎn)生了一個隨機序列,這個隨機序列不同于同步電路產(chǎn)生的偽隨機序列,其狀態(tài)的轉(zhuǎn)移同溫度、電壓等外界因素有關(guān),是一個完全不可預測的隨機序列。此外,異步采樣電路對兩個時鐘之間的相位敏感,所以在電路板每次上電時所生成的序列也是不同的。

 


異步采樣模塊的VHDL實現(xiàn)如下:

--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為輸出的隨機序列。

將本文所設(shè)計的方法應(yīng)用到Altera公司的Cyclone[5]系列FPGA中,利用Quartus II中的SignalTapII Logical Analyzer工具,兩次采樣復位后FPGA內(nèi)異步采樣電路的輸入輸出信號,得到如圖3所示的波形,其中兩個時鐘:clk為2.000MHz,clks 為2.048MHz。觀察系統(tǒng)復位后異步采樣電路輸出序列的隨機性可以發(fā)現(xiàn),每次將系統(tǒng)復位后,采用同步電路設(shè)計的偽隨機序列發(fā)生器產(chǎn)生相同的偽隨機序列 (din);但是,將這個偽隨機序列(din)輸入異步采樣電路后,在輸出(dout)卻得到不同的隨機序列。這說明同一塊電路板每次上電時都將生成不同的隨機序列。

 


1.3 密鑰選擇狀態(tài)機

FPGA 和CPLD中各有一個完全相同的密鑰選擇狀態(tài)機,該狀態(tài)機根據(jù)異步采樣電路輸出的隨機序列進行跳轉(zhuǎn),其跳轉(zhuǎn)規(guī)則可以自定義。在本文設(shè)計的系統(tǒng)中,密鑰表中存放有8個32位長的密鑰,密鑰狀態(tài)機共有8個狀態(tài),記為狀態(tài)0~狀態(tài)7,每個狀態(tài)分別對應(yīng)一個密鑰,記為密鑰0~密鑰7。

假設(shè)當前狀態(tài)為狀態(tài)i,異步采樣電路的輸出為j,其中i、j∈N,且0≤i, j≤7。那么可以采用如下簡單的跳轉(zhuǎn)規(guī)則:當采樣電路的輸出為0時,跳轉(zhuǎn)到狀態(tài)0;否則,跳轉(zhuǎn)到狀態(tài)(i+j)mod8。為了提高系統(tǒng)的安全性,也可以采用各種無序的跳轉(zhuǎn)規(guī)則,通過改變跳轉(zhuǎn)規(guī)則和密鑰表,可以得到不同的系統(tǒng)。

1.4 M序列加密解密電路

由于CPLD向 FPGA傳遞密鑰之前,先利用M序列進行加密,使得對系統(tǒng)的破解首先需要對M序列加密算法進行破解,這樣既防止了密鑰的明文傳輸,又提高了系統(tǒng)的安全性。之所以采用M序列作為加密算法,主要考慮的是解密的自同步特性。此外根據(jù)本設(shè)計的假設(shè)即CPLD的破解是不可行的,考慮到CPLD觸發(fā)器資源緊張,對 FPGA向CPLD之間的跳轉(zhuǎn)指示信號的傳輸沒有進行加密,為此而節(jié)省了CPLD中的電路。

M序列的級數(shù)越大,生成的隨機序列的周期越長,破解的難度也越大。這里采用20階的M序列,其本原多項式為x20+x3+1。

1.5 密鑰校驗

CPLD 將其密鑰狀態(tài)機所對應(yīng)的密鑰回送給FPGA,F(xiàn)PGA則通過對CPLD送來的密鑰進行確認來驗證CPLD的合法性。為了不至于多占用引腳,32位密鑰是串行傳輸?shù)?。串行傳輸給剽竊者的破解也增加了難度,但同時帶來的問題是:FPGA需要先進行同步和串并轉(zhuǎn)換之后才能進行密鑰校驗。

 


密鑰校驗的狀態(tài)機如圖4所示。狀態(tài)機共有失步、預同步、同步和保護四種狀態(tài)。預同步狀態(tài)的設(shè)置是為了防止假同步,只有連續(xù)三次校驗正確才認為找到了同步。保護狀態(tài)的設(shè)置是為了防止誤碼引起不必要的失步,使得偶爾的誤碼并不會導致校驗狀態(tài)機失步。下面分別介紹密鑰校驗電路在這四種狀態(tài)的具體工作方式:

(1)失步狀態(tài):系統(tǒng)剛啟動時,F(xiàn)PGA的密鑰校驗狀態(tài)機處于失步狀態(tài),此時異步采樣電路不工作,輸出為0,CPLD一直發(fā)送密鑰0。密鑰校驗電路在M序列解密電路輸出的串行密鑰流里搜索密鑰0的碼型,在搜索到密鑰0的碼型后,密鑰校驗狀態(tài)機跳轉(zhuǎn)到預同步狀態(tài)。

(2)預同步狀態(tài):當密鑰校驗狀態(tài)機處于預同步狀態(tài)時,異步采樣電路仍然不工作,輸出跳轉(zhuǎn)指示為0,CPLD仍發(fā)送密鑰0。密鑰校驗電路進行密鑰0校驗,如果連續(xù)三次密鑰校驗正確,則進入同步態(tài);否則返回失步態(tài)重新進行密鑰搜索。

(3)同步狀態(tài):此時異步采樣電路開始工作,輸出隨機序列指示FPGA和CPLD中兩個密鑰狀態(tài)機進行跳轉(zhuǎn)。此時密鑰校驗電路將CPLD送來的密鑰和FPGA內(nèi)部選擇的密鑰進行對比,如果發(fā)生校驗錯誤則跳轉(zhuǎn)至保護狀態(tài);否則繼續(xù)進行密鑰校驗工作。

(4)保護狀態(tài):異步采樣電路依然工作,密鑰校驗電路繼續(xù)進行密鑰校驗,如果連續(xù)三次密鑰校驗錯誤則跳轉(zhuǎn)到失步狀態(tài)重新進行密鑰搜索;否則返回同步狀態(tài)。

在密鑰校驗電路中設(shè)有錯誤計數(shù)器,該計數(shù)器在失步狀態(tài)下計數(shù)。一旦錯誤計數(shù)器的計數(shù)超過設(shè)定的閾值,則認為密鑰檢驗失敗,停止FPGA電路的工作使能。

2 安全性分析

這里列舉幾種常見的攻擊方法,并簡要分析本方案在這些攻擊下的安全性。由于本設(shè)計假設(shè)CPLD的破解是不可行的,所以不考慮對CPLD進行反向工程直接破解等方法。

2.1 對配置數(shù)據(jù)流進行采樣

剽竊者通過對FPGA的配置數(shù)據(jù)引腳(圖1中的位置①)進行采樣,得到該FPGA的配置數(shù)據(jù)流,實現(xiàn)對FPGA內(nèi)部設(shè)計電路的克隆。

這種方法顯然是不可行的,因為FPGA只有在確認了所連接的為合法CPLD以后才能正常工作,也就是說,需要同時克隆一份CPLD內(nèi)的設(shè)計才能使得FPGA正常工作。

2.2 對密鑰數(shù)據(jù)流進行采樣

剽竊者利用2.1中所述方法對FPGA內(nèi)部設(shè)計電路進行克隆以后,又對密鑰數(shù)據(jù)流(圖1中的位置②)進行采樣,用存儲器將這些密鑰數(shù)據(jù)流存起來,在FPGA上電后將這個密鑰數(shù)據(jù)流發(fā)送給FPGA,企圖模擬一個合法的CPLD。

這種方法也是不可行的。因為異步采樣電路對兩個時鐘之間的相位敏感,所以在電路板每次上電時所生成的隨機序列是不同的,也就是說,每次上電后產(chǎn)生的密鑰數(shù)據(jù)流是不同的。因此,經(jīng)過這次采樣得到的密鑰數(shù)據(jù)流,下次上電時能用的可能性很小。

2.3 CPLD工作原理分析

由以上分析可以發(fā)現(xiàn),本方案能夠很好地抵抗克隆攻擊。所以,要破解本方案,剽竊者只有同時對FPGA和CPLD之間的數(shù)據(jù)進行采樣(圖1中的位置②和③),根據(jù)CPLD的輸入輸出分析CPLD的工作原理,從算法層面上破解CPLD,但很難成功破解。因為:

(1)由于FPGA和CPLD之間的密鑰數(shù)據(jù)流經(jīng)過M序列加密以后再進行傳輸,所以破解M序列加密算法是分析CPLD的第一步。同時加密時因采用了20階M序列,并且每32個周期改變一下密鑰,提高了序列綜合進行分析的難度。

(2)有8個32位的密鑰,而密鑰的長度和個數(shù)對于剽竊者來說都是未知的。

(3)在破解了M序列加密算法和獲得所有的密鑰以后,還需要破解毫無規(guī)律的密鑰選擇狀態(tài)機。即使一個8狀態(tài)的狀態(tài)機,因每個狀態(tài)有8種轉(zhuǎn)移的可能性,總的轉(zhuǎn)移關(guān)系就有88=16 777 216種。

因此,想要破解本系統(tǒng)所需的精力和成本都相當高。剽竊者需要知道足夠的系統(tǒng)設(shè)計參數(shù),例如M序列生成多項式、密鑰個數(shù)、密鑰長度、密鑰狀態(tài)機個數(shù)以及密鑰選擇狀態(tài)機轉(zhuǎn)移規(guī)則等,才能對本方案成功破解。

對 FPGA設(shè)計安全性的思考源于所采用的Xilinx公司的Spartan3系列和Altera公司的Cyclone系列FPGA進行產(chǎn)品的開發(fā)。本文所提出的方案是利用異步采樣電路的不確定性使得系統(tǒng)不易被克隆。將該方案融合到其他加密方案中,可進一步提高這些方案的安全性。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在數(shù)字化浪潮席卷全球的今天,F(xiàn)PGA技術(shù)正成為驅(qū)動創(chuàng)新的核心引擎。2025年8月21日,深圳將迎來一場聚焦FPGA技術(shù)與產(chǎn)業(yè)應(yīng)用的盛會——2025安路科技FPGA技術(shù)沙龍。本次沙龍以“定制未來 共建生態(tài)”為主題,匯聚行業(yè)...

關(guān)鍵字: FPGA 核心板 開發(fā)板

在現(xiàn)代電子系統(tǒng)中,現(xiàn)場可編程門陣列(FPGA)憑借其開發(fā)時間短、成本效益高以及靈活的現(xiàn)場重配置與升級等諸多優(yōu)點,被廣泛應(yīng)用于各種產(chǎn)品領(lǐng)域。從通信設(shè)備到工業(yè)控制,從汽車電子到航空航天,F(xiàn)PGA 的身影無處不在。為了充分發(fā)揮...

關(guān)鍵字: 可編程門陣列 FPGA 數(shù)字電源

2025年8月4日 – 提供超豐富半導體和電子元器件?的業(yè)界知名新品引入 (NPI) 代理商貿(mào)澤電子 (Mouser Electronics) 即日起開售Altera?的Agilex? 3 FPGA C系列開發(fā)套件。此開...

關(guān)鍵字: FPGA 邊緣計算 嵌入式應(yīng)用

內(nèi)窺鏡泛指經(jīng)自然腔道或人工孔道進入體內(nèi),并對體內(nèi)器官或結(jié)構(gòu)進行直接觀察和對疾病進行診斷的醫(yī)療設(shè)備,一般由光學鏡頭、冷光源、光導纖維、圖像傳感器以及機械裝置等構(gòu)成。文章介紹了一款基于兩片圖像傳感器和FPGA組成的微型3D內(nèi)...

關(guān)鍵字: 微創(chuàng) 3D內(nèi)窺鏡 OV6946 FPGA

運用單片機和FPGA芯片作為主控制器件 , 單片機接收從PC機上傳過來的顯示內(nèi)容和顯示控制命令 , 通過命令解釋和數(shù)據(jù)轉(zhuǎn)換 , 生成LED顯示屏所需要的數(shù)據(jù)信號和同步的控制信號— 數(shù)據(jù)、時鐘、行同步和面同步 。FPGA芯...

關(guān)鍵字: 單片機 FPGA LED顯示屏

在異構(gòu)計算系統(tǒng)中,ARM與FPGA的協(xié)同工作已成為高性能計算的關(guān)鍵架構(gòu)。本文基于FSPI(Fast Serial Peripheral Interface)四線模式,在150MHz時鐘頻率下實現(xiàn)10.5MB/s的可靠數(shù)據(jù)...

關(guān)鍵字: ARM FPGA FSPI

在全球FPGA市場被Xilinx(AMD)與Intel壟斷的格局下,國產(chǎn)FPGA廠商高云半導體通過構(gòu)建自主IP核生態(tài)與智能時序約束引擎,走出差異化高端化路徑。本文深入解析高云半導體FPGA工具鏈的兩大核心技術(shù)——全棧IP...

關(guān)鍵字: FPGA 高云半導體

2025年6月12日,由安路科技主辦的2025 FPGA技術(shù)沙龍在南京正式召開,深圳市米爾電子有限公司(簡稱:米爾電子)作為國產(chǎn)FPGA的代表企業(yè)出席此次活動。米爾電子發(fā)表演講,并展出米爾基于安路飛龍派的核心板和解決方案...

關(guān)鍵字: FPGA 核心板 開發(fā)板

高 I/O、低功耗及先進的安全功能,適用于成本敏感型邊緣應(yīng)用

關(guān)鍵字: FPGA I/O 機器視覺

本文討論如何為特定應(yīng)用選擇合適的溫度傳感器。我們將介紹不同類型的溫度傳感器及其優(yōu)缺點。最后,我們將探討遠程和本地檢測技術(shù)的最新進展如何推動科技進步,從而創(chuàng)造出更多更先進的溫度傳感器。

關(guān)鍵字: 溫度傳感器 CPU FPGA
關(guān)閉