滿佳喜
摘 要:在電子技術飛速發展的今天,存儲器在電子系統中被大量使用,EEPROM(Electrically Erasable Programmable Read-Only Memory電可擦除可編程只讀存儲器)作為一種通用非揮發存儲器件被廣泛的應用在各類電子系統中,復旦微電子提供的24系列串行EEPROM在消費電子領域被大量的應用。電子系統中一般都有應用軟件,且常常將該軟件存放在EEPROM存儲器中,為避免軟件設計產權輕易的被復制,在電子系統設計中對于應用軟件的防復制保護也越來越受關注。文章介紹一種基于復旦微電子新型通用24系列串行EEPROM的加密解決方案,在不額外增加硬件成本的情況下達到保護軟件產權的目的。
關鍵詞:存儲器;EEPROM;加密;軟件保護
1 系統方案
在電子系統設計中,常常將系統軟件存放在EEPROM中,上電后處理器自動將EEPROM中的軟件數據讀出載入到控制器內部的RAM(Random Access Memory)執行,傳統的EEPROM只具有單一的主存儲空間,該空間存儲的軟件數據可通過IIC(Inter-Integrated Circuit)總線接口直接讀出,沒有任何的加密措施,因此存儲在EEPROM中的軟件數據可以輕易的被讀出并寫入到另一套完全復制的電子系統中。開發一套新的電子系統產品一般要付出市場調研、系統設計、硬件設計、軟件設計等多個環節,設計開發成本不菲,而由于存放軟件的外部存儲器不具有任何加密措施,一旦產品投放到市場后,整個系統很容易就會被他人復制,且由于復制者不用付出產品的開發成本,其復制后的產品在市場上會更有價格競爭力,這樣的話很可能會使得一套新設計的電子系統產品以失敗而告終。
在已經使用了EEPROM的電子系統中,只需要將EEPROM存儲芯片更換為復旦微電子的新型通用24系列串行EEPROM產品,利用該系列產品中具有的UID(Unique ID)和OTP(One Time Program)存儲空間特性,就可達到軟件加密的目的。UID和OTP存儲空間都是在原有的主存儲空間以外,額外設計增加的存儲空間,其中UID是每顆EEPROM芯片的識別號,類似于芯片的身份證,只能讀取無法改寫,且每顆芯片都是唯一不可復制的,一般為8字節或16字節數據長度,OTP空間是一塊用戶可讀寫的數據空間,一般為16字節或32字節數據長度,對OTP空間寫入數據后用戶可通過對OTP空間進行鎖定操作,使得寫入OTP空間的數據變為只能讀取無法改寫。在電子系統產品的生產過程中,用戶可設置一個密鑰,通過每顆EEPROM產品具有的唯一UID,配合密鑰經過一定的加密算法的計算生成一段密文,并將密文存儲在OTP空間,電子系統上電后,處理器通過同樣的密鑰對密文和UID進行解密認證的操作,只有UID和密文匹配并順利通過認證后系統軟件才繼續執行,這樣的話即使主存儲空間的軟件數據和OTP空間的密文被他人完全的復制,由于每顆EEPROM芯片的UID都是唯一不可復制的,且密鑰和加密算法他人一般難以破解,因此一套復制的電子系統產品UID是無法和OTP空間中的密文匹配的,從而無法順利通過上電后的解密認證操作,也就無法成功運行。通過以上舉措,可在不額外增加系統硬件成本的情況下,達到系統軟件防復制的目的。
1.1 存儲器介紹
存儲器是信息技術中用來存儲和保存用戶信息的記憶體,寬泛來講,只要能保存二進制數據的都稱為存儲器。按照系統掉電后所存儲的數據是否能保持不丟失,存儲器分為揮發性存儲器和非揮發性存儲器,EEPROM產品是一種非揮發性存儲器,可通過電進行擦除和編程操作,是一種掉電后數據不丟失的存儲器芯片,復旦微電子的新型通用24系列串行EEPROM產品具有IIC接口,可工作在1.7V~5.5V寬電壓范圍,具有100萬次擦寫壽命和40年的數據保存能力,除主存儲空間外,額外具有UID和OTP存儲空間,UID為芯片的身份標識,每顆芯片的UID是唯一不可復制的,OTP空間是一塊可多次進行讀寫操作的存儲空間,用戶如果希望OTP空間數據不再被改寫,可對該塊空間進行鎖定操作,鎖定后OTP空間的數據只能讀出,無法再被改寫,詳細的芯片信息本文不做詳述。
1.2 加密算法介紹
數據加密是指將原始數據配合密鑰經過某種特殊的算法計算后改變原來的數據內容,這樣即使用戶獲得了已經加密的信息,由于不知道密鑰和加密算法,仍然無法清楚加密過程。數據的加密方式有很多種,如常見的校驗和、CRC(Cyclic Redundancy Check循環冗余校驗)、DES(Data Encryption Standard數據加密標準)等,因本文的實現驗證以DES算法為例,因此此處僅介紹DES加密算法。
美國國家標準局1973年開始研究除國防部外的其他部門的計算機系統的數據加密標準,1977年1月,美國政府決定采納IBM公司設計的方案作為非機密數據的正式數據加密標準,稱為DES。目前國內DES算法在POS、ATM、智能卡、高速公路收費站等領域被廣泛使用,以此來實現關鍵數據的加密。
DES算法的入口參數有三個:Key、Data、Mode。其中Key為8個字節,是密鑰,Data為8個字節,是要被加密或被解密的數據,Mode為工作方式,有加密和解密兩種。DES算法的加密操作是將Mode設置為加密,用密鑰Key 去把數據Data進行加密,生成Data的密文(8字節)作為DES的輸出結果,DES算法的解密操作是將Mode設置為解密,用密鑰Key去把密文數據Data(8字節)解密,還原為Data的明碼形式作為DES的輸出結果。
詳細的DES算法加解密過程本文不做詳述,DES算法計算密文示例:明碼為0000000000000000,密鑰為1122334455667788時,DES生成的密文為6FB23EAD0534752B。
2 實現驗證
為確認該方案是確實可行的,采用該方案進行實際的電子系統驗證,控制器選用Silicon Lab的C8051F340,該控制器為51系列單片機,EEPROM存儲產品選用復旦微電子的新型通用FM24C64D,該產品具有64Kbit主存儲空間,16字節的UID,32字節的OTP空間,算法選用DES加解密算法,開發基于Keil編譯環境。采用UID數據和DES算法進行軟件加解密計算,增加加解密操作后處理器需要的占用的程序空間和數據空間很少,示例程序經過Keil編譯后實際占用程序空間2729字節,占用數據緩存78字節。
3 結束語
在電子系統產品設計中,基于復旦微電子的新型通用24系列串行EEPROM存儲產品,選擇合適的加解密算法,可以在不增加系統額外硬件成本情況下,實現良好的軟件加密效果,達到較好的軟件知識產權保護的目的,該低成本加密應用方案已經在藍牙、WIFI等領域有具體的客戶應用,取得了較好的效果,得到了用戶的高度認可。
參考文獻
[1]復旦微電子FM24C64D技術手冊[Z].http://www.fmsh.com/ea78de
2e-2f5a-e700-2221-7101cff37d8d/.
[2]芯科實驗室.Silicon Labs C8051F340技術手冊[Z].http://www.sila
bs.com/products/mcu/8-bit/c8051f32x-f34x.