公钥加密系统的制作方法

文档序号:11532274阅读:527来源:国知局
公钥加密系统的制造方法与工艺

本发明涉及一种包括密钥生成设备的公开密钥加密系统。密钥生成设备被配置为生成在公钥加密设备中使用的公钥和在私钥解密设备中使用的对应的私钥。密钥生成设备被配置为以电子形式获得私有随机值。



背景技术:

公钥加密是使用两个单独密钥的密码术的领域,这两个密钥之一是秘密(私有的),这两个密钥之一被称为公共的。虽然不同,但是该密钥对的两个部分在数学上是链接的。一个密钥锁定或加密明文以获得密文,另一个密钥解锁或解密该密文以再次获得该明文。在没有私钥的情况下,公钥不能执行解密功能。公钥甚至可以被公布,然而在解密密文上,攻击者并没有得到帮助。公钥加密也称为非对称加密。

用于公钥密码术的已知算法基于数学关系,诸如整数因子​​分解和离散对数问题。尽管在计算上容易地使预期的接受者生成公钥和私钥,使用私钥解密消息,并且使发送者容易使用公钥来加密消息,但是任何人难以仅基于他们对公钥的了解而导出私钥。后者不同于对称加密,其中解密密钥要么等于它们对应的加密密钥,要么容易从其中导出。

公钥密码术被广泛使用。它是一种被许多密码性算法和密码性系统使用的方法。

已知的公钥加密系统所基于的问题是资源密集型的。例如,作为已知的公钥加密系统的rsa加密对于密钥生成要求,生成两个大素数p和q。解密要求在类似大小的数上求幂。

参考了delphineboucher等人的文章“keyexchangeandencryptionschemesbasedonnon-commutativeskewpolynomials”。该文章涉及基于所谓的非交换斜多项式(non-commutativeskewpolynomial)的密钥交换算法。

还参考了由yagisawamasahiro的文章“keyagreementprotocolsbasedonmultivariatepolynomialsoverfq”。该文章涉及基于未评估的多元多项式的密钥协商协议。



技术实现要素:

当前的公钥加密(pke)方法要求大量的数学运算,因此它们不太适合于在计算上受约束的嵌入式系统,诸如传感器。具有用于消息的公钥加密的改进的系统将是有利的。

本发明的一个方面涉及一种用于加密消息的系统。该系统包括密钥生成设备、公钥加密设备和优选地私钥解密设备。密钥生成设备被配置为生成在公钥加密设备中使用的公钥和在私钥解密设备中使用的对应的私钥。公钥加密设备被配置为使用公钥对电子消息进行加密。私钥解密设备被配置为使用解密信息和私钥来解密加密的消息。

在pke中,每一方维护两个密钥:公钥和私钥。公钥可以例如由中央机构公布。但是,每一方保持其私钥对于不被信任来读取针对该特定方的通信的任何其他方是秘密的。

由系统中的设备提供的公钥加密允许有效操作并且适合于资源受约束的设备。下面进一步解释系统的设备。

公钥加密可以用在例如要求安全通信的照明网络中。一般地,本发明可以应用于要求设备对之间的安全通信的任何类型的通信网络。

密钥生成设备、公钥加密设备和私钥解密设备是电子设备;它们可以是诸如移动电话之类的移动电子设备、机顶盒、计算机等。密钥生成设备、公钥加密设备和私钥解密设备可以是资源受约束的,诸如传感器、照明设备、led灯、智能卡,rfid标签等。

本发明的一方面涉及一种密钥生成设备,其被配置为生成在公钥加密设备中使用的公钥和在私钥解密设备中使用的对应的私钥。密钥生成设备包括私钥生成器和公钥生成器。私钥生成器被配置为以电子形式获得私有随机值,并且生成私钥,私钥包括私有随机值。公钥生成器被配置为以电子形式获得二元多项式的公共集合,通过对通过将私有随机值代入公共集合的多项式而获得的一元多项式求和来计算公共一元多项式,并且生成公钥,公钥包括公共一元多项式和公共集合。

在密钥生成设备的实施例中,二元多项式的公共集合仅包括对称二元多项式。

在密钥生成设备的实施例中,二元多项式的公共集合包括至少两个不同的二元多项式。

当两个二元多项式在它们的底层环的条件下相同(例如局部归约整数不同)时,也可以使用该系统。

在密钥生成设备的实施例中,公共集合的至少一个多项式在所述至少一个多项式的两个变量之一中具有至少为2的次数。

在密钥生成设备的实施例中,公共一元多项式被表示为规范形式的公共一元多项式的系数的列表。

在密钥生成设备的实施例中,不同的交换环与二元多项式的公共集合中的每个多项式相关联,并且其中通过将私有随机值代入公共集合的特定多项式中而获得的一元多项式在与特定一元多项式相关联的交换环中被归约为规范形式。

在密钥生成设备的实施例中,公共全局归约整数与公共集合相关联,并且公共个体归约整数与公共集合的每个多项式相关联,私有随机值是整数,公共集合中的每个多项式是具有整数系数的二元多项式,公共一元多项式是具有整数系数的一元多项式。公共个体归约整数也称为局部归约整数。

有用的是,公共个体归约整数都是不同的,因为如果它们中的两个是相等的,则公共集合可以被简化为具有更少的多项式。然而,如果一些或所有公共个体归约整数相等,则系统将正确地工作,但是具有可以从具有更少多项式的较小系统预期的安全性。

计算公共一元多项式包括:通过对于公共集合的每个多项式将私有随机值代入所述多项式并且以与所述多项式相关联的公共个体归约整数为模进行归约而获得一元多项式集合,以及对一元多项式集合求和并且以全局归约整数为模进行归约。

在密钥生成设备的实施例中,公共全局归约整数是大于和/或小于的奇数,其中表示在公共集合中的多项式的两个变量之一中的最高次数,以及表示密钥长度,并且对于每个公共个体归约整数,公共全局归约整数减去所述公共个体归约整数是2的密钥长度次幂的倍数,并且小于2的密钥长度的两倍次幂,并且其中计算对称密钥还包括,以2的密钥长度次幂为模进行归约。在密钥生成设备的实施例中,公共全局归约整数是大于并且小于的奇数。

作为本发明的一方面涉及一种用于使用公钥对电子消息进行加密的公钥加密设备,所述公钥包括公共一元多项式和二元多项式的公共集合。该公钥加密设备包括对称密钥获得器,解密信息生成器和加密单元。

对称密钥获得器被配置为以电子形式获得加密随机值,并且通过将加密随机值代入公共一元多项式中来计算对称密钥。对称密钥获得器可以被配置为不仅求多项式的值,而且还采取个最低有效位。

解密信息生成器被配置为通过对通过将加密随机值代入公共集合的多项式而获得的一元多项式求和来计算解密一元多项式,并且生成解密信息,解密信息包括解密一元多项式。

加密单元被配置为利用对称密钥加密消息并将所述加密的消息与解密信息相关联。

在公钥加密设备的实施例中,二元多项式的公共集合仅包括对称二元多项式。

在公钥加密设备的实施例中,二元多项式的公共集合包括至少两个不同的二元多项式。

在公钥加密设备的实施例中,公共集合的至少一个多项式在所述至少一个多项式的两个变量之一中具有至少为2的次数。

在公钥加密设备的实施例中,公共一元多项式被表示为规范形式的公共一元多项式的系数的列表,和/或解密一元多项式被表示为规范形式的解密一元多项式的系数的列表。

在公钥加密设备的实施例中,不同的交换环与二元多项式的公共集合中的每个多项式相关联,并且其中通过将私有随机值代入公共集合的特定多项式中而获得的一元多项式在与特定一元多项式相关联的交换环中被归约为规范形式,并且通过将加密随机值代入公共集合的特定多项式中而获得的一元多项式在与特定一元多项式相关联的交换环中被归约为规范形式。

在公钥加密设备的实施例中,公共全局归约整数与公共集合相关联并且公共个体归约整数与公共集合的每个多项式相关联,加密随机值是整数,公共集合中的每个多项式是具有整数系数的二元多项式,所述公共一元多项式和解密一元多项式是具有整数系数的一元多项式。

计算对称密钥包括:在公共一元多项式中代入加密随机值,并且以全局归约整数为模进行归约。计算对称密钥还可以包括采取结果的个比特,例如最低有效比特。

计算解密一元多项式包括通过对于公共集合的每个多项式将私有加密值代入多项式并且以与所述多项式相关联的公共个体归约整数为模进行归约而获得一元多项式集合,以及将一元多项式集合求和并且以全局归约整数为模进行归约。

在公钥加密设备的实施例中,公共全局归约整数是大于和/或小于的奇数,其中α表示在公共集合中的多项式的两个变量之一中的最高次数,并且b表示密钥长度,并且对于每个公共个体归约整数,公共全局归约整数减去所述公共个体归约整数是2的密钥长度次幂的倍数,并且小于2的密钥长度的两倍次幂,并且其中计算对称密钥还包括以2的密钥长度次幂为模进行归约。在公钥加密设备的实施例中,公共全局归约整数是大于且小于的奇数。

