[go: up one dir, main page]

TW200949602A - Microprocessor apparatus and method for persistent enablement of a secure execution mode - Google Patents

Microprocessor apparatus and method for persistent enablement of a secure execution mode Download PDF

Info

Publication number
TW200949602A
TW200949602A TW098113866A TW98113866A TW200949602A TW 200949602 A TW200949602 A TW 200949602A TW 098113866 A TW098113866 A TW 098113866A TW 98113866 A TW98113866 A TW 98113866A TW 200949602 A TW200949602 A TW 200949602A
Authority
TW
Taiwan
Prior art keywords
secure
microprocessor
execution mode
security
safe
Prior art date
Application number
TW098113866A
Other languages
Chinese (zh)
Other versions
TWI394060B (en
Inventor
G Glenn Henry
Terry Parks
Original Assignee
Via Tech Inc
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 Via Tech Inc filed Critical Via Tech Inc
Publication of TW200949602A publication Critical patent/TW200949602A/en
Application granted granted Critical
Publication of TWI394060B publication Critical patent/TWI394060B/en

Links

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Microcomputers (AREA)

Abstract

An apparatus providing for a secure execution environment including a microprocessor and a secure non-volatile memory. The microprocessor executes non-secure application programs and a secure application program. The secure application program is executed exclusively within a secure execution mode within the microprocessor. The non-secure application programs are accessed from a system memory via a system bus. The microprocessor has a non-volatile enabled indicator register that is configured to indicate whether the microprocessor is within the secure execution mode or a non-secure execution mode, where contents of the non-volatile enabled indicator register persist through memory is coupled to the microprocessor via a private bus and is configured to store the secure application program, where transactions over the private bus between the microprocessor and the secure non-volatile memory are isolated from the system bus and corresponding system bus resources within the microprocessor.

Description

200949602 六、發明說明: 【發明所屬之技術領域】 本發明係有關於在微電子>§祕击 ^ β ^ ^ < 7域中,特別疋有關於一種 二 女全執行模式的操作,其允許在微處 理器内之安全環境中執行運算石馬。 【先前技術】 ❹ 置直筆記型電腦、以及手持式電腦與通訊裝 f可作為機密或專用資料與數轉控制内容之數位通訊平 ^1腦產業對於這聽置的❹持續地發展新的安全制 度蟲舉例來說,有許多已建立的應用,用以在 免費下載與管理數位聲音盥^ a ”❼響檔案。透過廷些應用,使 用者被,供在歌曲、電視節目以及電影上的有限的權利。 特別注意的是,以上透過使用建立在這些應用中的安 性來保護這些權利,而這些安全特性通常依據其主機平么 所提供之安全機制。 σ ❹ 除了數位内容權利的保護,持續驅動電腦系統安全 的另-因素是實施在主機平台本身的使用限制。目前 知,手機產業已提供特定通訊裝置中所謂的,,隨用 (Pay-as-y。,)”使用。藉由使用此方案,使用者不需^ 付月費,但是需預先給付某通話分鐘數的金額。當用; 話分鐘數時’除了緊急賴料,制者被拒絕存取通 關於通話的手機網路存取。 可 早在2006年,MICROSOFT公司與其合作公司已提供 主要指向新興電腦市場之,,隨用隨付,,個人電腦。在此體希,、 下,透過預付卡的購得,當使用這些公司的電腦時使用者 CNTR2447/ 0608-A41940TWP 4 200949602 % 則給付費用。此外,歸屬於MICROSOFT公司的美國專利 申請案公開編號20060282899,揭露一種用於模組化操作 系統之傳遞的系統與方法,其包括提供主要操作系統支援 的核心功胃b模組或基礎核心,且包括一或多個允許客製化 之操作系統定做的附屬模組。在此應用中,附屬模組可提 供對於電腦(其包括硬體、應用軟體、周邊設備、以及支 援設備)的支援或延伸能力。在設置之前,數位簽章可使 用來確定附屬模組之完整性,且核對證明(certificati〇n)以 〇 判斷附加模組之設置是否經過授權。藉由此證明,服務提 供者可管理對提供之電腦上的非法或非期望修改。此外, 數位權利管理可用來執行與許可配置相配之附屬模組的使 用項目。 並不意外地,目前已發展出技術方法的真正主機,其 提供規避安全措施,而這些安全措施是適當地保護且控制 對權利控制數位媒體、通訊裝置、以及電腦平台的存取。 最近,hacking (進行非法入侵,即駭客)’’變成研究上的 © 課題。事實上,本案發明人已注意到許多用來篡改或完全 地使安全管理無效的作品公開,而這些安全管理係用來防 護受保護資產之存取及/或使用。由Andrew Huang, San200949602 VI. Description of the invention: [Technical field to which the invention pertains] The present invention relates to the operation of a two-woman full execution mode in the field of microelectronics > sniper ^ β ^ ^ < 7 Allows the operation of a stone horse in a secure environment within the microprocessor. [Prior Art] ❹ Straight-note notebooks, handheld computers and communication devices can be used as digital communication for confidential or special-purpose data and digital control content. The brain industry continues to develop new security for this hearing. For example, there are many established applications for downloading and managing digital sounds for free. 档案 a 档案 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 In particular, the above protects these rights through the use of security built into these applications, which are usually based on the security mechanisms provided by their host. σ ❹ In addition to the protection of digital content rights, Another factor driving the security of computer systems is the implementation restrictions imposed on the host platform itself. It is currently known that the mobile phone industry has provided what is called "Pay-as-y." in a particular communication device. By using this scheme, the user does not need to pay a monthly fee, but the amount of minutes of a call must be paid in advance. When used; when the number of minutes is 'in addition to emergency, the maker is denied access to the mobile phone network access to the call. As early as 2006, MICROSOFT and its partner companies have provided mainly to the emerging computer market, with pay-as-you-go, personal computers. In this case, the purchase of prepaid cards, when using the computers of these companies, CNTR2447/ 0608-A41940TWP 4 200949602% is paid for. In addition, U.S. Patent Application Publication No. 20060282899, which is incorporated by reference to the entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire Includes one or more accessory modules customized to allow customized operating systems. In this application, the accessory module provides support or extension capabilities for the computer (which includes hardware, application software, peripherals, and support devices). Prior to setup, the digital signature can be used to determine the integrity of the secondary module and the verification certificate (certificati) can be used to determine if the additional module settings are authorized. This proves that the service provider can manage illegal or undesired modifications to the provided computer. In addition, digital rights management can be used to execute the use of accessory modules that match the license configuration. Not surprisingly, a real host of technical methods has been developed that provides circumvention security measures that appropriately protect and control access to rights control digital media, communication devices, and computer platforms. Recently, hacking (investigating illegal hackers) has become a research topic. In fact, the inventor of the present case has noticed that many works for tampering or completely invalidating security management are used to protect access and/or use of protected assets. By Andrew Huang, San

Francisco: No Starch Press,2003 所提出的著作 Hacking the Xbox: An Introduction to Reverse Engineering 則是上述作品 的一種。此著作特別著重於教導非法入侵技術以克服 MICROSOFT所出產之XBOX遊戲平台的安全機制,且更 提供電腦安全.與反向工程的教導主題,並討論所謂”安全 的”電腦平台的弱點。 CNTR2447/ 0608-A41940TWf/ 5 200949602 % 因此,平台建置者與設計者持續從事在避免未被授權 的平台處理上更有效的技術與機制,不論此存取是良性的 (例如探測或窺察)、惡意的(例如破壞性的或違背權利 的入侵)、或是介於兩者之間(例如篡改)。這些機制中 許多者係用來防止入侵者實際上存取平台,例如將平台放 置在安全底座上(例如一上鎖的金屬圍場)或者將有弱點 的電路封裝入環氧化物内。但是已知這些類型的技術增加 了系統成本與複雜性。其他機制則係利用特定電腦架構本 〇 身提供之安全特性。 考慮已知χ86架構所提供之兩個主要安全特性:分頁 虛擬記憶體(paged virtual memory)以及特許執行(privileged execution)。在分頁虛擬記憶體的情況下,基本的操作系統 定義一個分別的虛擬位置空間以及存取權利(例如只執 行、只讀取)給每一正被執行的應用程式,因此阻止另一 秘密鬼祟的應用程式在所定義的區域内執行’且阻止其修 改資料。但是,由於與虛擬位址譯文相關(即分頁表單) ® 之資料存在於系統記憶體,且其出現於主機微處理器外的 系統匯流排上’因此此資料可輕易地被被窺察且被改變。 在特許執行的情況下,χ86結構提供數種階級的執行特 權CPL0至CPL3。因此,某些系統資源與指令只可由正在 行的應用程式來存取。一般得知操作系 統兀件係操作在最高特權階級CpL〇,以及使用者應用係歸 類於最低特權階級CPL3。但是,熟知此技術領域之人士將 查知^些架構4寺徵主要是發展來阻止軟體錯誤所導致的 系‘機且在防止有意或經指導的侵入(directed hacks) CNTR2447/ 0608-A41940TWf^ 200949602 而言不是非常有效。 ^因此已發展多種方法與裝置,其更仔細地集中防止對 平台之有意侵入與接管。在美國專利編號5615263中, Takahashi教導一種在雙模(此&1 ^^心)處理器中的安全模 式。在般/外部模式中’此雙模處理器執行由外部來源所 提供之扣令。這些指令透過雙模處理器的輸入/輸出來提供 、’°雙模處理器。當接收到專用軟體或硬體發出之中斷時, 此雙模處理器進人安全/内部模式。此中斷是㈣存在雙模 β 處理器中,讀記憶體内的安全功能。根據此接收的中斷, 雙換處理器的輪人/輸出被禁能。此已確認的安全功能係由 雙模處理器來執行。在此安全功能的執行期間,欲插置非 來自,讀„己憶體之指令的任何企圖皆被忽略。然而,雙模 處,器可存取由正在執行之安全功能所特別確認的資料。 田女,功犯之執行完成,則執行一退出程序,以致能雙模 處理器之輸人/輸出’並透過輸人/輸出重新開始執行由雙模 處理器之外部來源所提供之指令。 〇 Takahashi教導此安全模式是用作加密與解密,且其中 雙模處理器處理透過匯流排且由外部控制通道(external controlchannel)處理器所提供之正常指令與資料,其中,此 匯"IL排付合一標準匯流排架構,例如工業標準體系結構 (Industry Standard Architecture,ISA)。此雙模處理器在 非安全模式下開啟,且安全模式透過軟體或硬體發出的中 斷來初始化。在安全模式下,可執行關於加密與解密之有 限數量的功能(即指令)。這些功能儲存在一個唯讀記憶 體中(ROM),其位於雙模處理器之内部。本案之發明人 CNTR2447/ 0608-A41940TWi/ η 200949602 t-Francisco: No Starch Press, 2003 The book Hacking the Xbox: An Introduction to Reverse Engineering is one of the above works. This work is particularly focused on teaching illegal intrusion techniques to overcome the security mechanisms of the XBOX gaming platform produced by MICROSOFT, and provides the subject of computer security and reverse engineering, and discusses the weaknesses of the so-called "safe" computer platform. CNTR2447/ 0608-A41940TWf/ 5 200949602 % Therefore, platform builders and designers continue to engage in more efficient techniques and mechanisms to avoid unauthorized platform processing, whether the access is benign (eg probing or snooping) Malicious (such as destructive or violation of rights) or somewhere in between (such as tampering). Many of these mechanisms are used to prevent an intruder from actually accessing the platform, such as placing the platform on a secure base (such as a locked metal enclosure) or encapsulating a circuit with a weak point into the epoxide. However, these types of technologies are known to increase system cost and complexity. Other mechanisms use the security features provided by the specific computer architecture. Consider the two main security features that are known to be provided by the χ86 architecture: paged virtual memory and privileged execution. In the case of paging virtual memory, the basic operating system defines a separate virtual location space and access rights (eg, only execute, read only) for each application being executed, thus blocking another secret sneaky The application executes 'and prevents it from modifying the data in the defined area. However, since the data associated with the virtual address translation (ie, the pagination form) ® exists in the system memory and it appears on the system bus outside the host microprocessor 'so this data can be easily snooped and change. In the case of privileged execution, the χ86 structure provides several classes of execution privilege CPL0 to CPL3. Therefore, some system resources and instructions can only be accessed by the running application. It is generally known that the operating system components operate at the highest privileged class CpL, and the user application is classified as the lowest privileged class CPL3. However, those skilled in the art will be aware that some of the architectures are primarily developed to prevent software errors and prevent intentional or directed hacks. CNTR2447/ 0608-A41940TWf^ 200949602 It is not very effective. ^ Therefore, a variety of methods and devices have been developed that focus more closely on preventing intentional intrusion and takeover of the platform. In U.S. Patent No. 5,615,263, Takahashi teaches a security mode in a dual mode (this & 1 ^^ heart) processor. In normal/external mode, this dual-mode processor executes the deductions provided by external sources. These instructions are provided by the dual-mode processor's input/output, the '° dual-mode processor. This dual-mode processor enters a secure/internal mode when it receives an interrupt from a dedicated software or hardware. This interrupt is (4) in the presence of a dual-mode beta processor, the security function in the read memory. Based on this received interrupt, the wheel/man output of the dual-replacement processor is disabled. This confirmed security function is performed by a dual mode processor. During the execution of this safety function, any attempt to insert a non-received instruction is ignored. However, at the dual mode, the device can access the data specifically confirmed by the security function being executed. The girl, after the execution of the culprits is completed, performs an exit procedure so that the input/output of the dual-mode processor can be re-started by the input/output to the instructions provided by the external source of the dual-mode processor. Takahashi teaches that this security mode is used for encryption and decryption, and that the dual-mode processor processes the normal instructions and data provided by the external control channel processor through the bus, where the sink "IL is paid A standard bus architecture, such as the Industry Standard Architecture (ISA). This dual-mode processor is turned on in non-secure mode, and the security mode is initialized by an interrupt from software or hardware. In safe mode , a limited number of functions (ie instructions) for encryption and decryption can be performed. These functions are stored in a read-only memory (RO M), which is located inside the dual mode processor. The inventor of the present invention CNTR2447/ 0608-A41940TWi/ η 200949602 t-

注意到’ Takahashi之雙模處理器並不適當,因 ahasM 之雙模處理器只能執行内部R⑽所提供之有限數量的功 包括一般目的指令的應用程式(即在微處理器 之才曰令集中任何的指令)則無法在安全模式下執— 入^國專利編號7顯84中,Ellis〇n揭露^建立安 王環i兄之晶片組,用於一隔離之储存考戶斤 模一存器被至少一處理器來存取 ❹ 或此隔離執行模式下,此至少一處理器具有 、 作。腿_之安全環境係依據一外部晶片、組= 行電路),其提供機制給-處理器以在隔離執行= =。=外部晶片組因此配置一個安全記憶體區域,“理 隔離指令之解碼與轉譯、隔離匯流排週期的& 5 :=。當此外部晶片組主動地隔離記憶體區域: 執订等時,注意到此外部晶片組係透過一 7 ❹ 耦接此至少-處理器,因此在任何安全線程的勃匯流排而 容許在匯流排上的窥察與流量篡改。 的執仃期間内 、在美國專利編號7丨3〇95丨中,Christie揭露 二f制有安全執行模式能力之處理器,此括 數中斷,以使得當其正操作在非安 理器包括複 有安全執行模式能力之處理器。 权式時,中斷此 行模式能力之處理器正操作在一〜入劫=一當此有安全執 數中斷以避免此處理器中斷 式時’禁能複 架境中所期望的安全特性,根據—^丁 透過系統匯流排且由一操作系統所提供之指處理 旦這些指令被提供時,中斷即被禁能。如同m :育^ CNTR2447/0608-A41940TW^ 1S〇n 的機制, 8 200949602 此一裝置明確地可被透過匯流排而提供至處理器的指令來 做匯流排窺察與篡改。 在美國專利編號6983374中,Hashimoto揭露一種抗篡 ❹ 改微處理器,其保存關於其執行將被中斷之一個程式的内 容資訊,其中,此處理器狀態被加密且儲存在系統記憶體。 Hashimoto也教導了自系統記憶體擷取加密指令的技以 及對加密指令進行解密且執行此加密指令之裝置。此外, Hashimoto教導了使用一對應金鑰來提供在記憶體内的加 密指令,且接著使用非對稱金鑰演算法來對儲存在記憶體 内的對稱金鑰加進行加密。對於程式創造者來說,對稱金 錄是已知的’且使用讀取自處理器之公開金瑜來對此對稱 金鑰進行加密。此處理器包括一獨特私密金鑰,其對 公開金瑜’且使用者無法存取。因此,根據分支指令的 行,程式控制被轉移成”起始加密執行,,指令,其傳送一 標至加密對稱金餘。此處理器擷取加密對稱金输日 其内部私密金餘來對其解密。接著,加密程式指令 記憶體被擷取,且藉由使用解密對稱金鑰來被解密,^ 處理器來,行。假使發生中斷或異常,處理器的狀態貝二 稱地被加密且儲存至記憶體。Hashim〇t〇揭露了對於^ 、 密編碼的共通快取機制、中斷邏輯、異常處理邏輯: 本案之發明人已〉主意到,Hashim〇t〇的微處理八 碼者已知對應安全編石馬之對稱金鍮,且對稱金鑰 漏,因此,將具有此編碼之所有系統將有被攻二>4 此外,本案之發明人已注意到,Hashi_ ::。 CNTR2447/ 0608-A41940TWF 孬缺點 9 200949602 «- 在於,必須在擷取指令運作中執行安全編碼之解密,其花 費非常多的時間,因此導致微處理器的處理能力變為缓 慢。此外,注意到,Hashimoto之安全編碼利用現存的非安 全資源,例如系統記憶體、分頁表單、中斷、與異常機制, 這些全部都會遭受到窺察。 因此,本案之發明人暸解,顯然期望提供一種微處理 器,其能在安全執行環境中執行包括一般目的指令(即在 微處理器之指令集中任何的指令)的應用程式或應用線程。 © 此外,同時也期望此安全執行環境係隔離於任何已知 之窺察與篡改方法。因此,需要由一安全執行模式微處理 器來執行指令,且此安全執行模式微處理器隔離於處理器 中提供存取(例如快取窺察、系統匯流排流量、中斷、以 及錯誤與追蹤特徵)之硬體。 此外,更期望當此微處理器載入應用程式並安全執行 時,提供一機制來混淆來自任何現存監控裝置之應用的結 構與内容,且提供一機制來證明此應用的來源且確認其誠 © 實性。 【發明内容】 本發明適用於解決前述問題與對付習知技術之其他問 題、缺點與限制。本發明提供較佳的技術,以在一般目的 微處理器平台上致能安全應用程式之執行。在一實施例 中,揭露一種提供安全執行環境之裝置,其包括微處理器 及安全非揮發記憶體。微處理器執行複數非安全應用程式 , 與一安全應用程式,其中,安全應用程式只在微處理器内 安全執行模式下執行,且這些非安全應用程式透過系統匯 CNTR2447/ 0608-A41940TW 10 200949602 "丨!·排而存取自系統記憶體。 暫存器,用以指示微處理器θ /包括非揮發致能指示 全執行模式。在微處理器之^於安全執行模式或非安 非揮發致能指示暫存器之内容ς 2重新施加的期間, 體透過私密匯流排轉接微處理器,子在。,:,發記憶 ί數流排上微處理器與安全非揮發:;匕用: 對應系統匯流排資源。 ⑽以及微處理器内之複數 本發明之另一實施例描徂# 安全執行環境中執行安:r處理器裝置’用以在 非揮發記憶體以及:::安 r程式。微處理器透過私密匯流 ,,用以執行複數非安全應用程式與一安 二式只ί安全執行模式中執行:二包 匯机排介面早兀、安全非揮發記憶 、 揮發致能指示暫存器。匯流排介單=、以及非 上之禎螌条絲薙治冰-欠 卸早疋實現在糸統匯流排 =數系統匯^排資料傳輸’以存取 !=用;式。安全非揮發記憶體介面單元透= :排來將微處理器輕接至安全非揮發記憶體。在私= =用來存取安全非揮發記憶體之複數私密匯流排資料傳 ==以避免被微處理器内系統匯流排資源以及j 糸統匯流排之任何裝置所得知。非揮發致㈣ Γ微處理11是否處於安全執行模式或非安全執行模式。1 破處理器之電源移除與重新施加的期間,非揮 暫存器之内容持續存在。 心 CNTR2447/ 0608-A41940TW u 200949602 安全在安全執行環境中執行 一— 方法包括.棱供文全非揮發記憶體,以儲存 ::安;藉由在私密匯流排上之複數私密資料傳輪, 士 編碼儲存在安全非揮發記憶體中,其中,私密匯 ❹ ❹ 」排輕接*全非揮發記憶體;初始化微處理器内之安全執 灯模式卩執行安全編碼;將安全執行模式被致能能 =在非揮發致能指示暫存器;以及透過私密匯流排自ς =非揮發記憶體取得安全編碼,以由微處理器來執 密匯流排隔離於微處理器内之所有系統匯流排資源私 在微處理器之外部,且私密匯流排只由微處理器之〜配薏 行邏輯電路所得知及存取。 戈全執 關於產業應用性,本發明可實現於一微處理器 此微處理n係使用於—般目的或特殊目的之 ,1 【實施方式】 衣置。 為使本發明之上述目的、特徵和優點能更明顯 下文特舉-較佳實施例,並配合所關式,作詳it ’ 下。 、< 嗎知 本發明雖以較佳實施例揭露如上,然其並非用r 本發明的範圍,任何所屬技術領域中具有通常知識^限定 不脫離本發明之精神和範圍内,當可做些許的更 在 飾,因此本發明之保護範圍當視後附之申請專利範g與網 定者為準。 戶斤界 鑑於上述關於在一微處理器中應用程式之安全、 地勢行且關於用來防止窥察、侵入、篡改、或駭==障% 技術的背景討論’本發明的討論將透過第丨至圖 規今 CNTR2447/0608-A41940TW 12 Λ 复規。 200949602 參閱第1圖,其表示根據本發明實施例之安全執行模 式(secure execution mode,SEM)微處理器 之示意圖。 此示意圖描述SEM微處理器1〇1配置所在的系統板1〇〇(或 主機板)。此微處理器101透過系統匯流排102耦接一或 多個匯流排主控裝置(bus master)103以及/或者一或多個匯 流排管理裝置(bus agent)104。在一實施例中,SEM微處理 器101為x86相容微處理器101,其透過χ86相容系統匯 流排102耦接一或多個χ86相容匯流排主控裝置103以及/ ❿ 或者一或多個x86相容匯流排管理裝置104。 此外,SEM微處理器101耦接一電池VP,其配置在系 統板(主機板)1〇〇上,且透過連接路徑VP1與VP2來耦接 至微處理器101。在一實施例中,電池VP之電壓為1.8V 直流電壓(DC)。 石英器XI也配置在系統板100上,且透過連接路徑 C1與C1來耦接至微處理器1〇1。微處理器101包括SEM 邏輯電路105。根據本發明之SEM邏輯電路105係配置來 ® 提供在微處理器内一安全執行模式之初始化、操作、以及 終止,將於下文詳細說明。此SEM邏輯電路105包括邏輯、 電路、裝置、或微碼(即微指令或原生指令)、或者是邏 輯、電路、裝置、或微碼的結合、又或者是用來初始化安 全執行模式的等效元件,使得SEM邏輯電路105可載入安 全應用程式來執行、在一安全環境中執行這些應用程式、 為了偵測且阻止篡改而監控一些微處理器與系統特性、在 適當情況下終止安全執行模式、且假使偵測到篡改則暫停 處理。用來執行這些功能與SEM邏輯電路105内其他功能 CNTR2447/ 0608-A41940TW^ 13 200949602 之元件’可共享用來執行微處理器101内其他功能之其他 電路、微碼等等。根據本申請案之範圍,微碼是涉及複數 個微指令的名詞。一微指令(也稱為原生指令)是在一單 元執行所處之層級上的指令。例如,微指令係直接由精簡 指令集運鼻(Reduced Instruction Set Computing,risC) 微處理器來執行。對於複雜指令集運算(c〇mplex Instruction Set Computing,CISC)微處理器(例如 x86 相 容微處理器)而言’ x86指令首先轉譯為相關的微指令, ❹ 且此相關的微指令接著直接由CISC微處理器中一單元或 複數單元來執行。 安全非揮發記憶體107也配置在系統板100上,其透 過私推匯流排(PVT BUS ) 106與内存檢測匯流排(presence detection bus)PSNT來耦接至微處理器10卜根據本發明, 安全非揮發記憶體107為一種經過電源之除去與重新施加 後其内容仍存留之記憶體。即是,當提供至系統板之電源 關閉或開啟時’安全非揮發記憶體1〇7之内容不會改變。 © 在一實施例中,安全非揮發記憶體107包括快閃唯讀記憶 體(ROM) ’其大小相當於將在安全執行模式中執行之安 全應用程式的大小。在一實施例中,考慮以4MB快閃唯讀 記憶體來作為安全非揮發記憶體1〇7。在私密匯流排1〇6 上的資料傳輸(transactions)完全地隔離於系統匯流排 102、匯流排主控裝置1〇3以及匯流排管理裝置1〇4,且私 密匯流排106位於微處理器ιοί之外部。在一實施例中, 快閃唯讀記憶·體107可程式化高達1〇〇〇〇〇次。在一實施例 中,私密匯流排106考慮以一序列匯流排來實現,其提供 CNTR2447/ 0608-A4194011^^ 14 200949602 介於安全非揮發記憶體107與微處理器ιοί之間的資料傳 輸。此私密匯流排106可符合標準界面協定,例如序列周 邊介面(Serial Peripheral Interface,SPI)協定。 在操作上,電池VP與石英器χι提供在SEM邏輯電 路105内實時時鐘(Reai Time c丨〇ck,rTC)(未顯示)之 ❹ ❹ 持續操作,其將於下文詳細說明。包括來自主機結構指令 集之一或多個安全應用程式,係透過系統匯流排1〇2而擷 取自系統s己憶體(未顯示),且儲存在安全非揮發記憶體 107。在一實施例中,使用屬於授權者(auth〇rizingparty)之 -私密非對稱金鑰朗過转稱加密演算規則來加密一或 多個安全顧程式’且安全應餘式以其非對稱加密格式 而被存取自系統記憶體。在一實施例中,考慮透過rsa演 算規則來加密-或多個安全應用程式。在此—或多個安全 應用程式齡自系統記憶體後,微處理器ΚΠ利用-對應 的公開金絲解碼此-或多個安全應用程式並確認此一或 多個安全應用程式。根據安全執行模式的致能以及依據一” 起始安全執行,,指令的執行,SEM邏輯電路 器内的複數加密資源’以根據一對: :器獅密金餘來對此一或多個安全應 吏= 密,此外,腿邏輯電路1〇5透過私密 = 加密的-或多個安全應用程式傳送至安全非揮發= 1〇7。之後,SEM 邏輯電路 二= 數力:或其來對此一或多個 : 微處理器刚内之-安全且隔離的隨機存 二載至 CNTR2447/0608-A41940TW k 肪Λ xvAiVL ; 200949602 或一快取記憶體(未顯示)。 心,錄行指切料全執行模 式),sEM邏輯電路衞禁能安全應用程式得知 糸統資源’而這些系統資源提供了包括非安全ΐ斷、非安 全例外邏輯以及追縱/除錯邏輯電 之輯内部讓的-或多個安全應:= m夕105内的專用安全執行資源來被執 灯此&夕個安全應用程式接著可將處理 操作模式恢復至正常執行模式’或者假使侦測= 微處理器轉換至具有有限的功能= π全地隨Γ生篡改,SEM_電路1G5接著使微處理 器凡全地關機(硬體關機模式)。 關=此-或多個安全蘭程式(或,,安全編們之功 (但不受限於此)執行關鍵安全任務,例如憑 證確忒、資料加密以及資料解密;監控正 確認正常系統軟體之完整性 用人/ , 裝。 延跟#源使用;新軟體的安 矣施例中’在本發明之安全處理系統中考慮使用 吨著式安全_發記憶體 =門陳=英器Xl。這些表面賴元件包 array)元件或焊接在系統板1〇°上 的其他相似技術。 月理器1〇1也執行儲存在系統記憶體内(未 顯不)的非安錢料非安錢肖料的指令透 過系統匯流排1〇2來提供。在本發明之觀念中,微處理器 CNTR2447/0608-A41940TW j 200949602 101 能如中央處理單元(Centralized Processing Unit,CPU) 邊又操作’而不用因應協同處理器(c〇process〇r)的要求。即 是,本發明之微處理器101能執行主機指令集的所有指 令’且能執行全部的應用程式。與只能執行自一主要CPU 轉移之單一指令、程式線程或程式片斷的類似功能協同處 理器與處理器比較起來’本發明之微處理器1〇1直接執行 在對應應用程式中的所有指令,不論此應用程式是否是儲 存安全非揮發記憶體107之安全應用程式或者是透過系統 ❹ 匯流排102擷取之非安全應用程式。 接著參閱第2圖’狀態圖200說明在第1圖之微處理 器中最两階級操作模式。在此最高階級中,微處理器1〇1 提供三個主要操作模式201-203與一個硬體關機模式 2〇4。非安全執行模式2〇1是在微處理器1〇1製造後,當第 一次供給電源時所默認(default)的第一個狀態。非安全執行 模式201也稱為原生未受控(b〇rn行代)”模式π〗。原生 未受控模式201是微處理器1〇1的製造狀態,其提供非安 全應用程式的正常執行,其中,這些非安全應用程式係透 過系=匯流排1〇2而於系統記憶體中存取。在此狀態中, 無法传知且無法操作任何與安全應用程式之安全執行相關 聯之資源。這些資源包括SEM邏輯電路105、安全非揮發 記憶體107以及一些其他專用暫存器,這些專用暫存器包 括含有對稱與非對稱加密金鑰 、安全中斷、安全記憶體 (RAM)以及其他硬體,將於下文詳細㈣。藉由提供原 文控杈式201 ’可實施與非安全微處理器所共通之製 行動類t (type 咖而^加㈣。此夕卜,由於 CNTR2447/ 〇608-A41940TWf/ 17 200949602 原生未受控模式201提供非安全應用程式的執行,因此本 發明,微處理器101之相同的晶粒設計(the same die design) 可實加在非安全微處理器。在一實施例中,非安全微處理 器之接腳配置(pinout)不同於SEM微處理器1〇1,且假 使f安全微處理器配置在安全系統板1〇〇時,非安全微處 理器之SEM邏輯電路105將因電源應用不同而無法操作。 在一實施例中,SEMENABLE(SEM致能)指令之執行導 致微處理器1〇1的模式轉換為安全執行模式2〇2。在安全 © 執行模式202下,安全與非安全應用程式都可執行,但是 非安全應用程式無法存取安全資源。安全執行模式2〇2也 稱為SEM-致能模式2〇2。在一安全應用程式的控制下(簡 稱為程式控制)’微處理器之狀態可轉換回原生未受控模式 201,然而,轉換為原生未受控模式2〇1之次數是有限的。 在一實施例中,處理器轉換回原生未受控模式可高達64 次。在另一實施例中,以可確認的授權者來對特殊 (partlCular)機械專用暫存器(Machine Specific Register, MSR)進行寫入,導致微處理器1〇1之模式轉換為安全執 行模式202。 SEM邏輯電路1〇5監控對應微處理器且與潛在篡改相 關之狀態,並根據這些狀態之一使微處理器自安全執行模 式202轉換至降級(操作)模式2〇3。假使某些已定義之狀態 被SEM邏輯電路105偵測到,微處理器1〇1自動地轉換為 降級模式203。在降級模式2〇3中,允許執行BI〇s指令, 以提供使用者輸入與訊息的顯示的功能,但是更多複雜的 軟體(例如操作系統)的執行則不被允許。在降級模式2〇3 CNTR2447/ 0608-A41940TW 疗 200949602 中,在微處理器101之安全執行模式2〇2的安全編碼操作 被關閉’但是仍允許執行BIOS指令。在一實施例中,BIOS 指令係透過發出一外部中斷與傳遞狀態給該微處理器且經 由-機”專用暫存器來執行^在咖相容的實施 此降級模式203中實施SMI中斷以執 在 這些導致微處理器由安全執行模式 S指令。 式203之已定義狀態可以是執行安全 2轉換為降級模 ❹ ❹ 數硬體偵測狀態、或是安全編碼執行結果的結果、或是複 之結合。此硬體偵測狀態包括與潛在安與硬體偵測狀態 聯的監控狀態。在一實施例中,根據這此暴,或篡改相關 偵測結果,SBM邏輯電路1〇5試圖清除已定義狀態之一 揮發記憶體之一資料區域,且試圖將偵處理器内一安全 非揮發記憶體107。根據該資料區域之忐〜果紀錄至安全 結果之成功紀錄,SEM邏輯電路1〇5將功清除與該偵測 級模式203。此外,執行在降級模式2G3處,器轉換至降 即在-安全應用程式的控制下(簡稱 之安全編碼,亦 器之狀態轉換回安全執行模式202。 式控制)’微處理 某些與配置和完整性確認有關的已〜 處理器1Q1轉換為硬體關模式2G4。^狀態可導致微 據這些已定義狀態之—偵測結果,施例中’根 清除微處理m安全揮發記憶體之輯電路ι〇5試圖 該偵測結果紀錄至安全非揮發記憶體1〇料區域、試圖將 進入至硬體關機模式204。在此硬體關07、且使微處理器 由重置微處理器來退出此硬體關機模式機模式下,只可藉 202或降級模式203中一安全應用程之在安全執行模式 CNTR2447/ 0608-A41940TW 19 徑制下(簡稱為程 200949602 1 式控制),微處理器202可進入硬體關機模式204。 現在參閱第3圖,其表示在本發明實施例之微處理器 300中的SEM邏輯電路301之詳細方塊圖。SEM邏輯電路 301包括授權的公開金鑰暫存器318、處理器金鑰暫存器 312、SEM初始化邏輯電路305、SEM監控邏輯電路306、 SEM中斷邏輯電路307、SEM例外(exception)邏輯電路 308、SEM計時器309、SEM實時時鐘(RTC)310、非揮發 致能指示暫存器328、SEM機械專用暫存器記憶庫(bank) ❹ 329以及安全揮發記憶體302。SEM邏輯電路301耦接在 微處理器300中的一些其他資源,包括透過匯流排326輕 接非安全記憶體325、透過匯流排324耦接位址邏輯電路 323、透過匯流排320耦接亂數產生器319、透過匯流排321 耦接AES/HASH/RSA單元311 '透過匯流排327耦接其他 處理器執行單元313(例如整數單元、浮點單元、MMX/SSE 單元)、耦接正常例外邏輯電路314、耦接正常追蹤/除錯 邏輯電路315、耦接正常中斷邏輯電路316以及電源管理 〇 邏輯電路322。 在一實施例中’由授權者提供公開金鑰,且微處理器 3〇〇之製造期間中’公開金鑰永久地編程在授權的公開金 鑰暫存器318。在一實施例中,此公開金鑰為1〇24位元之 RSA金鑰’且授權的公開金鑰暫存器318包括1〇24位元之 熔絲庫(fuse bank)。因此,此公開金鑰可在微處理器3〇〇 之製造期間被編程,而不是在製造之後。或者,公開金鑰 藉由離線(off-line)大規模的初始化而被編.程至安全非揮 發記憶體107,其中,此離線大規模的初始化是用來編程 CNTR2447/ 0608-A41940TWfi, 200949602 一些安全非揮發記憶體107。致能與初始化安全執行模式 202的能力是非常關鍵的安全操作,且木馬程式(加細 Horse)有可能被安裝(installati〇n)進安全記憔 膨因此’彻提供公開錄的免絲與該來 控制安全執行模式初始化程序。 處理器金鑰暫存器312是複數熔絲的聚集體,其實際 分佈在微處理器晶粒上。這些熔絲係在製造期間以獨特且 隨機產生的狀態組來編程以形成處理器的獨特金錄,其只 ❹可被AES/HASH/RSA單元311(也可稱加密單元311)來讀 取,並無提供自處理器金输暫存器312讀取處理器金錄的 程式介面。在一實施例中,處理器金鑰暫存器312包括128 個熔絲,這些熔絲被編程為128位元的aes (AdvancedNote that ' Takahashi's dual-mode processor is not appropriate, because ahasM's dual-mode processor can only execute a limited number of functions provided by internal R(10), including general purpose instruction applications (ie, in microprocessors). Any order) can not be executed in the safe mode - enter the country patent number 7 84, Ellis〇n exposes ^ establish the An Wang ring i brother's chip set, for a separate storage tester The at least one processor has and operates by being accessed by at least one processor or in the isolated execution mode. The leg_secure environment is based on an external chip, group=row circuit), which provides a mechanism to the processor to perform the isolation ==. = The external chipset is therefore configured with a secure memory area, "Decoding and translation of the isolation instructions, & bus cycle & 5:=. When this external chipset actively isolates the memory area: when ordering, etc. At this point, the external chipset is coupled to the at least-processor through a 7 ,, thus allowing for a sneak peek and traffic tampering on the bus bar in any secure thread's hoistway flow. In 7丨3〇95丨, Christie exposes a processor with a secure execution mode capability, which is interrupted so that when it is operating in a non-processor, it includes a processor with the ability to re-enable the security execution mode. At the time, the processor that interrupts this line mode is operating in a sneak peek = when there is a security stub interrupt to avoid this processor interrupt type, the security features expected in the banned complex are based on -^ The interruption is disabled when the instructions are provided through the system bus and are provided by an operating system. Like m: mechanism of CNTR2447/0608-A41940TW^1S〇n, 8 200949602 A device can be explicitly communicated to the processor via the busbar to make bus sneak peeks and tampering. In U.S. Patent No. 6,983,374, Hashimoto discloses a tamper-resistant microprocessor that saves its execution on its The content information of a program interrupted, wherein the processor state is encrypted and stored in system memory. Hashimoto also teaches techniques for extracting encrypted instructions from system memory and means for decrypting encrypted instructions and executing the encrypted instructions. In addition, Hashimoto teaches the use of a corresponding key to provide encryption instructions in memory, and then uses an asymmetric key algorithm to encrypt the symmetric key stored in memory. For the creator of the program Said that the symmetrical gold record is known 'and uses the public gold read from the processor to encrypt this symmetric key. This processor includes a unique private key, which is open to the public and the user can not Access. Therefore, according to the line of the branch instruction, the program control is transferred to "initial encryption execution, instruction, which transmits a label to plus Symmetrical Jinyu. The processor retrieves the encrypted symmetrical gold and decrypts its internal private money. Then, the encryption program instruction memory is retrieved and decrypted by using the decryption symmetric key. In the event of an interruption or anomaly, the state of the processor is cryptographically encrypted and stored in memory. Hashim〇t〇 exposes the common cache mechanism for ^, dense coding, interrupt logic, exception handling logic: The inventor of this case has been conscious of the fact that Hashim〇t〇's micro-processing eight-code is known to correspond to the safety of the stone horse. The symmetry of the gold cymbal, and the symmetrical key is leaked, therefore, all systems with this code will have to be attacked. > In addition, the inventor of this case has noticed that Hashi_::. CNTR2447/ 0608-A41940TWF 孬 Disadvantages 9 200949602 «- It is necessary to perform the decryption of the secure code in the operation of the capture instruction, which takes a lot of time, thus causing the processing power of the microprocessor to become slow. In addition, it is noted that Hashimoto's secure coding takes advantage of existing non-secure resources such as system memory, paging forms, interrupts, and exception mechanisms, all of which are subject to snooping. Accordingly, the inventors of the present invention understand that it is apparent that it is desirable to provide a microprocessor capable of executing an application or application thread including a general purpose instruction (i.e., any instruction in a microprocessor's instruction set) in a secure execution environment. © In addition, it is also expected that this safe execution environment will be isolated from any known methods of snagging and tampering. Therefore, instructions need to be executed by a secure execution mode microprocessor, and the secure execution mode microprocessor is isolated from the processor to provide access (eg, cache view, system bus flow, interrupt, and error and trace features). ) The hardware. In addition, it is more desirable to provide a mechanism to confuse the structure and content of an application from any existing monitoring device when the microprocessor loads the application and executes it securely, and provides a mechanism to prove the source of the application and confirm its integrity. Reality. SUMMARY OF THE INVENTION The present invention is applicable to solving the aforementioned problems and other problems, disadvantages and limitations of the conventional techniques. The present invention provides a preferred technique for enabling the execution of a secure application on a general purpose microprocessor platform. In one embodiment, an apparatus for providing a secure execution environment is disclosed that includes a microprocessor and secure non-volatile memory. The microprocessor executes a plurality of non-secure applications, and a secure application, wherein the secure applications are executed only in the secure execution mode of the microprocessor, and the non-secure applications are connected through the system CNTR2447/0608-A41940TW 10 200949602 &quot ;丨!· Access to system memory. A register to indicate that the microprocessor θ / includes a non-volatile enable indicator in full execution mode. During the safe execution mode of the microprocessor or the non-volatile non-volatile indication indicating the contents of the register ς 2 re-applied, the body transfers the microprocessor through the private bus. , :, send memory ί number of stream on the microprocessor and safe non-volatile:; use: corresponding system bus resources. (10) and the plural in the microprocessor. Another embodiment of the present invention describes the execution of the security processor in the security execution environment: the r processor device is used in the non-volatile memory and the ::: program. The microprocessor communicates through private convergence to execute multiple non-secure applications and execute in a secure mode: two packets of interface, early, secure non-volatile memory, volatilization enable register . The bus bar is single =, and the non-top wire is used to control the ice - the unloading is realized in the 汇 汇 = = = = = = = = = = = = = = = = = = = = = = = = = Safe Non-volatile Memory Interface Unit Transparency = : Discharge the microprocessor to safe non-volatile memory. In private = = multiple private bus data used to access secure non-volatile memory == to avoid being known by any device in the microprocessor system bus and the bus. Non-volatile (4) Γ Microprocessing 11 is in safe execution mode or non-safe execution mode. 1 During the power-removal and re-application of the broken processor, the contents of the non-volatile register persist. Heart CNTR2447/ 0608-A41940TW u 200949602 Security is implemented in a secure execution environment - the method consists of arranging all non-volatile memory for storage: : security; by means of a private data transmission on the private bus, The code is stored in a secure non-volatile memory, in which the private sink ❹ 排 轻 轻 全 全 全 全 全 全 ; ; ; ; 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化 初始化= in the non-volatile enable indicator register; and through the private bus from the ς = non-volatile memory to obtain a secure code, the microprocessor to the bus to isolate all the system bus resources in the microprocessor Outside the microprocessor, and the private bus is only known and accessed by the microprocessor's logic.戈全执 Regarding industrial applicability, the present invention can be implemented in a microprocessor. This micro-processing is used for general purpose or special purpose, 1 [Embodiment] Clothing. The above described objects, features and advantages of the present invention will become more apparent from the description of the appended claims. The present invention is disclosed in the above preferred embodiments, but it is not intended to limit the scope of the invention, and the scope of the invention is not limited by the spirit and scope of the invention. Further, the scope of protection of the present invention is subject to the patent application and the network. In view of the above-mentioned background regarding the security, topography and application of techniques for preventing snooping, intrusion, tampering, or 骇== % 在一 in a microprocessor, the discussion of the present invention will be through Dijon. To the figure, CNTR2447/0608-A41940TW 12 Λ Re-regulation. 200949602 Referring to Figure 1, there is shown a schematic diagram of a secure execution mode (SEM) microprocessor in accordance with an embodiment of the present invention. This schematic depicts the system board 1 (or motherboard) where the SEM microprocessor 101 is configured. The microprocessor 101 is coupled through system bus 102 to one or more bus masters 103 and/or one or more bus agents 104. In one embodiment, the SEM microprocessor 101 is an x86 compatible microprocessor 101 coupled via a χ86 compatible system bus 102 to one or more χ86 compatible bus masters 103 and/or one or A plurality of x86 compatible bus management devices 104. In addition, the SEM microprocessor 101 is coupled to a battery VP which is disposed on the system board (main board) 1B and coupled to the microprocessor 101 via connection paths VP1 and VP2. In one embodiment, the voltage of the battery VP is 1.8V DC voltage (DC). The quartz XI is also disposed on the system board 100 and coupled to the microprocessor 110 through the connection paths C1 and C1. Microprocessor 101 includes SEM logic circuitry 105. The SEM logic circuit 105 in accordance with the present invention is configured to provide initialization, operation, and termination of a secure execution mode within the microprocessor, as will be described in more detail below. The SEM logic circuit 105 includes logic, circuitry, devices, or microcode (ie, microinstructions or native instructions), or a combination of logic, circuitry, devices, or microcode, or equivalent to initialize a secure execution mode. The components enable the SEM logic circuit 105 to load a secure application to execute, execute the applications in a secure environment, monitor some microprocessor and system characteristics in order to detect and prevent tampering, and terminate the secure execution mode if appropriate If the tampering is detected, the processing is suspended. The functions used to perform these functions with other functions in the SEM logic circuit 105 can be shared with other circuits, microcodes, etc., for performing other functions within the microprocessor 101. Microcode is a noun that refers to a plurality of microinstructions in accordance with the scope of the present application. A microinstruction (also known as a native instruction) is an instruction at the level at which a unit executes. For example, microinstructions are executed directly by a Reduced Instruction Set Computing (risC) microprocessor. For a complex instruction set computing (CISC) microprocessor (such as an x86-compatible microprocessor), the x86 instruction is first translated into the associated microinstruction, and the associated microinstruction is then directly A unit or a plurality of units in a CISC microprocessor are executed. The secure non-volatile memory 107 is also disposed on the system board 100, which is coupled to the microprocessor 10 via a private push bus (PVT BUS) 106 and a memory detection bus PSNT. According to the present invention, security The non-volatile memory 107 is a memory whose contents remain after removal and re-application of the power source. That is, the contents of the secure non-volatile memory 1〇7 are not changed when the power supplied to the system board is turned off or on. © In one embodiment, the secure non-volatile memory 107 includes flash read only memory (ROM) 'the size of which is equivalent to the size of the secure application to be executed in the secure execution mode. In one embodiment, consider a 4MB flash read-only memory as the secure non-volatile memory 1〇7. The data transactions on the private bus 〇6 are completely isolated from the system bus 102, the bus master 1〇3, and the bus management device 〇4, and the private bus 106 is located at the microprocessor ιοί. External. In one embodiment, the flash read only memory body 107 can be programmed up to 1 time. In one embodiment, the private bus 106 is contemplated to be implemented in a sequence of busses that provide CNTR2447/0608-A4194011^^ 14 200949602 data transfer between the secure non-volatile memory 107 and the microprocessor ιοί. This private bus 106 can conform to standard interface protocols, such as the Serial Peripheral Interface (SPI) protocol. In operation, battery VP and quartz 提供 provide continuous operation of the real time clock (Reai Time c丨〇ck, rTC) (not shown) in SEM logic circuit 105, which will be described in detail below. One or more secure applications, including one from the host architecture instruction set, are retrieved from the system s memory (not shown) through the system bus 〇2 and stored in the secure non-volatile memory 107. In one embodiment, one or more security schemes are encrypted using a private asymmetric key that belongs to the auth〇rizing party, and the security scheme is encrypted in its asymmetric encryption format. It is accessed from system memory. In one embodiment, it is contemplated to encrypt - or multiple secure applications via rsa algorithm rules. After this, or after multiple secure applications are ageed from the system memory, the microprocessor decodes the one or more secure applications with the corresponding public gold wire and confirms the one or more secure applications. According to the enabling of the security execution mode and according to a "initial security execution, the execution of the instruction, the complex cryptographic resources in the SEM logic circuit" to one or more security according to a pair: Should be 吏 = dense, in addition, the leg logic circuit 1〇5 is transmitted to the secure non-volatile = 1〇7 through private = encrypted - or multiple security applications. After that, the SEM logic circuit 2 = number force: or it comes to One or more: The microprocessor is just inside - the safe and isolated random memory is loaded to CNTR2447/0608-A41940TW k fat xvAiVL; 200949602 or a cache memory (not shown). Full execution mode), sEM logic circuit security application can learn about the resources of the system and these system resources provide internal non-security, non-security exception logic and tracking/debug logic. Or multiple security should be: = dedicated security execution resources within m 夕 105 to be lighted this & security application can then restore the processing mode to normal execution mode 'or if the detection = microprocessor switch to Have The function = π all the way with the tampering, SEM_ circuit 1G5 then make the microprocessor all shut down (hardware shutdown mode). Off = this - or multiple security programs (or, security editors (but not limited to this) perform critical security tasks such as credential verification, data encryption, and data decryption; monitoring is confirming the integrity of normal system software users/, installation. Extension with #源使用; new software installation In the example of the safety treatment system of the present invention, it is considered to use the type of safety _ hair memory = door CHAN = england Xl. These surface elements are assembled or other similar techniques welded on the system board 1 〇 ° The processor 1〇1 also executes instructions stored in the system memory (not shown), which are stored in the system memory (not shown) through the system bus bar 1〇2. In the concept of the present invention, micro The processor CNTR2447/0608-A41940TW j 200949602 101 can operate as a central processing unit (CPU) without the requirement of a coprocessor (c〇process〇r). That is, the micro processing of the present invention 101 can execute the host finger All instructions of the set 'and can execute all applications. Similar to the function of a single instruction, program thread or program fragment that can only be transferred from a main CPU. The processor is compared with the processor. 1〇1 directly executes all instructions in the corresponding application, whether the application is a secure application that stores secure non-volatile memory 107 or a non-secure application that is retrieved through the system bus. 102. 2 Figure 'State diagram 200 illustrates the most two-stage mode of operation in the microprocessor of Figure 1. In this highest class, the microprocessor 101 provides three main operating modes 201-203 and a hardware shutdown mode 2〇4. The non-secure execution mode 2〇1 is the default state of the default when the first power is supplied after the microprocessor 101 is manufactured. The non-secure execution mode 201 is also referred to as a native uncontrolled (b〇rn generation) mode π. The native uncontrolled mode 201 is the manufacturing state of the microprocessor 1.1, which provides normal execution of non-secure applications. Among them, these non-secure applications are accessed in the system memory through the system = bus 1. In this state, any resources associated with the secure execution of the secure application cannot be communicated and cannot be operated. These resources include SEM logic circuit 105, secure non-volatile memory 107, and some other special registers including symmetrical and asymmetric cryptographic keys, secure interrupts, secure memory (RAM), and other hardware. It will be detailed below in (4). By providing the original control type 201', the action type t (common to the non-secure microprocessor can be implemented) (this is due to the CNTR2447/ 〇608-A41940TWf) / 17 200949602 Native uncontrolled mode 201 provides for the execution of non-secure applications, so the same die design of microprocessor 101 can be added to non-secure Processor. In one embodiment, the pinout of the non-secure microprocessor is different from the SEM microprocessor 1.1, and if the f-safe microprocessor is configured on the security system board, it is not secure. The SEM logic circuit 105 of the microprocessor will be inoperable due to different power supply applications. In one embodiment, execution of the SEMENABLE instruction causes the mode of the microprocessor 101 to transition to the safe execution mode 2〇2. Both Secure and Non-secure applications are executable under Security© Execution Mode 202, but non-secure applications cannot access secure resources. Secure Execution Mode 2〇2 is also known as SEM-Enable Mode 2〇2. Under the control of the application (referred to as program control), the state of the microprocessor can be converted back to the native uncontrolled mode 201, however, the number of conversions to the native uncontrolled mode 2〇1 is limited. In an embodiment The processor can be converted back to the native uncontrolled mode up to 64. In another embodiment, the special (partlCular) Machine Specific Register (MSR) is written with a identifiable licensor. The mode of the microprocessor 101 is converted to the secure execution mode 202. The SEM logic circuit 1〇5 monitors the state of the corresponding microprocessor and is associated with potential tampering, and causes the microprocessor to self-safely execute the mode 202 based on one of these states. Switching to the degraded (operating) mode 2〇3. If some of the defined states are detected by the SEM logic circuit 105, the microprocessor 101 is automatically converted to the degraded mode 203. In the degraded mode 2〇3, The BI〇s instruction is executed to provide the user input and display of the message, but the execution of more complex software such as the operating system is not allowed. In the degraded mode 2〇3 CNTR2447/0608-A41940TW treatment 200949602, the secure encoding operation in the secure execution mode 2〇2 of the microprocessor 101 is turned off' but the BIOS instruction is still allowed to execute. In one embodiment, the BIOS instructions are executed by issuing an external interrupt and transfer status to the microprocessor and executing via the "machine" dedicated register to implement the SMI interrupt in the implementation of the downgrade mode 203. These result in the microprocessor being executed by the safe execution mode S. The defined state of the equation 203 may be the result of performing the security 2 conversion to the degraded mode, the hardware detection state, or the result of the security coding execution, or the complex The hardware detection state includes a monitoring state associated with the potential security and hardware detection state. In an embodiment, according to the storm, or tampering with the detection result, the SBM logic circuit 1〇5 attempts to clear the Defining one of the states volatilizes one of the data areas of the memory and attempts to place a secure non-volatile memory 107 in the processor. SEM logic circuit 1〇5 will be based on the success of the data area to the safety record. The power is cleared and the detection level mode 203. In addition, in the degraded mode 2G3, the device is switched to the drop-down control under the control of the security application (referred to as the security code, the state of the device) Switch back to safe execution mode 202. Control) 'Micro-processing some of the configuration and integrity confirmation related to the processor 1Q1 converted to hardware off mode 2G4. ^ Status can cause the micro-data to these defined states - detection As a result, in the example, the circuit of the root cleaning micro-processing m safe volatile memory ι〇5 attempts to record the detection result to the safe non-volatile memory 1 data area, and attempts to enter the hardware shutdown mode 204. The hardware is turned off 07, and the microprocessor is reset by the reset microprocessor to exit the hardware shutdown mode mode, and can only borrow 202 or degrade the mode 203 in a safe application in the safe execution mode CNTR2447 / 0608-A41940TW Under the radial system (referred to as process 200949602 type 1 control), the microprocessor 202 can enter the hardware shutdown mode 204. Referring now to Figure 3, the SEM logic circuit 301 in the microprocessor 300 of the embodiment of the present invention is shown. Detailed block diagram. SEM logic circuit 301 includes authorized public key register 318, processor key register 312, SEM initialization logic circuit 305, SEM monitoring logic circuit 306, SEM interrupt logic circuit 307, SEM exception logic 308, SEM timer 309, SEM real time clock (RTC) 310, non-volatile enable indicator register 328, SEM machine dedicated scratchpad bank 329 and secure volatile memory 302. The SEM logic circuit 301 is coupled to some other resources in the microprocessor 300, including: connecting the non-secure memory 325 through the bus bar 326, coupling the address logic circuit 323 through the bus bar 324, and coupling through the bus bar 320. The random number generator 319 is coupled to the AES/HASH/RSA unit 311 through the bus bar 321 and coupled to the other processor execution unit 313 (for example, an integer unit, a floating point unit, an MMX/SSE unit) through the bus bar 327, and is normally coupled. The exception logic circuit 314 is coupled to the normal tracking/debug logic circuit 315, the normal interrupt logic circuit 316, and the power management logic circuit 322. In one embodiment, the public key is provided by the licensor and the 'public key' during the manufacturing period of the microprocessor is permanently programmed in the authorized public key register 318. In one embodiment, the public key is a 24-bit RSA key' and the authorized public key register 318 includes a 1-24-bit fuse bank. Thus, this public key can be programmed during manufacture of the microprocessor 3, rather than after manufacture. Alternatively, the public key is programmed to secure non-volatile memory 107 by off-line large-scale initialization, wherein this offline large-scale initialization is used to program CNTR2447/0608-A41940TWfi, 200949602. Safe non-volatile memory 107. The ability to enable and initialize the secure execution mode 202 is a very critical security operation, and the Trojan horse (the finer Horse) may be installed (installed) into the security record so that the publicly available wire is not provided. To control the safe execution mode initialization program. The processor key register 312 is an aggregate of complex fuses that are actually distributed over the microprocessor die. These fuses are programmed during the manufacturing process in a unique and randomly generated set of states to form a unique record of the processor that can only be read by the AES/HASH/RSA unit 311 (also referred to as the encryption unit 311). There is no program interface for reading the processor record from the processor gold register 312. In one embodiment, processor key register 312 includes 128 fuses that are programmed as 128-bit aes (Advanced

