当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于椭圆曲线加密硬件加速的技术制造技术

技术编号:18723277 阅读:31 留言:0更新日期:2018-08-22 00:45
用于椭圆曲线加密(ECC)的技术包括一种具有ECC引擎的计算设备,该ECC引擎读取指示256位数据宽度或者384位数据宽度的数据路径选择器信号。ECC引擎从数据端口读取一个或多个参数,该参数具有通过数据路径选择器信号指示的数据宽度。ECC引擎从指令端口读取操作码,该操作码识别诸如椭圆曲线运算或素域算术运算之类的ECC运算。ECC引擎执行具有通过数据路径选择器识别的数据宽度的运算。ECC引擎将结果数据写入一个或多个输出端口,该结果数据具有通过数据路径选择器识别的数据宽度。ECC引擎可以利用指定的边信道保护等级来执行椭圆曲线运算。计算设备可以包括用于控制ECC引擎的加密驱动器。描述并且要求保护其它实施例。

Hardware acceleration technology for Elliptic Curve Cryptography

Techniques for Elliptic Curve Cryptography (ECC) include a computing device with an ECC engine that reads data path selector signals indicating 256-bit data width or 384-BIT data width. The ECC engine reads one or more parameters from the data port that have the data width indicated by the data path selector signal. The ECC engine reads the opcode from the instruction port, which identifies ECC operations such as elliptic curve operations or prime field arithmetic operations. The ECC engine executes the operation of data width recognized by data path selectors. The ECC engine writes the result data to one or more output ports with a data width identified by the data path selector. The ECC engine can perform elliptic curve operations using the specified edge channel protection level. The computing device can include an encrypted drive for controlling the ECC engine. Description and requirements for protection of other embodiments.

