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

安全的模幂运算处理器、方法、系统和指令技术方案

技术编号:17746210 阅读:20 留言:0更新日期:2018-04-18 19:42
本发明专利技术的一方面的一种处理器包括解码单元,所述解码单元用于对利用模糊化输入信息进行模幂运算的指令进行解码。所述利用模糊化输入信息进行模幂运算的指令用于指示将存储用于模幂运算操作的输入信息的多个源操作数。将存储在所述多个源操作数中的所述输入信息中的至少一部分输入信息将被模糊化。执行单元与所述解码单元耦合。响应于所述利用模糊化输入信息进行模幂运算的指令,所述执行单元用于将模幂运算结果存储在目的地存储位置中,所述目的地存储位置将由所述利用模糊化输入信息进行模幂运算的指令指示。公开了其他处理器、方法、系统和指令。

【技术实现步骤摘要】
【国外来华专利技术】安全的模幂运算处理器、方法、系统和指令背景
本文描述的实施例总体上涉及处理器。具体地,本文描述的实施例总体上涉及在处理器中执行模幂运算。
技术介绍
密码技术被广泛用于帮助保护数据和/或通信的机密性和完整性。两种常用类型的密码技术是对称密钥密码技术和非对称或公钥密码技术。对称密钥密码技术使用单一类型的密钥。同一密钥既用于加密数据又用于解密数据。另外,同一密钥既用于生成数字签名又用于验证数字签名。相比之下,公钥密码技术使用两种不同类型的密钥。这两种密钥中的一种是秘密的或私密的,而另一种密钥不是秘密的而是公开可用的。所谓的公钥和私钥被用于不同的互补性目的。例如,公钥可用于加密数据,而私钥可用于解密已加密数据。作为另一个示例,私钥可用于生成数字签名,而公钥可用于验证数字签名。公钥密码技术被广泛使用。例如,公钥密码技术被广泛用于各种互联网标准或协议,如例如安全套接层(SSL)、传输层安全(TLS)、互联网协议安全(IPsec)、安全/多用途互联网邮件扩充(S/MIME)、良好隐私(PGP)和GNU隐私卫士(GPG)。一般地,当经由互联网和/或其他通信信道采用这样的标准或协议时,初始阶段一般涉及建立信道的安全性、交换密码密钥并且验证证书。可使用各种公钥算法。一种公钥算法是Diffie-Hellman密钥交换算法,这种算法有时被称为Diffie-Hellman、或简称为D-H。Diffie-Hellman算法通常用于经由公共信道来安全地交换秘密密码密钥。另一种公钥算法是数字签名算法(DSA)算法。DSA通常用于提供数字签名。又一种公钥算法是RSA算法(以其作者Rivest、Shamir、Adleman命名)。RSA通常用于安全地交换秘密密码密钥并且提供数字签名。附图说明可通过参考以下描述和附图来最佳地理解本专利技术,所述描述和附图用于说明实施例。在附图中:图1是处理器的实施例的框图,所述处理器可操作用于执行利用模糊化输入信息进行模幂运算的指令的实施例。图2是一种执行利用模糊化输入信息进行模幂运算的指令的实施例的方法的实施例的流程框图。图3是一种利用蒙哥马利约简来执行利用模糊化输入信息进行模幂运算的指令的实施例的方法的详细示例实施例的流程框图。图4是利用模糊化输入信息进行模幂运算的指令的示例实施例的框图。图5是立即数的示例实施例的框图。图6是合适的执行单元的第一实施例的框图。图7是合适的执行单元的第二实施例的框图。图8是合适的执行单元的第三实施例的框图。图9A是框图,展示了有序流水线的实施例和寄存器重命名乱序发布/执行流水线的实施例。图9B是处理器核的实施例的框图,所述处理器核包括耦合至执行引擎单元的前端单元,并且所述前端单元和执行引擎单元两者都耦合至存储器单元。图10A是单个处理器核的实施例连同其与管芯上互连网络的连接以及连同其2级(L2)高速缓存的本地子集的框图。图10B是图10A的处理器核的一部分的展开视图的实施例的框图。图11是可以具有多于一个核、可以具有集成存储器控制器并且可以具有集成图形的处理器的实施例的框图。图12是计算机架构的第一实施例的框图。图13是计算机架构的第二实施例的框图。图14是计算机架构的第三实施例的框图。图15是计算机架构的第四实施例的框图。图16是根据本专利技术的实施例的使用软件指令转换器来将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式本文公开了模幂运算指令、用于执行这些指令的处理器、在处理或执行这些指令时由这些处理器执行的方法以及结合有一个或多个用于处理或执行这些指令的处理器的系统。在一些实施例中,模幂运算指令可用于结合各种不同的公钥密码算法(如例如,RSA、DSA和Diffie-Hellman算法)来执行模幂运算。在这样的公钥密码算法中,当经由互联网和/或其他通信链路建立安全会话(例如,结合安全会话设置、证书签名、证书验证等等)时,模幂运算的使用率往往很高。在其他实施例中,本文公开的模幂运算指令可用于结合各种其他计算机实施的算法和/或与通信有关的算法和/或数据处理算法来执行模幂运算。本专利技术的范围并不限于这些模幂运算指令的任何已知用途,而是它们为可由本领域技术人员用于各种不同目的的通用指令。在以下描述中,陈述了大量具体细节(例如,具体指令操作、用于实施模幂运算的具体算法、具体数据格式、具体处理器配置、具体微架构细节、具体操作序列等)。然而,可以在没有这些具体细节的情况下实践实施例。在其他实例中,未详细示出众所周知的电路、结构和技术,以避免模糊对所述描述的理解。最初,对模幂运算进行简单讨论可能是有帮助的。可如等式1中所示的那样来表达模幂运算:R=BEmodN等式1根据此表达式,模幂运算结果(R)等于将底数(B)升幂到指数(E)的幂运算对模数(N)取模后的余数。幂运算涉及使或将底数(B)升幂到指数(E)次方。通过示例的方式,如果指数是正整数,那么幂运算可表示使指数数目个底数相乘(例如,指数数目次的B*B*B*B…)。然后,可用模数(N)除幂运算结果以确定余数R。通常,在许多应用中,底数、指数和/或模数中的一者或多者可表示相对较大的整数(例如,通常大于约256位,且常常大得多)。例如,在RSA、DSA和Diffie-Hellman的许多实施方式中,底数、指数和模数中的每一者是各自至少为512位、各自至少为1024位或甚至更大的较大整数并不少见。另外,所用整数的尺寸可随时间的推移潜在地增大,以便有助于提供附加的安全性。因此,执行这样的模幂运算计算一般往往是计算密集型的且耗时的。在一方面,本文公开的模幂运算指令可往往有助于加速模幂运算计算,这可有助于改进性能。另外,在一些实施例中,模幂运算指令可以是利用模糊化输入信息进行模幂运算的指令和/或可具有模糊化输入信息。这些指令可有助于改进模幂运算计算的机密性或安全性。通常,且尤其是在用于公钥密码应用中时,模幂运算计算可以基于秘密、私密或机密信息。作为一个说明性示例,在RSA用于通常在互联网服务器上完成的签名过程的情况下,指数(E)是不应被泄露的秘密或私密值。在其他应用中,不同和/或附加的信息可潜在地是秘密的或私密的,如例如底数(B)、指数(E)、模数(N)从模数计算得到的参数(例如,约简常数)或其他信息的任何组合。然而,一个挑战是模幂运算的常规软件实施方式并未充分保护这样的秘密或私密信息。例如,这样的秘密或私密信息一般是为至少一些软件可读的或以其他方式可存取的。然而,所有软件(包括即使是享有最高特权的系统级软件(例如,虚拟机监控程序(VMM)、操作系统(OS)、基本输入/输出系统(BIOS)等等))都可能潜在地被毁坏(例如,在享有特权的恶意软件的情况下),且因此可并不是完全值得信赖的。如果软件被毁坏并且能够读取秘密或私密信息,那么与公钥密码算法相关联的预期安全性可至少部分地妥协掉。在一些情况下,这会是一个巨大的问题。作为一个示例,在一些情况下,秘密密钥可以是极其有价值的(例如,比单一会话中受保护的数据更有价值)。作为另一个示例,在OpenSSLHeartbleed漏洞中,由于OpenSSL中的故障,假定可信的网页服务器的任何私钥都可由于存储缓冲区溢出而可能被偷走。这可允许充分冒充所述网页服务器,使得客户端无法知道本文档来自技高网...
安全的模幂运算处理器、方法、系统和指令

