專利名稱:安全片上系統的制作方法
技術領域:
本發明涉及使處理環境安全的領域。
背景技術:
已經公開了處理器的安全環境,特別是關于多處理器結構。例如,
在文件WO04015553中描述過的對安全存儲器訪問進行限制的解決 方案,根據這個解決方案,處理器具有兩種操作模式在第一種模式 中被稱為安全模式,準許對安全存儲器的訪問;在不安全的模式中, 禁止對安全存儲器的訪問。不安全才莫式試圖為研發的目的即測試或調 試電路而設計的。在不安全模式執行期間,對安全存儲器的訪問被物 理地鎖住了,即生成"禁止,,信號。這種"禁止"信號禁止任何企圖對安 全存儲器的訪問。
在文件PCT / EP2005 / 56145所7〉開的另 一個解決方案中釆用 單一芯片解擾處理器處理加擾的音頻/視頻數據,以便決不許可對明 文數據的訪問。當進行解擾操作時,解擾單元包括在解擾數據臨時存 入外部存儲器之前,對解擾數據進行加密的加密引擎。當該處理器結 束組織任務時,在輸出模塊中對數據進行解密并送到顯示器件上。
發明內容
本發明的目的是提供用于處理數據的安全片上系統,這個系統包 括至少一個中央處理單元、輸入和輸出信道、加密/解密引擎和存儲器, 當所述片上系統接收和發送數據時,它具有實時的工作條件,其特征
程的自治管理模塊(SIM),'和根據^時工作條件與正常工作條件定 義的比較,使能或禁止輸入和/或輸出信道的裝置。本發明的主要特性是一個獨立的模塊,獨立于中央處理單元并具 有它自己的處理器核心和執行管理任務。
通過定義正常時序圖和片上系統內的數據流的一組正常的工作 條件規定,來定義這些任務。當片上系統接收處理過程和發送數據時, 將正常的工作條件與實時工作條件進行比較。
借助于附圖將更好的理解本發明,其中 圖l描述了片上系統和它的加密和解密模式的各種元件; 圖2A和圖2B描述了使用兩個單元的加密階段; 圖3描述了片上系統和它在簽名模式的各種元件; 圖4示出的是安全和不安全模塊位于同一芯片內的片上系統放 大的例子。
具體實施例方式
根據本發明在圖l所例舉的第一個方面,片上系統SOC包括能 夠對片上系統SOC進行確定地控制的自治(autonomous )管理模塊 SM。這個模塊SM包括片上系統SOC的正常工作條件的定義和當正 常的條件不再滿足時的禁止裝置。這可以通過不同的裝置實現。第一 種裝置包含對輸出數據的量進行測量,舉例來說,計數輸出數據組的 個數。這個操作將在此后對數據進行計數時描述。第二種裝置包含在 允許輸入和輸出操作期間定義時間窗口 。如果數據塊的長度不超過對 塊所定義的最大時間,因此允許這塊數據。第三種裝置包含檢測中央 處理單元CPU的狀態和它們各自的持續時間,因此就象此后所描述 的那樣工作。中央處理單元通常具有不同的可能狀態,例如捕獲狀態、 處理狀態、等待狀態和輸出結果這樣的狀態。當消息到達片上系統時, 該系統將進行從等待狀態到捕獲狀態的切換。在捕獲狀態期間,能夠 通過管理模塊SM使能輸入信道。同樣在同一捕獲狀態期間,管理模 塊SM對到達的數據進行計數并將這個數與預定的最大值進行比較。
任何非正常的情況導致警告狀態的發生,警告狀態中的中央處理單元
CPU能夠決定如何對此作出反應。特別是在告警狀態下,管理模塊 SM具有堵塞輸入和輸出信道和/或加密/解密引擎CR-EN的能力。 當接收到外部消息時,管理模塊SM使中央處理單元CPU進入 處理狀態。在這個狀態期間,禁止輸入和輸出信道。管理模塊SM包 括與中央單元CPU的最小處理時間所對應的時間模式,和在這段時 間內禁止信道。中央單元CPU能夠通知管理模塊沒有結果輸出。這 樣做的結果是管理模塊SM只能夠使輸入信道等待消息,然后使輸出 信道保持禁止。
在中央處理單元CPU希望將數據發送到外部世界的情形中,它 因此通知管理模塊SM,管理模塊又使能輸出信道。通過對發送數據 進行計數并在授權發送期間使用時間窗的方法,該管理模塊SM仍然 繼續監視輸出信道的活動。
在本發明的實施例中,管理模塊SM因此能夠根據從中央單元 CPU接收的信息以及預編程的工作模式進行工作。
這個模塊也能夠通過對加密或解密的數據進行計數來監視加密 /解密引擎。以相同的方式,加密/解密引擎CR-EN的工作模式根 據所處理的數據量和時間進行管理。如果檢測到非正常的條件,管理 模塊能夠禁止加密/解密引擎CR - EN。
應當注意到的是管理模塊SM能夠在片上系統實施,而不用在輸 入/輸出信道中進行加密/解密。數據不用增加附加的加密(或解密) 層而被處理,管理模塊SM監視輸入/輸出信道。
根據本發明的第二個方面,它提出了用于處理數據的安全片上系 統,這個片上系統包括至少一個中央處理單元、輸入和輸出信道、加 密/解密引擎和存儲器,其特征在于所述輸入信道包括對所有輸入數 據進行加密的輸入加密模塊,所述輸出信道包括對所有外出數據進行 解密的輸出解密模塊,所述中央處理單元從輸入加密模塊中接收加密 的數據并將它們存儲在存儲器中,和當對所存儲的數據進行處理時, 所述中央處理單元從存儲器中讀取所存儲的數據,請求在加密/解密引擎中對同 一數據進行解密,對該數據進行處理并通過加密/解密引 擎請求對該結果的加密,然后將加密后的結果存儲,為了解密將結果 輸出到輸出解密模塊并將解密后的結果通過輸出信道離開。
在這個實施例中,甚至在被認為是安全的環境里也會出現對數據 的加密。解密只在數據真正被中央單元使用過的稍后階段才會出現, 決不會在靜止狀態訪問明文數據。當處理時,如果數據用于內部目的 或重新加密,如果它們試圖從片上系統輸出,能夠將該數據明文存儲。
一旦該數據重新加密,在被發送到輸出信道之前,數據暫時被存 儲在緩沖器中。
加密和解密數據的密鑰在優選實施例中對于片上系統是獨特的。 這個密鑰能夠在制造步驟中被預編程或在初始化階段隨機的生成且 決不被任何人所知。僅在內部使用這個密鑰。所使用的算法以及所述
算法的參數都能夠保持隱密。例如,算法IdeaNxt用作為加密引擎而 置換箱中的值是在片上系統中隨機生成的。
根據具體的實施例,加密/解密算法是非對稱的,因此分別對數 據的加密和解密使用密鑰對(公用/專用)。
根據另一個實施例,輸入加密模塊能夠由簽名模塊所替代,數據 進入片上系統時,數據被簽字,并且該簽名與該數據一起存儲。當中 央單元希望使用這個數據時,加密/解密引擎現在是簽名驗證引擎, 檢測簽名和如果該簽名是正確的,則授權該數據的使用。
就數據來說這意味著一個字節或一組字節例如形成片上系統中 的消息或權利消息。
安全的片上系統SOC基于中央處理單元CPU。這個單元的目的 是執行代碼和履行所請求的任務。片上系統SOC包括兩個連接外部 世界的信道,即輸入和輸出信道。輸入信道RCV包括輸入加密模塊 RCV-E,該模塊對來自外部世界的所有數據進行加密。以同樣的方 式,輸出信道SND包括輸出解密模塊SND-D,該模塊在將數據發 送到外部世界之前對從中央處理單元CPU接收的數據進行解密。
中央單元CPU可以訪問加密/解密引擎CR-EN。這個引擎與輸
入加密模塊和輸出解密模塊具有相同的功能。被裝載到輸入加密模塊
中的密鑰K與在加密/解密引擎的加密部分中的密鑰是一樣的。相同 情況用于輸出解密模塊和加密/解密引擎的解密部分的解密操作。當 中央單元CPU需要某些數據時,或者直接來自輸入加密模塊或者從 存儲器MEM中取出,這些數據首先在中央單元CPU使用它們之前 通過解密引擎對它們進行解密。
以相同的方式,當中央單元CPU已經完成任務并產生結果時, 下面的步驟存儲該結果(或將結果輸出到輸出信道)。這個結果在存 儲之前先前通過加密引擎CR - EN加密。這個加密的結果因此能夠存 儲在存儲器中或被送往輸出信道。
中央處理單元CPU能夠決定該結果是否被重新加密或被許可明 文離開。與讓處理器決定相反,目標定位可以選擇如圖2A所示的不 同行為。如果該結果被存儲在易失性存儲器V-MEM中,可以進行雙 重加密。相反如果存儲在非易失性存儲器NV-MEM(EEPROM)中, 僅使用利用永久密鑰的一個加密單元。以相同的方式,當從易失性存 儲器中讀取數據時,進行雙重解密,雖然從非易失性存儲器中讀取數 據時,只使用一個解密單元。
根據圖3所示的另一個實施例,加密過程由簽名過程所代替。數 據不進行加密,而是生成簽名并同該數據合并。對于所有來自外部世 界的數據,在輸入簽名模塊RCV-S中計算簽名。然后數據與它們的 簽名存儲在一起。當中央單元需要訪問這些數據時,簽名驗證引擎S -VER首先在該中央單元有權使用這些數據之前驗證簽名。在數據由 輸出信道輸出之前,在輸出簽名模塊SDN-V中驗證該簽名。然后從 數據中去掉簽名,并將其發送至輸出信道SND。
根據另 一個實施例,加密/解密引擎直接位于中央單元CPU中。 當從存儲器中讀取數據時,例如在CPU的累加器中裝入一個變量(例 如摩托羅拉(Motorola) 68HC11的LDAA# 1200h),在那個位置 讀取的數據在被轉移到累加器之前自動地通向解密引擎。以相同的方 式,將累加器的內容存儲到存儲器(例如STAA# 1200h)的指令并不直接執行,而是累加器中的數據在存儲在位置1200h之前先通過加 密引擎。
在特殊的實施例中,加密/解密引擎共享輸入和輸出信道。輸入 加密模塊因此是一個虛擬的模塊且在輸入信道中的加密操作通過數 據多路復用器由加密引擎完成。數據進入片上系統時,特別是通過輸 入信道進入的數據在進一步處理之前,例如將數據存儲在輸入緩沖器 中之前通過加密引擎。輸入加密模塊因此是利用加密模式的加密/解 密引擎資源的虛擬模塊。同樣應用于使用在解密模式的加密/解密引 擎的輸出解密模塊。
輸入加密模塊RCV-E能夠包括多于一個的加密單元。根據圖 2A所示的特殊實施例,兩個加密單元(或更多個)串行連接,每個 具有不同的密鑰。第一個加密單元裝有密鑰Kl,它屬于芯片系統, 即是唯一的且對于指定的器件是不變的。這個密鑰或者是在安裝步驟 期間裝入的或由內部生成的。第二個單元ENC2裝有密鑰K2,它是 在器件的激勵下動態生成的。當片上系統被重新初始化時,這個密鑰 丟失了且生成新的密鑰。必須永久存儲的數據一旦被處理器CPU處 理,都只使用第一個單元的永久密鑰重新加密。
輸出解密模塊以及加密/解密引擎以相同的方式也包括兩個或 更多的單元。
此外,如果處理器CPU識別出接收的數據,它們存儲在輸入緩 沖器中,不必處理但只是不得不存儲在永久存儲器NV-MEM中, 該處理器能夠從加密/解密引擎中請求僅通過一個解密單元解密,即 具有易失性密鑰的單元。所存儲的數據仍然保持用永久密鑰加密以供 稍后使用。
這個片上系統SOC用作安全的訪問控制模塊,負責接收包含授 權或密鑰的管理消息。這個模塊也能夠包括高速解擾單元以接收加密 的視頻數據流。
圖4示的是具有兩個核的放大的片上系統SOC, —個被稱為 不安全核USC,另一個被稱為安全核SC。上述片上系統現在只是放大的soc的一部分并與安全核sc相對應。不安全的部分usc包括
處理器裝置CPU1和內部存儲器MEM1。然而,考慮到被處理器所處 理的大量程序和數據,外部存儲器MEM是必需的。通過外部存儲器 或通過與外部世界的接口,不安全的核能夠接收特洛伊(Trojan)程 序獲取通過外部接口 12接收和發送的數據。因此,由不安全的核USC 通過不安全的接口 INT接收或請求的數據被認為與外部數據具有相 同的安全級別。安全核SC仍然監視例如假信號檢測、電源分析、光 照、溫度的變化的不安全碼的活動。這些功能位于檢測器模塊DTC。 這個模塊通知安全核任何非正常的條件,因此導致管理模塊狀態的變 化。應當注意的是檢測器模塊能夠直接位于安全模塊SC之內。
根據本發明的變種,檢測器模塊DTC執行片上系統SOC狀態 的監視操作。它接收例如正電壓Vdd (—般為5V)并觀察例如象電 壓的突然變化、非正常的低或高電壓這樣的風險行為。根據所定義的 準則,它能夠例如通過生成錯誤消息通知安全模塊SC,因此使前述 的模塊一些功能失效。通信接口 12被檢測器模塊監視。通過通信,我 們理解信息進入或外出安全模塊的所有方式。檢測器模塊也能夠監視 不安全模塊USC的操作和它們通信方式。這種監視包括電源供給、 時鐘和復位。就檢測器DTC所檢測到的非正常條件的反應來說,安 全模塊SC能夠減少對內部存儲器MEM2敏感數據的訪問。安全模塊 SC也能夠對不安全模塊USC復位初始化,因此重新開始一個程序和 數據環境的完整檢測。
本發明的系統是可分級的,即每個片上系統包括它自己上述的管 理模塊。當幾個片上系統被連接到一起產生如圖4所示的大的芯片時, 加入附加的超級管理模塊SSM使管理模塊SM同步。專用信道使單 一實體的管理模塊SM和芯片的超級管理模塊SSM之間可以進行通 信。每個管理模塊包括描述在那個狀態期間允許的操作的狀態機。該 超級管理模塊將各種實體的狀態進行比較并通知實體管理模塊和其 它實體的狀態。超級管理模塊所控制的總的狀態機控制實體的狀態適 應工作環境。例如,如果一個實體處于從其它實體接收數據的狀態,
超級管理模塊檢測其它實體處于發送數據狀態。
在另一個實施例中,超級管理模塊直接位于最安全的實體中,在
我們的例子中位于安全片上系統sc中。
通過專用信道的每個實體之間的通信在芯片優選使用初始化期 間載入的密鑰進行加密。
這個密鑰能夠用于兩個管理模塊之間或與超級管理模塊交換的 數據進行加密和解密。在啟動芯片時,這個密鑰可用于生成例如利用
Diffie - Hellmann算法的臨時密鑰。
權利要求
1.一種用于處理數據的安全片上系統,所述片上系統包括至少一個中央處理單元、輸入和輸出信道、加密/解密引擎和存儲器,當接收和發送數據時,所述片上系統具有實時工作條件,其特征在于包括用至少輸入和輸出數據流的正常工作條件的定義進行預編程的自治管理模塊(SM)、和根據實時工作條件與正常工作條件定義的比較使能或禁止輸入和/或輸出信道的裝置。
2. 如權利要求1所述的安全片上系統,其特征在于正常的工作條 件定義包括在其間輸入和輸出信道允許接收和發送數據的時間窗口 。
3. 如權利要求1或2所述的安全片上系統,其特征在于正常的 工作條件定義包括在其間在接收數據塊之后管理模塊禁止輸入和/或 輸出信道的持續期間。
4. 如權利要求1至3所述的安全片上系統,其特征在于管理模 塊(SM)包括接收中央處理單元(CPU)的狀態條件的裝置、和根 據中央處理單元(CPU)的狀態使能或禁止輸出信道的裝置。
5. 如權利要求1至4所述的安全片上系統,其特征在于所述輸 入信道包括對所有進入數據進行加密的輸入加密模塊、所述輸出信道 包括對所有流出數據進行解密的輸出解密模塊,所述中央處理單元從 輸入加密模塊接收加密的數據并將它們存儲在存儲器中,當處理所存 儲的數據時,所述中央處理單元從存儲器中讀取存儲的數據,在加密/解密引擎中請求對該數據進行解密,處理該數據并通過加密/解密 引擎請求對該結果的加密并存儲加密后的結果,為了解密的目的將該 結果輸出到輸出解密模塊并通過輸出信道讓解密后的結果離開。
6. 如權利要求5所述的安全片上系統,其特征在于輸入加密模 塊是將待加密的數據傳遞到在加密模式的加密/解密引擎的虛擬模 塊。
7. 如權利要求5所述的安全片上系統,其特征在于輸入加密模 塊是將待解密的數據傳遞到在解密模式的加密/解密引擎進行解密的虛擬模塊。
8. 如權利要求5至7所述的安全片上系統,其特征在于加密和 解密數據的算法是對稱的算法。
9. 如權利要求8所述的安全片上系統,其特征在于加密/解密算 法使用 一組初始化常數,并且所有或部分初始化常數是在片上系統內 隨機生成的。
10. 如權利要求5至7所述的安全片上系統,其特征在于加密和 解密數據的算法是非對稱的算法。
11. 如權利要求5或10所述的安全片上系統,其特征在于它包 括隨機地生成加密/解密引擎所使用的密鑰或密鑰對的裝置。
12. 如權利要求1至11中的任何一個權利要求的安全片上系統, 其特征在于對一個單個數據或每次一組數據可以執行加密/解密操作。
13. —種電子芯片,包括如權利要求1至12中所定義的安全片 上系統,且包括與外部世界和中央處理單元連接的第 一個數據鏈接, 其特征在于它進一步包括與片上系統的輸入和輸出連接的第二個數 據鏈接,并進一步包括用至少第一個數據鏈接和第二個數據鏈接的正 常工作條件定義預編程的管理模塊、和如果當前條件超過正常的工作 條件定義則禁止第一個和第二個數據鏈接的裝置。
14. 如權利要求13所述的電子芯片,其特征在于包括超級管理模塊SSM,它與管理模塊進行通信,且檢測第一個管理模塊的工作條 件與第二個管理模塊的工作條件是否兼容。
15. 如權利要求13或14所述的電子芯片,其特征在于超級管理 模塊是片上系統的管理模塊的一部分,因此接收該電子芯片的管理模 塊的工作條件。
全文摘要
本發明的主要目的是提供用于處理數據的安全的片上系統,這個片上系統包括至少一個中央處理單元、輸入和輸出信道、加密/解密引擎和存儲器,其特征在于所述片上系統包括用至少輸入輸出數據流的正常工作條件的定義進行預編程的自治管理模塊、和如果當前條件超過正常條件的規定時禁止輸入和/或輸出信道的裝置。
文檔編號G06F21/55GK101346726SQ200680048948
公開日2009年1月14日 申請日期2006年12月21日 優先權日2005年12月23日
發明者安德雷·庫德爾斯基 申請人:納格拉卡德股份有限公司