在公钥加密设备的实施例中,生成解密信息包括:从对称密钥计算密钥确认数据,以用于验证重构密钥是否等于所述对称密钥,解密信息包括密钥确认数据。

作为本发明的一方面涉及一种用于使用解密信息和私钥来解密加密的消息的私钥解密设备,所述解密信息包括解密一元多项式,所述私钥包括私有随机值。私钥解密设备包括对称密钥获得器和解密单元。

对称密钥获得器被配置为通过在解密一元多项式中代入私有随机值来重构对称密钥。重构对称密钥还可以包括采取输出的b个比特作为密钥k,例如最低有效b比特。

解密单元被配置为利用所述重构的对称密钥来解密加密的消息。对称密钥也称为“k”。

在私钥解密设备的实施例中,解密信息是由公钥加密设备使用由密钥生成设备生成的公钥获得的。

在私钥解密设备的实施例中,解密一元多项式被表示为规范形式的解密一元多项式的系数的列表。

在私钥解密设备的实施例中,私有随机值是整数。解密一元多项式是具有以公共全局归约整数为模进行归约的整数系数的一元多项式。重构对称密钥包括:在解密一元多项式中代入私有随机值,并且以公共全局归约整数为模进行归约。

在私钥解密设备的实施例中,公共全局归约整数是大于和/或小于的奇数,其中表示在公共集合中的多项式的两个变量之一中的最高次数,并且表示密钥长度。在私钥解密设备的实施例中,公共全局归约整数是大于且小于的奇数。

计算对称密钥还包括以2的密钥长度次幂为模进行归约。

在私钥解密设备的实施例中,重构对称密钥包括从在解密一元多项式中代入私有随机值并且以公共全局归约整数为模进行归约的结果导出第一重构密钥,以及从密钥确认数据确定所述第一重构密钥是否等于所述对称密钥,并且如果不等于,则从所述第一重构密钥导出另一个重构密钥。

在私钥解密设备的实施例中,导出另一个重构密钥包括,将公共全局归约整数或公共全局归约整数的倍数加到第一重构密钥,并且以2的密钥长度次幂为模进行归约。

加密系统的实施例使用多项式环。特别是:

在密钥生成设备的实施例中,公共全局归约多项式与公共集合相关联并且公共个体归约多项式与公共集合的每个多项式相关联,私有随机值是多项式,公共集合中的每个特定多项式是具有从多项式环模与所述特定多项式相关联的公共个体归约多项式取得的系数的二元多项式,以及所述公共一元多项式和解密一元多项式具有多项式系数。

在公钥加密设备的实施例中,公共全局归约多项式与公共集合相关联并且公共个体归约多项式与公共集合的每个多项式相关联,加密随机值是多项式,公共集合中的每个特定多项式是具有从多项式环模与所述特定多项式相关联的公共个体归约多项式取得的系数的二元多项式,以及所述公共一元多项式和解密一元多项式具有多项式系数。

在私钥解密设备的实施例中,私有随机值是多项式,解密一元多项式具有多项式系数。

本发明的一个方面涉及一种密钥生成方法,其被配置为生成在公钥加密方法中使用的公钥和在私钥解密方法中使用的对应的私钥。

本发明的一个方面涉及一种用于使用公钥来加密电子消息的公钥加密方法。

本发明的一个方面涉及一种用于使用解密信息和私钥来解密加密的消息的私钥解密方法。

根据本发明的方法可以作为计算机实现的方法在计算机上实现,或者在专用硬件中实现,或者在两者的组合中实现。用于根据本发明的方法的可执行代码可以存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路,服务器,在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上的非暂时性程序代码构件,用于当所述程序产品在计算机上执行时执行根据本发明的方法。

在优选实施例中,计算机程序包括适于在计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码构件。优选地,计算机程序被体现在计算机可读介质上。

附图说明

本发明的这些和其他方面将由于下文描述的实施例而是显而易见的,并且将通过参照下文描述的实施例而被阐明。在图中,

图1是加密系统400的示意性框图,

图2是加密系统430的示意性框图,

图3是集成电路500的示意性框图,

图4是存储器布局的示意性框图,

图5是加密系统600的示意性框图,

图6a是密钥生成方法700的示意性流程图,

图6b是加密方法710的示意性流程图,

图6c是解密方法730的流程图。

应当注意,在不同图中具有相同附图标记的项目具有相同的结构特征和相同的功能,或者是相同的信号。在已经解释了这种项目的功能和/或结构的情况下,在详细描述中不必对其重复解释。

具体实施方式

尽管本发明容许以许多不同形式的实施例,但是在图中示出并且将在本文中详细描述一个或多个特定实施例,应当理解,本公开被认为是本发明原理的示例并且不旨在将本发明限制于所示出和描述的特定实施例。

图1是加密系统400的示意性框图。加密系统400包括密钥生成设备100、公钥加密设备200和私钥解密设备300。公钥加密设备200还将被称为加密设备200。私钥解密设备300还将被称为解密设备300。

密钥生成设备100被配置为生成用于在加密设备200中使用的公钥126和用于在解密设备300中使用的对应的私钥114。通过使用公钥126,加密设备200可以加密消息410,即用于解密设备300的数据,以获得加密的消息422。除了加密的消息422之外,加密设备200还生成解密信息424。通过使用私钥114、加密的消息422和公共一元多项式124,解密设备300可以对解密信息424解密以再次获得消息410。该加密和解密系统是所谓的非对称加密,也称为公-私钥加密。与对称加密相反,对公钥的了解不暗示对私钥的了解。这意味着,有权访问公钥的任何设备都可以对消息进行加密,但是只有有权访问私钥的设备才能对消息进行解密。这又暗示着,可以对公共和私有数据应用不同的安全性策略。例如,在一些应用中,公钥被公布,使得其不是秘密的,而私钥被保密。例如,私钥可以仅被解密设备300和密钥生成设备100或者一个或多个可信方知道。

使用形容词公共和私有的目的在于有助于理解:即使有权访问所有公共数据,也不能计算私有数据,至少不在给定应用的安全性或与密钥生成、加密和解密所需的资源相比而没有过度高的资源的情况下。然而,“公共”并不意味着对应的数据必然对密钥生成设备100和加密设备200以外的任何人可用。特别地,保持公钥和其他公共数据对不可信方保密增加了安全性。

密钥生成设备100、加密设备200和解密设备300可以是加密系统400中仅有的三个实体。在图2中,示出了加密系统400的配置,其中存在多个私钥解密设备。图2示出了私钥解密设备300和301,可以有更多。在图2中,加密设备200从密钥生成设备100接收公钥126;并且解密设备300接收私钥114,以及可能的其他公共数据,诸如公共一元多项式124和诸如模数之类的参数。然而,这仅是说明性示例,因为存在还如本文所示的在加密系统中分发密钥的其他方式。

继续图1;密钥生成设备100包括私钥生成器110和公钥生成器120。

私钥生成器110被配置为以电子形式获得也被称为s的私有随机值112。私有随机值112在其对攻击者的可预测性小于预定安全性界限的意义上是随机的。例如,私有随机值112可以由密钥生成设备100使用密钥生成设备100中包括的随机数生成器(未单独示出)来选择。随机数生成器可以是真随机数生成器或伪随机数生成器。私钥生成器110使用私有随机值112来生成私钥114。私钥114是包括私有随机值112的电子数据。例如,私钥114可以是包括私有随机值112的数据结构。私钥114可以包含其他数据,诸如私钥114的有效日期范围、私钥114的允许使用等。

与一些其他非对称密码术相比,密钥生成设备100所使用的非对称加密方案对私有随机值112施加的要求非常小。例如,rsa密钥生成要求其私钥包括两个素数,这对于计算是资源密集型的。

私有随机值112可以是基于身份的。例如,密钥生成设备100可以包括存储秘密密钥的秘密密钥存储器(图1中未示出)。秘密密钥可以是某种非对称加密方案的公钥或对称密钥。私钥生成器110可以被配置为通过获得(例如接收或生成)解密设备300的身份(例如身份号码)并加密身份来获得私有随机值112。给定身份号码,密钥生成设备100可以通过再次加密身份来再生解密设备300的私钥。这个系统例如适合于这样的情形,其中,可能稍后需要访问设备300上的数据,例如用于产品召回(productrecall)、取证(forensic)等,即使私钥丢失或者在解密设备300处不可访问,也是如此。如果例如像图2中一样存在多个私钥解密设备,则密钥生成设备100可以重构所述多个解密设备的私钥而不必存储密钥数据库。设备300的身份可以被包括在公钥126和/或私钥114中。

