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