專利名稱:一種抗截獲的代碼加密燒錄方式的制作方法
技術領域:
本發(fā)明涉及MCU、MPU、DSP,ARM等嵌入時編程芯片的應用領域,尤其是一種抗截獲的代碼加密燒錄方式。
背景技術:
ISP(In-System Programming)在系統(tǒng)可編程,指電路板上的空白器件可以編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經編程的器件也可以用ISP方式擦除或再編程。ISP的實現相對要簡單一些,一般通用做法是內部的存儲器可以由上位機的軟件通過串口來進行改寫。對于單片機來講可以通過SPI或其它的串行接口接收上位機傳來的數據并寫入存儲器中。所以即使我們將芯片焊接在電路板上,只要留出和上位機接口的這個串口,就可以實現芯片內部存儲器的改寫,而無須再取下芯片。ISP的出現大大方便了代碼的在線燒錄,不過正因為其實現的方便性恰恰帶來了燒錄代碼泄露的隱患。為了解決該問題,就產生了如圖1第一部分所示的密文燒錄。步驟一、PC軟件通過DES/3DES、AES、SMl等加解密算法把燒錄代碼CodeO轉換成密文Codel。步驟二、PC工具通過ISP驅動把密文(Codel)傳遞給待燒錄芯片。步驟三、待燒錄芯片通過同樣的加解密算法把接受到的密文(Codel)解密成燒錄代碼(CodeO)存儲于FLASH,燒錄完成?!獋€電子產品到達消費者手上存在著諸多環(huán)節(jié),如設計、生產、測試、銷售等。隨著分工的細化,很多設計廠商把產品的生產、測試外包了出去,其中就涉及到嵌入式代碼燒錄的安全性。PC軟件的盜版一直是困擾軟件行業(yè)發(fā)展的主要問題,在嵌入式應用領域,同樣面臨著代碼被竊取的問題。上述技術的不足在于1.PC燒錄代碼軟件存在拷貝隱患,雖然無法輕易破解PC軟件獲取燒錄代碼 (CodeO),但是工廠操作者可以竊取并安裝于任何PC機進行相同燒錄操作。2. ISP燒錄時以密文進行通訊傳輸,雖然可以避免燒錄代碼被截取破解,但是整個燒錄時序及數據流每次都是一樣的,因此存在通過特殊的數據時序捕獲發(fā)送工具進行反復模擬燒錄的隱患。
發(fā)明內容
本發(fā)明的目的正是要解決上述技術存在的不足,而提供一種抗截獲的代碼加密燒錄方式,保證燒錄錄時代碼傳遞的安全性、完整性以及截獲無效性。本發(fā)明解決其技術問題采用的技術方案這種抗截獲的代碼加密燒錄方式,該方法具體步驟如下第一步被燒錄芯片上電自運行進入引導模式,產生隨機數X ;第二步被燒錄芯片以內置廠商碼Num、剛生成的隨機數X為種子,通過運算生成燒錄代碼密文Codel的解密密鑰Key,隨機數X+廠商碼Num =密鑰Key ;
3
第三步被燒錄芯片通過ISP驅動向PC機發(fā)送隨機數X ;第四步PC機的燒錄工具收到被燒錄芯片發(fā)送的隨機數X后,以廠商碼Num、隨機數X為種子,通過運算生成燒錄代碼CodeO的加密密鑰Key,隨機數X+廠商碼Num =密鑰 Key ;第五步PC機的燒錄工具通過加解密算法把燒錄代碼CodeO轉換成密文Codel,燒錄代碼CodeO+密鑰Key =密文Codel ;第六步PC機的燒錄工具通過ISP驅動向被燒錄芯片發(fā)送密文Codel,其中包含分段、應答傳輸機制;第七步PC機的燒錄工具通過CRC16/32或Hash算法由密文Codel生成完整性校驗值 CalibNum ;第八步PC機的燒錄工具通過ISP驅動將密文Codel完整性校驗值CalibNum發(fā)送于被燒錄芯片;第九步被燒錄芯片結合收到的完整性校驗值CalibNum,校驗密文Codel的完整性,校驗失敗則進入第十步A,校驗成功則進入第十步B ;第十步A 被燒錄芯片進行密文完整校驗失敗,通過ISP驅動反饋燒錄失敗,進入結束或第六步密文重發(fā)狀態(tài);第十步B 被燒錄芯片通過弓I導代碼,解密密文Codel為燒錄代碼CodeO,寫入芯片代碼存儲介質,密文Codel+密鑰Key =燒錄代碼CodeO ;第十一步被燒錄芯片反饋燒錄成功,結束燒錄。作為優(yōu)選,所述的加解密算法為DES/3DES、AES、SMl加解密算法的一種。作為優(yōu)選,所述第二步中的所述運算及第四步的所述運算為同一算法,均為雜散或對稱加密算法中的一種。作為優(yōu)選,所述第四步中的加密密鑰(Key)與第二步芯片生成的密文Codel的解密密鑰(Key)相同。作為優(yōu)選,所述第四步中的加密密鑰(Key)與第二步芯片生成的密文Codel的解密密鑰(Key)不進行通訊傳輸。本發(fā)明與現有技術相比,有益的效果是1.每次燒錄時燒錄代碼(CodeO)的密文(Codel)不一樣,可以防止截取燒錄。2.燒錄代碼(CodeO)集成于燒錄工具,防止通過拷貝軟件就可以組建相同燒錄工具。3.雙種子密鑰生成,保證密鑰的安全性與可變性。4.被燒錄芯片主動交互式,保證代碼來源的可靠性、完整性驗證。
圖1為現有方案密文燒錄示意圖;圖2是本發(fā)明的系統(tǒng)結構示意圖;圖3是本發(fā)明流程示意圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明作進一步說明圖2的標記說明(1)燒錄工具由軟硬體兩部分組成,用于對芯片進行燒錄;(2)芯片被燒錄芯片,包括此隊10^、05 3冊等嵌入式編程芯片;(21) ISP驅動一種簡單的通訊驅動,用于數據傳遞;(22)隨機數(X)用于生成燒錄代碼CodeO的動態(tài)加密密鑰(Key)的種子之一;(23)廠商碼(Num)與隨機數⑴通過某種運算生成燒錄代碼CodeO的動態(tài)加密密鑰(Key),隨機數(X)十廠商碼(Num)=加密密鑰(Key);(24)加解密算法用動態(tài)密鑰(Key)加解密燒錄代碼,包括DES/3DES、AES、SMl 等;(3)PC 軟體包含(31)燒錄代碼 CodeO、(32) ISP 驅動、(33)廠商碼(Num)、(34) 加解密算法。用于生成密鑰(Key)、生成密文(Codel)、數據傳遞處理等代碼燒錄操作。
燒錄代碼(CodeO)十密鑰(Key)=密文(Codel);(31)燒錄代碼CodeO 需最終寫入于(2)芯片存儲體的執(zhí)行代碼;(32) ISP驅動被燒錄O)芯片端的驅動,與PC端的Ql) ISP驅動匹配;(33)廠商碼(Num)燒錄⑵芯片端被固化的廠商碼與PC端的Q3)廠商碼(Num) 對應;(34)加解密算法與PC端的04)加解密算法對應;(4) PC硬體運行(3) PC軟體的硬件平臺;(5)綁定(3)PC軟體借助(4) PC硬體的CPU、硬盤或板載設備的主要ID等進行綁定,換(4) PC硬體就無法使用該C3)PC軟體。本發(fā)明所述的這種抗截獲的代碼加密燒錄方式,如圖3所示,該方法具體步驟如下第一步被燒錄芯片上電自運行進入引導模式,產生隨機數X ;第二步被燒錄芯片以內置廠商碼Num、剛生成的隨機數X為種子,通過運算(可選擇雜散、對稱加密等其它算法,在本實施方式中,所述運算為SM3算法)生成燒錄代碼密文Codel的解密密鑰Key,隨機數X+廠商碼Num =密鑰Key ;第三步被燒錄芯片通過ISP驅動向PC機發(fā)送隨機數X ;第四步PC機的燒錄工具收到被燒錄芯片發(fā)送的隨機數X后,以廠商碼Num、隨機數X為種子,通過運算(可選擇雜散、對稱加密等其它算法,在本實施方式中,所述運算為 SM3算法)生成燒錄代碼CodeO的加密密鑰Key,所述加密密鑰(Key)與第二步芯片生成的密文Codel的解密密鑰(Key)相同,為了安全需求,該密鑰(Key)不進行通訊傳輸,隨機數 X+廠商碼Num =密鑰Key ;第五步PC機的燒錄工具通過DES/3DES、AES、SM1等加解密算法把燒錄代碼CodeO 轉換成密文Codel,燒錄代碼(CodeO) +密鑰(Key)=密文(Codel);第六步PC機的燒錄工具通過ISP驅動向被燒錄芯片發(fā)送密文(Codel),其中包含分段、應答等傳輸機制;第七步PC機的燒錄工具通過CRC16/32、Hash等算法由密文(Codel)生成完整性校驗值(CalibNum);第八步PC機的燒錄工具通過ISP驅動將密文(Codel)完整性校驗值(CalibNum) 發(fā)送于被燒錄芯片;第九步被燒錄芯片結合收到的完整性校驗值(CalibNum)校驗密文(Codel)的完整性,校驗失敗則進入第十步A,校驗成功則進入第十步B ;第十步A 被燒錄芯片進行密文完整校驗失敗,通過ISP驅動反饋燒錄失敗,進入結束或第六步密文重發(fā)狀態(tài);第十步B 被燒錄芯片通過引導代碼,解密密文(Codel)為燒錄代碼(CodeO),寫入芯片代碼存儲介質,密文(Codel)+密鑰(Key)=燒錄代碼(CodeO);第十一步被燒錄芯片反饋燒錄成功,結束燒錄。術語解釋1、ISP In-System Programming 在線系統(tǒng)可編程除上述實施例外,本發(fā)明還可以有其他實施方式。凡采用等同替換或等效變換形成的技術方案,均落在本發(fā)明要求的保護范圍。
權利要求
1.一種抗截獲的代碼加密燒錄方式,其特征在于該方法具體步驟如下 第一步被燒錄芯片上電自運行進入引導模式,產生隨機數X ;第二步被燒錄芯片以內置廠商碼Num、剛生成的隨機數X為種子,通過運算生成燒錄代碼密文Codel的解密密鑰Key,隨機數X+廠商碼Num=密鑰Key ; 第三步被燒錄芯片通過ISP驅動向PC機發(fā)送隨機數X ;第四步PC機的燒錄工具收到被燒錄芯片發(fā)送的隨機數X后,以廠商碼Num、隨機數X 為種子,通過運算生成燒錄代碼CodeO的加密密鑰Key,隨機數X+廠商碼Num=密鑰Key ;第五步PC機的燒錄工具通過加解密算法把燒錄代碼CodeO轉換成密文Codel,燒錄代碼CodeO+密鑰Key=密文Codel ;第六步PC機的燒錄工具通過ISP驅動向被燒錄芯片發(fā)送密文Codel,其中包含分段、 應答傳輸機制;第七步PC機的燒錄工具通過CRC16/32或Hash算法由密文Codel生成完整性校驗值 CalibNum ;第八步PC機的燒錄工具通過ISP驅動將密文Codel完整性校驗值CalibNum發(fā)送于被燒錄芯片;第九步被燒錄芯片結合收到的完整性校驗值CalibNum,校驗密文Codel的完整性,校驗失敗則進入第十步A,校驗成功則進入第十步B ;第十步A 被燒錄芯片進行密文完整校驗失敗,通過ISP驅動反饋燒錄失敗,進入結束或第六步密文重發(fā)狀態(tài);第十步B 被燒錄芯片通過弓I導代碼,解密密文Codel為燒錄代碼CodeO,寫入芯片代碼存儲介質,密文Codel+密鑰Key=燒錄代碼CodeO ; 第十一步被燒錄芯片反饋燒錄成功,結束燒錄。
2.根據權利要求1所述的抗截獲的代碼加密燒錄方式,其特征在于所述的加解密算法為DES/3DES、AES、SMl加解密算法的一種。
3.根據權利要求1所述的抗截獲的代碼加密燒錄方式,其特征在于所述第二步中的所述運算及第四步的所述運算為同一算法,均為雜散或對稱加密算法中的一種。
4.根據權利要求1所述的抗截獲的代碼加密燒錄方式,其特征在于所述第四步中的加密密鑰Key與第二步芯片生成的密文Codel的解密密鑰Key相同。
5.根據權利要求1所述的抗截獲的代碼加密燒錄方式,其特征在于所述第四步中的加密密鑰Key與第二步芯片生成的密文Codel的解密密鑰Key不進行通訊傳輸。
全文摘要
本發(fā)明涉及一種抗截獲的代碼加密燒錄方式,具體步驟如下被燒錄芯片以內置廠商碼Num、剛生成的隨機數X為種子,通過運算生成燒錄代碼密文Code1的解密密鑰Key;以廠商碼Num、隨機數X為種子,通過運算生成燒錄代碼Code0的加密密鑰Key,隨機數X+廠商碼Num=密鑰Key;PC機的燒錄工具通過加解密算法把燒錄代碼Code0轉換成密文Code1,由密文Code1生成完整性校驗值CalibNum;被燒錄芯片結合收到的完整性校驗值CalibNum,校驗密文Code1的完整性,被燒錄芯片通過引導代碼,解密密文Code1為燒錄代碼Code0,寫入芯片代碼存儲介質。本發(fā)明有益的效果是每次燒錄時燒錄代碼的密文不一樣,可以防止截取燒錄。燒錄代碼集成于燒錄工具,防止通過拷貝軟件就可以組建相同燒錄工具。
文檔編號G11C7/16GK102280133SQ20111023361
公開日2011年12月14日 申請日期2011年8月16日 優(yōu)先權日2011年8月16日
發(fā)明者黃權 申請人:杭州晟元芯片技術有限公司