CN107005399A - 用于执行混淆算术的电子计算设备 - Google Patents

用于执行混淆算术的电子计算设备 Download PDF

Info

Publication number
CN107005399A
CN107005399A CN201580064796.XA CN201580064796A CN107005399A CN 107005399 A CN107005399 A CN 107005399A CN 201580064796 A CN201580064796 A CN 201580064796A CN 107005399 A CN107005399 A CN 107005399A
Authority
CN
China
Prior art keywords
ring
list
integer
ring element
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201580064796.XA
Other languages
English (en)
Inventor
L·马林
A·A·M·L·布鲁伊克斯
P·M·H·M·A·戈里斯森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN107005399A publication Critical patent/CN107005399A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)

Abstract

呈现了一种用于在交换环中执行混淆算术的电子计算设备(100)。所述计算设备包括存储装置(110),其被布置成存储针对增量环元素(1;ut)定义的增量表(T),增量表将表示输入环元素映射到将输出环元素进行编码的输出整数列表(T((k1,k2))=(l1,l2)),使得输出环元素等于增量环元素环与输入环元素进行环相加(l=k+1)。使用增量表,环加法单元(130)将对第一加法输入环元素进行编码的第一加法输入整数列表((a1,a2))与对第二加法输入环元素进行编码的第二加法输入整数列表((b1,b2))相加。设备可以包括也使用增量表的环乘法单元(140)。

Description

