TW202240412A - 安全之全晶片通信 - Google Patents

安全之全晶片通信 Download PDF

Info

Publication number
TW202240412A
TW202240412A TW111113366A TW111113366A TW202240412A TW 202240412 A TW202240412 A TW 202240412A TW 111113366 A TW111113366 A TW 111113366A TW 111113366 A TW111113366 A TW 111113366A TW 202240412 A TW202240412 A TW 202240412A
Authority
TW
Taiwan
Prior art keywords
integrity
data
bits
host
destination
Prior art date
Application number
TW111113366A
Other languages
English (en)
Other versions
TWI807766B (zh
Inventor
提摩西 傑 陳
麥克 史蒂芬諾 弗利茲 史查扶那
克里斯多弗 勾利
金恩燦
唐諾 沙那罕 桑德斯
米格爾 安琪 歐索利歐 羅札諾
Original Assignee
美商谷歌有限責任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商谷歌有限責任公司 filed Critical 美商谷歌有限責任公司
Publication of TW202240412A publication Critical patent/TW202240412A/zh
Application granted granted Critical
Publication of TWI807766B publication Critical patent/TWI807766B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Retry When Errors Occur (AREA)
  • Electroluminescent Light Sources (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Adhesives Or Adhesive Processes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文件揭示安全之全晶片通信之態樣。在一些態樣中,一系統之一主機產生經由該系統之一互連件發出至一目的地之一命令有效負載的完整性後設資料。該完整性後設資料可基於形成該命令有效負載之位元,諸如明文資料位元之各自值而產生。該目的地在消耗該命令有效負載之前基於該完整性後設資料驗證該命令有效負載之完整性。在一些情況下,該目的地將該完整性後設資料與該命令有效負載之資料一起儲存,當被請求時,該完整性後設資料可連同該資料一起被返回至該主機。藉由如此做,該系統之該主機及目的地可使用該完整性後設資料來實施安全之全晶片通信,此可防止在中轉期間或在該系統內之暫時儲存位置處對該等命令有效負載或回應資料之故障注入(fault injection)攻擊。

Description

安全之全晶片通信
由於社會之日益增加的電腦化,及對用以儲存敏感使用者資訊且為其使用者執行多種操作(包含操作車輛、執行使用者鑑認及完成數位貨幣交易)之個人運算器件之增長的依賴性,世界愈發易受對運算器件之敏感資訊之多種代價高昂的攻擊之影響。
近期基於故障之密碼分析方法已識別涉及故障注入攻擊之潛在安全威脅方法。與一軟體注入相反,一故障注入攻擊涉及一攻擊者將一故障實體地注入至一運算系統中,藉此故意更改一電子組件之行為。因此,故障注入攻擊可規避許多低層級系統安全特徵,更改一運算系統行為以完成惡意意圖,及/或提取敏感資訊。一故障注入攻擊可涉及電壓干擾(glitching)、時脈干擾、雷射注入、電磁注入等等。在一些例項中,此等攻擊可在各種位置中引入故障注入以破壞或削弱電子系統安全性。因此,故障注入攻擊可更改在運算系統內傳送之一命令或資料且可能潛在地更改系統之執行流程以引起下游問題,諸如金鑰洩漏、權限提升或程式碼之無意執行。
本文件描述用於安全之全晶片通信之裝置及技術。在一些態樣中,一系統之一主機產生經由該系統之一互連件(例如,組構、匯流排、通道等)發出至一目的地之一命令有效負載的完整性後設資料。該完整性後設資料可基於形成該命令有效負載之位元(諸如明文資料位元)之各自值產生。該目的地在消耗(consume)該命令有效負載之前基於該完整性後設資料驗證該命令有效負載之完整性。在一些情況下,該目的地將該完整性後設資料與該命令有效負載之資料一起儲存,當被請求時,該完整性後設資料可連同該資料一起被返回至該主機。另外,當該目的地係一記憶體時,可在儲存該資料之前擾亂(scramble)該資料以在儲存於該記憶體中時保護該資料。當形成回應有效負載時,該目的地亦可產生該回應有效負載之資料的完整性資料。在接收到該回應有效負載時,該主機可基於經返回完整性位元或由該目的地產生之完整性位元來驗證該回應有效負載之完整性。藉由如此做,該系統之該主機及各種目的地(例如,記憶體或周邊設備)可使用該完整性後設資料來實施安全之全晶片通信,此可防止在中轉期間或在該系統內之暫時儲存位置處對該等命令有效負載或回應資料之故障注入攻擊。
提供本[發明內容]以引入下文在[實施方式]中進一步描述且在圖式中繪示之用於實施安全之全晶片通信的簡化概念。本[發明內容]並不旨在識別所主張標的物之基本特徵,亦不旨在用於判定所主張標的物之範疇。
運算系統通常包含具有安全電路系統及軟體之一積體電路,以提供針對缺陷、攻擊及其他潛在危害事件之一保護措施。在現今之運算環境中,惡意行為者(bad actor)可能使用大量攻擊向量在無數層級處攻擊運算器件。例如,故障注入攻擊降低許多此等安全範例所提供之保護。故障注入攻擊可能繞過系統安全特徵,更改一系統行為以完成惡意意圖及/或揭露機密資訊。使用一故障注入攻擊,一攻擊者可能使用干擾(例如,一系統中之突然的、暫時的、經注入故障)間接地或直接地更改一電子組件(例如,一中央處理單元)之經程式化操作。此一攻擊有時可能「破壞(brick)」一運算器件,但在其他例項中,精確的且有針對性的攻擊可能引入危害安全威脅。例如,故障注入攻擊可容許對手破壞一程式之控制流,此可導致呼叫一不正確功能,諸如在「返回至libc」類型之攻擊中。在一些情況下,此等攻擊可引起運算器件曝露敏感資料或執行未經確認之程式碼。因此,故障注入攻擊可更改在運算系統內傳送之一命令或資料且可能潛在地更改系統之執行流程以引起下游問題,諸如金鑰洩漏、權限提升或程式碼之無意執行。
然而,旨在解決此等攻擊之先前技術在防止攻擊者妥協系統安全性方面通常較弱且無效。在一些情況下,資料同位檢查用作在一系統之組件之間傳達之資料的一僅匯流排安全方案。此類型之基於同位檢查之方案遭受許多問題,諸如容許一攻擊者有50%的一機會僅匯流排地而非端對端地完成一攻擊,此係因為一攻擊者可簡單地將焦點轉移至系統端點,且對經擾亂資料之攻擊可能無法提供正確結果,但一消費者可能無法知道資料係錯誤的,其可能僅看上去不同。因此,旨在防止上述攻擊之先前技術通常未能防止系統入侵或簡單地將攻擊轉移至其中資料受較少保護之脆弱系統端點。
與先前安全技術相比,本發明描述安全之全晶片通信之態樣。在態樣中,一系統之一主機產生經由系統之一組構發出至一目的地之一命令有效負載的完整性後設資料。完整性後設資料可基於形成命令有效負載之位元(諸如明文資料位元)之各自值產生。目的地在消耗命令有效負載之前基於完整性後設資料驗證命令有效負載之完整性。在一些情況下,目的地將完整性後設資料與命令有效負載之資料一起儲存,當被請求時,該完整性後設資料可連同資料一起被返回至主機。另外,當目的地係一記憶體時,可在儲存資料之前擾亂資料以在儲存於記憶體中時保護資料。當形成回應有效負載時,目的地亦可產生回應有效負載之資料的完整性資料。在接收到回應有效負載時,主機可基於經返回完整性位元或由目的地產生之完整性位元來驗證回應有效負載之完整性。藉由如此做,系統之主機及各種目的地(例如,記憶體或周邊設備)可使用完整性後設資料來實施安全之全晶片通信,此可防止在中轉期間或在系統內之暫時儲存位置處對命令有效負載或回應資料之故障注入攻擊。
所描述之傳輸完整性方案可實現對在一系統中之各種來源及目的地之間傳達之資料的完整性檢查或驗證,此可包含一主機對周邊設備及記憶體之請求,及從周邊設備及記憶體對主機之回應。一般而言,傳輸完整性或安全之全晶片通信之所描述態樣旨在保護在於請求及/或回應方向上具有端對端安全性之整個一系統或晶片內傳達的命令及/或資料。在態樣中,如在整個本發明中所描述,跨組件之一整個系統採用一致的完整性方案。例如,全晶片通信之一安全架構可使用錯誤校正碼(ECC)作為一共同通信方案(例如,由經由一組構或匯流排發送命令及/或資料之一實體採用之傳輸方案)。此通信方案或協定可指代在於一系統或晶片之實體當中或之間輸送資料時使用的一格式。關於至周邊設備或記憶體之區域通信,仍可使用不同格式而不脫離安全之全晶片安全性之所描述態樣。在一些實施方案中,採用一完整性方案以將N位元之資料轉變為M位元之資料,同時檢查(例如,使用ECC,循環冗餘檢查(CRC)、雷德-所羅門碼(Reed-Solomon code)或類似者)以確認該M個位元具有一預期值。此相對於基於同位檢查之先前技術(其等許高達50%之錯誤逃脫偵測及/或校正)可為有利的。在整個本發明中描述實現在一系統或晶片內傳達資料之經改良完整性或安全性的安全之全晶片通信之態樣。
在態樣中,傳輸完整性方案可經實施以在系統中端對端地(從一目的地直至主機之一功能邊界中,且亦在相反方向上)保護資料。一般而言,資料及命令伴隨有完整性位元(例如,ECC),且此等完整性位元不僅涵蓋跨一組構或匯流排之傳輸程序,而且可擴展至目的地儲存及主機功能中。因此,由主機產生之完整性位元(例如,完整性後設資料)可一直擴展至記憶體(諸如ROM或SRAM)中,且相同完整性位元稍後被返回至主機以用於檢查或驗證資料。當一目的地器件無法完全接受所有完整性位元時,目的地可實施一穩健的變換程序以確保未引入漏洞。
為保護運算系統免受上文所描述之危害事件的影響,本文件描述用於安全之全晶片通信之裝置及技術,其等使用完整性後設資料及/或記憶體擾亂用於一運算系統內之安全交易及資料儲存。在一些實施方案中,系統之所有執行流程關鍵記憶體受到密碼編譯加密及解密(例如,擾亂)以及完整性位元的保護。此可確保此等記憶體不會在任何完整性邏輯之下游受到攻擊,且至記憶體中之任何讀取或寫入連結至一攻擊者無法更改之一特定位址。以下論述描述一操作環境、例示性系統及組件、安全之全晶片通信之例示性實施方案、例示性方法,及其中可體現操作環境之組件之一系統單晶片(SoC)。在本發明之內容背景中,僅藉由實例引用操作環境。 例示性環境
圖1繪示包含其中可實施安全之全晶片通信及相關聯之通信完整性方案之態樣之一裝置102的一例示性環境100。裝置102可實施為任何合適器件,其等之一些被繪示為一智慧型電話102-1、一平板電腦102-2、一膝上型電腦102-3、一遊戲控制台102-4、一桌上型電腦102-5、一伺服器電腦102-6、一可穿戴運算器件102-7 (例如,智慧型手錶)及一寬頻路由器102-8 (例如,行動熱點)。儘管未展示,但裝置102亦可實施為一行動站(例如,固定或行動STA)、一行動通信器件、一用戶端器件、一使用者設備、一行動電話、一娛樂器件、一行動遊戲控制台、一個人媒體器件、一媒體播放器件、一健康監測器件、一無人機、一相機、能夠無線網際網路存取及瀏覽之一網際網路家用電器、一IoT器件及/或其他類型之電子器件之任何者。裝置102可提供其他功能或包含為清楚或視覺簡潔起見而從圖1省略之組件或介面。
裝置102包含利用一或多個處理器106及可包含記憶媒體或儲存媒體之電腦可讀媒體(CRM 108)的一積體電路104。處理器106可實施為(例如,一多核心中央處理單元(CPU)或應用程式處理器(AP)之)一通用處理器、一特定應用積體電路(ASIC)、圖形處理單元(GPU)或其中整合有裝置102之其他組件之一系統單晶片(SoC)。在安全之全晶片通信之態樣中,處理器106之一或多者亦可包含如在整個本發明中描述之完整性功能。
CRM 108可包含任何合適類型之記憶媒體或儲存媒體,諸如唯讀記憶體(ROM)、可程式化ROM (PROM)、隨機存取記憶體(RAM)、動態RAM (DRAM)、靜態RAM (SRAM)或快閃記憶體。在本論述之內容背景中,裝置102之電腦可讀媒體108實施為不包含暫時性信號或載波之至少一個基於硬體之或實體儲存器件。裝置102之應用程式、韌體及/或一作業系統(未展示)可作為處理器可執行指令體現在電腦可讀媒體108上,該等處理器可執行指令可由處理器106執行以提供本文中所描述之各種功能性。電腦可讀媒體108亦可儲存器件資料112,諸如可透過裝置102之應用程式、韌體或作業系統存取之使用者資料或使用者媒體。
在此實例中,積體電路104含有安全電路系統114。裝置102、積體電路104或安全電路系統114可實施一安全密碼編譯處理器。安全電路系統114可使用一或多個電路組件116 (例如,電路組件116-1至電路組件116-n)來實施。電路組件116可經組織以執行任何數目個操作以實現裝置102之功能性。電路組件之實例包含如圖2中所描述之一處理器及多個功能組件及/或IP區塊。安全電路系統114可實現為例如一受保護的指定位址空間(enclave)、一可信賴晶片平台、一基於硬體之信任根(RoT)晶片(例如,矽RoT)等。無關於安全電路系統114如何或在何處併入至一電子器件中,安全電路系統114皆可抵抗或阻止許多不同類型之攻擊。
在態樣中,安全電路系統114包含提供或實施安全電路系統114、積體電路104及/或裝置102之各自功能之電路組件116-1至116-n。為實施安全之全晶片通信之態樣,一電路系統組件116包含可實現安全電路系統114之組件之間的通信完整性及/或用以保護裝置102之資料之各種加密或擾亂操作的一或多個完整性功能118。一般而言,安全電路系統114及電路組件116之完整性功能118可運用用於在由組件消耗之前驗證請求訊息(例如,命令有效負載),在由主機或其他匯流排主控器消耗之前驗證回應訊息(例如,回應有效負載),及/或對記憶體(例如,指令快取區或SRAM)進行擾亂以提供可防止實體記憶體攻擊之強位址及資料連結的機制來實施一資料通信及/或儲存方案。因此,安全之全晶片(或全系統)通信之態樣可確保完整性有效負載透過互連件120 (例如,組構)及裝置102之暫時儲存位置之遍歷持續存在。在一些情況下,一電路組件116之完整性功能118包含用以在消耗之前確認自一主機接收之命令有效負載之完整性的一完整性檢查功能,及用以產生完整性位元以包含於發送至主機之回應有效負載中或附加至該等回應有效負載(此使主機能夠在消耗之前確認回應有效負載之完整性)的一完整性產生功能。此等僅為對實現安全之全晶片通信有用之實體之幾個實例,其等之實施方案及用途變化且在整個本發明中進行描述。
如所展示,安全電路系統114耦合至一互連件120,互連件120可將安全電路系統之組件、周邊設備及/或目的地與一主機或主機介面耦合。互連件120可使用例如一匯流排、一交換組構、一鏈路、通信通道或使各種電路組件能夠通信之一匯流排網路來實現。在一些態樣中,互連件包含根據一TileLink通信標準實施之一組構,該組構可包含具有一A通道及D通道組態之一TileLink未快取輕量級(TL-UL)組構。電路元件之各者可直接或間接耦合至互連件120。互連件120可實現與裝置102之資料埠或介面之通信以使電路組件能夠與其他器件或資料網路通信。
裝置102亦可包含一顯示器122、收發器124、輸入/輸出埠(I/O埠126)及/或感測器128。顯示器122可與處理器106之一者(例如,圖形處理單元(GPU))可操作地耦合,且經組態以依圖形呈現裝置102之一作業系統或應用程式之各自介面。收發器124可經組態以根據任何合適通信協定實現經由有線或無線網路之資料(例如,器件資料112)之有線或無線通信。裝置102之I/O埠126可包含通用串列匯流排(USB)埠、同軸纜線埠及對於將電子器件耦合至各種組件、周邊設備或配件(諸如鍵盤、麥克風或相機)有用之其他串列或並列連接器(包含內部連接器)。
裝置102亦包含使裝置102能夠感測裝置102在其中操作之一環境之各種性質、變異數、刺激或特性的感測器128。例如,感測器128可包含各種運動感測器、環境光感測器、聲音感測器、電容式感測器、紅外線感測器、溫度感測器、雷達感測器或磁性感測器。替代地或額外地,感測器128可諸如透過觸控感測、手勢感測或近接感測來實現與裝置102之一使用者之互動或接收來自該使用者之輸入。 例示性電路組件
圖2以200繪示包含可經實施以支援安全之全晶片通信之態樣之多個電路組件的例示性安全電路系統114。如所展示,安全電路系統114包含耦合至一互連件120之一處理器106。處理器106、多個記憶體及多個其他電路組件116之各者可直接或間接耦合至互連件120。在態樣中,圖2之組件可體現為實施一信任根及/或其他安全密碼編譯特徵之一安全運算平台或一安全系統單晶片。替代地或額外地,圖2之組件可實施為一系統之由互連件120耦合之一或多個IC或IP區塊,互連件120可實施為可操作地耦合系統之組件或IP區塊之一組構。
在態樣中,安全電路系統114之處理器106可包含用於實施安全之全晶片通信之態樣之完整性功能110。在一些情況下,完整性功能110包含用以產生完整性位元以包含於發送至安全電路系統114之組件或目的地之請求訊息(例如,命令有效負載)中或附加至該請求訊息(此使組件能夠在消耗之前確認請求有效負載之完整性)的一完整性產生功能。完整性功能110亦可包含用以確認自安全電路系統114之組件或目的地之各自者接收之回應訊息(例如,回應有效負載)的完整性之一完整性檢查功能。此等僅為完整性功能110之幾個實例,其等之實施方案及用途變化且參考圖3A至圖6並在整個本發明中進行描述。
處理器106可透過互連件120與電路組件116耦合及/或與其他組件或介面直接耦合。如圖2中所展示,一系統可包含耦合至互連件120而實現與處理器106 (其可用作系統之一主機)之互動的多個電路組件116。在此實例中,電路組件116包含一暫存器檔案202及可經實施具有各自完整性功能118之各種記憶體204至208。電路組件116可包含任何合適組態之一或多個記憶體(例如,CRM 108)且包含一ROM 204、一SRAM 206及一快閃記憶體208。儘管未展示,但電路組件116可包含其他記憶體(例如,一次性可程式化或DRAM記憶體)及/或經由其他組件耦合之記憶體(諸如串列周邊介面(SPI)或USB耦合之記憶體)。
為實施安全之全晶片通信之態樣,暫存器檔案202、ROM 204、SRAM 206或快閃記憶體208可包含用於確認經由互連件120實施之資料及其他交易的完整性功能118。在一些情況下,一完整性功能118包含用以在組件消耗命令有效負載之前確認自一主機接收之命令有效負載之完整性的一完整性檢查功能。替代地或額外地,完整性功能118包含用以產生完整性位元以包含於由組件發送至主機之回應有效負載中或附加至該等回應有效負載(此使主機能夠在消耗回應有效負載之前確認回應有效負載之完整性)的一完整性產生功能。此等僅為完整性功能118之幾個例示性實施方案,其等之實施方案及用途變化且參考圖3A至圖6並在整個本發明中進行描述。
如圖2中所展示,電路組件116亦可包含一警示處置器210、一進階加密標準(AES)單元(AES單元212)、一基於雜湊之訊息鑑認碼(HMAC)引擎(HMAC引擎214)及一串列周邊介面(SPI)器件(SPI器件216)。電路組件116亦可包含一通用非同步接收器/傳輸器(UART)單元(UART單元218)、一通用輸入/輸出(GPIO)介面(GPIO介面220)、一接針多工器(接針mux 222)及一墊控制器224。多個電路組件116可進一步包含其他組件可自其獲得高熵值以用作鑑認符記之一隨機數產生器(RNG 226),及一計時器228 (例如,監視(watchdog)計時器)。儘管記憶體及其他組件116之特定實例係在圖2中描繪或在本文中描述,但安全電路系統114之一給定實施方案可包含處理器、控制器、記憶體、模組或周邊器件(包含其等之副本(duplicate))之更多、更少及/或不同例項。
所繪示之電路組件可基於一或多個時脈信號同步操作。儘管圖2中未展示,但安全電路系統114可包含用以產生時脈信號之至少一個時脈產生器,或可包含用以彼此獨立地重設一或多個個別組件、聯合地重設多個組件或重設一整個IC晶片的重設電路系統。替代地,安全電路系統114可自在安全電路系統114外部之一來源接收至少一個時脈信號或一重設信號,該來源可在或可能不在一單獨晶片上。一或多個單獨組件116可在各自個別時脈域中操作。例如,電路組件可同步化至在一各自組件本地之一時脈。不同時脈域中之組件可相對於彼此非同步地操作或通信。
下文描述所繪示組件之例示性實施方案。處理器106可實現為透過其實施一主機或匯流排控制器之功能性之安全電路系統114的一「主」、「中央」或「核心」處理器。僅藉由實例,處理器106可用具有一多級管線之一32位元、有序精簡指令集運算(RISC)核心來實施。運用例如一RISC-V功能性,處理器可實施一M (機器)及一U (使用者)模式。啟動一重設接針(未展示) (例如,透過一低態有效重設接針之撤銷確證)引起處理器106退出重設且開始在其重設向量處執行程式碼。重設向量可在ROM 204中開始,ROM 204在跳躍至一嵌入式快閃記憶體(e快閃記憶體,未展示)之前驗證其中之程式碼。換言之,在釋放重設之前,預期程式碼已被具現化至e快閃記憶體中。在一些情況下,可按照支援各種電路組件間之互操作性之一相稱性(comportability)規範使整個安全電路系統114內之重設非同步低態有效。一重設可由警示處置器210產生作為一安全對策;由一監視計時器產生;等。亦可將重設信號發送至其他電路組件,諸如記憶體之一者或其他組件116之一者。
一除錯模組230 (DM)及一中斷控制器232 (ItC) (亦可使其等之任一者為相稱的)耦合至處理器106。除錯模組230提供對處理器106之除錯存取。藉由與IC之特定接針介接,除錯模組230中之邏輯容許處理器106進入一除錯模式且提供將程式碼注入至器件中(例如,藉由模擬一指令)或至一記憶體中的一能力。中斷控制器232可安置成靠近處理器106。中斷控制器232可自安全電路系統114內接受中斷源之一向量。中斷控制器232亦可在將中斷轉送至處理器106以供處置之前向中斷指派調平及優先級。
處理器106可提供任何所要效能水準或包含任何內部電路組件。例如,處理器106可包含至少一個算術邏輯單元(ALU) (例如,包含一「額外」ALU以計算分支目標以移除所採取條件分支上之一延時循環)、一暫存器檔案、一控制單元及輸入/輸出(I/O)單元以及多個管線級。運用多個管線級,一管線可執行暫存器回寫以減小來自載入及儲存之一延時循環且防止一管線暫停(pipeline stall),其中在請求之後的循環內對一載入或儲存之一回應可用。處理器106可實施一單循環乘法器或對一儲存之一錯誤回應產生一不精確異常,此容許處理器在儲存之後繼續執行而無需等待回應。儘管未描繪,但明確言之,處理器106或一般而言安全電路系統114可包含用以提供指令之單循環存取時間之一指令快取區。
ALU可經組態以對經接收資料執行算術及邏輯運算。參考圖3A及圖3B進一步描述之暫存器檔案(例如,暫存器檔案202)可為用作經組態用於程式或功能處理期間之快速資料存取之高速、半暫態記憶體的一處理器暫存器(例如,控制暫存器)陣列。暫存器檔案可緊密耦合至處理器106之ALU。為進一步促進對資料之存取,暫存器檔案可包含多個讀取埠或多個寫入埠以使ALU及/或執行單元能夠在一單一循環內同時擷取多個運算元。暫存器檔案可由正反器形成以加速讀取及寫入資料位元。控制單元可經組態以控制整個系統內之資料流。I/O單元可包含與器件或安全電路系統114之其他組件可操作地介接之埠。處理器106、電路組件116及完整性功能110及118之進一步態樣參考圖3A至圖6且在整個本發明中進行描述。
圖3A及圖3B分別以300及301繪示根據安全之全晶片通信之一或多個態樣之實施命令或資料交易的系統組件之一例示性組態。所展示之例示性系統組態表示可實施支援安全之全晶片通信之一系統的許多方式之一者。因而,安全之全晶片通信之態樣可透過類似或不同組態之系統(諸如包含關於圖2及/或圖3A至圖6所描述之組件之一或多者的一系統)來實施。一般而言,安全之全晶片通信之態樣可在包含一主機及經由一互連件或組構耦合至該主機之至少一個目的地或周邊設備的一系統中實施。如本文中所描述,一主機及目的地可各自彼此不同地組態及/或在與系統之其他組件通信時實施不同級別或類型之資料完整性。在圖3A至圖6之以下描述中,各種系統組件在可實施為彼此互動以交換或交易命令及/或資料之組件之安全之全晶片通信的各種態樣之內容背景中進行描述。
在安全之全晶片通信之一些態樣中,可採用一完整性方案,其中資料及命令伴隨有可藉由其確認資料或命令之完整性的完整性後設資料或完整性位元。在一些情況下,錯誤校正碼(ECC)位元由主機及目的地使用以實施此等完整性操作。因此,一具備ECC功能之完整性方案不僅涵蓋經由一組構或互連件之一傳輸程序,而且擴展至目的地儲存及主機功能中。換言之,由主機產生之完整性後設資料可一直擴展至記憶體中,且相同完整性後設資料可被返回至主機以進行後續完整性確認。在一目的地或周邊設備無法接受或儲存完整性後設資料時之情況下,目的地或周邊設備可用一穩健資料變換程序實施以確保未引入漏洞,諸如當完整性後設資料在目的地內被去除時。額外地或替代地,可透過加密/解密以及完整性資料來保護對執行流程至關重要的記憶體。藉由如此做,可針對完整性邏輯下游之攻擊加強記憶體或系統端點,且至一記憶體中之任何讀取或寫入可連結至一攻擊者無法更改之一特定位址。因此,安全之全晶片通信之態樣可對整個系統內之所有資料(無論程式碼或原始資料)提供強大保護並減少潛在攻擊者可用之一攻擊表面區域。
返回至圖3A,可透過處理器106實施其功能性之一主機302透過互連件120耦合至例示性系統之目的地(例如,組件)。在此實例中,互連件120組態為具有一請求通道304 (通道A 304)及一回應通道306 (通道D 306)之一TileLink未快取輕量級(TL-UL)組構(主機藉由其與目的地通信)。藉由實例,主機302可經由組構之通道A 304將命令有效負載發出至目的地且經由組構之通道D 306自目的地接收回應訊息。如圖3A及圖3B中所展示,主機經由組構可操作地耦合至一除錯模組230、一暫存器檔案 202、可表示一ROM 204或一SRAM 206之一記憶體模組,及一快閃記憶體208。儘管未展示,但主機302可與任何數目個額外系統組件或目的地可操作地耦合。
在態樣中,主機302可表示具有或提供匯流排主機功能性之任何模組或組件。主機302可抽象化為、經實施具有及/或包含一功能核心308、資料儲存器310及將主機302與系統之互連件120耦合之一資料介面312。一般而言,功能核心308可表示實施及/或執行主機或系統之主要功能之邏輯或處理單元。因而,功能核心308可包含一處理器之一管線、一處理器核心、一直接記憶體存取引擎之一主有限狀態機或類似者之一或多者。資料儲存器310可包含實現傳送至主機中之資料及傳送出主機之資料之暫時儲存的記憶體及暫存器。資料介面312可耦合於資料儲存器310及/或功能核心308與互連件120之間以實現或促進與耦合至互連件120之目的地(例如,記憶體及I/O)之資料交換。因而,目的地可包含主機302可經由組構與其通信之任何模組或組件,該等模組或組件可包含ROM、SRAM、快閃記憶體、系統之周邊設備、系統之介面或類似者。
在此實例中,主機302亦包含耦合於資料儲存器310及功能核心308之間的一完整性檢查功能314及耦合於功能核心308與資料介面312之間的一同位檢查產生功能316。在態樣中,完整性檢查功能314及同位檢查產生功能316 (或一完整性產生功能)可在由功能核心308消耗之前基於完整性後設資料確認資料之完整性,及/或產生發送至目的地之命令或資料的完整性後設資料(例如,ECC位元),該完整性後設資料使一目的地能夠在消耗之前確認命令或資料之完整性。關於主機302及安全之全晶片通信之態樣,功能核心308之一邊界(虛線)可經由其他安全機制來保護,此係因為完整性方案可能無法在功能核心308變換資料(諸如不保留完整性後設資料之性質之ALU操作)時持續。
在態樣中,由主機302起始之交易伴隨有主機產生之完整性後設資料(例如,ECC位元),該主機產生之完整性後設資料使下游目的地能夠將自主機接收之資料之完整性確認為正確的。在一些態樣中,主機302與各種目的地之間的組構亦可對命令訊息或回應訊息執行完整性檢查,然而,在一成功的基於組構之完整性檢查之後,完整性後設資料應持續存在,直至訊息到達適當的主機或目的地。因此,自目的地返回至主機302之資料亦可伴隨有目的地產生或供應之完整性後設資料(例如,ECC位元)。在態樣中,此完整性後設資料應與資料或回應訊息一起持續存在,直至資料到達其中無法再維持完整性資料之功能核心之一邊界或到達其中將完整性資料轉換成一不同形式之功能核心之一邊界。當資料到達其中無法再維持完整性資料之邊界時,主機302可在去除完整性後設資料並消耗資料之前檢查資料之完整性。替代地,當資料到達其中轉換完整性資料之邊界時,主機302可在計算或判定資料之新的完整性後設資料之前(例如,在由功能核心308之資料操縱或處理期間)檢查資料之完整性。
在此實例中,主機302之資料儲存器310亦包含可在透過主機302之中轉期間實現對資料之擾亂的一擾亂功能區塊318。在態樣中,擾亂功能區塊318之擾亂機制可為位址可微調的,使得擾亂區塊318將經擾亂資料連結至記憶體中之一特定位置。在一些情況下,使用一計數器或CTR擾亂模式,其中採用一區塊密碼以用擾亂金鑰對一64位元IV進行加密以產生一64位元金鑰流區塊,該64位元金鑰流區塊與資料逐位元互斥或(XOR)以將明文變換成密文,且反之亦然。IV可藉由將一臨時亂數與字位址序連來組裝。
一般而言,所使用之擾亂機制可為位址可微調的。例如,在擾亂機制之內容背景中,一可微調區塊密碼連同其通常的明文或密文輸入一起接受被稱為微調之一第二輸入。微調值連同金鑰一起選擇由密碼運算之排列。當改變微調足夠輕量級(相較於一通常相當昂貴的金鑰設定操作)時,則一些有趣的新操作模式變得可能。在特定實施方案中可需要位址微調,此係因為其將經擾亂資料連結至記憶體中之一特定位置。在一些情況下,應擾亂位址本身以進一步增加攻擊之難度。在態樣中,由主機302或目的地產生之完整性後設資料可透過組構及/或一系統之任何暫時儲存元件與命令訊息(例如,命令有效負載)及/或回應訊息(例如,資料有效負載)一起持續存在。
例如,如本文中所描述,完整性後設資料(例如,ECC位元)可在TL-UL先進先出暫存器(TL-UL FIFO)、一指令快取區(i快取區)、一處理器(或主機)之各種暫存器、一密碼編譯處理器(例如,大數加速器)、SRAM、對執行控制流至關重要的暫存器或記憶體或類似者中或透過其等伴隨有資料或與資料一起持續存在。根據安全之全晶片通信之態樣,可在消耗之前在主機302及系統之各種目的地兩者處確認資料完整性或有效負載完整性。在一些實施方案中,系統之主機302及目的地實施ECC作為藉由其確認有效負載之完整性機制,但可使用其他輕量級完整性機制(例如,CRC位元或同位位元)。儘管ECC係針對完整性確認或驗證而實施,但在態樣中,未使用ECC之校正特徵,此係因為ECC偵測用於完整性確認。在一些態樣中,所描述之ECC完整性編碼可實現對每訊息或有效負載之多達三個位元錯誤之偵測。
返回至圖3A,主機302可使用包含如本文中所描述之完整性後設資料或完整性位元之訊息來與除錯模組230及暫存器檔案202進行命令或資料通信。在此實例中,除錯模組203或除錯記憶體(例如,ROM、rv_dm)可經組態具有用以產生發送至主機302之回應或資料之完整性後設資料(例如,ECC位元)的一完整性產生功能320。歸因於除錯記憶體係ROM或唯讀的,除錯模組可能不包含一完整性檢查功能。在一些情況下,除錯模組230可受到輕微保護,因為存取此介面或記憶體受限制或僅在系統之一除錯狀態期間有效。
在態樣中,暫存器檔案202可包含或直接與資料或回應訊息一起提供完整性,使得暫存器檔案202可視需要包含一完整性產生功能320。暫存器檔案202可包含用於確認自主機302接收之命令訊息、請求訊息或命令有效負載之完整性的一完整性檢查功能322。在此實例中,暫存器檔案202與至一大數加速器之視窗存取324可操作地耦合。如所提及,提供至暫存器檔案202或透過regfile 202提供之資料可包含完整性後設資料或完整性位元且可諸如自視窗324直接提供至組構以用於傳達至主機。
如在圖3B之301所展示,主機302亦可與耦合至組構之記憶體目的地通信,該組構被繪示為來自圖3A之通道A 304及通道D 306。在此實例中,一第一記憶體目的地可表示包含具有擾亂保護(虛線)之一記憶體巨集326之ROM 204及/或SRAM 206。在態樣中,ROM 204或SRAM 206可儲存經由組構接收之資料328與伴隨資料328之完整性後設資料330。換言之,一些記憶體可直接儲存完整性後設資料(例如,ECC位元、主機提供之ECC)與資料以透過系統提供資料交易之端對端完整性。如此,完整性後設資料伴隨透過組構從主機處起始之資料有效負載且連同資料一起儲存於一記憶體目的地中。另外,記憶體目的地可包含用以在由巨集326儲存之前擾亂資料及完整性後設資料的一擾亂功能332。因而,所描繪之記憶體ROM 204/SRAM 206不包含一完整性產生功能,此係因為完整性後設資料330在進入記憶體巨集326中及透過自記憶體巨集326擷取時與資料328一起持續存在。
主機302亦可與快閃記憶體208通信以將資料儲存至一快閃記憶體巨集334或自快閃記憶體巨集334存取資料。此處,應注意,快閃記憶體208可在一完整性檢查功能322確認資料之完整性之後去除完整性資料。在一些情況下,快閃記憶體208之大小限制可阻止快閃ECC位元及完整性後設資料與資料一起之儲存。如圖3B中所展示,快閃記憶體巨集334儲存資料336以及由快閃記憶體208針對資料336在自快閃記憶體巨集334讀取時之錯誤偵測及校正而產生的ECC位元338。另外,快閃記憶體208可包含用以在由快閃記憶體巨集334儲存之前擾亂資料336及/或ECC位元的一擾亂功能332。因為快閃記憶體208可能未以一端對端方式儲存完整性後設資料,所以快閃記憶體208可包含用以在資料336自快閃記憶體巨集334讀取時產生其之完整性後設資料(此使主機302能夠確認由快閃記憶體208返回之資料之完整性)的一完整性產生功能320。
作為另一實例,考量圖4,其中以400繪示包含用於實施安全之全晶片通信之態樣之完整性功能的一例示性系統。圖4之例示性系統400可表示一系統之一簡化視圖,其中一主機302透過一組構120可操作地耦合至一或多個目的地402。在此實例中,主機302 (例如,一RISC-V核心)包含一命令完整性產生功能404 (命令產生404)及一回應完整性檢查功能406 (回應檢查406),其等可對應於基於主機之完整性功能110、完整性檢查功能314及/或同位檢查/完整性產生功能316。當與一系統之目的地通信時,命令產生功能404可產生完整性位元以包含於發送至組件或目的地之一命令訊息(例如,命令有效負載)中或附加至該命令訊息,及/或回應檢查功能406可確認自各自組件接收之回應訊息(例如,回應有效負載)之完整性。
目的地402 (例如,周邊設備或記憶體)可包含一命令完整性檢查功能408 (命令檢查功能408)及一回應完整性產生功能410 (回應產生功能410),其等可對應於組件完整性檢查功能118、完整性產生功能320及/或完整性檢查功能322。當與一系統之一主機通信時,命令檢查功能408可在組件或目的地消耗命令有效負載之前確認自一主機(例如,處理器106、主機302)接收之命令有效負載之完整性。替代地或額外地,回應產生功能410可產生完整性位元以包含於由組件或目的地發送至主機之回應有效負載中或附加至該等回應有效負載,此使主機能夠在消耗回應有效負載之前確認回應有效負載之完整性。
關於周邊設備目的地(諸如基於USB或SPI之周邊設備),此等或其他周邊設備目的地可終止於暫存器檔案(例如,暫存器檔案202)內部抑或對下游功能之一視窗(例如,視窗324)存取。在態樣中,在目的地402處之傳入交易係在消耗之前基於完整性後設資料針對正確性進行完整性檢查。對於暫存器檔案抑或視窗終止,可實施完整性後設資料(例如,ECC位元)使得完整性資料係在讀取時產生且返回至主機邊界,完整性後設資料與資料一起儲存且直接返回至主機邊界,或當資料讀取透過視窗進行時,則下游之經視窗化完整性資料亦可返回至主機邊界。當經視窗化存取不具有完整性後設資料時,則目的地可產生回應之完整性後設資料且將此經產生完整性資料連同所返回之資料一起返回。
在設計安全之全晶片通信時之其他考量可包含使用及/或啟用額外或所有周邊暫存器(其等可包含在晶片或系統中之一安全域或空間內之所有周邊暫存器)之同位檢查。在一些系統設計中,跨現有周邊設備(並非所有周邊設備經具現化)可存在大約12k個可組態位元,排除可包含三個I2C、一個SPI主機、一個rbox及一個dcd之各種周邊設備/介面。在態樣中,用於在所有暫存器上實施全晶片同位檢查之額外耗用可運行大約2k至3k次每秒浮點運算(flops)。
圖5以500繪示包含用於實施安全之全晶片通信之態樣之完整性功能的一例示性周邊設備。在此實例中,一目的地502經實施具有記憶體及FIFO之兩個例項,具有完整性後設資料儲存之一記憶體及FIFO 504及不具有完整性後設資料儲存之另一記憶體及FIFO 506。因此,目的地502可經組態以提供由記憶體及FIFO 504儲存之具有完整性之至少一些資料的端對端完整性。如圖5中所展示,目的地502可包含耦合至一TileLink輸入節點之一命令檢查功能408及耦合至一TileLInk輸出節點之一回應產生功能410。此等完整性功能可對應於組件完整性檢查功能118、完整性產生功能320及/或完整性檢查功能322。當與一系統之一主機通信時,命令檢查功能408可在組件或目的地消耗命令有效負載之前確認自一主機(例如,處理器106、主機302)接收之命令有效負載之完整性。替代地或額外地,回應產生功能410可產生完整性位元以包含於由組件或目的地發送至主機之回應有效負載中或附加至該等回應有效負載,此使主機能夠在消耗回應有效負載之前確認回應有效負載之完整性。
然而,在一些情況下,完整性位元可儲存於記憶體及FIFO 504中,使得回應產生功能410不需要產生返回至主機之資料之新的完整性位元。關於命令檢查功能408,當一命令訊息或請求訊息未通過一完整性檢查時,命令檢查功能408可經組態以摒棄訊息且產生通知系統以未通過的完整性檢查之一警示(例如,警示發送器)或中斷。替代地或額外地,系統可回應於警示或中斷而採用安全抵抗措施來保護敏感資料及/或秘密。此等僅為處置未通過的完整性檢查之幾個實例,其他實例參考圖9且在整個本發明中進行描述。
圖6以600繪示包含用於實施安全之全晶片通信之態樣之完整性功能的一例示性記憶體組件。在此實例中,一記憶體602 (例如,SRAM、ROM)經實施具有一TL-UL組構配接器及記憶體巨集(其可表示支援完整性後設資料(ECC位元)之儲存之SRAM或ROM功能性)。因此,記憶體602可經組態以提供由記憶體巨集儲存之具有完整性後設資料之資料的端對端完整性。如圖6中所展示,記憶體602可包含耦合至一TileLink輸入節點之一命令檢查功能408及耦合至一TileLInk輸出節點之一回應產生功能410。此等完整性功能可對應於組件完整性檢查功能118、完整性產生功能320及/或完整性檢查功能322。當與一系統之一主機通信時,命令檢查功能408可在記憶體消耗命令有效負載之前確認自一主機(例如,處理器106、主機302)接收之命令有效負載之完整性。替代地或額外地,回應產生功能410可產生完整性位元以包含於由記憶體發送至主機之回應有效負載中或附加至該等回應有效負載,此使主機能夠在消耗回應有效負載之前確認回應有效負載之完整性。
在態樣中,關於SRAM及ROM型目的地,可在消耗之前針對正確性檢查傳入交易。在一些情況下,記憶體目的地被擾亂且受完整性保護兩者。例如,擾亂直接保護對記憶體巨集之攻擊且防止合法形成但不正確的資料之返回。在一些情況下,採用CTR擾亂用於經由互連件120之安全通信。如本文中所描述,交易之完整性可為位元組同位檢查抑或ECC,其等之選擇可適當取決於模組。
例如,對於其中位元組寫入效能可為重要之一主SRAM 206,應使用同位檢查,而對於其中位元組寫入效能可能不重要之保持SRAM,可使用ECC。對於其中位元組寫入不重要或不可能之密碼編譯、大數加速器記憶體、i快取區及/或ROM,可使用ECC。一般而言,在一資料讀取或資料獲取時,記憶體之行為取決於其之經儲存完整性資料是否與高階選擇一致。例如,若完整性資料係相同的,則經儲存完整性資料直接被返回至主機邊界。另一方面,若完整性資料係不同的,則在針對正確性檢查經儲存完整性資料時必須計算目標完整性資料。 例示性方法
方法700至1000、1300、1400及1600被繪示為各自組之方塊,其等描繪可經執行但不一定限於所展示之順序或組合用於按各自方塊執行操作的動作或操作。此外,可重複、組合、重新組織或連結操作之一或多者之任何者以提供多種額外及/或替代方法。所描述技術不限於由在一個系統或器件上操作之一個實體或多個實體執行。在態樣中,方法700至1000、1300、1400及1600之操作或動作係由一處理器、安全電路系統組件、記憶體、完整性產生功能、完整性檢查功能或經組態以實施安全之全晶片通信之其他實體執行或管理。為清楚起見,關於圖1之元件及/或參考圖2至圖6及圖17所描述之實體、組件或組態來描述方法。
圖7繪示根據一或多個態樣之可由一主機實施之安全之全晶片通信的例示性方法700。在各種態樣中,一系統之一完整性功能110或主機可實施方法700之操作以安全地傳達及/或利用系統之資料。在態樣中,可重複方法700之操作以發送具有完整性位元之多個請求訊息及/或確認包含完整性位元之多個回應訊息之完整性。
在702,產生對一目的地之一請求訊息(例如,命令訊息)。請求訊息可包含供目的地消耗(此可包含處理資料、儲存資料、傳達資料等)之資料之一有效負載。替代地或額外地,請求訊息可包含經組態以引起目的地執行如由主機引導之一操作或功能的一命令或操作碼。
在704,產生請求訊息之有效負載之第一完整性位元。在一些情況下,主機之一命令完整性產生功能產生請求訊息之完整性位元。完整性位元可包含任何合適類型之編碼或加密,諸如ECC位元、CRC位元、非對稱加密或類似者。在706,將第一完整性位元插入於請求訊息中或附加至請求訊息之有效負載之資料或另一欄位。
在708,透過一組構將包含第一完整性位元之請求訊息傳輸至目的地。在態樣中,可藉由透過其交易或傳達請求訊息之組構或互連件之一完整性檢查功能來確認或檢查請求訊息之完整性。自操作708,方法700可返回至操作702以產生另一請求訊息,或進行至操作710,在操作710,自目的地或另一目的地接收一回應訊息。
在710,透過組構接收來自一目的地之一回應訊息。回應訊息可為對最後一次發送至目的地之請求訊息之一回應或對發送至另一目的地之一請求訊息之另一回應。回應訊息可包含供主機消耗之資料或其他資訊之一有效負載。
在712,自回應訊息提取第二完整性位元。第二完整性位元可包含用於完整性確認之ECC位元或CRC位元,其等未用於有效負載資料或資訊之錯誤偵測或錯誤校正。在一些情況下,第二完整性位元與由主機產生之第一完整性位元相同。在其他情況下,第二完整性位元係由目的地產生且被插入至發送至主機之回應訊息中。
在714,基於第二完整性位元確認或驗證回應訊息之有效負載之完整性。在一些情況下,針對有效負載解碼或判定ECC或CRC值以確認有效負載之完整性。此可包含將明文資料位元及完整性位元提供至一ECC解碼器以基於與回應訊息一起接收之完整性位元驗證明文。因此,主機之一完整性檢查功能可計算有效負載之ECC位元或CRC位元,且確認經計算之ECC或CRC值匹配與有效負載一起接收之完整性位元。
在716,回應於確認有效負載之完整性而消耗回應訊息之有效負載。因此,在主機消耗或使用有效負載之資料或資訊之前確認或驗證回應訊息之有效負載之完整性。替代地,主機可回應於未能確認有效負載之完整性而摒棄回應訊息(例如,方法900)。自操作716,方法700可返回至操作702以產生另一請求訊息,或返回至操作710以接收及處理由主機接收之另一回應訊息。
圖8繪示根據一或多個態樣之可由一目的地實施之安全之全晶片通信的例示性方法800。在各種態樣中,一系統之一完整性功能118或目的地可實施方法800之操作以安全地傳達及/或利用系統之資料。在態樣中,可重複方法800之操作以接收具有完整性位元之多個請求訊息及/或確認包含完整性位元之多個請求訊息之完整性。
在802,透過一組構自一主機接收包含完整性位元之一請求訊息。請求訊息可包含供目的地消耗(此可包含處理資料、儲存資料、傳達資料等)之資料之一有效負載。替代地或額外地,請求訊息可包含經組態以引起目的地執行如由主機引導之一操作或功能的一命令或操作碼。
在804,自請求訊息提取第一完整性位元。第一完整性位元可包含用於完整性確認之ECC位元或CRC位元,其等未用於有效負載資料或資訊之錯誤偵測或錯誤校正。
在806,基於第一同位位元確認請求訊息之有效負載之完整性。在一些情況下,針對有效負載解碼或判定ECC或CRC值以確認有效負載之完整性。此可包含將明文資料位元及完整性位元提供至一ECC解碼器以基於與請求訊息一起接收之完整性位元驗證明文。因此,目的地之一完整性檢查功能可計算有效負載之ECC位元或CRC位元,且確認經計算之ECC或CRC值匹配與有效負載一起接收之完整性位元。
在808,回應於確認有效負載之完整性而消耗請求訊息之有效負載。因此,在目的地消耗或使用有效負載之資料或資訊之前確認或驗證請求訊息之有效負載之完整性。替代地,目的地可回應於未能確認有效負載之完整性而摒棄請求訊息(例如,方法900)。自操作808,方法800可返回至操作802,在操作802自主機接收另一請求訊息,或進行至操作810,在操作810由目的地判定一回應訊息並將其發送至主機。
在810,針對主機判定一回應訊息。回應訊息可包含目的地之一功能或操作(諸如一處理操作、記憶體讀取操作、通信操作等)之所得資料。
視需要在812,產生回應訊息之一有效負載之第二完整性位元。在一些情況下,目的地之一回應完整性產生功能產生回應訊息之完整性位元。完整性位元可包含任何合適類型之編碼或加密(諸如ECC位元、CRC位元、非對稱加密或類似者)。替代地,第二完整性位元可與回應訊息之有效負載之資料一起擷取或接收。因而,第二完整性位元可與由主機產生之第一完整性位元相同。在814,將第二完整性位元插入至回應訊息中或附加至回應訊息之有效負載之資料或另一欄位。
在816,透過組構將包含第二完整性位元之回應訊息傳輸至主機。回應訊息所包含之第二完整性位元可使一主機能夠在消耗回應訊息之有效負載之前確認回應訊息之完整性。自操作816,方法800可返回至操作802以自主機接收另一請求訊息,或返回至操作710以判定另一回應訊息並將其發送至主機。
圖9繪示根據一或多個態樣之用於在消耗一訊息之一有效負載之前確認該有效負載之完整性的一例示性方法900。在各種態樣中,一系統之一完整性功能、主機或目的地可實施方法900之操作以在消耗一訊息有效負載之資料之前確認該有效負載之完整性,以防止攻擊影響資料完整性及/或系統之操作。
在902,透過一組構接收一訊息,該訊息包含該訊息之一有效負載之完整性位元。訊息可包含來自一系統之一主機之一命令訊息或來自系統之一目的地或周邊設備之一回應訊息。完整性位元可包含用於有效負載完整性確認之ECC位元或CRC位元,其等未用於有效負載資料或資訊之錯誤偵測或錯誤校正。
在904,解碼有效負載之完整性位元及/或內容以確認訊息之有效負載之完整性。在一些情況下,針對有效負載解碼或判定ECC值或CRC值以確認有效負載之完整性。此可包含將明文資料位元及完整性位元提供至一ECC解碼器以基於與請求訊息一起接收之完整性位元驗證明文。自操作904,方法900可回應於確認訊息之完整性而進行至操作906或回應於未能確認訊息之完整性而進行至操作908。
在906,回應於確認有效負載之完整性而消耗訊息之有效負載。在確認之後,主機或目的地可消耗訊息之有效負載,此可確保主機或目的地消耗正確資料而非已被一攻擊者更改或竄改之資料。
在908,回應於未能確認有效負載之完整性而摒棄有效負載。為防止主機或目的地消耗經更改或不正確的資料,摒棄訊息之有效負載。視需要在910,產生一中斷或警示以通知系統以未通過的確認。在一些情況下,警示系統之一安全代理,該安全代理繼而可引起系統之一狀態變化以防止資料洩漏。視需要在912,啟動對策以防止對系統之資料或資訊之存取。在一些情況下,啟動或參與系統之安全對策可包含:擦除系統之一或多個記憶體之內容,擦除系統之一或多個金鑰之加密,重設系統之一熵產生網路,更改系統之一安全狀態,更改系統之一電源狀態或類似者。藉由如此做,系統可防止資料完整性故障曝露系統之敏感資料或私密金鑰。
圖10繪示根據一或多個態樣之用於將包含完整性位元之一命令訊息之資料寫入至記憶體的一例示性方法1000。在各種態樣中,一系統之一完整性功能118或記憶體目的地可實施方法1000之操作以安全地傳達及/或儲存系統之資料。
在1002,透過一組構自一主機接收包含完整性位元之一命令訊息。命令訊息可由任何合適類型之記憶體(諸如系統之一指令快取區(i快取區)或SRAM)接收。命令訊息(或請求訊息)包含用以將命令訊息之一有效負載之資料寫入至記憶體之一位址的一請求。藉由實例,考量圖11及圖12,其中分別藉由一i快取記憶體及一SRAM來執行資料交易。如圖11中所展示,一i快取區記憶體可在1102接收包含ECC位元作為完整性後設資料之傳入資料。在圖12中,一SRAM在1202接收包含ECC位元作為完整性資料之傳入資料。
在1004,解碼命令訊息之完整性位元以確認命令訊息之內容(例如,有效負載資料)之完整性。在圖11之內容背景中,i快取區之一ECC解碼區塊(例如,完整性功能)在1104解碼由i快取區接收之命令訊息之明文及ECC位元。在圖12中,SRAM之一ECC解碼區塊(例如,完整性功能)在1204解碼由SRAM接收之命令訊息之明文及ECC位元。
視需要在1006,針對命令訊息內容之明文資料產生同位位元或編碼ECC位元作為資料之替代完整性位元。關於i快取區實例,在1106針對明文資料編碼ECC位元。在態樣中,因為位元組寫入對於i快取區而言可能不重要,所以i快取區可採用ECC作為完整性檢查。在其他態樣中,因為位元組寫入效能對於SRAM而言可為重要的,所以可使用同位檢查以避免讀取-修改-寫入延遲。應注意,在此實例中,假定甚至在一位元組寫入期間,匯流排資料仍被完全填入(可能具有廢棄項目或填充資料)且與ECC正確相關聯。在圖12之內容背景中,在1206針對明文資料產生同位位元以寫入至SRAM。
在1008,擾亂命令訊息內容之明文資料及完整性位元。如圖11中所展示,i快取區之擾亂區塊在1108擾亂明文及ECC位元。關於SRAM實例,SRAM目的地之擾亂區塊在1208在儲存於SRAM中之前擾亂明文資料及同位位元。
在1010,將經擾亂資料及完整性位元寫入至記憶體。結束i快取區實例,在1110將經擾亂資料及ECC位元寫入至i快取記憶體。在圖12中,SRAM單元在1210將經擾亂資料及同位位元寫入至SRAM。視需要在1012,透過組構將資料寫入操作之一認可傳輸至主機。
圖13繪示根據一或多個態樣之用於存取一記憶體之資料及傳輸資料與完整性位元的一例示性方法1300。在各種態樣中,一系統之一完整性功能118或記憶體目的地可實施方法1300之操作以安全地傳達及/或存取系統之資料。
在1302,透過一組構自一主機接收請求資料之一命令訊息。命令訊息可由任何合適類型之記憶體(諸如系統之一指令快取區(i快取區)或SRAM)接收。命令訊息(或請求訊息)包含用以自記憶體之一位址讀取資料之一請求。
在1304,解碼命令訊息之完整性位元以確認命令訊息之內容(例如,命令有效負載)之完整性。完整性位元可包含用於完整性確認之ECC位元或CRC位元,其等未用於命令訊息之有效負載資料或資訊之錯誤偵測或錯誤校正。
在1306,基於命令訊息之位址自記憶體讀取經擾亂資料及完整性位元。返回至圖11之i快取區實例,在1112,自i快取區讀取經擾亂資料及ECC位元。在圖12之SRAM實例之內容背景中,在1212自SRAM讀取經擾亂資料及同位位元。
在1308,對經擾亂資料及完整性位元進行解擾以提供明文資料及對應完整性位元。如圖11中所展示,i快取區之解擾區塊在1114對自i快取區讀取之經擾亂明文及ECC位元進行解擾。關於SRAM實例,在1214,SRAM目的地之解擾區塊對自SRAM讀取之經擾亂明文資料及同位位元進行解擾。
在1310,解碼完整性位元或檢查同位位元以確認自記憶體讀取之明文資料之完整性。關於i快取區實例,在1116解碼ECC位元以確認明文資料之完整性。在圖12之內容背景中,在1216針對自SRAM讀取之明文資料檢查同位位元。
視需要在1312,針對明文資料編碼ECC位元作為明文資料之替代完整性位元。在其中與資料一起接收之完整性位元未與資料一起儲存之情況下,可針對資料產生新的或第二ECC位元以與回應訊息包含在一起。在圖11中,在1118針對i快取區之明文資料編碼ECC位元。在SRAM實例之內容背景中,在1218在傳輸至主機之前產生自SRAM讀取之明文資料的ECC位元。
在1314,透過組構將包含明文資料及完整性位元之一回應訊息傳輸至主機。結束i快取區實例,在1120將明文資料及ECC位元傳輸至主機作為一回應訊息。在圖12中,SRAM單元在1220透過組構將明文資料及ECC位元傳輸至主機作為一回應訊息以完成與主機之資料交易。
圖14繪示根據一或多個態樣之用於將一命令訊息之資料與錯誤校正碼位元一起寫入於記憶體中的一例示性方法1400。在各種態樣中,一系統之一完整性功能118或記憶體目的地可實施方法1400之操作以安全地傳達及/或儲存系統之資料。
在1402,透過一組構自一主機接收請求資料之包含完整性位元之一命令訊息。命令訊息可由任何合適類型之記憶體(諸如系統之一快閃記憶體)接收。命令訊息(或請求訊息)包含用以將命令訊息之一有效負載之資料寫入至記憶體之一位址的一請求。藉由實例,考量圖15,其中藉由一系統之一快閃記憶體執行資料交易。如圖15中所展示,快閃記憶體區塊在1502接收包含ECC位元作為完整性後設資料之傳入資料。
在1404,解碼命令訊息之完整性位元以確認命令訊息之內容(例如,有效負載資料)之完整性。換言之,可在消耗之前針對正確性檢查記憶體之傳入交易。在圖15之內容背景中,快閃記憶體之一ECC解碼區塊(例如,完整性功能)可在1504解碼由快閃記憶體接收之命令訊息之明文及ECC位元以確認有效負載資料。在1406,針對命令訊息內容之明文資料計算CRC位元及/或ECC位元。在快閃記憶體實例中,一CRC區塊或ECC區塊可在1506計算資料之明文的CRC位元或ECC位元以寫入至快閃記憶體。
在1408,擾亂命令訊息之明文資料以提供經擾亂資料。可擾亂快閃記憶體目的地,此可直接保護快閃記憶體巨集或防止對快閃記憶體巨集之攻擊且防止合法形成但不正確的資料之返回。歸因於其非揮發性性質,快閃記憶體可使用XEX用於擾亂。返回至圖15,在1508藉由快閃記憶體單元之一擾亂區塊擾亂明文資料。
在1410,針對經擾亂資料及CRC位元及/或ECC位元編碼ECC位元。在安全之全晶片通信之一些態樣中,出於耐久性目的,快閃記憶體由ECC涵蓋。在一些情況下,一快閃記憶體字大小係76位元(64 b資料、12 b後設資料),且必須自經擾亂資料計算ECC (8位元),此係因為擾亂方案影響整個64區塊。因此,快閃記憶體區塊可使用一略微不同的資料方法進行保護。關於用於安全通信之各種ECC實施方案,對於快閃記憶體程式,可對原始64 b資料計算一CRC-4或經截斷ECC。接著,擾亂64 b資料,且對經序連之擾亂及CRC/ECC值計算一新的ECC。在圖15之內容背景中,在1510在寫入至快閃記憶體之前對經擾亂資料及CRC/ECC位元進行ECC編碼。
在1412,將明文資料之經擾亂資料、CRC位元及/或ECC位元,以及經擾亂資料及CRC位元及/或ECC位元之ECC位元寫入至記憶體。如圖15中所展示,結束方法1400,在1512將經擾亂資料、CRC/ECC位元及ECC位元寫入至快閃記憶體。視需要在1414,透過組構將資料寫入操作之一認可傳輸至主機。
圖16繪示根據一或多個態樣之用於存取一記憶體之一資料及傳輸該資料與經產生完整性位元的一例示性方法1600。在各種態樣中,一系統之一完整性功能118或記憶體目的地可實施方法1600之操作以安全地傳達及/或存取系統之資料。
在1602,透過一組構自一主機接收請求資料之一命令訊息。命令訊息可由任何合適類型之記憶體(諸如系統之一快閃記憶體)接收。命令訊息(或請求訊息)包含用以自記憶體之一位址讀取資料之一請求。
在1604,解碼命令訊息之完整性位元以確認命令訊息之內容(例如,有效負載)之完整性。完整性位元可包含用於完整性確認之ECC位元或CRC位元,其等未用於命令訊息之有效負載資料或資訊之錯誤偵測或錯誤校正。
在1606,基於命令訊息之內容自記憶體讀取經擾亂資料、ECC位元及/或CRC位元。返回至圖15之快閃記憶體實例,在1514,自快閃記憶體讀取經擾亂資料、CRC/ECC位元及ECC位元。
在1608,解碼ECC位元以檢查資料之經擾亂資料及CRC位元及/或ECC位元。如在圖15之1516所展示,一ECC區塊解碼自快閃記憶體讀取之經擾亂資料、CRC/ECC位元及ECC位元。在1610,對自記憶體讀取之經擾亂資料進行解擾以提供明文資料。在快閃記憶體實例之內容背景中,快閃記憶體單元之一解擾區塊在1518對自快閃記憶體讀取之明文資料進行解擾。
在1612,基於明文資料之CRC位元及/或ECC位元來檢查明文資料,此在圖15之1520繪示。因此,對於快閃記憶體讀取,可對資料進行ECC解碼及解擾且檢查原始CRC-4/經截斷ECC。若此檢查匹配,則資料被視為無錯誤。此處,應注意,CRC-4/原始ECC可在儲存至快閃記憶體中時由一些其他輕量級機制(精簡CTR)擾亂。
在1614,針對明文資料編碼ECC位元以使主機能夠確認明文資料之完整性。因為完整性位元未透過至快閃記憶體之儲存而持續存在,所以藉由快閃記憶體單元針對回應訊息產生新的或第二完整性位元。在圖15中,在1522針對快閃記憶體回應之明文資料編碼ECC位元。
在1616,透過組構將包含明文資料及明文資料之ECC位元的一回應訊息傳輸至主機。結束圖15之快閃記憶體實例,在1524藉由快閃記憶體單元將明文資料及ECC位元傳輸至主機作為一回應訊息。 例示性系統單晶片
圖17繪示根據一或多個態樣之可實施安全之全晶片通信之一例示性系統單晶片1700 (SoC 1700)的各種組件。SoC 1700可實施為一固定、行動、獨立或嵌入式器件之任何單一者或多者;呈一消費性、電腦、可攜式、使用者、伺服器、通信、電話、導航、遊戲、音訊、相機、訊息傳遞、媒體播放及/或其他類型之具備SoC功能之器件的任何形式,諸如在圖1中或關於圖1所描繪之裝置102。所繪示組件之一或多者可實現為離散組件、模組、IP區塊或SoC 1700之至少一個積體電路上之整合式組件。一般而言,SoC 1700之各種組件經由根據安全之全晶片通信之一或多個態樣支援組件之間之通信的一互連件120及/或組構耦合。
SoC 1700可包含實現器件資料112 (諸如經接收資料、經傳輸資料或上文識別之其他資訊)之有線及/或無線通信之一或多個通信收發器124。通信收發器124之實例包含一近場通信(NFC)收發器、遵循各種IEEE 802.15 (BluetoothTM)標準之無線個人區域網路(PAN) (WPAN)無線電、遵循各種IEEE 802.11 (WiFi TM)標準之任何者之一無線區域網路(LAN) (WLAN)無線電、用於蜂巢式電話之一無線廣域網路(WAN) (WWAN)無線電(例如,第三代合作夥伴計畫相容(3GPP相容)之WWAN無線電)、遵循各種IEEE 802.16 (WiMAXTM)標準之一無線都會區域網路(MAN) (WMAN)無線電、遵循一紅外線資料協會(IrDA)協定之一紅外線(IR)收發器,及一有線區域網路(LAN) (WLAN)乙太網路收發器。
SoC 1700亦可包含一或多個資料輸入/輸出埠126 (I/O埠126),可經由其傳達任何類型之資料、媒體內容及/或其他輸入,諸如使用者可選擇輸入、訊息、應用程式、音樂、電視內容、經錄製視訊內容,及自任何內容及/或資料源(包含一感測器,如一麥克風或一相機)接收之任何其他類型之音訊、視訊及/或影像資料。資料I/O埠126可包含USB埠、同軸纜線埠、用於光纖互連件或佈纜之光纖埠,及用於可操作地耦合一快閃記憶體、光學媒體寫入器/讀取器(例如,DVD、CD)及類似者之其他串列或並列連接器(包含內部連接器)。此等資料I/O埠126可用於將SoC耦合至組件、周邊設備或配件(諸如鍵盤、麥克風、相機或其他感測器)。
此實例之SoC 1700包含至少一個處理器106 (例如,應用程式處理器、微處理器、數位信號處理器(DSP)、控制器及類似者之任一或多者),該至少一個處理器106可包含處理(例如,執行)電腦可執行指令以控制器件之操作之一組合處理器及記憶體系統(例如,實施為一SoC之部分)。處理器106或處理器106之子系統亦可包含用以實施如本文中所描述之安全之全晶片通信之各種態樣的完整性功能110。例如,處理器106之完整性功能可包含用以產生完整性位元以包含於發送至SoC 1700之組件或目的地之一命令訊息(例如,命令有效負載)或附加至該命令訊息的一命令產生功能404。替代地或額外地,完整性功能110可包含用以確認自SoC 1700之各自組件接收之回應訊息(例如,回應有效負載)之完整性的一回應檢查功能406。處理器106可實施為一應用程式處理器、嵌入式控制器、微控制器、安全處理器、人工智慧(AI)加速器及類似者。一般而言,一處理器或處理系統可至少部分在硬體中實施,該硬體可包含一積體電路或晶片上系統之組件、一數位信號處理器(DSP)、一特定應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)、一複雜可程式化邏輯器件(CPLD),及矽及/或其他材料中之其他實施方案。
替代地或額外地,SoC 1700可用電子電路系統之任一者或組合來實施,該電子電路系統可包含結合處理及控制電路(其等大體上以1702指示(如電子電路系統1702))實施之軟體、硬體、韌體或固定邏輯電路系統。此電子電路系統1702可實施可執行或基於硬體之模組(圖17中未展示),諸如透過儲存於電腦可讀媒體上之處理/電腦可執行指令,透過邏輯電路系統及/或硬體(舉例而言,諸如一FPGA)等。
在態樣中,SoC 1700包含一互連件120,互連件120可包含一系統匯流排、鏈路、通道、互連件、交叉開關、資料傳送系統,或耦合器件內之各種組件以實現用稀疏編碼進行傳訊及/或通信之各種態樣之其他交換組構的任一或多者。一系統匯流排或互連件可包含不同匯流排結構之任一者或一組合,諸如一記憶體匯流排或記憶體控制器、一周邊匯流排、同位區塊、CRC區塊、ECC區塊、TL-UL組構、一通用串列匯流排,及/或利用多種匯流排架構之任何者之一處理器或本地匯流排。
SoC 1700亦包含實現資料儲存之一或多個記憶體器件1704,記憶體器件1704之實例包含隨機存取記憶體(RAM)、非揮發性記憶體(例如,唯讀記憶體(ROM)、快閃記憶體、可擦除可程式化唯讀記憶體(EPROM)及電可擦除可程式化唯讀記憶體(EEPROM))及一磁碟儲存器件。記憶體器件1704之一或多者亦可包含用以實施如本文中所描述之安全之全晶片通信之各種態樣的完整性功能118。因此,記憶體器件1704可跨一系統之不同邏輯儲存層級以及在不同實體組件處分佈。記憶體器件1704提供用以儲存器件資料112、其他類型之程式碼及/或資料以及各種器件應用程式1706 (例如,軟體應用程式或程式)的資料儲存機構。例如,一作業系統1708可作為軟體指令維持在記憶體器件1704內且由處理器106執行。
在一些實施方案中,SoC 1700亦包含處理音訊資料及/或將音訊及視訊資料傳遞至一音訊系統1712及/或至一顯示系統1714 (例如,一視訊緩衝器或一智慧型電話或相機之一螢幕)的一音訊及/或視訊處理系統1710。音訊系統1712及/或顯示系統1714可包含處理、顯示及/或以其他方式呈現音訊、視訊、顯示及/或影像資料之任何器件。可經由一RF (射頻)鏈路、S視訊鏈路、HDMI (高清晰度多媒體介面)、複合視訊鏈路、分量視訊鏈路、DVI (數位視訊介面)、類比音訊連接、視訊匯流排或其他類似通信鏈路(諸如一媒體資料埠1716)將顯示資料及音訊信號傳達至一音訊組件及/或至一顯示組件。在一些實施方案中,音訊系統1712及/或顯示系統1714係SoC 1700之外部或分離組件。替代地,例如,顯示系統1714可為例示性SoC 1700之一整合式組件(諸如一整合式觸控介面之部分)。
圖17之SoC 1700可為圖1之裝置102之一例示性實施方案、可實施如關於圖1至圖16所描述之安全之全晶片通信之一器件或系統的一例示性實施方案。因此,SoC 1700可包含安全電路系統114,安全電路系統114可為一單獨電路系統或IP區塊,或包含為另一IC晶片或器件(如處理器106、電子電路系統1702或記憶體器件1704)之部分。因此,所繪示組件之一或多者可整合於相同半導體基板、半導體封裝、IC晶片、SoC或一單一印刷電路板(PCB)上。
如所展示,安全電路系統114經實施具有完整性功能118,完整性功能118可包含一命令檢查功能408及/或一回應產生功能410之例項。因而,安全電路系統114及完整性功能118可使SoC 1700能夠實施如本文中所描述之安全之全晶片通信之態樣。例如,命令檢查功能408可在組件或目的地消耗命令有效負載之前確認自一主機(例如,處理器106)接收之命令有效負載的完整性。替代地或額外地,回應產生功能410可產生完整性位元以包含於由組件或目的地發送至主機之回應有效負載中或附加至該等回應有效負載,此使主機能夠在消耗回應有效負載之前確認回應有效負載之完整性。因此,如本文中所描述之安全之全晶片通信之概念可由圖17之SoC 1700實施或結合圖17之SoC 1700實施。
除非上下文另有規定,否則在本文中使用字詞「或」可被視為使用一「包含性或」,或允許包含或應用由字詞「或」連結之一或多個品項之一術語(例如,一片語「A或B」可被解釋為僅允許「A」、僅允許「B」或允許「A」及「B」兩者)。再者,如本文中所使用,提及一品項清單「之至少一者」之一片語指代該等品項之任何組合(包含單一成員)。例如,「a、b或c之至少一者」可涵蓋a、b、c、a-b、a-c、b-c及a-b-c,以及具有多個相同元素之任何組合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c及c-c-c,或a、b及c之任何其他排序)。此外,附圖中所表示之品項及本文中所論述之術語可指示一或多個品項或術語,且因此可互換地引用本書面描述中之品項及術語之單一或複數形式。儘管已用特定於特定特徵及/或方法之語言描述安全之全晶片通信之態樣,但隨附發明申請專利範圍之標的物不一定限於所描述之特定特徵或方法。實情係,特定特徵及方法係揭示為安全之全晶片通信之例示性實施方案。 額外實例下文提供安全之全晶片通信之實例: 實例1:一種由一系統之一主機實施之用於與由一互連件耦合至該主機之至少一個目的地進行安全通信的方法,該方法包括:產生對該至少一個目的地之一目的地之一請求訊息;產生該請求訊息之第一資料之第一完整性位元;將該等第一完整性位元插入於該請求訊息中;透過該互連件將包含該第一資料及該等第一完整性位元之該請求訊息傳輸至該目的地;透過該互連件自該目的地接收一回應訊息;自該回應訊息提取第二完整性位元;基於該等第二完整性位元確認該回應訊息之第二資料之完整性;及回應於確認該回應訊息之該第二資料之該完整性而消耗該回應訊息之該第二資料。 實例2:如由實例之任何者敘述之方法,其中該請求訊息包括具有包括該第一資料之一第一有效負載之一命令訊息;或該回應訊息包括具有包括該第二資料之一第二有效負載之一回應訊息。 實例3:如由實例之任何者敘述之方法,其中產生該等第一完整性位元包括:基於該請求訊息之該第一資料產生錯誤校正碼(ECC)位元;或確認該回應訊息之該第二資料之該完整性包括:解碼該等第二完整性位元作為該請求訊息之該有效負載之ECC位元。 實例4:如由實例之任何者敘述之方法,其中該請求訊息之該等第一完整性位元包括第一ECC位元,且該請求訊息之該等第一ECC位元未由該目的地用於錯誤偵測或錯誤校正;或該回應訊息之該等第二完整性位元包括第二ECC位元,且該回應訊息之該等第二ECC位元未由該主機用於錯誤偵測或錯誤校正。 實例5:如由實例之任何者敘述之方法,其中該回應訊息之第二完整性位元包括由該主機產生之該請求訊息之該等第一完整性位元;或該回應訊息之第二完整性位元包括由該目的地產生之完整性位元。 實例6:如由實例之任何者敘述之方法,其中該目的地包括經組態以將該等第一完整性位元與該請求訊息之該第一資料一起儲存的一記憶體。 實例7:如由實例之任何者敘述之方法,其中該目的地包括一記憶體,該記憶體回應於接收該請求訊息而經組態以:針對該請求訊息之該第一資料產生ECC位元或循環冗餘檢查;及將該等ECC位元或CRC與該請求訊息之該第一資料一起儲存。 實例8:如由實例之任何者敘述之方法,其中該請求訊息之該等第一完整性位元或該回應訊息之該等第二完整性位元包括以下之一者:基於該請求訊息或該回應訊息之該各自資料判定之同位位元;基於該請求訊息或該回應訊息之該各自資料判定之ECC位元;或基於該請求訊息或該回應訊息之該各自資料判定之CRC位元。 實例9:如由實例之任何者敘述之方法,其中:該請求訊息包括該目的地之一位址、包括明文位元之該第一資料,及對應於該請求訊息之該第一資料之該等第一完整性位元;或該回應訊息包括至該主機之一認可、包括明文位元之該第二資料,及對應於回應之該第二資料之該等第二完整性位元。 實例10:如由實例之任何者敘述之方法,其中將該主機耦合至該至少一個目的地之該互連件包括一組構、一匯流排、一鏈路或一或多個通信通道之一者。 實例11:如由實例之任何者敘述之方法,其中將該主機耦合至該至少一個目的地之該互連件係根據一TileLink通信標準來實施。 實例12:如由實例之任何者敘述之方法,其中該回應訊息係一第一回應訊息,該方法進一步包括:透過該互連件自該目的地或該至少一個目的地之另一者接收一第二回應訊息;自該第二回應訊息提取第三完整性位元;未能基於該等第三完整性位元確認該第二回應訊息之第三資料之完整性;及回應於未能確認該第二回應訊息之該第三資料之該完整性而摒棄該第二回應訊息之該第三資料。 實例13:如由實例之任何者敘述之方法,其進一步包括回應於未能確認該第二回應訊息之該第三資料而產生至該系統之該主機或一安全實體之一中斷。 實例14:如由實例之任何者敘述之方法,其進一步包括,回應於未能確認該第二回應訊息之該第三資料而參與包含以下之至少一者之該系統之安全對策:擦除該系統之一或多個記憶體之內容;擦除該系統之一或多個金鑰之加密;重設該系統之一熵產生網路;更改該系統之一安全狀態;或更改該系統之一電源狀態。 實例15:一種包含用於安全通信之電路系統之積體電路,該電路系統包括:一主機,其具有一功能核心;至少一個目的地,其包含一記憶體區塊或一周邊區塊;至少一個互連件,其耦合該主機與該至少一個目的地;及各自介面,其等體現於該主機及該至少一個目的地上,可操作地耦合至該互連件且經組態以執行如實例1至14中任一項之操作。 總結
儘管已用特定於特徵及/或方法之語言描述用於實施安全之全晶片通信之所描述系統及方法的態樣,但如由先前實例之任何者敘述,隨附發明申請專利範圍之標的物不一定限於所描述之特定特徵或方法。實情係,特定特徵及方法被揭示為安全之全晶片通信之例示性實施方案,且其他等效特徵及方法意欲在隨附發明申請專利範圍之範疇內。此外,描述安全之全晶片通信之各種態樣,且應瞭解,各所描述態樣可獨立地或結合一或多個其他所描述態樣來實施。
100:環境 102:裝置 102-1:智慧型電話 102-2:平板電腦 102-3:膝上型電腦 102-4:遊戲控制台 102-5:桌上型電腦 102-6:伺服器電腦 102-7:可穿戴運算器件 102-8:寬頻路由器 104:積體電路 106:處理器 108:電腦可讀媒體(CRM) 110:完整性功能/基於主機之完整性功能 112:器件資料 114:安全電路系統 116:電路組件/電路系統組件 116-1至116-n:電路組件 118:完整性功能/組件完整性檢查功能 120:互連件/組構 122:顯示器 124:收發器 126:輸入/輸出(I/O)埠 128:感測器 200:安全電路系統 202:暫存器檔案(regfile) 204:唯讀記憶體(ROM) 206:靜態隨機存取記憶體(SRAM) 208:快閃記憶體 210:記憶體/警示處置器 212:進階加密標準(AES)單元 214:基於雜湊之訊息鑑認碼(HMAC)引擎 216:串列周邊介面(SPI)器件 218:通用非同步接收器/傳輸器(UART)單元 220:通用輸入/輸出(GPIO)介面 222:接針多工器(mux) 224:墊控制器 226:隨機數產生器(RNG) 228:計時器 230:除錯模組(DM) 232:中斷控制器(ItC) 300:系統組件之組態 301:系統組件之組態 302:主機 304:請求通道/通道A 306:回應通道/通道D 308:功能核心 310:資料儲存器 312:資料介面 314:完整性檢查功能 316:同位/完整性產生功能 318:擾亂功能區塊/擾亂區塊 320:完整性產生功能 322:完整性檢查功能 324:視窗存取/視窗 326:記憶體巨集 328:資料 330:完整性後設資料 332:擾亂功能 334:快閃記憶體巨集 336:資料 338:錯誤校正碼(ECC)位元 400:系統 402:目的地 404:命令完整性產生功能/命令產生/命令產生功能 406:回應完整性檢查功能/回應檢查/回應檢查功能 408:命令完整性檢查功能/命令檢查功能 410:回應完整性產生功能/回應產生功能 500:周邊設備 502:目的地 504:記憶體及先進先出暫存器(FIFO) 506:記憶體及先進先出暫存器(FIFO) 600:記憶體組件 602:記憶體 700:方法 702:產生對目的地之請求訊息/操作 704:產生請求訊息之有效負載之第一完整性位元 706:將第一完整性位元插入於請求訊息中或附加至請求訊息之有效負載之資料或另一欄位 708:透過組構將包含第一完整性位元之請求訊息傳輸至目的地/操作 710:操作/透過組構接收來自目的地之回應訊息 712:自回應訊息提取第二完整性位元 714:基於第二完整性位元確認或驗證回應訊息之有效負載之完整性 716:回應於確認有效負載之完整性而消耗回應訊息之有效負載/操作 800:方法 802:透過組構自主機接收包含完整性位元之請求訊息/操作 804:自請求訊息提取第一完整性位元 806:基於第一同位位元確認請求訊息之有效負載之完整性 808:回應於確認有效負載之完整性而消耗請求訊息之有效負載/操作 810:操作/針對主機判定回應訊息 812:產生回應訊息之有效負載之第二完整性位元 814:將第二完整性位元插入至回應訊息中或附加至回應訊息之有效負載之資料或另一欄位 816:透過組構將包含第二完整性位元之回應訊息傳輸直至主機/操作 900:方法 902:透過組構接收訊息,訊息包含訊息之有效負載之完整性位元 904:解碼有效負載之完整性位元及/或內容以確認訊息之有效負載之完整性/操作 906:操作/回應於確認有效負載之完整性而消耗訊息之有效負載 908:操作/回應於未能確認有效負載之完整性而摒棄有效負載 910:產生中斷或警示以通知系統以未通過的確認 912:啟動對策以防止對系統之資料或資訊之存取 1000:方法 1002:透過組構自主機接收包含完整性位元之命令訊息 1004:解碼命令訊息之完整性位元以確認命令訊息之內容之完整性 1006:針對命令訊息內容之明文資料產生同位位元或編碼ECC位元作為資料之替代完整性位元 1008:擾亂命令訊息內容之明文資料及完整性位元 1012:將經擾亂資料及完整性位元寫入至記憶體 1102:接收包含ECC位元作為完整性後設資料之傳入資料 1104:解碼由i快取區接收之命令訊息之明文及ECC位元 1106:針對明文資料編碼ECC位元 1108:擾亂明文及ECC位元 1110:將經擾亂資料及ECC位元寫入至i快取記憶體 1112:自i快取區讀取經擾亂資料及ECC位元 1114:對自i快取區讀取之經擾亂明文及ECC位元進行解擾 1116:解碼ECC位元以確認明文資料之完整性 1118:針對i快取區之明文資料編碼ECC位元 1120:將明文資料及ECC位元傳輸至主機作為回應訊息 1202:接收包含ECC位元作為完整性資料之傳入資料 1204:解碼由SRAM接收之命令訊息之明文及ECC位元 1206:針對明文資料產生同位位元以寫入至SRAM 1208:在儲存於SRAM中之前擾亂明文資料及同位位元 1210:將經擾亂資料及同位位元寫入至SRAM 1212:自SRAM讀取經擾亂資料及同位位元 1214:SRAM目的地之解擾區塊對自SRAM讀取之經擾亂明文資料及同位位元進行解擾 1216:針對自SRAM讀取之明文資料檢查同位位元 1218:在傳輸至主機之前產生自SRAM讀取之明文資料的ECC位元 1220:透過組構將明文資料及ECC位元傳輸至主機作為回應訊息以完成與主機之資料交易 1300:方法 1302:透過組構自主機接收請求資料之命令訊息 1304:解碼命令訊息之完整性位元以確認命令訊息之內容之完整性 1306:基於命令訊息之位址自記憶體讀取經擾亂資料及完整性位元 1308:對經擾亂資料及完整性位元進行解擾以提供明文資料及對應完整性位元 1310:解碼完整性位元或檢查同位位元以確認自記憶體讀取之明文資料之完整性 1312:針對明文資料編碼ECC位元作為明文資料之替代完整性位元 1314:透過組構將包含明文資料及完整性位元之回應訊息傳輸至主機 1400:方法 1402:透過組構自主機接收請求資料之包含完整性位元之命令訊息 1404:解碼命令訊息之完整性位元以確認命令訊息之內容之完整性 1406:針對命令訊息內容之明文資料計算CRC位元及/或ECC位元 1408:擾亂命令訊息之明文資料以提供經擾亂資料 1410:針對經擾亂資料及CRC位元及/或ECC位元編碼ECC位元 1412:將明文資料之經擾亂資料、CRC位元及/或ECC位元,以及經擾亂資料及CRC位元及/或ECC位元之ECC位元寫入至記憶體 1414:透過組構將資料寫入操作之認可傳輸至主機 1502:接收包含ECC位元作為完整性後設資料之傳入資料 1504:解碼由快閃記憶體接收之命令訊息之明文及ECC位元以確認有效負載資料 1506:計算資料之明文的CRC位元或ECC位元以寫入至快閃記憶體 1508:藉由快閃記憶體單元之擾亂區塊擾亂明文資料 1510:在寫入至快閃記憶體之前對經擾亂資料及CRC/ECC位元進行ECC編碼 1512:將經擾亂資料、CRC/ECC位元及ECC位元寫入至快閃記憶體 1514:自快閃記憶體讀取經擾亂資料、CRC/ECC位元及ECC位元 1516:ECC區塊解碼自快閃記憶體讀取之經擾亂資料、CRC/ECC位元及ECC位元 1518:對自快閃記憶體讀取之明文資料進行解擾 1520:基於明文資料之CRC位元及/或ECC位元來檢查明文資料 1522:針對快閃記憶體回應之明文資料編碼ECC位元 1524:藉由快閃記憶體單元將明文資料及ECC位元傳輸至主機作為回應訊息 1600:方法 1602:透過組構自主機接收請求資料之命令訊息 1604:解碼命令訊息之完整性位元以確認命令訊息之內容之完整性 1606:基於命令訊息之內容自記憶體讀取經擾亂資料、ECC位元及/或CRC位元 1608:解碼ECC位元以檢查資料之經擾亂資料及CRC位元及/或ECC位元 1610:對自記憶體讀取之經擾亂資料進行解擾以提供明文資料 1612:基於明文資料之CRC位元及/或ECC位元來檢查明文資料 1614:針對明文資料編碼ECC位元以使主機能夠確認明文資料之完整性 1616:透過組構將包含明文資料及明文資料之ECC位元的回應訊息傳輸至主機 1700:系統單晶片(SoC) 1702:電子電路系統 1704:記憶體器件 1706:器件應用程式 1708:作業系統 1710:音訊及/或視訊處理系統 1712:音訊系統 1714:顯示系統 1716:媒體資料埠
在整個本發明中參考圖式描述安全之全晶片通信之一或多個態樣之細節。在描述及圖中之不同例項中對相同元件符號之使用指示相同或類似元件: 圖1繪示包含可實施安全之全晶片通信之態樣之裝置的一例示性操作環境; 圖2繪示包含可實施安全之全晶片通信之態樣之一處理器及多個電路組件的一例示性系統; 圖3A及圖3B繪示根據一或多個態樣之實施命令或資料交易之系統組件之一例示性組態; 圖4繪示包含用於實施安全之全晶片通信之態樣之完整性功能的一例示性系統; 圖5繪示包含用於實施安全之全晶片通信之態樣之完整性功能的一例示性目的地; 圖6繪示包含用於實施安全之全晶片通信之態樣之完整性功能的一例示性記憶體組件; 圖7繪示根據一或多個態樣之可由一主機實施之安全之全晶片通信的例示性方法; 圖8繪示根據一或多個態樣之可由一目的地實施之安全之全晶片通信的例示性方法; 圖9繪示根據一或多個態樣之用於在消耗一訊息之一有效負載之前確認該有效負載之完整性的一例示性方法; 圖10繪示根據一或多個態樣之用於將包含完整性位元之一命令訊息之資料寫入至記憶體的一例示性方法; 圖11繪示根據安全之全晶片通信之一或多個態樣之指令快取區資料交易的實例; 圖12繪示根據安全之全晶片通信之一或多個態樣之靜態隨機存取記憶體資料交易的實例; 圖13繪示根據一或多個態樣之用於存取一記憶體之資料及傳輸該資料與完整性位元的一例示性方法; 圖14繪示根據一或多個態樣之用於將一命令訊息之資料與錯誤校正碼位元一起寫入於記憶體中的一例示性方法; 圖15繪示根據安全之全晶片通信之一或多個態樣之快閃記憶體資料交易的實例; 圖16繪示根據一或多個態樣之用於存取一記憶體之一資料及傳輸該資料與經產生完整性位元的一例示性方法;及 圖17繪示可實施安全之全晶片通信之態樣之一例示性系統單晶片。
100:環境
102:裝置
102-1:智慧型電話
102-2:平板電腦
102-3:膝上型電腦
102-4:遊戲控制台
102-5:桌上型電腦
102-6:伺服器電腦
102-7:可穿戴運算器件
102-8:寬頻路由器
104:積體電路
106:處理器
108:電腦可讀媒體(CRM)
112:器件資料
114:安全電路系統
116-1至116-n:電路組件
118:完整性功能/組件完整性檢查功能
120:互連件/組構
122:顯示器
124:收發器
126:輸入/輸出(I/O)埠
128:感測器

