CN1914849B - 受信移动平台体系结构 - Google Patents
受信移动平台体系结构 Download PDFInfo
- Publication number
- CN1914849B CN1914849B CN2004800416168A CN200480041616A CN1914849B CN 1914849 B CN1914849 B CN 1914849B CN 2004800416168 A CN2004800416168 A CN 2004800416168A CN 200480041616 A CN200480041616 A CN 200480041616A CN 1914849 B CN1914849 B CN 1914849B
- Authority
- CN
- China
- Prior art keywords
- encryption key
- data encryption
- type
- key
- cipher processor
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
在实施方案中,装置包括一个或更多个密码单元。装置还包括存储器,所述存储器储存一个或更多个数据加密密钥和用于所述一个或更多个数据加密密钥的相关联的头部。所述相关联的头部定义所述一个或更多个密码单元中的哪些使用所述数据加密密钥。
Description
相关申请:本文档要求2003年12月11日递交的、标题为“Trusted Mobile PlatformArchitecture(受信移动平台体系结构)”的美国临时申请No.60/528,890的优先权,其整篇说明书以引用的方式被包含进来。本申请与2004年3月31日递交的、标题为“METHODAND APPARATUS FOR A TRUST PROCESSOR(用于信任处理器的方法和装置)”的待审定美国专利申请No.(律师案卷号884.B89US1)相关,该待审定美国专利申请被转让给本文公开的实施方案的受让人——英特尔公司。
技术领域
本发明总地涉及电子数据处理,并且更具体地,涉及受信移动平台体系结构。
背景
无线移动设备(例如蜂窝电话、个人数字助理(PDA)等)通常是尺寸小、未系缚的,并且因此易于遗失。正如这样的设备易于遗失,它们也易于偷窃。由于这些设备被偷窃的倾向性,它们容易受到篡改。此外,构建低功率设备的最低限度途径常常使得这些嵌入式***(在操作***和硬件方面)过分简单,这又使得它们在有恶意的使用者和/或应用的控制下是易受伤害的。使用者依赖于这些设备用于有价值的用途。特别地,在这样的设备中,使用者储存着诸如收据(receipt)、信用***、地址、电话号码、机密文档等的机密信息。因此,由于这些设备能够被轻易地攻击,它们正日益成为窃贼的首要目标。因此,存在着确保设备完整性(包括储存在其中的应用和数据)的需要。
附图简要说明
通过参照以下描述和示出实施方案的附图可以最好地理解本发明的这些实施方案。被包括在本文中的对图的编号方案是这样的,即图中给定参考号的首个数字与该图号相关联。例如,受信移动计算设备100可以位于图1中。然而,对于在不同图中相同的部件来说参考号是相同的。在附图中:
图1根据本发明的一个实施方案,示出具有受信平台体系结构的移动计算设备的简化功能框图。
图2根据本发明的一个实施方案,示出受信移动计算设备中的密码处理器的简化功能框图。
图3根据本发明的一个实施方案,示出受信移动计算设备中密码处理器中的密钥缓存中的项的一个实施方案。
图4根据本发明的一个实施方案,示出用于与密码处理器的接口的操作的流程图。
图5根据本发明的一个实施方案,示出密码处理器的初始化的流程图。
图6A根据本发明的一个实施方案,示出密码处理器内安全操作的流程图。
图6B根据本发明的一个实施方案,示出在密码处理器中使用密码密钥的密码操作的执行的流程图。
图7根据本发明的一个实施方案,示出更新密码处理器中的微码的流程图。
图8根据本发明的一个实施方案,示出其中具有密码操作的受信移动通信设备可以工作的***配置的简化功能框图。
详细描述
描述了用于受信移动平台体系结构的方法、装置以及***。在以下描述中,阐述了大量的具体细节。然而,可以理解,无需使用这些具体细节可以实现本发明。此外,公知电路、结构和技术没有详细示出,以免模糊对本发明的理解。
本详细描述被分成三个部分。在第一部分中,介绍了硬件体系结构。在第二部分中,描述了受信(trusted)和密码(cryptographic)操作。在第三部分中,描述了***操作环境。
硬件体系结构
图1根据本发明的一个实施方案,示出具有受信平台体系结构的移动计算设备的简化功能框图。具体来说,图1示出可以代表多种不同类型的移动计算设备(例如蜂窝电话、PDA等等)的受信移动计算设备100。受信移动计算设备100包括耦合在一起的芯片上***(system-on-a-chip)102、显示器103、触摸板104以及天线105。显示器可以是多种观察设备,例如液晶显示(LCD)屏等等。触摸板104可以被用来接收来自受信移动计算设备100的用户的输入。例如,触摸板104可以是数值(numeric)触摸板、键盘等等。尽管未示出,但是受信移动计算设备100可以包括多个其他外设,例如用于输入和输出来自用户的音频数据的音频输入/输出(I/O)逻辑等等。
芯片上***102可以是单个芯片,其中,本文描述的组件(component)位于例如同一半导体衬底(substrate)中。可替换地,芯片上***102可以是多个这样的芯片,所述多个芯片用环氧树脂粘合在一起。
芯片上***102包括应用处理器106、受信引导只读存储器(ROM)108、通信逻辑110、控制器112、非易失性存储器控制器114、非易失性存储器116、易失性存储器控制器118、易失性存储器120、图形逻辑122、直接存储器访问(DMA)逻辑124、密码处理器(cryptographic processor)126、外设逻辑128、联合测试工作组(JTAG)接口155和总线130。应用处理器106、受信引导ROM 108、通信逻辑110、控制器112、非易失性存储器控制器114、非易失性存储器116、易失性存储器控制器118、图形逻辑122、JTAG接口155和DMA逻辑124被耦合到总线130。因此,总线130提供这些组件之间的通信。显示器103和触摸板104通过外设逻辑128耦合到芯片上***102。
天线105被耦合到通信逻辑110。通信逻辑110提供进入和离开受信移动计算设备100的I/O的接收与传输。例如,通信逻辑110可以使用天线105来对进入和离开受信移动计算设备100的无线通信(communication)进行发送与接收。天线105可以是贴片、单极、双极、波束、阵列或定向天线等等。如下进一步描述的,天线105可以接收导致应用处理器106生成用于加密操作的一条或更多条原语指令(primitive instruction)的通信。这些原语指令可以被传输到密码处理器126,以供执行。此外,天线105可以输出与由密码处理器126完成的密码操作相关的通信。
在一些实施方案中,通信逻辑110可以包括为受信移动计算设备100建立特定通信标准的基带处理器(例如数字信号处理器)。通信逻辑110可以是无线接口。例如,如果受信移动计算设备100是蜂窝电话,则通信逻辑110为受信移动计算设备100提供无线接口——蜂窝网络接口。仅仅作为一些实施例,对于这些无线接口,基带处理器可以建立码分多址(CDMA)蜂窝无线电话通信***,或者宽带CDMA(W-CDMA)无线电话通信***。作为欧洲电信标准协会(ETSI)对国际电信联盟(ITU)提出的针对用于未来公共陆地移动电信***(FPLMTS)的国际移动电信(IMT)-2000的建议,已经明确建议将W-CDMA作为第三代(“3G”)的解决方案。基带处理器可以建立其他电信标准,例如全球移动通信***(GSM),ETSI,5.0.0版(1995年12月);或者通用分组无线业务(GPRS)(GSM 02.60,6.1版),ETSI,1997。
在将控制转移到要在应用处理器106中执行的操作***之前,受信引导ROM 108储存由应用处理器106执行的代码。如下面进一步描述的,这样的代码导致多项信任操作的执行(使用密码处理器126),以确保操作***的完整性。在下列2003年12月22日递交、标题为“Securing anElectronic Device(保护电子设备)”的共同待审定、共同转让的美国专利申请No.10/745,496中描述了受信引导操作的更详细的描述。JTAG接口155提供到受信移动计算设备100的调试接口。
非易失性存储器116可以是任何多种不同类型的非易失性可写存储器,例如闪存(FLASH)存储器等等。易失性存储器120可以是任何多种不同类型的易失性可写存储器,例如随机访问存储器(RAM)(例如同步动态RAM(SDRAM)、DRAM、DDR-SDRAM等)等等。
非易失性存储器控制器114被耦合到非易失性存储器116。易失性存储器控制器118被耦合到易失性存储器120。从而,耦合到总线130的组件可以分别通过非易失性存储器控制器114和易失性存储器控制器118来与非易失性存储器116和易失性存储器120通信。密码处理器126和***设备逻辑128通过DMA逻辑124耦合到总线130。耦合到总线130的组件可以通过DMA逻辑124来与密码处理器126和***设备逻辑128通信。
密码处理器126还通过私用(private)接口,分别经由非易失性存储器控制器114和易失性存储器控制器118直接耦合到非易失性存储器116和易失性存储器120。如所示出的,受信计算设备100中的其他组件(例如应用处理器106)可以不通过这些私用接口来访问非易失性存储器116和易失性存储器120。此外,密码处理器126和应用处理器106可以通过总线130(公用(public)接口)来访问非易失性存储器116和易失性存储器120。
密码处理器126可以将易失性存储器120划分成至少两个不同的部分(公用部分和私用部分)。此外,只有密码处理器126可以访问易失性存储器120的私用部分中的地址空间。此外,受信移动计算设备100中的不同组件可以访问易失性存储器120的公用部分中的地址空间。这样的配置允许私用部分被用于安全/受信使用,并且阻止应用处理器106访问该部分。因此,如果在应用处理器106上执行病毒和/或恶意代码,则该代码可以不破坏易失性存储器120的私用部分。从而,密码处理器126可以使用该私用部分来安全地储存要用于在其中执行的操作的已加密密钥等。
如下进一步描述,密码处理器126包括受保护的储存装置和多个不同的功能单元。密码处理器126可以提供与受信移动计算设备100相关联或在受信移动计算设备100中执行的硬件、软件、配置数据等的认证。例如,作为受信移动计算设备100的初始化的部分,密码处理器126可以执行横贯(across)应用的代码的密码哈希,并且将该哈希与被安全地储存在受信移动计算设备100中的已签名证书进行比较。此外,密码处理器126还在受信移动计算设备100的操作期间提供不同的密码操作。例如,密码处理器126可以生成密码密钥、执行不同类型的加密与解密、生成哈希、数字签名等等。
应用处理器106可以在第一操作上下文(context)中,而密码处理器126可以在第二操作上下文中。第一操作上下文和第二操作上下文可以互相独立。如下进一步的描述,应用处理器106可以执行驱动器(用于密码处理器126),所述驱动器(通过DMA逻辑124)在应用处理器106和密码处理器126上执行的应用之间提供接口。该驱动器从控制应用处理器106的操作***中接收用于不同安全服务(认证、信任、加密、解密等等)的请求。驱动器可以基于安全服务请求生成一个或更多个原语指令。然后,这些原语指令被发布给密码处理器126以供执行。此外,密码处理器126可以(通过DMA逻辑124从非易失性存储器116和/或易失性存储器120)取得数据,基于原语指令对所述数据进行执行操作。密码处理器126可以基于原语指令对所取得的数据执行密码操作。
下面结合图4、5、6A-6B阐述了受信移动计算设备100的操作的更详细的描述。
图2根据本发明的一个实施方案,示出受信移动计算设备内的密码处理器的简化功能框图。具体来说,图2示出密码处理器126的一个实施方案的更详细的框图。
密码处理器126包括DMA接口202、指令序列缓冲区204、控制器206、微码存储器240、补丁标志(patch flag)存储器281、控制寄存器组208、上下文储存装置/平台配置寄存器210、状态寄存器212、中间储存装置214、输出缓冲区216、输入缓冲区218、内部易失性存储器220、算术逻辑单元(ALU)222、数据加密标准(DES)单元224、消息摘要(MD)单元226、随机数生成器(RNG)单元228、安全哈希算法(SHA)单元230、高级加密标准(AES)单元232和幂运算单元234。因此,密码处理器126包括多个不同的功能单元(包括多个不同的密码单元)(ALU 222、DES单元224、MD单元226、RNG单元228、SHA单元230、AES单元232和幂运算单元234)。
虽然微码存储器240可以是不同类型的存储器,但是在一个实施方案中,微码存储器240是只读存储器(ROM)。内部易失性存储器220可以是任何类型的易失性可写存储器,例如随机访问存储器(RAM)(例如同步动态RAM(SDRAM)、DRAM、DDR-SDRAM等等)等。如示出的,内部易失性存储器220储存密钥缓存(cache)221、根加密密钥(rootencryption key)241和计数器215。密钥缓存221可以储存多个不同的受保护密钥,所述受保护密钥可以是数据加密密钥和/或(用于加密数据加密密钥的)密钥加密密钥。下面结合图3更详细地描述密钥缓存221的一个实施方案。
补丁标志存储器281可以是多种不同类型的易失性可写存储器中的任何一种,例如随机访问存储器(RAM)(例如同步动态RAM(SDRAM)、DRAM、DDR-SDRAM等等)等。如下面进一步描述的,补丁标志存储器281可以储存对应于微码存储器240中的段(segment)的补丁标志。给定补丁标志指示微码存储器240的给定段是否已被修补。下面更详细地描述对补丁标志的使用的更详细描述。
DMA接口202被耦合,以接收和传输进入和出自密码处理器126的数据。DMA接口202耦合到指令序列缓冲区204、控制寄存器组208、上下文储存装置/PCR 210、状态寄存器212、输出缓冲区216和输入缓冲区218。
指令序列缓冲区204储存从应用处理器106接收的原语指令。控制器206可以从指令序列缓冲区204取得(retrieve)给定原语指令,并且可以从微码存储器240中取得相关联的一条或多条微码指令。这些微码指令可以包括要在密码处理器126中完成的一连串操作。例如,一条指令可以导致控制器206从易失性存储器120取得已加密的数据加密密钥。一条不同的指令可以导致控制器206将该密钥传输到功能单元中的一个以供解密。另一条指令可以导致已解码的数据加密密钥被传输到不同的功能单元,以完成密码操作。这一连串微码指令的输出可以被储存到输出缓冲区216中。接着,(密码处理器126的)驱动器(driver)可以取得该输出。下面阐述了这些操作的更详细的描述。
SHA单元230可以用于生成并验证密码哈希(hash)。SHA单元230可以进行SHA-1操作,以及基于SHA的HMAC计算。幂运算单元234可以用于进行多项不同运算操作的加速。例如,幂运算单元234可以用于针对不同类型的加密标准(例如Riverst、Shaman和Adelman(RSA))完成非对称加密和解密、签署、签名的验证等等。为了图示说明,幂运算单元234可以进行模幂、求模化简、乘法、加法、减法等等。
AES单元232可以完成多种不同类型的加密(对称,非对称)。AES单元232可以基于可变的轮数(number of rounds)进行加密,所述轮数取决于加密密钥长度。AES单元232可以支持128位(bit)、192位和256位的密钥长度,所述128位(bit)、192位和256位的密钥长度分别产生10轮、12轮和14轮加密。AES单元232可以用于以不同的密钥(被称为密钥加密密钥)加密数据加密密钥。
这样的操作使得在易失性存储器220的密钥缓存221中数据加密密钥的安全储存能够进行。可以用加密密钥层级来配置密码处理器126。例如,AES单元232可以用密钥加密密钥来加密数据加密密钥。AES单元232可以用根加密密钥241来加密密钥加密密钥。当数据加密密钥和密钥加密密钥呈已加密格式时,它们可以被储存到在密码处理器126外部的存储器(例如易失性存储器116,非易失性存储器120)中。为了确保安全性,根加密密钥241不对外暴露给密码处理器126。
DES单元224可以进行多种不同类型的加密和解密。例如,DES单元224可以基于64位密钥加密和解密64位数据块。MD单元226可以基于多种不同的标准生成哈希(消息摘要)。例如,MD单元226可以基于MD-5、MD-4等生成哈希。MD单元226可以接收具有任意长度的消息块,并生成128位的摘要。MD单元226还可以进行密钥哈希消息认证码(HMAC)操作。
ALU 222可以为信任和加密操作进行多项不同的运算和逻辑操作。例如,ALU 222可以进行加法、减法、乘法、除法、位对齐、移位操作、不同的逻辑功能(例如AND,OR,XOR等等)等。
RNG单元228可以进行不同类型随机数的生成。RNG单元228可以使用线性反馈移位寄存器(LFSR)来生成随机位序列。此外,LFSR的输出可以被传递通过SHA单元230,以获得额外的随机化。
控制寄存器组208可以储存用于控制密码处理器126的数据。因此,在密码处理器126外部的组件可以将数据储存在与密码处理器126的控制和配置有关的控制寄存器组208中。上下文储存装置/PCR 210可以储存与受信移动计算设备100有关的上下文和配置数据。例如,上下文储存装置/PCR 210可以储存来自信任操作的密码哈希,所述信任操作与在应用处理器106上执行的不同应用的认证有关。状态寄存器212可以用于储存关于密码处理器126内给定操作的状态、不同功能单元的状态等等。中间储存装置214可以用于储存要被输入到不同功能单元的中间结果,所述中间结果可以是来自一个功能单元的输出。
输入缓冲区218可以储存数据,针对所述数据执行给定操作。例如,如果对于给定原语指令,要横贯应用的代码执行密码哈希,则将所述代码储存在输入缓冲区218中。
如示出的,密码处理器126包括多个功能单元(包括多个不同的密码单元)和不同的易失性储存装置。此外,密码处理器126可以完成多项不同的操作,其中中间结果是安全的。如下面进一步描述的,控制器206可以控制这些不同功能单元的操作,以及这些不同功能单元之间的数据流。
如将被描述的,密码处理器126允许通过提供其中操作的原子性(atomicity)和/或完整性来允许安全的操作。操作的原子性被定义,从而其中的外向(outgoing)操作不会被预占(preempted),并且因此被执行直至完成。操作的完整性被定义,从而密码处理器126规定中间数据和结果的不透明性。密码处理器126工作为受信移动计算设备100的核心(core),用于创建更高级的安全***。这样的服务可以包括安全储存、安全或已加密通信的受信执行加速、随机数生成等等。
密码处理器126可以工作在非受保护模式和受保护模式两种模式下。在非受保护模式下,密码处理器126可以工作为用于加密和解密的非安全硬件加速器。例如,密码处理器126可以接收请求,以对在应用处理器106上执行的应用进行整体加密(bulk encryption)操作。在受保护模式下,密码处理器126可以进行多项不同的安全原子操作。在下面阐述了这些操作更详细的描述。
图3根据本发明的一个实施方案,示出受信移动计算设备内密码处理器中密钥缓存中的项(entry)的一个实施方案。具体来说,图3示出易失性存储器220的密钥缓存221中的项的一个实施方案。密钥缓存221可以包括一个到多个项,所述项包括受保护的密码密钥312和头部300。头部提供对密钥使用的多个不同的标识(identification)以及限制。
如示出的,头部300包括标识302、保护标识304和多个标志306。所述多个标志306包括单元类型308和使用类型310。标识302可以是标识受保护的密码密钥312的字母数字值。密码处理器126中的不同功能单元和/或控制器206可以使用标识302来访问受保护的密码密钥312。保护标识304可以是标识用于加密该受保护的密码密钥312的密钥加密密钥的字母数字值。如果受保护的密码密钥312是数据加密密钥,则保护标识304可以是针对密钥加密密钥中一个的标识。如果受保护的密码密钥312是密钥加密密钥,则保护标识304可以是根加密密钥241。
单元类型308标识密码处理器126中可以访问受保护的密码密钥312的一个或更多个功能单元。此外,如果原语指令导致试图使功能单元访问未被单元类型308标识的给定受保护密码密钥312的微码指令的生成,则访问被拒绝,并且密码处理器126可以向请求该执行的应用返回错误信息(error)。使用类型310标识可以使用受保护的密码密钥312来执行的一种或更多种类型的操作。操作类型可以包括签署、加密储存、证明身份密钥(AIK)操作等等。
受信和密码操作
现在描述受信和密码操作的更详细的描述。图4根据本发明的一个实施方案,示出用于与密码处理器的接口的操作的流程图。具体来说,图4示出在应用处理器106上执行以与密码处理器126接口的(用于密码处理器126的)驱动器的操作的流程图400。
在框402,接收对受信或密码操作的安全服务请求。参照图1的实施方案,在应用处理器106上执行的驱动器接收对受信或密码操作的安全服务请求。例如,该驱动器可以从在应用处理器106上执行的操作***或其他应用接收该安全服务请求。安全服务请求可以是用于认证应用、硬件、配置信息等的信任操作。安全服务请求可以针对密码操作(例如哈希、密钥生成、加密、解密等等)。控制在框404处继续。
在框404,基于安全服务请求生成至少一条原语指令。参照图1的实施方案,用于密码处理器126的驱动器基于安全服务请求生成至少一条原语指令。例如,安全服务请求可以包括一项到多项不同的密码操作。从而,驱动器可以为不同的操作生成原语指令。控制在框406处继续。
在框406,将一条或多条原语指令传输到密码处理器。参照图1的实施方案,用于密码处理器126的驱动器将一条或多条原语指令传输到密码处理器126。驱动器通过DMA逻辑124进行该传输操作。控制在框408处继续。
在框408,从密码处理器中接收一条或多条原语指令的结果。参照图1的实施方案,密码处理器126通过输出缓冲区216(使用DMA接口202)将一条或多条原语指令的结果传输回用于密码处理器126的驱动器。例如,如果原语指令与用于给定应用的认证的信任操作有关,则结果可以是指示应用是否被认证的布尔(Boolean)值。在另一个实施例中,如果原语指令是对解密操作的请求,则结果可以是指示解密操作是否成功以及该解密的结果被储存在何处或该解密的结果的布尔值。在不同的实施例中,如果原语指令是对随机数的请求,则结果可以包括随机数。流程图400的操作完成。
现在描述密码处理器126对原语指令的处理的更详细的描述。图5根据本发明的一个实施方案,示出密码处理器的初始化的流程图。具体来说,在实施方案中,流程图500示出在密码处理器126中的操作执行之前所完成的那些操作。成功执行流程图500的操作之后,密码处理器126处于受信状态。
在框502,进行验证操作来确保RNG单元228正生成适当的随机数。参照图2的实施方案,控制器206执行该验证操作。这样的验证可以包括向RNG单元228请求随机数的一连串请求。例如,控制器206可以使用从FIPS 140针对随机性指定的测试来验证从那里输出的不同随机数是不同的并且具有随机值。控制在框504处继续。
在框504,进行验证操作来确保计数器处于适当的状态。计数器可以是单调计数器,所述单调计数器是仅在一个方向(例如向上)计数的软件或硬件计数器。计数器可以用于事务中和认证协议中,以确保消息被重放(replay)或者被使用多于一次。参照图2的实施方案,控制器206进行计数器215的该验证操作。计数器215的值可以被储存在非易失性存储器116中的被加密状态文件中。因此,该验证操作可以包括从非易失性存储器116中读取已加密状态文件以确保计数器215的该值未曾被递减,以及算术校验(arithmeticcheck),以确保计数器215的该值未处于它的上界(upper range)。控制在框506处继续。
在框506,进行验证操作来确保功能单元正生成适当的结果。参照图2的实施方案,控制器206进行该验证操作。该验证操作可以包括在不同功能单元中执行不同的操作以及对这些操作的输出的验证。例如,控制器206可以命令DES单元224对不同数据进行一连串的加密操作。接着,控制器206可以命令DES单元224解密这些数据。控制器206可以命令ALU 222将这些操作之前的数据与这些操作之后的数据进行比较。可以进行功能单元的其他类型的验证操作。例如,功能单元可以接收标准测试输入,并且可以将来自那里的输出与来自给定标准(例如国家标准技术研究所(NIST)提出的联邦信息处理标准(FIPS))的公开发表的值进行比较。控制在框508处继续。
在框508,进行易失性存储器的验证。参照图2的实施方案,控制器206可以验证易失性存储器120和/或易失性存储器220。该验证可以包括确定易失性存储器未包括储存在其中的数据。另一个验证可以包括翻转其中的位,以验证数据可以被适当地储存在其中。流程图500的操作完成。
图6A根据本发明的一个实施方案,示出密码处理器内安全操作的流程图。
在流程图600的框602中,接收原语指令和/或相关联的数据。参照图1的实施方案,密码处理器126从用于密码处理器126的(在应用处理器106上执行的)驱动器接收原语指令。如上所述,这些原语指令可以用于不同类型的安全操作,例如信任操作、密码操作等等。参照图2的实施方案,密码处理器126通过DMA接口202接收原语指令,并且将该指令储存在指令序列缓冲区204中。
此外,对于多个这样的指令,密码处理器126可以接收用于原语指令的相关联数据。参照图2的实施方案,密码处理器126通过DMA接口202将相关联数据接收到输入缓冲区218中。例如,如果原语指令与认证要在应用处理器106中执行的应用(例如用于应用处理器106的操作***)的信任操作有关,则相关联的数据是用于所述应用的代码,所述代码从非易失性存储器116中取得(retrieve)。
为了进一步图示说明,密码处理器126可以被用来加密机密或需要被保护以避免修改的数据。因此,这样的操作可以被受信移动计算设备100用来保护文件不被其他应用或受信移动计算设备100的使用修改或查看。此外,密码处理器126可以被用在是数字版权运动的部分的受信移动计算设备100中,以保护内容和数字版权(许可)对象。因此,密码处理器126可以被用来解密移动图像专家组(MPEG)音频层3(MP3)文件,所述文件已经根据数字版权运动受到数字化保护。
这样的数据的另一个实施例可以包括用于整体解密(bulk decryption)操作的数据,其中,所述数据从远程设备(例如不同的移动设备、服务器等等)接收到受信移动计算设备100。相关联的数据可以包括要连同公钥被加密的数据,所述公钥用来进行解密操作。
密码处理器126可以通过非易失性存储器116和/或易失性存储器120的公共接口来接收用于原语指令的相关联数据。回到流程图600,控制在在框604处继续。
在框604,取得用于原语指令的微码指令。参照图2的实施方案,控制器206从微码存储器240取得用于原语指令的微码指令。给定的原语指令可以包括一条到多条不同的微码指令。例如,如果原语指令要基于对应用的已签署证书与密码哈希的比较来认证应用,则微码指令可以包括从非易失性存储器116取得已签署证书的指令。另一条微码指令可以包括从非易失性存储器116取得加密密钥,所述加密密钥用于密码哈希。另一条微码指令可以包括将加密密钥移动到SHA单元230的移动操作,而不同的微码指令可以命令SHA单元230进行所述密码哈希。另一条微码指令可以包括将密码哈希的结果和已签署证书移动到ALU 22的移动操作,而不同的微码指令可以命令ALU 222执行这两个值的比较。另一条微码指令可以导致比较操作的结果被储存在输出缓冲区216中(所述结果被传输回应用处理器106)。
如所描述的,给定原语指令可以包括一连串微码指令。因此,用于给定原语指令的中间结果对于在密码处理器126外部的组件来说是不透明的。回到流程图600,控制在框606处继续。
在框606,确定在密码处理器中是否基于用于该原语指令的微码指令进行敏感操作。参照图2的实施方案,控制器206作出该确定。敏感操作的实施例可以包括使用根加密密钥241的任何操作、使用(密钥缓存221中的)任何受保护密钥的任何操作和/或访问计数器215或任何平台配置寄存器210的任何操作。确定在密码处理器中未基于用于该原语指令的微码指令执行敏感操作后,控制在框610处继续,这在下面更详细地描述。
在框608,确定在密码处理器中基于用于该原语指令的微码指令执行敏感操作后,确定密码处理器是否处于受信状态。参照图2的实施方案,控制器206作出该确定。在实施方案中,如果密码处理器126未被适当地初始化(如上面结合图4的流程图400所描述的),则密码处理器126可能未处于受信状态。如果曾执行非法操作,则密码处理器126可能未处于受信状态。非法操作的实施例可以是当数据被尝试从一个位置不适当地移动到第二个位置时进行的操作(如本文关于数据移动约束的描述)。如果认证失败,或者如果密钥未被适当地加载到密码单元中,或者如果与原语指令502相关联的参数未在合适范围内等等,则密码处理器126也可能未处于受信状态。在加载密钥期间使用认证,并且使用口令(password)和两个随机数来组成HMAC-SHA计算,其中一个随机数由密码处理器126生成并且另一个随机数由应用或用户生成。HMAC计算还可以包括来自原语指令502的值或要被加载的密钥的属性。
在一些实施方案中,希望将密码密钥加载到密码处理器126的一个功能单元中以供执行的应用使用用于所述密钥的口令来计算HMAC。应用可以具有口令的先验知识。例如,当密钥被创建时,应用可以设置密码。应用可以将期望的HMAC计算结果作为参数提供给原语指令502。密码处理器126还生成HMAC计算,并且将它的结果与原语指令502上的期望的结果参数进行比较。如果两个结果匹配,则认证成功并且密钥被加载。如果结果不匹配,则认证失败并且密钥不被加载。
在框609中,取消(abort)原语指令。参照图2的实施方案,控制器取消该原语指令。控制器206终止(terminate)任何额外的微码指令,并且还可以向在应用处理器106上执行的驱动器发送失败通知。然后,流程图600的操作完成。
在框610中,确定密码处理器126处于受信状态后,进行与原语指令相关联的操作。参照图2的实施方案,控制器206基于微码操作来控制不同操作的执行顺序。因此,控制器206可以将用于执行的控制指令传输到密码处理器126内适当的功能单元、非易失性存储器控制器114或易失性存储器控制器118。密码处理器126内适当的功能单元、非易失性存储器控制器114或易失性存储器控制器118进行所述操作。对于在原语指令的执行期间访问非易失性存储器116和易失性存储器120,密码处理器126可以通过用于非易失性存储器116和易失性存储器120的私用接口(private interface)来执行该访问。例如,假设储存在易失性存储器120中的已加密数据加密的密钥要被用于针对原语指令的密码操作。控制器206可以通过用于易失性存储器120的私用接口来取得该已加密数据加密密钥。此外,与原语指令相关联的操作的其他实施例在针对框604(在上面阐述)的描述中示出。
控制器206可以在不同的功能单元之间移动数据。然而,可以用一个或更多个数据移动约束来配置密码处理器126。这样的约束确保流氓进程(rogue process)不能暗中从密码处理器126读取出任何敏感信息。这样的约束可以被储存在微码存储器240中。例如,一个数据约束阻止储存在密钥储存装置220中的数据被写到输出缓冲区216中。这样的约束防止加密密钥以未加密格式被读取出密码处理器126。
另一个示例性约束可以阻止储存在输入缓冲区218中的数据被写到上下文储存装置/PCR 210中。这样的约束防止对密码处理器126的平台配置的覆写。另一个示例性约束可以阻止储存在输入缓冲区218中的数据被写到密钥缓存221。这样的约束防止对储存在密钥缓存中的加密密钥的覆写。回到流程图600,控制在框612处继续。
在框612,确定是否有额外的微码指令要执行。参照图2的实施方案,控制器206作出该确定操作。如上面描述的,控制器206为给定原语指令从微码存储器240中取得一条到多条微码指令。因此,控制器206确定是否这些不同的指令已被执行。在确定要为给定原语指令执行额外的微码指令之后,控制在框606处继续,其中不同的微码指令被执行。在确定无需为给定原语指令执行额外的微码指令之后,微码执行清除(clean-up)操作,以确保密码处理器126停留在受信状态中。清除操作包括诸如从密码单元移除在操作中使用过的密钥、用0或1覆写中间储存装置214中的中间结果、重新设置密码处理器中的状态标志以指示操作完成或密码不再可用等等的操作。在清除操作结束之后,流程图600的操作完成。
流程图300和600的操作可以用于多种不同的受信和密码操作。一个这样的实施例包括对非易失性存储器116的写访问。非易失性存储器116可以被分成多个不同的块。例如,如果非易失性存储器116的大小为8兆字节,则非易失性存储器116可以包括8个1兆字节的块。所述多个不同的块可以具有相关联的使能信号(enable),以控制对其的写访问。在要被储存到给定块的数据已经被认证之后,密码处理器126可以允许对所述给定块的使能信号的断言(assertion)。相应地,密码处理器126的驱动器接收对非易失性存储器116中给定块的写访问的安全***请求。接着,驱动器生成原语指令,所述原语指令请求对要被储存在所述块中的数据的认证。所述原语指令连同已签署证书以及数据被传输到密码处理器126。接着,密码处理器126可以执行多条不同的微码指令,以横贯所述数据生成与所述已签署证书进行比较的密码哈希。密码处理器126可以基于所述比较认证所述数据。这样的实施例可以用于认证被下载到受信移动计算设备100中的给定应用的新补丁。
因此,如所描述的,本发明的实施方案可以在同一处理器上进行受信操作和密码操作两者,所述处理器处于独立于受信移动计算设备内的应用处理器的可执行上下文的可执行上下文中。因此,该密码处理器可以用于进行信任操作(例如用于认证应用处理器的操作***的受信引导操作),同时还使用相同的功能单元进行受信引导操作后续的不同类型的密码操作。
此外,如所描述的,密码处理器126可以确保信任相关的加密密钥不被对外(未加密地)暴露。密码处理器126可以确保密码操作的中间、部分结果也不被对外暴露。此外,密码处理器126可以确保一旦密码操作被发起,所述密码操作不能从密码处理器外部的组件被修改或篡改。
现在描述密码操作的执行的更详细的描述,所述密码操作包括对密码密钥的使用。具体来说,图6B根据本发明的一个实施方案,示出在密码处理器中使用密码密钥的密码操作的执行的流程图。流程图650示出在密码处理器126中的操作执行中使用密码密钥之前,对所述密码密钥的验证和认证操作。
在框652,接收原语指令,以在密码处理器中进行包括密码密钥使用的操作。参照图2的实施方案,控制器206可以接收该原语指令。所述密码密钥可以在密码处理器126外部被生成。这样的密码密钥可以在所述原语指令的接收之间已经被加载到密码处理器126内的存储器中。可替换地,所述密码密钥可以连同所述原语指令被加载到密码处理器126中。所述密码密钥可以由密码处理器126中的功能单元在内部生成。所述密码密钥可以通过保护加密密钥被加密。此外,密码密钥的单元类型和/或使用类型(下面结合图3更详细地描述)可以与所述密码密钥相关联。控制在框654处继续。
在框654,确定密码密钥的单元类型和/或使用类型是否被授权。参照图2的实施方案,控制器206可以作出此确定。回到图3以帮助图示说明,控制器206可以取得用于所述密码密钥的头部。控制器206可以确定要使用该密码密钥的功能单元是否被列为单元类型308中的一个。此外,控制器206可以确定要使用该密码密钥进行的操作是否被列为使用类型310中的一个。在确定该密码密钥的单元类型和/或使用类型未被授权之后,控制在框664处继续,这在下面更详细地描述。
在框656,确定该密码密钥的单元类型和/或使用类型被授权后,生成质询(challenge)。参照图2的实施方案,控制器206可以导致质询的生成。被加载到密码处理器126中的密码密钥可以包括相关联的口令。所述相关联的口令在密码处理器126中已知,并且为发出该原语指令的应用所已知。控制器206可以生成质询,所述质询被输出回在应用处理器106上执行的应用。所述质询可以请求来自应用的、对相关联口令的哈希的响应。虽然口令的哈希可以是多种不同类型的,但是在一个实施方案中,哈希基于HMAC操作。控制在框658处继续。
在框658,接收对质询的响应。参照图1的实施方案,在应用处理器106上执行的(请求执行原语指令的)应用将响应传输回密码处理器126。控制器206接收对此质询的响应。控制在框660处继续。
在框660,确定响应是否正确。参照图2的实施方案,控制器命令SHA单元230生成所述口令的哈希。例如,SHA单元230可以基于HMAC操作生成哈希。控制器206可以命令ALU 222比较从应用接收到的哈希和由SHA单元230生成的哈希。如果哈希相等,则响应被认为是正确的。在确定响应不正确后,控制在框664处继续,这在下面更详细地描述。
在框662,在确定响应正确后,密码密钥被加载到指定的功能单元以进行执行。参照图2的实施方案,控制器206导致密码密钥被加载到指定的功能单元以进行执行。接着,(如上面在流程图600中所描述的)该功能单元可以执行指令。接着,流程图650的操作完成。
在框664,原语指令被取消。参照图2的实施方案,控制器206取消该原语指令。控制器206终止任何额外的微码指令,并且还可以向在应用处理器106上执行的驱动器发送失败通知。接着,流程图650的操作完成。
流程图650示出用于授权密码密钥在密码处理器126中的使用的质询/响应的一个实施例。具体来说,流程图650示出使用与密码密钥相关联的口令的哈希的质询/响应。本发明的实施方案可以使用用于授权的其他类型的质询/响应操作。
储存在微码存储器240中的微码指令可以被修补或更新。然而,如果微码存储器240是只读存储器,则补丁可以被储存在易失性存储器220中,从而补丁中的指令被用来代替微码存储器240中的那些指令。为了维护密码处理器240的安全性和可信赖状态,可以在安装之前认证这样的补丁/更新。现在描述对这些微码指令的这样的更新的一个实施方案。具体来说,图7根据本发明的一个实施方案,示出更新密码处理器中的微码的流程图。
在框702,为密码处理器发起受信引导操作。参照图1的实施方案,基于储存在受信引导ROM 108中的指令引导密码处理器126。作为受信引导操作的一部分,微码存储器240中的指令可以被修补(这在流程图700中更详细地描述)。在以下2003年12月22日递交、标题为“Securing an Electronic Device(保护电子设备)”的共同待审定、共同转让的美国专利申请No.10/745,496中描述了受信引导操作的更详细的描述。控制在框704处继续。
在框704,(作为受信引导操作的一部分)确定是否存在针对微码的补丁。参照图2的实施方案,非易失性存储器116包括指定段,用于对微码指令的补丁的储存。因此,控制器206可以基于指定段中的数据是否包括补丁来确定是否存在针对微码的补丁。确定不存在补丁后,流程图700的操作完成。
在框706,确定存在用于微码的补丁后,所述补丁以及用于所述补丁的密码密钥和签名被加载。参照图2的实施方案,控制器206将所述补丁、用于所述补丁的密码密钥和签名加载到非易失性存储器120中。控制在框708处继续。
在框708,确定用于补丁的密码密钥是否是合法(valid)的。参照图2的实施方案,非易失性存储器116可以包括被定义为“一次可编程”的段。具体来说,该段可以被写一次,由此阻止流氓或恶意进程修改储存在该段中的数据。该段可以包括用于补丁的密码密钥的哈希。因此,控制器206可以分别从非易失性存储器116以及易失性存储器120中取得该哈希和密码密钥。控制器206命令SHA单元230生成密码密钥的哈希。接着,控制器206可以命令ALU 222将该哈希结果与从非易失性存储器116取得的哈希进行比较,以确定这两个值是否相同。如果这两个值相等,则用于补丁的密码密钥是合法的。
在框710,确定用于补丁的密码密钥不合法后,用于补丁的密码密钥和签名被删除。参照图2的实施方案,控制器206将补丁、用于补丁的密码密钥和签名从易失性存储器120中删除。因此,补丁内的指令将不会被加载到密码处理器126中或被密码处理器126执行。接着,流程图700的操作完成。
在框712,确定用于补丁的密码密钥合法后,确定用于补丁的签名是否合法。参照图2的实施方案,控制器206将补丁加载到SHA单元230中。接着,控制器206命令SHA单元230生成补丁的摘要。控制器206将伴随补丁的数字签名连同密码密钥加载到幂运算单元234中。接着,控制器206可以命令幂运算单元234解密所述签名。控制器206可以检查幂运算单元234的输出,以确定所述签名是否被适当地解密。适当解密签名后,控制器206命令ALU 222将已解密签名与由SHA单元230生成的摘要进行比较。如果两个值相等,则用于补丁的签名是合法的,并且所述补丁是用于密码处理器126的被适当授权的补丁。
在框714,确定用于补丁的签名合法后,补丁标志以及用于被修补的微码的标签项(tagentry)被加载。参照图2的实施方案,除了是补丁的一部分的指令之外,补丁可以包括一组补丁标志,所述补丁标志指示微码存储器240的哪些段被修补。控制器206可以将这些补丁标志加载到补丁标志存储器281中。这样的补丁标志可以是用于微码存储器240中每个段的1位表示。补丁标志存储器281中被置位(set)的位指示微码存储器240中的对应段具有补丁。例如,如果在补丁标志存储器240中位5被置位,则微码存储器240中的段5具有对应的补丁。相应地,包括补丁的文件可以包括补丁标志、以补丁标签开头的一连串补丁段、对补丁标志以及所述一连串补丁段和补丁标签的数字签名。用于微码存储器240中的段的给定补丁标签储存补丁中要替代微码存储器240的段被执行的段的标识。因此,在微码存储器240的段中的指令的执行期间,如果标志指示该段被修补,则控制器206(使用标签项)从补丁中取(fetch)指令,以供替代来自微码存储器240的指令进行执行。在一些实施方案中,当要执行补丁的段中的指令时,仅将所述补丁的段从易失性存储器120加载到易失性存储器220中。此外,该段可以保留在易失性存储器220中。因此,如果所述段中的指令要被重新执行,控制器206不必要从易失性存储器120中重新取该指令。流程图700的操作完成。
因此,如所描述的,密码处理器126中的微码可以仅仅基于包括密码密钥的认证操作被修补,所述密码密钥基于储存在“一次可编程”储存装置中的哈希进行验证。认证操作还被基于横贯补丁的签名使用被验证的密码密钥进行验证。
***操作环境
在这部分,介绍***概述。***概述介绍结合本发明的实施方案使用的网络配置。***概述还介绍网络配置的一般功能性。
图8根据本发明的一个实施方案,示出其中具有密码操作的受信移动通信设备可以工作的***配置的简化功能框图。图8示出包括多个受信移动计算设备100A-100N以及多个服务器806A-806N的***800,所述多个受信移动计算设备100A-100N和多个服务器806A-806N通过网络804耦合在一起。网络804可以是广域网、局域网,或者是在多个受信移动计算设备100A-100N和多个服务器806A-806N之间提供通信的不同网络的组合。例如,多个受信移动计算设备100A-100N可以是不同类型的无线计算设备,其中,网络804的一部分被配置为处理无线通信,而网络804的不同的部分可以被配置成为与多个服务器806A-806N的通信处理有线通信。
如上文所描述的,多个受信移动计算设备100A-100N可以执行多项信任和密码操作。例如,多个受信移动计算设备100A-100N的用户可以用在多个服务器806A-806N上执行的不同应用来进行不同的电子商务交易。
在描述中,阐述了大量具体细节,例如逻辑实现、操作代码、指定操作数的方法、资源划分(partitioning)/共用/复制的实现、***组件的类型和相互关系,以及逻辑划分/集成的选择,以提供对本发明的完整理解。然而,本领域的技术人员将意识到,无需使用这些具体的细节可以实践本发明。此外,控制结构、门级电路和整个软件指令序列未详细示出,以免模糊本发明的实施方案。获悉本文所包含的说明的本领域普通技术人员无需超出常规的试验就能够实现适当的功能性。
在说明书中提及的“一个实施方案”、“实施方案”、“示例性实施方案”等指示描述的实施方案可以包括特定特征、结构或特性,但是每个实施方案可以不必包括所述特定特征、结构,或特性。此外,这样的短语不必是指同一实施方案。此外,当关于某种实施方案来描述具体的特点、结构或特性时,无论是否明确地指出,认为本领域的技术人员在其知识范围内都可以结合其他实施方案来实现这种特点、结构或特性。
本发明的实施方案包括可以被实施在由机器可读介质提供的机器可执行指令中的特征、方法或过程。机器可读介质包括以机器(例如计算机、网络设备、个人数字助理、制造工具、具有一组一个或更多个处理器的任何设备,等等)可访问形式提供(即储存和/或传输)信息的任何机制。在示例性实施方案中,机器可读介质包括易失性和/或非易失性介质(例如只读存储器(ROM)、随机访问存储器(RAM)、磁盘储存介质、光储存介质、闪存存储器设备等等)以及电、光、声或其他形式的传播信号(例如载波、红外信号、数字信号等等)。
使用这样的指令来导致用这些指令编程的通用或专用处理器完成本发明的实施方案的方法或过程。可替换地,通过包括用于完成操作的硬连线逻辑的具体硬件组件或者通过编程的数据处理组件和具体硬件组件的任何组合来完成本发明的实施方案的特征或操作。本发明的实施方案包括软件、数据处理硬件、数据处理***实现的方法、以及本文进一步描述的各种处理操作。
多幅附图根据本发明的实施方案示出用于受信移动平台体系结构的***和装置的框图。多幅附图根据本发明的实施方案示出图示说明用于受信移动平台体系结构的操作的流程图。将参照在框图中示出的***/装置来描述流程图的操作。然而,应该理解,流程图的操作可以由与参照框图所讨论的那些***和装置不同的其他***和装置的实施方案完成,并且参照***/装置所讨论的实施方案可以完成与参照流程图所讨论的那些操作不同的其他操作。
考虑本文所描述的实施方案的各种改变,该详细的描述仅意图是示意性的,而不应该被视为限制本发明的范围。为了图示说明,虽然参照信任和加密操作作出描述,但是当受信移动计算设备100被这样的设备的使用者实际操作时,本发明的实施方案不受这样的限制。例如,密码处理器126可以被用来在受信移动计算设备100的调试操作期间认证设备。回到图1来图示说明,设备可以通过JTAG接口155耦合到密码处理器126,以供调试。因此,密码处理器126可以通过质询/响应操作来认证该设备。密码处理器126可以生成被传输到耦合到JTAG接口155的设备的质询。接着,该设备生成对质询的响应。因此,如果密码处理器126基于响应认证该设备,则设备能够通过JTAG接口155来执行与受信移动计算设备100的通信。
为了进一步示出本发明的实施方案的改变,虽然在实施方案中描述为原语指令在密码处理器126中被串行地执行,但是,用于不同原语指令的多项不同的微码操作可以至少部分地同时在其中执行。因此,本发明所要求保护的是所有这样的修改,所述修改可以在所附权利要求书及其等同物的范围和可用等同范围内。因此,说明书和附图被视为示意性的,而不是限制性的。
Claims (10)
1.一种用于提供受信移动平台体系结构的装置,包括
控制器;
密码处理器,包括多于一个密码单元;以及
存储器,所述存储器储存多于一个数据加密密钥以及用于所述数据加密密钥中每一个的相关联的头部,其中,所述相关联的头部包括单元类型,所述单元类型定义所述密码单元中的哪些使用相关联的数据加密密钥,并且所述相关联的头部进一步定义用于相关联的数据加密密钥的使用类型,
其中所述使用类型识别可以使用所述数据加密密钥来执行的一种或更多种操作类型;
所述控制器基于用于所述数据加密密钥的所述相关联的头部中所识别的单元类型来约束所述密码单元中的哪些使用所述数据加密密钥;以及
所述控制器基于用于所述数据加密密钥的所述相关联的头部中识别的使用类型来约束操作类型。
2.如权利要求1所述的装置,其中,所述使用类型包括签署、加密储存、以及证明身份密钥(AIK)操作。
3.如权利要求1所述的装置,其中,所述相关联的头部定义用来加密所述多于一个数据加密密钥的密钥加密密钥的标识。
4.如权利要求1所述的装置,其中,所述多于一个密码单元选自由高级加密标准单元、数据加密标准单元、消息摘要单元和安全哈希算法单元或幂运算单元组成的组。
5.一种用于提供受信移动平台体系结构的方法,包括:
将原语指令接收到密码处理器中,以用于使用数据加密密钥的密码操作的执行,所述数据加密密钥在所述密码处理器中受保护,所述密码处理器包括多于一个密码单元;
取得所述数据加密密钥和用于所述数据加密密钥的相关联的头部,其中,所述相关联的头部包括单元类型,所述单元类型定义所述密码单元中的哪些使用所述数据加密密钥,并且所述相关联的头部进一步定义用于相关联的数据加密密钥的使用类型;以及
在由所述相关联的头部所定义的所述密码单元中的一个中使用所述数据加密密钥来进行操作;
基于用于所述数据加密密钥的所述相关联的头部中所识别的单元类型来约束所述密码单元中的哪些使用所述数据加密密钥;以及
基于用于所述数据加密密钥的所述相关联的头部中识别的使用类型来约束操作类型;
其中所述使用类型识别可以使用所述数据加密密钥来执行的一种或更多种操作类型。
6.如权利要求5所述的方法,其中,所述使用类型识别包括签署、加密储存、以及证明身份密钥(AIK)操作。
7.如权利要求6所述的方法,其中,所述使用所述数据加密密钥来进行操作的步骤包括,当所述使用类型定义了所述操作类型时,使用所述数据加密密钥来进行操作。
8.一种用于提供受信移动平台体系结构的设备,所述设备包括:
用于将原语指令接收到密码处理器中,以用于使用数据加密密钥的密码操作的执行,所述数据加密密钥在所述密码处理器中受保护的装置,所述密码处理器包括多于一个密码单元;
用于取得所述数据加密密钥和用于所述数据加密密钥的相关联的头部的装置,其中,所述相关联的头部包括单元类型,所述单元类型定义所述密码单元中的哪些使用所述数据加密密钥,并且所述相关联的头部进一步定义用于相关联的数据加密密钥的使用类型;以及
用于在由所述相关联的头部所定义的所述密码单元中的一个中使用所述数据加密密钥来进行操作的装置;
用于基于用于所述数据加密密钥的所述相关联的头部中所识别的单元类型来约束所述密码单元中的哪些使用所述数据加密密钥的装置;以及
用于基于用于所述数据加密密钥的所述相关联的头部中识别的使用类型来约束操作类型的装置;
其中所述使用类型识别可以使用所述数据加密密钥来执行的一种或更多种操作类型。
9.如权利要求8所述的设备,其中,所述使用类型包括签署、加密储存、以及证明身份密钥(AIK)操作。
10.如权利要求9所述的设备,其中,用于使用所述数据加密密钥来进行操作的装置包括:用于当所述使用类型定义了所述操作类型时,使用所述数据加密密钥来进行操作的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US52889003P | 2003-12-11 | 2003-12-11 | |
US60/528,890 | 2003-12-11 | ||
US10/815,454 US20050132226A1 (en) | 2003-12-11 | 2004-03-31 | Trusted mobile platform architecture |
US10/815,454 | 2004-03-31 | ||
PCT/US2004/041909 WO2005060151A2 (en) | 2003-12-11 | 2004-12-13 | Trusted mobile platform architecture |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102708177A Division CN102347834A (zh) | 2003-12-11 | 2004-12-13 | 受信移动平台体系结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1914849A CN1914849A (zh) | 2007-02-14 |
CN1914849B true CN1914849B (zh) | 2011-11-16 |
Family
ID=37722682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004800416168A Expired - Fee Related CN1914849B (zh) | 2003-12-11 | 2004-12-13 | 受信移动平台体系结构 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7636858B2 (zh) |
CN (1) | CN1914849B (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132226A1 (en) * | 2003-12-11 | 2005-06-16 | David Wheeler | Trusted mobile platform architecture |
US9171161B2 (en) * | 2006-11-09 | 2015-10-27 | International Business Machines Corporation | Trusted device having virtualized registers |
US8209542B2 (en) | 2006-12-29 | 2012-06-26 | Intel Corporation | Methods and apparatus for authenticating components of processing systems |
US8538015B2 (en) * | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US8392983B2 (en) * | 2007-07-31 | 2013-03-05 | Viasat, Inc. | Trusted labeler |
US8079084B1 (en) | 2007-08-10 | 2011-12-13 | Fortinet, Inc. | Virus co-processor instructions and methods for using such |
US8375449B1 (en) | 2007-08-10 | 2013-02-12 | Fortinet, Inc. | Circuits and methods for operating a virus co-processor |
US8286246B2 (en) | 2007-08-10 | 2012-10-09 | Fortinet, Inc. | Circuits and methods for efficient data transfer in a virus co-processing system |
US9100319B2 (en) | 2007-08-10 | 2015-08-04 | Fortinet, Inc. | Context-aware pattern matching accelerator |
KR20090059602A (ko) * | 2007-12-07 | 2009-06-11 | 한국전자통신연구원 | 세션 메모리 버스를 구비한 암호화 장치 |
US8594333B2 (en) * | 2008-09-05 | 2013-11-26 | Vixs Systems, Inc | Secure key access with one-time programmable memory and applications thereof |
US9432184B2 (en) * | 2008-09-05 | 2016-08-30 | Vixs Systems Inc. | Provisioning of secure storage for both static and dynamic rules for cryptographic key information |
US9501429B2 (en) * | 2008-09-05 | 2016-11-22 | Vixs Systems Inc. | Dynamic key and rule storage protection |
CN101923745B (zh) * | 2009-06-17 | 2012-08-22 | 王守觉 | 一种实用的银行卡附加数据绑定***的加密方法 |
GB201105765D0 (en) | 2011-04-05 | 2011-05-18 | Visa Europe Ltd | Payment system |
US8769355B2 (en) * | 2011-06-27 | 2014-07-01 | Freescale Semiconductor, Inc. | Using built-in self test for preventing side channel security attacks on multi-processor systems |
CN103930899B (zh) * | 2011-11-14 | 2017-03-08 | 意法爱立信有限公司 | 用于管理在设备处输入的公用数据和私人数据的方法 |
US8677150B2 (en) * | 2012-02-01 | 2014-03-18 | Intel Mobile Communications GmbH | Low-power multi-standard cryptography processing units with common flip-flop/register banks |
EP2836968B1 (en) | 2012-04-13 | 2020-05-06 | OLogN Technologies AG | Apparatuses, methods and systems for computer-based secure transactions |
EP3561714B1 (en) | 2012-04-13 | 2022-05-04 | OLogN Technologies AG | Secure zone for digital communications |
TW201403375A (zh) | 2012-04-20 | 2014-01-16 | 歐樂岡科技公司 | 用於安全購買之安全區 |
US9092622B2 (en) | 2012-08-20 | 2015-07-28 | Freescale Semiconductor, Inc. | Random timeslot controller for enabling built-in self test module |
US9448942B2 (en) | 2012-08-20 | 2016-09-20 | Freescale Semiconductor, Inc. | Random access of a cache portion using an access module |
CA2902292C (en) | 2013-03-15 | 2024-05-21 | Ologn Technologies Ag | Systems, methods and apparatuses for securely storing and providing payment information |
WO2015015473A1 (en) | 2013-08-02 | 2015-02-05 | Ologn Technologies Ag | A secure server on a system with virtual machines |
US9135472B2 (en) * | 2013-10-31 | 2015-09-15 | Square, Inc. | Systems and methods for secure processing with embedded cryptographic unit |
KR102293822B1 (ko) | 2013-12-19 | 2021-08-26 | 비자 인터네셔널 서비스 어소시에이션 | 클라우드-기반 트랜잭션 방법 및 시스템 |
US9922322B2 (en) * | 2013-12-19 | 2018-03-20 | Visa International Service Association | Cloud-based transactions with magnetic secure transmission |
AU2015264124B2 (en) | 2014-05-21 | 2019-05-09 | Visa International Service Association | Offline authentication |
US9775029B2 (en) | 2014-08-22 | 2017-09-26 | Visa International Service Association | Embedding cloud-based functionalities in a communication device |
US10726162B2 (en) * | 2014-12-19 | 2020-07-28 | Intel Corporation | Security plugin for a system-on-a-chip platform |
US11481750B2 (en) | 2015-06-30 | 2022-10-25 | Block, Inc. | Pairing a payment object reader with a point-of-sale terminal |
US11087315B2 (en) | 2015-09-24 | 2021-08-10 | Square, Inc. | Server-assisted pairing for wireless communications |
US10120427B1 (en) * | 2016-03-30 | 2018-11-06 | Square, Inc. | Multi-chip reference counting power management |
US11871237B1 (en) | 2016-06-30 | 2024-01-09 | Block, Inc. | Pairing a payment object reader with a point-of-sale terminal |
US10778650B2 (en) * | 2016-08-17 | 2020-09-15 | Dell Products L.P. | Systems and methods for management domain attestation service |
US10410202B1 (en) | 2016-12-31 | 2019-09-10 | Square, Inc. | Expedited booting with brownout monitoring |
CN108287759B (zh) | 2017-01-10 | 2021-07-09 | 阿里巴巴集团控股有限公司 | 处理数据过程中的调度方法、装置和*** |
US10410189B2 (en) | 2017-09-30 | 2019-09-10 | Square, Inc. | Scanning system with direct access to memory |
US10528754B1 (en) * | 2018-10-09 | 2020-01-07 | Q-Net Security, Inc. | Enhanced securing of data at rest |
US11216575B2 (en) | 2018-10-09 | 2022-01-04 | Q-Net Security, Inc. | Enhanced securing and secured processing of data at rest |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0534419A2 (en) * | 1991-09-27 | 1993-03-31 | International Business Machines Corporation | Public key cryptosystem key management based on control vectors |
US20020080958A1 (en) * | 1997-09-16 | 2002-06-27 | Safenet, Inc. | Cryptographic key management scheme |
US6453415B1 (en) * | 1997-09-16 | 2002-09-17 | Safenet, Inc. | Method of communicating securely between an application program and a secure kernel |
US6631472B2 (en) * | 1997-09-16 | 2003-10-07 | Safenet, Inc. | Kernel mode protection |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085090A (en) * | 1997-10-20 | 2000-07-04 | Motorola, Inc. | Autonomous interrogatable information and position device |
US6766455B1 (en) * | 1999-12-09 | 2004-07-20 | Pitney Bowes Inc. | System and method for preventing differential power analysis attacks (DPA) on a cryptographic device |
FI20002255A (fi) * | 2000-10-13 | 2002-04-14 | Nokia Corp | Menetelmä lukkojen hallintaan ja kontrollointiin |
DE10061998A1 (de) * | 2000-12-13 | 2002-07-18 | Infineon Technologies Ag | Kryptographieprozessor |
KR100436814B1 (ko) * | 2001-12-20 | 2004-06-23 | 한국전자통신연구원 | 아이씨카드용 알에스에이 암호 연산 장치 |
GB0221240D0 (en) * | 2002-09-13 | 2002-10-23 | Koninkl Philips Electronics Nv | Current source for cryptographic processor |
US20050132186A1 (en) | 2003-12-11 | 2005-06-16 | Khan Moinul H. | Method and apparatus for a trust processor |
US20050132226A1 (en) | 2003-12-11 | 2005-06-16 | David Wheeler | Trusted mobile platform architecture |
US8511558B2 (en) * | 2005-04-12 | 2013-08-20 | Sandisk Il Ltd. | Smartcard power management |
-
2004
- 2004-06-30 US US10/881,005 patent/US7636858B2/en not_active Expired - Fee Related
- 2004-12-13 CN CN2004800416168A patent/CN1914849B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0534419A2 (en) * | 1991-09-27 | 1993-03-31 | International Business Machines Corporation | Public key cryptosystem key management based on control vectors |
US20020080958A1 (en) * | 1997-09-16 | 2002-06-27 | Safenet, Inc. | Cryptographic key management scheme |
US6453415B1 (en) * | 1997-09-16 | 2002-09-17 | Safenet, Inc. | Method of communicating securely between an application program and a secure kernel |
US6631472B2 (en) * | 1997-09-16 | 2003-10-07 | Safenet, Inc. | Kernel mode protection |
Non-Patent Citations (1)
Title |
---|
JONES R W.ser functions for the generation anddistribution of encipherment keys.Advances in Cryptology-EUROCRYPT'84,LNCS209.1985,317-334. * |
Also Published As
Publication number | Publication date |
---|---|
US7636858B2 (en) | 2009-12-22 |
US20090282261A1 (en) | 2009-11-12 |
CN1914849A (zh) | 2007-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1914849B (zh) | 受信移动平台体系结构 | |
CN102347834A (zh) | 受信移动平台体系结构 | |
US8751818B2 (en) | Method and apparatus for a trust processor | |
US10341091B2 (en) | Secure memory storage | |
US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
JP4615601B2 (ja) | コンピュータセキュリティシステムおよびコンピュータセキュリティ方法 | |
JP4763368B2 (ja) | 通信カード、機密情報処理システム、機密情報転送方法およびプログラム | |
CN103221961B (zh) | 包括用于保护多用户敏感代码和数据的架构的方法和装置 | |
US20150186679A1 (en) | Secure processor system without need for manufacturer and user to know encryption information of each other | |
EP1325401B1 (en) | System for protecting static and dynamic data against unauthorised manipulation | |
CN101996154B (zh) | 支持可重组安全设计的通用处理器 | |
US7571329B2 (en) | Method of storing unique constant values | |
CN102456111B (zh) | 一种Linux操作***许可控制的方法及*** | |
EP0865695A1 (en) | An apparatus and method for cryptographic companion imprinting | |
CN105450620A (zh) | 一种信息处理方法及装置 | |
CN101523399A (zh) | 基于用户认证修改完整性度量的方法和*** | |
CN103929312A (zh) | 一种移动终端及其个人信息保护方法和*** | |
US20080104396A1 (en) | Authentication Method | |
CN102087683A (zh) | 适用在可信任安全平台模块的密码管理与验证方法 | |
EP3193274B1 (en) | Secure memory storage | |
TWI744892B (zh) | 電子系統及電子系統的操作方法 | |
JP2007251437A (ja) | 認証方法及び安全な通信制御方法 | |
APX4500 et al. | Security Policy: Astro Subscriber Motorola Advanced Crypto Engine (MACE) | |
SRX2200 et al. | Security Policy: Astro Subscriber Motorola Advanced Crypto Engine (MACE) | |
JP2004240719A (ja) | ソフトウェア実行制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111116 Termination date: 20151213 |
|
EXPY | Termination of patent right or utility model |