Encryption Standard ’ AES)金鑰,而使用此aEs金鑰來對 安全非揮發記憶體1〇7之内容進行加密與解密。即是,使 用此處理器對稱金鑰來對安全編碼進行加密,以儲存在安 全非揮發記憶體中。依據透過私密匯流排 106來對安全編 碼的掘取,來自處理器金鑰暫存器312之金鑰被使用來對 安全編碼進行解密以進—步執行。因此,私密匯流排1〇6 之狀態的觀察者無法決定何者正在微處理器3〇〇與非揮發 記憶體107之間轉移。 在一實施例中’處理器金鑰暫存器312包括128熔絲, 其隨機地分佈在微處理器3〇〇中一熔絲庫内的許多其他熔 絲之中。此熔絲庫配置在微處理器晶粒上一些金屬層的下 方。. 根據SEMENABLE指令之執行或其他進入安全執行模 CNTR2447/ 0608-A41940TW& 91 200949602 式202轉換至原生未受控模式2〇1時,SEM初始化邏輯電 路3〇5將微處理If 3〇〇t狀態(安全執行模式被致能之狀態) 式202的預期機制,SEM初始化邏輯電路305提供安全執 行模式202之初始化。為了詳細說明,下文將以用來致能 且執行來自安全執行模式202的指令(例如SEMENABLE) 執行的方式來說明根據本發明之微處理器3〇〇之操作,然 而此技術領域之人士將理解有其他方法能致能安全執行 模式202並執行來自安全執行模式之安全編碼,例如對一 隱密暫存器(hidden register)寫入等等。根據SEMenable 指令之執行成功’SEM初始化邏輯電路305將微處理器3〇〇 ❹ 之狀態記錄在非揮發致能指示暫存器328。由安全執行模 記錄在非揮發致能指示暫存器328。亦即,非揮發致能指 不暫存器328用以指示微處理器·是否處於安全執行模 式或-非安全執行模式。在微處理器之電源移除與重新施 加的期間’非揮發致能指*暫存II 328之内容持續存在。 在一實施例中,非揮發致能指示暫存器328包括配置在微 處理器300内之複數熔絲,且微處理器·可由安全The Encryption Standard 'AES) key is used to encrypt and decrypt the contents of the secure non-volatile memory 1〇7. That is, the processor symmetric key is used to encrypt the secure code for storage in secure non-volatile memory. The security key from the processor key register 312 is used to decrypt the secure code for further execution based on the security coded through the private bus 106. Therefore, the observer of the state of the private bus 1 无法 6 cannot decide which is transferring between the microprocessor 3 and the non-volatile memory 107. In one embodiment, the processor key register 312 includes 128 fuses that are randomly distributed among a number of other fuses within a fuse bank in the microprocessor 3. This fuse bank is placed below some of the metal layers on the microprocessor die. The SEM initialization logic circuit 3〇5 will micro-process the If 3〇〇t state according to the execution of the SEMENABLE instruction or other entry safety execution mode CNTR2447/0608-A41940TW& 91 200949602 when the conversion to the native uncontrolled mode 2〇1 (State in which the secure execution mode is enabled) The expected mechanism of Equation 202, SEM initialization logic 305 provides initialization of the secure execution mode 202. For purposes of illustration, the operation of the microprocessor 3 in accordance with the present invention will be described below in a manner that is used to enable and execute instructions from the secure execution mode 202 (e.g., SEMENABLE), although those skilled in the art will understand There are other ways to enable secure execution mode 202 and perform secure encoding from a secure execution mode, such as writing to a hidden register. The SEM initialization logic 305 records the state of the microprocessor 3 在 在 in the non-volatile enable indication register 328 in accordance with the successful execution of the SEMENABLE instruction. Recorded in the non-volatile enable indicator register 328 by the secure execution mode. That is, the non-volatile enable means that the non-volatile memory 328 is used to indicate whether the microprocessor is in a safe execution mode or a non-secure execution mode. During the power-removal and re-application of the microprocessor, the contents of the non-volatile enabler* temporary storage II 328 persist. In one embodiment, the non-volatile enable indicating register 328 includes a plurality of fuses disposed within the microprocessor 300, and the microprocessor can be secured

CNTR2447/ 0608-A41940TW 沒 模式搬轉換至原生未受控模式201 #次數係對應在這些 熔絲中的-特定料數量^微處理器獅包括配置在一單 曰曰粒上之-單-積體電路。在一實施例中,sem邏 路根據進人至該安全執行模式而對非揮發致能指示暫存器 .安全執行模 行模式而對非揮發致 以才日不出微處理||處 22 200949602 SEM監控邏輯電路306係用來監控安全編碼與資料的 誠實性’以監控系統的環境與物理屬性,包括溫度、電壓、 匯流排頻率、電池VP的存在、石英器χ1的存在以及安全 非揮發記憶體107的存在。SEM監控邏輯電路306將篡改 或疑似的篡改情況指示給SEM邏輯電路3〇1,其導致微處 理器300轉換至降級模式203或硬體關機模式204。 SEM中斷邏輯電路307提供複數中斷與相關的中斷邏 輯裝置(例如安全中斷描述符號表單(InterruptDescript〇r ❹ Table,IDT)),這些只顯現給正在安全執行模式2〇2下 全執行模式時,S: ❹ ,SEM中斷邏輯電路3〇7提供安全中斷以中CNTR2447/ 0608-A41940TW No mode transfer to native uncontrolled mode 201 #Number corresponds to the number of specific materials in these fuses ^Microprocessor lion includes a single-single body configured on a single particle Circuit. In an embodiment, the sem logic circuit indicates the non-volatile enablement register according to the entry into the safe execution mode. The mode is safely executed and the non-volatile is not processed until the day is processed ||22 22 SEM monitoring logic 306 is used to monitor the security of the security code and data 'to monitor the environmental and physical properties of the system, including temperature, voltage, bus frequency, the presence of battery VP, the presence of quartz χ 1 and safe non-volatile memory The presence of body 107. The SEM monitoring logic 306 indicates tampering or suspected tampering to the SEM logic circuit 〇1, which causes the microprocessor 300 to transition to the degraded mode 203 or the hardware shutdown mode 204. The SEM interrupt logic circuit 307 provides complex interrupts and associated interrupt logic devices (eg, InterruptDescripts ❹ Tables, IDTs), which are only presented to the full execution mode in the safe execution mode 2〇2, S : ❹ , SEM interrupt logic circuit 3〇7 provides a safe interrupt in the middle