用于执行混淆算术的电子计算设备
技术领域
本发明涉及电子计算设备、环编码设备、环解码设备、表计算设备、电子计算方法、计算机程序以及计算机可读介质。
背景技术
在白盒密码术和更一般地软件混淆中,常常对已编码值而不是明文值执行计算。如果对已编码值而不是对明文值本身执行计算,则已混淆软件的逆向工程是更难的。
在编码之后,不再能使用计算机的内置原语来执行规则运算,例如加法或乘法。已编码值的简单加法正常地不导致值的加法的编码。这也适用于乘法。有公式:对于大多数x和y而言,E(x)+E(y)≠E(x+y);E指代编码函数。
此问题的解决方案是引入加法(A)和乘法(M)表。该表取两个已编码值作为输入并产生已编码值作为输出,其对应于加法或乘法运算的编码。可以将该表定义为:A(E(x),E(y))=E(x+y);M(E(x),E(y))=E(xy)。这些表允许直接地对已编码值执行算术。
使用表的已混淆加法和乘法遭受至少两个缺点的影响。首先,表可以变得相当大。如果将x和y表示为l比特,每个表需要22ll比特。
其次,这样的大的表在软件中可以被容易地找到。更坏的是,表可能仍被标识为加法或乘法运算,即使其被编码;例如,通过在编码中保留的这些函数的性质。例如,乘法表满足M(E(0),E(x))=E(0)。攻击者可以使用此性质和类似性质来猜测该表表示哪个运算。
发明内容
具有用于执行混淆算术的改善方式将是有利的。提供了如在权利要求中定义的计算设备。
本发明人发现在某些情况下可以使用单个表来执行对已编码值的乘法和加法,而不必将多个值编码成单个已编码值。由于同一表被用于加法和乘法,所以在逆向工程期间将难以看到是执行了加法还是乘法。当从外部看时,由于加法和乘法看起来是相同的运算,所以本发明人将这种方法称为“同构混淆”。即使攻击者能够找到所使用的表,并且即使他能够以某种方式计算出其作为增量表的函数,但是他仍将不会知道是执行了加法还是乘法运算。表作用于整数列表的元素的方式对于加法和乘法而言将不同,然而这可以使用传统混淆来容易地隐藏。
另外,所使用的单个表也小于在背景技术中所讨论的表:需要大约2ll比特。即使仅使用加法,混淆加法所需的表也小于在背景技术中提出的表。本发明适用于许多不同交换环R,但并不是每个环都允许编码为整数列表。交换环是数学概念,其包括许多不同的常见的数学结构,例如取数为模的整数或者取数和多项式为模的多项式域是交换环的特殊情况。如本文中将描述的,技术人员可以验证给定环是否允许混淆。
例如,可以将环元素编码为两个整数(a,b)。可以使用将已编码环元素映射到已编码环元素加增量值的增量表直接地对编码执行算术。例如,如果uc-ud=ua-ub+1,则该表可以将(a,b)映射到(c,d)。通过增量表的重复应用来执行加法和乘法两者。
使用增量表来执行加法和乘法两者改善了混淆,因为可以将相同的表用于加法和乘法,并且减小大小,因为增量运算是一元而不是二元的;即,表可以作用于单个环元素而不是两个环元素。然而,期望进一步减小增量表的大小。
本发明人发现可以通过对基元素的指数施加限制并通过对表示环元素的整数列表中的整数的蕴涵来进一步减小增量表。特别地,可以使整数列表中的整数之间的差局限于特定允许差列表。此列表的大小小于基环元素(或者基环元素中的一个,如果存在超过一个的话)的阶数。
如在本文中将更全面地讨论的,存在许多其它可能性和变体。在任何给定实施方式中许多变体中的哪一个变体已被选择对于攻击者而言通常将是未知的。
所述计算设备是电子设备,并且可以是移动电子设备,例如移动电话、机顶盒、计算机、智能卡等。
如本文中所述的混淆算术可以在大范围的实际应用中应用。这样的实际应用可以包括在私有硬件上运行的安全应用,例如银行应用等,其中要预防逆向工程。其它应用包括其中要预防数据的无意泄露的应用。如果程序被哄骗释放私有数据,如果泄露的数据已被编码,则这不那么令人担心。还可以将混淆算术应用于运行应用的服务器。如果用户以编码形式发送和接收数据,则增加隐私性。
根据本发明的方法可以作为计算机实现方法在计算机上实现、或者在专用硬件中实现、或以两者的组合的方式实现。用于根据本发明的方法的可执行代码或其部分可以存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上以便当所述程序产品在计算机上执行时执行根据本发明的方法的非临时程序代码部件。
在优选实施例中,计算机程序包括适合于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码部件。优选地,在计算机可读介质上体现计算机程序。
附图说明
根据下文所述实施例,本发明的这些及其它目的是显而易见的,并且将参考下述实施例来阐述本发明的这些及其它方面。在所述附图中:
图1a示意性地示出了计算设备100的实施例的示例,
图1b示意性地示出了环加法单元130的实施例的示例,
图1c示意性地示出了环乘法单元140的实施例的示例,
图2示意性地示出了计算设备101的实施例的示例,
图3示意性地示出了用于计算用于在计算设备中使用的增量表的表计算设备200的实施例的示例,
图4示意性地示出了用于执行混淆算术的计算方法300的实施例的示例,
图5示意性地示出了加法方法400的实施例的示例,
图6示意性地示出了乘法方法500的实施例的示例,
图7a示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,
图7b示出了根据实施例的处理器***的示意性表示。
在不同图中具有相同参考标号的项目具有相同的结构特征和相同的功能,或者是相同的信号。在已解释了这样的项目的功能和/或结构的情况下,在详细描述中不需要其重复说明。
图1中的参考标号列表:
100 计算设备
110 被布置成存储增量表的存储装置
120 环求反单元
130 环补充单元
140 环乘法单元
150 操作数存储库
160 解码单元
170 编码单元
172 被布置成存储编码表的存储装置。
具体实施方式
虽然本发明可以有许多不同形式的实施例,但在图中示出且将在本文中详细地描述一个或多个特定实施例,并且应理解的是应将本公开内容视为本发明的原理的示例且其并不意图使本发明局限于所示和所述的特定实施例。
在下文中,为了便于理解,在操作中描述实施例的元件。然而,将显而易见的是,相应元件被布置成执行被描述为由其执行的功能。
实施例允许使用同一表来执行乘法和加法运算。下面,首先讨论计算设备的实施例的许多可能架构。接下来,讨论用以执行混淆算术的许多替换方式。
图1示意性地示出了计算设备100的实施例的示例。计算设备100是用于在有限交换环中执行混淆算术的电子设备。交换环的许多示例是已知的。下面针对两个这样的环给出示例:取数为模的整数或者取数和多项式为模的多项式其它实施例可以使用其它交换环。
环的元素被称为环元素。关于环元素,定义加法和乘法,后者称为环加法和环乘法。
如果需要的话,可以用任何适当形式来表示环元素。例如,可以将的元素表示为整数;将的元素表示为多项式。然而,在计算设备100中,将环元素表示为整数列表。例如,在计算设备100中用列表(a1,a2)来表示环元素a。后者甚至适用于非整数环,例如多项式环。整数列表根据环元素与整数列表之间的某种映射将环元素编码;给定任何环元素,存在表示环元素的至少一个整数列表,并且给定任何整数列表,存在其表示的恰好一个环元素。在实施例中,可以将任何环元素表示为整数列表。
整数列表包括至少两个整数,并且将环元素编码,使得环元素等于基环元素的幂的线性组合,其中,幂具有由整数列表确定的指数。例如,整数列表(a1,a2)可以将环元素a编码,使得环元素等于幂的线性组合,例如使用基环元素u的基环元素在环中具有阶数。基环元素u的阶数被定义为最小正整数k,使得在环中uk=1。有时将该阶数指代为order(u)=k。
指数之间的差被包括在允许差列表中。如果指数本身在整数列表中,则整数列表的第一整数(例如,a1)和整数列表的第二整数(例如,a2)被包括在允许差列表中。另一方面这不是必需的。例如,整数列表(a1,a2)还可以映射到等。在这种情况下,仅要求整数列表的一个元素被包括在允许差列表中。从整数列表到指数的其它映射是可能的。允许差列表的大小小于基元素的阶数。这意味着减少了用于整数列表的选择的数目。例如,给定单个具有阶数k的基环元素u,不同表示的总数是k2。然而,当要求差在大小c的允许差列表中时,表示的总数变成kc,其小于k2。我们将使用字母A来指代允许差列表。
整数列表具有至少两个元素。如事实证明的,如果整数列表较短,则加法和乘法运算要求较少的步骤。因此,在实施例中,整数列表总是具有两个元素。在主要描述中,我们将假设整数列表是整数对,然而,提供了具有多于两个元素的整数列表的示例。
作为示例,整数列表(a1,a2)可以映射到环元素其中,u是特殊环元素,其称为基环元素。此外,我们将假设使用单个基环元素u。下面讨论了许多变体,包括使用多个基元素。然而,在主要讨论中,我们将作为“示例编码”而假设给定整数列表(a1,a2)映射到环元素并且a1-a2∈A,其中,A表示允许差列表;请注意存在其它选项。
可以将允许差列表视为的子集。可以将该差允许差列表表示为列表(例如阵列)或正整数。验证差是否在列表中可以要求执行取模k运算。然而,在实际实现方式中,允许差列表的使用将是隐含的;编码操作产生满足条件的整数列表,对整数列表的操作产生满足条件的整数列表作为输出。
在实施例中,整数列表中的整数是非负的。这简化了计算,但并不是必需的。此外,在实施例中,对整数列表中的整数取基元素的阶数的模。基元素u的阶数是最小整数k,使得uk=1。例如通过执行取模k运算来使整数列表中的值保持在范围[0,k-1]中是方便的。
计算设备100可以包括操作数存储库150。操作数被作为整数列表存储在操作数存储库150中。可以对存储在操作数存储库150中的操作数执行算术。可以将所述算术的结果存储在操作数存储库150中,其中,所述结果可以在新运算中使用,或者可以输出到不同设备等。
可以用若干不同方式来表示整数列表,例如操作数存储库150中的操作数。可以将整数列表表示为整数的列表,例如阵列。例如,整数列表的第一整数与整数列表的第二整数之间的算术差被包括在允许差列表中。例如,采取具有两个元素的整数列表的优选情况,可以将整数列表表示为有序列表(k1,k2),使得k1-k2∈A。在该示例中,参数k1和k2两者可以是被选模k(即,取基环元素的阶数为模)。这并不是严格必需的,参数可以是任何整数,在这种情况下,可以将该要求实现为例如(k1-k2)mod k∈A。
作为另一示例,可以通过从允许差列表中选择整数列表中的整数中的一个整数来表示增量列表。例如,此表示可以采取整数列表(k1,k2),其中,例如k2被包括在允许差列表中,可以对其它一个或者多个整数取基环元素u的阶数k为模。允许差列表可以明显小于该阶数,在此表示中,可以要求较少的比特来表示的A元素,因此降低了空间要求。在实施例中,要求是允许差列表A的成员的整数列表中的整数处于固定位置,例如第一或第二位置。但是后者不是必需的;该位置可以作为另一混淆度量而改变。
计算设备100包括被布置成存储针对增量环元素定义的增量表T的存储装置110。增量表将输入环元素映射到对输出环元素进行编码的输出整数列表,使得输出环元素等于增量环元素与输入环元素进行环相加。在实施例中,将输入环元素表示为整数列表。这样,表T将整数列表映射到整数列表;两者都是根据同一编码的,例如同一映射。然而,存在其中在替换编码中将输入环元素表示为整数列表的实施例。在任何情况下,用数字形式来表示输入环元素,允许表将输入环元素映射到输出环元素。
增量表的输出整数列表满足这样的要求,即:输出整数列表表示的输出环元素等于基环元素(u)的幂的线性组合,其中,幂具有由输出整数列表确定的指数,第一指数(l1)与第二指数(l2)之间的差被包括在允许差列表(A)中。这将称为有限差要求。在实施例中,有限差要求转换成对整数列表的整数的要求,例如,整数列表中的整数的函数被包括在允许差列表中。
表可以以某种格式列出输入环元素以及关联输出整数列表。还可以通过省略输入环并仅列出输出整数列表来在存储装置中表示表。例如,这可以在用规范格式来表示输入环的情况下完成。
例如,假设示例编码,可以用表T将输入环元素映射到输出整数列表。在这种情况下,可以将输入环元素表示为整数列表,使得我们可以具有(T(k1,k2))=(l1,l2)。后者对输出环元素进行编码。输出环元素等于增量环元素与输入环元素进行环相加。例如,如果增量环元素是1,则l=k+1。在实施例中,增量元素可以是1,然而这并不是需要的。例如,使用示例编码,可以针对t的某个值(例如,0<=t<order(u)的任何值)将增量元素选择为ut
不需要在表中表示输入整数列表的所有可能组合,因为许多整数列表并不根据有限差要求表示环元素。
增量表比在背景技术中描述的表小得多。后者采取两个输入,例如用以产生已编码输出的两个已编码数。然而,表T仅采取一个已编码输出来产生一个已编码输出;增量环元素是固定的。假设编码采取类似的空间量,T的输入空间被减小大约至平方根。这是显著的大小改善。
仅用增量表,计算设备可以以混淆方式表示环元素,并且可以将增量元素与这样的已编码环元素相加。这可以例如用来实现计数器。
在实施例中,计算设备100包括环加法单元130和环乘法单元140。计算设备100还可以包括环求反单元120。在实施例中,环乘法单元140可以使用加法单元130来执行加法;加法单元130可以使用求反单元120。这已在图1中用单元120、130和140之间的线指示。然而,各单元可以被重复;例如,加法单元130可以完成其自己的求反,并且乘法单元140可以完成其自己的加法。求反也称为“符号的改变”。
求反单元120可以接收对求反输入环元素a进行编码的求反输入整数列表(a1,a2)。求反单元120被布置成确定对求反输出环元素b进行编码的求反输出整数列表(b1,b2)。求反输出环元素是求反输入环元素的负数,例如求反输出环元素等于用于加法的中性环元素(0)减求反输入环元素。因此b=-a。
在实施例中,求反单元可以通过对求反输入整数列表改变次序来计算输出整数列表。使用示例编码,输出整数列表可以是(a2,a1)。通过改变次序来求反可以通过改变从其读取元素的地址而用代码来高效地实现,并且其不一定改变存储器中的实际顺序。这在允许差列表满足a∈A意味着-a∈A的要求的情况下是可能的。
在实施例中,求反单元可以通过将常数与整数列表的每个整数相加来计算输出整数。例如,在使用整数m、使得um=-1的在示例编码中;例如,输出整数列表可以是(a1+m,a2+m)。
在实施例中,求反单元包括求反表。求反表被配置成接收对求反输入环元素a进行编码的求反输入整数列表((a1,a2)),并产生对求反输出环元素b进行编码的求反输出整数列表((b1,b2)),使得b=-a。求反表并不是非常大的,因为其是一元的,此外,求反表是仅需要包含用于满足对整数列表的有限差要求的输入的求反输出整数列表。在加法和乘法运算期间以相同方式使用求反表。
环加法单元130被布置成接收对第一加法输入环元素进行编码的第一加法输入整数列表(a1,a2)和对第二加法输入环元素进行编码的第二加法输入整数列表(b1,b2)。例如,环加法单元130可以从操作数存储库150接收两个操作数。环加法单元130被布置成通过对根据第一和第二加法输入整数列表确定的环元素应用增量表来确定对加法输出环元素进行编码的加法输出整数列表,加法输出环元素等于第一加法输入环元素和第二加法输入环元素的环加法。
在实施例中,整数列表到特定环元素的映射包括多个子映射,每个子映射与整数列表的整数相关联,子映射将整数映射到环元素。映射是应用于关联整数的子映射的线性组合,例如,和(sum)。子映射可以将基元素提高至由关联整数确定的幂。例如,在示例编码中,可以将(a1,a2)说成是子映射的和。
图1b图示出加法单元130的实施例。加法单元130接收第一加法输入整数列表131以及第二加法输入整数列表132。加法单元130包括中间加法单元134,其被布置成重复地将从第二加法输入整数列表132的整数获得的环元素与第一加法输入环元素相加。例如,中间加法单元134可以向被初始化成第一整数列表元素的中间和133做加法。加法涉及到来自存储装置110的增量表的应用。
环乘法单元140被配置成接收对第一乘法输入环元素进行编码的第一乘法输入整数列表(r1,r2)和对第二乘法输入环元素进行编码的第二乘法输入整数列表(s1,s2)。例如,乘法单元140可以从操作数存储库150接收两个操作数。环乘法单元140被布置成通过对根据第一和第二乘法输入整数列表确定的环元素应用增量表来确定对乘法输出环元素进行编码的乘法输出整数列表,乘法输出环元素等于第一乘法输入环元素和第二乘法输入环元素的环乘法。
图1c示出了乘法单元140的可能实施例。乘法单元140接收第一乘法输入整数列表141和第二乘法输入整数列表142。乘法单元140包括中间乘法单元144,其被布置成根据第一和第二乘法输入整数列表141、142来确定第一中间乘法整数列表145(t1,t2)和第二中间乘法整数列表146(u1,u2),其分别地对第一和第二中间乘法环元素进行编码。乘法单元140被布置成通过环加法单元130将第一中间乘法整数列表145和第二中间乘法整数列表146相加。确定中间整数列表可以涉及到对整数列表中的整数的算术运算,但是不要求增量表。
计算设备100可选地包括用于将交换环的环元素编码为整数列表的环编码单元170以及用于将整数列表(a,b)解码成交换环的环元素(x)的环解码单元160。编码单元170和/或解码单元160可以不存在,例如当计算设备100接收已编码输入和/或在已编码输出中报告时。可以将编码单元170和/或解码单元160实现为独立单元,例如作为编码设备和/或解码设备160。
环编码单元170可以包括被布置成存储针对基环元素(u)定义的编码表的存储装置172,所述编码表将环元素(x)映射到整数列表((a,b)),使得环元素等于基环元素的幂的线性组合(x=ua-ub),其中,幂具有由整数列表确定的指数。编码单元170可以将已编码环元素存储在算子存储库150中。编码单元170允许***用明文信息进行工作。
编码表将环元素(x)映射到整数列表((a,b)),使得环元素等于基环元素的幂的线性组合(x=ua-ub),其中,幂具有由整数列表确定的指数,第一指数(a1)与第二指数(a2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k)。
环解码单元160被布置成针对一个或多个基环元素(u)确定环元素(x),使得环元素等于一个或多个基环元素的幂的线性组合(x=ua-ub),其中,幂具有由整数列表确定的指数。例如,解码单元160可以包括存储将整数列表映射到环元素的解码表的存储库。例如,解码单元160可以包括用以计算幂及其线性组合的计算单元。
解码表只需要映射满足有限差要求的整数列表,使得解码表具有比需要映射所有可能差的解码表的更小的大小。
许多有趣的实施例省略编码单元170和解码单元160中的一者或两者。例如,计算设备100可以被配置成通过计算机网络(例如互联网)来接收已编码信息。混淆计算设备100在其上面运行的***的所有者(例如执行混淆计算软件的计算机)可能不知道用于输入信息的编码,也不知道由***100输出(例如通过计算机网络发送回)的信息。因此,即使计算是在云中执行的,信息的所有者也具有某些这样的保证,即:他信息是安全的。使用密码术(例如加密)对采取编码形式的信息进行操作通常是不可能的。即使如在背景技术中概述的那样使用表***,这也要求双重的表。
通常,计算设备100包括微处理器(未示出),其执行存储在设备100处的适当软件;例如,该软件可能已被下载和/或存储在对应的存储器中,例如,诸如RAM之类的易失性存储器或诸如闪存(未示出)之类的非易失性存储器。替换地,设备100可以完全或部分地用可编程逻辑(例如作为现场可编程门阵列(FPGA))实现。设备100可以完全地或部分地实现为所谓的专用集成电路(ASIC),即针对其特定用途而自定义的集成电路(IC)。
在实施例中,电子计算设备包括被布置成执行对应单元的功能的环加法电路和环乘法电路。计算设备还可以包括求反电路。电路可以是例如通过用硬件描述语言(诸如Verilog和VHDL)来描述功能而获得的集成电路,诸如CMOS。电路可以是处理器电路和存储电路,所述处理器电路执行在存储电路中以电子方式表示的指令。电路还可以是FPGA、ASIC等。
可以将表存储库110和操作数存储库150实现为电子存储装置,例如存储器。两个存储库可以是同一存储器的一部分,但是它们也可以是不同的存储器。表存储库110可以是易失性、不可写的,例如ROM或一写多读(WORM)存储器。操作数存储库150可以是易失性或非易失性可写存储器,例如闪存或RAM。
图2示意性地示出了计算设备101的实施例的示例。计算设备101是计算设备100的细化。在实施例中,计算设备101包括多个环加法单元、多个环乘法单元以及可选地多个求反单元。例如,图2示出了三个乘法单元1401.1、140.2和140.3,以及两个加法单元130.1和130.2。这些单元可以分别具有与单元140和130相同的设计。乘法和加法单元占用相对少的空间,例如当用软件实现时,这些单元需要不多于几百个低级计算机指令。特别地,可以将加法和/或乘法单元的拷贝用于在计算机程序中需要的每个乘法或加法。这允许传统混淆技术。作为示例,图2示出了可以如何使用混淆算术来计算多项式ax2+bx+c。
多个算术单元(例如,加法、乘法、求反)的运算可以按照其数据相关性允许的任何顺序排序。例如,可以在130.1之前的任何点处在排序140.1、140.2、130.1和130.2中***运算140.3。此外,可以将后续乘法或加法的排序颠倒。因此,可以用许多方式按照用于软件程序的线性排序而转换类似于图2的图。将单元严格地分离是不需要的;可以将用于第一单元的指令与用于另一单元的指令散置。
图3示意性地示出了用于计算用于在计算设备中使用的增量表的表计算设备200的实施例的示例。在类似于计算设备100的设备中可以使用增量表。可以将该增量表存储在非临时存储设备(例如,硬盘、非易失性存储器芯片等)上。表计算设备200包括被布置成构造增量表的表创建单元210。例如,表创建单元可以被布置成:
-重复地选择输入环元素,例如x,
-确定输出环元素,其等于增量环元素环与输入环元素进行环相加。例如,如果增量值是1,则y=x+1。
-确定用于输出环元素的输出整数列表编码。例如,表计算设备200可以包括类似于编码单元170的编码单元。
-向将输入环元素映射到满足有限差要求的输出整数列表的增量表添加条目。
可以执行这些步骤直至所有环元素已被映射到整数列表为止。在某些实施例中,可以跳过元素,构建部分增量表;例如,其可以从某些环元素将不会发生的上下文已知。
给定环R、潜在基环元素u、编码(例如示例编码)和整数列表长度(例如2),可以如下面给定的那样生成解码表。使k为u的阶数。
-例如通过生成所述整数列表长度、具有模k整数的所有整数列表来生成满足有限差要求的所有整数列表,并且整数列表的第一整数和输出整数列表的整数被包括在允许差列表A中。
例如,针对长度二的整数列表,可以使用以下示例算法:针对从0至(k-1)的k1;针对A中的所有d;生成(k1,k1+d mod k)。例如,针对可生成的差列表A={0,1,4,5,902,903,906},生成:(0,0),(0,1),(0,4),...,(1,1),(1,5),...等。在本示例,差列表可以与环Z907、u=10、k=151一起使用。
-针对每个生成的整数列表计算由该整数列表编码的环元素,并且向将整数列表关联到解码的解码表添加条目。例如,继续上述示例,可以计算1511-1515mod 907=76。因此,解码表可以接收(1,5)解码成76的条目。
虽然解码可以使用解码表或者可以不使用解码表,这样的表也是有用的,因为可以例如通过将用于环元素的表分类而从解码表生成编码表。环元素具有多个编码是可以发生的。例如,在用于任何a的示例编码中可以将环元素0(用于加法的中性元素)表示为(a,a)。可以从表去除这样的多个编码,例如通过删除用于给定环元素的多个条目中的除1之外的全部项;或者通过留下表中的多个编码并使用编码表来编码成多个条目中的随机的一个条目。
构造解码或编码表还可以用来找出环元素u是否是基环元素。如果构造编码表失败,则由于证明了某些环元素不具有编码,所以u不是基环元素。
下面,呈现了编码、增量表、环加法方法和环乘法方法的许多实施例。可以针对这些实施例中的任何一个实施例配置计算设备100的求反、加法和乘法单元。所有示例适用于任何交换环,特别是在本文中n是正整数。此外,很优选的是,可以在所选编码中表示交换环的任何元素。并不是所有交换环都允许在给定编码中表示所有元素,例如作为给定类型的整数列表表示。给定交换环R,如果可以使用给定编码类型将R中的任何元素表示为整数列表,则我们将说所述交换环R允许全同构混淆。本领域的技术人员可以验证给定交换环是否在给定编码的情况下允许全同构混淆,例如通过生成所有可允许编码并验证其一起表示给定环的所有元素。针对某些应用,可以允许编码具有某些间隙。这可以具有不能对那些间隙执行算术(至少不使用混淆整数列表编码)的后果。下面进一步呈现允许特定类型的编码的交换环的特定示例。
下面,首先给出其中参数局限于落在允许差列表中的示例编码的描述。存在许多类型的编码,其共同地具有的是:可以将环元素表示为整数列表。这些整数不是环元素,例如,即使环不是整数环(例如多项式环),然后仍然可以将元素表示为整数列表。所使用的编码、给定整数列表如何映射到环元素被称为编码。通常,整数列表将总是具有相同的长度,然而这并不是必需的。一般地,由于编码允许更多类型的整数列表,例如更长的列表,所以可以用不同方式将给定环元素编码为整数列表变得更有可能。给定具有基环元素u的交换环R,使得针对某些整数a1和a2,可以将R的任何元素a写为使得a1-a2∈A。并不是所有交换环都可以用这种方式编码,但是这些交换环中的许多交换环足以用于使编码有用。整数a1和a2本身不是环R的环元素:它们是取基元素的阶数为模而操作的整数。要注意,环元素a等于基元素u的幂、即的线性组合;在这种情况下,通过将幂乘以+1或-1并将其求和、更特别地通过用第一幂减去第二幂而获得线性组合。计算设备对被以上述方式编码的环元素进行操作。加法、求反和乘法单元可以在此编码中对环元素进行操作。
增量表T在加法和乘法运算两者中起到重要作用。增量表映射输入环元素,在这种情况下可以将输入环元素表示为整数列表。例如,给定表示输入环元素的输入整数列表(k1,k2),表T将其映射到输出整数列表,例如对输出环元素进行编码的T((k1,k2))=(l1,l2)。输出环元素等于增量环元素与输入环元素进行环相加。在本示例中,可以将增量元素取作1,即,作为用于环乘法的单位元素的环元素;在这种情况下l=k+1。可以将表直接地应用于使用相同编码的环元素且因此可以将该表应用于具有整数列表表示的环元素是方便的。尽管如此,存在其中在替换编码中将表应用于环元素的实施例。该替换编码也可以是整数列表,但是替换类型的。同样,增量环元素不需要是1。
下面描述运算:求反、加法以及乘法。
求反。给定表示求反输入环元素的求反输入整数列表(a1,a2),可以通过对整数列表改变顺序(在这种情况下通过将顺序颠倒)来获得求反输出整数列表。求反输出整数列表可以是(a2,a1)。通过改变顺序进行的求反要求A=-A。假设存在m,使得um=-1(这针对许多环R发生),可以替换地通过将常数(例如m)与整数列表的每个整数相加来获得求反。在后一种情况下,求反输出整数列表可以是(a1+m,a2+m)。这是适用的,因为优选地取基元素的阶数为模来完成整数列表中的算术。在这里,整数列表的整数对应于基元素的指数,因此同样地取基元素的阶数为模的整数对相同环元素进行编码。在任何情况下,可以由将表示第一环元素的第一整数列表映射到表示负的第一环元素的第二整数列表的求反表来完成求反。当表被用于求反时,在描述环元素的参数与描述负环元素的参数之间不需要存在任何固定关系。
加法。为了将对第一加法输入环元素进行编码的接收到的第一加法输入整数列表(a1,a2)与对第二加法输入环元素进行编码的第二加法输入整数列表(b1,b2)相加,首先确定对中间加法环元素进行编码的中间加法整数列表((c1,c2))。
环元素c可以是第一加法输入环元素a加上根据第二加法输入整数列表(特别是第二加法输入整数列表的第一整数)确定的幂次的基元素u。在本示例中,我们可以具有为了计算后者,我们观察到括号中的项可以使用增量表在编码中重写。要注意,整数列表(a1-b1,a2-b1)仍满足有限差要求,如果(a1,a2)满足的话。
通过将增量表第一次应用于环元素获得元素例如,通过T((a1-b1,a2-b1))=(d1,d2)。我们然后具有c1=d1+b1和c2=d2+b1,因此确定中间加法整数列表((c1,c2))还可以包括将根据第二加法输入整数列表确定的整数与从第一次应用得到的整数列表中的整数相加。将与整数列表表示中的环元素(在这种情况下与a)相加有时称为正缩减步骤。
因此,加法单元已获得中间相加环元素 作为整数列表(c1,c2)。中间加法环元素因此是一个或多个基元素的幂的线性组合,其中,幂是根据第一和第二加法输入整数列表确定的。在这种情况下,将增量表应用于环元素所述环元素由被自乘至第一整数列表(a1)的第一整数减去第二整数列表(b1)的第一整数的幂次的基环元素(u)减去被自乘至第一整数列表(a2)的第二整数减去第二整数列表(b1)的第一整数的幂次的基环元素(u)而形成。
在本示例中,可以通过将增量表第二次应用于根据中间加法整数列表和第二加法输入整数列表确定的环元素来确定加法输出整数列表。这可以包括计算中间加法环元素c与负的、被自乘至根据第二加法输入整数列表(例如第二加法输入整数列表b2的第二整数)确定的幂次的基元素的和这可以通过在第二次应用增量表之前对中间加法整数列表所表示的中间加法环元素求反来实现。可以如上所指示地完成c的求反。作为示例,我们使用改变顺序,但是可以通过将常数与指数相加来执行相同操作。在求反之后,和可以使用正的(而不是负的)、被自乘至根据第二加法输入整数列表确定的幂次的基元素: 后一运算是与上述相同类型的,并且可以以与加上相同的方式通过表应用来执行。此后,再次地对结果求反。全加法可以使用同一增量表T的两个求反以及两个表应用。
从整数列表表示中的环元素(在这种情况下从c)减去有时被称为负缩减步骤。可以通过求反、执行正缩减步骤以及再次求反来执行该负缩减步骤。通过经由第一参数a和差d(例如通过表示环元素ua-ua+d)来对增量表编索引,实现了计算时间的减少。在这种情况下,可以用T(a,d)对增量表编索引。考虑用于加上ub的正缩减步骤。这可以用 来完成,在这种情况下将表编索引为T(a-b,d)。因此,只需要取k为模的单个减法运算。
乘法。为了将对第一乘法输入环元素进行编码的接收到的第一乘法输入整数列表(r1,r2)与对第二乘法输入环元素进行编码的第二乘法输入整数列表((s1,s2))相乘,确定第一中间乘法整数列表(t1,t2)和第二中间乘法整数列表(u1,u2)。根据第一和第二中间元素来确定对乘法输出环元素进行编码的乘法输出整数列表。在其它实施例中,可以存在多于两个中间乘法整数列表。我们具有 可以用不同方式来完成相对于两个项t和u来划分扩展乘积中的项,例如作为
因此,为了将表示为整数列表的两个环元素相乘,可以将其变换成可以被相加以获得乘法的答案的两个新整数列表。加法可以如上所述地完成。例如,乘法单元可以计算中间整数列表并将其发送到乘法单元。例如,第一中间乘法整数列表的第一整数t1可以包括第一乘法输入整数列表的第一整数r1加第二乘法输入整数列表的第一整数s1,并且第一中间乘法整数列表的第二整数t2可以包括第一乘法输入整数列表的第一整数r1加第二乘法输入整数列表的第二整数s2,t1=r1+s1,t2=r1+s2;第二中间乘法整数列表的第一整数u1可以包括第一乘法输入整数列表的第二整数r2加第二乘法输入整数列表的第二整数s2,并且第二中间乘法整数列表的第二整数u2可以包括第一乘法输入整数列表的第二整数r2加第二乘法输入整数列表的第一整数s1,u1=r2+s2,u2=r2+s1
在实施例中,例如,在刚刚公开的示例中,对整数列表执行算术,不需要将环元素计算为某些自然表示中的环元素。现在讨论许多变体。变体中的许多变体是独立的,例如可以将变体编码与变体组合以执行加法。
通过混淆算术,当在整数列表中执行计算时,例如对应于等,可以取u的阶数为模将值缩减。例如,如果u的阶数是30,则可以取模30来执行所有计算。
增量值。增量值不需要是1。存在使用不同增量值的至少两个方式。首先,可以将等式修改成这意味着可以构造加上值ut的增量表。此增量表被应用于相同的整数列表,除了添加了整数t之外。在第一次应用增量表之后,加上数b1-t,而不是b1。改变增量值的另一方式是取R的两个元素g和p,使得在环中对g的重复相加给出了p。例如,存在整数h,使得h·g=g+…+g=p。假设存在具有增量值p的增量表Tp,例如p=1或p=ut。可以针对作为增量值的g构造增量表Tg。可以将表Tg应用h次以获得与直接地应用Tp相同的效果。在单个实施例中,甚至可以将使用具有不同增量值的不同增量表组合,例如以增加混淆。后一种构造具有如下优点,即:在不改变以下加法计算的情况下可以将多个增量值组合。
可以将针对示例编码举例说明的原理应用于许多替换编码。第一替换编码是使用编码将环元素a编码为整数列表(a1,a2),仍要求a1-a2∈A。具有基环元素u、使得任何环元素可以被以这种方式编码的环被说成是允许正混淆算术。示例编码将称为负混淆算术。可以数学证明的是,对于允许具有基环元素u的正混淆算术的任何环而言,存在整数m,使得um=-1。此外,允许负混淆算术的环当且仅当存在这样的值m时才允许正混淆算术。允许正混淆算术的任何环还允许负混淆算术,但相反情况不适用。正混淆算术主要遵循如针对上文概述的负混淆算术的相同方针。简要地,可以通过将值m与整数列表的所有整数相加来完成整数列表的符号改变。给定加法输入可以通过计算中间值(例如通过而执行加法。增量值适用于并具有增量值1;假设整数列表(a1,a2)满足要求,此后一个数也是如此。
可以针对应用正缩减两次,不一定需要负缩减。这简化了加法。可以如上所指示地通过将u的不同幂作为因数计入而改变增量表的构造。可以如上所指示的那样改变增量值。正混淆算术具有如下优点,即:增量表始终是对称的,并且可以以压缩形式存储。正混淆的缺点是较少的环允许此类编码。到目前为止给出的编码可以可选地针对某些v乘以常数环元素w=uv。因此,整数列表(a1,a2)可以表示环元素求反步骤不改变。负缩减步骤变成 增量表可以用作增量值w,并且应用于具有相同编码类型的可以如上所指示的那样从正缩减步骤导出负缩减步骤。乘法可以使用将表示为整数列表(r1,r2)和整数列表(s1,s2)的相乘。
整数列表中的整数的数目。在到目前为止讨论的示例中,整数列表中的元素的数目总是两个。此数目具有如下优点,即:其减少了计算步骤的数目。另一方面,允许整数列表中的更多元素扩展了允许混淆的环的数目。下面的示例考虑每个列表三个整数,但是更多整数是可能的,并且类似地工作。
考虑分别地对元素进行编码的第一整数列表(a1,a2,a3)和第二整数列表(b1,b2,b3)。可以通过将常数m与列表中的整数相加来完成求反。可以通过用于第二整数列表中的每个整数的增量表的应用(在这种情况下为三次)来完成加法。可以根据来计算第一中间加法整数列表。在这种情况下,增量值是1且增量表适用于为了做乘法,实现与在第二整数列表中相同数目的中间乘法整数列表,例如:(a1+b1,a2+b1,a3+b1)、(a1+b2,a2+b2,a3+b2)、(a1+b3,a2+b3,a3+b3)。
如果整数列表(a1,a2,a3)满足两个特定数目的列表具有允许差列表中的差,例如a1-a2∈A1,则也是如此,因为(a1-b3)-(a2-b3)=a1-a2。对于长度大于二的整数列表而言,还可以施加附加限制,例如在另一允许差列表中包括整数列表的另一第一整数和整数列表的另一第二整数,例如,a2-a3∈A2的附加限制。可以具有A1=A2
下面给出用于允许负和/或正混淆的环的示例和如何找到允许差列表。环R可以是用于模数n的整数环环R还可以是用于某个模数n和缩减多项式f(x)的多项式环
使R为具有可混算术和基数u的环,并且使k=order(u)。如果存在使得中的两个元素r1和r2两者将被称为等价的。要注意,此条件意味着非正式地,如果将两个整数中的一个添加到允许差列表给出与添加另一个相同的效果,则可以说这两个整数在此条件下是等价的。例如,取基元素u=2,具有阶数k=15。元素2和8是等价的,因为(22-1)211=28-1。同样地,元素4和10是等价的,因为(24-1)213=210-1。
可以数学证明如果R是环,使得um=-1,则r和-r总是等价的。
此等价关系引入了对的等价类,例如其中所有元素相互等价的集合。现在可以通过除了从包括0的等价类之外选择每个等价类的相同数目的元素来确定允许差列表。如果需要表示环元素0,则元素0也将被包括在允许差集合中。用于配置电子计算设备(100)以便在交换环中执行混淆算术的这种方法可以由电子配置设备(例如包括用于执行软件的微处理器和软件)执行。
我们提供以下示例:
使其是具有256个元素、被生成为的域,其中f(x)=x8+x4+x3+x+1,并且具有基环元素u=x5+x4+x+1,所述基环元素具有阶数51且其是用于域R中的混淆算术的基。请注意,由于R具有特性2,所以正和负混淆是相同的。等价类是:
[0]
[1;3;11;16;21;23;28;30;35;40;48;50]
[2;5;6;9;19;22;29;32;42;45;46;49]
[4;7;10;12;13;18;33;38;39;41;44;47]
[8;14;15;20;24;25;26;27;31;36;37;43]
[17;34]
可以通过从每个类选择至少一个元素获得允许差集合(例如,A={0,1,2,4,8,17})。
使其是具有212个元素、被生成为的域,其中f(x)=x12+x7+x6+x5+x3+x+1,并且具有基环元素u=x11+x10+x7+x5+x3+x2+x+1,所述基环元素具有阶数195,并且其是用于域R中的混淆算术的基。等价类是:
[0]
[13;26;39;52;65;78;91;104;117;130;143;156;169;182]
[1;8;64;73;84;87;108;111;122;131;187;194]
[2;16;21;27;49;67;128;146;168;174;179;193]
[4;32;42;54;61;97;98;134;141;153;163;191]
[3;47;72;83;112;123;148;192]
[6;29;51;94;101;144;166;189]
[7;12;58;93;102;137;183;188]
[9;14;24;79;116;171;181;186]
[18;28;37;48;147;158;167;177]
[36;56;74;96;99;121;139;159]
[5;25;40;70;125;155;170;190]
[10;50;55;80;115;140;145;185]
[20;35;85;95;100;110;160;175]
[11;69;76;90;105;119;126;184]
[15;22;43;57;138;152;173;180]
[30;44;81;86;109;114;151;165]
[23;33;60;88;107;135;162;172]
[19;46;66;75;120;129;149;176]
[38;45;63;92;103;132;150;157]
[17;53;62;68;77;82;113;118;127;133;142;178]
[31;34;41;59;71;89;106;124;136;154;161;164]
再次地,可以通过从每个等价类选择至少一个元素来获得允许差集合。选择可以是随机的。
使具有基环元素u=10,所述基环元素具有阶数151且其是用于域R中的混淆算术的基。七个等价类是:
[0]
±[1;3;8;16;18;30;31;32;33;43;53;56;62;75;78;79;101;102;113;116;124;126;128;140;149]
±[4;9;12;15;28;44;45;47;55;57;66;67;69;71;81;83;92;99;112;114;115;127;137;138]
±[5;6;7;21;26;29;34;40;41;51;54;61;63;64;74;86;91;93;103;105;109;129;131;132;134;141]
要注意,等价类具有对称性,其被用来以简略形式指代类。
使具有基环元素u=2,所述基环元素具有阶数100。要注意,此环不是域。17个等价类是:
[0]
±[1;23;25;27;42;49;94]
±[2;34;54;55;57;67;74;83;93;95]
±[3;11;39;47;82;90]
[4;16;24;48;52;76;84;96]
[8;44;56;92]
±[9;19;31;38;41;70;78]
[12;20;28;72;80;88]
±[13;14;21;29;37;65;85]
[32;40;60;68]
[36;64]
[50]
可以证明在域中,给定r,我们有:(ur-1)us对于的所有值而言是困难的。因此,每个类可以恰好表示k个元素。因此我们针对域有公式k(c-1)=n-1。数值实验示出了对于不是域的交换环而言,比率k(c-1)/(n-1)尤其是随着增长而接近于1。
这还意味着给定域以及通过从每个等价类恰好选择一个元素而获得的允许差列表和长度2的整数列表给出了每个域元素的唯一表示。通过从每个等价类选择更多元素,环元素获得多个表示。
下面概括许多示例并给出附加示例。针对多项式环,上文给出了基环元素和发生器的细节。要注意(欧拉函数),这就是为什么给定的情况下的环具有仅1000个元素的原因。
如从上文的表还可以看到的,可以通过用混淆算术生成环并计算等价类来获得具有各种大小的允许差列表的环。
具有较小的允许差列表具有如下优点,即:这减小了增量表的大小。在实施例中,如果幂不具有满足有限差要求的指数(例如,所述指数由整数列表确定,对于所述指数的差在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k)),则增量表不将输入整数列表所表示的输入环元素映射为基环元素(u)的幂的线性组合
通过搜索更多环,可以将允许差列表的大小选择为相对于阶数k而言是小的。可以通过选择每个等价类的仅一个元素来在大小方面减小允许差列表;可以通过选择每个等价类的多于一个元素在大小方面扩展允许差列表。如果允许差列表的大小小于阶数的50%、更优选地小于阶数的20%、甚至更优选地小于阶数的10%、甚至更优选地小于阶数的5%,则是优选的。在域中的唯一表示的情况下,期望的是c/k小于0.5、0.2、0.1和0.05。
通过选择每个等价类的仅一个元素,获得的是这为表提供较大缩减。(在这里c表示允许差列表中的元素的数目。)对于并非域的环而言,界限可以略微大于1,例如小于2。在后一种情况下,表示有时是唯一的,但并不是总是唯一的。另一方面,可能合期望的是,针对环元素具有多个不同的表示。这可以通过扩增允许差列表以使得来实现。
图4示意性地示出了在交换环中执行混淆算术的计算方法300的实施例的示例,该环具有有限数目的环元素,对环元素定义了环加法和环乘法,计算方法对将环元素编码的整数列表((a1,a2))进行操作,所述整数列表包括至少两个整数,其中,整数列表((a1,a2))将环元素(a)编码,使得环元素等于基环元素(u)的幂的线性组合基环元素在环中具有阶数(k),其中,幂具有由整数列表确定的指数,第一指数(a1)与第二指数(a2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k)。计算方法包括:
-存储305针对增量环元素(1;ut)定义的增量表(T),增量表将输入环元素映射到将输出环元素编码的输出整数列表(T((k1,k2))=(l1,l2)),使得输出环元素等于增量环元素环与输入环元素进行环相加(l=k+1),输出环元素等于基环元素(u)的幂的线性组合,其中,幂具有由输出整数列表确定的指数,第一指数(l1)和第二指数(l2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k)。
所述方法还可以包括环相加:
-接收310对第一加法输入环元素进行编码的第一加法输入整数列表((a1,a2))和对第二加法输入环元素进行编码的第二加法输入整数列表((b1,b2)),
-通过对根据第一和第二加法输入整数列表确定的环元素应用增量表来确定320对加法输出环元素进行编码的加法输出整数列表,加法输出环元素等于第一加法输入环元素和第二加法输入环元素的环加法。
所述方法还可以包括环乘法:
-接收330对第一乘法输入环元素进行编码的第一乘法输入整数列表((r1,r2))和对第二乘法输入环元素进行编码的第二乘法输入整数列表((s1,s2)),
-通过对根据第一和第二乘法输入整数列表确定的环元素应用增量表来确定340对乘法输出环元素进行编码的乘法输出整数列表,乘法输出环元素等于第一乘法输入环元素和第二乘法输入环元素的环乘法。
图5示意性地示出了可以在设备100中或者在方法300中等使用的加法方法400的实施例的示例。本示例使用示例编码。本方法可以适应于其它编码。本文中所述的所有变体可以被应用;本示例使用增量值1,并且通过对提出因数来构造增量表。
方法400包括接收加法操作数410。这可以包括接收410第一加法输入整数列表,例如(a1,a2),并接收420第二加法输入整数列表,例如(b1,b2)。
加法输入整数列表每个将环元素编码,使得环元素等于基环元素的幂的线性组合,基环元素在环中具有阶数,其中,幂具有由整数列表确定的指数。指数满足第一指数与第二指数之间的差被包括在允许差列表中的要求。
方法400还包括确定420中间加法整数列表,例如(c1,c2)。例如,这可以包括将增量表应用于根据第一和第二加法输入整数列表确定的环元素。特别地,可以将增量表应用于整数列表,整数中的元素是从输入整数列表中的元素导出的。表的输出满足要求。例如,确定420可以包括将增量表应用422于(a1-b1,a2-b1),例如获得(d1,d2);并且将根据第二加法输入整数列表确定的整数b1与从第一次应用得到的整数列表中的整数相加,例如(c1,c2)=(d1+b1,d2+b1)。
方法400还包括通过将增量表第二次应用于根据中间加法整数列表和第二加法输入整数列表确定的环元素来确定430加法输出整数列表。针对更长的整数列表,这可以涉及到附加的增量表应用。例如,这可以包括对中间加法整数列表求反431,例如改变顺序成为(c2,c1)。应用432增量表以及加法434与应用422和加法424相同,只是除了用中间整数列表(c2,c1)替换加法输入整数列表(a1,a2)并用b2替换b1之外。最后,对434的结果求反453以获得混淆加法的结果。
如果作为负混淆的替代,如在这里一样使用正混淆,则可以省略求反431、435。
图6示意性地示出了可以在设备100中或者在方法300中等使用的乘法方法500的实施例的示例。本示例使用与方法400相同的编码和增量表。如针对加法一样,乘法的输入和输出满足要求。
方法500包括接收乘法操作数510。这可以包括接收510第一乘法输入整数列表,例如(r1,r2),并接收514第二乘法输入整数列表(s1,s2)。
方法500还包括确定520第一和第二中间乘法整数列表。例如,520可以包括确定522第一中间乘法整数列表并确定524第二中间乘法整数列表。这些可以例如被分别地选择为(s1+r1,s1+r2)和(s2+r2,s2+r1),但是存在其它选择。乘法通过在加法方法400中将这些数相加而继续。
要注意,仅在应用422和应用432中使用表,而在方法400和500中的其它地方不使用。加法和乘法两者使用相同的表,并且两者将表使用相同次数(2)。其它操作包括对整数列表中的整数的小的算术运算,例如取基环元素的阶数为模。如对于本领域的技术人员而言将显而易见的,可以有执行本方法的许多不同方式。例如,可改变步骤的顺序或者可并行地执行某些步骤。此外,在各步骤之间可***其它方法步骤。***的步骤可表示诸如本文所述的方法的细化,或者可与本方法无关。此外,给定步骤可能在开始下一步骤之前并未完全结束。
根据实施例的方法可以使用软件来执行,该软件包括用于促使处理器***执行方法300、400和500中的任何一项的指令。软件可以仅包括由***的特定子实体所采取的那些步骤。软件可以被存储在适当存储介质中,诸如硬盘、软盘、存储器等。软件可以作为信号沿着电线或以无线方式或使用数据网络(例如,互联网)发送。可以使得该软件可用于下载和/或用于在服务器上的远程使用。方法可以使用被布置成将可编程逻辑(例如,现场可编程门阵列(FPGA))配置成执行所述方法的比特流来执行。
将认识到的是实施例还扩展至适合于将实施例付诸实践的计算机程序,特别是在载体上或载体中的计算机程序。该程序可以是源代码、目标代码、代码中间源和目标代码(诸如部分编译形式)的形式,或者是适合于在实现根据实施例的方法时使用的任何其它形式。涉及计算机程序产品的实施例包括对应于所阐述方法中的至少一个方法的处理步骤中的每个处理步骤的计算机可执行指令。可以将这些指令再分成子例程和/或存储在可被静态地或动态地链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括对应所阐述的***和/或产品中的至少一项的装置中的每个装置的计算机可执行指令。
图7a示出了具有包括计算机程序1020的可写部分1010的计算机可读介质1000,计算机程序1020包括用于促使处理器***执行根据实施例的用于执行混淆算术的计算方法的指令。可写部分可以被布置成用于多次写或者用于仅一次写。可以在计算机可读介质1000上作为物理标记或者借助于计算机可读介质1000的磁化来体现计算机程序1020。然而,也可设想任何其它适当实施例。此外,将认识到的是,虽然计算机可读介质1000在这里被示为光盘,但计算机可读介质1000可以是任何适当的计算机可读介质,诸如硬盘、固态存储器、闪速存储器等,并且可以是不可记录或可记录的。计算机程序1020包括用于促使处理器***执行用于执行混淆算术的所述计算方法的指令。
计算机可读介质(例如,计算机可读介质1000)可以包括增量表和/或解码表和/或编码表。
图7b示出了根据实施例的处理器***1100的示意性表示。处理器***包括一个或多个集成电路1110。在图7b中示意性地示出了一个或多个集成电路1110的架构。电路1110包括处理单元1120(例如CPU),以用于运行计算机程序组件以执行根据实施例的方法和/或实现其模块或单元。电路1110包括用于存储编程代码、数据等的存储器1122。存储器1122的一部分可以是只读的。电路1110可以包括通信元件1126,例如天线、连接器或两者等。电路1110可以包括用于执行在方法中定义的处理的一部分或全部的专用集成电路1124。处理器1120、存储器1122、专用IC 1124和通信元件1126可以经由互连1130(例如总线)相互连接。处理器***1110可以被布置成用于分别使用天线和/或连接器的接触式和/或无接触式通信。
应注意的是,上述实施例举例说明而不是限制本发明,并且本领域的技术人员将能够设计许多替换实施例。
在权利要求中,不应将放入括号之间的任何参考标号理解为限制权利要求。动词“包括”及其变化的使用并不排除在权利要求中叙述的那些之外的元件或步骤的存在。在元件前面的冠词“一”或“一个”不排除多个这样的元件的存在。可借助于包括若干不同元件以及借助于适当编程的计算机来实现本发明。在枚举若干装置的设备权利要求中,可用硬件的同一项来体现这些装置中的若干装置。在相互不同的从属权利要求中叙述某些措施的仅有事实并不指示这些措施的组合不能被有利地使用。在权利要求中,括号中的提及指的是实施例的图中的参考符号或实施例的公式,因此增加权利要求的可理解性。这些提及并不是穷举的,并且不应理解为限制权利要求。

