一種嵌入式軟件的加密方法
【專利摘要】本發(fā)明公開了一種嵌入式軟件的加密方法,本方法需要在設(shè)備中安裝使用DS2432保護型EEPROM對軟件進行加密,所述加密方法包括密碼生成過程和密碼驗證過程;所述密碼生成過程具體為:在工廠程序下,使用隨機數(shù)作為密鑰生成DS2432認(rèn)證碼,并把此認(rèn)證碼進行DES加密后,存入設(shè)備的存儲器中。生成的DS2432認(rèn)證碼也被存到DS2432中;所述密碼驗證過程具體為:要求程序在上電運行時,讀取存儲器中的認(rèn)證碼,進行DES解密,同時使用隨機數(shù)和DS2432進行握手認(rèn)證,如果認(rèn)證失敗則程序退出。該方法有效的防止了設(shè)備被克??;具有硬件簡單,成本低,軟件實現(xiàn)容易,難以破解等優(yōu)點。
【專利說明】一種嵌入式軟件的加密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種軟件加密方法,特別是涉及一種嵌入式軟件的加密方法。
【背景技術(shù)】
[0002] 電子設(shè)備硬件極易被克隆,同時設(shè)備中的嵌入式軟件的二進制數(shù)據(jù)也容易被讀出 來,因此,整臺設(shè)備也能被克隆,制成盜版的設(shè)備。
[0003] 常用加密方法一般采用密鑰認(rèn)證加密:密鑰(私密)和需要認(rèn)證的數(shù)據(jù)("信息") 作為輸進,來計算信息認(rèn)證碼,即MAC (Message Authentication Codes)。MAC然后附加到 信息上。信息接收方進行相同的運算,將MAC計算結(jié)果與隨信息一起收到的MAC比較。假 如二者相同,則信息是正當(dāng)?shù)?。但非法者假如截取到信息,可隨后回放此信息,以仿冒正當(dāng) 身份。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是針對嵌入式軟件容易被克隆的現(xiàn)狀,使用DS2432保護型EEPR0M, 對軟件進行加密,使得即使硬件被克隆出來,設(shè)備也不能正常運行,從而達到保護的作用。
[0005] DS2432在單個芯片內(nèi)集成了 1024位EEPR0M、64位密鑰、512位SHA-1引擎,以極 低的成本提供了一個安全的高級認(rèn)證方案。修改DS2432的數(shù)據(jù)時,1-Wire?主機必須成功 地計算并發(fā)送160位SHA-1信息鑒定碼(MAC),這需要預(yù)先知道DS2432的數(shù)據(jù)結(jié)構(gòu),其中包 括沒有泄漏的64位密碼。DS2432還提供一個讀存儲器命令,可自動為1-Wire主機計算并 提供160位MAC。注意,該過程使用了未經(jīng)泄漏的密碼,為主機鑒別基于DS2432的從機配件 或外設(shè)提供了一種非常有效的解決方案。另外,該器件還提供永久性的寫保護和0TPEPR0M 模式。每個DS2432具有自身的、由工廠刻入的64位ROM注冊碼,為其所嵌入的產(chǎn)品或系統(tǒng) 提供唯一的ID。這個唯一的64位碼也是SHA-1的組成成份之一。DS2432的通信和操作通 過單點連接的Ι-Wire接口實現(xiàn),硬件簡單。
[0006] 本發(fā)明的目的通過以下技術(shù)方案實現(xiàn):
[0007] -種嵌入式軟件的加密方法,本方法需要在設(shè)備中安裝使用DS2432保護型 EEPR0M對軟件進行加密,所述加密方法包括密碼生成過程和密碼驗證過程;
[0008] 所述密碼生成過程具體為:在工廠程序下,使用隨機數(shù)作為密鑰生成DS2432認(rèn)證 碼,并把此認(rèn)證碼進行DES加密后,存入設(shè)備的存儲器中。生成的DS2432認(rèn)證碼也被存到 DS2432 中;
[0009] 所述密碼驗證過程具體為:要求程序在上電運行時,讀取存儲器中的認(rèn)證碼,進行 DES解密,同時使用隨機數(shù)和DS2432進行握手認(rèn)證,如果認(rèn)證失敗則程序退出。
[0010] 進一步地,所述握手認(rèn)證具體為:使用隨機數(shù)與DES解密后的密鑰計算出的MAC 值,與發(fā)送隨機數(shù)到DS2432得到的MAC值相比較,如果兩個MAC值相同則認(rèn)證成功,不同則 失敗。
[0011] 本發(fā)明的有益效果:
[0012] 1.DS2432芯片ID全球唯一性,無密鑰時無法成功認(rèn)證,使得一個產(chǎn)品對應(yīng)一個 DS2432芯片,產(chǎn)品具有唯一性。
[0013] 2.程序二制進文件容易整個讀出,但認(rèn)證碼存儲位置比較難確定,數(shù)據(jù)不容易被 破解。
[0014] 3.當(dāng)認(rèn)證碼存儲數(shù)據(jù)被找出時,解密DES加密后的認(rèn)證碼幾乎不可能。
[0015] 4.程序上電后使用隨機數(shù)和DS2432進行握手認(rèn)證,每次認(rèn)證數(shù)據(jù)都不一樣,通過 數(shù)據(jù)線監(jiān)控認(rèn)證數(shù)據(jù)也幾乎不可能。
[0016] 總之,本發(fā)明的加密方法有效的防止了設(shè)備被克隆;具有硬件簡單,成本低,軟件 實現(xiàn)容易,難以破解等優(yōu)點。
【專利附圖】
【附圖說明】
[0017] 圖1是本發(fā)明的密碼驗證流程圖。
【具體實施方式】
[0018] 本發(fā)明的一個實施例,其具體加密方法為:
[0019] 設(shè)備的加密過程:
[0020] 有加密權(quán)限的DSP程序,隨機產(chǎn)生一組8字節(jié)的密鑰,向DS2432寫入這一8字節(jié) 密鑰,并使用DES加密后存放到存儲區(qū),通過DES加密后,密鑰無法破解,而只能讀到加密后 的密鑰,加密完成。
[0021] 密碼驗證過程:
[0022] DSP應(yīng)用程序讀取存儲區(qū)密鑰,通過DES算法進行解密后得到8字節(jié)密鑰,同時隨 機產(chǎn)生3字節(jié)認(rèn)證碼,由這兩組值計算MAC值;發(fā)送隨機產(chǎn)生的3字節(jié)認(rèn)證碼到DS24M (由 于是隨機數(shù)據(jù),可以有效防止非法用戶監(jiān)聽DSP和DS2432之間通訊數(shù)據(jù)),并讀取DS24:32 產(chǎn)生的MAC值。兩組MAC值如果不一致,驗證失敗,可以判斷程序被非法克隆。
【權(quán)利要求】
1. 一種嵌入式軟件的加密方法,其特征在于:在設(shè)備中安裝使用DS2432保護型EEPROM 對軟件進行加密,所述加密方法包括密碼生成過程和密碼驗證過程; 所述密碼生成過程具體為:在工廠程序下,使用隨機數(shù)作為密鑰生成DS2432認(rèn)證碼, 并把此認(rèn)證碼進行DES加密后,存入設(shè)備的存儲器中。生成的DS2432認(rèn)證碼也被存到 DS2432 中; 所述密碼驗證過程具體為:要求程序在上電運行時,讀取存儲器中的認(rèn)證碼,進行DES 解密,同時使用隨機數(shù)和DS2432進行握手認(rèn)證,如果認(rèn)證失敗則程序退出。
2. 根據(jù)權(quán)利要求1所述的嵌入式軟件的加密方法,其特征在于:所述握手認(rèn)證具體為: 使用隨機數(shù)與DES解密后的密鑰計算出的MAC值,與發(fā)送隨機數(shù)到DS2432得到的MAC值相 比較,如果兩個MAC值相同則認(rèn)證成功,不同則失敗。
【文檔編號】G06F21/12GK104268447SQ201410495719
【公開日】2015年1月7日 申請日期:2014年9月25日 優(yōu)先權(quán)日:2014年9月25日
【發(fā)明者】莫景賢 申請人:深圳市亞特爾科技有限公司