【技术保护点】
一种处理器,包括:解码单元,用于对利用模糊化输入信息进行模幂运算的指令进行解码,所述利用模糊化输入信息进行模幂运算的指令用于指示用于存储用于模幂运算操作的输入信息的多个源操作数,其中将存储在所述多个源操作数中的所述输入信息中的至少一部分输入信息将被模糊化;以及与所述解码单元耦合的执行单元,所述执行单元用于响应于所述利用模糊化输入信息进行模幂运算的指令,将模幂运算结果存储在目的地存储位置中,所述目的地存储位置将由所述利用模糊化输入信息进行模幂运算的指令指示。

【技术特征摘要】
【国外来华专利技术】2015.09.25 US 14/866,3341.一种处理器,包括:解码单元,用于对利用模糊化输入信息进行模幂运算的指令进行解码,所述利用模糊化输入信息进行模幂运算的指令用于指示用于存储用于模幂运算操作的输入信息的多个源操作数,其中将存储在所述多个源操作数中的所述输入信息中的至少一部分输入信息将被模糊化;以及与所述解码单元耦合的执行单元,所述执行单元用于响应于所述利用模糊化输入信息进行模幂运算的指令,将模幂运算结果存储在目的地存储位置中,所述目的地存储位置将由所述利用模糊化输入信息进行模幂运算的指令指示。2.如权利要求1所述的处理器,其特征在于,所述解码单元用于对用于指示所述多个源操作数的所述指令进行解码,所述多个源操作数用于存储模糊化指数、模糊化底数和模糊化模数中的至少一者。3.如权利要求1所述的处理器,其特征在于,所述解码单元用于对用于指示所述多个源操作数的所述指令进行解码,所述多个源操作数用于存储约简常数和模糊化约简常数中的一者,其中所述约简常数由用于模幂运算的约简算法定义并且可从模数导出。4.如权利要求1所述的处理器,其特征在于,所述解码单元用于对用于指示所述多个源操作数的所述指令进行解码,所述多个源操作数用于存储模糊化秘密输入参数和非模糊化公共输入参数。5.如权利要求1所述的处理器,其特征在于,所述解码器用于对用于具有至少一个字段的所述指令进行解码,所述至少一个字段用于指示用于所述模幂运算操作的所述输入信息的对应部分是否被模糊化。6.如权利要求1所述的处理器,其特征在于,进一步包括为软件不可读的秘密,并且其中,所述解码单元用于对用于指示所述模糊化输入信息的所述指令进行解码,在没有所述处理器的为所述软件不可读的所述秘密的情况下无法从所述模糊化输入信息导出所述模幂运算结果所基于的对应输入信息。7.如权利要求1所述的处理器,其特征在于,进一步包括所述处理器的为软件不可读的秘密密钥,并且其中所述解码单元用于对用于指示所述模糊化输入信息的所述指令进行解码,所述模糊化输入信息用于包括已加密输入信息,所述已加密输入信息将利用所述处理器的为所述软件不可读的所述秘密密钥来被解密。8.如权利要求1所述的处理器,其特征在于,所述解码单元用于对用于指示所述模糊化输入信息的所述指令进行解码,所述模糊化输入信息用于包括用于指示多组秘密非模糊化输入信息中将为以下各情况中的一种情况的一组秘密非模糊化输入信息的值:存储在所述处理器上并且为软件不可读;以及在所述处理器上生成并且为软件不可读。9.如权利要求8所述的处理器,其特征在于,所述值将是以下各项中的一项:将用于选择所述一组秘密非模糊化输入信息的索引;将用于选择所述一组秘密非模糊化输入信息的数字;以及所述一组秘密非模糊化输入信息的标识符。10.如权利要求1所述的处理器,其特征在于,所述解码单元用于对用于具有至少一个字段的所述指令进行解码,所述至少一个字段将用于确定所述源操作数的尺寸为多个不同的可能尺寸中的一项。11.如权利要求10所述的处理器,其特征在于,所述解码单元用于对将具有以下各项的所述指令进行解码:尺寸指示字段,其将用于确定基本尺寸;以及三倍尺寸指示字段,其用于指示所述基本尺寸是否被增大为三倍以确定所述源操作数的所述尺寸。12.如权利要求1至11中任一项所述的处理器,其特征在于,所述执行单元用于响应于所述利用模糊化输入信息进行模幂运算的指令的第二实例进行以下操作:检测尝试对模糊化输入信息进行去模糊化的失败;以及用信号通知错误。13.如权利要求1至11中任一项所述的处理器,其特征在于,所述执行单元用于响应于所述利用模糊化输入...

【专利技术属性】
技术研发人员:V·戈帕尔G·M·沃尔里齐
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1