Claims (17)

1.一种用于在交换环中执行混淆算术的电子计算设备(100),所述环具有有限数目的环元素,对环元素定义了环加法和环乘法,所述计算设备对将环元素进行编码的整数列表((a1,a2))进行操作,所述整数列表包括至少两个整数,其中,整数列表((a1,a2))将环元素(a)进行编码,使得环元素等于基环元素(u)的幂的线性组合基环元素在环中具有阶数(k),其中,幂具有由整数列表确定的指数,第一指数(a1)与第二指数(a2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k),
所述计算设备包括:
-存储装置(110),其被布置成存储针对增量环元素(1;ut)定义的增量表(T),
-增量表将表示输入环元素的整数列表映射到将输出环元素进行编码的输出整数列表(T((k1,k2))=(l1,l2)),使得输出环元素等于增量环元素环与输入环元素进行环相加(l=k+1),输出环元素等于基环元素(u)的幂的线性组合,其中,幂具有由输出整数列表确定的指数,第一指数(l1)与第二指数(l2)之间的差被包括在允许差列表(A)中。
2.如权利要求1所述的计算设备,其中,允许差列表的大小小于阶数的50%、更优选地小于阶数的20%、甚至更优选地小于阶数的10%、甚至更优选地小于阶数的5%。
3.如前述权利要求中的任一项所述的计算设备,其中,基环元素具有阶数,并且阶数(k)乘以允许差列表的大小减去一(c-1)除以环的大小减去一(N-1)是小于2的,更优选地等于
4.如权利要求1或2所述的计算设备,其中,基环元素具有阶数,并且阶数(k)乘以允许差列表的大小减去一(c-1)除以环的大小减去一(N-1)是大于或等于二的
5.如前述权利要求中的任一项所述计算设备,其中,增量表取表示输入环元素的输入整数列表((k1,k2))作为输入,其中:
-输入整数列表((k1,k2))的第一整数(k1)和整数列表的第二整数(k2)之间的算术差被包括在允许差列表中,或者
-输入整数列表((k1,k2))的整数(k1;k2)被包括在允许差列表中。
6.如前述权利要求中的任一项所述的计算设备,包括:
-环加法单元(130),其被布置成
-接收对第一加法输入环元素进行编码的第一加法输入整数列表((a1,a2))和对第二加法输入环元素进行编码的第二加法输入整数列表((b1,b2)),
-通过将增量表应用于根据第一和第二加法输入整数列表确定的环元素来确定对加法输出环元素进行编码的加法输出整数列表,加法输出环元素等于第一加法输入环元素和第二加法输入环元素的环加法。
7.如权利要求6所述的计算设备,其中,确定加法输出整数列表包括:
-通过将增量表第一次应用于作为一个或多个基元素的幂的线性组合的环元素来确定将中间加法环元素进行编码的中间加法整数列表((c1,c2)),其中,幂是根据第一和第二加法输入整数列表确定的,
-确定加法输出整数列表包括将增量表第二次应用于根据中间加法整数列表确定的并且根据第二加法输入整数列表确定的环元素。
8.如前述权利要求中的任一项所述的计算设备,包括:
-环乘法单元(140),其被布置成
-接收对第一乘法输入环元素进行编码的第一乘法输入整数列表((r1,r2))和对第二乘法输入环元素进行编码的第二乘法输入整数列表((s1,s2)),
-通过将增量表应用于根据第一和第二乘法输入整数列表确定的环元素来确定对乘法输出环元素进行编码的乘法输出整数列表,乘法输出环元素等于第一乘法输入环元素和第二乘法输入环元素的环乘法。
9.如前述权利要求中的任一项所述的计算设备,其中:
-所述交换环是由取整数模数为模的整数形成的环和/或
-所述交换环是由取整数多项式模数为模的整数多项式形成的环
10.一种用于将交换环的环元素编码为整数列表的环编码设备(170),用于与如权利要求1所述的计算设备一起使用,所述环编码设备包括:
-存储装置(172),其被布置成存储针对基环元素(u)定义的编码表,所述编码表将环元素(x)映射到整数列表((a,b)),使得环元素等于基环元素的幂的线性组合(x=ua-ub),其中,幂具有由整数列表确定的指数,第一指数(a1)与第二指数(a2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k)。
11.一种用于将整数列表((a,b))解码成交换环的环元素(x)的环解码设备(160),用于与如权利要求1所述的计算设备一起使用,所述环解码设备被布置成针对一个或多个基环元素(u)确定环元素(x),使得环元素等于一个或多个基环元素的幂的线性组合(x=ua-ub),其中,幂具有由整数列表确定的指数,第一指数(a1)与第二指数(a2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k)。
12.一种供在用于在交换环中执行混淆算术的计算设备中使用的用于计算增量表的表计算设备(200),所述环具有有限数目的环元素,对环元素定义了环加法和环乘法,所述计算设备对将环元素进行编码的整数列表((a1,a2))进行操作,所述整数列表包括至少两个整数,所述表计算设备包括,
-表创建单元(210),其被布置成构造增量表,表创建单元被布置成:
-重复地选择输入环元素,
-确定输出环元素,其等于增量环元素与输入环元素进行环相加,
-将用于输出环元素的输出整数列表编码确定为基环元素(u)的幂的线性组合基环元素在环中具有阶数(k),其中,幂具有由输出整数列表确定的指数,第一指数(a1)和第二指数(a2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k),
-向将输入环元素映射到输出整数列表的增量表添加条目。
13.一种用于配置如权利要求1中所述的用于在交换环 中执行混淆算术的电子计算设备(100)的电子配置设备,
-提供具有有限数目的环元素的环,
-提供具有阶数k的基环元素u,
-定义关于的等价性关系,使得当且仅当对于的某个元素t而言在环中时两个元素r1和r2是等价的,等价性关系引入了关于的等价类,
-通过从每个等价类选择至少一个元素来获得允许差列表。
14.一种用于在交换环中执行混淆算术的电子计算方法,所述环具有有限数目的环元素,对环元素定义了环加法和环乘法,所述计算方法对将环元素进行编码的整数列表((a1,a2))进行操作,所述整数列表包括至少两个整数,其中,整数列表((a1,a2))将环元素(a)进行编码,使得环元素等于基环元素(u)的幂的线性组合基环元素在环中具有阶数(k),其中,幂具有由整数列表确定的指数,第一指数(a1)与第二指数(a2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k),所述计算方法包括:
-存储针对增量环元素(1;ut)定义的增量表(T),增量表将表示输入环元素的整数列表映射到将输出环元素进行编码的输出整数列表(T((k1,k2))=(l1,l2)),使得输出环元素等于增量环元素环与输入环元素进行环相加(l=k+1),输出环元素等于基环元素(u)的幂的线性组合,其中,幂具有由输出整数列表确定的指数,第一指数(l1)和第二指数(l2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k)。
15.如权利要求14所述的电子计算方法,包括:
-环相加,环相加包括:
-接收对第一加法输入环元素进行编码的第一加法输入整数列表((a1,a2))和对第二加法输入环元素进行编码的第二加法输入整数列表((b1,b2)),
-通过将增量表应用于根据第一和第二加法输入整数列表确定的环元素来确定对加法输出环元素进行编码的加法输出整数列表,加法输出环元素等于第一加法输入环元素和第二加法输入环元素的环加法。
16.一种包括计算机程序指令的计算机程序,所述计算机程序指令被布置成当计算机程序在可编程装置上运行时执行权利要求14或15所述的方法。
17.一种计算机可读介质,包括
-根据权利要求16所述的计算机程序,和/或
-用于在交换环中执行混淆算术的增量表,所述环具有有限数目的环元素,对环元素定义了环加法和环乘法,整数列表((a1,a2))对环元素进行编码,所述整数列表包括至少两个整数,其中,所述整数列表((a1,a2))将环元素(a)进行编码,使得环元素等于基环元素(u)的幂的线性组合 基环元素在环中具有阶数(k),其中,幂具有由整数列表确定的指数,第一指数(a1)和第二指数(a2)之间的差被包括在允许差列表(A)中,并且其中,允许差列表的大小小于阶数(k),
增量表(T)是针对增量环元素(1;ut)定义的,,
-增量表将表示输入环元素的整数列表映射到将输出环元素进行编码的输出整数列表(T((k1,k2))=(l1,l2)),使得输出环元素等于增量环元素环与输入环元素进行环相加(l=k+1),输出环元素等于基环元素(u)的幂的线性组合,其中,幂具有由输出整数列表确定的指数,第一指数(l1)与第二指数(l2)之间的差被包括在允许差列表(A)中。
CN201580064796.XA 2014-11-27 2015-11-25 用于执行混淆算术的电子计算设备 Pending CN107005399A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14195053 2014-11-27
EP14195053.5 2014-11-27
PCT/EP2015/077577 WO2016083424A1 (en) 2014-11-27 2015-11-25 Electronic calculating device for performing obfuscated arithmetic

