当前位置: 首页 > 专利查询>微软公司专利>正文

用可重新编程的密码操作来管理对现场可编程门阵列的使用制造技术

技术编号:9618551 阅读:96 留言:0更新日期:2014-01-30 06:27
描述了用可重新编程的密码操作来管理对现场可编程门阵列的使用。描述了对操作系统中多个进程对现场可编程门阵列的使用的管理。现场可编程门阵列能在通用计算系统中用作共享可编程协作处理器资源。FPGA的组件被隔离来保护FPGA以及FPGA和计算机系统的其它组件之间传输的数据。被传输的数据可由FPGA或其它组件来数字地签名以提供认证。用于编程FPGA的代码可由作者来加密并签名、以被加密的状态加载到FPGA中并接着在用该代码编程FPGA之前由FPGA自己来解密和认证。该代码可被用于改变在FPGA中执行的密码操作,包括密钥、或解密和加密算法或两者。

The use of programmable gate arrays is managed with programmable cryptographic operations

Describes the use of programmable gate arrays for managing cryptographic operations with programmable cryptography. Describes the management of the use of field programmable gate arrays for multiple processes in an operating system. Field programmable gate array (FPGA) can be used as a shared programmable cooperative processor resource in general-purpose computing system. FPGA components are isolated to protect data transferred between the FPGA and other components of the FPGA and the computer system. Data to be transmitted may be digitally signed by FPGA or other components to provide authentication. The code used to program FPGA can be encrypted and signed by the author, loaded into the FPGA in encrypted state, and then decrypted and authenticated by FPGA itself before programming the FPGA with the code. The code can be used to change cryptographic operations performed in FPGA, including keys, or decryption and encryption algorithms, or both.