【技术实现步骤摘要】
用于椭圆曲线加密硬件加速的技术
技术介绍
当计算设备和电子通信网络继续以各种形式激增时,信息安全仍然是重要的问题。密码技术经常用于确保将电子信息安全地递送至其设想的接收者,并且用于确定请求对信息或其它设备的访问的设备和/或过程是否应该被准许这样的访问。公钥加密是典型地使用如下两个密钥的技术:私钥,其保持为秘密的;以及公钥,其可以自由地公开,用于定义一组受信任的计算设备中的成员。虽然公钥和私钥是相关的,但是根据公钥不能可行地确定私钥。椭圆曲线加密(ECC)是一类基于使用有限域上的椭圆曲线的密码运算的公钥加密。ECC运算可以用于执行包括密钥交换和数字签名操作的传统的密码运算。例如,使用ECC运算的常见的密码算法包括用于密钥交换的椭圆曲线迪菲-赫尔曼(ECDH)、用于数字签名/验证操作的椭圆曲线数字签名算法(ECDSA)、用于认证的增强型隐私ID(EPID)、以及其它密码算法。附图说明本文中描述的概念在附图中通过示例而非限制的方式来示出。出于示出的简单和清晰,附图中示出的元件不必按比例绘制。在认为适合的地方,附图标记在附图之间重复以示出相对应或类似的元件。图1是用于椭圆曲线加密(ECC)硬件加速的计算设备的至少一个实施例的简化的框图;图2是可以通过图1的计算设备建立的环境的至少一个实施例的简化的框图;图3是图1-图2的ECC引擎的至少一个实施例的简化的框图;图4是图1-图3的ECC引擎的至少一个实施例的简化的引脚分配图;图5是可以通过图1-图4的计算设备执行的用于驱动ECC引擎的方法的至少一个实施例的简化的流程图;图6是可以通过图1-图4的计算设备执行的用于ECC硬件加速的方法的至少一个实施例的简化的流程图;并且图7是可以通过图1-图4的计算设备执行的用于执行ECC运算的方法的至少一个实施例的简化的流程图。具体实施方式虽然本公开的概念容易进行各种修改和替代的形式,但是其特定的实施例已通过附图中的示例示出并且将在本文中详细地被描述。然而,应该理解的是,不是要将本公开的概念限制于公开的特定形式,而是相反,是要涵盖与本公开和所附权利要求一致的所有修改、等效物、以及替代物。本说明书中的对“一个实施例”、“实施例”、“示出的实施例”等的引用指示描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以或者可以不必包括特定的特征、结构或特性。此外,这样的短语不必指的是相同的实施例。另外,当结合实施例对特定的特征、结构或特性进行描述时,可以认为的是,结合其它实施例来实现这样的特征、结构或特性是在本领域技术人员的知识内的,无论是否明确地对该实施例进行描述。此外,应该认识到的是,以“A、B和C中的至少一个”的形式包括在列表中的项可以表示(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。相似地,以“A、B或C中的至少一个”形式列出的项可以表示(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。在一些情况中,可以以硬件、固件、软件或者其任意组合中来实现所公开的实施例。还可以将公开的实施例实现为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带的或者存储在其上的指令,该指令可以由一个或多个处理器来读取和执行。机器可读存储介质可以体现为用于存储或发送以由机器(例如,易失性或非易失性存储器、介质光盘、或者其它介质设备)可读形式的信息的任意存储设备、机制、或其它物理结构。在附图中,一些结构或方法特征可以以特定的布置和/或顺序示出。然而,应该认识到的是,这样的特定的布置和/或顺序可能不是必需的。而在一些实施例中,这样的特征可以以与示出的附图中示出的相比不同的方式和/或顺序来布置。此外,将结构或方法特征包括在特定的附图中不意味着暗示这样的特征在所有实施例中是必需的,并且在一些实施例中,这样的特征可以不被包括或者可以与其它特征组合在一起。现在参考图1,在示出的实施例中,用于椭圆曲线加密(ECC)硬件加速的计算设备100包括处理器120和ECC引擎122。如以下描述的,通过处理器120执行的软件和/或固件可以向ECC引擎122卸载椭圆曲线密码运算。处理器120对ECC引擎122的数据路径选择线路进行设置以指定密码运算是对256位的数据还是对384位的数据执行。处理器120利用适合的参数和/或操作数来加载ECC引擎122的一个或多个寄存器,指示ECC引擎122执行密码运算,并且然后从ECC引擎122读取结果数据。处理器120还可以指定将由ECC引擎122使用的特定的边信道攻击保护等级。ECC引擎122可以提供对ECC密码运算的快速、有能效的计算,与使用通用处理器核来执行相同的运算相比具有改进的性能和/或功耗。例如,ECC引擎122的一个可能的实施例以大约65000个逻辑门实现并且被仿真达到比等效的软件解决方案快大约30倍。此外,通过支持384位数据以及相关联的ECC运算(即,ECC-384),ECC引擎122可以支持192位安全强度。通过提供低功耗和相对高等级的安全强度,ECC引擎122可以适用于物联网设备或者具有长部署周期(例如,15-20年)的其它低功率的设备。计算设备100可以体现为能够执行本文中描述的功能的任意类型的计算或计算机设备,该设备没有限制地包括计算机、移动计算设备、物联网设备、网络装置、web装置、可穿戴计算设备、膝上型计算机、上网本计算机、平板计算机、桌上型计算机、工作站、服务器、分布式计算系统、基于处理器的系统、和/或消费者电子设备。如图1中示出,计算设备100示出性地包括处理器120、输入/输出子系统124、存储器126、数据存储设备128、以及通信子系统130、和/或通常在物联网设备或相似的计算设备中找到的其它组件和设备。当然,在其它实施例中,计算设备100可以包括其它或额外的组件,例如,通常在移动计算设备中找到的组件(例如,各种输入/输出设备)。额外地,在一些实施例中,示出的组件中的一个或多个可以并入另一组件或者另外形成另一组件的部分。例如,在一些实施例中,存储器126或者其部分可以并入处理器120。处理器120可以体现为能够执行本文中描述的功能的任意类型的处理器。处理器120可以体现为单核或多核处理器、数字信号处理器、微控制器、或者其它处理器或处理/控制电路。如示出的,处理器120包括ECC引擎122。ECC引擎122可以体现为能够执行本文中描述的功能的任意功能块、IP核、嵌入式控制器、逻辑电路、逻辑门、和/或处理器120的其它组件。此外,虽然示出为包括在处理器120中,但是应该理解的是在一些实施例中,ECC引擎122可以包括在诸如I/O子系统124之类的计算设备100的不同的组件中或者可以体现为独立加速器、协处理器、安全引擎、或者其它集成电路。存储器126可以体现为能够执行本文中描述的功能的任意类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器126可以存储在计算设备100的操作期间使用的各种数据和软件,例如,操作系统、应用、程序、库和驱动程序。存储器126经由I/O子系统124通信地耦合至处理器120,该I/O子系统可以体现为用于利用处理器120、存储器126以及计算设备100的其它组件来促进输入/输出操作的电路本文档来自技高网...

【技术保护点】
1.一种用于密码加速的计算设备,所述计算设备包括椭圆曲线加密(ECC)引擎,其用于:读取所述ECC引擎的数据路径选择器信号,其中,所述数据路径选择器信号指示256位数据宽度或者384位数据宽度;从所述ECC引擎的数据端口读取密码运算的参数的参数值,其中,所述参数值具有通过所述数据路径选择器信号指示的数据宽度;响应于对所述参数值的读取,从所述ECC引擎的指令端口读取第一操作码,其中,所述第一操作码指示所述密码运算;响应于对所述第一操作码的读取,利用所述参数值执行所述密码运算,其中,所述密码运算具有通过所述数据路径选择器信号指示的数据宽度;并且响应于对所述密码运算的执行,将结果数据写入所述ECC引擎的输出端口,其中,所述结果数据具有通过所述数据路径选择器信号指示的数据宽度。

【技术特征摘要】
2017.02.09 US 15/428,7731.一种用于密码加速的计算设备,所述计算设备包括椭圆曲线加密(ECC)引擎,其用于:读取所述ECC引擎的数据路径选择器信号,其中,所述数据路径选择器信号指示256位数据宽度或者384位数据宽度;从所述ECC引擎的数据端口读取密码运算的参数的参数值,其中,所述参数值具有通过所述数据路径选择器信号指示的数据宽度;响应于对所述参数值的读取,从所述ECC引擎的指令端口读取第一操作码,其中,所述第一操作码指示所述密码运算;响应于对所述第一操作码的读取,利用所述参数值执行所述密码运算,其中,所述密码运算具有通过所述数据路径选择器信号指示的数据宽度;并且响应于对所述密码运算的执行,将结果数据写入所述ECC引擎的输出端口,其中,所述结果数据具有通过所述数据路径选择器信号指示的数据宽度。2.根据权利要求1所述的计算设备,其中,所述密码运算包括素域算术运算。3.根据权利要求1所述的计算设备,其中,所述密码运算包括椭圆曲线运算。4.根据权利要求3所述的计算设备,其中,执行所述椭圆曲线运算包括利用指定的边信道保护等级执行所述椭圆曲线运算,其中,所述参数值指示所述指定的边信道保护等级。5.根据权利要求4所述的计算设备,其中,所述指定的边信道保护等级包括无保护、简单保护、或者差分保护。6.根据权利要求4所述的计算设备,其中,执行所述椭圆曲线运算包括:将一个或多个仿射坐标转换为相对应的雅可比投影坐标,其中,所述仿射坐标和所述雅可比投影坐标被存储在所述ECC引擎的一个或多个相对应的寄存器中;利用所述雅可比投影坐标执行所述椭圆曲线运算;并且响应于对所述椭圆曲线运算的执行,将所述雅可比投影坐标转换为相对应的仿射坐标。7.根据权利要求6所述的计算设备,其中:所述椭圆曲线运算包括椭圆曲线标量乘法;所述指定的边信道保护等级包括无保护;并且执行所述椭圆曲线运算进一步包括执行加倍-和-相加标量乘法算法。8.根据权利要求6所述的计算设备,其中:所述椭圆曲线运算包括椭圆曲线标量乘法;所述指定的边信道保护等级包括简单保护;并且执行所述椭圆曲线运算进一步包括执行MontgomeryLadder标量乘法算法。9.根据权利要求6所述的计算设备,其中:所述椭圆曲线运算包括椭圆曲线标量乘法;所述指定的边信道保护等级包括差分保护;将所述一个或多个仿射坐标转换为所述相对应的雅可比投影坐标包括将所述一个或多个仿射坐标转换为相对应的随机化的雅可比投影坐标;并且执行所述椭圆曲线运算进一步包括利用所述随机化的雅可比投影坐标执行MontgomeryLadder标量乘法算法。10.根据权利要求1所述的计算设备,其中,所述ECC引擎进一步用于:确定所述ECC引擎的开始信号是否被声明;响应于确定所述开始信号被声明,设置所述ECC引擎的忙信号;响应于所述对所述密码运算的执行,清除所述忙信号;并且响应于对所述忙信号的清除,声明所述ECC引擎的运算完成信号;其中,读取所述数据路径选择器信号包括响应于对所述忙信号的设置,读取所述数据路径选择器信号。11.根据权利要求10所述的计算设备,所述计算设备进一步包括加密驱动器,其用于:确定所述ECC引擎的所述忙信号是否被设置;响应于确定所述忙信号未被设置,设置所述ECC引擎的所述数据路径选择器信号;响应于对所述数据路径选择器信号的设置,声明所述ECC引擎的所述开始信号;响应于对所述开始信号的声明,确定所述ECC引擎的所述运算完成信号是否被声明;并且响应于确定所述ECC引擎的所述运算完成信号被声明,从所述ECC引擎的输出端口读取结果数据。12.根据权利要求10所述的计算设备,其中,所述ECC引擎进一步用于:响应于确定所述开始信号被声明,确定所述ECC引擎的指令有效信号是否被声明;其中,读取所述第一操作码包括响应于确定所述ECC引擎的所述指令有效信号被声明,读取所述第一操作码。13.根据权利要求12所述的计算设备,所述计算设备进一步包括加密驱动器,其用于:响应于对所述ECC引擎的所述开始信号的声明,将所述第一操作码写入所述ECC引擎的所述指令端口;并且响应于所述第一操作码的写入,声明所述ECC引擎的所述指令有效信号。14.一种用于密码加速的方法,所述方法包括:通过计算设备的椭圆曲线加密(ECC)引擎,读取所述ECC引擎的数据路径选择器信号,其中,所述数据路径选择器信号指示256位数据宽度或者384位数据宽度;通过所述ECC引擎,从所述ECC引擎的数据端口读取密码运算的参数的参数值,其中,所述参数值具有通过所述数据路径选择器信号指示的数据宽度;响应于读取所述参数值,通过所述ECC引擎,从所述ECC引擎的指令端口读取第一操作码,其中,所述第一操作码指示所述密码运算;响应于读取所述第一操作码,通过所述ECC引擎,利用所述参数值执行所述密码运算,其中,所述密码运算具有通过所述数据路径选择器信号指示的数据宽度;以及响应于...

【专利技术属性】
技术研发人员:S·高希M·R·萨斯特里
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1