Publications (1)

Publication Number Publication Date
CN107005399A true CN107005399A (zh) 2017-08-01

Family

ID=52002730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580064796.XA Pending CN107005399A (zh) 2014-11-27 2015-11-25 用于执行混淆算术的电子计算设备

Country Status (9)

Country Link
US (1) US10200191B2 (zh)
EP (1) EP3224982B1 (zh)
JP (1) JP2018503113A (zh)
CN (1) CN107005399A (zh)
BR (1) BR112017010906A2 (zh)
MX (1) MX2017006736A (zh)
RU (1) RU2698764C2 (zh)
WO (1) WO2016083424A1 (zh)
ZA (1) ZA201704321B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112017006236A2 (pt) 2014-09-30 2017-12-12 Koninklijke Philips Nv dispositivo de cálculo eletrônico, dispositivo de codificação de anel, dispositivo de cálculo de tabela, método de cálculo eletrônico, programa de computador, e, mídia legível por computador
WO2016092097A1 (en) 2014-12-12 2016-06-16 Koninklijke Philips N.V. Electronic generation device
CN107005403A (zh) * 2014-12-22 2017-08-01 皇家飞利浦有限公司 电子计算设备
EP3671492A1 (en) * 2018-12-21 2020-06-24 Dassault Systèmes Adaptive compression of simulation data for visualization
US11411749B2 (en) * 2020-01-31 2022-08-09 Nxp B.V. System and method for performing netlist obfuscation for a semiconductor device
EP3907633B1 (en) 2020-05-05 2022-12-14 Nxp B.V. System and method for obfuscating opcode commands in a semiconductor device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004112307A2 (en) * 2003-06-13 2004-12-23 Koninklijke Philips Electronics N.V. Multiplication in a finite field
CN101491000A (zh) * 2006-07-12 2009-07-22 皇家飞利浦电子股份有限公司 用于混淆密码函数的方法和***
US20090193250A1 (en) * 2005-11-08 2009-07-30 Kaoru Yokota Authentication system, signature creating device, and signature verifying device
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码***
CN103888937A (zh) * 2014-03-31 2014-06-25 北京科技大学 一种适用于无线传感器网络aes加密的低开销快速轮加密装置及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5270956A (en) * 1991-03-18 1993-12-14 University Of Maryland System and method for performing fast algebraic operations on a permutation network
IL128552A (en) * 1996-08-19 2004-06-01 Ntru Cryptosystems Inc Method and device of a public key in a crypto system
US6760742B1 (en) * 2000-02-18 2004-07-06 Texas Instruments Incorporated Multi-dimensional galois field multiplier
US8090097B2 (en) * 2006-10-11 2012-01-03 Frank Rubin Device, system and method for cryptographic key exchange
GB0621951D0 (en) * 2006-11-03 2006-12-13 Univ Oxford Brookes Polynonomial synthesis
EP2252932B1 (en) 2008-03-05 2011-11-09 Irdeto B.V. White-box implementation
RU2439693C1 (ru) * 2010-06-04 2012-01-10 Федеральное государственное учреждение "Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю" Способ защиты текстовой информации от несанкционированного доступа
FR2968104B1 (fr) 2010-11-30 2013-07-12 Logiways France Procede et systeme de protection d'un dispositif de cryptographie
BR112017006236A2 (pt) 2014-09-30 2017-12-12 Koninklijke Philips Nv dispositivo de cálculo eletrônico, dispositivo de codificação de anel, dispositivo de cálculo de tabela, método de cálculo eletrônico, programa de computador, e, mídia legível por computador

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004112307A2 (en) * 2003-06-13 2004-12-23 Koninklijke Philips Electronics N.V. Multiplication in a finite field
US20090193250A1 (en) * 2005-11-08 2009-07-30 Kaoru Yokota Authentication system, signature creating device, and signature verifying device
CN101491000A (zh) * 2006-07-12 2009-07-22 皇家飞利浦电子股份有限公司 用于混淆密码函数的方法和***
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码***
CN103888937A (zh) * 2014-03-31 2014-06-25 北京科技大学 一种适用于无线传感器网络aes加密的低开销快速轮加密装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MICKAEL DARDAILLON ET AL: "Hardware implementation of the GPS authentication", 《2012 INTERNAIONAL CONFERENCE ON,IEEE》 *

