機頂盒芯片及應用在機頂盒芯片中的數字簽名實現方法
【專利摘要】本發明提供一種機頂盒芯片及應用在機頂盒芯片中的數字簽名實現方法,所述數字簽名實現方法包括:首先,使用所述芯片的密鑰對RSA公鑰進行加密,獲得RSA公鑰密文;然后將所述RSA公鑰密文存儲至所述Flash中的預設空間;接著對RSA公鑰運行哈希算法,獲取所述RSA公鑰的哈希值;最后將所述RSA公鑰的哈希值植入所述芯片的OTP寄存器中以供所述芯片啟動時進行簽名驗證。于本發明中,由于哈希算法的引入,新的實現方法有效的降低了芯片內部OTP資源的使用,進而降低了芯片成本,另外,由于芯片密鑰具有唯一性的特點,使用其對RSA公鑰進行加密有效的提高了芯片安全性。
【專利說明】機頂盒芯片及應用在機頂盒芯片中的數字簽名實現方法
【技術領域】
[0001]本發明涉及數字電視芯片【技術領域】,特別是涉及一種機頂盒芯片及應用在機頂盒芯片中的數字簽名實現方法。
【背景技術】
[0002]隨著截止時間的臨近和數字技術的發展,中國的數字電視轉換步伐逐步加快,截止到2010年中國的有線數字電視用戶已經超過8000萬,IPTV用戶已達到850萬。隨著經濟的快速發展和生活水平的不斷改善,部分用戶對節目品位的要求也在不斷提高。為了滿足不同用戶對節目質量和節目類別的差異化需求,通過付費的方式向特定用戶開放相應節目的觀看權限逐步成為當前運營方式的主流。
[0003]同時由于利益的驅動,針對現有機頂盒芯片在安全方面的不足,通過各種方式非法觀看付費節目的現象屢見不鮮,甚至越來越多的盜版機頂盒在市場上也頻頻出現。為了盡可能的保證運營商及機頂盒廠商的利益,必須從芯片設計階段就開始考慮提高產品的安全性能。因此,具有高級安全特性的數字電視芯片應運而生。
[0004]為了保證機頂盒Flash中代碼的完整性,驗證Flash中Loader程序的數字簽名是一種防止黑客篡改并運行非授權程序的有效方式。在對程序的簽名驗證中,目前主要采用的是非對稱的RSA算法(RSA是Rivest、Shamir和Adleman提出來的基于數論非對稱性(公開鑰)加密算法,亦稱非對稱算法)。該算法要求CA廠商利用其私鑰對程序進行簽名,在機頂盒啟動過程中使用與其配對的公鑰進行驗證。為了保證芯片啟動時只能使用CA廠商提供的RSA公鑰進行驗簽,并保證芯片的通用性,一般將其植入到芯片內部的OTP (One-timeProgrammable,簡稱OTP)寄存器中。隨著安全強度需求的提高,目前機頂盒領域安全芯片已普遍使用2048BIT的密鑰長度,這將使得芯片內嵌OTP面積急劇增長,從而增加了芯片成本。
【發明內容】
[0005]鑒于以上所述現有技術的缺點,本發明的目的在于提供一種機頂盒芯片及應用在機頂盒芯片中的數字簽名實現方法,用于解決現有技術中因芯片內嵌OTP面積增長而帶來的芯片成本高的問題。
[0006]為實現上述目的及其他相關目的,本發明提供一種應用在機頂盒芯片中的數字簽名實現方法,所述數字簽名實現方法包括:使用所述芯片的密鑰對RSA公鑰進行加密,獲得RSA公鑰密文;將所述RSA公鑰密文存儲至所述Flash中的預設空間;對RSA公鑰運行哈希算法,獲取所述RSA公鑰的哈希值;將所述RSA公鑰的哈希值植入所述芯片的OTP寄存器中以供所述芯片啟動時進行簽名驗證。
[0007]本發明數字簽名實現方法的中,還包括對加載程序進行簽名的步驟:令預存在所述Flash中加載程序運行相應的哈希算法,獲取對應的哈希值;使用RSA私鑰對獲取的哈希值進行簽名,以獲取加載程序簽名;將所述加載程序簽名存儲至所述Flash中的預設空間。[0008]本發明數字簽名實現方法中,所述芯片啟動時進行簽名驗證的步驟包括:從所述Flash中加載所述RSA公鑰密文,并使用所述芯片的密鑰對其解密,獲得RSA公鑰明文;對所述RSA公鑰明文運行相應的哈希算法以獲取哈希值;驗證獲取的哈希值與所述芯片的OTP寄存器中植入的所述RSA公鑰的哈希值是否一致,若一致,則所述RSA公鑰明文有效;若不一致,則所述RSA公鑰明文無效,則驗證失敗,進入CPU掛起狀態;使用該有效的RSA公鑰明文對所述加載程序簽名運行簽名驗證算法;若簽名驗證通過,運行加載程序;若簽名驗證未通過,進入CPU掛起狀態。具體地,所述芯片啟動時進行簽名驗證的步驟中還包括預先判斷啟動模式是否為安全模式的步驟,若是,則從所述Flash中加載所述RSA公鑰密文,并使用所述芯片的密鑰對其解密,獲得RSA公鑰明文;若否,則直接從所述Flash中加載并運行所述加載程序。
[0009]本發明還提供一種機頂盒芯片,包括=Flash存儲器,包括存儲有加載程序的程序存儲區、存儲有加載程序簽名的簽名存儲區、以及存儲有RSA公鑰密文的公鑰存儲區,其中,所述RSA公鑰密文由使用芯片密鑰對RSA公鑰進行加密時生成;以及OTP寄存器,包括存儲有RSA公鑰哈希值的存儲區及存儲有芯片密鑰的密鑰存儲區,其中,所述RSA公鑰哈希值由RSA公鑰運行哈希算法生成。
[0010]本發明的機頂盒芯片中,所述加載程序簽名由加載程序運行相應的哈希算法獲取對應的哈希值,并使用RSA私鑰對其進行簽名生成。
[0011]如上所述,本發明的機頂盒芯片及應用在機頂盒芯片中的數字簽名實現方法,在芯片內部OTP中植入RSA公鑰的哈希值,同時將使用芯片密鑰加密后的RSA公鑰密文存儲在Flash中。在每次重啟時,首先利用芯片中植入的RSA公鑰的哈希值以及芯片密鑰驗證Flash中RSA公鑰密文的有效性,驗證通過后使用解密后的RSA公鑰完成Flash中Loader程序簽名驗證。由于哈希算法的引入,新的實現方法有效的降低了芯片內部OTP資源的使用,進而降低了芯片成本。由于芯片密鑰具有唯一性的特點,使用其對RSA公鑰進行加密有效的提高了芯片安全性。
【專利附圖】
【附圖說明】
[0012]圖1顯示為本發明提的應用在機頂盒芯片中的數字簽名實現方法流程圖。
[0013]圖2顯示為本發明的機頂盒芯片在啟動時進行簽名驗證的方法流程圖。
[0014]圖3顯示為本發明機頂盒芯片的數據存儲框圖。
【具體實施方式】
[0015]以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節也可以基于不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。
[0016]需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪制,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可能更為復雜。[0017]為了在滿足芯片安全性需求前提下,盡可能的減少芯片成本,本實施方式中提出了一種新的Loader程序的簽名驗證實現方法,為方便闡述本發明的原理,于本實施方式中,技術方案中涉及的采樣算法將以RSA-2048,SHA-1為例進行說明,然,并不局限于此,所述算法亦可為SHA-256算法。
[0018]為詳述本發明的原理及功效,請參閱圖1,顯示為本發明提的應用在機頂盒芯片中的數字簽名實現方法流程圖,如圖所示,所述數字簽名實現方法包括以下步驟:
[0019]步驟Sll:令預存在Flash中加載程序運行相應的哈希算法,獲取對應的哈希值;即,將參與驗證的Boot Loader程序運行相應的哈希算法,得到對應的哈希值。于本實施例中,所述哈希算法以SHA-1為例。需要特別說明的是,所述Flash可以為所述機頂盒芯片中的Flash存儲器,也可以為設置在所述機頂盒芯片之外的Flash存儲芯片。
[0020]步驟S12:使用RSA私鑰對獲取的哈希值進行簽名,以獲取加載程序簽名;具體地,使用RSA私鑰對獲取的哈希值進行簽名,獲取Boot Loader簽名,于本實施例中,所述的使用RSA私鑰對獲取的哈希值進行的簽名長度為2048比特。
[0021]步驟S13:將所述加載程序簽名存儲至所述Flash中的預設空間;于本實施例中,所述Flash可以為所述機頂盒芯片中的Flash存儲器,也可以為設置在所述機頂盒芯片之外的Flash存儲芯片。
[0022]步驟S14:使用所述芯片的密鑰對RSA公鑰進行加密,獲得RSA公鑰密文;于本實施例中,獲得的RSA公鑰密文長度為2048比特,所述芯片的密鑰長度均為128比特,解密算法使用TDES(即數據加密密鑰與解密密鑰相同的加密算法)或者AES(AdVanced EncryptionStandard,簡稱 AES,又稱 Rijndael 加密法)。
[0023]步驟S15:將所述RSA公鑰密文存儲至所述Flash中的預設空間。
[0024]步驟S16:對RSA公鑰運行哈希算法,獲取所述RSA公鑰的哈希值。于本實施例中,所述RSA公鑰的哈希值長度為160比特。
[0025]步驟S17:將所述RSA公鑰的哈希值植入所述芯片的OTP寄存器中以供所述芯片啟動時進行簽名驗證。
[0026]本發明對RSA公鑰使用芯片密鑰進行加密,Flash中存儲RSA公鑰的密文,因此采用本發明提供的設計方法將大大減小片內OTP存儲資源的使用,進而降低芯片成本。
[0027]請參閱圖2,顯示為本發明的機頂盒芯片在啟動時進行簽名驗證的方法流程圖,如圖所示,所述機頂盒芯片在啟動時進行簽名驗證的方法包括以下步驟:
[0028]步驟S21:首先,預先判斷啟動模式是否為安全模式,若是,則進止步驟S22 ;若否,則進止步驟S28,即直接從所述Flash中加載并運行所述加載程序。
[0029]步驟S22:從所述Flash中加載所述RSA公鑰密文,并使用所述芯片的密鑰對其解密,獲得RSA公鑰明文,所述芯片的密鑰長度為128比特,解密算法使用TDES或者AES。
[0030]步驟S23:對所述RSA公鑰明文運行相應的哈希算法以獲取哈希值。于本實施例中,所述RSA公鑰的哈希值長度為160比特。
[0031]步驟S24:驗證獲取的哈希值與所述芯片的OTP寄存器中植入的所述RSA公鑰的哈希值是否一致,若一致,則進止步驟S25 ;若不一致,則進止步驟S29。
[0032]步驟S25:所述RSA公鑰明文有效,即驗證結果一致說明該組公鑰有效。
[0033]步驟S26:使用該有效的RSA公鑰明文對所述加載程序簽名運行簽名驗證算法。[0034]步驟S27,判斷簽名驗證是否通過,若是,則進止步驟S28 ;若否,則進止步驟S29。
[0035]:步驟S28:簽名驗證通過,運行加載程序,即正常運行Boot Loader程序。
[0036]步驟S29:所述RSA公鑰明文無效,則驗證失敗,進入CPU掛起狀態。
[0037]本發明對RSA公鑰使用芯片密鑰進行加密,Flash中存儲RSA公鑰的密文,在芯片啟動過程中首先使用芯片密鑰解密RSA公鑰,由于芯片密鑰具備唯一性的特點,且對軟件不可見,黑客即使破解了 RSA密鑰對,也難以得到每顆芯片對應的RSA公鑰密文,從而增強了芯片安全性。
[0038]請參閱圖3,顯示為本發明機頂盒芯片的數據存儲框圖,如圖所示,本發明的機頂盒芯片I包括=Flash存儲器11及OTP寄存器12。 [0039]所述Flash存儲器包括存儲有加載程序(即Boot Loader程序)的程序存儲區113、存儲有加載程序簽名的簽名存儲區114、以及存儲有RSA公鑰密文的公鑰存儲區115,其中,所述RSA公鑰密文由使用芯片密鑰對RSA公鑰進行加密時生成;所述加載程序簽名由加載程序運行相應的哈希算法獲取對應的哈希值,并使用RSA私鑰對其進行簽名生成。于本實施例中,所述公鑰存儲區115存儲的RSA公鑰密文長度為2048比特。所述簽名存儲區114存儲的加載程序簽名的長度為2048比特。于具體的實施例中,所述Flash存儲器11中還包括APP儲存區111及APP簽名存儲區112。
[0040]所述OTP寄存器12包括存儲有RSA公鑰哈希值的存儲區121及存儲有芯片密鑰的密鑰存儲區122,其中,所述RSA公鑰哈希值由RSA公鑰運行哈希算法生成。于本實施例中,所述RSA公鑰哈希值長度為160比特,所述芯片的密鑰長度為128比特,解密算法使用TDES或者AES。因此采用本發明提供的芯片將大大減小片內OTP存儲資源的使用,進而降低芯片成本。
[0041]由上可知,本發明提供的實現方法則是在將RSA公鑰的哈希值植入內部OTP中,而將經過芯片密鑰加密后的RSA公鑰密文放到的Flash中。目前常用RSA算法一般采用2048比特密鑰強度,而哈希算法的摘要長度明顯小于該長度(以SHA-1為例只有160比特),因此采用本發明提供的設計方法將大大減小片內OTP存儲資源的使用,進而降低芯片成本。請參閱表1,表示為傳統實現方案與新的實現方案芯片資源消耗對比,如表所示:
[0042]
哈名 --RSA氺發別/;? 0.1P
IiiniS^(UH)-- Π?(BH)
RSA-10241024864
SHA-X--160-
RSA-204820481SS8
RSA-10241024768
SHA-256----256-
RSA-204820481792
[0043]由于哈希算法存在一定的碰撞風險,并且RSA算法本身也存一定的破解風險,一旦RSA密鑰對被破解將導致整批使用該RSA密鑰對的機頂盒均不能被繼續使用,給廠商帶來巨大的經濟損失,為提高安全性,本發明對RSA公鑰使用芯片密鑰進行加密,Flash中存儲RSA公鑰的密文,在芯片啟動過程中首先使用芯片密鑰解密RSA公鑰,由于芯片密鑰具備唯一性的特點,且對軟件不可見,黑客即使破解了 RSA密鑰對,也難以得到每顆芯片對應的RSA公鑰密文,從而增強了芯片安全性。
[0044]綜上所述,本發明的機頂盒芯片及應用在機頂盒芯片中的數字簽名實現方法,在芯片內部OTP中植入RSA公鑰的哈希值,同時將使用芯片密鑰加密后的RSA公鑰密文存儲在Flash中。在每次重啟時,首先利用芯片中植入的RSA公鑰的哈希值以及芯片密鑰驗證Flash中RSA公鑰密文的有效性,驗證通過后使用解密后的RSA公鑰完成Flash中Loader程序簽名驗證。由于哈希算法的引入,新的實現方法有效的降低了芯片內部OTP資源的使用,進而降低了芯片成本。由于芯片密鑰具有唯一性的特點,使用其對RSA公鑰進行加密有效的提高了芯片安全性。所以,本發明有效克服了現有技術中的種種缺點而具高度產業利用價值。
[0045]上述實施例僅例示性說明本發明的原理及其功效,而非用于限制本發明。任何熟悉此技術的人士皆可在不違背本發明的精神及范疇下,對上述實施例進行修飾或改變。因此,舉凡所屬【技術領域】中具有通常知識者在未脫離本發明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發明的權利要求所涵蓋。
【權利要求】
1.一種應用在機頂盒芯片中的數字簽名實現方法,其特征在于,所述數字簽名實現方法包括: 使用所述芯片的密鑰對RSA公鑰進行加密,獲得RSA公鑰密文; 將所述RSA公鑰密文存儲至Flash中的預設空間; 對RSA公鑰運行哈希算法,獲取所述RSA公鑰的哈希值; 將所述RSA公鑰的哈希值植入所述芯片的OTP寄存器中以供所述芯片啟動時進行簽名驗證。
2.根據權利要求1所述的應用在機頂盒芯片中的數字簽名實現方法,其特征在于:還包括對加載程序進行簽名的步驟: 令預存在Flash中加載程序運行相應的哈希算法,獲取對應的哈希值; 使用RSA私鑰對獲取的哈希值進行簽名,以獲取加載程序簽名; 將所述加載程序簽名存儲至所述Flash中的預設空間。
3.根據權利要求1或2所述的應用在機頂盒芯片中的數字簽名實現方法,其特征在于:所述芯片啟動時進行簽名驗證的步驟包括: 從所述Flash中加載所述RSA公鑰密文,并使用所述芯片的密鑰對其解密,獲得RSA公鑰明文; 對所述RSA公鑰明文運行相應的哈希算法以獲取哈希值; 驗證獲取的哈希值與所述芯片的OTP寄存器中植入的所述RSA公鑰的哈希值是否一致,若一致,則所述RSA公鑰明文有效;若不一致,則所述RSA公鑰明文無效,則驗證失敗,進入CPU掛起狀態; 使用該有效的RSA公鑰明文對所述加載程序簽名運行簽名驗證算法;若簽名驗證通過,運行加載程序;若簽名驗證未通過,進入CPU掛起狀態。
4.根據權利要求3所述的應用在機頂盒芯片中的數字簽名實現方法,其特征在于:所述芯片啟動時進行簽名驗證的步驟中還包括預先判斷啟動模式是否為安全模式的步驟,若是,則從所述Flash中加載所述RSA公鑰密文,并使用所述芯片的密鑰對其解密,獲得RSA公鑰明文;若否,則直接從所述Flash中加載并運行所述加載程序。
5.一種機頂盒芯片,其特征在于,包括: Flash存儲器,包括存儲有加載程序的程序存儲區、存儲有加載程序簽名的簽名存儲區、以及存儲有RSA公鑰密文的公鑰存儲區,其中,所述RSA公鑰密文由使用芯片密鑰對RSA公鑰進行加密時生成; OTP寄存器,包括存儲有RSA公鑰哈希值的存儲區及存儲有芯片密鑰的密鑰存儲區,其中,所述RSA公鑰哈希值由RSA公鑰運行哈希算法生成。
6.根據權利要求5所述的機頂盒芯片,其特征在于:所述加載程序簽名由加載程序運行相應的哈希算法獲取對應的哈希值,并使用RSA私鑰對其進行簽名生成。
【文檔編號】H04L9/30GK103974122SQ201310042010
【公開日】2014年8月6日 申請日期:2013年2月4日 優先權日:2013年2月4日
【發明者】許樹娜, 莫國兵 申請人:瀾起科技(上海)有限公司