Claims (15)

  1. 一種由一系統之一主機實施之用於與由一互連件耦合至該主機之至少一個目的地進行安全通信的方法,該方法包括: 產生對該至少一個目的地之一目的地之一請求訊息; 產生該請求訊息之第一資料之第一完整性位元; 將該等第一完整性位元插入於該請求訊息中; 透過該互連件將包含該第一資料及該等第一完整性位元之該請求訊息傳輸至該目的地; 透過該互連件自該目的地接收一回應訊息; 自該回應訊息提取第二完整性位元; 基於該等第二完整性位元確認該回應訊息之第二資料之完整性;及 回應於確認該回應訊息之該第二資料之該完整性而消耗該回應訊息之該第二資料。
  2. 如請求項1之方法,其中: 該請求訊息包括具有包括該第一資料之一第一有效負載之一命令訊息;或 該回應訊息包括具有包括該第二資料之一第二有效負載之一回應訊息。
  3. 如請求項1之方法,其中: 產生該等第一完整性位元包括:基於該請求訊息之該第一資料產生錯誤校正碼(ECC)位元;或 確認該回應訊息之該第二資料之該完整性包括:解碼該等第二完整性位元作為該請求訊息之該有效負載之ECC位元。
  4. 如請求項3之方法,其中: 該請求訊息之該等第一完整性位元包括第一ECC位元,且該請求訊息之該等第一ECC位元未由該目的地用於錯誤偵測或錯誤校正;或 該回應訊息之該等第二完整性位元包括第二ECC位元,且該回應訊息之該等第二ECC位元未由該主機用於錯誤偵測或錯誤校正。
  5. 如請求項1至4中任一項之方法,其中: 該回應訊息之該第二完整性位元包括由該主機產生之該請求訊息之該等第一完整性位元;或 該回應訊息之該第二完整性位元包括由該目的地產生之完整性位元。
  6. 如請求項1至4中任一項之方法,其中該目的地包括經組態以將該等第一完整性位元與該請求訊息之該第一資料一起儲存之一記憶體。
  7. 如請求項1至4中任一項之方法,其中該目的地包括一記憶體,該記憶體回應於接收該請求訊息而經組態以: 針對該請求訊息之該第一資料產生ECC位元或循環冗餘檢查;及 將該等ECC位元或CRC與該請求訊息之該第一資料一起儲存。
  8. 如請求項1之方法,其中該請求訊息之該等第一完整性位元或該回應訊息之該等第二完整性位元包括以下之一者: 基於該請求訊息或該回應訊息之該各自資料判定之同位位元; 基於該請求訊息或該回應訊息之該各自資料判定之ECC位元;或 基於該請求訊息或該回應訊息之該各自資料判定之CRC位元。
  9. 如請求項1至4中任一項之方法,其中: 該請求訊息包括該目的地之一位址、包括明文位元之該第一資料,及對應於該請求訊息之該第一資料之該等第一完整性位元;或 該回應訊息包括至該主機之一認可、包括明文位元之該第二資料,及對應於回應之該第二資料之該等第二完整性位元。
  10. 如請求項1至4中任一項之方法,其中將該主機耦合至該至少一個目的地之該互連件包括一組構、一匯流排、一鏈路或一或多個通信通道之一者。
  11. 如請求項1至4中任一項之方法,其中將該主機耦合至該至少一個目的地之該互連件係根據一TileLink通信標準來實施。
  12. 如請求項1至4中任一項之方法,其中該回應訊息係一第一回應訊息,該方法進一步包括: 透過該互連件自該目的地或該至少一個目的地之另一者接收一第二回應訊息; 自該第二回應訊息提取第三完整性位元; 未能基於該等第三完整性位元確認該第二回應訊息之第三資料之完整性;及 回應於未能確認該第二回應訊息之該第三資料之該完整性而摒棄該第二回應訊息之該第三資料。
  13. 如請求項12之方法,其進一步包括回應於未能確認該第二回應訊息之該第三資料而產生至該系統之該主機或一安全實體之一中斷。
  14. 如請求項12之方法,其進一步包括,回應於未能確認該第二回應訊息之該第三資料而參與包含以下之至少一者之該系統之安全對策: 擦除該系統之一或多個記憶體之內容; 擦除該系統之一或多個金鑰之加密; 重設該系統之一熵產生網路; 更改該系統之一安全狀態;或 更改該系統之一電源狀態。
  15. 一種包含用於安全通信之電路系統之積體電路,該電路系統包括: 一主機,其具有一功能核心; 至少一個目的地,其包含一記憶體區塊或一周邊區塊; 至少一個互連件,其耦合該主機及該至少一個目的地;及 各自介面,其等體現於該主機及該至少一個目的地上,可操作地耦合至該互連件且經組態以執行如請求項1至14中任一項之操作。