【技术实现步骤摘要】
用可重新编程的密码操作来管理对现场可编程门阵列的使用
本申请涉及用可重新编程的密码操作来管理对现场可编程门阵列的使用。
技术介绍
在大多数通用计算机内,操作系统是管理对计算机内资源的访问的主要软件。主要资源是执行被设计成在计算机上运行的应用程序的中央处理单元(CPU)、主存储器和存储。在一些计算机体系结构中,可出现附加的处理单元(诸如处理器中的多个核)和/或附加的处理器(称为协作处理器)。这样的协作处理器的示例包括图形处理单元(GPU)和数字信号处理器(DSP)。操作系统也管理多个进程对这些资源的访问。现场可编程门阵列(FPGA)是一种通常被用在专用计算设备中的逻辑器件。FPGA通常被用于执行此门阵列尤其适用于的特定的、专用的功能。FPGA通常位于外围设备或其它专用硬件(诸如连接到诸如PCI总线的系统总线并通过该系统总线被访问的印刷电路板)中。一般而言,这样的器件被编程一次并被使用多次。因为这些器件是可编程的,相比于其它专用逻辑器件,它们具有能被在现场更新的优势。
技术实现思路
提供本
技术实现思路
以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本
技术实现思路
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。一个或多个现场可编程门阵列(FPGA)能在通用计算系统中用作共享可编程协作处理器资源。FPGA能被编程来执行功能,这些功能进而能与一个或多个进程相关联。在多个进程的情况下,FPGA能被共享,并且进程能在访问FPGA的时间间隙期间被分配到FPGA的至少一个部分。用硬件描述语言所写的用于编程FPGA的程序被用作硬件库。操作系统对以下进行管理:将FPGA资源分配到进程、根据要由进程使用FPGA来执行的功能来编程该FPGA、以及对这些进程对FPGA的使用进行调度。如果FPGA被用作通用计算平台的组件,那么其可能容易受到不安全代码的攻击和执行。例如,对数据传输和存储器的检查可能暴露与安全操作相关的密钥、算法和其它信息。为了提升安全性,FPGA的各个组件被隔离来保护FPGA以及FPGA和计算机系统的其它组件之间传输的数据。例如,由FPGA写入到存储器的数据被加密,并在从存储器中读回时在FPGA中被解密。在FPGA和诸如CPU或GPU等其它组件之间传输的数据(无论是直接地或通过存储器的)可使用为通信中的组件所知的密钥(无论是使用共享秘密密钥还是公钥/私钥对)来被类似地加密。被传输的数据还可由FPGA或其它组件来数字地签名以提供认证。用于编程FPGA的代码可由作者来加密并签名、以被加密的状态加载到FPGA中并接着在用该代码编程FPGA之前由FPGA自己来解密和认证。密钥还可被嵌入在用于编程FPGA的已编译的程序逻辑中。在FPGA内执行的密码操作能使用FPGA的可编程元件来实现并可被重新编程来提供灵活的密码环境。密钥、或解密和加密算法之一或它们两者能被重新编程。在以下描述中,对附图进行了参考,附图构成了实施方式的一部分且在其中作为示例示出了本专利技术技术的具体示例实现。可以理解,可以使用其它实施例并且可以做出结构上的改变而不背离本专利技术的范围。附图描述图1是对其操作系统能被实现的具有FPGA资源的示例计算系统的框图。图2是FPGA功能单元的说明性示例的示意图。图3是使用具有FPGA资源的计算机系统上的硬件和软件库的应用的示例体系结构的示意图。图4是示出随着时间的对FPGA使用的图。图5是具有支持隔离组件的现场可编程门阵列的计算系统的框图。图6是现场可编程门阵列的更详细的框图。图7是描述用新的密码操作来安全地编程FPGA的流程图。具体实施方式以下部分提供了对示例计算环境的简要的、一般的描述,在该示例计算环境中能实现用于管理对FPGA资源的使用的操作系统。该系统可以用众多通用或专用计算设备来实现。适合的公知计算设备的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上型设备(例如,媒体播放器、笔记本计算机、蜂窝电话、个人数据助理、语音记录器)、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包括以上系统或设备的任一个的分布式计算环境等等。图1仅仅示出示例计算环境,并不旨在对适合的计算环境的使用范围或功能提出任何限制。参考图1,示例计算环境包括计算设备100。在一个基本配置中,计算设备100包括至少一个处理单元102(诸如通用计算机的典型中央处理单元(CPU))和存储器104。计算设备可包括多个处理单元和/或附加的协作处理单元,诸如图形处理单元(GPU)。计算设备还包括一个或多个现场可编程门阵列(FPGA),其被表示为可用作共享(在运行在计算机上的进程间共享)的协作处理资源的FPGA单元120。FPGA可位于其自己的CPU插孔中或位于分开的被插入到扩展槽(诸如快速外围部件互连(PCI-E)槽)中的卡上。通过提供这样的FPGA单元,能在得到硬件加速的益处的情况下实现各种非常适合于门阵列来实现的功能。取决于处理单元和FPGA单元的配置,该单元或单元内的每个功能单元具有相关联的输入/输出通道来用于与主操作系统进程进行通信。例如,能提供专用于该功能单元并在其与使用该功能单元的进程之间共享的存储器区域。一种请求队列和响应队列还能被用于使得能够实现在FPGA单元内实现的操作的异步调用。此外,FPGA单元中的功能单元针对进程的状态能被保存到用于该功能单元和该进程的存储器区域并从该存储器区域中还原。替换地,其它技术能被用于确保功能单元在被其进程使用前处于已知状态。取决于计算设备的配置和类型,存储器104可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或是两者的某种组合。处理单元、协作处理器和存储器的该配置在图1中用虚线106示出。计算设备100还可具有附加的资源和设备。例如,计算设备100还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。在图1中通过可移动存储108和不可移动存储110示出这样的附加存储。计算机存储介质包括以用于存储诸如计算机程序指令、数据文件、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储器104、可移动存储108和不可移动存储110全部都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并且可由计算设备100访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备100的一部分。计算设备100还可包括通信连接112,其允许设备通过通信介质与其它设备进行通信。通信连接112的实现是取决于正由计算设备访问的通信介质的种类的,这是因为其提供了对这样的介质的接口以允许通过该通信介质的数据的传输和/接收。通信介质通常承载诸如载波或其他传输机制等已调制数据信号中的计算机程序指令、数据文件、数据结构、程序模块或其他数据,并包括任何信息传递介质。术语已调制数据信号摂指其一个或多个特征以这样的方式设置或改变以便在信号中对信息进行编码的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线本文档来自技高网...
用可重新编程的密码操作来管理对现场可编程门阵列的使用

