平码五不中公式规律
  • / 12
  • 下载费用:30 金币  

加密代码执行.pdf

关 键 ?#21097;?/dt>
加密 代码 执行
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201480080597.3

申请日:

2014.08.20

公开号:

CN106663177A

公开日:

2017.05.10

当前法律状态:

实审

?#34892;?#24615;:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 21/72申请日:20140820|||公开
IPC分类号: G06F21/72 主分类号: G06F21/72
申请人: 英特尔公司
发明人: 叶夫根尼·罗本
地址: 美国加利福尼亚州
优?#28909;ǎ?/td>
专利代理机构: ?#26412;?#19996;方亿思知识产权代理有限责任公司 11258 代理人: 孙洋
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201480080597.3

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

公开了用于加密代码执行的本发明的实施例。在一个实施例中,处理器包括私钥、代码解密器以及加密单元。代码解密器用于对加密代码进行解密以生成经解密的代码,加密代码是利用对应于私钥的公钥进行加密的。执行单元用于执行经解密的代码。

权利要求书

1.一?#25191;?#29702;器,包括:
私钥;
代码解密器,该代码解密器对加密代码进行解密以生成经解密的代码,所述加密代码
利用对应于所述私钥的公钥进行加密;以及
执行单元,该执行单元执行所述经解密的代码。
2.如权利要求1所述的处理器,其中所述执行单元是所述经解密的代码的唯一目的地。
3.如权利要求1所述的处理器,还包括从所述代码解密器到所述执行单元的路径。
4.如权利要求3所述的处理器,其中从所述代码解密器到所述执行单元的路径是用于
所述经解密的代码的唯一路径。
5.如权利要求4所述的处理器,还包括指令单元,该指令单元在从所述代码解密器到所
述执行单元的路径中。
6.如权利要求4所述的处理器,还包括指令缓存,该指令缓存在从所述代码解密器到所
述执行单元的路径中。
7.如权利要求6所述的处理器,其中所述指令缓存是一级缓存。
8.如权利要求7所述的处理器,还包括二级缓存,所述加密代码将从所述二级缓存传送
?#20102;?#36848;代码解密器。
9.一种方法,包括:
由处理器接收加密代码;
使用所述处理器内的私钥对所述加密代码进行解密以生成经解密的代码;以及
由所述处理器执行所述加密代码。
10.如权利要求9所述的方法,其中所述加密代码利用包括所述私钥的非对称密码密钥
对的公钥进行加密。
11.如权利要求9所述的方法,其中所述执行步骤由执行单元实施,其中所述执行单元
是所述加密代码的唯一目的地。
12.如权利要求11所述的方法,其中所述解密步骤由代码解密器实施,其中所述私钥仅
可由所述代码解密器获取。
13.如权利要求12所述的方法,其中从所述代码解密器到所述执行单元的路径是用于
所述经解码的代码的唯一路径。
14.如权利要求13所述的方法,还包括将所述经解密的代码从所述代码解密器传送至
一级指令缓存。
15.如权利要求14所述的方法,还包括将所述经解密的代码从所述一级指令缓存传送
至指令单元。
16.如权利要求15所述的方法,还包括由所述指令单元对所述经解密的代码进行解码
来生成被解码的经解密的指令以供所述执行单元执行。
17.如权利要求16所述的方法,还包括将所述加密代码加载到二级缓存中。
18.如权利要求17所述的方法,还包括将所述加密代码从所述二级缓存传送?#20102;?#36848;代
码解密器。
19.如权利要求10所述的方法,其中所述公钥已被所述处理器的制造商进行数字签名。
20.一种系统,包括:
系统存储器,该系统存储器存储加密代码;以及
处理器,包括:
私钥;
代码解密器,该代码解密器对所述加密代码进行解密以生成经解密的代码,所述加密
代码利用对应于所述私钥的公钥进行加密;以及
执行单元,该执行单元执行所述经解密的代码。

说明书

加密代码执行

技术领域

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

背景技术

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

附图说明

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

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

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

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

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

具体实施方式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

缓存单元260可以包括系统100的存储器层次中?#25105;?#32423;别的?#25105;?#19968;个或多个专用
缓存存储器或共享缓存存储器,它们被实现在静态随机存取存储器或?#25105;?#20854;他存储器技术
中,连同电路、结构和/或其他硬件一起来控制和/或提供对它们的使用和维护。在实施例
中,缓存单元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可以表示?#25105;?#36719;件开发者或经销商、内容或服务提供商、或者
可以提供要安装在系统310上、在系统310上运行或?#19978;?#32479;310执行的软件、程序、过程、功
能、例程、模块或其他代码或指令(统称为代码)组的?#25105;?#20854;他实体。如?#28388;?#36848;,这类代码可
被ISV 370加密并被表示为加密代码372。加密代码372可以由根据本发明的实施例的代码
解密器330解密以生成经解密的代码374。图3还示出了未加密的代码376,其可以表示根据
本发明实施例的来自ISV 370或来自?#25105;?#20854;他来源的未经加密的?#25105;?#20195;码。

加密代码372可由ISV 370或?#25105;?#20854;他实体进行加密,从而加密代码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的路径(?#36824;?#21487;能有用于数据
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,经解密的指令除了被处理器执行以外不可
用于任何用途。

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

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

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

关于本文
本文标题:加密代码执行.pdf
链接地址:http://www.pqiex.tw/p-6091908.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 福建十一选五助手下载 上证指数新浪财经 天天乐棋牌苹果游戏下载 天津11选5开奖记录 天津11选5开奖直播 娱乐棋牌游戏平台 分分彩平台哪个正规 这期福彩开奖什么号码是多少 澳洲幸运8开奖是什么时候 江西多乐彩彩彩乐