用于密码处理的图形处理单元的制作方法

文档序号:7644222阅读:292来源:国知局
专利名称:用于密码处理的图形处理单元的制作方法
技术领域
本发明的领域一般涉及计算机系统,且更确切地说,涉及使用一种图形处理单元来进行密码处理。
背景技术
因特网的持续增长和电子商务的持续膨胀增加了对于以迅速廉价的方式提供安全交易和数据交换的解决方案的需要。
每天要管理数百万宗在线购物交易的在线购物服务需要这样一种解决方案。在典型的在线购物交易中,安全套接层(SSL)被用作用于购买者与在线购物服务之间交换交易信息的协议。所述SSL协议提供了非常好的安全性,但其密钥交换和鉴定组件需要在计算方面较为昂贵的运算。此项技术中已知的此类运算的一实例是RSA公共密钥系统,其使用多达2048位的密钥长度。因此,管理SSL协议已成为执行安全交易的服务器的极大计算负担。
此外,通过如因特网的无安全保障的网络来交换大量(例如千兆字节)数据的金融机构需要既安全又快速且廉价的数据传送方法,因为用于整体加密和解密的标准方法(例如DES、3DES和AES)在计算方面非常昂贵。
一种常规的加密/解密实施方案使用通用微处理器来执行加密/解密运算的所有方面,包括执行基于RSA的密钥交换和鉴定所需的大量乘法运算。虽然这种实施方案具有可使用常规微处理器而无需任何额外专门硬件来执行的优点,但这种解决方案具有以下缺点其可能会由于微处理器的低乘法处理量的缘故而具有不良性能。
另一种常规实施方案使用专用加密/解密硬件卡来提供用于执行所述乘法算法的专门逻辑。这种硬件卡通常包括额外的乘法逻辑,其用于比通用微处理器更迅速地执行乘法算法的每个分量。然而,这种解决方案的缺点在于此类硬件卡非常昂贵。

发明内容
根据本发明的实施例,使用图形处理单元来进行密码处理。图形处理单元可有效支持密码处理,因为其具有经配置以处理大量(远远多于常规微处理器)并行处理的结构。此外,大多数计算装置装配有图形处理单元,且因此可提供有效的密码处理解决方案而不会导致额外的硬件成本。
根据本发明的另一方面,使用一种能够执行浮点和整数运算二者的图形处理单元来进行密码处理。一般来说,与只能够执行浮点运算的图形处理单元相比,能够执行整数运算的图形处理单元可更高效地执行密码处理中常见的宽乘法运算。此外,能够执行整数运算的图形处理单元执行在整体加密和解密期间进行的某些运算,例如只能够执行浮点运算的图形处理单元无法进行的位操作(例如,移位、旋转)。因此,可通过使用能够执行浮点和整数运算二者的图形处理单元来进一步改进密码处理效率。
本发明还提供用于使用图形处理单元来鉴定在线交易并通过计算机网络安全地交换大量数据的方法。
根据本发明一实施例,用于鉴定在线交易的方法包括以下步骤从客户端计算机处接收安全交易请求并响应于所述请求而传输证书和公共密钥;从客户端计算机处接收经加密的密钥并使用图形处理单元来对经加密的密钥进行解密;和向客户端计算机传输关于已成功解密经加密的密钥的消息。用于鉴定在线交易的方法可进一步包含以下步骤从客户端计算机处接收经加密的交易数据;使用图形处理单元来对经加密的交易数据进行解密;和产生并加密一交易响应消息且将所述经加密的交易响应消息传输给客户端计算机。
根据本发明一实施例,用于通过计算机网络安全地交换大量数据的方法包括以下步骤将数据分割成复数个数据块;使用图形处理单元来为每个数据块加密;将经加密的数据块合并成经加密的数据集;和通过计算机网络来传输所述经加密的数据集。用于通过计算机网络安全地交换大量数据的方法可进一步包含以下步骤通过计算机网络来接收经加密的数据集;将所述经加密的数据集分割成复数个数据块;使用图形处理单元来对每个经加密的数据块进行解密;将经解密的块组合成经解密的数据集;和通过计算机网络来传输接收和成功解密的确认。