執行的安全應用程式,且由此安全應用程式來存取。中斷 安全編碼執行的機制類似於執行正常模式的機制。亦即, 依據SEM巾斷的設置(asserti〇n),且藉由SEMmT的出現 使得安全編碼狀態被保存並轉移至安全中斷管理者(酿代 nterrupt handler)。由中斷指令的恢復(如㈣執行將控制權 恢復至安全編碼中的中斷點^當微處理器正操作在安 200949602 其只顯現給正在安全執行模式202下執行的安全應用程 式,且由此安全應用程式來存取。所有安全編碼程式例外 與中斷係利用預設的IDT,此預設10丁存在於SEM中斷邏 輯電路307内,以在中斷與例外期間内控制分支。在一實 施例中根據該等安全例外之一者的致能,微處理器之狀 〜被儲存且程式控制轉移至一對應安全例外管理者,其中 $處理H之狀態無法被該等非安全應用程式所存取。在安 t應用程式執行之前,SEM邏輯電路301禁能正常例外邏 輯電路314 ’以及當微處理器300正操作在非安全執行模 式時’正常例外邏輯電路314提供對應該等非安全應用短The executed secure application, and thus accessed by the secure application. Interrupt The mechanism for secure code execution is similar to the mechanism for performing normal mode. That is, according to the setting of the SEM towel, and by the appearance of SEMmT, the security coding state is saved and transferred to the security interrupt manager. Recovery by an interrupt instruction (eg, (4) execution restores control to a breakpoint in the secure code^ when the microprocessor is operating at Ann 200949602, it only appears to the secure application being executed under secure execution mode 202, and thus secure The application accesses. All secure codec exceptions and interrupts utilize a preset IDT, which is present in the SEM interrupt logic 307 to control the branch during the interrupt and exception periods. In an embodiment, The enabling of one of the security exceptions, the state of the microprocessor ~ is stored and the program control is transferred to a corresponding security exception manager, where the state of the processing H cannot be accessed by the non-secure application. Before the application is executed, the SEM logic circuit 301 disables the normal exception logic circuit 314' and when the microprocessor 300 is operating in the non-secure execution mode, the normal exception logic circuit 314 provides a short response to non-safe applications.

式之複數非安全例外。在一實施例中,假使在該等SI 應用程式之任-者執行的期間發生該等安全中斷之任一者 或之任一者’微處理器之狀 理器300進入安全勃耔捃彳 芾仔且微處 © 導致ΪΠΐΙ:係配置來提供微處理器3〇。外部事件所 導致的私式控制轉移’例如鍵盤事件、I/O埠事件等蓉— 全例外是絲提供微處理器·㈣事件所導 : 制轉移,例如非定義的運算碼、機 (maChlne check errors>、以及在一實施例中對個一 賴專用暫衫記憶庫329的安全編碼寫入。= 數t全暫存态’其被載入複數指標,而這些指標 安全編碼中的安全中斷管理者與安全例外心曰β exception 。IDT提供轉移至該安全應^^ 數安全中斷管理者與複數安全例外 之= 預設餅包括關於程式控制轉移至該微處理器^制的此 CNTO2447/0608-A41940TW^ „ 研订的一 200949602 200949602The plural is not a security exception. In one embodiment, any one or both of the security interrupts may occur during the execution of any of the SI applications. Awkward and slightly caused by ΪΠΐΙ: is configured to provide a microprocessor 3 〇. Private control transfer caused by external events 'such as keyboard events, I / O 埠 events, etc. - all exceptions are provided by the microprocessor · (d) events: system transfer, such as undefined opcodes, machines (maChlne check Errors>, and in one embodiment, a secure coded write to a dedicated scratchpad memory 329. = number t full temporary state 'which is loaded with complex indicators, and security interrupt management in these indicator security codes And security exceptions exceptionβ exception. IDT provides a transfer to the security should be the number of security interrupt managers and complex security exceptions = the default pie includes the program control transfer to the microprocessor ^ CNTO2447 / 0608 - A41940TW^ „ Researched a 200949602 200949602

SEM計時器309是只顯現給正行在安全執行模式2犯 下執行的安全應用程式且由此安全應用程式來存取的複數 計時器。SEM計時器3〇9包括複數中斷,而這些中斷可由 操作在女全執行模式2〇2下之安全編碼來存取。實時 =31〇其提供持續時間(persistent㈣,其只顯現給正 在女全執行模式202下執行的安全應用程式且由此安全應 存取實時時鐘31〇的值無法由不同於操作 在女王執仃模式202下的安全編碼的任The SEM timer 309 is a plurality of timers that are only presented to the secure application that is executing in the secure execution mode 2 and thus accessed by the secure application. The SEM timer 3〇9 includes complex interrupts that can be accessed by the secure code operating in female full execution mode 2〇2. Real-time = 31 〇 its duration (four), which only appears to the security application being executed under the female full execution mode 202 and thus the value of the real-time clock should be accessed by the security cannot be different from the operation in the Queen's stub mode Security code under 202

安全執行模式重置操作的資料。在一實施例中,根據該等 安全中斷之—者的致能,該微處理器之狀態被儲存且程式 控制轉移至一對應安全中斷管理者,以及該微處理器之狀 態無法由該等非安全應用程式來存取。在一實施例中,根 據該等非安全中斷之一者的致能,該微處理器之狀態被儲 存且程式控制轉移至一對應非安全中斷管理者,以及該微 處理器之狀態無法由該等非安全應用程式來存取。 SEM機械專用暫存器記憶庫329包括複數機械= = ^暫存11只顯現給正在安全執行模式皿 ^纽安全㈣料轉取。這政 子器用來致能對安全非揮發記憶體 實時^鐘31〇以及SEM計時器3〇9之载入/儲存存取。 非安全記憶體325係作為給 式的指令與資料快取記慢體π订之非女全應用転 安全記憶趙切用_η咖她油)。非 器來執行。在微處理應用程式以由微處理 排資源可得知且存取非安入二二私式與其他系統匯流 啊彻。·麵。而非女王錢體325。安全揮發記憶體 200949602 302係作為給正在安全執行 — 式的一指令與資料快 、工 下執行之安全應用程 安全揮發記憶體3〇2、之二:體。進入至安全執行模式202, 嶋3。3,其用於對應該來儲存處理 器之狀態的儲存與取回 ^王應用私式之該微處理 φ ❹ 係提供來儲存安全編媽3〇:之其他堆疊 且其完全地隔離於系=理=置而被清除, 輯電路323内的Γ常Λ入令是參考位址邏 吊月'^又暫存器(normal segment =Stt此正常片段暫存器是當於安全揮發記憶體3〇2(而 不疋正吊糸統記憶體)進入至安全執行時而被初始化。此 正常系統記憶體也被執行在安全執行模式之安全編碼,透 過位址邏輯電路323且使用正常載人與儲存指令來存取。 然而,根據安全編碼的執行,SEM邏輯電路3〇1透過匯流 排324來命令位址邏輯電路323以停止虛擬位址轉譯。亦 即,因為虛擬-實體位址轉譯係為了指令與資料而被禁能, 因此,透過匯流排324且由安全編碼所提供之位址必須為 實體位址。藉由這種作法,SEM邏輯電路阻止了分頁錯誤, 藉以消除此篡改來源。 在一實施例中,安全揮發記憶體302完全地屬於在微 處理器300内的晶片上(on-chip )快取記憶體,但安全揮 CNTR2447/ 0608-A41940TWf/ 26 200949602 發記憶體302快取線具有將這些快取線完全地隔離於微處 理器匯流排的特定内部屬性。這些快取線沒有耦接至外= 系統記憶體,因此這些快取線無法自系統記憶體裝載戋存 入至系統記憶體,這些快取線也無法被任何匯流窥探^源 來外部地或内部地窺察。 在一實施例中,安全揮發記憶體3〇2包括4K 64位元 快取線。在安全揮發記憶體302中’一快取線係依據由= 資料移動至先前沒有涉及(referenced)之一快取線來分配。 ❹在一實施例中,安全揮發記憶體302包括具有4〇96個位置 之一 64位元快取記憶體,該等位置之每—者包括一内部屬 性,且該内部屬性完全地隔離該等位置之每一者。 在另-實施例中,安全揮發記憶體3〇2包括隨機存取 記憶體,其與微處理器300内之晶片上快取記憶體分離。 SEMENTER指令之執行提供了安全執行模式地内 全編碼的執行。在一 x86相容之實施例中,安全執行模 202根據修改的32位元x86真實模式來提供安全編^的^ 醫 行。在執行安全編碼時,禁止由安全執行模式2〇2進入— x86保護模式。在安全執行模式執行之前,sem初始 輯電路305藉由設置一致能信號⑽江來禁能正“ ^ 安全)中斷邏輯電路316。在安全執行模式執行之前,犯 初始化邏輯電路305也藉由設置-致能信號⑽肛來“ 正常(即非安全)例外邏輯電路314,也 W相'田5又置一致能 信號DISDL來禁能正常(即非安全)追縱/除錯邏輯 315。此外,在安全執打模式執行之前,電源管理邏 322藉由信號DISPML的設置而被禁能。透過這些安全 CNTR2447/ 0608-A41940TWfi, 27 9 200949602 施,不會發生正常匯流排中斷’阻止了除錯例外、避免匯 流排追蹤週期、且禁能除錯輸出入埠 =綠安全編碼的執行期_禁能所有的剩餘處理器資 諸二如JTAG探测模式、快取測試)。否則,電源管理 邏輯電路322允許微處理器3〇〇進入降低功耗狀態,例如 在86相谷實施例中的p狀態與c狀態。因此,信號〇聊见 係用來在安全編碼執行期間避免功耗狀態的轉換。Information on the safe execution mode reset operation. In one embodiment, based on the enabling of the safety interrupts, the state of the microprocessor is stored and the program control is transferred to a corresponding safety interrupt manager, and the state of the microprocessor cannot be caused by the non- Secure application to access. In one embodiment, the state of the microprocessor is stored and the program control is transferred to a corresponding non-secure interrupt manager based on the enabling of one of the non-secure interrupts, and the state of the microprocessor cannot be Wait for non-secure applications to access. The SEM machine-specific scratchpad memory 329 includes a plurality of mechanical == ^ temporary deposits 11 only appearing to the safe execution mode mode ^ New security (four) material transfer. This controller is used to enable load/store access to the secure non-volatile memory in real time and SEM timer 3〇9. The non-secure memory 325 is used as a command and data cache for the instruction type. The non-female full application is used for the safety of the memory. Non-device to execute. In the micro-processing application, it can be known by the micro-processing resources and access non-animated private and other systems. ·surface. Not the Queen's money body 325. Safe Volatile Memory 200949602 302 is a safe application for fast execution and safe execution of a command and data that is being safely executed. Safe Volatile Memory 3〇2, 2: Body. Going to the secure execution mode 202, 嶋3.3, which is used to store and retrieve the state of the processor to store the processor. The micro-processing φ is provided to store the security code. The other stacks are completely isolated from the system and are cleared. The normal intrusion order in the circuit 323 is the reference address and the register is saved. (normal segment = Stt. This normal fragment is temporarily stored. The device is initialized when the safe volatilization memory 3〇2 (not the tethered memory) enters into safe execution. This normal system memory is also executed in the secure execution mode of the secure code, through the address The logic circuit 323 is accessed using normal manned and stored instructions. However, based on the execution of the secure code, the SEM logic circuit 3.1 commands the address logic circuit 323 through the bus bar 324 to stop virtual address translation. Since the virtual-physical address translation is disabled for instructions and data, the address provided through the bus 324 and provided by the secure code must be a physical address. By doing so, the SEM logic blocks the paging. Wrong, In this embodiment, the secure volatilization memory 302 is completely owned by the on-chip cache memory in the microprocessor 300, but the security is CNTR2447/0608-A41940TWf/ 26 200949602. The memory 302 cache line has specific internal properties that completely isolate these cache lines from the microprocessor bus. These cache lines are not coupled to the external = system memory, so these cache lines cannot be self-memory The body loading buffers are stored in the system memory, and these cache lines cannot be externally or internally viewed by any of the sinking sources. In one embodiment, the secure volatile memory 3〇2 includes 4K 64-bit fast. In the secure volatilization memory 302, a cache line is assigned by moving from the = data to one of the previously unreferenced cache lines. In one embodiment, the secure volatilization memory 302 includes One of the 96 locations of the 64-bit cache memory, each of which includes an internal attribute, and the internal attribute completely isolates each of the locations. In another embodiment, security Volatile Memory 3〇2 includes random access memory that is separate from the cache memory on the wafer within microprocessor 300. The execution of the SEMENTER instruction provides full execution of the code in a secure execution mode. In the example, the secure execution mode 202 provides a secure edit according to the modified 32-bit x86 real mode. When performing secure coding, it is prohibited to enter the x86 protected mode by the secure execution mode 2〇2. In the secure execution mode. Before execution, the sem initial circuit 305 disables the positive "^ security" interrupt logic circuit 316 by setting the coincidence energy signal (10). Prior to execution of the secure execution mode, the priming logic 305 also disables the normal (i.e., non-secure) exception logic 314 by setting the enable signal (10), and also disables the phase 5 and the uniform signal DISDL. Normal (ie, non-secure) tracking/debug logic 315. In addition, power management logic 322 is disabled by the setting of the signal DISPML before the security mode is executed. Through these security CNTR2447/ 0608-A41940TWfi, 27 9 200949602 Shi, there will be no normal bus interruptions 'blocking exceptions, avoiding bus tracking cycles, and disabling debug output 埠 = green security code execution period _ disable all remaining processor resources JTAG detection mode, cache test). Otherwise, power management logic 322 allows the microprocessor 3 to enter a reduced power state, such as the p state and the c state in the 86 phase valley embodiment. Used to avoid conversion of power state during secure code execution.

透過匯流排320、321及327,安全編碼可存取處理器 執行單元(處理器300内的執行單元)313、亂數產生器319 與AES/HASH/RSA單it 3Π,以執行微處理指令集的所 有指令,其中,這些指令包括真實亂數之硬體產生且可由 編程的巨集才曰令來使用的硬體實施功能,以執行rsa加 密、解密以及識別核對;AES加密與解密、以及 =A-l/SHA-256 雜湊產生(Secure Hash Algorithm,SHA, 安全雜湊演算法)。這些硬體實施功能係由Through the bus bars 320, 321, and 327, the secure code can access the processor execution unit (execution unit in the processor 300) 313, the random number generator 319, and the AES/HASH/RSA single it to execute the microprocessor instruction set. All of the instructions, including the hardware implementation of the real random number and can be used by the programmed macro to perform rsa encryption, decryption, and identification check; AES encryption and decryption, and = Al/SHA-256 Secure Hash Algorithm (SHA, Secure Hash Algorithm). These hardware implementation functions are

AES/HASH/RSA 單元311來執行。The AES/HASH/RSA unit 311 is executed.

現在參閱第4圖,圖示400表示在本發明之微處理器 内t全編碼如何被儲存、存取及初始化。圖示4〇〇說明能 進行女全執行模式(SEM)之微處理器4〇1,其透過系統 匯流排425而耦接BIOS記憶體410與系統記憶體420。根 據本發明’微處理器401也透過私密匯流排431而耦接至 安全非揮發記憶體430。微處理器401包括安全編碼介面 邏輯電路402’其耦接至亂數產生器412、處理器金鑰暫存 器413、授權的公開金鑰暫存器404、AES/HASH/RSA單 405 (或稱加密單元4〇5)、安全揮發記憶體4〇6、SEM CNTR2447/ 0608-A41940TW^ 200949602 監控邏輯電路傾以及SEM初始化邏輯電路彻。安全編 碼介面邏輯電路402另外叙接匯流排介面單元彻 非揮發記憶體介面單元407。 〃 圖示棚也表示儲存在系統記憶體420與㈣S記憶體 之安全編碼411及421。在一實施例中,儲存在刪 δ己憶體410之安全編碼411主要是用來提供微處理器楊 在降級模式2〇3中的操作,而儲存在系統記憶體之安 全編碼42i是用來提供微處理器在安全執行模式2〇2 © 中的操作。 在操作上,圖不400所示之元件的運作,實質上相似 於先刖參閱第1-3圖而已敘述之相似名稱元件。參閱第4 圖之討論目的是為了更加明確集中注意在那些元件斑技 術,而那些元件與技術是用來儲存、存取、初始化、執行 在本發明之安全環境中的安全編碼。 此外,關於安全編碼執行的環境是隔離於非安全編碼 執行的環境。如先前所述,原生未受控模式2〇1只允許非 女全編碼的執行。安全執行模式則允許非安全編碼與安全 編碼兩者的執行。在安全編碼421執行之前,微處理器401 之狀態被保存。根據回到非安全編碼的執行的轉換,此狀 態恢復(restored)。此狀態儲存在安全揮發記憶體4〇6内的 一個區域’且此狀態不會出現在微處理器匯流排425上。 此外,安全編碼411、421是執行自安全揮發記憶體406。 除了將安全揮發記憶體406隔離於與微處理器匯流排425 聯繫之硬體與軟體’所有其他”從屬通道(side phannels),,(例 如除錯例外與執行追蹤特徵)被禁能,如關於第1_3圖之 CNTR2447/ 0608-A41940TW公 200949602 討論。安全編碼411、421只提供給SEM中斷邏輯電路3〇7、 SEM例外邏輯電路308、SEM實時時鐘310、SEM計時器 310以及只可由安全編碼411、421利用的其他處理器資源 獨佔存取。 此外’微處理器401提供SEM監控邏輯電路408,i 包括之非同步監控與監視機制,其中,此非同步監控與監 視機制獨立於安全編碼411、421以及非安全編竭的執行。 SEM監控邏輯電路408監控微處理器的環境(例如電壓、 ❹ 溫度、匯流排運作)與物理特性,也核對安全編碼4^、 421(安全應用程式)與相關資料之誠實性,將於下文詳細說 明。當偵測到安全暴露(security exposure)時,SEM監控邏 輯電路408可透過匯流排CHK將程式控制轉移至安全編碼 411、421之安全編碼錯誤管理裝置(secure_e〇de erw handler),或者,在偵測到嚴重的安全暴露情況下,SEM監 控邏輯電路408將透過匯流排CHK來使微處理器4〇1進^ 降級模式203。 ® 在一實施例中,安全編碼介面邏輯電路402監控存在 於安全編碼411、421中的複數指令,且透過匯流排ms 將這些指令提供至SEM監控邏輯電路4〇8,以支援微處理 器401之限定的指令集架構(Instructi〇nset , ISA)操作。根據此實施例,當微處理器4〇ι正操作在安全 執行模式時’本發明之微處理器4〇1只被允許執行主機isa 中的某些指令。即是,限定的ISA操作使得随邏輯電路 阻止,複數非安全指令的執行,而此非安全指令的執行是授 權者欲阻止的’且該些非安全指令包括取自對應微處理器 CNTR2447/ 0608-A41940TWfy 200949602 之一指令集架構的一或多個運算碼。舉例來説,在x86相 容之實施例中’超過100個微指令的產生與執行的指令或 某類指令要求會被阻止。另一方面,當微處理器401正操 作在安全執行模式時,一授權者可能期望阻土所有指令的 執行’例如任務切換、呼尋閘(call gates)等等。藉由將安全 編碼411、421内每一指令提供給SEM監控邏輯電路408, 本發明之微處理器401致能限定的ISA操作。在一實施例 ❹ 〇 中,在限定的ISA指令集中的指令(即提供在安全執行模 式下執行的指令),係由SEM監控邏輯電路408内指令陣 列(未顯示)之值來表示,將於下文詳細說明。當遭遇到 上述被阻止的指令時,SEM監控邏輯電路4〇8使微處理器 401進入降級模式203。 ° 在一實施例中,安全編碼介面邏輯電路4〇2將安全編 碼4U、421中的指令提供給SEM監控邏輯電路4〇8,提 供時將安全編碼411、421載入至安全揮發記憶體概以進 行後續執行。 —入Ϊ能與初始化安全執行模式搬的能力是非常關鍵的 ^㈣’此外’其表示了 g於木馬程式叫㈣。㈣安 能進入至包含安全編碼411、421的記憶體41〇、42〇 加密演算法與一組對應的非對稱加密 明之微處理器401藉由控制安全執行模 ίΐίΐ 地阻止此暴露。在-實施例中,非對 姐腦位元心:與=:==所 此授權者或授權物件(enti魏供執 川 CNTR2447/0608-A41940TWfy 叉王獮碼 411 200949602 421。如剧文關於第3圖 間,兩金錄中之一者儲卢^ ’在微處理11 401之製造期 且用來根據非對稱金鑰演::的公開金鑰暫存器318 ’ 角异法來對資料解密,其中,此資Referring now to Figure 4, an illustration 400 illustrates how full encoding can be stored, accessed, and initialized within the microprocessor of the present invention. Figure 4 illustrates a microprocessor 4〇1 capable of performing a female full execution mode (SEM) coupled to the BIOS memory 410 and the system memory 420 via the system bus 425. According to the present invention, the microprocessor 401 is also coupled to the secure non-volatile memory 430 via the private bus 431. The microprocessor 401 includes a secure encoding interface logic circuit 402' coupled to the random number generator 412, the processor key register 413, the authorized public key register 404, the AES/HASH/RSA single 405 (or Weighing unit 4〇5), safe volatilization memory 4〇6, SEM CNTR2447/ 0608-A41940TW^ 200949602 Monitoring logic circuit and SEM initialization logic circuit. The secure code interface logic circuit 402 additionally interfaces the bus interface unit to the non-volatile memory interface unit 407.图示 The shed also indicates the security codes 411 and 421 stored in the system memory 420 and (4) S memory. In an embodiment, the security code 411 stored in the deleted memory 410 is mainly used to provide the operation of the microprocessor Yang in the degraded mode 2〇3, and the security code 42i stored in the system memory is used to Provides operation of the microprocessor in safe execution mode 2〇2 ©. In operation, the operation of the elements illustrated in Figure 400 is substantially similar to the similarly named elements previously described with reference to Figures 1-3. The purpose of the discussion with reference to Figure 4 is to provide a clearer focus on those component stencil techniques that are used to store, access, initialize, and execute the secure code in the secure environment of the present invention. In addition, the environment in which secure coding is performed is isolated from the environment in which non-secure coding is performed. As previously stated, the native uncontrolled mode 2〇1 only allows the execution of non-female full encoding. The secure execution mode allows the execution of both non-secure coding and secure coding. The state of the microprocessor 401 is saved before the security code 421 is executed. This state is restored based on the conversion back to the execution of the non-secure code. This state is stored in an area within the secure volatile memory 4〇6 and this state does not appear on the microprocessor bus 425. In addition, the security codes 411, 421 are executed from the secure volatilization memory 406. In addition to isolating the secure volatile memory 406 from the hardware and software 'all other' side phannels associated with the microprocessor bus 425, (eg, debug exceptions and execution tracking features) are disabled, such as The CNR2447/0608-A41940TW public 200949602 is discussed in Fig. 1_3. The security codes 411, 421 are only provided to the SEM interrupt logic circuit 3〇7, the SEM exception logic circuit 308, the SEM real time clock 310, the SEM timer 310, and only the security code 411. The other processor resources utilized by 421 are exclusively accessed. Further, the microprocessor 401 provides SEM monitoring logic 408, i including an asynchronous monitoring and monitoring mechanism, wherein the asynchronous monitoring and monitoring mechanism is independent of the security code 411, 421 and non-secure execution. SEM monitoring logic 408 monitors the environment of the microprocessor (eg voltage, ❹ temperature, bus operation) and physical characteristics, and also checks the security code 4^, 421 (security application) and related The honesty of the data will be described in detail below. When security exposure is detected, the SEM monitoring logic 408 is transparent. The bus CHK transfers the program control to the secure coded error management device (secure_e〇de erw handler) of the security code 411, 421, or the SEM monitor logic circuit 408 will pass through the bus bar CHK when a serious security exposure is detected. The microprocessor 4 is stepped into the degraded mode 203. In one embodiment, the secure encoding interface logic circuit 402 monitors the plurality of instructions present in the security codes 411, 421 and provides these instructions to the bus via ms. The SEM monitors the logic circuit 4〇8 to support the instruction set architecture (Instructi〇set, ISA) operation defined by the microprocessor 401. According to this embodiment, when the microprocessor 4 is operating in the secure execution mode, The inventive microprocessor 〇1 is only allowed to execute certain instructions in the host isa. That is, the defined ISA operation causes the execution of the plurality of non-secure instructions to be blocked by the logic circuit, and the execution of the non-secure instruction is the licensor The non-secure instructions to be blocked include one or more opcodes taken from one of the instruction sets of the corresponding microprocessor CNTR2447/0608-A41940TWfy 200949602. In the x86-compatible embodiment, the generation or execution of more than 100 microinstructions or certain types of instruction requirements will be blocked. On the other hand, when the microprocessor 401 is operating in the secure execution mode, The licensor may desire to block the execution of all instructions 'eg task switching, call gates, etc. By providing each instruction in the security codes 411, 421 to the SEM monitoring logic 408, the microprocessor of the present invention The 401 enables a defined ISA operation. In an embodiment, the instructions in the defined ISA instruction set (ie, the instructions that are executed in the secure execution mode) are represented by the value of the instruction array (not shown) in the SEM monitoring logic circuit 408, and will be Detailed description below. The SEM monitor logic 4〇8 causes the microprocessor 401 to enter the degraded mode 203 when encountering the above blocked instructions. In one embodiment, the secure encoding interface logic circuit 4〇2 provides instructions in the security code 4U, 421 to the SEM monitoring logic circuit 4〇8, and when loaded, loads the security codes 411, 421 into a secure volatile memory profile. For subsequent execution. The ability to move in and initialize the safe execution mode is critical. (4) 'In addition' it indicates that the g-trojan program is called (four). (4) The security enters the memory 41〇, 42〇 containing the security codes 411, 421. The encryption algorithm and a corresponding set of asymmetrically encrypted microprocessors 401 prevent this exposure by controlling the security execution module. In the embodiment, the non-sister brain bit heart: and =:== the authorizer or authorized object (enti Wei chuanchuan CNTR2447/0608-A41940TWfy fork king 狝 code 411 200949602 421. Between the three pictures, one of the two gold records is stored in the manufacturing process of the micro-processing 11 401 and used to decrypt the data according to the asymmetric key 318' of the asymmetric key:: , among them, this capital

因:,在-音'非對稱金鑰(即私密金鑰)來加密。 π八f ^施例中,此操作系統執行SEMENABLE 二密二- 。此指令傳送透過授權者之私密金鑰 β Ο 荖透靜參數。安全編碼介面邏輯電路402接 ®二二 1金㈣存11404來存取公開金錄,且利 ASH/RSA單元405來對此SEM致能參數解密。 根據核對SEM致能參數,酬初始化邏輯電路柳初始 ,安全執行模式2G2,亦即致能安全執行模式搬以執行 女王應用程式除此之外,SEM勒始化邏輯電路4⑽指示 微處理H 401自SEMENABLE彳旨令恢復(她fn)後,微處理 T 4〇1 f、持在非安全執行模式2〇1。在-實施例中,無論 疋否接又進入安全執行模式2〇2的授權(以及有—對應錯誤 狀態時,假使有的話)都會提供一回應編碼(論rn⑺㈣。 相對於在微處理器401之製造期間將授權的公開金鑰 直接編程至授權的公開金鑰暫存器4〇4,在另一實施例中, 授權者將授權的公開金鑰編程至安全非揮發記憶體43〇之 授權的公開金鑰區域432。因此,當微處理器4〇1開機 (power up)時,安全非揮發記憶體介面單元4〇7自此區域 432偵測並擷取此公開金鑰。安全編碼介面邏輯電路4⑽ 接著將此金錄以及之後指示此金输已被燒錄之參數,燒錄 至授權的公開·金鑰暫存器404 ^此供選擇的實施例在安全 非揮發記憶體430的製造階段上,提供了更彈性地公開金 CNTR2447/ 〇60S-A4l940IWC, 32 200949602 二配二Γ王非揮發記憶體介面單元4。7透過私密匯流排 I311處理$4G1_至安全非揮發記㈣其中, 私=匯机排431上用來存取安全非揮發記憶體剔之複 數私㈣流排資料傳輸被隱藏’以避免被微處理器樹内 匯流排資源以及輕接該系統匯流排之任何裝置所 得知察覺" 安全非揮發記憶體介面單 ^ „ 早疋407疋由安全編碼介面邏Because: the - tone 'asymmetric key (ie private key) is encrypted. In the π eight f ^ example, this operating system performs SEMENABLE two-different--. This command transmits the secret key through the licensor's private key β Ο 荖. The secure encoding interface logic circuit 402 is connected to the 222/4 gold (4) memory 11404 to access the public record, and the ASH/RSA unit 405 decrypts the SEM enablement parameter. According to the verification of the SEM enablement parameter, the initial logic circuit is initialized, the safe execution mode 2G2, that is, the safe execution mode is enabled to execute the queen application. In addition, the SEM initialization logic circuit 4 (10) indicates the microprocessor H 401 After the SEMENABLE command is restored (her fn), the microprocessor T 4〇1 f is held in the non-secure execution mode 2〇1. In the embodiment, the authorization of the security execution mode 2〇2 (and if there is a corresponding error state, if any) is provided with a response code (on rn(7)(4). The authorized public key is programmed directly into the authorized public key register 4〇4 during manufacture, and in another embodiment, the authorized person programs the authorized public key to the secure non-volatile memory 43 The public key area 432. Therefore, when the microprocessor 4〇1 is powered up, the secure non-volatile memory interface unit 4〇7 detects and retrieves the public key from this area 432. The secure coding interface The logic circuit 4 (10) then burns the gold record and the parameters indicating that the gold output has been programmed, to the authorized public key register 404. This alternative embodiment is in the manufacture of the secure non-volatile memory 430. At the stage, a more flexible disclosure of gold CNTR2447/〇60S-A4l940IWC, 32 200949602 two with two non-volatile memory interface units 4. 7 through the private bus I311 processing $4G1_ to safe non-volatile (4), Private = fair The 431 is used to access the secure non-volatile memory. The complex private (four) stream data transmission is concealed to avoid being detected by any device in the microprocessor tree and the device that is connected to the system bus. Non-volatile memory interface single ^ „ 疋 疋 疋 疋 safely coded interface logic

輯電路402所管理。根據核對一議致能參數,安全非揮 發記憶體介面單元彻藉由執行亂數寫入來清除安全非^ 發記憶體430的内容。在_眚& ^隹實施例中,在安全非揮發記愫 體430中的每一個位置以亂數耷 ’ 且a亂默舄入64次。在一實施例中, 母次寫入之亂數是由亂數產生器412所產生。 SEMENABLE指令(歧SEM致能機制)也傳送關於 安全編碼411、421在BIOS記憶體410或系統記憶體42〇 之位置的指標和任何初始安全資料(亦即致能參數)。此指 標與資料(亦即致能參數)是根據一預設結構來被格式化, 且根據非對稱金錄演算法而被加密。被加密的指標與資料 被解密,且格式化被核對。不成功的核對導致錯誤碼的回 應。 假使在結構方面此指標與資料被確認且證實,安全編 碼介面邏輯電路402則指示匯流排介面單元403去自 §己憶體410以及/或系統記憶體420摘取安全編碼411及 421。安全編碼411、421也已藉由使用授權者的私密金输 並根據非對稱金錄演算法而被加密,且必須與預設結構相 稱。安全編碼介面邏輯電路402利用授權的公開金鑰暫存 CNTR2447/ 0608-A41940TWf/ 33 200949602 器404與AES/HASH/RSA單元405來對加密的安全編碼 411、421進行解雄、。在核對為正確格式後,安全編碼介面 邏輯單元402利用AES/HASH/RSA單元405來根據對稱加 密演算法並使用處理器金鑰暫存器413之内容(作為對稱 金錄)來對安全編碼與資料進行加密。如前所提及,處理 器金鑰暫存器413之内容是微處理器4〇1所特有的128位 元隨機產生的金鑰,且對稱加密演算法包括使用128位元 模塊(blocks)以及電子密碼書(Electronic Code Book,ECB ) © 模式的高級加密標準(AES)。此對稱加密的安全編碼接 著透過安全非揮發記憶體介面單元4〇7而被寫入至安全非 揮發δ己憶體43 0。此外,安全編碼介面邏輯電路402利用 AES/HASH/RSA單元405與處理器金鑰暫存器413來產生 安全編碼中已選擇部分之複數雜湊,安全編碼介面邏輯電 路402對這些雜湊進行加密編碼並寫入至安全非揮發記憶 體430。在一實施例中,這些雜湊是根據sHAq演算法而 產生。 此外,SEM初始化邏輯電路4〇9禁能JTAG、探測模 式、快取測試、或者禁能透過第3圖所討論機 安全編碼監視的其他處理器特性。 當被編碼且被雜湊之安全編碼已寫入至安全非揮發呓 憶體430,微處理器401設定非揮發致能指示暫存器(如 第3圖中328所示)指示出處理器4〇1正操作於安全執行 模式202且SEM初始化邏輯電路409迫使微處理器4〇1執 行一重置序列(RESET se.quence)。 部分的重置序列導致非揮發致能指示暫存器的内容被 CNTR2447/ 0608-A41940TWf/ -ιλ 200949602 ❹ ❹ 讀取’且假使這些内容指示出處理器401處於安全執行模 式2〇2中,則執行安全執行模式2〇2所特有的額外操作。、 因此,安全編碼411、421起初被加密,且由授權者載 入至記憶體410、420。當安全·執行模式被致能時,微處理 器4〇1根據非對稱金鑰演算法並使用授權者所提供之金鑰 來擷取且核對安全編碼。接著使用處理器獨特金鑰並根據 對稱金鑰演算法來加密且雜湊此編碼,且對稱加密之編碼 透過私密匯流# 431而被寫入至安全非揮發記憶體43〇。‘’·、 从Γ肝進一步詳細說明,當安全編碼將被執行時,安 全編碼由安全非揮發記憶體介面單元407自安全非揮發記 憶體430被擷取,且使用存放於處理器金鑰暫存器413之 處理器金鑰來解碼,且安全編碼被寫入至微處理器内 的安全揮發記憶體406 ’其中’安全揮發記憶體完全 該其㈣的硬體及或㈣。衫揮發記憶 =取記憶艘包含可存放安全應用程式執行的指令與資料 社-貫_中,安全非揮發記鐘介面單元術 複數機械專用暫存5|,装直古+丄 械專用暫— 現給安全、_,這些機 電路402)丰热一5 一文全應用程式(或安全編碼介面邏輯 執行對安全非揮發記憶體43〇的载入盥 =與=1:對藉τ對隱藏機械專用咖 入。 執订對女王非揮發記憶體彻的讀取與寫 授權者可有利地將微處理 行模式環境結合,且由Μ P 1之h㈣與安全執 CNTR2447/0608-A41940TW^ ; "^系統匯流排425與私密匯流 35 200949602The circuit 402 manages. Based on the collation-enabled parameter, the secure non-volatile memory interface unit clears the contents of the secure non-volatile memory 430 by performing random number writing. In the _眚&^ embodiment, each position in the secure non-volatile body 430 is randomized 耷 ’ and a is smashed 64 times. In one embodiment, the random number of parent writes is generated by random number generator 412. The SEMENABLE command (the SEM enabling mechanism) also transmits an indication of the location of the security code 411, 421 in the BIOS memory 410 or system memory 42 and any initial security data (i.e., enabling parameters). This indicator and data (i.e., enabling parameters) are formatted according to a predetermined structure and are encrypted according to an asymmetric gold recording algorithm. The encrypted indicator and data are decrypted and the format is checked. An unsuccessful check results in a response to the error code. If the indicator and data are confirmed and verified in terms of structure, the secure code interface logic 402 instructs the bus interface unit 403 to extract the security codes 411 and 421 from the memory 410 and/or the system memory 420. The security codes 411, 421 have also been encrypted by using the privilege of the licensor and are encrypted according to the asymmetric gold recording algorithm and must be commensurate with the preset structure. The secure coded interface logic 402 utilizes the authorized public key temporary storage CNTR2447/0608-A41940TWf/33 200949602 404 and AES/HASH/RSA unit 405 to unpack the encrypted secure code 411, 421. After the check is in the correct format, the secure encoding interface logic unit 402 utilizes the AES/HASH/RSA unit 405 to securely encode the content according to the symmetric encryption algorithm and using the contents of the processor key register 413 (as a symmetric record). The data is encrypted. As mentioned before, the contents of the processor key register 413 are 128-bit randomly generated keys unique to the microprocessor 〇1, and the symmetric encryption algorithm includes the use of 128-bit modules and Electronic Code Book (ECB) © Mode Advanced Encryption Standard (AES). This symmetrically encrypted security code is then written to the secure non-volatile δ ** memory 43 0 through the secure non-volatile memory interface unit 4 〇 7 . In addition, the secure encoding interface logic circuit 402 utilizes the AES/HASH/RSA unit 405 and the processor key register 413 to generate a plurality of hashes of the selected portions of the security encoding, and the secure encoding interface logic circuit 402 encrypts and encodes the hashes. Write to secure non-volatile memory 430. In one embodiment, these hashes are generated in accordance with the sHAq algorithm. In addition, the SEM initialization logic circuit 4〇 disables JTAG, detection mode, cache test, or disables other processor characteristics that are monitored by the machine's secure code as discussed in Figure 3. When encoded and hashed security code has been written to the secure non-volatile memory 430, the microprocessor 401 sets the non-volatile enable indication register (shown as 328 in FIG. 3) to indicate the processor 4〇. 1 is operating in secure execution mode 202 and SEM initialization logic 409 forces microprocessor 4〇1 to perform a reset sequence (RESET se. quence). The partial reset sequence causes the non-volatile enable indication that the contents of the scratchpad are read by CNTR2447/0608-A41940TWf/-ιλ 200949602 ❹ 且 and if these indicate that the processor 401 is in the secure execution mode 2〇2, then Perform additional operations specific to Safe Execution Mode 2〇2. Therefore, the security codes 411, 421 are initially encrypted and loaded by the authorizer into the memory 410, 420. When the security·execution mode is enabled, the microprocessor 〇1 retrieves and checks the secure code according to the asymmetric key algorithm and using the key provided by the licensor. The processor unique key is then used and the code is encrypted and hashed according to the symmetric key algorithm, and the symmetrically encoded code is written to the secure non-volatile memory 43 via the private bus #431. ''·, further details from the liver, when the security code is to be executed, the secure code is retrieved from the secure non-volatile memory 430 by the secure non-volatile memory interface unit 407, and stored in the processor key temporarily The processor key of the memory 413 is decoded, and the secure code is written to the secure volatile memory 406 'where the 'safe volatile memory' is completely (4) the hardware and/or (d). The volatilization memory of the shirt = the memory boat contains the instructions and the information system that can be used to store the security application. The security non-volatile clock interface unit is a multi-machine temporary storage 5|, and the installation is straightforward. For security, _, these machine circuits 402) a full-fledged application (or secure coding interface logic to perform the loading of the secure non-volatile memory 43〇 与 = and = 1: on the τ pair of hidden machinery dedicated coffee The read and write authors of the Queen's non-volatile memory can advantageously combine the micro-processing mode environment, and by Μ P 1 h (four) and security enforcement CNTR2447 / 0608-A41940TW ^ ; " Bus 425 and private confluence 35 200949602

V 排431之資料傳輸被加密,因此安全編碼之結構與功能則 被保護以避免任何的反向工程與其他窺察/侵入技術。 現在參閱第5圖,其表示在第1圖之微處理器中之SEM 監控邏輯電路500之詳細内容。SEM監控邏輯電路5〇〇包 括物理環境監控器501,其透過信號PSNT耦接安全非揮發 記憶體107、透過信號VP1與VP2耦接電池VP,且透過 仏號匚1與C2耦接石英器。此物理環境監控器5〇1透過匯 流排NOBOOT提供一輸出信號。 ❹ SEM監控邏輯電路500也包括匯流排時脈監控器 5〇2,其具有頻率參考單元503。匯流排時脈監控器5〇2透 過信號BUS CLK耦接提供至微處理器的匯流排時脈,且匯 流排時脈監控器502之輸出係耦接匯流排TAMPER。 SEM監控邏輯電路500也包括處理器電壓監控器 504,其透過信號VDD與BUSTERM耦接電源供應電壓與 複數匯流排終端電壓,其中,電源供應電壓與匯流排終端 電壓係由系統板提供至微處理器。SEM監控邏輯電路5〇〇 ® 也包括溫度監控器505,其透過信號TEMP耦接至處理器 溫度感測邏輯電路(未顯示)°SEM監控邏輯電路500更 包括資料監控器506,其透過匯流排CHK耦接至安全編碼 介面邏輯電路402。匯流排時脈監控器502、處理器電壓監 控器504、溫度監控器505以及資料監控器506之輸出信 號則耦接至匯流排TAMPER。 SEM監控邏輯電路500更包括安全時戳計數器 (security time stamp counter)507,·其耦接正常時戳計數器 (normal time stamp counter)508、信號 CORE CLK 以及比率 CNTR2447/ 0608-A41940TWf/ 36 200949602 (Ratio)機械專用暫存器509。安全時戳計數器507之輸 出信號耦接匯流排TAMPER。 SEM監控邏輯電路500也包括指令監控器511,其耦 接指令陣列512與匯流排INS。如關於第4圖的討論,當 微處理器正執行在安全執行模式時,在安全應用程式内的 指令被提供至SEM監控邏輯電路500,以支援在主機ISA 内限制的指令執行。指令監控器511的輸出信號耦接至匯 流排 TAMPER。 ❹ 最後,SEM監控邏輯電路500具有樣式監控器510, 其耦接匯流排PINCHK,且在匯流排DESTRUCT上產生一 輸出信號。 匯流排NOBOOT、TAMPER以及DESTRUCT輕接於 監控管理器513。在一實施例中,監控管理器513產生信 號 CLASS 1、CLASS2、CLASS3 以及 DISABLE。 在操作上,SEM監控邏輯電路500用來執行硬體與軟 體檢驗’其監控本發明微處理器之物理與暫時的屬性,以 ® 摘測、識別以及分類操作事件(operating events),其中,操 作事件是表示對於安全編碼而言不安全的操作環境,例如 改變或移除電池、石英器或者安全非揮發記憶體;以本發 明之不女全的微處理器來取代本發明之安全微處理器;修 改匯ml排時脈頻率,篡改微處理器電源供應電壓Vdd ;修 改在系統記憶體、BIQS記憶體或安全非揮發記憶體内的加 密安全編碼;以及發生對安全編碼本身的過度呼尋 . (excessive calls)。 因此,當操作在安全執行模式時,物理環境監控器5〇1 CNTR2447/ 0608-A41940TW 疗 200949602 200949602The data transmission of the V-row 431 is encrypted, so the structure and function of the secure code are protected from any reverse engineering and other snooping/intrusion techniques. Referring now to Figure 5, there is shown the details of the SEM monitor logic circuit 500 in the microprocessor of Figure 1. The SEM monitoring logic circuit 5 includes a physical environment monitor 501 coupled to the secure non-volatile memory 107 via the signal PSNT, coupled to the battery VP via the signals VP1 and VP2, and coupled to the quartz via the 匚1 and C2. The physical environment monitor 5〇1 provides an output signal through the bus NOBOOT. The SEM monitoring logic circuit 500 also includes a bus timing monitor 5〇2 having a frequency reference unit 503. The bus clock monitor 5〇2 is coupled to the bus bar clock provided to the microprocessor via the signal BUS CLK, and the output of the bus clock monitor 502 is coupled to the bus bar TAMPER. The SEM monitoring logic circuit 500 also includes a processor voltage monitor 504 coupled to the power supply voltage and the plurality of bus terminal voltages via the signal VDD and the BUSTERM, wherein the power supply voltage and the bus terminal voltage are provided by the system board to the microprocessor. Device. The SEM monitoring logic circuit 5〇〇 also includes a temperature monitor 505 coupled to the processor temperature sensing logic circuit (not shown) via the signal TEMP. The SEM monitoring logic circuit 500 further includes a data monitor 506 that passes through the bus bar. The CHK is coupled to the secure coding interface logic circuit 402. The output signals of the bus timing monitor 502, the processor voltage monitor 504, the temperature monitor 505, and the data monitor 506 are coupled to the bus bar TAMPER. The SEM monitoring logic circuit 500 further includes a security time stamp counter 507, which is coupled to a normal time stamp counter 508, a signal CORE CLK, and a ratio CNTR2447/0608-A41940TWf/36 200949602 (Ratio A mechanical dedicated register 509. The output signal of the safety time stamp counter 507 is coupled to the bus bar TAMPER. The SEM monitor logic circuit 500 also includes an instruction monitor 511 that couples the instruction array 512 to the bus bar INS. As discussed with respect to Figure 4, when the microprocessor is executing in the secure execution mode, instructions within the secure application are provided to the SEM monitoring logic 500 to support execution of instructions that are restricted within the host ISA. The output signal of the command monitor 511 is coupled to the bus TAMPER. Finally, the SEM monitoring logic circuit 500 has a pattern monitor 510 coupled to the bus bar PINCHK and generating an output signal on the bus bar DESTRUCT. The bus bars NOBOOT, TAMPER, and DESTRUCT are lightly connected to the monitor manager 513. In one embodiment, the monitor manager 513 generates signals CLASS 1, CLASS 2, CLASS 3, and DISABLE. In operation, SEM monitoring logic circuit 500 is used to perform hardware and software verification 'which monitors the physical and temporary properties of the microprocessor of the present invention to extract, identify, and classify operating events, where An event is an operating environment that is not safe for secure coding, such as changing or removing a battery, a quartz or a secure non-volatile memory; replacing the secure microprocessor of the present invention with a microprocessor of the present invention Modify the frequency of the m-slot clock, tamper with the microprocessor power supply voltage Vdd, modify the encryption security code in the system memory, BIQS memory or secure non-volatile memory; and over-hook for the security code itself. (excessive calls). Therefore, when operating in the safe execution mode, the physical environment monitor 5〇1 CNTR2447/ 0608-A41940TW treatment 200949602 200949602

偵測到上述的任何變化,此變化則輸出至匯流排n〇b〇〇t。Any changes described above are detected and the change is output to the bus n〇b〇〇t.

耦接安全非揮發記憶體107,藉由監控信號PSNT之狀態來 判斷安全非揮發記憶體107是否移除。信號PSNT之禁能 (de-assertion)表示移除安全非揮發記憶體107。同樣地, 監控信號VP1與VP2來判斷電池電壓是否改變或電池被移 除或者判斷對應該電池之電壓是否被充電。在一實施例 中,VP1之值與電池電壓成比例。同樣地,信號ci與 之狀態係表示石英器的存在與否。假使物理環境監控器5〇1 此外,當操作在安全執行模式2〇2時,匯流排時脈監 控器502估汁仏號BUS CLK之頻率,以判斷系統匯流排時 脈的短期與㈣完整性,其巾,⑽隱排時脈透過系統 板而提供至微處理器。此匯流排時脈透過信號Bus clk被 路由(routed)至匯流排時脈監控器5〇2,匯流排時脈監控器 5〇2使用内部相位鎖相迴路(未顯示)來檢驗短期匯流排 時脈誤差,其+ ’㈣相位鎖相迴路與匯流排時脈同步化 且用來產生時脈給微處理ϋ。匯流排時脈監控器搬 判斷匯流排時脈於不適#的週期是㈣持平坦,或者判 時脈變化是否已超出可接受的程度(例如—特定範圍 一實施例中,超過百分之六之變化視為是無法接受的。此 外’匯流排時脈監控_通使用頻率參考單元5〇3來作 溫度與電壓非相依的中間速度震盪器電路。頻率參考單元 5〇3產生與系統匯流排時脈成比例之—參考頻率。匯流 時脈監控^02比較系統匯流排時脈的衍生㈣與 時脈參考單το 5〇3之輸出(參考頻率),以判斷匯流排時脈 之頻率是否已縣逐步㈣ual)的頻率變彳卜假使任何上 CNTR2447/ 0608-A41940TWf7 ,〇 3〇 200949602 述事件發生,此事件透過匯流排TAMPER報導給監控管理 器513(SE1V[邏輯電路301),其將導致微處理器進入降級模 式或進入硬體關機模式204。 處理器電壓監控器504估計透過信號VDd與 BUSTERM來提供且施加於微處理器之電源供應電壓與複 數匯流排終端電壓。上述電壓之高低限制係透過機械專用 暫存器(未顯示)來編程。一但電源供應電壓與複數匯游 排終端電壓偏離這些編程限制’處理器電壓監控器5〇4 ^ © 透過匯流排TAMPER來報導(report)此事件給監控管理器 513。 溫度監控器505包括精準的熱監控機制(除了正常熱 監控功能以外),其在預設高與低溫度限制下不斷地監^ 晶粒溫度。該晶粒溫度之一低溫度限制與一高溫度限 藉由溫度監控器505内一機械專用暫存器來編程。此高與 低溫度限制儲存在溫度監控蕃505内機械專用暫存器:了 其中,這些機械專用暫存器可被安全編碼寫入。一但該晶 11 粒溫度偏離上述預設高與低溫度限制,溫度監控器 透過匯流排TAMPER來報導此事件給監控管理^ 。 資料監控器506用來當自安全非揮發記憶體操取該安 全應用程式時,用以偵測與報導於安全編碼和安全資料相 關的複數加密與配置錯誤。這些複數加密與配置錯誤透過 匯流排TAMPER來報導給監控管理器513。舉例來說,這 些錯誤為與SEMENABLE及SEMENTER指令之執^相^ 之錯誤、當自記憶體擷取安全編料所偵測到之解密錯 誤、以及在安全編碼中雜湊與格式錯誤。 CNTR2447/ 0608-A41940TWf7 39 200949602 安全時戳計數器507耦接一核心 咖,用來計算料全糾正執行The secure non-volatile memory 107 is coupled to determine whether the secure non-volatile memory 107 is removed by monitoring the state of the signal PSNT. The de-assertion of the signal PSNT indicates removal of the secure non-volatile memory 107. Similarly, the signals VP1 and VP2 are monitored to determine if the battery voltage has changed or the battery has been removed or to determine if the voltage corresponding to the battery is being charged. In one embodiment, the value of VP1 is proportional to the battery voltage. Similarly, the state of signal ci and its state indicates the presence or absence of a quartz. Suppose the physical environment monitor 5〇1 In addition, when operating in the safe execution mode 2〇2, the bus time clock monitor 502 estimates the frequency of the BUS CLK to determine the short-term and (four) integrity of the system bus time clock. , the towel, (10) the hidden clock is provided to the microprocessor through the system board. The bus clock is routed to the bus clock monitor 5〇2 through the signal Bus clk, and the bus timing monitor 5〇2 uses an internal phase-locked loop (not shown) to check the short-term bus. Pulse error, its + '(four) phase-locked loop is synchronized with the bus clock and used to generate the clock for the microprocessor. The bus timing monitor moves to determine whether the bus cycle is uncomfortable. The period is (4) flat, or whether the clock change has exceeded an acceptable level (for example, a specific range, in an embodiment, more than six percent) The change is considered unacceptable. In addition, the 'bus clock monitoring_ uses the frequency reference unit 5〇3 for the temperature- and voltage-independent intermediate speed oscillator circuit. When the frequency reference unit 5〇3 is generated with the system bus Pulse proportional - reference frequency. Confluence clock monitoring ^02 compare system bus timing derivative (four) and clock reference single το 5〇3 output (reference frequency) to determine whether the bus clock frequency has been counted The frequency of the stepwise (four) ual is changed to cause any event on CNTR2447/0608-A41940TWf7, 〇3〇200949602 to occur, this event is reported to the monitoring manager 513 (SE1V [logic circuit 301) via the bus TAMPER, which will cause microprocessing The device enters the degraded mode or enters the hardware shutdown mode 204. The processor voltage monitor 504 estimates the power supply voltage and the complex bus terminal voltage supplied by the signals VDd and BUSTERM and applied to the microprocessor. The above voltage limits are programmed through a mechanical dedicated register (not shown). Once the power supply voltage and the complex bus terminal voltage deviate from these programming limits, the processor voltage monitor 5〇4 ^ © reports this event to the monitoring manager 513 via the bus TAMPER. Temperature monitor 505 includes a precise thermal monitoring mechanism (in addition to the normal thermal monitoring function) that continuously monitors the die temperature at preset high and low temperature limits. One of the grain temperatures, a low temperature limit and a high temperature limit, is programmed by a mechanical dedicated register in temperature monitor 505. This high and low temperature limit is stored in the mechanical monitoring register in the temperature monitoring cabinet 505: Among them, these mechanical dedicated registers can be safely coded. Once the temperature of the crystal 11 deviates from the above-mentioned preset high and low temperature limits, the temperature monitor reports this event to the monitoring management via the bus bar TAMPER. The data monitor 506 is used to detect complex encryption and configuration errors associated with security coding and security data when the secure application is taken from a secure non-volatile memory gym. These complex encryption and configuration errors are reported to the monitoring manager 513 via the bus TAMPER. For example, these errors are errors with the SEMENABLE and SEMENTER instructions, decryption errors detected when the security is captured from the memory, and mismatches and formatting errors in the security code. CNTR2447/ 0608-A41940TWf7 39 200949602 The safety time stamp counter 507 is coupled to a core coffee to calculate the full correction execution.

CLK之週期數。安全時戳計數器5〇7 。唬CORE 器5〇8。正常時戳計數器5〇8則是在吊時戳計數 碼執行期間内計算信號C0RECLK =金蝙瑪或安全編 程式正在執行時或當安全應用程式非正在執^ ^計數器508計算信號⑽Ε(χκ之週期數;二= ㈣507也耦接一比率機械專用暫存器5〇9 ❹用=5。9只由該安全應用程式所得知且存取率= 編碼可對比率機械專用暫存器· 執订-機械專用暫存器寫入,以建立介於 (508與安全時截計數器撕 (:麵mr咖)。此最大比例係指示該安全應用程式已被 呼哥之=數。假使超過此最大比例,藉此指示出安全編碼 ^ =哥多於指定次數’接著,安全時戮計數器507透過 ❹#理$ 導此事件(最大比例何時被超過)給監控 亦即’女全時戰計數器507用以比較信號CORE CLK週期數與正f _計數器_之數值、且將上述最大 比例被超過之事件報導給監控管理器513。上述最大比例 係藉由隨邏輯電路内之一機械專用暫存器來編程。 指令監控器511在與主機ISA内指 來確認在安全應用程式内的指令,且指示出L安2用 程式内且非在此子集内的指令何時已被編程以進行後續執 订。提供來在安全執行模式内執行的指令子集是由指舍陣 列512之數值來表示。在一實施例中,此子集包括在似 ^^2447/ 0608-A41940TWC, 从 4Π 200949602 内的一或多個特殊指令,如運算碼(〇pc〇de)所識別。在另一 實施例中’此子集包括—或多個指令種類,如一微碼 (microcode)複雜數值所識別。在一第三實施例中,此子集 包括-或多個標籤編,tag eQdes),每—者與—或多個指令 運算碼相關聯。 指令陣歹012麵接該指令監控ϋ 511,用以識別對應微 處理器之一指令集架構内的一所有指令之子集,該子集包 括允許在一女全執行模式内執行的指令。用來在安全執行 © 模式下執行的指令子集由指令陣列512之數值來識別。在 一實施例中,此指令陣列512包括一機械專用暫存器,其 初始地由安全應用程式來寫入。在另一實施例中,指令陣 列512包括複數熔絲,其在製造期間被編程(燒斷)。 在安全執行模式之初始化期間,當安全編碼正由安全 非揮發記憶體傳送至安全揮發記憶體以進行後續執行時, 對應安全編碼内每一特定指令之數值係由安全編碼介面邏 輯電路402透過匯流排ins而提供至指令監控器511。在 ❹一實施例中1NS之數值表示每一特定指令對應微處理器之 一指令集架構内的之特定運算碼或是運算碼子集。在另一 實施例中,此數值表示這些指令的種類(例如簡單、複雜 等等)。在又一實施例中,此數值是對應在ISA内一或多 個指令的標籤。 一夕 在另一實施例中’於安全編碼之執行之前,當安全非 揮發記憶體正被編程時,在安全編碼内每一指令之數值由 安全編碼介雨邏輯電路402透過匯流排INS來提供。 指令監控器511比較INS之數值與指令陣列512之數 CNTR2447/ 〇608-A41940TWf/ 41 200949602 值’以判斷是否允許執行特定指令。假使不允許的話,指 令監控器511則設置信號於匯流排TAMpER。 樣式監控器51〇,耦接匯流排DESTRUCT,是偵測本 發明之微處理器的非安全版本對系統板的安裝,其中,此 系統板是配置給本發明之安全微處理器。在一實施例中, 非安全微處理器與安全微處理器具有相異的接腳配置 (pinout)。在此兩版本之間相異的特定腳位之狀態係透過 匯流排PINCHK作為樣式監控器51〇之輸入信號。樣式監 ❿控H估計匯流排PINCHK之狀態,且假使判斷出此非安全 版本被安裝時,則透過匯流排DESTRUCT來報導此事件终 監控管理器513。亦即,匯流排DESTRUCT提供對應微處 理器之特定複數接腳配置之複數狀態,且樣式監控器 則估計上述複數狀態以判斷微處理器是否配置一安全版本 來操作在該安全執行模式中。 監控管理器513藉由注意與估計透過匯流排 NOBOOT、TAMPER及DESTRUCT傳遞之資料,來動態 ❿ 地監控微處理器之物理與操作環境。監控管理器513對上 述資料進行分類以指示出與安全應用程式之執行相關的安 全層級’且使微處理器内之SEM邏輯電路根據安全層級來 執行反應操作。對安全應用程式之執行而言,SEM監控邏 輯電路500包括非同步監控、監視機制與監控器等係獨立 地操作。以下某些情況將導致信號CLASS1的設置,例如 透過匯流排TAMPER報導之匯流排BUS CLK之頻率的短 暫誤差。SEM邏輯電路響應於CLASS1之設置而將此事件 紀錄(log)(偵測信號CLASS1之設置)至安全揮發記憶體内 CNTR2447/ 〇608-A41940TWf 42 200949602 的安全事件紀錄表’且發出一中斷給安全編碼。假使此中 斷沒有被收到(acknowledged),則監控管理器513設置信號 CLASS3。 假使偵測到會導致信號CLASS1設置的複數事件(多 於一個事件),例如BUSCLK之誤差與VDD之誤差,監 控管理器513則設置信號CLASS2。SEM邏輯電路則試圖 清除安全揮發記憶體之資料區域,且試圖將此事件記錄至 安全非揮發記憶體。此外,檢查在BIOS之安全編碼的雜 湊。假使安全揮發記憶體之資料區域成功清除且此事件(偵 測信號CLASS2之設置)被紀錄,且假使BIOS雜湊被正確 地證明’ SEM邏輯電路則開始轉換至降級模式2〇3。此降 級模式提供有限的功能、錯誤顯示以及有限的使用者輸入 之相關指令。這些動作中任一者的錯誤會導致信號CLASS3 之設置。 信號CLASS3之設置表示有安全侵害。響應於信號 CLASS3之設置,SEM邏輯電路持續試圖清除安全揮發記 憶體且试圖將此事件(彳貞測信號CLASS3之設置)記錄至安 全非揮發記憶體,此外,使微處理器進入硬體關機模式 204,即微處理器停止操作。 在一實施例中,監控管理器513判斷樣式監控器51〇 疋否已δ又置4號DESTRUCT,因此指示出本發明微處理器 的非安全版本的安裝。假使信號DESTRUCT被設置,且假 使在匯流排ΝΟΒΟΟΤ上的資料指示出石英器與安全非揮 發記憶體存在時,信號.DISABLE則被設置。響應於信號 DISABLE之6又置,SEM邏輯電路使非安全之微處理器停止The number of cycles of CLK. Safety time stamp counter 5〇7.唬CORE device 5〇8. The normal time stamp counter 5〇8 is calculated during the execution of the hang timestamp count code C0RECLK=Gold bat or safe programming is being executed or when the security application is not performing ^^ counter 508 calculation signal (10) Ε (χκ之Number of cycles; two = (four) 507 is also coupled to a ratio of mechanical dedicated register 5〇9 ==5. 9 only known by the security application and access rate = coded comparable ratio mechanical dedicated register · binding - Mechanical dedicated register write to establish between (508 and safe time truncation counter tear (: face mr coffee). This maximum ratio indicates that the security application has been called = number. If this maximum ratio is exceeded In this way, the security code is indicated to be more than the specified number of times. Then, the security time counter 507 transmits the event (when the maximum ratio is exceeded) to the monitoring, that is, the female full time counter 507 is used. Comparing the number of signal CORE CLK cycles with the value of positive f_counter_, and reporting the event that the maximum ratio is exceeded to the monitor manager 513. The maximum ratio is programmed by a mechanical dedicated register in the logic circuit. Means The monitor 511 refers to the instructions in the secure application with the host ISA and indicates when the instructions within the application and not within the subset have been programmed for subsequent binding. The subset of instructions executed within the secure execution mode is represented by the value of the array 512. In one embodiment, the subset is included in one or more specials from 4Π200949602, like ^^2447/ 0608-A41940TWC An instruction, such as an arithmetic code (〇pc〇de), is identified in another embodiment. 'This subset includes - or a plurality of instruction types, such as a microcode complex value. In a third embodiment The subset includes - or a plurality of tag codes, tag eQdes), each associated with - or a plurality of instruction opcodes. The instruction set 歹 012 is coupled to the instruction monitor 511 for identifying the corresponding microprocessor A subset of all instructions within an instruction set architecture, the instructions including instructions that are allowed to execute within a female full execution mode. The subset of instructions used to execute in the secure execution© mode is identified by the value of the instruction array 512. In an embodiment, this refers to Array 512 includes a mechanical special register that is initially written by a secure application. In another embodiment, instruction array 512 includes a plurality of fuses that are programmed (burned) during manufacture. During the initialization of the mode, when the security code is being transferred from the secure non-volatile memory to the secure volatile memory for subsequent execution, the value of each specific instruction in the corresponding security code is transmitted by the secure coding interface logic circuit 402 through the bus bar ins. The instructions are provided to the instruction monitor 511. In one embodiment, the value of 1NS indicates that each particular instruction corresponds to a particular opcode or subset of opcodes within one of the instruction set architectures of the microprocessor. In another embodiment, this value indicates the type of these instructions (e.g., simple, complex, etc.). In yet another embodiment, this value is a label corresponding to one or more instructions within the ISA. In another embodiment, before the execution of the secure code, when the secure non-volatile memory is being programmed, the value of each instruction in the secure code is provided by the secure coded rain logic circuit 402 through the bus INS. . The instruction monitor 511 compares the value of the INS with the number of instruction arrays 512 CNTR2447 / 〇 608-A41940TWf / 41 200949602 value ' to determine whether to allow execution of a particular instruction. If not allowed, the command monitor 511 sets the signal to the busbar TAMpER. The style monitor 51 is coupled to the busbar DESTRUCT to detect the installation of the system board by an unsecured version of the microprocessor of the present invention, wherein the system board is a secure microprocessor configured for the present invention. In one embodiment, the non-secure microprocessor and the secure microprocessor have different pinouts. The state of the particular pin that differs between the two versions is the input signal through the bus bar PINCHK as the pattern monitor 51. The mode monitors the state of the bus PINCHK, and if it is determined that the non-secure version is installed, the event monitoring manager 513 is reported through the bus DESTRUCT. That is, the bus DESTRUCT provides a complex state for the particular complex pin configuration of the microprocessor, and the pattern monitor estimates the complex state to determine if the microprocessor is configured with a secure version to operate in the secure execution mode. The monitoring manager 513 dynamically monitors the physical and operational environment of the microprocessor by paying attention to and estimating the data transmitted through the busbars NOBOOT, TAMPER, and DESTRUCT. The monitor manager 513 sorts the above data to indicate the security level associated with the execution of the secure application' and causes the SEM logic within the microprocessor to perform the reaction operations according to the security level. For the execution of secure applications, the SEM monitoring logic circuit 500 includes asynchronous monitoring, monitoring mechanisms, and monitors that operate independently. Some of the following conditions will result in the setting of the signal CLASS1, such as the short-term error of the frequency of the bus BUS CLK reported by the bus TAMPER. The SEM logic circuit records this event (log) (detection signal CLASS1) to the safety event record table of the CNTR2447/〇608-A41940TWf 42 200949602 in response to the setting of CLASS1 and issues an interrupt to the security. coding. If the interrupt is not received (acknowledged), the monitor manager 513 sets the signal CLASS3. The monitoring manager 513 sets the signal CLASS2 if a complex event (more than one event) that causes the signal CLASS1 to be set is detected, such as an error in the error of BUSCLK and VDD. The SEM logic attempted to clear the data area of the safe volatilization memory and attempted to record this event to a secure non-volatile memory. Also, check the hash of the security code in the BIOS. If the data area of the safe volatilization memory is successfully cleared and this event (setting of the detection signal CLASS2) is recorded, and if the BIOS hash is correctly proved, the SEM logic circuit starts to transition to the degraded mode 2〇3. This degraded mode provides limited functionality, error display, and limited user input related instructions. An error in either of these actions results in the setting of signal CLASS3. The setting of the signal CLASS3 indicates a security violation. In response to the setting of the signal CLASS3, the SEM logic continues to attempt to clear the safe volatilization memory and attempts to record this event (the setting of the guess signal CLASS3) to the secure non-volatile memory, and in addition, causes the microprocessor to enter the hardware shutdown. Mode 204, that is, the microprocessor stops operating. In one embodiment, the monitor manager 513 determines whether the style monitor 51 has δ set the DESTRUCT number 4, thus indicating the installation of the non-secure version of the microprocessor of the present invention. If the signal DESTRUCT is set, the signal DISA is set if the data on the bus bar indicates that the quartz and secure non-volatile memory are present. In response to signal DISABLE 6, the SEM logic circuit stops the non-secure microprocessor

CNTR2447/ 0608-A41940TW 200949602 操作。 以上關於監控管理器513設置信號CLASSl、 CLASS2、CLASS3以及DISABLE皆係用來將程式控制轉 移至安全應用程式内複數事件管理者之一,例如有安全侵 害時’信號CLASS3被設置,SEM邏輯電路則持續嘗試清 除安全揮發記憶體且將此事件記錄至安全非揮發記憶體, 持續嘗試迫使微處理器進入硬體關機模式,即微處理器停 止操作。關於監控管理器513設置信號CLASS1、CLASS2、 © CLASS3以及DISABLE的上述情況僅為範例,是用來教導 本發明之安全環境管理。此技術領域中具有通常知識者能 理解,安全事件類別以及適當反應是受到所需之特定安全 環境所約束,因此,本發明包含了上述安全事件類別與適 當反應之其他方法。 現在參閱第6圖,狀態圖600詳細說明本發明之微處 理器的操作模式轉換。狀態圖600包括原生未受控模式6〇1 ❹ (或非安全”執行模式601)、降級模式605以及硬體關機 模式606,如同第2圖中相似命名的元件,相異之處在於, 更詳細說明原生未受控模式601在程式控制下只可返回至 此模式之有限次數。這些返回的有限次數以原生未受控模 式(1)〇〇1行沈111〇(^4?]^)[1州來表示。此外,更詳細地解 釋在第2圖之安全執行模式2〇2,以說明複數SEM致能重 置模式[1:N]602、一 SEM致能正常執行模式6〇3以及一 SEM致能安全執行模式6〇4。即是,當安全執行模式2〇2 透過SEMENABLE指令的執行(或者其他致能機制)而被 致能時,本發明之微處理器被重置(即致能重置[1:N])其 CNTR2447/ 0608-A41940TWf/ ΛΛ 200949602 可能正在執行非安全應用程式(致能正常執行模式),或 者可能正執行安全編碼(致能安全執行模式)。 如上所示,本發明之微處理器被製造為初始開機即進 入原生未受控模< 601。且如狀態s _所指卩,有關微 處理器的安全的不同版本可持續地被使用於原生未受控模 式中。然而,SEMENABLE指令或致能安全執行模式之交 替機制(例如SEM ENABLE)的執行導致微處理器進入 SEM致能重置模式6〇2,以迫使微處理器重置,其中可以 ® 進入SEM致能重置模式602的次數為[1:N]次,且上述為 第一次進入SEM致能重置模式602。在SEM致能重置模 式602中,在重置序列期間,微處理器執行關於操作在安 全環境之配置與誠實性檢查’如前述關於第5圖之敘述。 根據在SEM致能重置模式下重置的成功執行(即通過), 微處理器轉換至SEM致能正常執行模式603,以進行非安 全應用程式的執行。然而,假使偵測到某些已定義狀態, 例如前述由監控管理器513對信號CLASS3與DISABLE ® 的設置,微處理器將轉換至降級模式605 (即由於CLASS2 的設置)’或轉換至硬體關機模式606 (即由於DISABLE 的設置)。從硬體關機模式606離開,微處理器可被重置 以導致其返回至SEM致能重置模式602中。從降級模式 605離開’微處理器透過BIOS提供受限的指令,允許使用 者建立用來在程式控制下致能微處理器以進入SEM致能 安全執行模式604的參數。 從SEM致能重置模式602離開,在重置序列中的硬體 呼尋將迫使微處理器直接進入SEM致能安全執行模式 CNTR2447/ 0608-A41940TW^ 45 200949602 604,於其中執行安全編喝 執行模式603中非安全編$ 外,發生在SEM致能正常 指令之執行期間中的安全^執行期間中或者在SEMENTER 安全編碼之交替^^丨斷或者使微處理器開始執行 全執行模式二料:至驟致能安 與交替機制都參照狀態= 始執行安全編碼的指令 SEMEXIT指令 600中的”呼尋”。同樣地, 與開始非安全 7微處理器終止安全編碼執行CNTR2447/ 0608-A41940TW 200949602 Operation. The above-mentioned monitoring manager 513 sets the signals CLASS1, CLASS2, CLASS3 and DISABLE to transfer the program control to one of the complex event managers in the secure application. For example, when there is security violation, the signal CLASS3 is set, and the SEM logic circuit is Continue to attempt to clear the safe volatilization memory and record this event to the secure non-volatile memory, and continue to try to force the microprocessor into the hardware shutdown mode, ie the microprocessor stops operating. The above-described case in which the monitor manager 513 sets the signals CLASS1, CLASS2, © CLASS3, and DISABLE is merely an example and is used to teach the security environment management of the present invention. Those of ordinary skill in the art will appreciate that the category of security events and the appropriate response are governed by the particular security environment required, and therefore, the present invention encompasses the above-described categories of security events and other methods of appropriate response. Referring now to Figure 6, a state diagram 600 details the mode of operation of the microprocessor of the present invention. The state diagram 600 includes a native uncontrolled mode 6〇1 ❹ (or non-secure execution mode 601), a degraded mode 605, and a hardware shutdown mode 606, as similarly named components in FIG. 2, differing in that A detailed description of the limited number of times that the native uncontrolled mode 601 can only return to this mode under program control. The limited number of these returns is in the native uncontrolled mode (1) 〇〇 1 line sinks 111〇(^4?]^)[ 1 State. In addition, the safe execution mode 2〇2 in Figure 2 is explained in more detail to illustrate the complex SEM enabled reset mode [1:N] 602, a SEM enabled normal execution mode 6〇3, and A SEM enables a safe execution mode 6〇4. That is, when the secure execution mode 2〇2 is enabled by the execution of the SEMENABLE instruction (or other enabling mechanism), the microprocessor of the present invention is reset (ie, Enable reset [1:N]) CNTR2447/ 0608-A41940TWf/ ΛΛ 200949602 May be executing a non-secure application (enabled in normal execution mode), or may be performing secure coding (enable safe execution mode). Show that the microprocessor of the present invention is manufactured as an initial When booting, it enters the native uncontrolled mode < 601. And as indicated by the state s _, different versions of the security of the microprocessor can be used continuously in the native uncontrolled mode. However, the SEMENABLE command or enable Execution of the alternate mode of the secure execution mode (eg, SEM ENABLE) causes the microprocessor to enter the SEM enable reset mode 6〇2 to force the microprocessor to reset, where the number of times the SEM enable reset mode 602 can be entered is [1: N] times, and the above is the first entry into the SEM enable reset mode 602. In the SEM enable reset mode 602, during the reset sequence, the microprocessor performs a configuration regarding the operation in a secure environment and The honesty check is as described above with respect to Figure 5. According to the successful execution of the reset in the SEM enable reset mode (ie, pass), the microprocessor switches to the SEM enable normal execution mode 603 for non-secure applications. Execution of the program. However, if certain defined states are detected, such as the aforementioned settings by the monitor manager 513 for the signals CLASS3 and DISABLE ® , the microprocessor will transition to the degraded mode 605 (ie due to the setting of CLASS2) 'Or switch to the hardware shutdown mode 606 (ie, due to the setting of DISABLE). Leaving from the hardware shutdown mode 606, the microprocessor can be reset to cause it to return to the SEM enable reset mode 602. From the degraded mode 605 Leaving the 'microprocessor provides limited instructions through the BIOS, allowing the user to establish parameters that enable the microprocessor to enter the SEM enabled safe execution mode 604 under program control. From the SEM enable reset mode 602, The hardware call in the reset sequence will force the microprocessor to directly enter the SEM enable safe execution mode CNTR2447 / 0608-A41940TW^ 45 200949602 604, in which the non-secure code is executed in the safe brewing execution mode 603 During the security execution period during the execution of the SEM-enable normal instruction or during the SEMENTER security coding alternately or the microprocessor is started to execute the full execution mode: the reference to the singularity and the alternate mechanism are referenced. Status = "Call" in the SEMEXIT instruction 600 of the instruction to perform secure coding. Similarly, terminate the secure code execution with the start of the non-secure 7 microprocessor

(RETURN),,,此返回導發仃的父替機制,係參照”返回 行模式603。如上舰,t處理器轉換為讓致能正常執 致能^ ;L,女全編碼可導致微處理器由SEM 式604轉換為降級模式。腿内的安 王編碼允許微處理器由降 執行模式604。 降級模式605返回至腿致能安全 磁⑨在SEM致能安全執行模式6。4中執行的安全編 φ 特殊機械專用暫存器,來引發安全機械檢 603以執處理器轉換回瞻致能正常執行楔式 仃文全編碼。此外,假使在SEM致能正常執行 生一安全中斷,微處理器之狀態自動地ί tin m安全執行㈣這純行林發明微處理 1列中用來導致狀態圖所述的狀態變化之不同的步驟, 將透過第7-11圖來詳細說明。 —參閱第7圖,流程圖7〇〇表示本發明微處理器中 安全執行核式操作的高階方法。流程圖開始於方塊, 於其中’微處理器處於原生未受控模式6〇1。 SEMENABLE指令的執行或致能安全執行模式之交替機 CNTR2447/ 0608-A41940TW^ 46 200949602 制,例如寫入至一隱臧機械專用暫存器,傳送一致沪參數 其中,此致能參數已藉由使用—對非對稱加密金 者並根據非對稱加密演算法來被加密’而—對非對稱加密 金鑰中之另-者已被編程线處㈣巾授權的公開 存器内。流程繼續進行至方塊702。 在方塊702中,利用在微處理器内的加密單元,(RETURN),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, The converter is converted to the degraded mode by SEM Equation 604. The Angkor code in the leg allows the microprocessor to be executed by the descending execution mode 604. The degraded mode 605 is returned to the leg-enabled Safety Magnetic 9 in the SEM-Enable Safe Execution Mode 6.4. Safety φ special mechanical special register to trigger the safety mechanical inspection 603 to perform the processor conversion back to the view to enable the full implementation of the wedge-type full encoding. In addition, if the SEM enables the normal execution of a safety interrupt, micro-processing The state of the device is automatically executed (4). The step of inventing the differential processing in the column 1 to cause the state change described in the state diagram will be explained in detail through Figures 7-11. Figure 7, Flowchart 7A shows a high-order method for safely performing nuclear operations in a microprocessor of the present invention. The flow chart begins with a block in which the microprocessor is in a native uncontrolled mode 6〇1. Execution of the SEMENABLE instruction Or enable The safety execution mode alternates CNTR2447/ 0608-A41940TW^ 46 200949602, for example, writes to a concealed mechanical dedicated register, and transmits a consistent Shanghai parameter, which is enabled by using the asymmetric encryption key. Encrypted according to an asymmetric encryption algorithm - and - the other of the asymmetric encryption keys has been authorized by the programming line (4). The flow proceeds to block 702. In block 702, An encryption unit within the microprocessor,

G 此致能參數以擷取用來致能安全執行模式之一有效指令以 及擷取在記憶體内加密安全編碼之指標。在BI〇s ^二向 安全編碼的另一指標以及任何加密的初始化資料也被 提供。流程繼續進行至方塊703。 在方塊703巾’加密的安全編碼透過系統匯流排而被 擷取自記憶體/BIOS ’且被解密。此安全編蝎與資料接著藉 由使用-處理器金錄並根據-對稱金錄演算法來被加密, 其中,此處理器金賴於本發明之每—處理器而言是獨特 的’且在製造時被編程至一處理器金鑰暫存器。此對稱加 密的安全編碼與資料接著透過私密匯流排而被寫入至一安 全非揮發記憶體,其中,此私密匯流排隔離於系統匯流排 資源。寫入至安全非揮發記憶體之部分程序包括在寫入對 稱加密編碼與資料之前,對記憶體執行隨機寫入。流程繼 續進行至方塊704。 ’ 在方塊704中,微處理器内非揮發致能指示暫存器被 寫入,以指示出安全執行模式被致能。在一實施例中,非 揮發致能指示暫存器包括複數位元,且這些位元中之一者 係被寫入以在安全執行模式每次被致能時甩來指示出安全 執打模式被致能。這些位元中另一者係被寫入以指示出返 CNTR2447/ 0608-A41940TWfy ^ 200949602 回至原生未受控模式。因此,根據本發明之 發致能指*暫存n允許了 128次由非安全執=非揮 執行模式的轉換。流程繼續進行至方塊705。:安全 在方塊705中 一 —1 1置微處理|§,即完成本發 器中致能安全執行模式操作的方法。 月城處理G This enable parameter is used to retrieve an effective instruction to enable one of the secure execution modes and to retrieve an indicator of the encrypted security code in memory. Another indicator of BI〇s^ two-way secure coding and any encrypted initialization data is also provided. Flow continues to block 703. At block 703, the encrypted security code is retrieved from the memory/BIOS' through the system bus and decrypted. This security compilation and data is then encrypted by using the - processor record and according to the -symmetric gold recording algorithm, wherein the processor is unique to each processor of the present invention' It is programmed to a processor key register at the time of manufacture. This symmetrically encrypted secure code and data is then written to a secure non-volatile memory via a private bus, which is isolated from the system bus resources. Part of the process of writing to secure non-volatile memory involves performing random writes to the memory before writing the symmetrically encoded code and data. Flow continues to block 704. In block 704, the non-volatile enable within the microprocessor indicates that the scratchpad is written to indicate that the secure execution mode is enabled. In one embodiment, the non-volatile enable indication register includes a plurality of bits, and one of the bits is written to indicate a safe handout mode each time the secure execution mode is enabled. Was enabled. The other of these bits is written to indicate a return to CNTR2447/0608-A41940TWfy^200949602 back to native uncontrolled mode. Therefore, according to the present invention, the enablement* temporary storage n allows 128 conversions by the non-secure = non-swing execution mode. Flow continues to block 705. : Security In block 705, a -1 1 micro-processing | §, that is, the method of enabling safe execution mode operation in the transmitter. Yuecheng treatment

第8圖之流程圖8〇〇強調用來在本發明 禁能安全執行模式操作之高階方法。即是,流程=器中 述操作在安全執行模式之安全編碼如何命令微處理〇〇礙 至原生未受控模式。流程開始於方塊8(H,於其返回 安全執行模式執行安全編崎。流程繼續進行至方 正於 在方塊802 + ’安全編碼於安全執行模式執 全執行模式的返卵6她),亦即執行安全執行 非安 實Γ中,當安全編瑪執行對一SEM機械 存㈣寫人時,開始實魅非安全執行模式的返 -非安= 于模式)’其導致一安全例外(二 _°η)。程式控健著轉移至在於安全編碼内-位址上 的安全例外管理者’其中’此位址係由前述安全中斷描述 符號表單之内容來提供。在—實_中,安全例外管理者 對-機械專用暫存器執行寫人,以指示接受此返回。假使, 此機械專用暫存器沒有被正確地寫人,此返回齡略,且 微處理H㈣在安全騎料。假使交握被確認,則流程 繼續進行至方塊803。 在判斷方塊8〇3中’評估非揮發致能指示暫存器的内 禁能安全執行模式(支援返回至非安全執行 模式)。假使沒有被禁能(支援返回至非安全執行模式),流 CNTR2447/ 0608-A41940TWf/ 4g 200949602 程繼續進行至錢_。假使於此_發致能指示暫存器 之複數位70允衫非安全執行模式的相,雜則繼 行至方塊804。 在方塊806中,維持安全執行模式,且控制權返回至 安全編碼。 ,f方,8〇4中’更新非揮發致能指示暫存器,以指示 ,微處理器正操作在非安全執行模式。流程繼續進行至方 塊 805。 在方免805中’微處理器之狀態返回至原生未受控模 式,即完成本發明之微處理器中禁能安全執行模式操作之 方法。 第9圖表示流程圖_,其詳細㈣本發明微處理器内 1化安全編碼執行的方法。即是,流__之方法包 f第7甘圖:流程圖700的更詳細說明。流程開始於方塊 ❹ 二二㈣’本Γ明之微處理器正於原生未受控模式中執 仃非安全應用程式。流程繼續進行至方塊観。 丄在非安全執行模式之一操作系統執行 暫存W傳送X?,制〇_人至-機械專用 ),、得《或夕個致能參數,其中,此-或多個 絲參數是根據屬於授•之私密錢來被非對稱地加 擒。此-或多個致能參數包括用來指向被執行之非對稱加 密安全編碼射旨標’此料可儲存在线記㈣以及/或 BIOS記憶體。流程繼續進行至方塊9〇3。 在方塊903中,微處理器使用一對應的授權的公開金 鑰來對傳送的一或多個致能參數進行解密。在一實施例 CNTR2447/ 0608-A41940TWi/ Λί\ 200949602 中,於微處理器之製造期間,此授權的公開金鑰被編程至 一非揮發授權的公開金鑰暫存器。在另一交替的實施例 中’此授權的公開金鑰被編程至本發明之安全非揮發記憶 體内的一位置’且根據微處理器的初始開機,此授權的公 開金鑰自此安全非揮發記憶體被擷取,且此授權的公開金 鑰被編程至非揮發授權的公開金鑰暫存器,接著,在安全 非揮發記憶體内的此位置被清除。流程繼續進行至方塊 904。The flowchart 8 of Fig. 8 emphasizes a high-order method for operating in the disable mode of the present invention. That is, the process = device described in the secure execution mode of the security code how to command the micro-processing to the native uncontrolled mode. The flow begins at block 8 (H, where it returns to the secure execution mode to execute the security weaving. The flow proceeds to the correction at block 802 + 'safe coding in the safe execution mode to execute the execution mode 6 she is), ie execute Safe execution is not safe, when the security code is executed on a SEM machine (4) when writing, start the real non-safe execution mode of the return - non-safe = mode) 'which leads to a security exception (two _ ° η ). The program control is transferred to the security exception manager in the security code - address where the address is provided by the contents of the aforementioned security interrupt description symbol form. In the -real_, the security exception manager performs a write to the machine-specific scratchpad to indicate acceptance of this return. In case, this mechanical special register is not correctly written, this return is slightly older, and the micro-processing H (four) is riding safely. If the handshake is confirmed, the flow proceeds to block 803. In decision block 〇3, the evaluation of the non-volatile enable indicates the internal disable safe execution mode of the register (supports returning to the non-secure execution mode). If it is not disabled (supports return to non-secure execution mode), the flow proceeds to CN_2/0608-A41940TWf/4g 200949602. In the event that the acknowledgment indicates that the plurality of bits 70 of the register are in the non-secure execution mode phase, the continuation proceeds to block 804. In block 806, the secure execution mode is maintained and control returns to the secure code. , f side, 8 〇 4 'update non-volatile enable indicator register to indicate that the microprocessor is operating in non-secure execution mode. The flow proceeds to block 805. The state of the microprocessor in the square 805 is returned to the native uncontrolled mode, i.e., the method of disabling the safe execution mode operation in the microprocessor of the present invention. Fig. 9 is a flowchart showing the method of performing the internal security coding of the microprocessor of the present invention in detail. That is, the method of stream__f is the seventh diagram: a more detailed description of the flowchart 700. The process begins with the block ❹ 22 (4) 'The microprocessor of Benming is executing a non-secure application in its native uncontrolled mode. The process continues to block.之一In one of the non-secure execution modes, the operating system executes the temporary storage W transmission X, the system _ person to the machine-specific, and the "or the eve parameter", wherein the - or more wire parameters are based on The private money granted is to be asymmetrically crowned. This or more enabling parameters include a pointer to the executed asymmetrically encrypted secure coded target. This material can be stored online (4) and/or BIOS memory. The flow proceeds to block 9〇3. In block 903, the microprocessor decrypts the transmitted one or more enabling parameters using a corresponding authorized public key. In an embodiment CNTR2447/0608-A41940TWi/ Λί\200949602, during the manufacture of the microprocessor, the authorized public key is programmed to a non-volatile authorized public key register. In another alternate embodiment, 'the public key of the authorization is programmed to a location within the secure non-volatile memory of the present invention' and the public key of the authorization is safe from the initial boot of the microprocessor. The volatile memory is retrieved and the authorized public key is programmed to the non-volatile authorized public key register and then cleared at this location in the secure non-volatile memory. Flow continues to block 904.

在方塊904中’判斷解密的致能參數是否有效。假使 有效,流程繼續進行至方塊905。假使無效,流程則繼續 進行至方塊907。 在方塊905中,由於已判斷出此致能參數是有效的, 則執行複數隨機寫入於安全非揮發記憶體的所有位置以清 除安全非揮發記憶體的内容。流程則繼續進行至方塊9〇6。 在判斷方塊906中,加密的安全編碼自系統記憶體/以 及或BIOS記憶體被操取。接著,使用授權的公開金餘並 根據非對稱金鑰演算法來對此加㈣安全編碼進行解密。 在一實施例中,在微處理器中執行邏輯電路内的〆加密單 元用來解密此加密的安全編碼。在—實施例中,此加密單 ?能執行AES加密操作、SHA]雜湊操作以& rsa加密 操作。解密後的安全編瑪接著被解壓縮,且被檢查格式是 否正確。假使解密後的安全編碼格式正確,流程繼續進行 至=塊9G8。假使解密後的安全編碼格式不正確,流程則 繼續進行至方塊907。 在方塊907中, CNTR2447/ 0608^41940^^ 由於解密後的致能參數是無效的,程 50 200949602 式控制則返回至非安全執行模式。 在方塊908中’解密的安全編碼(以及對應的初始次 料’若有的話)藉*使用處理器切並根據_金輪^ 法來加也、,其中,此處理器金输是此微處理器所獨有的, 且在製造時編程至一非揮發處理器金鑰暫存器内。在一 施例中,此對稱金鑰為128位元之AES金鑰,且此微 器利用其加密單元來對安全編碼執行AES加密。流程繼 進行至方塊909。 ^ ❹ ❹ 在方塊909中,此微處理器建立加密安全編碼中一 多個段落的一或多個雜湊。在一實施例中,微處理器内= 加密早元用來建立加密編碼之一或多個SHA-1雜凑。'充 繼續進行至方塊910。 〜 在方塊910中,微處理器透過私密匯流排將加密的安 全編碼(以及資料’若有的話)以及此一或多個雜凑寫入 至安全非揮發記憶體,其中,此私密匯流排隔離於系統匯 流排資源。此安全編碼與資料被加密,因此阻止了安^編 碼内容的偵測。流程繼續進行至方塊911。 在步驟911中,設定非揮發致能指示暫存器以指示安 全執行模式被致能。流程繼續進行至方塊912。 在方塊912中’於微處理器内執行安全執行模式致能 重置序列(reset sequence)。此重置序列包括硬體檢查(如同 第5圖中相關的§寸論)以及初始化安全揮發記慎體為複數 亂數’即完成本發明之微處理器内初始化安全編碼執行的 方法。 接著參閱第10圖’流程圖1000表示本發明微處理器 CNTR2447/ 0608-A41940TWf/ 51 200949602 中,行安全執行模式致能重置操作的方法,其丨,此微處 理器已致犯文全執行模式的操作。流程開始於方塊 1001 > 、¥微處理器元成安全執行模式的初始化時,微處理 器執行安全執㈣纽能重置序列。流程_ 1002 〇In block 904, it is determined if the decrypted enable parameter is valid. If it is valid, the flow proceeds to block 905. If it is invalid, the flow proceeds to block 907. In block 905, since it is determined that the enable parameter is valid, then multiple random writes are made to all locations of the secure non-volatile memory to clear the contents of the secure non-volatile memory. The flow continues to block 9-6. In decision block 906, the encrypted secure code is fetched from system memory/and or BIOS memory. Next, the authorized disclosure amount is used and the (4) security code is decrypted according to the asymmetric key algorithm. In one embodiment, a cryptographic unit within the logic circuitry is executed in the microprocessor to decrypt the encrypted secure code. In an embodiment, the encryption unit can perform AES encryption operations, SHA] hash operations, and & rsa encryption operations. The decrypted security code is then decompressed and checked for correct format. If the decrypted security code format is correct, the flow proceeds to = block 9G8. If the decrypted secure encoding format is incorrect, the flow continues to block 907. In block 907, CNTR2447/0608^41940^^ is returned to the non-secure execution mode because the decrypted enable parameter is invalid. In block 908, the 'decrypted security code (and the corresponding initial material 'if any) is borrowed by the processor and added according to the _ gold wheel method, wherein the processor gold input is the microprocessor. Unique to the device and programmed into a non-volatile processor key register at the time of manufacture. In one embodiment, the symmetric key is a 128-bit AES key, and the microprocessor uses its cryptographic unit to perform AES encryption on the secure code. Flow proceeds to block 909. ^ ❹ ❹ In block 909, the microprocessor establishes one or more hashes of a plurality of paragraphs in the encrypted secure code. In one embodiment, the intra-processor = encryption early element is used to establish one or more SHA-1 hashes of the encryption code. 'Charging continues to block 910. ~ In block 910, the microprocessor writes the encrypted secure code (and the data 'if any) and the one or more hashes to the secure non-volatile memory through the private bus, wherein the private bus Isolated from system bus resources. This security code and data are encrypted, thus preventing the detection of the contents of the code. Flow continues to block 911. In step 911, a non-volatile enable indication register is set to indicate that the safe execution mode is enabled. Flow continues to block 912. In block 912, a secure execution mode enable reset sequence is performed within the microprocessor. This reset sequence includes a hardware check (as in the related figure in Figure 5) and a method of initializing the security volatilization into a complex number, i.e., performing the initialization of the secure code in the microprocessor of the present invention. Referring next to Fig. 10, a flowchart 1000 shows a method for enabling a reset operation in a row safe execution mode in the microprocessor CNTR2447/0608-A41940TWf/51 200949602 of the present invention. Thereafter, the microprocessor has committed a full execution. Mode operation. The process begins at block 1001 >, when the microprocessor element is initialized to the secure execution mode, the microprocessor executes the security (four) button reset sequence. Process _ 1002 〇

在方塊1002中,微處理器執行複數處理器誠實性檢 查,包括安全非揮發記憶體、電池與石英器的摘測與確認。 此外,核龍祕時脈时在錢㈣實性,並確認提供 給匯流排終端與微處理器供應電源之適t電壓。微處理器 之溫度確認處於-可接受__。流程繼續進行至方塊 在方塊1003中,微處理器執行非揮發記憶體連結 —nectivity)與雜湊檢查。自安全非揮發記憶體内一位置 讀取安全簽章,並對此安全簽章進行解密。解密後的簽章 被核對以證實非揮發記憶體沒有被沒漏。此外,微處理器 亦讀取安全非揮發記鐘之特定位置與對應的雜湊。透過 加密(即則HASH/RSA)單元,產生被選擇位置的確認 雜湊,且與被讀取的雜凑進行比較。流程繼續進行至方塊 1004。 在處理器執行安全實時時鐘的確認。 在-實施射’ h執行模式實時時鐘估計 態’則貞測在頻率上大於百分之五的改變,因此矣的狀 英器與在電池電壓上大於百分之五的 衣不出石 又 i衣不中赞方 的安全威脅徵兆。假使上述確認檢查的任—者產 ,, 結果,根據偵測到事件的嚴重性與次數,安全執彳_ “利, CNTR2447/0608-A41940TWf^ 订4果式致 200949602 器進 1005 ° 能重置序列將使此事件被記錄下來,或者迫使微處理 入降級模式,或硬體關機模式。流程繼續進行至方塊 在方塊1005中’自非揮發記憶體(系統記憶體以及/或 BIOS記憶體)擷取加密的安全編碼以及資料。流程繼續進 行至方塊1006。 在方塊1006中,解碼與解壓縮加密的安全編碼,且域 認格式正確後,安全碥碼接著被載入至微處理器内的安全 揮發記憶體。流程繼續進行至方塊1〇〇7。In block 1002, the microprocessor performs a multi-processor honesty check, including the extraction and validation of secure non-volatile memory, batteries, and quartz. In addition, the nuclear dragon secret clock is in the money (four) solid, and confirms the appropriate t voltage provided to the bus terminal and the microprocessor to supply power. The temperature of the microprocessor is confirmed to be - acceptable __. Flow continues to block. In block 1003, the microprocessor performs a non-volatile memory link (nectivity) and a hash check. Read the security signature from a location in the secure non-volatile memory and decrypt the security signature. The decrypted signature was checked to verify that the non-volatile memory was not leaked. In addition, the microprocessor reads the specific location of the secure non-volatile clock and the corresponding hash. The cryptographic hash of the selected location is generated by the encrypted (i.e., HASH/RSA) unit and compared to the hash being read. Flow continues to block 1004. A confirmation of the secure real-time clock is performed on the processor. In the implementation of the 'h execution mode real-time clock estimation state' then speculates that the change in frequency is greater than five percent, so the 状 矣 与 与 与 与 与 与 大于 大于 大于 大于 大于 大于 大于 大于 大于 大于The warning signs of China’s Zambia’s security threats. If the above-mentioned confirmation check is produced, the result is based on the severity and frequency of the detected event, and the safety is enforced _ "Lee, CNTR2447/0608-A41940TWf^ 4 fruit type to 200949602 into 1005 ° can be reset The sequence will cause this event to be logged, or force the microprocessor into a degraded mode, or a hardware shutdown mode. The flow proceeds to block "from non-volatile memory (system memory and/or BIOS memory)" in block 1005. The encrypted secure code and data are taken. The flow proceeds to block 1006. In block 1006, the secure coded code is decoded and decompressed, and the secure code is then loaded into the microprocessor for security. Volatile memory. The flow proceeds to block 1〇〇7.

在方塊1007中,初始化微處理器内的安全資源。這些 安全資源無法被非安全編碼所得知或存取,且只對於在安 全執行模式中執行的安全編碼而言是可利用的。這些資源 包括安全計時器、安全中斷以及安全例外,且包括安全中 斷描述符號表單、以及任何安全機械專用暫存器或為了安 全編碼的執行而必須被初始化的其他暫存器。初始化包括 非安全中斷、非女全例外、非安全追縱以及除錯邏輯電路 的禁能,也包括微處理器之任何電源管理邏輯電路的禁 能,其中包括導致核心電壓、核心時脈頻率之變化或者致 能或禁能其他元件(例如快取記憶體、分支預測單元等等) 的任何元件。流程繼續進行至方塊1〇〇8。 在方塊1008中,初始化微處理器内的非安全的快取記 憶體(即L1快取記憶體、L2快取記憶體)為亂數。流程 繼續進行至方塊1〇〇9。 在方塊1009中,產生一安全執行模式中斷,且根據存 在於安全中斷描述符號表單内的資料來呼尋(call)安全執 行模式重置功能,其中,此安全中斷描述符號表單在方塊 CNTR2447/ 0608-A41940丁\\^ „ 200949602 1007中被初始化,即完成本發明微處理时 模式致能重置操作的方法。 文王執行 ❹ e 接著參閱第11圖,流程圖11〇〇表示本發 中終止安全執^模式操作之方法。此方 削,於其中,安全編碼正執行於安域賴= 概於括方塊 根據本發明’具有三種方法使微處理器由非安全 轉換為安全執賴式,朗始安全編碼的執行1 =式 法允許程式控制轉移為安全編碼的執行。即是,在安入方 行模式下的非安全應用程式如同SEMENTER指令二執 行。在-實施例中’ SEMENTER指令導致微處理二;^ 被儲存在安全揮發記憶體内的堆疊,且程式控制轉移至= 全編碼,非常類似x86SYSENTER指令的操作。第二種= 法是,當執行非安全或安全重置序列時,導致安全^碼的 執打是由於一中斷或例外所致。導致安全編碼執行的最後 一個方法,是起因於來自任何數量之安全監控邏輯元件的 中斷,就像關於第5圖的討論。 如上所述,執行在安全執行模式之安全編碼,永久地 存在於安全非揮發記憶體,但是在一安全執行模式致能重 置序列的期間,其已被載入至安全揮發記憶體。即是,此 安全編碼不再自非安全記憶體中執行,例如系統記憶體或 非安全的處理器快取記憶體。因此,藉由兩種方法,執行 控制由安全執行模式轉換回非安全執行模式。第一種方法 包括執行SRESUME指令,其引起來自SEMENTER指令的 回應(return)。在x86實施例中,此.SRESUME指令以與x86 RESUME相似的方法來操作。即是,預先儲存在安全揮發 CNTR2447/ 0608-A41940TW 54 200949602 ❹In block 1007, the security resources within the microprocessor are initialized. These security resources are not known or accessed by non-secure coding and are only available for secure coding performed in secure execution mode. These resources include security timers, security interrupts, and security exceptions, and include a secure interrupt description symbol form, as well as any security machine-specific scratchpads or other scratchpads that must be initialized for the execution of secure encoding. Initialization includes non-secure interrupts, non-female exceptions, non-secure traces, and disables for debug logic circuits, as well as disables of any power management logic circuitry of the microprocessor, including core voltage and core clock frequency. Any element that changes or enables or disables other components (such as cache memory, branch prediction unit, etc.). The flow proceeds to block 1-8. In block 1008, the non-secure cache memory (i.e., L1 cache memory, L2 cache memory) within the microprocessor is initialized to a random number. The flow proceeds to block 1〇〇9. In block 1009, a secure execution mode interrupt is generated and the secure execution mode reset function is invoked based on the data present in the secure interrupt description symbol form, wherein the secure interrupt description symbol is in the box CNTR2447 / 0608 -A41940丁\\^ „ 200949602 1007 is initialized, that is, the method of enabling the reset operation when the micro-processing of the present invention is completed. Wen Wang Execution ❹ e Next, refer to FIG. 11 , and flowchart 11 〇〇 indicates termination of security in the present invention The method of performing the mode operation. In this case, the security code is being executed in the domain of the domain. According to the invention, there are three ways to convert the microprocessor from non-safe to secure. The execution of the secure code 1 = method allows the program control to be transferred to the execution of the secure code. That is, the non-secure application in the install mode is executed as the SEMENTER instruction 2. In the embodiment - the SEMENTER command causes the microprocessor 2; ^ is stored in a stack of secure volatile memory, and the program control is transferred to = full encoding, very similar to the operation of the x86SYSENTER instruction. The method is that when a non-secure or secure reset sequence is executed, the execution of the security code is due to an interruption or exception. The last method that leads to the execution of the secure code is due to any number of security monitoring. The interruption of the logic element is as discussed with respect to Figure 5. As described above, the secure encoding performed in the secure execution mode is permanently present in the secure non-volatile memory, but during a secure execution mode enabling the reset sequence , it has been loaded into the safe volatilization memory. That is, this security code is no longer executed from non-secure memory, such as system memory or non-secure processor cache memory. Therefore, by two methods The execution control is converted back to the non-secure execution mode by the secure execution mode. The first method includes executing a SRESUME instruction that causes a return from the SEMENTER instruction. In the x86 embodiment, the .SRESUME instruction is similar to x86 RESUME. Method to operate. That is, pre-stored in safe volatilization CNTR2447/ 0608-A41940TW 54 200949602 ❹

=憶體中雜式狀態被恢復㈣G1>ed),且程式控制轉移至 =作系統或非安全編碼。第二種方法是考慮強迫一安全例 ’其中’藉由對只可由安全編碼來存取之一機械專用暫 存錄行寫人,微處理器之安全^件可存取此安全例外。 假使確織處判將相至非安全執㈣式,接著產生被 操作系統指日η處理的—非安全機械檢查例外,因此 :非安全執行模式的返回。第u圖之流程圖謂提出強 2安全例外以返回至非安全執行模式,而此技術領域中 =有通常知識麵理解,SRESUME指令的執行導致微處 理盗去執打下文所述的相似步驟。 因此’流程持續於方塊1102,於其中,將安全編 入至安全執行模式機械專用暫存器(seMmsr>semmsr 即是,只可被執行在安全執㈣式下之安全編碼所存取且 得知的複數機械專用暫存器中之—者。流程繼續進行至方 塊 1103 。 在方塊11〇3中,寫入至安全執行模式機械專用暫存器 生了由SEM邏輯電路内安全例外邏輯電路所處理的安 全例外。流程繼續進行至方塊 在方塊1104中,安全例外邏輯電路(例如安全中斷描 =符號表單)導致程式控制分支至安全編碼内的安全例外 官理者。流程繼續進行至方塊11〇5。 在方塊1105中’安全例外管理者回應—授權的例外編 碼。此安全例外管理者執行至安全編碼的返回,萨以將一 =的例外編碼傳送回安全編碼。流程繼續“至方塊 CNTR2447/ 0608~A4l940TWf/ 55 200949602 在方塊1106中,判斷由安全例外管理者所回應之例外 編碼是否正確。假使此例外編瑪不正確,則假設有一安全 風險’且流程繼續進行至方塊1112。假使此例外編碼正確, 則安全編碼與安全例外管理者之間的交握則被確認以指示 返回至非安全執行模式,且流程繼續進行至方塊11〇7。 在方塊1112中,維持安全執行模式,且控制權返回至 安全編碼。= The memory state in the memory is restored (4) G1 > ed), and the program control is transferred to = for system or non-secure coding. The second method is to consider forcing a security instance 'where' by accessing a machine-specific temporary record holder that can only be accessed by secure code, and the security of the microprocessor can access this security exception. If the decision is made to the non-safety (4), then the non-safe mechanical inspection exception is processed by the operating system η, therefore: the return of the non-safe execution mode. The flowchart of Fig. u is to propose a strong 2 security exception to return to the non-secure execution mode, and in this technical field = there is a general knowledge understanding, the execution of the SRESUME instruction causes the micro-processing to steal the similar steps described below. Therefore, the flow continues at block 1102, in which security is programmed into the secure execution mode mechanical dedicated register (seMmsr> semmsr, which is only accessible and securely executed under the security code (4). In the plurality of machine-specific registers, the flow proceeds to block 1103. In block 11〇3, the write to the safe execution mode mechanical dedicated register is generated by the security exception logic in the SEM logic circuit. The security exception. The flow proceeds to block in block 1104 where the security exception logic (e.g., the security interrupt descriptor = symbol form) causes the program control branch to the security exception handler within the security code. Flow continues to block 11〇5. In block 1105, 'Security Exception Manager Response—Authorized Exception Code. This security exception manager performs a return to the secure code, and Say's sends an exception code of one = back to the security code. The flow continues to the block CNTR2447/ 0608~ A4l940TWf/ 55 200949602 In block 1106, it is determined whether the exception code responded by the security exception manager is correct. If the exception is incorrectly programmed, then assume a security risk' and the process proceeds to block 1112. If the exception is coded correctly, the handshake between the security code and the security exception manager is confirmed to indicate a return to non-secure execution. The mode continues and the flow proceeds to block 11-7. In block 1112, the secure execution mode is maintained and control returns to the secure code.

❹ 在方塊1107中’微處理器執行複數隨機寫入於安全非 揮發記憶體的所有位置以清除安全非揮發記憶體之内容。 安全應用程式利用微處理器内之一亂數產生器來產生亂數 資料且對安全非揮發記憶體内之所有位置執行隨機寫入。 流程繼續進行至方塊1108。 在方塊1108中,微處理器藉由將寫入至安全非揮 發記憶體之每一位置’來清除安全非揮發記憶體之每一位 置。流程繼續進行至方塊1109。 在方塊1109中,設定非揮發致能指示暫存器以指示安 全執行模式被禁能,亦即,微處理器正操作在一非安全執 行模式中。其受限於安全執行模式可被禁能的次數,如同 前文關於第8圖之說明。流程繼續進行至方塊ul〇。 在方塊111G中,安全例外邏輯電路產生—機械檢查例 外,此外回應一狀態參數(亦即例外編碼指示狀態)來將程 式控制轉移至非安全應用程式中之一。因此,在^安全執 行模式下的操作系統處理此機械檢查例外,且完成返回至 非安全執行模式。流程繼續進行至方塊11U。 在方塊1111中,即完成本發明微處理器中終止安入 CNTR2447/ 〇608-A41940TWf/ 56 200949602 行模式操作之方法。 第12圖絲示-安全實時時鐘·之詳細方塊圖, ,、位於本發明之微處理+的8跑邏輯電路内。#全❹ In block 1107, the microprocessor performs a plurality of random writes to all locations of the secure non-volatile memory to clear the contents of the secure non-volatile memory. The secure application utilizes a random number generator in the microprocessor to generate random data and perform random writes to all locations in the secure non-volatile memory. Flow continues to block 1108. In block 1108, the microprocessor clears each location of the secure non-volatile memory by writing to each location of the secure non-volatile memory. Flow continues to block 1109. In block 1109, the non-volatile enable indication register is set to indicate that the secure execution mode is disabled, i.e., the microprocessor is operating in a non-secure execution mode. It is limited by the number of times the safe execution mode can be disabled, as explained above with respect to Figure 8. The process continues to block ul〇. In block 111G, the security exception logic generates a mechanical check exception and, in addition, responds to a state parameter (i.e., the exception code indicates a state) to transfer the program control to one of the non-secure applications. Therefore, the operating system in the safe execution mode handles this mechanical check exception and returns to the non-secure execution mode. Flow continues to block 11U. In block 1111, the method of terminating the operation of the CNTR2447/〇608-A41940TWf/56 200949602 line mode is terminated in the microprocessor of the present invention. Figure 12 is a detailed block diagram of a secure real-time clock, located in the 8-run logic circuit of the microprocessor + of the present invention. #all

f 12;〇只可由正操作在安全執行模式下的安全編碼來: 知且存取。安全實時時鐘包括震盪器,其透過” vp耗接電池且透過信號C1及C2來減石料。此震^ 器產生震盪輸出電壓信號vo,且信號v〇 _計數号 1202。此計數器產生輸出錢CNT〇,且輸出信號⑶阳 被路由至轉換邏輯電路湖。信號vp、ci、及^也輸入 至轉換邏輯電路12〇3,此外,信號脈同樣輸入至轉換 邏輯電路,其中’信號ENV載有對應晶粒溫度之數值。轉 換邏輯電路副產生透過信號TEMp、BATT、c〇Mp、 XTAL以及雙向匯_ TIME來提㈣複數料。此微處 理器透過雙向匯流排T臓提供輸人至此安全實時時鐘。 震盪器刪與計數器12〇2是專用的,即是除了被提 供來允許微處理料過雙肖匯㈣TIME對安全實時時鐘 進行讀取和寫人的元件以外,他們無法共享其他電路系統 或微處理ϋ的其他元件。此外,^要電池透過信號vp提 供可接受的電壓時,安全實時時鐘持續其計數。在一交替 的實施例中’電池電壓信號Vp m统板上的電容器所 產生’以代替只要系統板開機而持續被充電的電池。 在^作上’震盪器1201產生震盤輸出電壓信號v〇, 其,石英器之頻率成比例’且此震盪輸出電壓被提供至計 數叫1202计數器1202包括複數元件,用來計算透過信 號VO所提供之週期數,並將此數轉換為—計數數值。 CNTR2447/ 0608-A41940TWf7 _ 200949602 此計數數值被提供至信號CNTO上。轉換邏輯電路1203 包括複數電路,用將CNTO之數值轉換為持續時間數值’ 此外’轉換邏輯電路1203也包括複數暫存器(未顯系)’ 其可透過雙向匯流排TIME而被微處理器來讀取與寫入。 此外,轉換邏輯電路1203用來偵測電壓信號VP的顯 著變化,指示出潛在的篡改,且此一事件由信號BATT之 設置來表示,其中,信號BATT之設置係用來中斷立執行 的安全編碼。在一實施例中,大於百分之五的變化導致 BATT中斷被設置。 轉換邏輯電路1203也用來透過信號C1與C2來侦測石 英器頻率的顯著變化,因此指示潛在的篡改,真此/事件 藉由信號XTAL的設置來表示。信號XTAL的設置係用來 中斷正執行的安全編碼。在一實施例中’大於百分之五的 變化導致XTAL中斷被設置。 信號ENV係由轉換邏輯電路1203來估計,以判斷因 溫度偏離而使計數器1202產生不精準的計數。假使判斷出 溫度偏離,信號TEMP則被設置,其用來中斷正執行的安 全編碼。 轉換邏輯電路1203也用來估計上述情況中任一者是否 足夠顯著,以指示安全實時時鐘已被洩漏,例如電池的移 動與取代。假使被判斷出,信號COMP也被設置,因此中 斷安全編碼的執行。 本發明提供一些高於現今技術的優點以在安全環境中 執行應用程式。例如,根據本發明之設計是以微處理器為 基礎。即是,本發明之一目的是修改負責安全編碼的微處 CNTR2447/ 0608-A41940TWf/ 58 200949602 =器,這是⑽,相躲著重祕m从他 八他技術,只有微處理器可提供及時執行安全。 絲 晶片來監控微處理H的方法有許多的时安全性隔離 對於安全相關的執行而言效能也明顯地降低。 且 根據本發明中以X86為基礎的實施例,由於χ86 化技術的普遍性,安全編碼的發展相當地平易。χ86 已被得知,且對於精通非安全χ86應用發展的任何程$吸 什者而έ ’機械專用指令之附加與專用指今 ©7 、例如 SEMENABLE、SEMENTER、及 SRESUME 指令)借棱 w 較少的學習挑戰。 ^供 此外,對於微處理器的附加安全執行能力的成本遠小 於額外晶片組被加至系統設計所呈現的成本。 此外,由於安全執行環境係被提供至微處理器本身之 内,因此内在地對抗那些物理或從屬通道攻擊,其不需要 附加外部電路。 此處所揭露的技術非常有利地提供安全的微處理器操 ❹ 作環境’在此環境中,會被洩漏的一般機密(例如一般加 始、金鑰或程式架構)不會儲存於其中。即是,本發明之每 一處理器只具有需要被特定處理器或系統授權、控制等等 的機密。來自一處理器/系統之機密不會破壞在另一處理器 /糸統的安全性。此外’得知如何破壞在一處理器的安全 性’應當不會使其更容易地去破壞其他處理器上的安全 性。即是,這是由於獨特的處理器金鑰,此獨特的處理器 金鑰是由在安.全非揮發記憶體匯流排上的資料傳輸所提供 且導致的’其中,這些資料傳輸係使用此金鑰來加密。 CNTR2447/ 0608-A41940TWf/ <〇 200949602 與提供對抗俗稱阻絕服務攻擊(denial_〇f_service attack)之H的冑知技術比較起來’根據本發明之微處理 器具有更多的優點。例如,如第5圖所討論,提供安全監 控疋件則貞測並取得在事件上的活動,例如持續對安全執 行環境的呼尋(例如來自惡意裝置驅動器),實時時鐘電 池、石英器的持續移除等等。 本發明雖以較佳實施例揭露如上,然其並非用以限定f 12; 〇 can only be obtained by secure coding in the safe execution mode: Know and access. The safe real-time clock includes an oscillator that consumes the battery through the "vp" and reduces the stone through the signals C1 and C2. The oscillator generates an oscillating output voltage signal vo, and the signal v〇_count number 1202. This counter produces the output money CNT 〇, and the output signal (3) is routed to the conversion logic circuit lake. The signals vp, ci, and ^ are also input to the conversion logic circuit 12〇3, and the signal pulse is also input to the conversion logic circuit, where the 'signal ENV carries the corresponding The value of the grain temperature. The conversion logic circuit generates the (4) complex material through the signals TEMp, BATT, c〇Mp, XTAL and the bidirectional sink _ TIME. The microprocessor provides the input to the secure real-time clock through the bidirectional bus bar T臓. The oscillator eraser and counter 12〇2 are dedicated, that is, they cannot share other circuitry or micros other than the components that are provided to allow the micro-processing material to read and write to the secure real-time clock at the TIME. Handling other components of the crucible. In addition, the safe real-time clock continues its count when the battery provides an acceptable voltage through the signal vp. In an alternate embodiment, the The voltage signal Vp m is generated by a capacitor on the board to replace the battery that is continuously charged as long as the system board is turned on. In the operation, the oscillator 1201 generates a shock plate output voltage signal v〇, which is proportional to the frequency of the quartz device. 'And this oscillating output voltage is supplied to the counter 1202. The counter 1202 includes a plurality of components for calculating the number of cycles provided by the transmitted signal VO and converting this number into a -counting value. CNTR2447/ 0608-A41940TWf7 _ 200949602 The count value is provided to signal CNTO. Conversion logic circuit 1203 includes a complex circuit that converts the value of CNTO to a duration value. 'Additional' conversion logic circuit 1203 also includes a complex register (not shown). The bus TIME is read and written by the microprocessor. In addition, the conversion logic circuit 1203 is used to detect a significant change of the voltage signal VP, indicating potential tampering, and the event is represented by the setting of the signal BATT. Wherein, the setting of the signal BATT is used to interrupt the secure coding of the execution. In an embodiment, a variation greater than five percent causes the BATT interrupt to be The conversion logic circuit 1203 is also used to detect significant changes in the frequency of the quartz through the signals C1 and C2, thus indicating potential tampering, which is represented by the setting of the signal XTAL. The setting of the signal XTAL is used The safety code being executed is interrupted. In one embodiment, a change greater than five percent causes the XTAL interrupt to be set. The signal ENV is estimated by the conversion logic circuit 1203 to determine that the counter 1202 is inaccurate due to temperature deviations. Counting. If the temperature deviation is judged, the signal TEMP is set, which is used to interrupt the safety code being executed. Switching logic circuit 1203 is also used to estimate whether any of the above conditions are sufficiently significant to indicate that the secure real time clock has been leaked, such as battery movement and replacement. If it is judged that the signal COMP is also set, the execution of the secure code is interrupted. The present invention provides some advantages over current technology to execute applications in a secure environment. For example, the design in accordance with the present invention is based on a microprocessor. That is, one of the objects of the present invention is to modify the micro-injection CNTR2447/0608-A41940TWf/58 200949602=, which is responsible for the secure coding, which is (10), and hides the secret m from his eight-technical technology, and only the microprocessor can provide timely execution. Safety. There are many time-safe isolation methods for silk wafers to monitor microprocessor H. Performance is also significantly reduced for safety-related implementations. And in accordance with the X86-based embodiment of the present invention, the development of secure coding is relatively straightforward due to the ubiquity of the χ86 technology. Χ86 has been known, and for any course that is proficient in the development of non-secure χ86 applications, έ 'Additional and special instructions for machine-specific instructions, such as SEMENABLE, SEMENTER, and SRESUME instructions. Learning challenges. In addition, the cost of additional security execution capabilities for microprocessors is much less than the cost of adding additional chipsets to the system design. In addition, since the secure execution environment is provided within the microprocessor itself, it inherently opposes those physical or slave channel attacks, which do not require additional external circuitry. The techniques disclosed herein are highly advantageous in providing a secure microprocessor operating environment in which a general secret that would be compromised (e.g., a general start, key, or program architecture) is not stored. That is, each processor of the present invention has only secrets that need to be authorized, controlled, etc. by a particular processor or system. The secret from one processor/system does not compromise the security of the other processor/system. In addition, 'knowing how to compromise the security of a processor' should not make it easier to compromise the security on other processors. That is, this is due to the unique processor key that is provided by the data transfer on the A. Fully non-volatile memory bus and which results in the use of these data transmission systems. Key to encrypt. CNTR2447/0608-A41940TWf/ <〇 200949602 The microprocessor according to the present invention has more advantages than the known technique of providing H against the denial_〇f_service attack. For example, as discussed in Figure 5, providing security monitoring components detects and captures activity on events, such as ongoing calls to the secure execution environment (eg, from a malicious device driver), real-time clock battery, and continuous movement of the quartz. Besides and so on. Although the present invention has been disclosed above in the preferred embodiments, it is not intended to be limiting.

❹ 本發明的範ffi,任何所屬技術領域中具有通常知識者,在 不脫離本發明之精神和範圍内,當可做些許的更動與潤 飾’因此本發明之保護範圍當視後附之申請專利範圍所界 定者為準。 【圖式簡單說明】 第1圖表示根據本發明之安全執行模式(SEM)微處 理器之方塊示意圖; 第2圖表示說明第丨圖之微處理器中最高階級操作模 式之狀態圖; 第3圖表示根據本發明之微處理器中SEM邏輯電路之 方塊示意圖; 第4圖表示在根據本發明之微處理器内,安全編碼如 何被儲存、存取、初始化以及執行的方塊示意圖; 第5圖表示在第1圖之微處理器中,SEM監控邏輯電 路的詳細方塊示意圖; 第6圖表示在根據本發明之微處理器内操作模式轉換 之狀態圖; 第7圖表示在本發明之微處理器中致能安全執行模式 CNTR2447/ 0608-A41940TWf/ 60 200949602 操作的高階方法流程圖; 第8圖表示在本發明之微處理器中禁能安全執行模式 操作之高階方法流程圖; 第9圖表示在本發明之微處理器内初始化安全編碼執 行的方法流程圖; 第10圖表示本發明微處理器中執行安全執行模式致能 重置操作的方法流程圖; 第11圖表示在本發明微處理器中終止安全執行模式操 ❹ 作之方法流程圖;以及 第12圖表示在本發明之微處理器内安全實時時鐘之詳 細方塊示意圖。 【主要元件符號說明】 100〜系統板; 101〜安全執行模式微處理器; 102〜系統匯流排; 103〜匯流排主控裝置; 104〜匯流排管理裝置; 105〜安全執行模式邏輯電路; ® 106〜私密匯流排; 107〜安全非揮發記憶體;The invention is not limited to the spirit and scope of the invention, and may be modified and retouched. The scope is defined. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram showing a safe execution mode (SEM) microprocessor according to the present invention; Fig. 2 is a view showing a state of the highest class operation mode in the microprocessor of Fig. 3; Figure 4 is a block diagram showing the SEM logic circuit in a microprocessor according to the present invention; Figure 4 is a block diagram showing how secure coding is stored, accessed, initialized, and executed in a microprocessor in accordance with the present invention; A detailed block diagram of the SEM monitoring logic circuit in the microprocessor of FIG. 1; FIG. 6 is a state diagram showing the operation mode transition in the microprocessor according to the present invention; and FIG. 7 shows the micro processing in the present invention. High-order method flow chart for enabling safe execution mode CNTR2447/ 0608-A41940TWf/ 60 200949602; Figure 8 is a flow chart showing a high-order method for disabling safe execution mode operation in the microprocessor of the present invention; A flowchart of a method for initializing a secure code execution in a microprocessor of the present invention; FIG. 10 is a view showing a safe execution mode in a microprocessor of the present invention A flowchart of a method capable of resetting operation; FIG. 11 is a flowchart showing a method of terminating a secure execution mode operation in the microprocessor of the present invention; and FIG. 12 is a diagram showing a detailed description of a secure real-time clock in the microprocessor of the present invention; Block diagram. [Main component symbol description] 100~ system board; 101~ secure execution mode microprocessor; 102~ system bus; 103~ bus master; 104~ bus management; 105~ safe execution mode logic; 106~private bus; 107~ secure non-volatile memory;

Cl、C2〜連接路徑/信號; PSNT〜内存檢測匯流排/信號; VP〜電池; VP1、VP2〜連接路徑/信號; XI〜石英器; 200〜狀態圖; 201〜非安全執行模式(原生未受控模式); 202〜安全執行模式(SEM-致能模式); 203〜降級模式; 204〜硬體關機模式; CNTR2447/ 0608-A41940TWf7 61 200949602 300〜安全執行模式微處理器; 301〜SEM邏輯電路;302〜安全揮發記憶體; 303〜處理器狀態; 304〜安全編碼; 305〜SEM初始化邏輯電路; 306〜SEM監控邏輯電路; 307〜SEM中斷邏輯電路; 308〜SEM例外邏輯電路; 309〜SEM計時器; 310〜SEM實時時鐘; ® 311 〜AES/HASH/RSA 單元; 312〜處理器金鑰暫存器; 313〜處理器執行單元;314〜正常例外邏輯電路; 315〜正常追蹤/除錯邏輯電路; 316〜正常中斷邏輯電路; 317〜對應安全編碼之安全資料; 318〜授權的公開金鑰暫存器; 319〜亂數產生器; ® 320、321、324、326、327〜匯流排; 322〜電源管理邏輯電路; 323〜位址邏輯電路; 325〜非安全記憶體; 328〜非揮發致能指示暫存器; 329〜SEM機械專用暫存器記憶庫; 400〜圖示; 401〜微處理器; 402〜安全編碼介面邏輯電路; 403〜匯流排介面單元; 404〜授權的公開金鑰暫存器; CNTR2447/ 0608-A41940TWf/ 62 200949602 405〜AES/HASH/RSA 單元; 406〜安全揮發記憶體; 407〜安全非揮發記憶體介面單元; 408〜SEM監控邏輯電路; 409〜SEM初始化邏輯電路; 410〜BIOS記憶體;4U、421〜安全編 4!2〜亂數產生器;413〜處理器金㈣存器· 420〜系統記憶體;425〜系統匯流排;, ❹ 430〜安全非揮發記憶體; 43卜私密匯流排;432〜授權的公開金輪 CHK、INS〜匯流排; 500〜SEM監控邏輯電路; 501〜物理環境監控器; 502〜匯流排時脈監控器; 503〜頻率參考單元;5〇4〜處理器電壓監控器; 505〜溫度控斋, 506〜資料監控器· ® 507〜安全時戳計數器; 508〜正常時戳計數器; 509〜比率機械專用暫存器; 510〜樣式監控器; 511〜指令監控器; 512〜指令陣列; 513〜監控管理器; BUSTERM、BUS CLK、CORE CLK、TEMP、VDD、 CLASS1、CLASS2、CLASS3、DISABLE〜信號; DESTRUCT、INS、NOBOOT、PINCHK、TAMPER、 CHK〜匯流排; CNTR2447/ 0608-A41940TWf^ 63 200949602 600〜詳細操作模式圖示; 601〜原生未受控模式(非安全執行模式); 602〜SEM致能重置模式[1:N]; 603〜SEM致能正常執行模式; 604〜SEM致能安全執行模式; ❹ 605〜降級模式 700〜流程圖 800〜流程圖 900〜流程圖 1000〜流程圖 1100〜流程圖 606〜硬體關機模式; 701.. .705〜流程步驟 801.. .806〜流程步驟 901.. .912〜流程步驟 1001.. .1009〜流程步驟; 1101…1112〜流程步驟; 1200〜安全實時時鐘;1201〜震盪器; 1202〜計數器; 1203〜轉換邏輯電路; VP、ENV〜信號; VO、CNTO〜輸出信號; CNTO〜輸出信號; ❹ TEMP、BATT、COMP、XTAL〜信號; TIME〜雙向匯流排。 CNTR2447/ 0608-A41940TWfi^Cl, C2 ~ connection path / signal; PSNT ~ memory detection bus / signal; VP ~ battery; VP1, VP2 ~ connection path / signal; XI ~ quartz; 200 ~ state diagram; 201 ~ non-secure execution mode (native Controlled mode); 202~secure execution mode (SEM-enable mode); 203~degraded mode; 204~hardware shutdown mode; CNTR2447/ 0608-A41940TWf7 61 200949602 300~safe execution mode microprocessor; 301~SEM logic Circuit; 302~ safe volatile memory; 303~ processor state; 304~ secure code; 305~SEM initialization logic circuit; 306~SEM monitor logic circuit; 307~SEM interrupt logic circuit; 308~SEM exception logic circuit; SEM timer; 310~SEM real time clock; ® 311~AES/HASH/RSA unit; 312~ processor key register; 313~ processor execution unit; 314~normal exception logic circuit; 315~normal tracking/dividing Error logic circuit; 316~ normal interrupt logic circuit; 317~ corresponding security code security data; 318~ authorized public key register; 319~ random number generator; ® 320, 321 324, 326, 327 ~ bus; 322 ~ power management logic; 323 ~ address logic; 325 ~ non-secure memory; 328 ~ non-volatile enable indicator register; 329 ~ SEM mechanical dedicated register memory Library; 400~illustration; 401~microprocessor; 402~secure coding interface logic circuit; 403~bus interface interface unit; 404~authorized public key register; CNTR2447/ 0608-A41940TWf/ 62 200949602 405~AES /HASH/RSA unit; 406~secure volatile memory; 407~secure non-volatile memory interface unit; 408~SEM monitoring logic circuit; 409~SEM initialization logic circuit; 410~BIOS memory; 4U,421~ security 4 !2~ random number generator; 413~ processor gold (four) memory · 420 ~ system memory; 425 ~ system bus; , ❹ 430 ~ secure non-volatile memory; 43 b private bus; 432 ~ authorized public Golden wheel CHK, INS ~ bus; 500 ~ SEM monitoring logic; 501 ~ physical environment monitor; 502 ~ bus timing monitor; 503 ~ frequency reference unit; 5 〇 4 ~ processor voltage monitor; 505 ~ temperature Fast, 506~ data monitor · 507 ~ secure time stamp counter; 508 ~ normal time stamp counter; 509 ~ ratio mechanical special register; 510 ~ style monitor; 511 ~ instruction monitor; 512 ~ instruction array; ~ Monitor Manager; BUSTERM, BUS CLK, CORE CLK, TEMP, VDD, CLASS1, CLASS2, CLASS3, DISABLE~ signal; DESTRUCT, INS, NOBOOT, PINCHK, TAMPER, CHK~ bus; CNTR2447/ 0608-A41940TWf^ 63 200949602 600 ~ detailed operation mode icon; 601 ~ native uncontrolled mode (non-secure execution mode); 602 ~ SEM enable reset mode [1: N]; 603 ~ SEM enable normal execution mode; 604 ~ SEM enable Safe execution mode; ❹ 605~degraded mode 700~flowchart 800~flowchart 900~flowchart 1000~flowchart 1100~flowchart 606~hardware shutdown mode; 701.. .705~flow step 801.. .806~ Process steps 901..912~ process steps 1001..1009~flow steps; 1101...1112~flow steps; 1200~secure real time clock; 1201~oscillator; 1202~counter; 1203~transition logic circuit; VP, ENV~ signal; VO, CNTO~ output signal; CNTO~ output signal; TEMP TEMP, BATT, COMP, XTAL~ signal; TIME~ bidirectional bus. CNTR2447/ 0608-A41940TWfi^

Claims (1)

200949602 七、申請專利範圍·· 1.-種提供安全執 一徽虛®毋 心教罝’包括: 應用程式,其中,該安全應用2女全應用程式與-安全 全執行模式下執行,且該箄式只在該微處理器内〜安 流排而存取自—系統記憶體,^^^程式透過—系统匯 一非揮發致能指示暫存 吨括: ❹ 是否處於該安全執行模式或L非示該微處理器 尹,在該微處理器之電 王執仃模式下,其 非料致能指示暫存器電之\移^持與績重广新施加的期間,該 厂安全非揮發記憶體,透過一私密工流排:及 理器,用以館存該安全應用程式,其中,=接該微處 上該微處理器與該安全非揮發記憶體之==,流排 輸’隔離於該系統匯流排以及該微處理器内之:=料傳 統匯流排資源。 之複數财應系 ❹ 2. 如申請專利範圍第1項所述之提供安全執行環境之 =,其卜賴處理器内之—安全執行模搞輯電 據進入至該安全執行模式而對該非揮發致能指示乂 行第一次寫入,以指示出該微處理器處於該安全執行模w 3. 如申請專圍第2賴述之提供安全執行環境之 裝置,其中,該安全執行模式邏輯電路根據退出該安全執 行模式而對該非揮發致能指示暫存器進行第二次寫入,、 指示出該微處理器處於該非安全執行模式。 4. 如申請專利範圍第1項所述之提供考全執行環境之 裝置’其中’該非揮發致能指示暫存器包括配置在該微處 CNTR2447/ 0608-A41940TWf/ 65 200949602 晶敉 ___ w 絲’且該微處理器包括配置在一單 上之一早一積體電路。 裝置,^申中叫專利範圍第4項所述之提供安全執行環填之 安全執行模理器可由該安全執行模式轉換至该# 6.如申人數對應該等熔絲之特定熔絲數量。 裝置,其中^才利鼽圍第1項所述之提供安全執行環堍之 示該微處理該非揮發致能指示暫存器進行寫入以指 ©安全執行模°式^= 安全執行模式後’該微處理器内f 列。 ’ ~電路指示該微處理器去執行-重Ϊ序 裝置7,·Γ中請專 =範盧㈣1項所述之提供安全執行環境之 據由該安全執娜理器内之一安全執行模式邏輯電路根 估該非揮發非ί全執行模式之要求來評 至該非安全執行模式,:支:判斷是否支援返回 ❹賴式時,則維持該安全執行^支援返回至該非安全執 8.-種微處理器裝置,用以在 全編碼,該微處理器裝置包括:-執订環境中執敎 及一安全非揮發記憶體,用以錯存一安全應用程式,·以 -微處理器’透過一私密匯流排耦 用以執行複數非安全應用程式 :::記 其中,該安全應用程式只在一安 =私式, 微處理器包括: 、式中執行’且該 —舰=1 排介面單元^實現在-系統匯_上 200949602 之複數系統匯流排資料傳輸, 内之該等非安全應用程式; 己ϋ體 確⑽!全非揮發記憶體介面單元,用以透過一私密 η:該:處理_接至該安全非揮發記憶體, ΐ二ί 流排上用來存取該安全非揮發記情 排資料傳輪被隱藏,以避免被賴、 =:::Μ::資源以及一匯流排 :揮發=暫 /.如t請專利範圍第8項所述之微處理器裝置,其中, 該微處理器内之一安全執 π 、 全執行模式而對該非揮執發 入:= 微處理器處於該安全執行模Ϊ 專利範圍第9項所述之微處理 二===;安全一 微處理器處於該非安全執行模=一二人寫入,以指示出該 中二·:=:範圍暫V項所述之微處理器裝置,其 複數溶絲,且該微=二=3置在該微處理器内之 -積體電路。 盗包括配置在-單-晶粒上之-單 12.如申晴專利範圍第u項 CNTR2447/0608-A41940TWf7 做处狂益衣直,具 200949602 中,該微處理器可由該安全執行模式轉換至該非安全執行 模式的次數對應該等熔絲之特定熔絲數量。 13. 如申請專利範圍第8項所述之微處理器裝置,其 中,在對該非揮發致能指示暫存器進行寫入以指示該微處 理器處於該安全執行模式後,該微處理器内之一安全執行 模式邏輯電路指示該微處理器去執行一重置序列。 14. 如申請專利範圍第8項所述之微處理器裝置,其 中,該微處理器内之一安全執行模式邏輯電路根據由該安 ❹ 全執行模式返回至該非安全執行模式之要求來評估該非揮 發致能指示暫存器之内容,以判斷是否支援返回至該非安 全執行模式,且假使沒有支援返回至該非安全執行模式 時,則維持該安全執行模式。 15. —種在安全執行環境中執行安全編碼之方法,包括: 提供一安全非揮發記憶體,以儲存一安全編碼; 藉由在一私密匯流排上之複數私密資料傳輸,來將該 安全編碼儲存在該安全非揮發記憶體中,其中,該私密匯 ® 流排耦接該安全非揮發記憶體; 初始化一微處理器内之一安全執行模式,以執行該安 全編碼; 將該安全執行模式被致能之狀態記錄在一非揮發致能 指示暫存器;以及 透過該私密匯流排自該安全非揮發記憶體取得該安全 編碼,以由該微處理器來執行; 其中,該私密匯流排隔離於該微處理器内之所有系統 匯流排資源且配置在該微處理器之外部,且該私密匯流排 CNTR2447/ 0608-A41940TWf/ 68 200949602 只由該微處理器之一安全執行邏辑電路所得知及存取。 16.如申凊專利範圍第15項戶斤述之在安全執行環境中 執行安全編碼之方法,其中,將該安全執行模式被致能之 狀態記錄在該非揮發致能指示暫存器之步驟包括: 根據進入至該安全執行模式而對該非揮發致能指示暫 存器進行第-次寫入,以指示出該微處理器處於該安全執 行模式。 一 17.如申請專利範圍第16項所述之在安全執行環境中 執行安全編碼之方法,其巾,㈣安全執行模式被致能之 狀態記錄在該非揮發致能指示暫存器之步驟包括: 根據退出該安全執行模式而對該非揮發致能指示暫存 益進行第二次寫人’以指示出該微處理器歧 行模式。 卜文王m 18. 如申請糊範㈣15項所狀 執行安全編碼之方法,其中,該非揮發致能指示中 ❹ ::置器内之複數熔絲,且該微處理器= 置在一單一晶粒上之—[㈣。 祜配 19. 如申請專鄕圍第18項料 執行安全編碼之方法’其中’該微處理器可由 :=該非安全執行模式的:欠數對應該 20. 如申請專利範圍第15項所述之在安全 執行,全編狀方法,其中’在對該非揮發致能指=存 器進订寫人以指不該微處理器處於該安 微處理器内之一安全執行模式邏經带 _ '式後,該 CNTR2447/0608-A41940TW^ 、-· f路指示該微處理器去 200949602 執行一重置序列。 21.如申請專利範圍第15項所述之在安全執行環境中 執行安全編碼之方法,其中,該微處理器内之一安全執行 模式邏輯電路根據由該安全執行模式返回至該非安全執行 模式之要求來評估該非揮發致能指示暫存器之内容,以判 斷是否支援返回至該非安全執行模式,且假使沒有支援返 回至該非安全執行模式時,則維持該安全執行模式。200949602 VII. The scope of application for patents·· 1.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The 箄 type is only accessed in the microprocessor and is accessed from the system memory. The ^^^ program is transmitted through the system. A non-volatile enable indicates the temporary storage: ❹ Is it in the safe execution mode or L? It does not show the microprocessor Yin, in the microprocessor's power master mode, it is not expected to indicate the temporary storage of the memory and the heavy weight of the application period, the factory safe non-volatile memory Body, through a private work flow: and the device, used to store the security application, wherein = the micro-location of the microprocessor and the safe non-volatile memory ==, flow output 'isolation In the system bus and the microprocessor: = traditional bus resources. The plural financial system 2. If the safe execution environment is provided as described in item 1 of the patent application scope, the security execution module in the processor is entered into the safe execution mode and the non-volatile Enabled to indicate that the first write is performed to indicate that the microprocessor is in the safe execution mode w. 3. The apparatus for providing a secure execution environment, as claimed in the second application, wherein the secure execution mode logic circuit The non-volatile enable indication register is written a second time according to exiting the secure execution mode, indicating that the microprocessor is in the non-secure execution mode. 4. The apparatus for providing a test execution environment as described in claim 1 of the patent application 'where' the non-volatile enable indicator register includes a CNT2447/0608-A41940TWf/65 200949602 wafer ___ w wire disposed at the micro point 'And the microprocessor includes one of the integrated circuits on one single. The device, which is called the safe execution ring filling described in the fourth paragraph of the patent scope, can be switched from the safe execution mode to the #6, such as the number of specific fuses corresponding to the number of fuses. The device, wherein the method of providing a safe execution of the loop described in item 1 of the method, the micro-processing, the non-volatile enable indicating that the register is written to refer to the "safe execution mode" = "safe execution mode" The f column inside the microprocessor. The circuit indicates that the microprocessor is to be executed - the re-sequencing device 7, which is specifically designed to provide a safe execution environment, and one of the security execution mode logics in the security system The circuit estimates the non-volatile non-existing execution mode to evaluate the non-secure execution mode. Branch: When determining whether to support the return mode, the security execution is maintained. Support is returned to the non-secure license. Device for full encoding, the microprocessor device includes: - a binding environment and a secure non-volatile memory for storing a secure application, - a microprocessor - through a private sink The decoupling is used to execute a plurality of non-secure applications::: wherein the security application is only in one amp = private mode, and the microprocessor includes: , executing in the formula and the ship-1 channel device unit is implemented in - System _ _ 200949602 multiple system bus data transmission, these non-secure applications; ϋ 确 确 (10)! All non-volatile memory interface unit, through a private η: This: processing _ to The security Non-volatile memory, used to access the safe non-volatile memory data stream is hidden to avoid being ridiculed, =:::Μ:: resources and a bus: volatilization = temporary / The microprocessor device of claim 8, wherein one of the microprocessors performs a safe execution of the π, full execution mode and sends the non-swing: = the microprocessor is in the safe execution mode微 The microprocessor 2 described in item 9 of the patent scope ===; the security-microprocessor is in the non-secure execution mode=one-two-person write to indicate that the middle two::=: range is temporarily V item The microprocessor device has a plurality of dissolved wires, and the micro=two=3 is integrated in the microprocessor. The thief includes the configuration on the - single-die - single 12. If Shen Qing patent scope item u is CNTR2447/0608-A41940TWf7, in the case of 200949602, the microprocessor can be switched from the safe execution mode to The number of non-safe execution modes corresponds to the number of specific fuses of the fuse. 13. The microprocessor device of claim 8, wherein the non-volatile enable indicating register is written to indicate that the microprocessor is in the safe execution mode, within the microprocessor A secure execution mode logic circuit instructs the microprocessor to perform a reset sequence. 14. The microprocessor device of claim 8, wherein one of the safe execution mode logic circuits in the microprocessor evaluates the non-return according to a requirement to return to the non-secure execution mode by the safe execution mode. The volatilization enable indicates the contents of the register to determine whether support is returned to the non-secure execution mode, and if no support is returned to the non-secure execution mode, the safe execution mode is maintained. 15. A method of performing secure encoding in a secure execution environment, comprising: providing a secure non-volatile memory to store a secure code; and encoding the secure code by transmitting a plurality of private data over a private bus Stored in the secure non-volatile memory, wherein the private sink stream is coupled to the secure non-volatile memory; initialize a safe execution mode in a microprocessor to perform the secure encoding; The enabled state is recorded in a non-volatile enable indicating register; and the secure code is obtained from the secure non-volatile memory through the private bus for execution by the microprocessor; wherein the private bus All system bus resources are isolated from the microprocessor and are disposed outside the microprocessor, and the private bus CNTR2447/0608-A41940TWf/68 200949602 is only obtained by one of the microprocessors safely executing the logic circuit Know access. 16. The method of claim 15, wherein the step of executing the secure execution mode in the secure execution environment is recorded in the step of recording the state of the safe execution mode in the non-volatile enablement register. : Performing a first write to the non-volatile enable indicating register in accordance with entering the secure execution mode to indicate that the microprocessor is in the safe execution mode. A method of performing security coding in a secure execution environment as described in claim 16 of the patent application, wherein the step of recording the state in which the secure execution mode is enabled in the non-volatile enable indication register comprises: The non-volatile enable indication of the temporary benefit is performed by exiting the secure execution mode to indicate the microprocessor mode.卜文王m 18. A method of performing a security coding in the application of a subparagraph (4), wherein the non-volatile energy indicates a plurality of fuses in the middle of the device, and the microprocessor = is placed in a single crystal grain On the -[(4).祜 19. If you apply for the stipulation of the 18th item, the method of implementing the security code 'where' the microprocessor can be: = the non-safe execution mode: the number of the owed is 20. The application is as stated in item 15 of the patent application. In a secure implementation, a fully-edited method, where 'in the non-volatile enabler = register to write a person to indicate that the microprocessor is in the safe execution mode of the microprocessor, _ ' The CNTR2447/0608-A41940TW^, -·f path instructs the microprocessor to perform a reset sequence to 200949602. 21. The method of performing secure coding in a secure execution environment as recited in claim 15, wherein one of the secure execution mode logic circuits in the microprocessor returns to the non-secure execution mode according to the safe execution mode. A request is made to evaluate the contents of the non-volatile enablement register to determine whether support is returned to the non-secure execution mode, and if no support is returned to the non-secure execution mode, the secure execution mode is maintained. CNTR2447/ 0608-A41940TW 分 70CNTR2447/ 0608-A41940TW Points 70
TW098113866A 2008-05-24 2009-04-27 Microprocessor apparatus and method for persistent enablement of a secure execution mode TWI394060B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5598008P 2008-05-24 2008-05-24
US12/263,221 US8209763B2 (en) 2008-05-24 2008-10-31 Processor with non-volatile mode enable register entering secure execution mode and encrypting secure program for storage in secure memory via private bus

Publications (2)

Publication Number Publication Date
TW200949602A true TW200949602A (en) 2009-12-01
TWI394060B TWI394060B (en) 2013-04-21

Family

ID=41104037

Family Applications (13)

Application Number Title Priority Date Filing Date
TW098112468A TWI397859B (en) 2008-05-24 2009-04-15 Microprocessor having internal secure cache
TW098112460A TWI395137B (en) 2008-05-24 2009-04-15 Microprocessor having secure non-volatile storage access
TW098112626A TWI385555B (en) 2008-05-24 2009-04-16 Microprocessor apparatus providing for secure interrupts and exceptions
TW098112627A TWI385574B (en) 2008-05-24 2009-04-16 Microprocessor apparatus for secure on-die real-time clock
TW098112991A TWI581183B (en) 2008-05-24 2009-04-20 Apparatus and method for isolating a secure execution mode in a microprocessor
TW098112994A TWI405123B (en) 2008-05-24 2009-04-20 On-die cryptographic apparatus in a secure microprocessor
TW098113142A TWI520057B (en) 2008-05-24 2009-04-21 Apparatus and method for disabling a microprocessor that provides for a secure execution mode
TW098113141A TWI405124B (en) 2008-05-24 2009-04-21 Apparatus and method for managing a microprocessor providing for a secure execution mode
TW098113277A TWI397856B (en) 2008-05-24 2009-04-22 Microprocessor providing isolated timers and counters for execution of secure code
TW098113443A TWI489378B (en) 2008-05-24 2009-04-23 Apparatus and method for precluding execution of certain instructions in a secure execution mode microprocessor
TW098113588A TWI407367B (en) 2008-05-24 2009-04-24 Initialization of a microprocessor providing for execution of secure code
TW098113866A TWI394060B (en) 2008-05-24 2009-04-27 Microprocessor apparatus and method for persistent enablement of a secure execution mode
TW098113867A TWI394076B (en) 2008-05-24 2009-04-27 Termination of secure execution mode in a microprocessor providing for execution of secure code

Family Applications Before (11)

Application Number Title Priority Date Filing Date
TW098112468A TWI397859B (en) 2008-05-24 2009-04-15 Microprocessor having internal secure cache
TW098112460A TWI395137B (en) 2008-05-24 2009-04-15 Microprocessor having secure non-volatile storage access
TW098112626A TWI385555B (en) 2008-05-24 2009-04-16 Microprocessor apparatus providing for secure interrupts and exceptions
TW098112627A TWI385574B (en) 2008-05-24 2009-04-16 Microprocessor apparatus for secure on-die real-time clock
TW098112991A TWI581183B (en) 2008-05-24 2009-04-20 Apparatus and method for isolating a secure execution mode in a microprocessor
TW098112994A TWI405123B (en) 2008-05-24 2009-04-20 On-die cryptographic apparatus in a secure microprocessor
TW098113142A TWI520057B (en) 2008-05-24 2009-04-21 Apparatus and method for disabling a microprocessor that provides for a secure execution mode
TW098113141A TWI405124B (en) 2008-05-24 2009-04-21 Apparatus and method for managing a microprocessor providing for a secure execution mode
TW098113277A TWI397856B (en) 2008-05-24 2009-04-22 Microprocessor providing isolated timers and counters for execution of secure code
TW098113443A TWI489378B (en) 2008-05-24 2009-04-23 Apparatus and method for precluding execution of certain instructions in a secure execution mode microprocessor
TW098113588A TWI407367B (en) 2008-05-24 2009-04-24 Initialization of a microprocessor providing for execution of secure code

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW098113867A TWI394076B (en) 2008-05-24 2009-04-27 Termination of secure execution mode in a microprocessor providing for execution of secure code

Country Status (3)

Country Link
US (13) US8209763B2 (en)
CN (15) CN101533444B (en)
TW (13) TWI397859B (en)

Families Citing this family (198)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747733B2 (en) 2004-10-25 2010-06-29 Electro Industries/Gauge Tech Power meter having multiple ethernet ports
US20080276302A1 (en) 2005-12-13 2008-11-06 Yoggie Security Systems Ltd. System and Method for Providing Data and Device Security Between External and Host Devices
US8869270B2 (en) 2008-03-26 2014-10-21 Cupp Computing As System and method for implementing content and network security inside a chip
US8381297B2 (en) 2005-12-13 2013-02-19 Yoggie Security Systems Ltd. System and method for providing network security to mobile devices
US20070237325A1 (en) * 2006-02-01 2007-10-11 Gershowitz Michael N Method and apparatus to improve security of cryptographic systems
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8365272B2 (en) 2007-05-30 2013-01-29 Yoggie Security Systems Ltd. System and method for providing network and computer firewall protection with dynamic address isolation to a device
JP2009059005A (en) * 2007-08-29 2009-03-19 Panasonic Corp DEBUG SYSTEM, DEBUG DEVICE AND METHOD
KR20090059602A (en) * 2007-12-07 2009-06-11 한국전자통신연구원 Encryption device with session memory bus
US8150039B2 (en) * 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US8209763B2 (en) * 2008-05-24 2012-06-26 Via Technologies, Inc. Processor with non-volatile mode enable register entering secure execution mode and encrypting secure program for storage in secure memory via private bus
US8631488B2 (en) * 2008-08-04 2014-01-14 Cupp Computing As Systems and methods for providing security services during power management mode
US8484486B2 (en) * 2008-08-06 2013-07-09 Silver Spring Networks, Inc. Integrated cryptographic security module for a network node
US8789202B2 (en) 2008-11-19 2014-07-22 Cupp Computing As Systems and methods for providing real time access monitoring of a removable media device
US8230495B2 (en) * 2009-03-27 2012-07-24 International Business Machines Corporation Method for security in electronically fused encryption keys
US8756439B1 (en) * 2009-08-28 2014-06-17 Physical Optics Corporation Encryption key management for secured access
US8510569B2 (en) 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
GB2482811B (en) * 2009-12-16 2017-07-05 Intel Corp Providing integrity verification and attestation in a hidden execution environment
US9087200B2 (en) * 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US8543838B1 (en) * 2009-12-23 2013-09-24 Marvell International Ltd. Cryptographic module with secure processor
GB2476683A (en) * 2010-01-05 2011-07-06 St Microelectronics Detection of clock tampering by comparison of the clock with a trusted clock signal
DE102010006572A1 (en) * 2010-02-02 2011-08-04 Giesecke & Devrient GmbH, 81677 Method for executing an application
JP2011232801A (en) * 2010-04-23 2011-11-17 Renesas Electronics Corp Information processing system and ic card
US8671285B2 (en) * 2010-05-25 2014-03-11 Via Technologies, Inc. Microprocessor that fetches and decrypts encrypted instructions in same time as plain text instructions
US8856504B2 (en) * 2010-06-07 2014-10-07 Cisco Technology, Inc. Secure virtual machine bootstrap in untrusted cloud infrastructures
US8407783B2 (en) * 2010-06-17 2013-03-26 Mediatek Inc. Computing system providing normal security and high security services
US8590038B2 (en) * 2010-08-20 2013-11-19 Via Technologies, Inc. Revokeable MSR password protection
US8468365B2 (en) * 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
US8479042B1 (en) * 2010-11-01 2013-07-02 Xilinx, Inc. Transaction-level lockstep
US8554797B2 (en) * 2010-12-17 2013-10-08 Sap Ag System and method for modular business applications
FR2970099B1 (en) * 2010-12-29 2013-01-11 Viaccess Sa METHOD FOR LOADING A CODE OF AT LEAST ONE SOFTWARE MODULE
DE102011012227A1 (en) * 2011-02-24 2012-08-30 Giesecke & Devrient Gmbh Method for exchanging data in a secure runtime environment
US8955142B2 (en) 2011-03-21 2015-02-10 Mocana Corporation Secure execution of unsecured apps on a device
US9396325B2 (en) 2011-03-21 2016-07-19 Mocana Corporation Provisioning an app on a device and implementing a keystore
US8769305B2 (en) * 2011-03-21 2014-07-01 Moncana Corporation Secure execution of unsecured apps on a device
US9473485B2 (en) 2011-03-21 2016-10-18 Blue Cedar Networks, Inc. Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing
US8812868B2 (en) 2011-03-21 2014-08-19 Mocana Corporation Secure execution of unsecured apps on a device
DE102011018431A1 (en) 2011-04-21 2012-10-25 Giesecke & Devrient Gmbh Method for displaying information on a display device of a terminal
TWI465952B (en) * 2011-05-05 2014-12-21 Univ Nat Taipei Technology Macro file execution platform applied for smart phone
US9076019B2 (en) * 2011-06-29 2015-07-07 Intel Corporation Method and apparatus for memory encryption with integrity check and protection against replay attacks
US9465755B2 (en) * 2011-07-18 2016-10-11 Hewlett Packard Enterprise Development Lp Security parameter zeroization
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
US12260078B2 (en) 2011-10-04 2025-03-25 Ei Electronics Llc Dynamic webpage interface for an intelligent electronic device
US10303860B2 (en) * 2011-10-04 2019-05-28 Electro Industries/Gauge Tech Security through layers in an intelligent electronic device
US10771532B2 (en) 2011-10-04 2020-09-08 Electro Industries/Gauge Tech Intelligent electronic devices, systems and methods for communicating messages over a network
US20150356104A9 (en) 2011-10-04 2015-12-10 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US10275840B2 (en) 2011-10-04 2019-04-30 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US10862784B2 (en) 2011-10-04 2020-12-08 Electro Industries/Gauge Tech Systems and methods for processing meter information in a network of intelligent electronic devices
DE102011115135A1 (en) 2011-10-07 2013-04-11 Giesecke & Devrient Gmbh Microprocessor system with secure runtime environment
US8458804B1 (en) 2011-12-29 2013-06-04 Elwha Llc Systems and methods for preventing data remanence in memory
CN104115125B (en) * 2011-12-29 2017-12-01 英特尔公司 The error handle of safety
JP5275482B2 (en) * 2012-01-16 2013-08-28 株式会社東芝 Storage medium, host device, memory device, and system
JP5990927B2 (en) * 2012-02-17 2016-09-14 富士電機株式会社 Control system, control device, and program execution control method
JP5900143B2 (en) * 2012-05-15 2016-04-06 富士電機株式会社 Control system, control device, and program execution control method
EP2856377B1 (en) * 2012-06-01 2017-09-27 Intel Corporation Identification and execution of subsets of a plurality of instructions in a more secure execution environment
FR2993682B1 (en) * 2012-07-20 2014-08-22 Oberthur Technologies UPDATE OF AN OPERATING SYSTEM FOR SECURE ELEMENT
WO2014046974A2 (en) 2012-09-20 2014-03-27 Case Paul Sr Case secure computer architecture
US9047471B2 (en) 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
US9043632B2 (en) 2012-09-25 2015-05-26 Apple Inc. Security enclave processor power control
US8775757B2 (en) 2012-09-25 2014-07-08 Apple Inc. Trust zone support in system on a chip having security enclave processor
US9292712B2 (en) * 2012-09-28 2016-03-22 St-Ericsson Sa Method and apparatus for maintaining secure time
US9973501B2 (en) 2012-10-09 2018-05-15 Cupp Computing As Transaction security systems and methods
JP2014089652A (en) * 2012-10-31 2014-05-15 Toshiba Corp Information processing apparatus
EP2741229B1 (en) * 2012-12-07 2018-10-17 Samsung Electronics Co., Ltd Priority-based application execution method and apparatus of a dual-mode data processing device
US20140184411A1 (en) * 2012-12-31 2014-07-03 Alcatel Lucent Alarm condition processing in network element
KR20140105343A (en) * 2013-02-22 2014-09-01 삼성전자주식회사 Device and method for securing datausing a plurality of mode in the device
CN104038469B (en) * 2013-03-07 2017-12-29 中国银联股份有限公司 Equipment for safety information interaction
US8959576B2 (en) * 2013-03-14 2015-02-17 Intel Corporation Method, apparatus, system for qualifying CPU transactions with security attributes
US11816465B2 (en) 2013-03-15 2023-11-14 Ei Electronics Llc Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
US9058494B2 (en) 2013-03-15 2015-06-16 Intel Corporation Method, apparatus, system, and computer readable medium to provide secure operation
CN104077155B (en) 2013-03-28 2018-09-21 中国银联股份有限公司 The startup of application program in mobile device
US9330035B2 (en) * 2013-05-23 2016-05-03 Arm Limited Method and apparatus for interrupt handling
US9927995B2 (en) * 2013-06-19 2018-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and an integrated circuit for executing a trusted application within a trusted runtime environment
WO2015006375A1 (en) 2013-07-08 2015-01-15 Cupp Computing As Systems and methods for providing digital content marketplace security
US20150052603A1 (en) * 2013-08-13 2015-02-19 Arxan Technologies, Inc. Anti-tamper system with self-adjusting guards
JP6117068B2 (en) * 2013-09-20 2017-04-19 株式会社東芝 Information processing apparatus and program
US9767044B2 (en) * 2013-09-24 2017-09-19 Intel Corporation Secure memory repartitioning
US9536063B2 (en) * 2013-10-24 2017-01-03 Intel Corporation Methods and apparatus for protecting software from unauthorized copying
US10055588B2 (en) 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US9507942B2 (en) 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9779242B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US9367689B2 (en) * 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US9767288B2 (en) 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
US9798880B2 (en) 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US10095868B2 (en) * 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9547767B2 (en) * 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9779243B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
DE102014105245A1 (en) * 2013-12-05 2015-06-11 Deutsche Post Ag A method for effecting a change of an operating mode
US9311508B2 (en) 2013-12-27 2016-04-12 Intel Corporation Processors, methods, systems, and instructions to change addresses of pages of secure enclaves
US10431024B2 (en) 2014-01-23 2019-10-01 Apple Inc. Electronic device operation using remote user biometrics
US9762614B2 (en) 2014-02-13 2017-09-12 Cupp Computing As Systems and methods for providing network security using a secure digital device
ES2545974B1 (en) * 2014-03-17 2016-04-27 Bankinter, S.A. Automatic and customized protection system for mobile applications
US9268970B2 (en) * 2014-03-20 2016-02-23 Analog Devices, Inc. System and method for security-aware master
US9268972B2 (en) 2014-04-06 2016-02-23 Freescale Semiconductor, Inc. Tamper detector power supply with wake-up
US11734396B2 (en) 2014-06-17 2023-08-22 El Electronics Llc Security through layers in an intelligent electronic device
US10192062B2 (en) * 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10691838B2 (en) 2014-06-20 2020-06-23 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10169618B2 (en) 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US9703733B2 (en) * 2014-06-27 2017-07-11 Intel Corporation Instructions and logic to interrupt and resume paging in a secure enclave page cache
US9747967B2 (en) 2014-09-26 2017-08-29 Intel Corporation Magnetic field-assisted memory operation
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
JP6788160B2 (en) * 2014-12-16 2020-11-25 ピー、エイチ、シー、リミテッド、ライアビリティー、カンパニーPhc Llc Methods and devices for randomizing computer instruction sets, memory registers, and pointers
US20160188495A1 (en) * 2014-12-26 2016-06-30 Intel Corporation Event triggered erasure for data security
US10063569B2 (en) * 2015-03-24 2018-08-28 Intel Corporation Custom protection against side channel attacks
GB2537115B (en) * 2015-04-02 2021-08-25 Advanced Risc Mach Ltd Event monitoring in a multi-threaded data processing apparatus
CN104914815A (en) * 2015-04-15 2015-09-16 北汽福田汽车股份有限公司 Processor monitoring method, device and system
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
US10129035B2 (en) 2015-08-10 2018-11-13 Data I/O Corporation Device birth certificate
GB2541400B (en) * 2015-08-17 2017-11-15 Advanced Risc Mach Ltd Tracing of exception handling events
US10013551B2 (en) 2015-08-24 2018-07-03 Accenture Global Services Limited Isolated memory space
US9998284B2 (en) 2015-09-24 2018-06-12 Intel Corporation Methods and apparatus to provide isolated execution environments
US10142101B2 (en) * 2015-09-29 2018-11-27 Intel Corporation Hardware enforced one-way cryptography
TWI560575B (en) * 2015-10-15 2016-12-01 Via Tech Inc Microprocessor and method for securely executing instructions therein
US20170109526A1 (en) * 2015-10-20 2017-04-20 Intel Corporation Systems and methods for providing anti-malware protection and malware forensics on storage devices
GB2543520B (en) * 2015-10-20 2019-06-19 Advanced Risc Mach Ltd Memory access instructions
FR3043228B1 (en) * 2015-11-03 2018-03-30 Proton World International N.V. STARTING THE CONTROL OF AN ELECTRONIC CIRCUIT
KR102415388B1 (en) * 2015-11-13 2022-07-01 삼성전자주식회사 System on chip and secure debugging method thereof
US10095631B2 (en) * 2015-12-10 2018-10-09 Arm Limited System address map for hashing within a chip and between chips
US10185633B2 (en) 2015-12-15 2019-01-22 Intel Corporation Processor state integrity protection using hash verification
US10958435B2 (en) 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
US10129359B2 (en) * 2016-01-20 2018-11-13 Google Llc Methods and apparatus to selectively provide cached and presently compiled applications
US11424931B2 (en) 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
US10430263B2 (en) 2016-02-01 2019-10-01 Electro Industries/Gauge Tech Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices
US10599409B2 (en) * 2016-02-02 2020-03-24 Blackberry Limited Application lifecycle operation queueing
CN108701193B (en) * 2016-02-12 2022-08-30 汉阳大学校产学协力团 Secure semiconductor chip and method for operating the same
US10474823B2 (en) * 2016-02-16 2019-11-12 Atmel Corporation Controlled secure code authentication
US10482255B2 (en) * 2016-02-16 2019-11-19 Atmel Corporation Controlled secure code authentication
CN105790927B (en) * 2016-02-26 2019-02-01 华为技术有限公司 A kind of bus graded encryption system
US10616197B2 (en) 2016-04-18 2020-04-07 Atmel Corporation Message authentication with secure code verification
BR112018073991A2 (en) * 2016-08-09 2019-02-26 Huawei Technologies Co., Ltd. chip system and processing device
US10678924B2 (en) 2016-08-10 2020-06-09 Qualcomm Incorporated Hardware-based software-resilient user privacy exploiting ephemeral data retention of volatile memory
US10248486B2 (en) * 2016-09-29 2019-04-02 Intel Corporation Memory monitor
TWI655555B (en) * 2016-10-31 2019-04-01 威盛電子股份有限公司 Apparatus and method for securing bios
CN107273770B (en) * 2016-10-31 2020-08-11 威盛电子股份有限公司 Protection device and method for basic input output system
KR102802837B1 (en) * 2016-12-20 2025-05-07 삼성전자주식회사 User terminal apparatus and controlling method of thereof
US10068068B2 (en) * 2016-12-30 2018-09-04 Intel Corporation Trusted timer service
EP3364329B1 (en) * 2017-02-21 2023-07-26 Mastercard International Incorporated Security architecture for device applications
CN106970678B (en) * 2017-03-10 2020-01-21 武汉融卡智能信息科技有限公司 Control method of safety clock under RPC mechanism under TEE
CN109756442B (en) * 2017-11-01 2020-04-24 清华大学 Data statistics method, device and equipment based on garbled circuit
CN109753821B (en) * 2017-11-01 2022-03-15 瑞昱半导体股份有限公司 Data access device and method
US10614254B2 (en) * 2017-12-12 2020-04-07 John Almeida Virus immune computer system and method
US10642970B2 (en) * 2017-12-12 2020-05-05 John Almeida Virus immune computer system and method
CN109945911A (en) * 2017-12-15 2019-06-28 富泰华工业(深圳)有限公司 Electronic device, disassembly monitoring device and method
JP6584487B2 (en) * 2017-12-20 2019-10-02 キヤノン株式会社 Information processing apparatus, control method thereof, and program
KR20190075363A (en) * 2017-12-21 2019-07-01 삼성전자주식회사 Semiconductor memory device, memory system and memory module including the same
US11686594B2 (en) 2018-02-17 2023-06-27 Ei Electronics Llc Devices, systems and methods for a cloud-based meter management system
US11734704B2 (en) 2018-02-17 2023-08-22 Ei Electronics Llc Devices, systems and methods for the collection of meter data in a common, globally accessible, group of servers, to provide simpler configuration, collection, viewing, and analysis of the meter data
US11754997B2 (en) 2018-02-17 2023-09-12 Ei Electronics Llc Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems
US11392925B2 (en) 2018-04-13 2022-07-19 Mastercard International Incorporated Method and system for contactless transmissions using off-the-shelf devices
TWI698769B (en) * 2018-04-18 2020-07-11 新唐科技股份有限公司 Secure access to peripheral devices over a bus
GB201806465D0 (en) 2018-04-20 2018-06-06 Nordic Semiconductor Asa Memory-access controll
GB201807257D0 (en) * 2018-05-02 2018-06-13 Nordic Semiconductor Asa Cryptographic key distribution
EP3579135B1 (en) * 2018-06-06 2021-08-11 Secure-IC SAS Methods and devices for hardware characterization of computing devices
GB201810662D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Access On A Secure-Aware Bus System
GB201810659D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure-Aware Bus System
GB201810653D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure peripheral interconnect
DE102018120344B4 (en) * 2018-08-21 2024-11-21 Pilz Gmbh & Co. Kg Automation system for monitoring a safety-critical process
DE102018120347A1 (en) * 2018-08-21 2020-02-27 Pilz Gmbh & Co. Kg Automation system for monitoring a safety-critical process
US10713163B2 (en) 2018-09-11 2020-07-14 Toshiba Memory Corporation Set aware system data and mapping tables
US10909030B2 (en) * 2018-09-11 2021-02-02 Toshiba Memory Corporation Enhanced trim command support for solid state drives
US12288058B2 (en) 2018-09-20 2025-04-29 Ei Electronics Llc Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
US11429753B2 (en) * 2018-09-27 2022-08-30 Citrix Systems, Inc. Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications
GB2577878B (en) * 2018-10-08 2020-11-11 Advanced Risc Mach Ltd Transition disable indicator
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
US11347529B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Inject interrupts and exceptions into secure virtual machine
US10956188B2 (en) 2019-03-08 2021-03-23 International Business Machines Corporation Transparent interpretation of guest instructions in secure virtual machine environment
US11308215B2 (en) 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
TWI751962B (en) * 2019-04-07 2022-01-01 新唐科技股份有限公司 Secured device, secured method, secured system, and secured apparatus
TWI738135B (en) * 2019-04-07 2021-09-01 新唐科技股份有限公司 Monitor system booting security device and method thereof
US11863589B2 (en) 2019-06-07 2024-01-02 Ei Electronics Llc Enterprise security in meters
US11429751B2 (en) 2019-07-01 2022-08-30 Rajant Corporation Method and apparatus for encrypting and decrypting data on an integrated circuit
FR3098613A1 (en) 2019-07-09 2021-01-15 STMicroelectronics (Grand Ouest) SAS PROCESS FOR MANAGING THE OPERATION OF AT LEAST ONE NUMBER APPLICATION SOFTWARE AND CORRESPONDING INTEGRATED CIRCUIT
CN110659458A (en) * 2019-10-10 2020-01-07 陈昶宇 Central processor design method supporting software code data secret credible execution
US11507702B2 (en) 2019-11-05 2022-11-22 Apple Inc. Secure mode switching in neural processor circuit
WO2021118520A1 (en) * 2019-12-09 2021-06-17 Hewlett-Packard Development Company, L.P. Secure operating modes for computing devices
CN113139175B (en) * 2020-01-19 2024-12-06 阿里巴巴集团控股有限公司 Processing unit, electronic device and safety control method
EP4088214A4 (en) 2020-02-21 2023-08-30 Hewlett-Packard Development Company, L.P. Computing devices for encryption and decryption of data
US11327904B2 (en) * 2020-03-11 2022-05-10 Denso International America, Inc. Systems and methods for securing protected items in memory
FR3111441B1 (en) 2020-06-10 2022-08-05 Proton World Int Nv Secure start of an electronic circuit
CN114153637B (en) * 2020-08-17 2025-07-08 昆达电脑科技(昆山)有限公司 Servo system
WO2022055804A1 (en) 2020-09-08 2022-03-17 Osom Products, Inc. Mobile device with secure private memory
TWI797521B (en) * 2020-12-18 2023-04-01 新唐科技股份有限公司 Method and system for protecting data in external memory using isolatled execution enviroment
CN114721717B (en) * 2020-12-22 2023-09-19 成都鼎桥通信技术有限公司 Dual-system-based mobile phone management system mdm instruction calling method and device
US11677560B2 (en) * 2021-03-09 2023-06-13 Micron Technology, Inc. Utilization of a memory device as security token
US20230177143A1 (en) * 2021-12-03 2023-06-08 International Business Machines Corporation Operating a secure code segment on a processor core of a processing unit
US12314755B2 (en) 2021-12-03 2025-05-27 International Business Machines Corporation Scheduling a secure code segment on a processor core of a processing unit
TWI829138B (en) * 2022-04-08 2024-01-11 信驊科技股份有限公司 Electronic device and data transmission protection device thereof
EP4276633A1 (en) * 2022-05-13 2023-11-15 Thales Dis France SAS Secured semiconductor device and method
EP4357957A1 (en) * 2022-10-18 2024-04-24 Thales Dis France Sas Method for securing against physical or logical attacks an execution of a machine language instructions code
US12254091B2 (en) * 2022-11-02 2025-03-18 VMware LLC Endpoint incident response from a secure enclave through dynamic insertion of an interrupt
JP2024066819A (en) * 2022-11-02 2024-05-16 キオクシア株式会社 Memory system and information processing system
TWI860605B (en) * 2023-01-04 2024-11-01 熵碼科技股份有限公司 Anti-tampering detector and method for detecting physical attack
US12190177B2 (en) 2023-05-30 2025-01-07 Microsoft Technology Licensing, Llc Processor restart using firmware boot from volatile memory
CN116702129B (en) * 2023-06-08 2024-07-05 合芯科技有限公司 Safe calling method and device for power architecture running service code

Family Cites Families (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US15748A (en) * 1856-09-16 Improvement in harvesting-machines
US711284A (en) * 1902-05-23 1902-10-14 Wilson W Carey Compression shaft-coupling.
US766104A (en) * 1904-04-19 1904-07-26 Arthur C Eastwood System of motor control.
US4590552A (en) * 1982-06-30 1986-05-20 Texas Instruments Incorporated Security bit for designating the security status of information stored in a nonvolatile memory
US4558176A (en) 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
JPS6068441A (en) 1983-09-22 1985-04-19 Fujitsu Ltd One chip micro computer
US4713792A (en) * 1985-06-06 1987-12-15 Altera Corporation Programmable macrocell using eprom or eeprom transistors for architecture control in programmable logic circuits
US4744062A (en) 1985-04-23 1988-05-10 Hitachi, Ltd. Semiconductor integrated circuit with nonvolatile memory
US5175840A (en) 1985-10-02 1992-12-29 Hitachi, Ltd. Microcomputer having a PROM including data security and test circuitry
US5134700A (en) * 1987-09-18 1992-07-28 General Instrument Corporation Microcomputer with internal ram security during external program mode
US5014191A (en) * 1988-05-02 1991-05-07 Padgaonkar Ajay J Security for digital signal processor program memory
US4908796A (en) 1988-05-24 1990-03-13 Dallas Semiconductor Corporation Registered outputs for a memory device
US4888802A (en) 1988-06-17 1989-12-19 Ncr Corporation System and method for providing for secure encryptor key management
JPH0244431A (en) * 1988-08-05 1990-02-14 Nippon Motoroola Kk Protection order retrieval device
US5293610A (en) 1989-08-04 1994-03-08 Motorola, Inc. Memory system having two-level security system for enhanced protection against unauthorized access
US5274778A (en) 1990-06-01 1993-12-28 National Semiconductor Corporation EPROM register providing a full time static output signal
US5147000A (en) * 1990-06-19 1992-09-15 Norvic S.A. Disc drill bit
US5251304A (en) * 1990-09-28 1993-10-05 Motorola, Inc. Integrated circuit microcontroller with on-chip memory and external bus interface and programmable mechanism for securing the contents of on-chip memory
WO1993010498A1 (en) * 1991-11-12 1993-05-27 Microchip Technology Inc. Security for on-chip microcontroller memory
US5446868A (en) * 1992-09-11 1995-08-29 R. J. Reynolds Tobacco Company Network bridge method and apparatus
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5465341A (en) * 1992-10-23 1995-11-07 Vlsi Technology, Inc. Verifiable security circuitry for preventing unauthorized access to programmed read only memory
US5557743A (en) * 1994-04-05 1996-09-17 Motorola, Inc. Protection circuit for a microprocessor
US5533123A (en) * 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5657470A (en) * 1994-11-09 1997-08-12 Ybm Technologies, Inc. Personal computer hard disk protection system
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5998858A (en) 1995-07-20 1999-12-07 Dallas Semiconductor Corporation Microcircuit with memory that is protected by both hardware and software
US5642480A (en) * 1995-09-28 1997-06-24 Motorola, Inc. Method and apparatus for enhanced security of a data processor
AU1690597A (en) * 1996-01-11 1997-08-01 Mitre Corporation, The System for controlling access and distribution of digital property
US5931901A (en) 1996-12-09 1999-08-03 Robert L. Wolfe Programmed music on demand from the internet
US5818939A (en) * 1996-12-18 1998-10-06 Intel Corporation Optimized security functionality in an electronic system
US6581162B1 (en) * 1996-12-31 2003-06-17 Compaq Information Technologies Group, L.P. Method for securely creating, storing and using encryption keys in a computer system
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
US5883679A (en) * 1997-02-20 1999-03-16 C-Cube Microsystems, Inc. Scanning scheme for images stored in dynamic random access memory
SE9701536L (en) * 1997-04-24 1998-02-02 Isaberg Rapid Ab Stapler with internal control of staple legs
US5889679A (en) * 1997-07-15 1999-03-30 Integrated Device Technology, Inc. Fuse array control for smart function enable
US6260111B1 (en) * 1997-08-15 2001-07-10 International Business Machines Corporation System and method for network power management incorporating user identity and preferences via a power managed smart card
US6704871B1 (en) * 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
US6122701A (en) * 1997-12-11 2000-09-19 Compaq Computer Corporation Device volume control in multimode computer systems
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
JP3713141B2 (en) * 1998-05-19 2005-11-02 インターナショナル・ビジネス・マシーンズ・コーポレーション How to prevent unauthorized execution of programs
US6775778B1 (en) * 1998-05-29 2004-08-10 Texas Instruments Incorporated Secure computing device having boot read only memory verification of program code
US6473607B1 (en) * 1998-06-01 2002-10-29 Broadcom Corporation Communication device with a self-calibrating sleep timer
US6735696B1 (en) * 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
US6330668B1 (en) 1998-08-14 2001-12-11 Dallas Semiconductor Corporation Integrated circuit having hardware circuitry to prevent electrical or thermal stressing of the silicon circuitry
US6393596B1 (en) * 1998-10-30 2002-05-21 Hewlett-Packard Company Missing pulse detector using synchronous detection
US8868914B2 (en) * 1999-07-02 2014-10-21 Steven W. Teppler System and methods for distributing trusted time
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
US6862583B1 (en) * 1999-10-04 2005-03-01 Canon Kabushiki Kaisha Authenticated secure printing
US7131001B1 (en) 1999-10-29 2006-10-31 Broadcom Corporation Apparatus and method for secure filed upgradability with hard wired public key
JP2001175606A (en) * 1999-12-20 2001-06-29 Sony Corp Data processor, and data processing equipment and its method
KR20020091061A (en) * 1999-12-23 2002-12-05 제너럴 인스트루먼트 코포레이션 Dual-mode processor
ATE249664T1 (en) * 2000-01-18 2003-09-15 Infineon Technologies Ag MICROPROCESSOR ARRANGEMENT WITH ENCRYPTION
US7270193B2 (en) 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US7013484B1 (en) * 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US7047338B1 (en) * 2000-07-18 2006-05-16 Igt Configurable hot-swap communication
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
DE10101956A1 (en) * 2001-01-17 2002-07-25 Infineon Technologies Ag Method for increasing the security of a CPU by prevention of differential power analysis by insertion of a random placeholder code in a CPU pipeline decode stage that does not, however, affect the CPU state
US7065654B1 (en) * 2001-05-10 2006-06-20 Advanced Micro Devices, Inc. Secure execution box
US6925570B2 (en) * 2001-05-15 2005-08-02 International Business Machines Corporation Method and system for setting a secure computer environment
US7113601B2 (en) * 2001-09-26 2006-09-26 Mohan Ananda Method and apparatus for performing secure communications
US7165180B1 (en) * 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
EP1456395A4 (en) * 2001-11-28 2005-09-07 Mj Bioworks Inc Polymorphism and haplotype scoring by differential amplification of polymorphisms
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
EP1329787B1 (en) 2002-01-16 2019-08-28 Texas Instruments Incorporated Secure mode indicator for smart phone or PDA
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7130951B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
US7603321B2 (en) * 2002-05-22 2009-10-13 Gurvey Amy R Electronic system and method coupling live event ticketing and interactive entries with the sale, distribution and transmission of event recordings, mastering system and intelligent terminal designs
US7249060B2 (en) 2002-08-12 2007-07-24 Paybyclick Corporation Systems and methods for distributing on-line content
CN1322385C (en) * 2002-08-13 2007-06-20 诺基亚有限公司 Computer architecture for executing a program in a secure or insecure mode
JP3881942B2 (en) * 2002-09-04 2007-02-14 松下電器産業株式会社 Semiconductor device having encryption unit
GB0220907D0 (en) * 2002-09-10 2002-10-16 Ingenia Holdings Ltd Security device and system
GB2396713B (en) 2002-11-18 2005-09-14 Advanced Risc Mach Ltd Apparatus and method for controlling access to a memory unit
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
US7117284B2 (en) 2002-11-18 2006-10-03 Arm Limited Vectored interrupt control within a system having a secure domain and a non-secure domain
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US20040225881A1 (en) * 2002-12-02 2004-11-11 Walmsley Simon Robert Variant keys
US20060053080A1 (en) * 2003-02-03 2006-03-09 Brad Edmonson Centralized management of digital rights licensing
US6986041B2 (en) * 2003-03-06 2006-01-10 International Business Machines Corporation System and method for remote code integrity in distributed systems
JP2004287590A (en) * 2003-03-19 2004-10-14 Matsushita Electric Ind Co Ltd Debug system, microprocessor and debugger
US7171576B2 (en) 2003-04-09 2007-01-30 International Business Machines Corporation Method, apparatus and program storage device for providing clocks to multiple frequency domains using a single input clock of variable frequency
US8060755B2 (en) * 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7334123B2 (en) 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
US8838950B2 (en) * 2003-06-23 2014-09-16 International Business Machines Corporation Security architecture for system on chip
KR101081729B1 (en) * 2003-07-07 2011-11-08 로비 솔루션스 코포레이션 Reprogrammable security for controlling piracy and enabling interactive content
US7444667B2 (en) 2003-07-28 2008-10-28 Intel Corporation Method and apparatus for trusted blade device computing
US20050066355A1 (en) * 2003-09-19 2005-03-24 International Business Machines Corporation System and method for satellite broadcasting and receiving encrypted television data signals
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
US7681046B1 (en) * 2003-09-26 2010-03-16 Andrew Morgan System with secure cryptographic capabilities using a hardware specific digital secret
US7421689B2 (en) * 2003-10-28 2008-09-02 Hewlett-Packard Development Company, L.P. Processor-architecture for facilitating a virtual machine monitor
US7694151B1 (en) * 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
KR101037006B1 (en) * 2003-11-28 2011-05-25 파나소닉 주식회사 Data processing device
US7500098B2 (en) * 2004-03-19 2009-03-03 Nokia Corporation Secure mode controlled memory
US7543158B2 (en) * 2004-03-23 2009-06-02 Texas Instruments Incorporated Hybrid cryptographic accelerator and method of operation thereof
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7542567B2 (en) 2004-06-10 2009-06-02 Freescale Semiconductor, Inc. Method and apparatus for providing security in a data processing system
JP4447977B2 (en) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 Secure processor and program for secure processor.
EP1612684B1 (en) * 2004-07-01 2009-09-30 Texas Instruments Incorporated System and method for secure mode for processors and memories on multiple semiconductor dies within a single semiconductor package
FR2872933B1 (en) * 2004-07-06 2008-01-25 Trusted Logic Sa TIME SHARING METHOD OF A PROCESSOR
EP1619572A1 (en) 2004-07-23 2006-01-25 Texas Instruments Incorporated System and method of identifying and preventing security violations within a computing system
JP4773446B2 (en) * 2004-08-24 2011-09-14 パンドウィット・コーポレーション System and method for managing a network
US20060059369A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Circuit chip for cryptographic processing having a secure interface to an external memory
US7171284B2 (en) * 2004-09-21 2007-01-30 Timbre Technologies, Inc. Optical metrology model optimization based on goals
US7437531B2 (en) 2004-09-30 2008-10-14 Intel Corporation Testing memories
US20060075236A1 (en) * 2004-09-30 2006-04-06 Marek James A Method and apparatus for high assurance processing
US8160244B2 (en) * 2004-10-01 2012-04-17 Broadcom Corporation Stateless hardware security module
US20060072748A1 (en) * 2004-10-01 2006-04-06 Mark Buer CMOS-based stateless hardware security module
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US7610631B2 (en) * 2004-11-15 2009-10-27 Alexander Frank Method and apparatus for provisioning software
US8015416B2 (en) * 2004-11-19 2011-09-06 Megachips Corporation Memory information protection system and methods
US7457960B2 (en) * 2004-11-30 2008-11-25 Analog Devices, Inc. Programmable processor supporting secure mode
US9280473B2 (en) * 2004-12-02 2016-03-08 Intel Corporation Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
WO2006082994A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for facilitating a secure session between a processor and an external device
WO2006084375A1 (en) * 2005-02-11 2006-08-17 Universal Data Protection Corporation Method and system for microprocessor data security
US7613924B2 (en) 2005-03-08 2009-11-03 Texas Instruments Incorporated Encrypted and other keys in public and private battery memories
CN1878055B (en) * 2005-06-07 2010-11-03 北京握奇数据系统有限公司 Separation type mass data encryption/decryption device and implementing method therefor
US8353046B2 (en) 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
GB0519842D0 (en) * 2005-09-29 2005-11-09 Hewlett Packard Development Co Methods and apparatus for managing and using one-time pads
US8806224B2 (en) * 2005-06-28 2014-08-12 Intel Corporation Low cost trusted platform
WO2007004219A2 (en) * 2005-07-04 2007-01-11 Discretix Technologies Ltd. System, device and method of verifying that a code is executed by a processor
US7444687B2 (en) * 2005-08-29 2008-11-04 3M Innovative Properties Company Hearing protective device that includes cellular earmuffs
US20070061597A1 (en) * 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US7385491B2 (en) * 2005-09-28 2008-06-10 Itt Manufacturing Enterprises, Inc. Tamper monitor circuit
US8595387B2 (en) * 2005-10-26 2013-11-26 Hewlett-Packard Development Company, L.P. SMM-dependent GPIO lock for enhanced computer security
CN1967478A (en) * 2005-11-16 2007-05-23 鸿富锦精密工业(深圳)有限公司 Setting system and method of basic input output system
DE102005058238B4 (en) * 2005-12-06 2008-08-14 Infineon Technologies Ag Detector circuit for detecting an external manipulation of an electrical circuit and method for operating a circuit arrangement, are detected in the external manipulation
US7669048B2 (en) * 2005-12-09 2010-02-23 Microsoft Corporation Computing device limiting mechanism
US20070237325A1 (en) 2006-02-01 2007-10-11 Gershowitz Michael N Method and apparatus to improve security of cryptographic systems
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US20070192824A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation Computer hosting multiple secure execution environments
US8214296B2 (en) * 2006-02-14 2012-07-03 Microsoft Corporation Disaggregated secure execution environment
JP4795812B2 (en) * 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 Secure processor
US20080034350A1 (en) 2006-04-05 2008-02-07 Conti Gregory R System and Method for Checking the Integrity of Computer Program Code
EP1870813B1 (en) 2006-06-19 2013-01-30 Texas Instruments France Page processing circuits, devices, methods and systems for secure demand paging and other operations
US7757098B2 (en) * 2006-06-27 2010-07-13 Intel Corporation Method and apparatus for verifying authenticity of initial boot code
US20070297606A1 (en) 2006-06-27 2007-12-27 Tkacik Thomas E Multiple key security and method for electronic devices
US20080015748A1 (en) * 2006-07-14 2008-01-17 David Nagy System for monitoring, controlling, and reporting vehicle operation through onboard diagnostic port
US7519830B2 (en) * 2006-08-03 2009-04-14 Motorola, Inc. Secure storage of data
CN200941211Y (en) * 2006-08-23 2007-08-29 北京同方微电子有限公司 Microprocessor kernal for cryptography calculation
CN101536396A (en) * 2006-09-11 2009-09-16 联邦科学技术研究组织 A portable device for use in establishing trust
GB2442023B (en) * 2006-09-13 2011-03-02 Advanced Risc Mach Ltd Memory access security management
US20080100224A1 (en) * 2006-10-31 2008-05-01 Felder Matthew D System on a chip with backlight controller
US7917788B2 (en) * 2006-11-01 2011-03-29 Freescale Semiconductor, Inc. SOC with low power and performance modes
JP4946383B2 (en) * 2006-11-22 2012-06-06 富士通株式会社 Information processing apparatus, abnormality detection method for information processing apparatus, and control program
US7986786B2 (en) * 2006-11-30 2011-07-26 Hewlett-Packard Development Company, L.P. Methods and systems for utilizing cryptographic functions of a cryptographic co-processor
CN100419776C (en) * 2006-12-04 2008-09-17 中国科学院计算技术研究所 A Programmable Security Processor
US20090177826A1 (en) * 2008-01-09 2009-07-09 Texas Instruments Incorporated System and method for preemptive masking and unmasking of non-secure processor interrupts
US8255988B2 (en) * 2007-03-28 2012-08-28 Microsoft Corporation Direct peripheral communication for restricted mode operation
US20080250250A1 (en) 2007-04-04 2008-10-09 Microsoft Corporation Method and Apparatus for Using USB Flash Devices and Other Portable Storage as a Means to Access Prepaid Computing
CN201054140Y (en) * 2007-04-27 2008-04-30 北京华大恒泰科技有限责任公司 Information security control chip
US20080294951A1 (en) 2007-05-01 2008-11-27 Ahmad Mustafa S Methods and devices for testing computer memory
US7646224B2 (en) 2007-05-04 2010-01-12 Exar Corporation Means to detect a missing pulse and reduce the associated PLL phase bump
EP2075696A3 (en) 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
US20080307240A1 (en) 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
US7649421B2 (en) 2007-06-19 2010-01-19 Harris Stratex Networks Operating Corporation Quality of phase lock and loss of lock detector
US8479014B1 (en) * 2007-09-04 2013-07-02 Guoan Hu Symmetric key based secure microprocessor and its applications
US8375219B2 (en) * 2007-10-24 2013-02-12 Microsoft Corporation Program and operation verification
US7730248B2 (en) * 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
US7831936B2 (en) * 2007-12-19 2010-11-09 International Business Machines Corporation Structure for a system for controlling access to addressable integrated circuits
US20100023782A1 (en) * 2007-12-21 2010-01-28 Intel Corporation Cryptographic key-to-policy association and enforcement for secure key-management and policy execution
US8060748B2 (en) * 2007-12-21 2011-11-15 Telefonaktiebolaget Lm Ericsson (Publ) Secure end-of-life handling of electronic devices
US20090172393A1 (en) * 2007-12-31 2009-07-02 Haluk Kent Tanik Method And System For Transferring Data And Instructions Through A Host File System
US9137015B2 (en) * 2008-01-04 2015-09-15 Arcsoft, Inc. Protection scheme for AACS keys
US7987353B2 (en) * 2008-01-09 2011-07-26 International Business Machines Corporation Remote BIOS for servers and blades
US8127131B2 (en) 2008-04-10 2012-02-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for efficient security domain translation and data transfer
US8209763B2 (en) * 2008-05-24 2012-06-26 Via Technologies, Inc. Processor with non-volatile mode enable register entering secure execution mode and encrypting secure program for storage in secure memory via private bus
US8726364B2 (en) 2008-06-30 2014-05-13 Intel Corporation Authentication and access protection of computer boot modules in run-time environments
US8818394B2 (en) 2008-07-11 2014-08-26 Intel Mobile Communications GmbH Mobile radio communication devices having a trusted processing environment and method for processing a computer program therein
US8948387B2 (en) * 2008-08-21 2015-02-03 Freescale Semiconductor, Inc. Security key generator
US8051467B2 (en) * 2008-08-26 2011-11-01 Atmel Corporation Secure information processing
US8327174B2 (en) * 2009-03-20 2012-12-04 Hewlett-Packard Development Company, L.P. Loading operating systems using memory segmentation and ACPI based context switch

Also Published As

Publication number Publication date
TW200949680A (en) 2009-12-01
CN101533446B (en) 2012-05-30
US8838924B2 (en) 2014-09-16
CN101533451A (en) 2009-09-16
CN101533443B (en) 2010-10-13
TW200949682A (en) 2009-12-01
US20090292904A1 (en) 2009-11-26
US8978132B2 (en) 2015-03-10
US8762687B2 (en) 2014-06-24
US20090292929A1 (en) 2009-11-26
TWI407367B (en) 2013-09-01
CN101533444A (en) 2009-09-16
CN101533448A (en) 2009-09-16
CN101533439B (en) 2011-06-15
US20090292847A1 (en) 2009-11-26
CN101533450A (en) 2009-09-16
US8607034B2 (en) 2013-12-10
US7788433B2 (en) 2010-08-31
TW200949679A (en) 2009-12-01
TWI385555B (en) 2013-02-11
US20090293132A1 (en) 2009-11-26
US8522354B2 (en) 2013-08-27
TWI489378B (en) 2015-06-21
TWI394076B (en) 2013-04-21
CN101533441B (en) 2010-12-01
TW200949702A (en) 2009-12-01
CN101533447A (en) 2009-09-16
TW200949685A (en) 2009-12-01
TWI397856B (en) 2013-06-01
TWI394060B (en) 2013-04-21
US20090292894A1 (en) 2009-11-26
US8370641B2 (en) 2013-02-05
US8793803B2 (en) 2014-07-29
CN101533443A (en) 2009-09-16
CN101533445B (en) 2013-04-10
CN101533438A (en) 2009-09-16
CN101533448B (en) 2012-05-23
US20090292901A1 (en) 2009-11-26
US8910276B2 (en) 2014-12-09
CN101533450B (en) 2010-10-13
TWI395137B (en) 2013-05-01
CN101533444B (en) 2010-12-01
US20090292893A1 (en) 2009-11-26
CN101533446A (en) 2009-09-16
US20090292903A1 (en) 2009-11-26
TW200949683A (en) 2009-12-01
TWI397859B (en) 2013-06-01
CN101533441A (en) 2009-09-16
CN102722675B (en) 2015-12-16
CN101533445A (en) 2009-09-16
TWI581183B (en) 2017-05-01
CN101533451B (en) 2012-01-11
TWI520057B (en) 2016-02-01
TWI385574B (en) 2013-02-11
TW200949601A (en) 2009-12-01
TW200949687A (en) 2009-12-01
CN101533440B (en) 2011-11-30
CN101533440A (en) 2009-09-16
TWI405124B (en) 2013-08-11
TW200949681A (en) 2009-12-01
CN101533449B (en) 2010-09-15
TWI405123B (en) 2013-08-11
CN101533438B (en) 2011-09-21
US8615799B2 (en) 2013-12-24
US20090292902A1 (en) 2009-11-26
CN101533439A (en) 2009-09-16
CN101533442A (en) 2009-09-16
CN102722675A (en) 2012-10-10
TW200949686A (en) 2009-12-01
CN101533447B (en) 2010-12-01
US20090293129A1 (en) 2009-11-26
CN101533442B (en) 2011-11-30
US20090290712A1 (en) 2009-11-26
CN101533449A (en) 2009-09-16
US20090292853A1 (en) 2009-11-26
TW200949677A (en) 2009-12-01
US20090292931A1 (en) 2009-11-26
US8209763B2 (en) 2012-06-26
US9002014B2 (en) 2015-04-07
TW200949678A (en) 2009-12-01

Similar Documents

Publication Publication Date Title
TW200949602A (en) Microprocessor apparatus and method for persistent enablement of a secure execution mode
TWI395138B (en) Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels