加密代码执行的制作方法

文档序号:11161026阅读:309来源:国知局
加密代码执行的制造方法与工艺

本公开涉及信息处理的领域,更加具体地,涉及信息处理系统中软件的分发和使用。



背景技术:

软件开发者和经销商使用了各种方法来试图控制对其可执行代码的使用,以便于保护他们的知识产权和潜在收益。这类方法包括激活码、许可服务器、计量、复制保护、以及硬件加密狗(dongle)。

附图说明

附图通过示例的方式而非限制的方式示出了本发明。

图1根据本发明的实施例示出了包括对加密代码执行的支持的系统。

图2根据本发明的实施例示出了包括对加密代码执行的支持的处理器。

图3根据本发明的实施例示出了包括加密代码执行的系统架构。

图4根据本发明的实施例示出了用于加密代码执行的方法。

具体实施方式

公开了用于加密代码执行的本发明的实施例。在说明书中,可能提及诸如组件和系统配置之类的大量具体细节以便于提供对本发明的更加深入的理解。但是,本领域技术人员将认识到的是本发明可以在不具备这些具体细节的情况下被实践。另外,一些已知的结构、电路、及其他特征未被详细示出以避免不必要地使本发明模糊不清。

在下面的描述中,对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等的提及指示本发明被这样描述的(一个或多个)实施例可以包括特定特征、结构、或特点,但不止一个实施例可能包括这些特定特征、结构、或特点或者并非每个实施例都必须包括这些特定特征、结构、或特点。另外,一些实施例可以具有针对其他实施例所述的特征中的一些特征、全部特征或不具有那些特征。

如本说明书和权利要求书中所使用的,并且除非另有规定,否则使用序数形容词“第一”、“第二”、“第三”等来描述元素仅表明所指代的是元素的特定实例或相似元素的不同实例,而并非意图暗示被这样描述的元素必须在时间上、空间上、排序上或以任何其他方式采用特定顺序。

如背景技术部分所述,软件开发者和经销商使用了各种方法来试图控制对其可执行代码的使用,以便于保护他们的知识产权和潜在收益。使用本发明实施例的方法可被期望来降低对反向工程和未授权使用的敏感性。

图1根据本发明的实施例示出了系统100,系统100是包括对加密代码执行的支持的信息处理系统。系统100可以表示任意类型的信息处理系统,诸如,服务器、台式计算机、便携式计算机、机顶盒、手持式设备(例如,平板或智能电话)、或嵌入式控制系统。系统100包括处理器110、系统存储器120、图形处理器130、外设控制代理140、以及信息存储设备150。体现本发明的系统可以包括任意数量的这些组件中的每种组件以及任意其他组件或其他元件,诸如外设和输入/输出设备。除非另有规定,否则该系统实施例或任意系统实施例中的任何组件或全部组件或其他元件可以通过任意数量的总线、点对点、或其他有线或无线接口或连接被连接、耦合或者以其他方式与彼此进行通信。系统100的任意组件或其他部分(无论图1中是否示出)可以被集成或以其他方式被包括在以下各项之上或之内:单个芯片(片上系统或SOC)、管芯、衬底、或封装。

系统存储器120可以是动态随机存取存储器或可由处理器110读取的任意其他类型的介质。图形处理器130可以包括任意处理器或用来处理显示器132的图形数据的其他组件。外设控制代理140可以表示任意组件(例如,芯片集组件),外设、输入/输出(I/O)、或诸如设备142之类的其他组件或设备(例如,触摸屏、键盘、麦克风、扬声器、其他音频设备、照相机、视频或其他媒体设备、网络适配器、运动传感器或其他传感器、用于全球定位或其他信息的接收器等等)、和/或信息存储设备150通过包括或经由外设控制代理140可以被连接或耦合至处理器110。信息存储设备150可以包括任意类型的永久或非易失性存储器或存储设备,例如闪存和/或固态、磁盘或光盘驱动。应当注意的是除了处理器110或代替处理器110,图形处理器130、外设控制代理140和能够执行指令(和/或根据程序或模型或一组规则)的任意其他组件或代理可以包含本发明的实施例。

处理器110可以表示集成在单个衬底或封装在单个封装内的一个或多个处理器或处理器核,它们中的每一个可以包括采用任意组合方式的多个线程和/或多个执行核。每个被表示为处理器110的处理器或在处理器110内的处理器可以是任意类型的处理器,包括通用微处理器(例如CoreTM处理器族的处理器或来自公司或其他公司的其他处理器族的处理器)、或专用处理器或微控制器。处理器110可以被构建或设计为在被微码控制或没有微码控制的情况下根据任意指令集架构来操作。另外,处理器110可以表示可在其中实现本发明的实施例的信息处理系统中的任意设备或组件。

根据本发明实施例的对加密代码执行的支持可以通过使用嵌入在硬件中的电路和/或逻辑、微码、固件、和/或如下面所述或根据任意其他方法来布置的其他结构的任意组合来实现在处理器(例如,处理器110)中,并且在图1中被表示为代码解密器112。

图2示出了处理器200,处理器200的实施例可以作为系统100中的处理器110。处理器200包括私钥210、解密单元220、指令单元230、执行单元240、控制单元250以及缓存单元260。处理器200还可以包括图2中未示出的任意其他电路、结构或逻辑。如上面所介绍以及下面进一步描述的,代码解密器112的功能可以被包括在处理器200中或者被分布在处理器200中的任意标记单元之间或处理器200中的其他地方。另外,处理器200的每个所述和/或所示单元的功能和/或电路可以以任何方式被合并和/或分布。

私钥210可以表示任意硬件密钥、密钥集、或嵌入到处理器200中可被用作加密算法中的密钥的其他(一个或多个)值。私钥210的大小可以是任意数目(例如,32、256等等)的比特位。在实施例中,私钥210的值可在制造处理器200期间或之后通过使用例如导电连接件或紧附件或融合件(fuse)被嵌入、编程或以其他方式存储在只读存储器中。私钥210可对于每个处理器核、处理器IC、处理器封装、或信息处理系统而言是唯一的。

在实施例中,在处理器200或系统100中的任意其他处理器或其他代理上运行的软件或固件无法访问私钥210(例如,存储私钥210的只读存储器),换言之,防止私钥210被软件或固件读取。在实施例中,私钥210可以在物理上处于解密单元220内或者被硬连线至解密单元220,从而只有解密单元220中的硬件可以访问私钥210,和/或更加具体地,只有在需要对加密指令进行解密时私钥210才是可用的、可读取的或可以其他方式访问的。任何软件或任何其他硬件既无法观察到密钥的值也无法观察到解密操作。在其他实施例中,私钥210还可被用于其他用途。

解密单元220可以包括任何电路、结构和/或其他硬件来执行一个或多个密码算法以用来根据任何已知的技术对信息进行加密和/或解密。例如,加密单元220可以使用私钥210来将加密信息(密文)转换成非加密信息(明文)。在实施例中,解密单元220用来对加密代码进行解密以生成非加密的代码,从而非加密的代码可以被处理器200中的一个或多个执行单元(例如,执行单元240)执行。

指令单元230可以包括任意电路、结构、和/或其他硬件(例如,指令解码器)来提取、接收、解码、解释、调度和/或以其他方式处理将由处理器200执行的指令。可以在本发明的范围内使用任意指令格式。例如,指令可以包括操作码和一个或多个操作数,其中操作码可以被解码成供执行单元240执行的一个或多个微指令或微操作。操作数和其他参数可以隐式地、直接地、间接地、或根据任意其他方法与指令相关联。

执行单元240可以包括任意电路、结构、和/或其他硬件,诸如运算单元、逻辑单元、浮点单元、移位器等等,以用于处理数据和执行指令、微指令、和/或微操作。指令单元240可以表示在物理上或逻辑上不同的任意一个或多个执行单元。

控制单元250可以包括任意电路、逻辑或其他指令,包括微码、状态机器逻辑、以及可编程逻辑,用来控制处理器200的单元和其他元件的操作以及在处理器200内部的数据传输、传入处理器200的数据传输以及从处理器200传出的数据传输。控制单元250可以使处理器200执行或参与本发明的方法实施例的执行(诸如下面所述的方法实施例),例如,控制单元250通过使处理器200使用执行单元240、加密单元220和/或任意其他资源来执行指令单元230所接收的指令以及从执行单元230接收的指令得到的微指令或微操作。

缓存单元260可以包括系统100的存储器层次中任意级别的任意一个或多个专用缓存存储器或共享缓存存储器,它们被实现在静态随机存取存储器或任意其他存储器技术中,连同电路、结构和/或其他硬件一起来控制和/或提供对它们的使用和维护。在实施例中,缓存单元260可以包括2级(L2)缓存262、1级数据缓冲(L1 d-缓存)264以及1级指令缓存(L1 i-缓存)266。

图3根据本发明的实施例示出了用于加密代码执行的架构300。架构300包括系统310和独立软件供应商(ISV)370。系统310可以表示诸如系统100之类的信息处理系统,包括处理器核320和系统存储器390,它们二者对应于上文所述的系统100的处理器和系统存储器。处理器核320可以表示根据本发明的实施例的处理器或处理器核(例如,处理器200),它包括代码解密器330以及私钥332、L2缓存340、L1 d-缓存342、L1 i-缓存344、指令单元350、以及执行单元360,每一项分别对应于上文所述的处理器200的密钥、缓存或单元。