为了可详细了解本发明的上述特征,可参考实施例来对上文概述的本发明提供更详细的描述,附图中说明了其中一些实施例。然而,应注意到,附图仅说明本发明的典型实施例,且因此不应认为附图限制了本发明的范围,因为本发明可承认其它同等有效的实施例。
图1说明根据本发明实施例的计算装置;图2是说明使得图形处理单元能用于密码处理的各个软件层的概念图;
图3说明典型的安全网站交易环境;图4说明用于处理安全网站交易的方法步骤的流程图;图5说明典型的整体加密/解密环境;和图6说明用于执行整体加密/解密的方法步骤的流程图。
具体实施例方式
图1说明根据本发明实施例的计算装置100。所述计算装置100包括图形适配器102、图形和存储器控制中心104(有时称为“北桥”)、主存储器106、中央处理单元(CPU)108、I/O控制中心110(有时称为“南桥”)、网络接口装置112、一系列硬盘驱动器114和一系列USB装置116。所述图形适配器102包括图形处理单元(GPU)117和GPU存储器118。所述GPU 117通过链接119而耦合到GPU存储器118。所述图形和存储器控制中心104分别通过链接120、126、124和122而耦合到CPU 108、主存储器106、图形适配器102和I/O控制中心110。所述I/O控制中心110分别通过链接128、130和132而耦合到网络接口装置112、所述系列的硬盘驱动器114和所述系列的USB装置116。
根据此处所说明的本发明实施例,所述链接120、122、124、126、128和130是高速串行总线链接,例如PCI Express(PCIe)链接。在本发明的替代实施例中可提供其它类型的链接。
GPU 117经配置以处理图形数据且具有高度并行的结构。在一个实施例中,GPU 117中存在16个单指令多数据(SIMD)处理单元,且每个SIMD单元均能够并行地处理32个线程。此外,GPU 117能够进行浮点运算和整数运算二者,且比仅能够执行浮点运算的常规GPU更加高效地执行各种类型的密码运算。
由于GPU 117能够执行整数运算,因而GPU 117改进了作为常见密码运算的长整数乘法的效率。长整数乘法需要(i)单宽度到双宽度乘法基元;和(ii)传播进位的有效方法,且GPU 117能够比常规GPU更加高效地执行这两种运算。首先,其执行单宽度到双宽度乘法基元,而不具有与常规GPU所需要的整数到浮点转换相关联的额外开销。其次,其通过使用常规GPU中不可用的高位进位相加(add-with-carryout)和低位进位相加(add-with-carryin)整数指令来容易地处理进位传播。
GPU 117还可执行常规GPU无法执行的整体加密和解密中使用的某些运算。这些运算需要能够执行整数运算的处理单元,且包括例如移位、旋转等位操作步骤。
根据本发明的各个实施例,GPU 117经编程以进行密码处理。图2是说明使GPU 117能进行密码处理的各个软件层的概念图。所述软件层包括应用程序201、特殊函数库202、数学库204和GPU装置驱动程序206。所述应用程序201起始需要密码处理的密码应用。所述特殊函数库202包括应用程序201调用的密码函数。所述数学库204包括密码函数调用的数学函数。所述GPU装置驱动程序206包括使得数学库204中的数学函数能由GPU 117执行的软件。
举例来说,密码应用可包括需要宽数字乘法(本文中称为“宽乘法”)的加密或解密运算。在此种情况下,从特殊函数库202中调用加密或解密特殊函数,且加密或解密特殊函数又从数学库204中调用宽乘法函数。接着,GPU 117通过GPU装置驱动程序206来执行宽乘法函数。GPU装置驱动程序206控制GPU 117以下方式来执行宽乘法函数。GPU 117将被乘数和乘数分成多个较小的被乘数和乘数,将较小的乘法运算(部分乘积产生运算)组织成一系列线程化乘法/累加运算,执行所述较小的乘法/累加运算,执行每个线程结果的最终求和/移位,且接着返回算术上正确的宽乘法结果。
如果对由N个位表示的数字执行算术运算的计算装置的硬件经配置以支持M位的算术逻辑(其中M<N),那么认为由N个位表示的数字对于所述计算装置来说是一宽数字。举例来说,在具有32位宽算术逻辑单元的计算装置中,认为128位的数字是宽数字。
图3中说明使用GPU 117进行密码处理的一个实例。图3说明一安全网站交易环境,其中安全网站服务器300像图1的计算装置100那样配置。在此环境中,在线购物者通过因特网308与安全网站服务器300通信,以通过使用购物者的计算装置304来进行在线购买。
图4说明用于根据称为安全套接层(SSL)的协议在图3所说明的环境中处理安全网站交易的方法步骤400的流程图。所述方法以安全网站服务器300从客户端计算装置304处接收安全交易请求(步骤402)开始。在步骤404中,安全网站服务器300通过传输其证书和公共密钥来响应所述安全交易请求。一旦安全网站服务器300传输其证书和公共密钥,其便等待从客户端计算装置304处接收会话密钥。所述会话密钥是由共享密钥组成的,所述共享密钥是使用安全网站服务器300所提供的公共密钥加密的。一旦在步骤406中接收到此会话密钥,安全网站服务器300便使用其私有密钥来对所述会话密钥进行解密(步骤408),所述私有密钥与传输到客户端计算装置304的公共密钥相关联。接下来,安全网站服务器300向客户端计算装置304传输关于会话密钥已被成功解密的消息,并等待从客户端计算装置304处接收安全交易(步骤410)。一旦安全网站服务器300在步骤412中从客户端计算装置304处接收到安全交易,安全网站服务器300便在步骤414中使用会话密钥来对所述安全交易进行解密。接着,安全网站服务器300产生交易响应消息(例如,销售确认消息)并使用会话密钥来对所述交易响应进行加密。所述方法以安全服务器在步骤416中向客户端计算装置304传输经加密的交易响应而结束。
图5中说明使用GPU 117进行密码处理的另一实例。图5说明整体加密/解密环境,其中计算装置504、508像图1的计算装置100那样配置。在此环境中,第一计算装置504通过因特网512而与第二计算装置508交换大块数据。为了安全起见,在传输之前先由第一计算装置504对所述大块数据进行加密,并在接收之后由第二计算装置508来进行解密。
图6说明用于由第一计算装置504执行整体加密并由第二计算装置508执行整体解密的方法步骤600的流程图。所述方法以第一计算装置504在步骤602中将整体加密数据集分割成一系列待分别加密的加密块开始。在步骤604中,第一计算装置504对每个加密块进行加密,接着在步骤606中将所述系列的经加密的加密块合并成综合的、经加密的数据集。在步骤608中,第一计算装置504将经加密的数据集传输到第二计算装置508,第二计算装置508随后在步骤610中将经加密的数据集分割成若干解密块。在步骤612中,第二计算装置508对每个解密块进行解密,且在步骤614中,第二计算装置508将经解密的块合并成综合的、经解密的数据集。所述方法以第二计算装置508在步骤616中向第一计算装置504发送一消息,确认已接收并成功解密经加密的数据而结束。
虽然上文是针对本发明实施例的,但可在不偏离本发明的基本范围的情况下设计出本发明的其它和进一步的实施例。本发明的范围由所附权利要求书确定。
权利要求
1.一种计算装置,其包含一处理单元,其用于执行存储在存储器中的一密码应用程序;和一图形处理单元,其用于处理图形数据,其中所述密码应用程序包括用于调用将在所述图形处理单元中执行的一宽乘法函数的指令。
2.根据权利要求1所述的计算装置,其中所述密码应用程序包括对一密码函数的一调用,而所述密码函数依次调用所述宽乘法函数。
3.根据权利要求2所述的计算装置,其中根据存储在存储器中的一装置驱动程序来控制所述图形处理单元,且在所述装置驱动程序中指定了用于在所述图形处理单元中执行所述宽乘法函数的所述指令。
4.根据权利要求1所述的计算装置,其中所述密码应用程序是一服务器程序,其使得一服务器计算机能够通过一计算机网络而与客户端计算机安全地通信。
5.根据权利要求4所述的计算装置,其中所述服务器计算机根据安全套接层(SSL)协议而与所述客户端计算机通信。
6.根据权利要求1所述的计算装置,其中所述密码应用程序是一整体加密程序,其用于对大量数据进行加密并通过一计算机网络来传输所述经加密的数据。
7.根据权利要求1所述的计算装置,其中所述密码应用程序是一整体解密程序,其用于通过一计算机网络来接收大量经加密的数据并对所述大量经加密的数据进行解密。
8.根据权利要求1所述的计算装置,其中所述图形处理单元经配置以用于浮点运算和整数运算。
9.一种用于处理一安全交易的方法,其包含以下步骤接收一安全交易请求;将所述安全交易请求发送到一图形处理单元;和在所述图形处理单元上处理所述安全交易请求。
10.根据权利要求9所述的方法,其中所述安全交易是一鉴定交易。
11.根据权利要求10所述的方法,其中处理所述安全交易请求的所述步骤包括以下步骤接收一经加密的密钥;使用所述图形处理单元来对所述经加密的密钥进行解密;和传输一关于已成功解密所述经加密的密钥的消息。
12.根据权利要求10所述的方法,其中所述处理所述安全交易请求的步骤包括以下步骤接收经加密的交易数据;使用所述图形处理单元来对所述经加密的交易数据进行解密;和产生并加密一交易响应消息并传输所述经加密的交易响应消息。
13.根据权利要求12所述的方法,其中所述解密步骤包括使用所述图形处理单元来执行一宽乘法运算的步骤。
14.根据权利要求9所述的方法,其中所述图形处理单元经配置以用于浮点运算和整数运算。
15.根据权利要求9所述的方法,其中所述安全交易是一加密交易。
16.根据权利要求15所述的方法,其中处理所述安全交易请求的所述步骤包括以下步骤将所述数据分割成复数个数据块;使用所述图形处理单元对所述数据块中的每一者进行加密;将所述经加密的数据块合并成一经加密的数据集;和传输所述经加密的数据集。
17.根据权利要求16所述的方法,其中所述加密步骤包括使用所述图形处理单元执行一位操作的步骤。
18.根据权利要求9所述的方法,其中所述安全交易是一解密交易。
19.根据权利要求18所述的方法,其中处理所述安全交易请求的所述步骤包括以下步骤接收一经加密的数据集;将所述经加密的数据集分割成复数个数据块;使用所述图形处理单元来对所述经加密的数据块中的每一者进行解密;将所述经解密的块组合成一经解密的数据集;和传输一接收和成功解密的确认。
20.根据权利要求19所述的方法,其中所述解密步骤包括使用所述图形处理单元来执行一位操作的步骤。
全文摘要
本发明提供一种图形处理单元,其经编程以进行密码处理,以使得可提供快速、有效的密码处理解决方案,而不会导致额外的硬件损耗。所述图形处理单元可有效地进行密码处理,因为其具有一经配置以处理大量并行处理的结构。通过将所述图形处理单元配置成能够执行浮点和整数运算二者,可进一步改进在所述图形处理单元上进行的所述密码处理。
文档编号H04L29/06GK101017557SQ20071000759
公开日2007年8月15日 申请日期2007年2月8日 优先权日2006年2月8日
发明者诺伯特·朱法 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1