公钥生成器120被配置为以电子形式获得公共的二元多项式集合122,其在公式上也被称为。下面描述的实施例假定集合122中的所有二元多项式都是对称的。使用对称多项式带来了许多优点。首先,它们要求指定较少的系数,并且因此使用较少的资源。其次,它们简化了簿记;其中,非对称多项式密钥生成和解密将多项式的两个变量中的第一个变量用于替代,而加密将多项式的两个变量中的第二个变量用于替代。

对称二元多项式也可以表示为将两个形式变量作为​​占位符的。对称二元多项式满足。该要求转化为对系数的要求,例如,单项式等于单项式的系数。

公共集合122可以以多种方式获得。例如,公共集合122可以是规定的,例如,通过一个标准确定要在密钥生成设备100中使用加密。在这种情况下,只有不同设备的公钥不同,因为它们是使用不同的私有随机值112产生的。使用固定的公共集合122减少了解密设备300处的通信和/或存储开销。

对不同的解密设备300使用不同的公共集合122增加了安全性。例如,可以通过计算对于公共集合122中的多项式的系数的随机值来随机生成公共集合122。方便的是规定公共集合122的一些方面,诸如公共集合122中的多项式的数量和多项式的次数(degree),或最大次数。还可规定多项式中的系数中的一些系数为零,以例如用于减少存储要求。

可以根据应用不同地选择公共集合122中的多项式的数量。公共集合122包括至少一个对称二元多项式。在密钥生成设备100的一个实施例中,该集合包括一个多项式。在公共集合122中具有仅仅一个多项式降低了复杂性、存储要求并且增加了速度。然而,在公共集合122中具有仅仅一个多项式被认为不如在公共集合122中具有两个或更多个多项式安全,因为这样的一个多项式系统不会从下面描述的求和中的附加混合(additionalmixing)中获益。然而,密钥生成、加密和解密将正确地工作,并且被认为对于低价值和/或低安全性应用是足够安全的。

在其余部分中,我们将假定公共集合122包括至少两个对称二元多项式。在一个实施例中,至少两个或甚至所有的多项式是不同的;这大大地复杂化了系统的分析。但是这不是必需的,公共集合122可以包括两个相等的多项式,并且如果在不同的环上评估这两个多项式,其仍然可以从求和步骤中的混合中受益;这一点将在下面进一步讨论。在一个实施例中,公共集合122包括与不同环相关联的至少两个相等多项式。具有两个或更多个相等的多项式降低了存储要求。

公共集合122中的多项式可以具有不同的次数。对于对称二元多项式的次数,我们将意为,多项式在两个变量之一中的次数。例如,的次数等于2,因为中的次数为2。因为公共集合122中的多项式是对称的,因此次数在另一个变量中将是相同的。

可以根据应用不同地选择公共集合122中的多项式的次数。公共集合122包括次数为1或更高的至少一个对称二元多项式。在一个实施例中,公共集合122仅包括次数为1的多项式。在公共集合122中仅具有线性多项式降低了复杂性、存储要求并且增加了速度。然而,在公共集合122中仅具有一次多项式被认为不如在公共集合122中具有相同数目的其中至少一个多项式是至少两次的多项式安全,因为这样的系统是非常不线性的。在一个实施例中,公共集合122包括至少一个,优选地两个,次数为2或更高的多项式。然而,如果仅使用一元多项式并且使用少量的二元多项式,它们被认为对于低价值和/或低安全性应用是足够安全的,则密钥生成、加密和解密将正确地工作。然而,应注意,如果在不同的环上对公共集合122中的多个多项式进行估值,则即使公共集合122中的所有多项式都是线性的,所得到的加密也不是线性的。因为线性多项式被有效地估值,所以在一个实施例中,公共集合122包括大量的线性多项式。实现了仍然被认为对于高价值安全性应用足够安全的有效解决方案。

在可以与线性和非线性多项式一起使用的另一个实施例中,公共集合122包括大量二元多项式,其包括在不同环中评估的单个单项式。这有利地具有小的公钥大小,并且被有效地评估,同时提供与多项式的数量成比例的足够的安全性。

在公共集合122中具有次数为0的一个或多个多项式将不影响系统,只要次数更高的(多个)多项式提供足够的安全性。

对于中等安全性的应用,公共集合122可以包括或者甚至包含次数为2的两个对称二元多项式。对于更高安全性的应用,公共集合122可以包括或者甚至包含两个对称二元多项式,其中一个的次数为2,其中一个的次数高于2,例如3。增加多项式的数量和/或它们的次数将以增加资源消耗为代价进一步增加安全性。

公钥生成器120被配置为通过以下方式来计算公共一元多项式124:对通过将私有随机值112代入公共集合122的多项式而获得的一元多项式求和。例如,公钥生成器120可以将私有随机值112代入公共集合122中的每一个对称多项式并归约结果。通过将特定值(诸如私有值112)代入对称二元多项式的两个变量中的一个变量,而没有针对另一个变量代入特定值,来移除变量之一并获得一元多项式。

在公共集合122中的代入之后,使结果成为规范形式是可取的。例如,在密钥生成设备100和加密系统400内,一般而言,可以使用一元多项式的规范形式。一个好的选择是将代入的结果写为按照单项式次数排序的系数列表,例如作为数组。如果值具有多个表示,则也对系数进行规范选择。

一种用于获得公共一元多项式124的方法如下。

1.对于公共集合122中的每个多项式:

a.将私有随机值112代入多项式以用于两个变量中的一个,

b.使结果成为规范形式并在与多项式相关联的环中归约,从而获得一元多项式,

2.在另一个环中对在1b中获得的所有一元多项式求和以获得公共一元多项式124,

这些步骤可以在很大程度上组合。

此外,公共一元多项式124可以表示为根据规范形式的系数列表。用于许多应用的合适形式是,在通过与系数相关联的单项式的次数来排序的数组中列出系数。也就是说,一元多项式可以被认为是具有与单项式相关联的系数的单项式之和。此外下面提供了包括可能的公式的实施例。

公共密钥生成器120还被配置为生成公钥126。公钥126包括公共集合122和公共一元多项式124的表示。例如,公钥126可以是包括公钥124和公共集合122的数字表示的电子数据结构。此外,公钥126可以包括与上述私钥类似的附加信息,例如,有权访问对应私钥的设备的身份。

在密钥生成设备100已经生成了私钥114和公钥126之后,密钥生成设备100可以将私钥114分发给解密设备300,并且将公钥126分发给被配置为对用于解密设备300的消息进行加密的设备200。该分发可以以各种方式进行,其中一些将在下面进一步讨论,或如图2所示。

作为示例,可以在用于制造某种电子单元(例如照明单元)的制造工厂中采用密钥生成设备100,密钥生成设备100可以被配置为利用(可选的)不同标识符和不同的私钥来配置每个所制造的单元,例如照明单元。电子单元被布置有解密设备300。

例如,密钥生成设备100可以将与电子单元的私钥对应的公钥存储在包括加密设备200的管理设备中。管理设备被配置为发送利用适当的公钥加密的技术数据,例如命令。例如,管理设备可以对于一个单元的命令(例如“开启”命令)利用与存储在该单元处的私钥对应的公钥进行加密。所得到的加密消息,例如加密的命令,可以例如利用所述标识符来寻址。即使管理设备被破坏并且攻击者获得对存储在其中的所有公钥的访问权,但是他也不会获得对应的私钥。

用于密钥生成设备100的另一应用(其可以或可以不与前述示例组合)是生成公钥​​-私钥对并且利用公钥配置每个所制造的单元(例如照明单元)并利用私用配置管理设备。电子单元被布置有加密设备200。通过使用它们的设备200,诸如照明单元之类的电子单元可以以加密形式向管理设备发送消息,例如状态消息。许多电子设备可以有权访问公钥,因此这个密钥可能泄漏,并且以某种方式变得可被攻击者访问。但是,因为数据是公共的,所以其不能使某人获得私钥。管理设备被配置有解密设备200。

图1的顶部在框100、200和300的顶部示意性地图示出了公钥126到加密设备200的分发,以及公钥126和私钥114到解密设备300的分发。

加密设备200被配置为使用包括公共一元多项式和公共对称二元多项式集合的公钥126来加密电子消息410。特别地,加密设备200被配置为使用由密钥生成设备100生成的公钥126。

加密设备200包括对称密钥获得器210、加密单元230和解密信息生成器220。

对称密钥获得器210被配置为以电子形式获得加密随机值212。加密随机值212也称为r。加密随机值212在其对加密消息的攻击者的可预测性小于安全性界限的意义上是随机的。不同的加密随机值212可以用于每个消息,但这不是必需的。可以使用相同的加密随机值212加密多个消息。对称密钥获得器210被配置为通过将加密随机值212代入从公钥126获得的公共一元多项式124中来获得对称密钥214。对称密钥214也被称为k。可以在环中评估代入。