Also Published As

Publication number Publication date
US10200191B2 (en) 2019-02-05
WO2016083424A1 (en) 2016-06-02
RU2017122260A (ru) 2018-12-27
MX2017006736A (es) 2017-10-04
JP2018503113A (ja) 2018-02-01
US20170324544A1 (en) 2017-11-09
EP3224982A1 (en) 2017-10-04
RU2698764C2 (ru) 2019-08-29
RU2017122260A3 (zh) 2019-02-14
ZA201704321B (en) 2019-01-30
BR112017010906A2 (pt) 2018-02-06
EP3224982B1 (en) 2018-07-11

Similar Documents

Publication Publication Date Title
CN107005399A (zh) 用于执行混淆算术的电子计算设备
JP6621813B2 (ja) 難読化された算術を実行するための電子計算装置
WO2018015325A1 (en) Device and method for performing obfuscated arithmetic
Büyükboduk et al. Anticyclotomic p-ordinary Iwasawa theory of elliptic modular forms
CN105814833A (zh) 安全的数据变换
Garcia et al. Gauss' hidden menagerie: from cyclotomy to supercharacters
US10536262B2 (en) Electronic generation device
CN107005403A (zh) 电子计算设备
Kim Identities of symmetry for generalized Euler polynomials
Ercan et al. Rank and Order of a Finite Group admitting a Frobenius-like Group of Automorphisms
CN111480140B (zh) 计算设备和方法
Dolfi et al. Non-solvable groups whose character degree graph has a cut-vertex. II
CN108475255A (zh) 计算设备和方法
Flicker Counting local systems via the trace formula
NL2015955B1 (en) Calculating device and method.
Eick et al. The isomorphism problem for torsion free nilpotent groups of Hirsch length at most 5
Khankishiyeva ON A NEW NUMBER SYSTEM AND ITS APPLICATIONS.
CN109952558A (zh) 用于将余数***表示转换为基数表示的电子计算装置
Schridde Computing discrete logarithms using 𝒪 ((log q) 2) operations from {+,-,×,÷, &}
JAFARI et al. Characterizing rational groups whose irreducible characters vanish only on involutions
Wu et al. Determination of the packing number D λ (3, W 4 (3), ν)
Krasnobayev et al. Mathematical model and tabular method implementation of modular arithmetic operations with crypto transformations in the residue class
Doner Alexis Bès. Decidability and definability results related to the elementary theory of ordinal multiplication. Fundamenta Mathematica, vol. 171 (2002), pp. 197–211.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20201013