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的程序被用作硬 ...
【技术保护点】
一种计算机系统,包括:具有作为协作处理器的现场可编程门阵列的处理器,所述处理器具有用于编程所述现场可编程门阵列的安全通道;其中所述现场可编程门阵列包括可编程元件;存储用于所述现场可编程门阵列的程序库的存储器,所述程序库包括用于执行密码操作的一个或多个编程库;其中,在选择程序库后,所述现场可编程门阵列被安全地重新编程以根据所选的程序库来执行密码操作。
【技术特征摘要】
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·南丁格尔,
申请(专利权)人:微软公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。