加密随机值212是秘密的,即至少对于就消息410的内容而言不受信任的各方是秘密的。解密设备300不需要加密随机值212。在加密设备200的实施例中,在生成加密消息422和解密信息424之后,例如紧接其后,删除加密随机值212。

可以通过在消息块420中组合加密消息422和解密信息424来使它们相关联。它们也可以被单独发送。

即使可以为每个消息选择新的加密随机值212,私钥114和公钥126也可能在多个消息上是相同的。取决于安全性要求,在某点处,例如在多于预定数量的消息已经利用私钥114解密之后,可以分发新的密钥。如果所述预定数量的解密已经用完,则解密设备300可以拒绝利用相同私钥114进行附加的解密。该措施保护免受仍然未知的这样的攻击,其尝试通过使解密设备300解密特别构造的消息块420来吸取在私有随机值112上的信息。为此目的,解密设备300可以包括用于对利用私钥114进行解密的消息的数目进行计数的计数器以及用于在计数器超过所述预定数量的情况下阻止使用私钥114解密的阻止单元;例如,阻止单元可以被配置为从解密设备300中删除私钥114。

获得对称密钥214还可以涉及其他步骤。例如,散列函数可以应用于对称密钥214。这平滑了对称密钥214中的熵,并且可以提高安全性,例如,如果加密随机值212的分发不统一或者已知是统一的。此外,对称密钥214可以被截短为密钥长度。例如,可以取得代入结果的b个最低有效位并截短。

加密单元230被配置为利用对称密钥214加密消息410以获得加密消息422。加密单元230可以配置有任何对称加密算法。例如,加密单元230可以使用诸如aes、cast等块密码(blockcipher),使用用于加密的合适的“操作模式”,诸如cbc或ctr。如果已知消息410的比特大小小于或等于对称密钥214的比特大小,则还可以将对称密钥214与消息410相加或xor。

解密信息生成器220被配置为通过以下操作来计算解密一元多项式222:对通过将加密随机值212代入公共集合122的多项式中而获得的一元多项式求和。除了使用加密随机值212而不是私有随机值112之外,该步骤可以使用与计算公共一元多项式124相同的实现。解密信息生成器220还被配置为生成解密信息424。解密信息包括解密一元多项式222。解密信息可以仅包括解密一元多项式222,但也可以包括附加信息,诸如发送者信息和/或电子签名。

解密信息生成器220可以将解密一元多项式表示为规范形式的解密一元多项式的系数列表。用于公共一元多项式124的相同类型的规范形式可以用于解密一元多项式222。特别地,解密一元多项式222可以被表示为以多项式的次数排序的解密一元多项式222的单项式的系数的列表。解密一元多项式222或公共一元多项式124也可以被表示为对的列表,每对包括次数和单项式的系数。在该表示中,不需要表示具有零系数的单项式。后者的表示也适用于公共集合122中的稀疏多项式。

除了加密之外,加密单元230还被配置为将加密消息422与解密信息424相关联。这可以以多种方式来进行。例如,可以通过以下方式将加密消息422和解密信息424关联在一起:通过将它们嵌入到同一单个消息中;例如通过利用解密信息424扩展加密消息422。加密消息422和解密信息424不需要一定是相同消息的一部分。例如,加密消息422和解密信息424可以各自与包含相同标识符的报头组合;这两个消息通过相同标识符相关联。加密设备200可以比解密信息424早地将加密消息422发送给解密设备300。以这种方式,加密设备200交付了消息410,但是还不允许解密设备300读取消息410.在稍后的时间点,加密设备200可以向解密设备300发送解密信息424以揭示其内容。交付消息但不揭示其内容是基本的密码术原语,使得系统可应用于各种各样的密码术算法,诸如电子投票系统。有趣的是,本文描述的公钥加密系统允许有权访问加密设备200的一方交付一个值,稍后通过发送解密信息来揭示该值,但不揭示私钥。

加密设备200可以接收消息410作为输入,并且生成消息块420作为输出,如图1的底部所示。这些元件也被示出在加密设备200和解密设备300内部。通常,消息410将在加密设备200内部生成,例如自动生成的消息,诸如状态消息。