TW111113366A 2021-04-09 2022-04-08 安全之全晶片通信 TWI807766B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163173221P 2021-04-09 2021-04-09
US63/173,221 2021-04-09

Publications (2)

Publication Number Publication Date
TW202240412A true TW202240412A (zh) 2022-10-16
TWI807766B TWI807766B (zh) 2023-07-01

Family

ID=81392698

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111113366A TWI807766B (zh) 2021-04-09 2022-04-08 安全之全晶片通信

Country Status (7)

Country Link
US (1) US20240169098A1 (zh)
EP (1) EP4285264A1 (zh)
JP (1) JP2024513159A (zh)
KR (1) KR20230145167A (zh)
CN (1) CN116982046A (zh)
TW (1) TWI807766B (zh)
WO (1) WO2022217260A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10726162B2 (en) * 2014-12-19 2020-07-28 Intel Corporation Security plugin for a system-on-a-chip platform
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US11743240B2 (en) * 2019-03-08 2023-08-29 Intel Corporation Secure stream protocol for serial interconnect
US11165794B2 (en) * 2019-09-30 2021-11-02 Infineon Technologies Ag Alert system for controller area networks
US20210050941A1 (en) * 2020-07-06 2021-02-18 Intel Corporation Characterizing and margining multi-voltage signal encoding for interconnects
US20210089388A1 (en) * 2020-07-14 2021-03-25 Intel Corporation System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link

Also Published As

Publication number Publication date
TWI807766B (zh) 2023-07-01
JP2024513159A (ja) 2024-03-22
CN116982046A (zh) 2023-10-31
US20240169098A1 (en) 2024-05-23
EP4285264A1 (en) 2023-12-06
WO2022217260A1 (en) 2022-10-13
KR20230145167A (ko) 2023-10-17

Similar Documents

Publication Publication Date Title
KR102113937B1 (ko) 메모리 무결성
US20220292226A1 (en) Peripheral Device Comportability with Security Circuitry
TWI807766B (zh) 安全之全晶片通信
TWI856849B (zh) 安全加密協同處理器
US20240361923A1 (en) Read-Only Memory (ROM) Security
TWI821971B (zh) 安全加密協同處理器
US20240184932A1 (en) Read-Only Memory (ROM) Security
TWI845059B (zh) 執行安全密碼操作之積體電路及方法
US20230177154A1 (en) Sparse Encodings for Control Signals
US20220391540A1 (en) Register File Protection
KR20230145166A (ko) 읽기 전용 메모리(rom) 보안
KR20240121896A (ko) 보안 의사 난수 생성기(prng) 리시딩