利用芯片標識符的軟件安全應用裝置制造方法
【專利摘要】本實用新型涉及軟件安全應用裝置,公開了一種利用芯片標識符的軟件安全應用裝置,包含SHA運算器,一次性編程OTP寄存器,讀控制器,第一比較器,處理器,計時器,第二比較器和寫控制器。SHA運算器將芯片標識符進行SHA運算加密;寫控制器將加密的芯片標識符寫入OTP寄存器;讀控制器讀取OTP寄存器中芯片標識符的部分字段,第一比較器將此部分字段的值與預設值比較,若該值大于等于預設值,處理器命令軟件運行,同時啟動計時器計量軟件運行的時間或次數,當運行的時間或次數達到預設值,處理器就會命令加寫上述部分字段的值,加寫后的值重新寫入到OTP寄存器,如此反復。與現有技術相比,本實用新型可以控制軟件運行的時間或次數,且芯片標識符不可逆推破解。
【專利說明】利用芯片標識符的軟件安全應用裝置
【技術領域】
[0001]本實用新型涉及軟件安全應用裝置,特別涉及利用利用芯片標識符的軟件安全應
田悲晉
/Tl 目.ο
【背景技術】
[0002]常規的軟件版權保護,或者是使用安裝時輸入序列號并加以校驗,或者是每次使用時把當前軟件版本和對應硬件平臺加以比較(此時硬件平臺特征碼不會改變),安裝序列號容易流傳,易于通過反匯編,改掉對應的幾個判斷跳轉,而被破解,所以容易被非法安裝使用,難以控制運行次數或時間。
[0003]對于嵌入式系統,對于相同配置的平臺,有很多開發商會在這個平臺上投入大量資源來研發各自的軟件系統,芯片設計公司要保護每位開發商,使得各自的軟件只有和各自的硬件實現捆綁才能工作,這樣的平臺差異化成本巨大,也很難實現統一管理。
[0004]隨著嵌入式應用的越來越廣泛,產品的安全顯得越來越重要。一方面是為了保護硬件設計,另外一方面也是為了產品本身的安全,防止被黑客攻擊(HACKED)。為了保護芯片中的數據,越來越多的廠商在芯片內部提供了一種特殊的寄存器=OTP寄存器(One TimeProgrammable,一次性編程寄存器)。OTP寄存器的特點是每組OTP寄存器包括多個比特位,對每一比特位而言,信息都是一次性寫入,不可重寫,但是不同比特位可以分多次寫入。掉電不丟失數據,可以反復讀出數據。
[0005]芯片標識符Chip ID具有唯一性和不可更改的要求,所以目前通常都使用OTP寄存器來實現,把芯片標識符寫入到OTP寄存器是使用電子熔絲e-Fuse實現的,由于e-Fuse對芯片的物理影響比較大,如果把這顆芯片解剖分析,就很容易發現改寫的位,用光學顯微鏡就能很容易逆向分析破解這些Chip ID。當然也可以把未寫入設定的Chip ID的芯片(對應ID為0x0)改寫為0x1,實現復制拷貝。這樣就對產品本身的安全性造成很大的威脅。
實用新型內容
[0006]本實用新型的目的在于提供一種利用芯片標識符的軟件安全應用裝置,使得軟件使用次數或時間可以得到有效的保護,實現一機一密碼,方便統一管理,而且芯片標識符也難以被逆向破解和非法復制。
[0007]為解決上述技術問題,本實用新型提供了一種利用芯片標識符的軟件安全應用裝置,包含SHA運算器,一次性編程OTP寄存器,讀控制器,第一比較器,處理器,計時器,第二比較器和寫控制器;
[0008]所述SHA運算器的輸入端輸入待寫入到OTP寄存器的芯片標識符Chip ID,輸出端與所述寫控制器相連,所述Chip ID經所述SHA運算器運算加密后輸出給所述寫控制器,所述寫控制器的輸出端與OTP寄存器相連,所述寫控制器將加密后的Chip ID寫入所述OTP
寄存器;
[0009]所述OTP寄存器保存設定的Chip ID,并與所述讀控制器相連,所述讀控制器的輸出端與所述第一比較器的輸入端相連,所述第一比較器的輸出端與所述處理器的輸入端相連;
[0010]所述讀控制器讀出所述OTP寄存器中Chip ID包含的部分字段的值,并輸出給所述第一比較器;
[0011]所述第一比較器將所述部分字段的值與預設值作比較,并將所述第一比較器比較的結果輸入處理器,所述處理器根據所述第一比較器比較的結果輸出控制軟件運行的控制命令,并同時觸發所述計時器計算所述軟件運行的時間或次數;
[0012]所述計時器與所述第二比較器的輸入端相連,所述第二比較器的輸出端與所述處理器相連;
[0013]所述第二比較器將所述軟件運行的時間或次數與預設時間或次數進行比較,并將所述第二比較器比較的結果輸入處理器,所述處理器根據所述第二比較器比較的結果輸出執行改寫操作的控制命令,所述寫控制器的輸出端與所述OTP寄存器相連,將改寫的值寫入所述OTP寄存器。
[0014]與現有技術相比,本實用新型引進SHA運算器,經過SHA運算器對本實用新型中的Chip ID的運算,寫入到OTP寄存器中的Chip ID跟待寫入到OTP寄存器中的Chip ID是不同的Chip ID,而且此SHA的運算過程是單向不可逆的,所以即使是黑客也很難根據最終顯示給用戶的芯片標識符來逆向推斷出OTP寄存器里面真實的芯片標識符。另外,SHA是把不定長度的一串消息,加以特定的算法處理,得到固定長度的數據,這個數據在理論上破解很困難,工程實現也是不可能的,所以本實用新型中的芯片標識符也是唯一的,不可復制的。另外,本實用新型還引進計時器、第一比較器和第二比較器,經過計時器和第一比較器、第二比較器的配合使用,能夠有效地對軟件運行的時間或次數進行控制,使開發商可以自定義某個軟件只能在某段時間運行,或只能運行幾次,或只能在某段時間運行幾次,或只能一次運行多長時間等等,這樣就有效地保護了軟件的使用權限。
[0015]另外,本實用新型中所述的Chip ID包含:出廠ID、芯片設計者自定義的ID、軟件開發者自定義的ID、供用戶使用的ID以及可執行代碼ID,還可以包含其他的ID。
[0016]使用這種方法,只要保護好上述任一個ID,即使是知曉全部設計細節的研發人員,缺了任意一個ID,都不能破解上述芯片標識符,也不能把空白芯片,改寫為有特定Chip ID的芯片,比單有一個ID安全系數更高。并且在很多情況下,機器平臺本身可以上網,安裝軟件先讀出出廠ID,結合芯片設計者自定義的ID (由芯片平臺開發商控制)得到唯一標識符以后,通過網絡自動返回給軟件開發商。軟件開發商根據用戶注冊信息得到注冊碼,根據軟件開發者自定義的ID (由軟件開發商控制)和最終用戶輸入注冊碼結合得到序號寫入供用戶使用的ID,就能過實現一機一密碼。
[0017]另外,本實用新型中部分字段的值是供用戶使用的ID的值,系統就是通過這個值與預設值進行比較,達到預設條件就會執行軟件的運行,未達到預設條件就會退出軟件運行,由于這個ID也是經過SHA運算加密的,也有單一不可復制性,而且不會被逆向推斷并破解,所以由這個值來控制軟件的運行與否安全性非常高。
[0018]另外,本實用新型還包含合并器,該合并器用于對用戶設定的值和廠商設定的值進行合并,并將合并后的數據擴展為512位比特的數據。由于合并器是現有的成熟器件,保證了本實用新型實施方式的可行性。[0019]另外,本實用新型還包含系統接口,該系統接口用于接收用戶設定的值和廠商設定的值,并可以向用戶輸出讀取數據。由于系統接口是現有的成熟器件,保證了本實用新型實施方式的可行性。
[0020]此外,本實用新型中的OTP寄存器可以為燒斷laser型OTP寄存器、熔斷fuse型OTP寄存器或電子熔絲efuse型OTP寄存器。這些類型的OTP寄存器的特點就是一次性寫入,不可改寫,如果有需要,芯片廠商也可以根據客戶的需要寫入特定的序列號,這樣,每個芯片都會有一個不一樣的ID號,避免被復制,符合芯片標識符Chip ID具有唯一'丨生和不可更改的要求。
【專利附圖】
【附圖說明】
[0021]圖1是根據本實用新型第一實施方式中的利用芯片標識符的軟件安全應用裝置示意圖;
[0022]圖2是根據本實用新型第一實施方式中的寫入OTP寄存器的芯片標識符的數據通道;
[0023]圖3是根據本實用新型第一實施方式的SHA運算器的結構示意圖;
[0024]圖4是根據本實用新型第一實施方式中供用戶使用的ID的Ctrl位示意圖;
[0025]圖5是根據本實用新型第二實施方式中的利用芯片標識符的軟件安全應用裝置示意圖;
[0026]圖6是根據本實用新型第三實施方式中的利用芯片標識符的軟件安全應用裝置示意圖。
【具體實施方式】
[0027]為使本實用新型的目的、技術方案和優點更加清楚,下面將結合附圖對本實用新型的各實施方式進行詳細的闡述。然而,本領域的普通技術人員可以理解,在本實用新型各實施方式中,為了使讀者更好地理解本申請而提出了許多技術細節。但是,即使沒有這些技術細節和基于以下各實施方式的種種變化和修改,也可以實現本申請各權利要求所要求保護的技術方案。
[0028]本實用新型的第一實施方式涉及一種芯片標識符的軟件安全應用裝置。具體示意圖如圖1所示。
[0029]其中,系統接口用于接收待寫入到OTP寄存器中的需要加密的部分的Chip ID。
[0030]該部分的Chip ID包含出廠ID(Un1-1D)、芯片設計者自定義的ID(Develop-1D)、軟件開發者自定義的ID (Custom-1D)和供用戶使用的ID (User-1D)(還可以包含其他的
ID,本實施例中不作--列舉)。本實施方式中,只要保護好Un1-1D、Develop_ID、Custom-1D
和User-1D中任一個值或幾個值,即使是知曉全部設計細節的研發人員,缺了任意一個值,都不能破解上述部分的Chip ID,也不能把空白芯片,改寫為有特定部分的Chip ID的芯片,比單有一個ID安全系數更高。并且在很多情況下,機器平臺本身可以上網,安裝軟件先讀出出廠ID,結合芯片設計者自定義的ID (由芯片平臺開發商控制)得到唯一標識符以后,通過網絡自動返回給軟件開發商。軟件開發商根據用戶注冊信息得到注冊碼,根據軟件開發者自定義的ID (由軟件開發商控制)和最終用戶輸入注冊碼結合得到序號寫入供用戶使用的ID,就能過實現一機一密碼。
[0031]系統接口的輸入端口用于接收待寫入到OTP寄存器中需要加密的部分的ChipID,并將待寫入到OTP寄存器中需要加密的部分的Chip ID通過系統接口的輸出端口輸入到合并器中。
[0032]合并器用于對Un1-1D、Develop-1D、Custom-1D和User-1D按照一定順序進行合并,并將合并后的數據擴展為512位比特的數據,以便用于后續的SHA運算,具體如圖2所示:
[0033]首先,系統接口將待寫入到OTP寄存器中的由Un1-1D、Develop-1D、Custom-1D和User-1D組成的部分的Chip ID作為第一字段,如圖2中的編號I ;然后在上述第一字段后的第二字段存放停止位,如圖2中的編號2 ;之后把上述第二字段后的第三字段作為為填充字段,該填充字段中的各比特位填充為0,如圖2中的編號3 ;最后將第三字段后的第四字段作為指示上述第一字段占用的比特位數,如圖2中的編號4。
[0034]上述第一字段、第二字段、第三字段和第四字段的比特長度總和為512位比特,其中第四字段的比特長度為64位比特,其余三段比特長度為512位比特減去64位比特,SP448為比特。
[0035]經過合并器處理的合并結果,才能保證SHA運算器對這些設定的值進行正確的SHA運算。在SHA運算器運算過程中,由于輸入的數據必須是512位比特,通過合并器的合并處理,就能將第一字段、第二字段、第三字段和第四字段的比特長度總和綜合處理成適用于SHA運算器進行SHA運算的512位比特,保證了 SHA運算器的可操作性和準確性。
[0036]合并器的輸入端口接收Un1-1D、Develop-1D、Custom-1D和User-1D,合并器的輸出端口將512位比特的字段輸出給SHA運算器。
[0037]SHA運算器用于對輸入數據進行安全散列算法SHA的運算,具體結構見圖3,由于SHA運算器已是現有的成熟器件,因此在本實施方式中對其具體結構不再贅述。該SHA運算器的輸入端口接收待寫入到一次性編程OTP寄存器中的芯片標識符,并將經所述SHA加密后的芯片標識符通過輸出端口輸入到寫控制器。
[0038]SHA運算器對待寫入到OTP寄存器中的部分的Chip ID進行運算加密。SHA運算器是把不定長度的一串消息,加以特定的算法處理,得到固定長度的數據,即加密后的部分的 Chip ID。
[0039]SHA運算器的運算包含SHA160/224/256/384/512和MD4/MD5/MD6等多種算法實現,理論上破解很困難(即目前的數學分析理論已經證明了當前數學工具不能通過對加密后數據的分析,反推破解出加密前的原始數據),工程實現是不可能的(即無法使用暴力窮舉的方式,根據加密后的數據破解出加密前的原始數據)。其特征如下:
[0040]I)由數據摘要反推原輸入數據,從計算理論上來說是很困難;
[0041 ] 2)想要找到兩組不同的數據對應到相同的數據摘要,從計算理論上來說也是很困難的;
[0042]3)任何對輸入數據的變動,都有很高的機率導致其產生的數據摘要迥異。
[0043]最重要的是SHA運算器的運算過程單向不可逆,使用SHA運算器對設定的部分的Chip ID進行運算加密得到的部分的Chip ID跟待寫入到OTP寄存器中的部分的Chip ID是不同的,由于SHA運算器的運算過程不可逆,所以從這個加密的部分的Chip ID是不可能反推到設定的待寫入到OTP寄存器的部分的Chip ID的。SHA運算器是現有的成熟器件,保證了本實用新型實施方式的可行性。
[0044]寫控制器用于將經SHA加密后的部分的Chip ID和可執行代碼ID (Code-1D)組成的完整的Chip ID寫入到OTP寄存器中。
[0045]讀控制器用于讀取OTP寄存器中保存的完整的Chip ID中的部分字段。這個部分字段即完整的Chip ID中的User-1D。
[0046]讀控制器與第一比較器相連,第一比較器用于將上述讀控制器讀取的User-1D的值與預設值進行比較,當User-1D的值大于等于預設值時,與第一比較器相連的處理器就會發出執行軟件運行的控制命令,控制軟件的運行,與此同時,與處理器相連的計時器也被啟動,用于計量上述軟件運行的時間或次數。由于這個User-1D是經過SHA運算加密的,具有單一不可復制性,而且不會被逆向推斷并破解,所以由這個值來控制軟件的運行安全性非常高。
[0047]計時器計時一段時間后,與計時器相連的第二比較器會把計時器計量的上述軟件運行的時間或次數與預設的時間或次數進行比較,當軟件運行的時間或次數大于或等于預設的時間或次數時,與第二比較器相連的處理器就會發出加寫User-1D的值的控制命令,此時與處理器相連的寫控制器會將原來的User-1D的值加寫成為新的User-1D的值,然后會將這個加寫后新的User-1D的值寫入到與寫控制器相連的OTP寄存器中,之后第一比較器,計時器,第二比較器,處理器等又會再一次重復上面的動作,反復如此,不斷執行。
[0048]其中,上述User-1D的值變成新的加寫的User-1D的值可舉以下實例進行說明:
[0049]假設讀控制器讀出的User-1D的原始值為0x3=0011,當這個原始值大于等于預設值時,處理器控制軟件運行,同時計時器開始計量軟件運行的時間或次數,當軟件運行的時間或次數大于或等于預設的時間或次數時,處理器就會發出加寫User-1D的值得命令,寫控制器就會將User-1D的原始值0x3=0011加寫為新的User-1D的值0x7=0111,只要不把User-1D對應的ctrl位(如圖4中的編號I所示)設置,則可以逐位加寫,反復如上,不斷執行。舉例說明:寫入控制器在寫入數據31?O位到OTP的對應位時,需要先檢查ctrl即第512位。特別地,ctrl位只能從O到I寫一次,視為lock功能。如果ctrl的值為O,就可以寫入0ΤΡ,否則不會寫入OTP并向上層系統軟件報錯。
[0050]與現有技術相比,本實用新型引進SHA運算器,經過SHA運算器對本實用新型中的Chip ID的運算,寫入到OTP寄存器中的Chip ID跟待寫入到OTP寄存器中的Chip ID是不同的Chip ID,而且此SHA的運算過程是單向不可逆的,所以即使是黑客也很難根據最終顯示給用戶的芯片標識符來逆向推斷出OTP寄存器里面真實的芯片標識符。另外,SHA是把不定長度的一串消息,加以特定的算法處理,得到固定長度的數據,這個數據在理論上破解很困難,工程實現也是不可能的,所以本實用新型中的芯片標識符也是唯一的,不可復制的。并且通過Chip ID中包含的幾種不同ID功能的配合,能夠實現一機一密。
[0051]另外,本實施例中還引進計時器、處理器、第一比較器第二比較器等,經過這些器件的配合使用,能夠有效地對軟件運行的時間或次數進行控制,使開發商可以自定義某個軟件只能在某段時間運行,或只能運行幾次,或只能在某段時間運行幾次,或只能一次運行多長時間等等,這樣就有效地保護了軟件的使用權限。
[0052]本實施例中OTP寄存器的寫入是通過電子熔絲e-Fuse、燒斷laser或熔斷fuse來實現的,其中efuse型OTP寄存器包含耦合電容型的efuse寄存器、串聯晶體管型的efuse寄存器和電介質擊穿型的efuse寄存器。這些方式實現的OTP寄存器特點是只能一次性寫入,不可改寫,但是可以重復讀出數據,如果有需要,芯片廠商也可以根據客戶的需要寫入特定的序列號,這樣,每個芯片都會有一個不一樣的ID號,避免被復制,符合Chip ID具有唯一性和不可更改的要求。
[0053]本實用新型的第二實施方式涉及一種芯片標識符的軟件安全應用裝置。第二實施方式與第一實施方式大致相同,主要區別之處在于:在第一實施方式中,
[0054]第一比較器將讀控制器讀取的User-1D的值與預設值進行比較,當User-1D的值大于等于預設值時,與第一比較器相連的處理器就會發出執行軟件運行的控制命令控制軟件的運行。而在本實用新型第二實施方式中,當User-1D的值小于預設值時,與第一比較器相連的處理器就會發出執行軟件退出運行的控制命令控制軟件退出正常的運行,之后計時器,第二比較器等一系列器件的工作將不再執行。如圖5所示。
[0055]這種控制方式讓軟件必須在有效的User-1D的值的情況下才能運行,有力的保護了軟件開發商的版權,利于統一管理。
[0056]本實用新型的第三實施方式涉及一種芯片標識符的軟件安全應用裝置。第三實施方式與第一實施方式大致相同,主要區別之處在于:在第一實施方式中,
[0057]當計時器計量的軟件運行的時間或次數大于或等于預設的時間或次數時,與第二比較器相連的處理器就會發出加寫User-1D的值的控制命令,此時與處理器相連的寫控制器會將原來的User-1D的值加寫成為新的User-1D的值,然后會將這個加寫后新的User-1D的值寫入到與寫控制器相連的OTP寄存器中。而在本實用新型第三實施方式中,當計時器計量的軟件運行的時間或次數小于預設的時間或次數時,與第二比較器相連的處理器就會發出計時器繼續計量的控制命令,計時器將會繼續計量軟件運行的時間或次數,直到該軟件運行的時間和次數大于或等于預設的時間和次數后,才接著執行之后的一系列動作。如圖6所示。
[0058]這種控制方式使軟件使用者能夠在預設的時間或次數內最大限度的享有該軟件的使用權,防止使用時間或次數還未到就被禁止使用。
[0059]本領域的普通技術人員可以理解,上述各實施方式是實現本實用新型的具體實施例,而在實際應用中,可以在形式上和細節上對其作各種改變,而不偏離本實用新型的精神和范圍。
【權利要求】
1.一種利用芯片標識符的軟件安全應用裝置,其特征在于,包含SHA運算器,一次性編程OTP寄存器,讀控制器,第一比較器,處理器,計時器,第二比較器和寫控制器; 所述SHA運算器的輸入端輸入待寫入到OTP寄存器的芯片標識符Chip ID,輸出端與所述寫控制器相連,所述Chip ID經所述SHA運算器運算加密后輸出給所述寫控制器,所述寫控制器的輸出端與OTP寄存器相連,所述寫控制器將加密后的Chip ID寫入所述OTP寄存器; 所述OTP寄存器保存設定的Chip ID,并與所述讀控制器相連,所述讀控制器的輸出端與所述第一比較器的輸入端相連,所述第一比較器的輸出端與所述處理器的輸入端相連; 所述讀控制器將從所述OTP寄存器中讀出的所述Chip ID包含的部分字段的值輸出給所述第一比較器; 所述第一比較器將所述部分字段的值與預設值比較的結果輸入處理器,所述處理器根據所述第一比較器比較的結果輸出控制軟件運行的控制命令,所述處理器的輸出端與所述計時器的輸入端相連,所述計時器在所述處理器輸出所述控制軟件運行的控制命令時,計量所述軟件運行的時間或次數; 所述計時器與所述第二比較器的輸入端相連,所述第二比較器的輸出端與所述處理器相連; 所述計時器將計量出的所述軟件運行的時間或次數輸出給所述第二比較器,所述第二比較器將所述軟件運行的時間或次數與預設時間或次數比較的結果輸入處理器,所述處理器根據所述第二比較器比較的結果將執行改寫操作的控制命令輸出給寫控制器,所述寫控制器將改寫的值寫入所述 OTP寄存器。
2.根據權利要求1所述的利用芯片標識符的軟件安全應用裝置,其特征在于,所述Chip ID包含:出廠ID、芯片設計者自定義的ID、軟件開發者自定義的ID、供用戶使用的ID以及可執行代碼ID。
3.根據權利要求2所述的利用芯片標識符的軟件安全應用裝置,其特征在于,所述部分字段的值是供用戶使用的ID的值;
4.根據權利要求1所述利用芯片標識符的軟件安全應用裝置,其特征在于,還包含合并器; 所述合并器與所述SHA運算器相連; 所述合并器用于對所述出廠ID、芯片設計者自定義的ID、軟件開發者自定義的ID、供用戶使用的ID以及可執行代碼ID進行合并,并將所述合并后的數據擴展為512位比特的數據;所述合并器的輸入端口接收所述出廠ID、芯片設計者自定義的ID、軟件開發者自定義的ID、供用戶使用的ID以及可執行代碼ID,所述合并器的輸出端口將所述512位比特的數據輸出給所述SHA運算器。
5.根據權利要求4所述的利用芯片標識符的軟件安全應用裝置,其特征在于,還包含系統接口 ; 所述系統接口與所述合并器相連; 所述系統接口的輸入端口用于接收所述待寫入到OTP寄存器中的芯片標識符,并將所述待寫入到OTP寄存器中的芯片標識符通過所述系統接口的輸出端口輸入到所述合并器中。
6.根據權利要求1至5中任一項所述的芯片標識符讀寫方法,其特征在于,所述OTP寄存器為以下任意一種類型的OTP寄存器: 燒斷laser型OTP寄存器、熔斷fuse型OTP寄存器、電子熔絲efuse型OTP寄存器。
7.根據權利要求6所述的芯片標識符讀寫方法,其特征在于, 所述efuse型OTP寄存器包含耦合電容型的efuse寄存器、串聯晶體管型的efuse寄存器和電介質擊穿型的efuse寄存器。
【文檔編號】G06F21/12GK203773549SQ201320665350
【公開日】2014年8月13日 申請日期:2013年10月25日 優先權日:2013年10月25日
【發明者】李林, 胡旭, 夏建明 申請人:上海華力創通半導體有限公司