代码解密器330可以表示根据本发明的实施例的代码解密器,诸如代码解密器112和/或解密单元220。ISV 370可以表示任意软件开发者或经销商、内容或服务提供商、或者可以提供要安装在系统310上、在系统310上运行或由系统310执行的软件、程序、过程、功能、例程、模块或其他代码或指令(统称为代码)组的任意其他实体。如下所述,这类代码可被ISV 370加密并被表示为加密代码372。加密代码372可以由根据本发明的实施例的代码解密器330解密以生成经解密的代码374。图3还示出了未加密的代码376,其可以表示根据本发明实施例的来自ISV 370或来自任意其他来源的未经加密的任意代码。

加密代码372可由ISV 370或任意其他实体进行加密,从而加密代码372可以使用私钥332来解密。在实施例中,私钥332可以是非对称密码密钥对的私钥,其中公钥380可以是该密钥对中的另一密钥。因此,公钥380可由处理器核320的制造商生成和/或用可验证的数字签名进行签字,以便于为ISV 370或另一实体提供下述保障:用公钥380加密的代码仅可由处理器核320执行,也就是说不可以进行改变、复制、反向工程、调试、分析等等(即,不能由其他处理器核执行,除非根据需要,可由已经被处理器核制造商,或在系统供应商可对私钥332进行编程的实施例中被系统供应商共享私钥332的一个或多个其他处理器核执行)。公钥380可以按照期望被公开和/或分发以允许ISV 370和其他实体使用公钥380来对它们的代码进行加密。

应当注意的是在图3的实施例中,经解密的代码374被直接从L1 i-缓存344路由至指令单元350以供执行单元360执行,而没有返回L2缓存340的路径(不过可能有用于数据378的路径),以及没有可以通过其泄露经解密的代码的路径。换句话说,处理器320仅包括一条用于经解密的代码的路径,即从代码解密器332到执行单元360的路径,该路径是经解密的代码的唯一目的地。在此实施例中,路径包括L1 i-缓存344和指令单元350。其他实施例可以包括用来保障根据实施例解密的代码仅可以被执行而不可以被泄露给另一缓存、缓冲器、存储器或其他存储位置的其他方法。例如,如果指令解码不是必要的,则将经解密的代码直接路由至执行单元。

图4根据本发明的实施例示出了用于加密代码执行的方法400。尽管本发明的方法实施例不限于此方面,但是在描述图4的方法实施例时可以参考图1、2、3的元件。方法400的各部分可以由硬件(例如,指令单元230、控制单元250、执行单元240和/或解密单元220)、固件、软件以及信息处理系统的用户等的组合独立执行。

在方法400的方框410中,代码例如被ISV利用处理器制造商或供应商提供的公钥进行加密。在方框412中,加密代码被提供给信息处理系统的用户,该信息处理系统包括具有私钥(例如,私钥332)的处理器(例如,处理器320)。在方框414中,加密代码被存储在信息处理系统的系统存储器(例如,系统存储器390)中。

在方框420中,来自加密代码的一个或多个加密指令被加载到可由处理器访问的第一存储结构(例如,L2缓存340)中。在方框422中,(一个或多个)加密指令被传送至代码解密器(例如,代码解密器330)。在方框424中,代码解密器使用私钥来对(一个或多个)加密指令进行解密。在方框426中,(一个或多个)经解密的指令被加载到处理器中的第二存储结构(例如,L1i-缓存344)中。在方框428中,(一个或多个)经解密的指令被传送至处理器中的指令单元(例如,指令单元230)。

在方框430中,(一个或多个)经解密的指令可以被解码或者以其他方式进行准备以供指令单元执行。在方框432中,被解码的经解密的指令由处理器中的执行单元(例如,执行单元240)执行。应当注意的是,贯穿方法400,经解密的指令除了被处理器执行以外不可用于任何用途。

在本发明的各种实施例中,可以采用不同的顺序、通过合并或省略所示出的方框、使用另外的方框、或者通过重新排序、合并、省略或另外的方框的组合来执行图4中所示出的方法。另外,本发明的实施例不限于方法400及其变体。在本发明的范围内许多本文未描述的其他方法实施例(以及装置、系统和其他实施例)也是可能的。

如上所述,本发明的实施例或实施例的部分可被存储在采用任意形式的机器可读介质上。例如,存储在可由处理器200读取的介质上的软件或固件指令在被处理器200执行时,可以使得处理器200执行本发明的实施例。另外,本发明的方面可以被体现在存储在机器可读介质上的数据中,其中数据表示可用于制造处理器200的部分或全部的设计或其他信息。

因此,描述了本发明的用于加密代码执行的实施例。尽管已经描述并在附图中示出了某些实施例,但是将要理解的是这样的实施例对于宽泛的发明来说仅仅是说明性的而非限制性的,并且本发明不限于所示出和描述的具体结构和布置,因为本领域的普通技术人员基于对本公开的学习可以做出各种其他修改。在诸如本技术领域这样发展迅速并且很难预见进一步演进的技术领域中,在使能技术进步的帮助下,可以很容易在布置和细节方面进行修改而不背离本公开的原理或所附权利要求的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1