加密设备200,即对称密钥获得器210,可以被配置为从对称密钥214(k)计算密钥确认数据,以用于验证由解密设备300重构的的重构对称密钥312(k')是否等于对称密钥214。密钥确认数据可以采取各种形式。例如,密钥确认数据可以是在对称密钥214上的密码术散列(例如sha-256)。为了验证重构密钥312是否等于对称密钥214,解密设备300可以计算在重构对称密钥312上的散列,并且验证散列是否是相同的。密钥确认数据还可以包括在输入上的加密。为了验证重构对称密钥312是否等于对称密钥214,解密设备300可以利用重构对称密钥312来加密输入,并验证加密是否相同,或者解密当前输入并验证其是否等于输入。输入可以是密钥确认数据的一部分,例如输入可以是随机数(nonce)或者甚至是随机的。输入也可以是固定的,在后一种情况下,输入不需要是密钥确认数据的一部分。密钥确认数据可以包括在解密信息424中。

解密设备300被配置为使用解密信息424和私钥114对加密消息422进行解密。解密设备300可能需要公共数据的一部分,例如全局模数,以下提供关于此的更多信息。例如,解密设备300可以接收公钥126,但是解密设备300不需要它的所有部分。特别地,解密设备300不需要访问公共集合122来解密。

解密设备300使用的解密信息424和私钥114可以分别由加密设备200或密钥生成设备100生成。解密信息424包括解密一元多项式222,私钥114包括私有随机值112。

解密设备300包括对称密钥获得器310和解密单元320。

对称密钥获得器310被配置为获得重构的对称密钥312。重构的对称密钥312是基于用于加密消息410的对称密钥214的解密信息424进行重构的。解密单元320被配置为利用重构的对称密钥312对加密的消息进行解密。解密单元320被配置为使用与用于加密消息410的加密算法相对应的解密算法。例如,如果消息410使用aes加密,则解密单元320将使用aes解密。要使用的加密和解密算法可以是固定的。例如,加密设备200和解密设备300可以被配置为始终使用aes。但是要使用的加密/解密算法也可以是可配置的。例如,解密信息424可以包括指示用于加密消息410的加密算法的信息。解密设备300可以被配置为根据所述指示来选择用于解密加密的消息422的解密算法。

对称密钥获得器310被配置为通过在解密一元多项式222中代入私有随机值114(s)来对重构的对称密钥312进行重构。该步骤将可能生成加密密钥。遗憾的是,不能保证从在解密一元多项式222中代入私钥114直接获得对称密钥214。这种可能性取决于公共集合122中的多项式的数量,它们的次数和底层的环。可以通过以下方式来计算该可能性:在表示公共集合122的通用公式中代入私钥114,并计算将重构的密钥312和对称密钥214成为相同进行扭曲的进位(carry)的可能性。

根据所述可能性和应用,密钥确认数据的重要性不同。一些应用可能接受,偶然地由于解密设备300无法正确地重构密钥,所以解密设备300可能不能解密一些消息。如果需要,解密设备300可以请求加密设备200再次发送消息,但是利用不同的加密随机值212重新加密。

然而,解密设备300还可能构建多个密钥,并且通过使用密钥确认数据验证多个密钥来从多个密钥确定重构的对称密钥312。可以使用密钥确认数据来正确地验证来自多个密钥中的至多一个密钥。

所构造的密钥的数量和为系统做出的选择,特别是对于公共集合122和底层环所做出的选择,影响解密设备300不能构造等于对称密钥214的密钥的概率。我们将在下面示出,如果要求的话,该概率可以被减少到零。

生成多个构造的密钥优选地迭代地完成。例如,对称密钥获得器310可以被如下配置用于密钥搜索:

1.从在解密一元多项式中代入私有随机值(s)的结果中导出第一重构密钥(k'),

2.从密钥确认数据确定第一重构密钥(k')是否等于对称密钥214(k),

3.如果等于,则终止密钥搜索,

4.利用第一重构密钥(k')生成另一重构密钥,

5.转到步骤2。

可以使用各种编程手段(诸如for-next循环,while循环,do-until等)来进行该密钥搜索的实现。步骤3也可以在超时的情况下终止。

密钥生成设备100和解密设备300可以组合在单个设备中,这避免了私有随机值112总是离开解密设备300的限定范围。加密设备200和解密设备300可以例如组合在加密的备份系统中。密钥生成设备100、加密设备200和解密设备300可以是可能在地理上分布的不同设备。加密设备200和解密设备300可以通过通信网络彼此通信。密钥生成设备100可以使用通信网络来分发密钥信息,但是也可以使用超出界限的手段,例如在可信位置中的有线连接,使用诸如usb棒等便携式存储器设备的传输等等。

有趣的是,可以以多种方式选择引起私钥114、公共一元多项式124、对称密钥214、解密一元多项式222和重构的对称密钥312的计算的计算系统。例如,可以从所谓的交换环中选择包括私有随机值112和加密随机值212的值以及二元多项式和一元多项式的系数。交换环是数学概念,其中利用加法和乘法组合一组值。

在公共集合122包括多个多项式的情况下,本发明人的见解是,通过将不同的交换环与公共集合122的每个多项式相关联,来获得改善的混合效果和单向性(one-way-ness)。公钥生成器120和解密信息生成器220被配置为将私有随机值112或加密随机值212分别代入公共集合122的每个多项式并且在与其相关联的环中规约每个多项式。优选地,还使每个多项式成为规范形式。

在公式形式中,对于私有随机值112或加密随机值212,这可以被分别表示为。在这些公式中,多项式与环相关联。方括号指示,在所指示的环中归约为规范形式。求和本身可以在全局环(在公式中未示出)中发生。还可以在全局环中执行计算对称密钥214和重构的对称密钥312;可能地,之后是诸如截短到密钥长度(b)(以比特为单位)的附加处理。对于与公共集合122的多项式相关联的每个局部环,可以存在用于在求和之前将环的元素映射到全局环的映射函数。在许多实施例中,映射是自然映射:用于表示局部环中的值的比特模式被映射到具有相同比特模式的全局环的值;换句话说,不需要执行实际的计算动作来进行该映射。

用作与公共集合122中的多项式相关联的环中的一个环或者用作全局环的环在例如系统400中实现如下。环的值在电子设备100、200和300中以数字形式表示,并且对值的加法和乘法运算被实现为数字算法。算法可以在软件或硬件中实现。通常,,可能地与软件结合地使用这些运算的硬件表示。环可以具有用于以唯一形式表示环的值的规范化算法。

存在可以以数字形式表示的许多交换环。两个重要的示例是多项式环和整数环。下面我们给出基于整数环的工作示例,其中每个被选择为,即,模的整数的交换环,以及作为,即,模n的整数的交换环。这些环允许将它们的值数字表示为数字表示的整数,例如为分别从0到或到n-1的整数。多项式可以被表示为以这种形式表示的值的数组。加法算法可以被实现为整数加法的硬件实现,随后是以模数为模进行归约(reductionmodulomodulus)的软件实现。乘法可以被实现为整数乘法的硬件实现,随后是以模数为模进行归约的软件实现。许多交换环和数字表示在本领域中本身是已知的。以本文所述的方式应用这种数字表示以获得公钥-私钥加密系统不是已知的。

在加密系统400的实施例中,公共全局归约整数(n)与公共集合相关联并且公共个体归约整数()与公共集合中的每个多项式相关联。相关联的信息可以包括在公钥126中或者可以是固定的。在一个实施例中,公共全局归约整数是固定的,并且不需要包括在公钥中,但是公共个体归约整数()不是固定的,并且可以与公共集合122一起生成。取决于安全要求、正确解密的可能性等,可以随机选择这些数字。下面给出了对于这些数字的可能选择。至少两个公共个体归约整数是不同的,优选地,所有公共个体归约整数是不同的。

私钥生成器110被配置为生成作为0到全局公共全局归约整数(n)之间的整数的私有随机值112。对称密钥获得器210被配置为生成作为在0到全局公共全局归约整数(n)之间的整数的加密随机值212。

私钥生成器110被配置为获得公共集合122中的多项式,作为具有整数系数的对称二元多项式()。不要求公共集合122中的多项式具有以关联的公共归约整数为模进行了归约的系数,例如系数可以更大或为负。然而,对于实现而言,方便的是,公共集合122的多项式是规范形式,例如具有在0到关联的公共归约整数()减1(包括性的)之间的系数。

公钥生成器120被配置为生成作为具有整数系数的一元多项式的公共一元多项式。解密信息生成器220被配置为生成作为具有整数系数的一元多项式的解密一元多项式。

例如,公钥生成器120可以被配置为通过以下操作生成公共一元多项:

1.通过以下内容获得一元多项式集合

2.对于公共集合的每个多项式

a.将所述私有随机整数(s)代入所述多项式(),并且以与所述多项式相关联的公共个体归约整数()为模进行归约,以及

3.将一元多项式集合求和并且以全局归约整数(n)为模进行归约,

除了使用加密随机值212而不是私有随机值112之外,配置解密信息生成器220以生成解密一元多项式可以进行相同操作。

对称密钥获得器210被配置为通过以下操作来计算对称密钥(k)在公共一元多项式中代入加密随机值(r)并且以全局归约整数(n)为模进行归约,采取结果的最小密钥长度比特数目(b)。

作为示例,公共全局归约整数(n)可以被选择为大于和/或小于的奇数,其中表示在公共集合中的多项式的两个变量之一中的最高次数,并且b表示密钥长度。对于每个公共个体归约整数(,公共全局归约整数(n)减去所述公共个体归约整数()是2的密钥长度次幂的倍数(,),并且小于2的密钥长度的两倍次幂。参数的这种特定选择是在充分混合与解密设备可以重构密钥的高概率之间的权衡。其他选择是可能的。

在这种情况下,计算对称密钥(k)还包括以2的密钥长度次幂()为模进行归约,即,截短以仅采取代入结果的最后b个比特。

对称密钥获得器310可以被配置为通过以下操作来重构对称密钥(k):在解密一元多项式中代入私有随机值(s)并且以公共全局归约整数(n)为模进行归约以及以2的密钥长度次幂()为模进行归约。

在本实施例中,可能的是,仅从代入步骤获得的密钥仍不等于对称密钥214。检测重构密钥是否等于用于加密的密钥可以使用密钥确认数据。密钥确认也可以是隐式的,例如,消息410可以是在利用不同的密钥解密时未获得的特定形式。

如果用于密钥k的密钥确认数据(例如,对于散列函数h,h(k)与h(k')不同),则解密设备300可以计算仍然可以获得正确的密钥。为这样做,解密设备300从k'计算针对j的范围的值和其密钥确认值(例如散列值)。这些密钥确认值中的至多一个等于密钥确认值,例如,散列值h(k)。如果找到该索引j,则解密设备300使用j的该值并且将k计算为,其中尖括号表示模运算。如果没有找到这样的j,则解密设备300不能对数据进行解密。在后一种情况下,解密设备300具有几个选项,例如,生成错误消息,请求利用不同的加密随机值212进行重新加密等。有趣的是,私有随机值112仅被需要用于计算初始k',其他计算使用公共全局归约整数(n)。

可以使用以下算法。对称密钥获得器310可以被如下配置用于密钥搜索:

1.从在所述解密一元多项式中代入所述私有随机整数(s)的结果中导出第一重构密钥(k'),

2.从密钥确认数据确定第一重构密钥(k')是否等于对称密钥214(k),

3.如果等于,则终止密钥搜索,

4.利用第一重构密钥(k'生成另一个重构密钥,通过针对j的新的非零值来计算

5.转到步骤2。

步骤3也可以在超时的情况下终止。例如,在一些资源受约束的设备上,可以花费在密钥重构上的时间量是有限的。

典型地,设备100、200和300各自包括微处理器(未示出),其执行存储在设备处的适当软件,例如,该软件可能已经被下载并存储在设备的对应的存储器中,例如,ram中(未示出)。

下面给出了系统的实施例的数学描述。选择第一安全性参数:比特长度b,公共集合中的多项式的数量m和公共集合中的最大次数。比特长度b确定对称加密中的密钥长度。通过增加另外两个参数,增加了系统的复杂性。这三个参数可以是固定的,例如由系统架构师确定,或者可以由密钥生成设备100选择。此外,密钥生成设备100选择形式中的在区间中的奇数n,m个整数,其中,整数满足并且m个次数为的对称二元多项式为:

由于对称性,只有其中的那些需要指定。密钥生成设备100选择在范围中的秘密私有整数s(112),并通过以下方式来计算公共一元多项式125:计算个数

由密钥生成设备100生成的公钥包括所有上述参数,除了s之外。在该特定实施例中,密钥生成设备100还指定散列函数h。加密设备200选择在范围中的随机整数r,并通过以下方式来计算解密一元多项式222:计算个数

以及数

和密钥确认数据,诸如k的散列,。加密设备200传送以及和数,其中m是b比特的明文消息,其要从密钥生成设备100发送到解密设备300。代替加上k,加密设备200还可以使用其他加密算法,以通过利用k加密m来获得c。

解密设备300计算

和散列值

解密设备300找到使得并且检索,为。解密设备300现在检索所传送的消息m,为。代替减去k,解密设备300也可以使用其他对应于加密算法的解密算法,来通过利用k对m解密来获得m。

给定系数,该方案的安全性取决于找到s的困难度。对于,一种完成此的方法是尝试s的所有可能的值,如果b足够大,这是不可行的。b=128或更大的值是如此之大,以至于尝试s的所有可能的值是不可行的,即,暴力攻击被排除。然而,一些应用不要求绝对不可行性。在这种情况下,b=48或更大的值可能已经足够了。

对于,系数是环的s上的多项式。这种系统可以可能地通过适配根查找算法来攻击。虽然这当然不是一个容易的任务,但是对于所有安全性应用,建议选择

对于,另一种找到s的方法是将方案映射到与m和α成比例的维度(dimension)的特定格(lattice)中的所谓最接近向量问题(closestvectorproblem)。对于对称二元多项式,该维具有在二元多项式具有至少个不同的、非零系数和至少个非零系数时实现的上限,以及在所有二元多项式都是相同次数的单项式情况下的下限m+1。用于解决最接近向量问题的所有已知算法要么采用随着格维度指数地增长的时间量,要么制造可以随着格维度指数地增长的误差。已经发现,大维度的格中的最接近向量问题是不可行的。stehlé报道,大多数已知的分析算法在维度达到180时开始失效。本发明人发现,对于非常大的维度——维度500被发现为满足这一要求-,现有的分析算法要么根本不工作,要么不可行地慢。作为另一个优点,与诸如整数因子分解之类的基于经典问题的现有密码算法相比,诸如最接近向量问题之类的基于格的问题更难利用即将出现的量子计算机来分析。

在本实施例中,排除指定和散列函数,密钥生成设备100生成的公钥的大小是

可以不需要指定和散列函数,例如,如果它们在系统中是固定的。假设散列函数h输出f个比特,则用于传送b-比特消息m的密文的加密消息422是

在上述实施例中,将k和m相加已被用作加密。这是一个合适的选择,例如,如果系统被应用于相对短的消息,诸如命令消息。该结构也可被用于加密第二对称密钥,其进而用于加密m。以上构造也可与其他对称加密(例如,块密码,诸如aes,例如aes-128)一起使用。

以上描述可以以多种方式变化。下面描述了多种可能的变化。

例如,如果除了在时,我们要求所有多项式系数为零,则解密信息424的大小可以被大大减小。这减小了公钥的大小,但更重要的是,其暗示着,加密设备200仅需要传送单个,即,使得密文的大小减小到比特。

当给定k时,找到秘密密钥s的问题现在减少为从下面的单个方程求解s:

如果,这仍然是一个困难的问题。

形成为是一个好的选择,因为k的几乎均匀分布确保了即使消息m不均匀分布,c也是(几乎)均匀分布的。其他可能的选择包括,其针对任何1-参数的可逆函数集合,例如

,对于给定奇数而言;

,其中加密设备200必须挑选他的随机数r,使得

加密系统400和系统430可以配置有用于执行乘法和加法(也称为“环”中的运算)的可替换计算系统。应认为,交换环是优选的。尽管环一般是可应用的,但为了可读性,针对多项式环给出了下面的示例。像整数环一样的多项式环是交换环的示例。与上述系统的重要区别在于,多项式的系数、加密随机值和私有随机值是来自各种多项式环的元素。我们将使用't'来指示所有所使用的多项式环的形式变量。

由于多项式环本身是已知的,因此下面仅给出简要概述。我们考虑环,即,具有在中的系数的变量上的多项式的环。这个环的一个元素是多项式,其中所有并且序列终止:存在一个k,使得对于,所有系数。由表示的次数是k的值,使得对于所有并且。这定义了,除了零多项式之外,的所有元素的次数。次数“0”,即零多项式,是未定义的。

可以将中的两个多项式的加法定义为,其中指示以模p对变元求值并且在于中。应注意,对于其中的非零多项式,它使成立。

中的两个多项式的乘法被定义为。应注意,如果p是素数,对于非零多项式,它使始终成立。如果p不是素数,这不一定是真。我们将在下文中假设p是素数。

是在中的一个非零多项式(对于素数p)。然后任一多项式可以被唯一地写为,其中。这里除以的结果,是余数。该余数由或以为模对进行归约来表示。环,被定义为在具有在中的系数的次数小于的t上的所有多项式和零多项式的集合。两个这样的多项式的加法与中的加法相同,乘法与中的乘法相同,其后是以为模进行归约。

存在在非负整数与p-ary多项式之间的自然映射:多项式系数对应于整数的p-ary扩展中的数字,因此对应于多项式的整数可以通过以下操作获得:在多项式中代入并且在中对其求值。应注意,该映射并不暗示,以多项式为模进行归约等价于以为模进行整数归约。例如,在中,它使得成立,所以,但是

的元素的集合仅取决于次数。这些元素的加法取决于p,因为多项式系数在中,但是无关于。另一方面,它们的乘法的结果取决于p和

在环中具有定义的乘法和加法允许在该环中定义多项式:它们的变元是该环的元素,它们具有估价环(ring-valued)的系数并且采用在该环中的值。因此,在上的次数为的二元多项式可以写为:

其中(中的)求和可以在模归约运算之外进行。我们甚至可以在不同的环中使(在中的)多项式相加:

在所有以下实施例中,我们使用,其更容易在面向比特的设备上实现。然而,这不是限制性的,因为p的其他值也是可能的,特别是素数值。例如,251和65521是适当的选择,因为系数分别适合于一个字节和两个字节。

与加密系统400和430中类似,密钥生成设备100包括私钥生成器110和公钥生成器120。公钥生成器120被配置为以电子形式选择或以其他方式获得以下参数:

表示为m的公共全局归约多项式次数;

密钥大小(b个比特);

整数,优选地,

确定私有随机值和加密随机值的大小的安全性参数'b';

整数,优选地,

对于参数而言,一个好的选择是,,并且。系统设计者可以选择这些参数并将它们发送到密钥生成设备。此外,公钥生成器120被配置为以电子形式选择或以其他方式获得以下参数:

公共全局归约多项式。其次数等于

公共个体归约多项式

在其两个变量的每一个中的次数为的二元多项式的公共集合。在每个中,二元多项式具有系数,,

密钥大小(b)和参数大小(b)可以不同。一种选项是将它们选择为相等。

对于公共集合中的每个多项式,公共个体归约多项式相关联,反之亦然。公共集合中的每个特定多项式是具有系数的二元多项式,该系数从多项式环模与该特定多项式相关联的公共个体归约多项式而取得。多项式可以被表示为

选择公共个体归约多项式的一个好方法如下:首先选择次数为b的多项式;然后选择m个多项式,所有多项式具有至多等于的次数并且至少一个(优选地所有)多项式具有大于的次数;然后定义m个多项式,其中。对于归约多项式的这种选择确保了私钥解密设备的对称密钥获得器直接从在解密一元多项式中代入私有随机值中获得由公钥加密设备使用的相同的对称密钥。应注意,公共个体归约多项式的次数的下限可以取为-1。大于-1的次数意味着次数应该至少是0。该次数于是必须至多等于alpha*(b-1)-1。在一个实施例中,至少一个或者甚至所有的公共个体归约多项式具有至少为2的次数。

密钥生成设备以电子形式获得在中的私有随机值,并且通过对通过将私有随机值(112,s)代入公共集合的多项式而获得的一元多项式求和来计算公共一元多项式:

应注意,非负整数与p-ary(在这种情况下为二进制)多项式之间的自然映射已经被用于将s映射到s(t),即系数s的二进制扩展与系数s(t)。后者也可以直接生成。

如前,公钥加密设备包括对称密钥获得器、解密信息生成器和加密单元。

对称密钥获得器被配置为以电子形式获得在中的加密随机值r。加密随机值被代入公共一元多项式中,

这里,结果是以全局公共全局归约多项式为模进行归约,然后模。该代入和归约的结果是在形式变量(t)上的多项式。可以以各种方式从此获得对称密钥。例如,可以使用自然映射将多项式转换为数。映射的结果或系数串可以直接被散列。如果需要,可以应用密钥缩减、扩增,熵放大等。如前,加密单元使用对称密钥来加密消息。

解密信息生成器被配置为,通过对通过将加密随机值(r)代入公共集合((122,)的多项式而获得的一元多项式求和来计算解密一元多项式,

私钥解密设备包括对称密钥获得器和解密单元。

私钥解密设备从中计算密钥

有趣的是,所述参数保证。可能地使用与加密设备相同的导出,该密钥可以用于解密密文。在这种情况下,不需要导出另外的重构密钥。

二元多项式可以被选择为对称二元多项式。这不是必需的,因为alice公布的密钥材料是,bob发送给alice的密钥材料是。alice和bob二者都计算相同的密钥:

图3是集成电路500的示意性框图。集成电路500包括处理器520、存储器530和i/o单元540。集成电路500的这些单元可以通过诸如总线之类的互连510彼此通信。处理器520被配置为执行存储在存储器530中的软件以执行如本文所述的方法。以这种方式,集成电路500可以被配置为密钥生成设备100、加密设备200和/或解密设备300;于是,存储器530的一部分可以根据要求存储公钥、私钥、明文消息和/或加密消息。

i/o单元540可以用于与诸如设备100、200或300之类的其他设备通信,例如用于接收公钥或私钥,或者用于发送和接收加密的消息。i/o单元540可以包括用于无线通信的天线。i/o单元540可以包括用于有线通信的电接口。

集成电路500可以集成在计算机、移动通信设备(诸如移动电话)等中。集成电路500还可以集成在例如布置有led设备的照明设备中。例如,被配置为解密设备300并且布置有诸如led之类的照明单元的集成电路500可以接收利用公钥加密的命令。只有解密设备300可以解密和执行所述命令。例如,被配置为加密设备200并且布置有诸如led之类的照明单元的集成电路500可以发送消息,诸如利用公钥加密的状态消息。只有能够访问对应于公钥的私钥的解密设备300可以解密和执行所述命令。

尽管多项式操纵可以由受存储在存储器530中的多项式操纵软件指令的处理器520来执行,但是如果集成电路500被配置有可选的多项式操纵设备550,则密钥生成、加密和解密的任务更快。多项式操纵设备550是用于执行代入和归约运算的硬件单元。

图4是存储器布局的示意性框图,在集成电路500被配置为密钥生成设备100的情况下,所述存储器布局可以与存储器530一起使用。在图4中示出的是:私有随机整数562,诸如s;公共全局归约整数564,诸如n;具有整数系数582-586的对称二元多项式,诸如,以及相关联的公共归约整数592-596,诸如。此外,在图4中,存储器的两个部分被保留作为计算公钥的工作空间。归约结果566用于将私有随机整数562代入对称二元多项式之一,并且以公共归约整数为模进行归约。对于每个对称多项式,然后将结果加到求和结果566并且以全局整数564为模对结果进行归约。图4中所示的布局适用于m=3的系统。

图4已经针对整数环进行了说明,然而也可以允许从多项式环获取系数。所要求的存储器应当相应地适配。

图5是加密系统600的示意性框图。图6示出了配置有密钥生成设备100和解密设备300的接收单元610;配置有加密设备200的发送单元640;证书机构620和公钥数据库630。此外,图6示出了从发送单元640发送到接收单元610的加密数据650。接收单元610和发送单元640是网络的一部分。网络中的任何设备可以使用预期接受者的公钥来加密消息。预期接受者拥有用于解密消息的私钥。

发送单元640和接收单元610之间的双方通信可以如下工作:

(1)接收单元610使用如本文所述的他的密钥生成设备100来选择公钥-私钥对(e,d)。这里e表示公钥,d表示对应的私钥;

(2)接收单元610然后将加密密钥e发送到发送单元640,但保持解密密钥d是秘密的;

(3)发送单元640可以通过计算c=ee(m)('密文')来向接收单元610发送消息m('明文');以及

(4)当接收单元610接收到c时,它可以通过计算m=dd(c)来恢复原始消息。

网络加密系统600的更高级实施例使用公钥数据库630和证书机构620。

接收单元610将其公钥e发送到证书机构630(ca)。公钥数据库630可以验证接收单元610的用户的身份,但这不是严格必需的。证书机构620使用证书机构620的公钥对公钥进行签名。证书机构620可能地与所述身份一起在公钥数据库630中公布经签名的公钥。当发送单元640想要向如利用身份标识的接收单元610发送消息时,发送单元640可能地使用身份作为搜索索引在公钥数据库630中查找公钥。发送单元640可以验证证书机构620的签名。

使公共集合中的多项式对称简化了实现。在公钥加密系统100的实施例中,公共集合122中的至少一个二元多项式是非对称的。在一个实施例中,公共集合122中的所有多项式都是非对称的。

密钥生成如上所述一样工作,除了密钥生成设备被配置为将私有随机值112代入集合122的多项式的两个变量中的特定一个变量之外。例如,如果f(x,y)是集合122中的二元多项式之一,并且如果密钥生成设备被配置为使用这两个变量中的第一个变量,则其计算f(s,y)。求和步骤(如果有的话)如上所述一样进行。加密设备接收公共一元多项式124。由于一元多项式只有一个变量,所以在其中代入加密随机值212没有差别。然而,为了计算解密一元多项式222,加密设备被配置为将加密随机值212代入这两个变量中的第二个变量,即然后由密钥生成设备使用的不同的一个变量。接着上述示例,加密设备将计算f(x,r)。最后,解密设备接收一元多项式,因此只有一个变量可用于代入。

使用非对称多项式可以增加安全性,因为其确保了公共一元多项式124和解密一元多项式222具有不同的结构。

本文中给出的使用在集合122中的对称多项式的所有实施例可以被修改为使用非对称多项式。所需要的唯一变化是,确保解密一元多项式222是通过代入集合122中的多项式的两个变量之一而获得的,而公共一元多项式124是通过代入集合122中的多项式的两个变量中的另一个变量而获得的。

图6a是密钥生成方法700的示意性流程图。方法700包括:生成702私钥,私钥包括私有随机值;以电子形式获得704对称二元多项式(()的公共集合;通过对通过将私有随机值(s)代入公共集合中的多项式而获得的一元多项式()求和来计算706公共一元多项式;以及生成708公钥,公钥包括公共一元多项式和公共集合。

图6b是加密方法710的示意性流程图。方法710包括以电子形式获得712加密随机值(r);通过在公共一元多项式中代入加密随机值(r)来计算714对称密钥(k);通过对通过将加密随机值(r)代入公共集合的多项式而获得的一元多项式()求和来计算716解密一元多项式;从对称密钥(k)计算718密钥确认数据,以用于验证重构密钥(k')是否等于所述对称密钥(k);生成720所述解密信息,所述解密信息包括所述解密一元多项式;以及利用所述对称密钥加密722所述消息,并将所述加密的消息与所述解密信息相关联。

图6c是解密方法730的流程图。方法730包括:通过在解密一元多项式中代入私有随机值(s)来重构732第一对称密钥(k);从密钥确认数据确定734重构密钥(k')是否等于对称密钥(k);以及如果不等于,则从第一重构密钥(k')导出另一个重构的密钥,例如通过将公共全局归约整数(n)或公共全局归约整数(n)的倍数与所述第一重构密钥(k')相加并且以2的所述密钥长度()次幂为模进行归约。如果在734中从密钥确认数据确定第一重构密钥(k')等于对称密钥(k),则利用对称密钥(k)解密738该消息。

执行该方法的许多不同方式是可能的,这对于本领域技术人员是显而易见的。例如,可以变动所述步骤的顺序或者可以并行地执行一些步骤。此外,在步骤之间可以插入其他方法步骤。插入的步骤可以表示诸如本文所描述的方法的改进,或者可以与该方法无关。

根据本发明的方法可以使用软件执行,该软件包括用于使处理器系统执行方法700、710和730的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。软件可以存储在合适的存储介质中,诸如硬盘、软盘、存储器等。软件可以作为信号沿着线或无线地或使用数据网络(例如因特网)发送。可以使得软件可用于下载和/或在服务器上的远程使用。

应当意识到,本发明还扩展到计算机程序,特别是适配于将本发明付诸实践的载体上或载体中的计算机程序。程序可以是源代码、目标代码、代码中间源和目标代码的形式(诸如部分编译的形式)或适于在根据本发明的方法的实现中使用的任何其他形式。与计算机程序产品相关的实施例包括与所阐述的方法中的至少一个方法的每个处理步骤相对应的计算机可执行指令。这些指令可以被细分为子例程和/或被存储在可以静态或动态链接的一个或多个文件中。与计算机程序产品有关的另一个实施例包括与所阐述的系统和/或产品中的至少一个的每个构件相对应的计算机可执行指令。

应当注意,上述实施例说明而不是限制本发明,并且本领域技术人员将能够设计许多可替换的实施例。

在权利要求中,置于括号之间的任何附图标记不应被解释为限制权利要求。动词“包括”及其词形变化的使用不排除除了在权利要求中所述的元件或步骤之外的元件或步骤的存在。元件之前的冠词“一”或“一个”不排除存在多个这样的元件。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举了若干构件的设备权利要求中,这些构件中的几个构件可以由同一个硬件项体现。在相互不同的从属权利要求中记载某些措施的纯粹事实并不指示不能有利地使用这些措施的组合。

优选实施例可以总结如下。

实施例1.一种密钥生成设备(100),其被配置为生成在公钥加密设备中使用的公钥(126)和在私钥解密设备中使用的对应的私钥(114),所述密钥生成设备包括

-私钥生成器(110),其被配置为:

-以电子形式获得私有随机值(112,s),以及

-生成所述私钥(114),所述私钥包括所述私有随机值(112),以及

-公钥生成器(120),其被配置为:

-以电子形式获得二元多项式的公共集合(122,),其中不同的交换环与所述二元多项式的公共集合中的每个多项式相关联,

-通过对通过将所述私有随机值(112,s)代入所述公共集合(122,)的多项式而获得的所述一元多项式,来计算公共一元多项式(124),通过将所述私有随机值(s)代入所述公共集合的特定多项式()而获得的一元多项式在与特定一元多项式相关联的交换环中被归约为规范形式,以及

-生成所述公钥(126),所述公钥包括所述公共一元多项式(124)和所述公共集合(122)。

实施例2.一种用于使用公钥来加密电子消息(410)的公钥加密设备(200),所述公钥包括公共一元多项式和二元多项式()的公共集合,其中不同的交换环与所述二元多项式公共集合中的每个多项式相关联,所述公钥加密设备包括:

-对称密钥获得器(210),其被配置为:

-以电子形式获得加密随机值(212,r),以及

-通过在所述公共一元多项式中代入所述加密随机值(212,r)来计算对称密钥(214,k),

-解密信息生成器(220),其被配置为:

-通过对通过将加密随机值(r)代入公共集合(122,)的多项式而获得的一元多项式求和来计算解密一元多项式(222),通过将加密随机值(r)代入公共集合的特定多项式()中而获得的一元多项式在与特定一元多项式相关联的交换环中被归约为规范形式,以及

-生成所述解密信息(424),所述解密信息包括所述解密一元多项式(222),以及

-加密单元(230),其被配置为:

-利用所述对称密钥(214)加密所述消息(410)并将所述加密的消息(422)与所述解密信息(424)相关联。

实施例3.一种用于使用可由实施例2的公钥加密设备获得的解密信息(424)和私钥(114)解密加密的消息(422)的私钥解密设备(300),

-所述解密信息包括解密一元多项式(222),所述私钥包括私有随机值(112,s),

所述私钥解密设备包括:

-对称密钥获得器(310),其被配置为:

-通过在所述解密一元多项式(222)中代入所述私有随机值(s)来重构对称密钥(312,k'),

-解密单元(320),被配置为:

-利用所述重构的对称密钥(312,k')解密所述加密的消息。

实施例4.如在实施例2中的公钥加密设备,其中

-二元多项式()的公共集合仅包括对称二元多项式,和/或

-二元多项式()的公共集合包括至少两个不同的二元多项式,和/或

-所述公共集合的至少一个多项式在所述至少一个多项式的两个变量之一中具有至少为2的次数。

实施例5.如实施例2中的公钥加密设备,其中

-公共一元多项式被表示为规范形式的公共一元多项式的系数的列表,以及

-解密一元多项式被表示为规范形式的解密一元多项式的系数的列表。

实施例6.如实施例2中的公钥加密设备,其中

-公共全局归约整数(n)与公共集合相关联并且公共个体归约整数()与公共集合的每个多项式相关联,

-私有随机值和加密随机值(r)是整数,公共集合中的每个多项式是具有整数系数的二元多项式(),公共一元多项式和解密一元多项式是具有整数系数的一元多项式,

-以及其中

-计算所述对称密钥(k)包括:在所述公共一元多项式中代入所述加密随机值(r)并且以所述全局归约整数(n)为模进行归约,

-计算所述解密一元多项式包括:

-通过以下方式获得一元多项式集合:

-对于公共集合的每个多项式,将所述私有加密值(r)代入所述多项式()以及以与所述多项式相关联的公共个体归约整数()为模进行归约,以及

-对一元多项式集合求和并且以全局归约整数(n)为模进行归约。

实施例7.如实施例6中的公钥加密设备,其中

-公共全局归约整数(n)是大于和/或小于的奇数,其中表示公共集合中的多项式的两个变量之一的最高次数,表示密钥长度,以及

-对于每个公共个体归约整数(),所述公共全局归约整数(n)减去所述公共个体归约整数()是2的所述密钥长度次幂的倍数(,),并且小于2的密钥长度的两倍次幂,

-以及其中,计算所述对称密钥(k)还包括以2的所述密钥长度次幂()为模进行归约。

实施例8.如实施例3中的私钥解密设备,其中所述解密信息包括从对称密钥(k)计算的密钥确认数据,以用于验证重构密钥(k')是否等于所述对称密钥(k),解密信息包括密钥确认数据,以及其中

-重构所述对称密钥(k)包括:

-从在所述解密一元多项式中代入所述私有随机值(s)并以所述公共全局归约整数(n)为模进行归约的结果中导出第一重构密钥(k'),

-从所述密钥确认数据确定所述第一重构密钥(k')是否等于所述对称密钥(k),以及如果不等于,则从所述第一重构密钥(k')导出另一个重构密钥。

实施例9.如实施例8中的私钥解密设备,其中重构对称密钥(k)包括:在解密一元多项式中代入私有随机值(s),并且以公共全局归约整数(n)为模进行归约,其中,导出另一个重构密钥包括将所述公共全局归约整数(n)或所述公共全局归约整数(n)的倍数加到所述第一重构密钥(k'),并且以2的所述密钥长度次幂()为模进行归约。

实施例10.如实施例2中的公钥加密设备,其中

-公共全局归约多项式(n(t))与公共集合相关联,以及公共个体归约多项式()与公共集合的每个多项式相关联,

-所述私有随机值(s(t))和所述加密随机值(r(t))是多项式,所述公共集合中的每个特定多项式是具有系数()的二元多项式,系数()从多项式环模与特定多项式()相关联的公共个体归约多项式()而取得。

-公共一元多项式和解密一元多项式具有多项式系数,

-以及其中

-计算所述对称密钥(k)包括在所述公共一元多项式中代入所述加密随机值(r(t))并且以所述全局归约多项式(n(t))为模进行归约,

-计算所述解密一元多项式包括

-通过以下方式获得一元多项式集合:

-对于公共集合中的每个多项式,将所述私有加密值(r(t))代入所述多项式()并且以与所述多项式相关联的公共个体归约多项式()为模进行归约,以及

-对所述一元多项式集合求和。

实施例11.一种密钥生成方法,其被配置为生成在公钥加密方法中使用的公钥和在私钥解密方法中使用的对应的私钥,所述密钥生成方法包括:

-以电子形式获得私有随机值(s),其中不同的交换环与所述二元多项式的公共集合中的每个多项式相关联,以及

-生成私钥,所述私钥包括所述私有随机值,以及

-以电子形式获得二元多项式()的公共集合,

-通过对通过将所述私有随机值(s)代入所述公共集合的多项式()而获得的一元多项式求和来计算公共一元多项式,通过将所述私有随机值(s)代入公共集合的特定多项式()而获得的一元多项式在与该特定一元多项式相关联的交换环中被归约为规范形式,以及

-生成所述公钥,所述公钥包括所述公共一元多项式和所述公共集合。

实施例12.一种用于使用公钥对电子消息进行加密的公钥加密方法,所述公钥包括公共一元多项式和二元多项式()的公共集合,其中不同的交换环与二元多项式的公共集合中的每个多项式相关联,

-以电子形式获得加密随机值(r),以及

-通过在所述公共一元多项式中代入所述加密随机值(r)来计算对称密钥(k),

-通过对通过将加密随机值(r)代入公共集合的多项式()而获得的一元多项式求和来计算解密一元多项式,通过将加密随机值(r)代入公共集合的特定多项式()而获得的一元多项式在与该特定一元多项式相关联的交换环中被归约为规范形式,以及

-生成所述解密信息,所述解密信息包括所述解密一元多项式,以及

-利用所述对称密钥加密所述消息并将所述加密的消息与所述解密信息相关联。

实施例13.一种私钥解密方法,其用于使用可通过实施例12的方法获得的解密信息和私钥来解密加密的消息,

-所述解密信息包括解密一元多项式,所述私钥包括私有随机值(s),

-通过在所述解密一元多项式中代入所述私有随机值(s)来重构对称密钥(k),

-用所述对称密钥(k)解密所述消息。

实施例14.一种包括计算机程序代码构件的计算机程序,所述计算机程序代码构件被适配为,当计算机程序在计算机上运行时,执行实施例11、12和13中任一个的所有步骤。

实施例15.如实施例14中所述的计算机程序,其体现在计算机可读介质上。

图1-5中的附图标记列表:

100密钥生成设备

110私钥生成器

112私有随机值

114私钥

120公钥生成器

122二元多项式的公共集合

124公共一元多项式

126公钥

200公钥加密设备

210对称密钥获得器

212加密随机值

214对称密钥

220解密信息生成器

222解密一元多项式

230加密单元

300,301私钥解密设备

310对称密钥获得器

312重构的对称密钥

320解密单元

400加密系统

410电子消息

420消息块

422加密的消息

424解密信息

430加密系统

500集成电路

510总线

520处理器

530存储器

540i/o单元

550多项式操纵设备

562私有随机整数

564公共全局归约整数

566归约结果

568求和结果

582-586具有整数系数的对称二元多项式

592-596公共归约整数

600加密系统

610接收单元

620证书机构

630公钥数据库

640发送单元

650加密的数据

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1