可程式邏輯器件PLD(Programable Logic Device)是允許用戶編程(配置)實現所需邏輯功能的電路,它與分立元件相比,具有速度快、容量大、功耗小和可靠性高等優點。由於集成度高,設計方法先進、現場可程式,可以設計各種數字電路,因此,在通信、數據處理、網路、儀器、工業控制、軍事和航空航天等眾多領域內得到了廣泛套用。
CPLD(Complex Programmable Logic Device)是Complex PLD的簡稱,一種較PLD為複雜的邏輯元件,是一種用戶根據各自需要而自行構造邏輯功能的數字積體電路。其基本設計方法是藉助集成開發軟體平台,用原理圖、硬體描述語言等方法,生成相應的目標檔案,通過下載電纜(“在系統”編程)將代碼傳送到目標晶片中,實現設計的數字系統。
PLD只是能裝載程式晶片的其中一個類。能燒錄程式並能加密的晶片還有DSP,MCU,,AVR,ARM等,也有專門設計有加密算法用於專業加密的晶片或設計驗證廠家代碼工作等功能晶片,該類晶片業能實現防止電子產品複製的目的。
結構分類及解密技術
1.邏輯單元陣列(LCA),包括邏輯快、互連陣列和I/O塊
2.複合PLD結構,包括邏輯塊和互連矩陣開關
CPLD具有編程靈活、集成度高、設計開發周期短、適用範圍寬、開發工具先進、設計製造成本低、對設計者的硬體經驗要求低、標準產品無需測試、保密性強、價格大眾化等特點,可實現較大規模的電路設計,因此被廣泛套用於產品的原型設計和產品生產(一般在10,000件以下)之中。
幾乎所有套用中小規模通用數字積體電路的場合均可套用CPLD器件。CPLD器件已成為電子產品不可缺少的組成部分,它的設計和套用成為電子工程師必備的一種技能。
任何一款PLD晶片從理論上講,攻擊者均可利用足夠的投資和時間使用以上方法來攻破,這是系統設計者應該始終牢記的基本原則。因此,作為電子產品的設計工程師非常有必要了解當前PLD單片機攻擊的最新技術,做到知己知彼,心中有數。
侵入型PLD晶片解密的第一步是揭去晶片封裝(簡稱“開蓋”有時候稱“開封”,英文為“DECAP”,decapsulation)。有兩種方法可以達到這一目的:第一種是完全溶解掉晶片封裝,暴露金屬連線。第二種是只移掉矽核上面的塑膠封裝。
晶片上面的塑膠可以用小刀揭開,晶片周圍的環氧樹脂可以用濃硝酸腐蝕掉。熱的濃硝酸會溶解掉晶片封裝而不會影響晶片及連線。該過程一般在非常乾燥的條件下進行,因為水的存在可能會侵蝕已暴露的鋁線連線(這就可能造成解密失敗)。
接著在超聲池裡先用丙酮清洗PLD單片機以除去殘餘硝酸,並浸泡。
最後一步是尋找保護熔絲的位置並將保護熔絲暴露在紫外光下。一般用一台放大倍數至少100倍的顯微鏡,從編程電壓輸入腳的連線跟蹤進去,來尋找保護熔絲。若沒有顯微鏡,則採用將晶片的不同部分暴露到紫外光下並觀察結果的方式進行簡單的搜尋。操作時套用不透明的紙片覆蓋晶片以保護程式存儲器不被紫外光擦除。將保護熔絲暴露在紫外光下5~10分鐘就能破壞掉保護位的保護作用,之後,使用簡單的編程器就可直接讀出程式存儲器的內容。
發展歷史及行業展望
PLD電路早期代表產品由XLINX公司推出的門陣列,稱為FPGA(Field Programable Gate Array),隨後ALTERA公司推出以並行走線的PLD產品,稱為CPLD(Complex Programable Logic Device),這些早期產品價格高達萬元,其開發軟體價格高達幾十萬元。但是隨著生產技術水平的提高,現在PLD產品的價格已大大降低,一片5000門、具有5K X 8的SRAM電路作配置、84腳封裝、速度達40―200MHz的PLD的價格已經下降到一百元以下。每一片這樣的PLD可以設計成單片機、或者是CPU等,並且可以在外部接線完成以後還可以重新進行設計多次。目前國內出現了一批專門從事PLD晶片解密的權威實驗室,如龍人晶片解密工作室、世紀芯科技、芯谷、龍芯世紀等等。
隨著市場對節能環保電源產品的需求,電源管理晶片僅靠晶片解密,MCU解密,單片機解密,IC解密等手段進行模仿,已經跟不上市場的需求,現在市場已經電源產品要求很高,電源管理晶片企業必須進行模仿之後的創新,才能在未來市場上贏得自己的戰場,目前加密的最新技術不斷出現、IC解密燒斷數據腳、解密開蓋過程中存在的漏酸的可能以及電路修改過程中誤操作等,這些都有可能造成晶片解密的失敗;另外目前單片機的程式存儲是靠內部電子作為介質來存儲的,當晶片使用周期比較長或受到外部強磁場等環境的影響,也會導致晶片解密失敗。如果採用純軟體的方式破解,和母片的編程軟體和編程方式甚至程式語言等有很大關係,也存在失敗的機率。