【技术保护点】
一种计算机系统,包括:具有作为协作处理器的现场可编程门阵列的处理器,所述处理器具有用于编程所述现场可编程门阵列的安全通道;其中所述现场可编程门阵列包括可编程元件;存储用于所述现场可编程门阵列的程序库的存储器,所述程序库包括用于执行密码操作的一个或多个编程库;其中,在选择程序库后,所述现场可编程门阵列被安全地重新编程以根据所选的程序库来执行密码操作。

【技术特征摘要】
2012.06.20 US 13/528,4381.一种计算机系统,包括:具有作为协作处理器的现场可编程门阵列的处理器,所述处理器具有用于编程所述现场可编程门阵列的安全通道;其中所述现场可编程门阵列包括可编程元件,所述可编程元件在所述现场可编程门阵列内被隔离,使得所述可编程元件与所述现场可编程门阵列外部的其它系统组件隔离;存储用于所述现场可编程门阵列的程序库的存储器,所述程序库包括用于执行密码操作的一个或多个编程库;其中,在选择程序库后,所述现场可编程门阵列被安全地重新编程以根据所选的程序库来执行密码操作。2.如权利要求1所述的计算机系统,其特征在于,安全地重新编程包括提供经加密的程序逻辑。3.如权利要求2所述的计算机系统,其特征在于,所述现场可编程门阵列在所述现场可编程门阵列内对经加密的程序逻辑进行解密,并使用经解密的程序逻辑来对所述可编程元件进行编程。4.如权利要求3所述的计算机系统,其特征在于,经加密的程序逻辑包括嵌入在其中的经加密的密钥,使得当被解密时,该密钥是经解密的程序逻辑的一部分。5.如权利要求3所述的计算机系统,其特征在于,还包括提供经加密的密钥,其中所述现场可编程门阵列在所述现场可编程门阵列内解密所述经加密的密钥,并使用经解密的密钥来解密经加密的程序逻辑。6.如权利要求3所述的计算机系统,其特征在于,经加密的程序逻辑被数字地签名并且所述现场可编程门阵列在对所述可编程元件进行重新编程之前认证经加密的程序逻辑。7.如权利要求1所述的计算机系统,其特征在于,所述现场可编程门阵列包括:第一存储器,所述第一存储器用于接收包括经加密的程序逻辑和至少一个经加密的密钥的输入数据;第一解密模块,所述第一解密模块具有输入以接收所述至少一个经加密的密钥、对应于所述经加密的密钥的发送者的公钥以及与所述现场可编程门阵列相关联的私钥,并具有提供经解密的密钥的输出;第二解密模块,所述第二解密模块具有输入以接收来自所述第一解密模块的经解密的密钥以及来自所述存储器的经加密的程序逻辑,并具有提供经解密的程序逻辑的输出;第二存储器,所述第二存储器用于接收经解密的程序逻辑;以及控制电路,所述控制电路用于使用来自所述第二存储器的经解密的程序逻辑来对所述现场可编程门阵列的可编程元件进行编程。8.如权利要求1所述的计算机系统,其特征在于,所述现场可编程门阵列包括:存储器访问通道,包括:加密模块,所述加密模块具有输入以接收来自所述现场可编程门阵列的处理元件的数据以及将经加密的数据提供到存储器的输出;以及解密模块,所述解密模块具有输入以接收来自所述存储器的数据以及将经解密的数据提供到所述现场可编程门阵列内的处理元件的输出。9.一种现场可编程门阵列,包括:多个可编程处理元件,包括被编程以执行密码操作的元件,所述可编程处理元件在所述现场可编程门阵列内被隔离,使得所述可编程处理元件与所述现场可编程门阵列外部的其它系统组件隔离;多个用于存储密码秘密的隔离的寄存器,所述密码秘密被用在由所述处理元件执行的密码操作中,使得由所...

【专利技术属性】
技术研发人员:B·A·拉马恰E·B·南丁格尔
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1