CN110088728A - 用于编码加法的计算设备 - Google Patents

用于编码加法的计算设备 Download PDF

Info

Publication number
CN110088728A
CN110088728A CN201780079120.7A CN201780079120A CN110088728A CN 110088728 A CN110088728 A CN 110088728A CN 201780079120 A CN201780079120 A CN 201780079120A CN 110088728 A CN110088728 A CN 110088728A
Authority
CN
China
Prior art keywords
group
code
type
abelian
code element
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
CN201780079120.7A
Other languages
English (en)
Inventor
L·马林
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 CN110088728A publication Critical patent/CN110088728A/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Software Systems (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

提供了一种被布置用于阿贝尔群N中的编码加法的电子计算设备(100)。所述计算设备包括:存储设备(140),其被配置为存储所述阿贝尔群N的编码元素;加法单元(150),其被布置为使多个编码加数相加,其中,所述加法单元被配置为形成包括所述多个编码加数的至少编码部分的编码元素;以及减少单元(160),其被布置为通过在所述编码元素的序列中利用另外的编码元素替换两个编码元素来减少编码元素。

Description

用于编码加法的计算设备
技术领域
本发明涉及电子计算设备、电子计算方法和计算机可读介质。
背景技术
在计算机中,为了各种任务而执行计算。由于计算机是有限的,因此这些计算通常在有限群中进行。这些群通常是阿贝尔群。群的示例是符号为的算术模素数。计算机的特别重要的群是具有2n个元素的群能够以各种方式构建群,例如,能够通过将较小的群相乘来构建较大的群。
在某些应用程序中,期望对攻击者隐藏关于程序运行的信息。在所谓的白盒攻击模型中,假设攻击者具有对正在运行的计算机程序的详细访问权。即使在这个模型中,也期望对攻击者尽可能地隐藏信息。特别地,使用密码术对攻击者隐藏信息的敏感应用程序(例如,银行应用程序、内容保护等)在白盒模型中可能是易受伤害的。如果攻击者读取用于加密信息的密钥,则攻击者可能能够自己解密所述信息,从而获得财务内容、普通内容等。
使用当前的白盒技术很难保护一般的计算流程。例如,Chow等人的文章“White-Box Cryptography and AES Implementation”(通过引用将其并入本文)示出了如何可以在白盒模型中保护一种特定算法(AES)。该技术可能无法直接应用于保护一般的计算机程序,即,并非没有对程序进行广泛的人工分析。例如,对Chow中描述的类型的表或表网络进行加法或乘法运算的直接转换将仍然允许攻击者在加法或乘法被执行时进行推断,只需观察访问哪个表网络即可。
不幸的是,攻击者有很多选择来攻击白盒实施方式。除了被动攻击(例如针对程序中使用的中间值的侧通道类型攻击)之外,攻击者还能够使用主动攻击。例如,攻击者能够将在运行期间使用的中间值制成表,并且在运行期间交换在程序的不同位置处或在不同运行期间观察到的中间值。以这种方式,攻击者可能希望学习关于在中间值上使用的编码的信息。
期望在白盒抗性实施方式中改进对数据的隐藏。
发明内容
提供了一种被布置用于阿贝尔群N中的编码加法的电子计算设备(100)。所述计算设备包括:存储设备(140),其被配置为存储所述阿贝尔群N的编码元素;加法单元(150),其被布置为使多个编码加数相加,其中,所述加法单元被配置为形成包括所述多个编码加数的至少编码部分的编码元素;以及减少单元(160),其被布置为通过在所述编码元素的序列中利用另外的编码元素替换两个编码元素来减少编码元素。
由于元素基于不需要在计算设备中明确表示的群A或群M的元素被编码,因此群N的元素被编码。然而,即使这些元素被编码,但在编码形式中,算术(在这种情况下是加法)仍然是可能的。这是一个优点。此外,计算设备还具有以下优点:与不兼容类型交换变量值将给出不确定的结果,这确实给攻击者较少信息。
本文描述的计算设备和方法适合于阿贝尔群中的白盒编码加法。在白盒编码加法中,已经采取对策而使攻击者难以获得关于加法的详细信息。这些设备和方法可以与已知的混淆技术(例如,代码混淆)相结合,以进一步改进所获得的白盒保护。白盒编码加法特别适合于保护加密应用程序。例如,在加密应用程序中,密钥可以被包括在设备中,该密钥应当是设备的攻击者不可访问的,以例如避免对密钥的未授权使用。白盒编码也可以应用于非加密背景中。例如,如果采用诸如本文所述的白盒编码,则对专有算法(例如,图像改善算法)的逆向工程将会更加困难。
根据本发明的方法可以在计算机上被实施为计算机实施的方法,或者以专用硬件来实施,或者以两者的组合来实施。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括被存储在计算机可读介质上非瞬态程序代码,当所述程序产品在计算机上运行时,所述非瞬态程序代码用于执行根据本发明的方法。
在优选实施例中,所述计算机程序包括计算机程序代码,当所述计算机程序在计算机上运行时,所述计算机程序代码适于执行根据本发明的方法的所有步骤。优选地,所述计算机程序被实施在计算机可读介质上。
本发明的另一方面提供了一种使计算机程序可供下载的方法。这方面在计算机程序被上载到例如Apple的App商店,Google的Play商店或Microsoft的Windows商店时以及在计算机程序可从这样的商店下载时得到使用。
具体参考标题为“Electronic calculating device for performingobfuscated arithmetic”的国际专利申请WO 2016/050884 A1。
附图说明
参考附图,仅通过举例的方式来描述本发明的另外的细节、方面和实施例。附图中的元素是出于简单和清楚的目的而被示出的,并不一定是按比例绘制的。在附图中,对应于已经描述过的元素的元素可以具有相同的附图标记。在附图中,
图1示意性地示出了电子计算设备的实施例的示例,
图2a示意性地示出了编码加法的示例,
图2b示意性地示出了减少的示例,
图3示意性地示出了针对AES布置的电子计算设备的实施例的示例,
图4示意性地示出了电子计算方法的实施例的示例,
图5a示意性地示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,
图5b示意性地示出了根据实施例的处理器系统的表示,
图6示意性地示出了图表的表示。
图1-3中的附图标记的列表:
100 计算设备
110 第一形式的多个编码元素
112 第一类型的第一形式的编码元素
114 第二类型的第一形式的编码元素
116 第三类型的第一形式的编码元素
120 第二形式的多个编码元素
122 第一类型的第二形式的编码元素
124 第二形式的第二形式的编码元素
126 第三类型的第二形式的编码元素
130 第三形式的多个编码元素
131 第三形式的编码元素
132 第三形式的编码元素
140 存储设备
150 加法单元
160 减少单元
170 输入/输出单元
180 线性算子单元
210 第三形式的编码元素
220 第三形式的编码元素
212、214、222-226 第一形式或第二形式的编码元素
214 第一形式的编码元素
226 第二形式的编码元素
230 第三形式的编码元素
231 第三形式的编码元素
300 AES实施方式
310 轮密钥加运算
320 字节替换运算
330 移位行运算
340 混合列运算
350 轮密钥加运算
具体实施方式
虽然本发明可以有许多不同形式的实施例,但是在附图中示出且将在本文中详细描述一个或多个特定实施例,应当理解,本公开内容被认为是本发明原理的示例,并非旨在将本发明限于所示和所述的特定实施例。
在下文中,为了便于理解,在操作中描述了实施例的元件。然而,很明显,各个元件被布置为执行由它们执行的所述功能。
另外,本发明不限于这些实施例,并且本发明在于本文描述的或在互不相同的从属权利要求中记载的每个新颖特征或特征组合。
图1示意性地示出了电子计算设备100的实施例的示例。电子计算设备100被布置用于阿贝尔群N中的编码加法。例如,阿贝尔群N可以是例如,阿贝尔群N可以是特别地,阿贝尔群N可以是后两个示例对应于现有计算机程序或协议等中出现的自然数据大小,因此使得更容易将其转换为根据实施例的编码方法。
下面我们将展示可以如何编码阿贝尔群的元素,使得在攻击者运行期间交换编码值会至少在某些情况下导致程序出现故障,例如产生无意义的结果。结果,攻击者了解主动攻击(特别是基于在计算设备的运行期间交换中间值的攻击)所使用的编码的范围不太可能产生结果。
在一些实施例中,我们将使用以下数学对象中的一个或多个。
可以定义阿贝尔群M和从M到N的同态满射投射π:M→N。群M是阿贝尔群。可以取M=N。在这种情况下,投射π可以是恒等式。使用较大的群M来表示较小的群N具有若干优点。例如,M可以被选择为使其具有大于N的自同构群的自同构群。结果,可直接用于M的编码比N更多。此外,M可以被选择为简化计算,例如,M可以是群的直接乘积,例如,有限生成的阿贝尔群的基本定理保证总能做到这一点。例如,对于示例可以选择因为84=3·4·7。在实施例中,M的维度(在这种情况下例如为数字n)至少为2,或者至少为3等。
子群H是从M的同构群中选择的。群H被写为两个非平凡子群G和A的乘积。也就是,H=GA。子群被选择为对于A中的任何a和G中的任何g具有属性ga=ag。在实施例中,可以简单地取H=Aut(M)。但是允许针对H的子群变小,这反过来引起针对可能的编码的选择更少。这可能是优点,特别是如果某些运算必须被实施为表查找(例如,非线性运算等)时就是如此。
我们将编写群N和M作为加法群,并且将编写群H、G和A作为乘法群。然而,本领域技术人员清楚的是,编写群的方式是无关紧要的。用乘法编写的群将与用加法编写群的作用相同,仅仅用词稍有不同。在这两种情况下,我们都可以将恒等式编写为e。
群M或者甚至群N可以是地环(ground ring)上的模块,群H、G和A是地环上的矩阵组。例如,M的元素可以被写为向量,具有群的地环的(可能是编码的)元素。例如,如果则M的元素可以被表示为维度n的向量。在这种情况下,M的自同构群可以被写为n×n矩阵的集合。例如,选择有效群A的直接方式是取所有对角线矩阵和/或反对角线矩阵的集合,例如,其中,每个矩阵在其对角线或反对角线上具有相等的元素。通过表示作为线性等式的ga=ag的条件,能够找到G的元素。在实施例中,A是循环群,例如,3阶循环群。在实施例中,A是幂等的。后两个实施例都可以被实施为对角线矩阵和/或反对角线矩阵。
基础X被定义为集合X和映射[]:X→M。该映射[]可以是部分函数,例如对于X中的某些值是未定义的,但构成(composition)π[]:X→N是满射的。以下要求作为基础。集合X具有H动作(action),因此对于H中任何的h1和h2以及X中的任何x,我们有(h1h2)x=h1(h2x),并且ex=x。映射遵从该动作,使得对于X中的任何x以及H中的任何h,有[xh]=[x]h,在该映射中定义了函数。
针对阿贝尔群N定义至少一个基础。实际上,可以使用单个基础来完成有用的混淆编码。然而,也可以使用多个基础。第二基础将被表示为Y,我们将对其映射[]:Y→M使用相同的符号[],因为从背景中可以清楚地看到使用哪个映射。
构建基础的实用方法涉及H的复本或H的多个复本的不相交并集。表示H的多个副本的不相交并集的一种方式是对(i,h),其中,i是表示H的副本的索引,并且h是H的元素。例如,如果使用k个副本,则可以取X={(i,h):1≤i≤k,h∈H}。所需的H动作可以是自然群动作。例如,如果X是H的k个不相交副本,并且h是H的元素,并且x=(i,h1)是X的元素,则动作hx可以是(i,hh1)。构建基础的另一种方式是具有G的多个副本的一个或多个不相交并集或者具有G和/或H的副本的不相交并集。例如,如果G∩A={e}并且A={a1,a2,…,ak},则H=GA=Ga1∪Ga2∪…∪Gak,因此能够使用上述构建。为了避免部分函数,可以在未定义映射[]时将映射[]设置为随机值。在正确的运行中,将不使用未定义映射的值。
定义至少一个减函数W,其是从第一集合X到第二集合Y的函数,该函数W具有类型((X,a,Y,a′,m))。减函数也被称为“盒子”函数。减函数的类型包括第一集合X、第二集合Y、A的元素a、A的元素a’,以及群M的元素m。减函数W对于X中的所有x,A中的所有a和a′,M中的所有m具有属性[xa]+m=[W(x)a′],针对[xa]+m=[W(x)a′]定义映射[]。注意,左手侧的[]是从X到M,而右手侧的[]是从Y到M。在减函数的定义中,允许第一集合X与第二集合Y相同。可以定义多个减函数。注意,一旦针对集合X和Y固定了映射[],就可以从中计算出减函数W。例如,给定X中的x,可以计算M中的元素([xa]+m)a′-1。针对Y的映射反转该元素会给出针对W(x)的值;注意,可能有多个解。减函数W也可以是部分函数,然而,构成π([W()])在N上是满射的。
现在我们能够定义对阿贝尔群N的元素的编码。群元素能够以三种主要方式或形式进行编码。第一形式和第二形式有多种类型。第三形式是第一形式与第二形式的混合体。
在第一形式中,阿贝尔群N的元素在计算设备中被表示为集合X的元素。第一形式也被称为钩子。钩子具有由集合X以及群A的元素b定义的类型。钩子的类型被表示为类型的元素x表示阿贝尔群N的元素π([x]b)。在本文中,集合X是基础。注意,即使针对单个基础X,也能够通过改变A的元素b来定义许多不同类型的钩子。如果允许多个集合,则类型的数量会增加为更多。注意,即使元素x可能出现在程序中,攻击者也不知道N中其表示的值,因为攻击者不知道值b。值b不需要在程序中的任何位置发生。
在第二形式中,阿贝尔群N的元素在计算设备中被表示为群G的元素。第二形式也被称为链接。链接具有由M的元素m和A的元素b′定义的类型。链接的类型被表示为类型的元素g(例如,G的元素g)表示N的元素π(mgb′)。
在第三形式中,阿贝尔群N的元素被编码为编码元素的序列,其中,第三形式的序列包括根据第一形式或第二形式编码的至少两个编码元素。第三形式可以被实施为包括编码元素的形式和或集合。根据第一编码和第二编码对编码的元素进行编码。编码元素的序列表示阿贝尔群N中由序列中的元素表示的阿贝尔群N中的元素的总和。我们可以参考第三形式的编码,例如作为形式和。在实施例中,形式和使得两个编码元素非常直接地相加。能够简单地接合或连结两个加数以获得以第三形式编码的加法。
例如,第一运算数可以被表示为钩子与零个或多个链接的第一序列,钩子和链接的类型可以是不同的。由第一运算数表示的N的元素是由第一序列中的钩子和链接表示的N的元素的总和。第二运算数被表示为至少一个链接的第二序列。第二序列中的链接类型可以是不同的。由第二运算数表示的N的元素是由第二序列中的链接表示的N的元素的总和。第一运算数与第二运算数的总和由第三序列表示,所述第三序列包括第一序列的钩子和零个或多个链接以及第二序列的链接。
使用减函数能够减少一些钩子和链接的对。然而,并非所有钩子和链接的对都是可减少的,并且并非所有可减少的对都需要通过相同的减函数来减少。通过利用类型的钩子W(xg-1)g替换第三序列中的类型的钩子x和类型的钩子g,将减少步骤应用于第三序列。这需要类型(X,a,Y,a’,m)的减函数W。如果攻击者交换数据,则切换的数据元素不再是针对特定减函数的正确类型。结果,程序将产生未定义的值
可以在数学上验证将减少运算应用于第三形式元素的结果获得了表示相同值的第一形式或第三形式的新编码元素。
因此,N的元素可以根据第一形式或第二形式进行编码,每个形式为不同的类型,或者作为第一形式和/或第二形式编码元素中的一个或多个的序列。如果减少单元被布置为具有(X,a,Y,a′,m)类型的减函数W,则由集合X和群A的元素ab定义的第一形式的类型的编码元素与由群M的元素m和群A的元素b定义的第二形式的类型的编码元素是兼容的。在这种情况下,钩子和链接能够被减少到新的钩子,例如被新的钩子所替换。将链接转换为钩子能够通过使表示N的恒等式的钩子相加来完成。这种钩子能够被预先计算。使两个钩子相加更为复杂。例如,这能够通过具有将钩子转换为链接的查找表或者通过不包括钩子但仅包括链接的第三形式编码来完成。
在实施例中,各种集合和群的值,特别是基础X的元素或群G的元素可以以传统的编码形式来表示。例如,它们可以被编码为较大的群的集合中的索引。例如,为了运行上述减少,可以例如使用查找表来计算值xg-1,该查找表采用x的表示,例如,x的传统编码,例如,集合X中的索引。其结果可以被呈现到针对W的查找表。最后,可以例如使用第三查找表来执行与g的乘法。注意,第一查找表和第二查找表或所有三个表等可以被组合成单个表。例如,取x和g的输入表示的单个表。注意,索引表示可以被随机化;索引的值与被表示的X或G的元素之间不需要任何逻辑关系。例如,随机排列可以应用于X和/或G,在此之后,元素被表示为排列集合或排列群中的索引。
回到图1。计算设备1包括存储设备130,存储设备130被配置为存储阿贝尔群N的编码元素。该存储设备可以包括根据三种形式中的任一种编码的元素。
如图1所示,存储设备140包括第一形式的三个元素,也被称为钩子。例如,钩子112和钩子114可以具有相同的类型但是钩子116可以具有不同的类型,例如,它们具有Y这一不同基础和/或具有A的不同元素c。
如图2所示,存储设备140包括第二形式的三个元素,也被称为链接。例如,链接122和链接124可以属于类型但是链接126可以具有不同的类型,例如,类型和/或等。
如图2所示,存储设备140包括第三形式的三个元素。第三形式的元素将钩子和/或多个链接串在一起。由于针对两个钩子的减少比针对钩子和链接的减少更为复杂,因此优选的是,第三形式编码元素包括至多一个钩子。例如,编码元素131可以是钩子与链接的总和;例如,不兼容的钩子和链接的总和。例如,编码元素132可以是例如不同类型的链接与链接的总和。取决于应用程序,计算设备可以允许第三形式包括两个或更多个钩子。例如,如果需要使来自不同来源的数据相加,则可能难以避免在单个第三形式编码元素中具有两个钩子。另一方面,如果编码计算完全在单个控制下发生,例如由编译器或人类编码器设计,则能够避免使第三形式编码元素具有两个钩子。例如,在实施例中,大多数编码元素包括仅由链接组成的第二形式或第三形式编码;只有这些编码的仅链接元素被相加到的累加器包括钩子。在这种情况下,减少仅在累加器上完成。注意,对于加法,元素的类型或形式无关紧要,因为加法仅仅是加数的并集,例如,连结。
计算设备100还包括加法单元150,加法单元150被布置为使多个编码加数相加。例如,加法单元150可以被布置为使两个加数(例如,针对加法的输入)相加,并且/或者加法单元150可以被布置为使多于两个元素相加。有趣的是,在该系统中加法令人惊讶地简单。要使两个数字相加,只需创建包括加数的编码元素的第三形式元素即可。由于第三形式元素被定义为表示在阿贝尔群N中包括的编码元素的总和,因此加数的并集自动表示加数(例如,要进行相加的值)的总和。由于群N是阿贝尔群,因此列出第三形式的要素的顺序是无关紧要的;列出第三形式元素(例如,第一或第二形式元素)的要素的任何顺序表示相同的加法结果。
例如,加法单元150可以被布置为从存储设备140中检索第一加数和第二加数并将第三形式的加法结果写入存储设备140。例如,第三形式可以被实施为链接列表或数组等。例如,在前者的情况下,加法结果可能不需要复制加数的要素,因为它可能足以创建针对加法的要素(例如,加数中包括的第一形式或第二形式编码元素)的指针。尽管如此,如果使用指针,也可以制作输入要素的副本。
图2a示意性地图示了相加到编码元素的方式。图2a示出了第三形式的两个编码元素:元素210和220。每个元素包括第一形式或第二形式的多个编码元素。例如,第三形式元素210包括编码元素212和214。例如,元素214可以是钩子,而元素212可以是链接。例如,第三形式元素220包括编码元素222、224和226;例如,这些元素可能都是链接。并不禁止以这种方式使钩子彼此相加;这种加法机制非常灵活。然而,减少两个钩子可能需要额外的基础结构,例如,将两个钩子的组合或一些类型的至少两个钩子映射到包括至多一个钩子的第一形式/第二形式或第三形式元素的表。例如,仅当第一钩子属于特定的第一类型并且第二钩子属于特定的第二类型时,才可以包括第一钩子加第二钩子的加法表。一个或几个这样的表已经显著扩大了相加元素的范围。特别是考虑到利用减少系统能够改变钩子的类型,例如通过使已知值和类型(例如表示零)的链接相加来改变钩子的类型。
图2a还示出了加数210与加数220的相加,即,加法结果230。结果230也是第三形式元素并且包括加数210和220中的元素。
回到图1。计算设备100还包括减少单元160,减少单元160被布置为减少第三形式的编码元素。如果不减少,加法结果会变得越来越长,但是减少会缩短第三形式表示。减少单元160被布置为在第三形式编码元素的编码元素的序列中利用新的钩子替换钩子和链接,从而替换原始的钩子和链接。结果,表示变得短了一个要素。此外,第三形式元素中的钩子的数量不会由于减少而改变。特别地,如果所有元素都包括最大数量的钩子,特别是至多一个钩子,则通过减少运算来遵从该不变量。有趣的是,相同的减少运算并不一定适用于任何钩子和链接组合,而是减少运算对输入类型提出要求,例如对钩子的类型和链接的类型提出要求。这意味着根据实施例在正在运行的计算机程序中重新排列的数据可能会产生无意义的结果,因为将尝试利用不兼容的类型进行减少。
减少单元160被提供有减函数W。例如,减少单元160可以包括减函数W单元。例如,减少单元160可以包括实施减函数的计算机程序代码。例如,减函数W可以被实施为查找表。
减函数W是从第一集合X到第二集合Y的函数,并且具有由第一集合X、第二集合Y、A中的元素a、A中的元素a′以及群M中的元素m定义的类型((X,a,Y,a′,m))。减函数的类型决定了它能够减少哪些钩子-链接组合以及产生的钩子的类型。该函数W对于X中的所有x,A中的所有a和a′,M中的所有m还具有属性[xa]+m=[W(x)a′],针对[xa]+m=[W(x)a′]定义映射[]。
减少单元160被布置为获得:
-由集合X和群A的元素ab定义的类型的第一形式的第一编码元素x,以及
-由群M的元素m和群A的元素b定义的类型的第二形式的第二编码元素g,
换句话说,定义钩子的类型的A的元素是定义链接的类型的A的元素的a倍。
减少单元160利用第一形式的编码元素(例如,钩子)、由第二集合Y和元素a′与元素b的乘积(a′b)定义的类型的W(xg-1)g替换作为输入而获得的钩子和链接。
计算单元100可以被布置为在加法单元150的每次加法之后激活减少单元160。这将使第三形式元素尽可能短。可以多次应用减少直到不可能进一步减少。替代地,计算单元100也可以被布置为推迟减少,例如在已经执行了多次(预定数量的)加法之后才进行减少。例如,如果数量已经超过某个要素(例如,钩子和/或链接)的数量,则计算设备100可以应用减少。例如,减少可以应用于具有4个或更多个钩子和/或链接的任何第三形式元素。数字4可以是2或更多,3或更多等。
有趣的是,在实施例中,存储设备140可以存储第三形式的第一加数,第三形式的第一加数包括第一形式的编码元素和第二形式的编码元素,第一形式的编码元素和第二形式的编码元素是不兼容的,例如,未能向第一形式的编码元素和第二形式的编码元素应用减少单元160的减函数。因此,该第二形式不能进一步减少。存储设备140还可以包括第二加数,该第二加数包括与第一加数中的第一形式的编码元素兼容的第二形式的编码元素。在这些第一加数和第二加数相加之后,创建了包括兼容的钩子和链接的第三形式。减少单元能够应用于第一加数和第二加数的总和,并且可以创建较短的第三形式。如果攻击者利用在程序中其他位置找到的数字恶意切换第一加数或第二加数,那么第一加数或第二加数可能是错误的类型。由此产生的加法将产生假结果。替代地,如果切换引起对未定义的值的调用,则这可以通过替换随机值(例如,预定值)或甚至可能通过产生其他未定义的行为(例如,错误消息、崩溃等)来解决。替换随机值或某个预定的非随机值等的优点在于攻击者不接收关于切换是否非法的反馈。
图2b示意性地图示了执行减少过程的一种方式。图2b示出了从关于图2a给出的示例获得的加法结果230。加法结果230包括钩子214和兼容的链接226。减少过程利用新的钩子242替换钩子214和链接226。减少结果231包括新的钩子242以及链接212、222和224,它们也存在于加法结果230中。在减少结果231中不存在钩子214和链接226。
钩子和链的加法只是两个运算数的正式加法,从而形成更长的链。减少步骤应用于具有至少一个链接的钩子并将钩子与该链接组合。减少路径是能够减少钩子与若干链接的精确顺序,例如考虑链H+L1+L2+L3。减少路径可以是(1,3,2)并且另一减少路径可以是(3,1,2)。这些路径意味着运算的顺序将是:
-减少路径(1,3,2)
1.H+L1→H'
2.H'+L3→H”
3.H”+L2→H”'
-减少路径(3,1,2)
1.H+L3→K'
2.K'+L1→K”
3.K”+L2→K”'
第一种情况的结果是H”',第二种情况的结果是K”'。这两者都表示M中的相同元素,但是可能具有不同类型,因为减少路径可以遵循不同的轨迹。通常,如果存在许多类型,则减少路径不太可能产生唯一结果,即使它们在类型中具有相同的起源和结束。
注意,减少路径在某些情况下可以是部分减少,例如,不完全减少到第一形式元素,这意味着结果不会消除所有链接,因为链接中的仅一些链接用于进一步的减少或运算。
有趣的是,在程序中不需要表示M或A的元素;这方面非常期望的。M或A的元素可以被视为虚拟或“幻像”元素,仅在诸如计算机程序的实施方式中隐式使用或者在显示结果正确的正确性证明中使用,但是M或A的元素从未出现在程序中。该程序具有X的元素和G的元素。这些元素也可以以各种方式(例如,传统方式)进行编码。
通过设计,并非所有可能的加法都能够减少。即使可以减少,也需要精确顺序以确保可以减少。在一些情况下,我们可能有兴趣将链接和/或钩子变换为表示相同值但属于不同类型的其他链接和/或钩子。这将被称为跳跃。假设我们具有G中的元素g1,…,gk以及a1,…,ak,使得g1a1+…+gkak=IdM,例如,后一元素是仅具有在主对角线上的元素的单元矩阵。给定具有值mga的链接,我们现在能够计算mga=mga·IdM=mga(g1a1+…+gkak)=mgg1a1a+…+mggkaka。后者能够被视为链接的总和,但是具有不同类型。以这种方式,单个链接被扩展为多个(例如,至少两个)新的但具有不同类型的链接。新的链接可以与其他钩子组合。例如,可以利用该功能扩展减少单元160,或者可以引入被布置用于该扩展的新的扩展单元。
回到图1。计算设备100可以包括任选的输入单元和/或任选的输出单元。在图1所示的实施例中,示出了组合的输入/输出单元170。在实施例中,可以使用单独的输入单元和输出单元。
例如,I/O单元170可以被布置为具有普通输入,该普通输入被布置为接收阿贝尔群N的元素并且例如使用查找表将接收到的元素转换成第一形式、第二形式或第三形式的编码元素。例如,I/O单元170可以被布置为具有普通输出,该普通输出被布置为接收第一形式、第二形式或第三形式的编码元素并且将接收到的元素转换为阿贝尔群N的未编码元素。在该背景中,未编码的单元没有根据第一形式、第二形式或第三形式进行编码。可以根据外部编码方案很好地编码输入和输出。
例如,输入和/或输出可以以普通形式(例如,以群N的一些规范表示,例如,作为以模数为模的整数,例如,作为向量,例如,以逐要素模数为模等)接收或产生群N的一个或多个元素。例如,输入和/或输出可以以编码形式接收或产生群N的一个或多个元素,例如作为群N中的索引,特别是在利用一些编码排列(例如,群N的编码)已经对群N进行排列之后进行上述操作。所使用的编码可以包括某种形式的盐(例如,状态),以避免群N的相等元素总是对应于相同的编码。
针对输入或输出的编码可以通过查找表方便地完成。例如,在输入处,N的输入元素可以被映射到同一元素的某种形式、第一形式、第二形式或第三形式表示。可能有多种方式来表示相同的元素。在输出处,表可以将第一形式、第二形式或第三形式元素映射到输出。注意,并不总是需要这样,例如,如果存储数据以供以后由同一计算设备使用,则第一形式/第二形式/第三形式编码能够保持完整。为了保持较小的表,优选在转换元素以进行输出之前应用减少。
计算设备100可以任选地包括线性算子单元180。线性算子单元180被布置为将线性算子应用于编码元素。应用于第三形式编码元素的线性算子等于分别应用于第三形式编码元素中的钩子和链接的线性算子。例如,线性算子(例如,f:M→M,或者从N到N)具有属性f(L1+L2+...+Lt)=f(L1)+f(L2)+...+f(Lt),因此,只要具有给出链接(例如,G的元素)的表,召回由G的元素表示的链接,就可以给出该链接上的f的值作为链接的总和。典型的示例是由G→GxGxG给出的线性映射。通常G小于M并且这些表与从X到其他集合的表相比不会特别大,特别是如果由G的多个副本给出X,则表G→Gt的大小将为t|G|log2(|G|),但是表Gt→Gr的大小将为r|G|t log2(|G|),由于指数t,它将大得多。
在实施例中,线性算子单元180被限制为将线性算子应用于链接,例如应用于第二形式的元素或第三形式的仅链接元素。当我们必须应用线性算子时,最好使用链接。仅当我们必须进行减少时才优选使用钩子。例如,在AES中,我们可以使用给定钩子给出密码排列盒的输出的密码排列盒作为链接的集合,然后我们将做出由混合列表示的线性算子并且生成链接的长列表,该链接的长列表将利用由在轮次结束时的密钥提供的钩子和额外的链接来减少。
在实施例中,基础X是阿贝尔群X,使得群H是自同构群Aut(X)和自同构群Aut(M)的共同子群。在这种情况下,基础X具有另外的加法结构。例如,可以使用阿贝尔群X,使得H是Aut(X)和Aut(M)的共同子群。X的加法结构不需要用于运算,但是以紧凑的方式表示X的元素可能相当方便。例如,假设表示H作为X的自同构的矩阵能够完全不同于M中的矩阵,甚至具有不同的维度和基本字段。对于Aut(X)中的任何自同构f,使用由h→fhf-1给出的同构H→fHf-1能够容易地改变这些矩阵。以这种方式,我们具有紧凑的表示并且使表的大小减小了很多,因为许多表,实际上除了盒算子之外的所有表都能够被矩阵与向量之间的实际运算所替代。为了提高安全性,在这种情况下重要的是映射[]不是线性的,特别是映射[]不应当保留加法,因为如果映射[]保留了加法,则可能用较少的努力就能分析系统。
当在那里进行减少时,有可能在计算设备100中(例如在存储设备140中)保持关于各种钩子和链接的类型的管理。在这种情况下,减少单元160可以选择收集兼容的相同的第三形式的钩子和链接并且例如通过验证钩子和链接具有兼容类型的管理来减少这些钩子和链接。然而,优选的是,类型信息仅隐含在计算设备中。例如,编译器或甚至人类实施者能够跟踪变量的类型并对这些变量应用正确的减函数。以这种方式,攻击者无法确定变量的类型。通常,事先知道哪些变量将被添加到哪些变量中。编译器能够跟踪这些变量的类型。如果需要,编译器能够首先为计算机代码的部分计算静态单一分配(SSA)图。通过展开循环,可以增大可以为其创建单个SSA的计算机代码的部分的大小。在SSA图中,编译器能够为变量分配类型并在编译时确定哪些变量将是兼容的,哪些变量将是不兼容的。例如,编译器可以针对变量中的不兼容类型进行优化,偶尔会有减少的机会。
部分加法可能是常量的加法;常量的类型可以由编译器确定。可以根据需要以第一/第二/第三形式编码常数以例如优化不兼容的元素。
减少单元、加法单元、线性算子单元和/或I/O单元可以例如由处理器电路实施为实施相应单元的多个计算机程序指令和/或实施该单元的电路和/或专用硬件和软件指令的混合体。
通常,查找表也可以被实施为查找表网络以例如将大输入分解成多个较小的表。
在各种实施例中,针对输入和/或输出单元的输入和输出接口可以选自各种替代方案。例如,输入和/或输出接口可以是到局域网或广域网(例如,互联网)的网络接口、到内部或外部数据存储设备的存储接口、键盘等。
存储设备140可以被实施为电子存储器(例如,闪速存储器)或磁性存储设备(例如,硬盘)等。存储设备140可以包括一起构成存储设备140的多个分立的存储器。存储设备140也可以是临时存储器(例如,RAM)。在临时存储设备140的情况下,存储设备140包含一些在使用前获得编码元素(例如通过从例如通过任选的网络连接(未示出)的输入获得编码元素等)的单元。
通常,设备100包括微处理器(未单独示出),该微处理器运行被存储在设备100处的适当软件;例如,该软件可能已被下载和/或被存储在对应的存储器(例如,诸如RAM的易失性存储器或诸如闪速存储器的非易失性存储器(未单独示出))中。替代地,设备100可以全部或部分地以可编程逻辑单元来实施,例如被实施为现场可编程门阵列(FPGA)。设备100可以全部或部分地被实施为所谓的专用集成电路(ASIC),即,为其特定用途定制的集成电路(IC)。例如,电路可以被实施在CMOS中,例如使用诸如Verilog、VHDL等的硬件描述语言来实施。
在实施例中,设备100包括存储电路、加法电路、减少电路。设备100可以包括额外的电路(例如,线性算子电路)以及输入和/或输出电路。电路实施本文描述的对应单元。电路可以是处理器电路和存储电路,处理器电路运行在存储电路中以电子方式表示的指令。电路也可以是FPGA、ASIC等。
处理器电路可以以分布式方式实施,例如被实施为多个子处理器电路。存储设备可以分布在多个分布式子存储设备上。部分或全部存储设备可以是电子存储器、磁性存储器等。例如,存储设备可以具有易失性部分和非易失性部分。部分存储设备可以是只读的。
图3示意性地示出了被布置用于分组密码AES的电子计算设备300的实施例的示例。计算设备300可以是AES分组密码的所谓的白盒实施方式。这意味着即使攻击者被赋予对实施分组密码的程序的完全低级访问权限,也可能无法导出用于执行加密运算和/或解密运算的密码密钥。
计算设备300包括实施以下运算的单元。可以使用图1所示的单元来实施这些运算。例如,设备300可以是根据图1的实施例,但具有额外的单元,例如,实施下面给出的运算的电路和/或编程单元。AES实施方式可以符合2001年11月26日的联邦信息处理标准出版物197“Announcing the ADVANCED ENCRYPTION STANDARD(AES)”,通过引用将其并入本文。
图3所示的AES实施方式300包括轮密钥加运算310、字节替换运算320、移位行运算330、混合列运算340、轮密钥加运算350。这些运算在如Fips197中描述的状态下运行。状态可以是根据实施例编码的字节的序列。例如,状态可以是基于每个字节进行编码的,其中,每个字节包括至多一个钩子。注意,完整的AES包含更多这些运算,但是这些运算完全相似并且在图3中仅被进一步示为省略号。
注意,该AES实施方式是完全循环展开的。轮密钥可以在程序中被固定并被硬编码。也可以通过输入来接收轮密钥。例如,对于每个编码字节,AES实施方式中的状态可以仅包括链接,而轮密钥包括钩子和链接两者。这允许添加和减少状态和轮密钥。字节替换运算320可以被实施为查找表。字节替换运算320也可以用于消除钩子,例如,表可以接收钩子作为输入并产生一个或多个链接作为输出。例如,AES 300可以被布置为使得在替换字节运算320之前减少将状态的每个字节完全减少到仅一个钩子。这将减少针对运算320的表的大小。可以在编码字节上实施移位行运算330而没有问题。混合列运算340是线性的并且可以使用如上所述的线性算子单元来实施。
下面给出了选定实施例的详细示例。
我们将考虑7个元素的阿贝尔群N,N=Z7。阿贝尔群M将是,并且映射π:M→N将是π(x,y)=2x+3y。M的元素将由有序对(r,s)表示,其中,r,s∈Z7。阿贝尔群M是向量空间,因此其自同构群的元素能够用方阵表示。H的元素以及因此A和G的元素能够被视为矩阵。
我们将使用将由矩阵生成的3阶群A和将由元素生成的群G。f的阶数是2并且g的阶数是6。这两个矩阵进行通勤并且也与a通勤,因此群H=GA=AG是阿贝尔群。G的元素的数量为12并且H的元素的数量为36,因为G∩A是恒等式。
G的元素能够被写为gifj,其中,i∈{0,1,2,3,4,5}并且j∈{0,1}。我们能够简化符号而将它们写为<i,j>。群G与Z6×Z2同构,该同构由<i,j>=gifj给出。
给定G中的两个元素<i,j>和<r,s>,它们被表示为gifj和grfs。如果我们使它们相乘,gifjgrfs=gi+rfj+s,这是因为矩阵f和g通勤。因此,<i,j>和<r,s>的运算恰好是<i+r,j+s>。这个规则让我们在G中的运算中使用加法符号,因为它们恰好是指数并且我们将写出<i,j>+<r,s>=<i+r,j+s>。元素<i,j>的逆运算数(gifj)-1=g-if-j恰好是<-i,-j>。
虽然没有必要让这些信息进行计算,但是我们将利用以这种符号,以乘法符号并且还利用矩阵,使用G的所有值来编写表,以便在所有可能的表示之间有清晰的对应关系。
M的G轨道的数量是8。它们是:只有1个元素的0的轨道,具有2个元素的3个轨道、具有12个元素的其他三个轨道,以及具有6个元素的1个轨道。具有3个元素的轨道如下:
C={(5,1),(2,6)}
Ca={(3,2),(4,5)}
Ca2={(6,4),(1,3)}
具有12个元素的轨道如下:
D={(1,0),(6,5),(2,1),(3,4),(2,3),(0,1),(5,4),(0,6),(4,3),(5,6),(6,0),(1,2)}
Da={(5,3),(4,2),(2,0),(4,6),(0,2),(6,1),(0,5),(1,6),(3,1),(5,0),(2,4),(3,5)}
Da2={(1,4),(4,0),(3,6),(0,4),(5,2),(1,5),(2,5),(6,2),(0,3),(4,1),(6,3),(3,0)}
并且具有6个元素的1个轨道如下:
E=Ea=Ea2={(1,1),(2,2),(4,4),(6,6),(5,5),(3,3)}
在这种情况下,我们将禁止轨道认为是0的轨道。所有其他轨道都将被允许。
我们将选择两个H集合X和Y。正如我们先前提到的,创建集合X和Y的一种方法是创建G的多个副本并得到它们不相交并集。我们将在这两种情况下都使用7个G的副本。X和Y的元素将由<t:i,j>表示,其中,t是0与7之间的索引,其表示我们正在使用G的哪个副本,并且值i,j将表示从该折叠中获取的G的元素。映射[]:X→M和[]:Y→M将通过选择M中的元素x0,x1,…,x6并且y0,y1,…,y6∈M并且给出以下值来生成:
将在每个允许的轨道上选择一个元素xt和yt,以便能够表示所有允许的元素。
在X的情况下,这些元素将是x0=(5,5)∈E,x1=(3,1)∈Da,x2=(5,1)∈C,x3=(4,5)∈Ca,x4=(1,3)∈Ca2,x5=(4,1)∈Da2和x6=(6,0)∈D。在Y的情况下,这些元素将是y0=(0,3)∈Da2,y1=(1,3)∈Ca2,y2=(3,5)∈Da,y3=(3,4)∈D,y4=(4,4)∈E,y5=(2,6)∈C和y6=(3,2)∈Ca。
在这种情况下,没有必要针对[]使用部分映射,因为我们没有针对0的轨道的表示,因此禁止元素不在X或Y中。映射[]:X→M和[]:Y→M并不是满射的,因为0不在它们的图像中。但是我们有N中的0的表示,因为π:M→N在内核中有非零元素,例如,我们能够用对(2,1)来表示N中的元素0,因为π(2,1)=2·2+3·1=7≡0∈Z7。使用元素(2,1)在轨道D中的事实,我们能够利用G中的对应元素,使用x3或y2来表示X和Y中的该元素。
为了处理这些禁止元素,我们将考虑由ι(x,y)=y给出的映射ι:M→Z7。我们将只接受生成值的映射的表示或组合,使得在这些映射上应用的t不同于0。t是线性的事实让我们控制部分和上的值。
符号<t:i,j>对于表示X和Y的元素与G的元素之间的运算非常有用,因为我们有(xtgifj)(grfs)=xtgi+rfj+s并且使用加法符号,这在两种情况中都能够被写为<t:i,j>+<r,s>=<t:i+r,j+s>,即使它们表示针对X或Y的不同元素也是如此。
这些运算遵循由G中的运算给出的规则,因此在Z6中计算i+r,并且在Z2中计算j+s。
我们将定义两个盒算子W0和W1。算子W0将是类型(Xa0,Ya1,m0),并且W1将是类型(Ya1,Xa1,m1),其中,值m0=(2,1)并且m1=(6,2)。这些算子将生成映射W0:X→Y和W1:Y→X。这些映射将取用X或Y中的元素<t:i,j>并且以相同的表示给出输出。我们将把值t放在列中并且将把值i、j放在行中。利用这种符号,针对W0的表为:
并且针对W1的表为:
算子W0和W1是部分映射并且没有针对所有元素进行定义。我们在结果应当为0时写出“未定义”这个值,但是该元素处于禁止轨道上并且我们甚至都没有针对它的表示。在计算中,这些条目将不被访问,如果我们希望具有完整的表,我们能够在计算机程序中放入任何值。这些值仅在攻击者插入某个代码的情况下使用,并且在这种情况下想法是传播错误,因此可以接受伪值。
由与g和f通勤的矩阵a生成的群A是3阶群。它的元素是a0,a1和a2。考虑到我们有两个基础和A中的三个元素,因此钩子有六种类型,这六种类型如下:H(X,a0),H(X,a1),H(X,a2),H(Y,a0),H(Y,a1),H(Y,a2)。
我们将使用两个值m0和m1,因此我们还有六种类型的链接:L(m0,a0),L(m0,a1),L(m0,a2),L(m1,a0),L(m1,a1),L(m1,a2)。
算子W0有类型(Xa0,Ya1,m0),并且算子W1具有类型(Ya1,Xa1,m1),因此我们有六种可能的减少,三种可能的减少由W0给出:
R0:H(X,a0)×L(m0,a0)→H(Y,a1)
R1:H(X,a1)×L(m0,a1)→H(Y,a2)
R2:H(X,a2)×L(m0,a2)→H(Y,a0)
并且其他三种可能的减少由W1给出:
T0:H(Y,a1)×L(m1,a0)→H(X,a1)
T1:H(Y,a2)×L(m1,a1)→H(X,a2)
T2:H(Y,a0)×L(m1,a2)→H(X,a0)
在图6的图表中,我们能够看到六种类型的钩子和六种类型的链接及其减少,如果它们具有正确的类型,我们可以使钩子与链接相加。在混淆算法中使用它的方法如下。假设我们有排列S:N→N和必须针对轮次i=0,1,…,r应用S并添加轮密钥Ki的算法。第一轮只添加了密钥K0
这个算法的实施方式可能是这样的:
·输入将是表,使得对于任何可能的n∈N,我们选择元素和I(n)∈H(Y,a0),使得
·对于密钥K0,我们选择值以及使得
·对于密钥Ki(i=1,…,r-1),我们选择值使得
·对于最后一个密钥Kr,我们选择值以及使得
·对于排列,我们将有表,使得对于任何J∈H(Y,a2),我们有元素H(J)∈H(X,a0)和L2(J)∈L(m1,a0),使得π([H(J)])+π(L2(J))=S(π([H]))。
我们可能必须定义输入表,并且对于所有元素n∈N,我们必须选择满足给定条件的I(n)∈H(Y,a0)和
对于密钥K0,我们对于所有可能的密钥值可以有两种可能的链路选择,一种可能的选择是:
我们将在第一轮中举例说明计算。假设我们有初始值n=3,并且我们必须添加密钥K0=2。查看表,这些元素由以下元素表示:
·初始值n=3将由以下项给出:
-I(3)=<3:2,1>,H(Y,a0)类型的钩子,
L(m1,a0)类型的链接。
·密钥K0=2将由三个链接给出:
L(m1,a2)类型的链接,
L(m0,a0)类型的链接,
L(m0,a1)类型的链接。
这些元素的相加将是但按此顺序元素不能相加,因为这些元素不在正确的位置中。我们需要减少路径来告诉我们为了减少而必须使用的精确顺序。在这个特定示例中,只有一种可能性,但一般来说我们可以有超过一种选择。该顺序将是按此顺序,我们必须使初始值的部分与密钥的部分相加,添加初始值的第二部分,并且最后添加密钥的最后部分。
运算如下:
1、我们必须添加钩子I(3)=<3:2,1>和链接应用的减少将是利用盒算子W1的T2。减少始终有三个步骤,利用通过链接表示的群的反转进行运算,应用盒算子,最后利用通过链接表示的群进行返回运算。
(a)<3:2-4,1-1>=<3:4,0>
(b)W1(<3:4,0>)=<3:1,0>
(c)<3:1+4,0+1>=<3:5,1>
2、第一运算的输出<3:5,1>,它是类型H(X,a0)的钩子,其将使用由盒算子W0引起的减少R0,利用链接进行运算。
(a)<3:5-0,1-1>=<3:5,0>
(b)W0(<3:5,0>)=<3:1,0>
(c)<3:1+0,0+1>=<3:1,1>
3、该输出<3:1,1>,即,类型H(Y,a1)的钩子将使用由盒算子W1引起的减少T0,利用链接进行运算。
(a)<3:1-4,1-0>=<3:3,1>
(b)W1(<3:3,1>)=<5:4,1>
(c)<4:4+4,1+0>=<5:2,1>
4、该输出<5:2,1>,即,类型H(X,a1)的钩子将使用由盒算子W0引起的减少R1,利用链接进行运算。
(a)<5:2-1,1-1>=<5:1,0>
(b)W0(<5:1,0>)=<3:0,0>
(c)<3:0+1,0+1>=<3:1,1>
5、这一轮的最终结果将是<3:1,1>,这是类型H(Y,a2)的钩子。如果我们将[]和π算子应用于该元素,我们会精确获得5,其为初始值2与密钥3的加法。
π([<3:1,1>])=π(y3g1f1a2)=π(2,5)=2·2+3·5=19=5(mod 7)
图4示意性地示出了电子计算方法400的实施例的示例。电子计算方法400被布置用于阿贝尔群N中的编码加法,方法400包括:
-存储(410)所述阿贝尔群N的编码元素,所述存储包括存储以下列形式编码的元素:
-第一形式(110),其具有一种或多种类型,一种类型的所述第一形式由集合X、群A的元素b以及映射[]:X→M来定义,其中,所述集合X的元素x表示所述阿贝尔群N的元素π([x]b),其中,
-π是从阿贝尔群M到所述群N的同态满射投射π:M→N,
-所述群A和群G一起分解自同构群Aut(M)的子群H,其中,H=GA,所述群A和所述群G对于A中的任何a和G中的任何g具有属性ga=ag,所述群H具有对所述集合X的动作,
-所述映射[]是至少部分映射[]:X→M,使得对于X中的任何x和H中的任何h有[xh]=[x]h,在[]:X→M中定义了所述映射,并且其中,构成π[]:X→N是满射的,
-第二形式(120),其具有至少一种类型,一种类型的所述第二形式由所述群M的元素m和所述群A的元素b′来定义,其中,所述群G的元素g表示阿贝尔群N的元素π(mgb′),
-第三形式(130),阿贝尔群N的元素被编码为编码元素的序列,其中,以所述第三形式的所述序列包括根据所述第一形式或所述第二形式编码的至少两个编码元素,编码元素的所述序列表示所述阿贝尔群N中由所述序列中的元素表示的所述阿贝尔群N中的元素的总和,
-使多个编码加数相加(420),其中,加法单元被配置为形成包括所述多个编码加数的至少编码部分的所述第三形式的编码元素,以及
-通过以下操作来减少(430)所述第三形式的编码元素:在所述编码元素的所述序列中利用所述第一形式W(xg-1)g以及由第二集合Y和元素a′与所述元素b的乘积(a′b)定义的类型的编码元素替换由所述集合X和所述群A的元素ab定义的类型的所述第一形式的第一编码元素x以及由所述群M的元素m和所述群A的元素b定义的类型的所述第二形式的第二编码元素g,其中,
-减少单元被提供有减函数W,所述减函数W是从第一集合X到第二集合Y的函数,所述函数W具有由第一集合X、第二集合Y、A的所述元素a、A的所述元素a’,以及所述群M的所述元素m定义的类型((X,a,Y,a′,m)),所述函数W对于X中的所有x,A中的所有a和a′,M中的所有m有[xa]+m=[W(x)a′],针对[xa]+m=[W(x)a′]定义了所述映射[]。
如本领域技术人员显而易见的,该方法可以以许多不同的方式来运行。例如,能够改变步骤的顺序或者可以并行执行一些步骤。此外,在步骤之间可以插入其他方法步骤。插入的步骤可以表示例如本文所述的方法的改进,或者也可以与该方法无关。例如,存储步骤、添加步骤和减少步骤可以至少部分地并行运行。此外,在下一步骤开始之前,给定步骤可能尚未完全完成。
可以使用软件来运行根据本发明的方法,该软件包括用于使处理器系统执行方法400的指令。软件可以仅包括系统的特定子实体所采取的那些步骤。软件可以被存储在合适的存储介质(例如,硬盘、软盘、存储器、光盘等)中。软件可以作为信号沿着有线网络、无线网络或者使用数据网络(例如,互联网)进行发送。软件可供下载和/或在服务器上远程使用。可以使用比特流来运行根据本发明的方法,该比特流被布置为配置可编程逻辑单元(例如,现场可编程门阵列(FPGA))以执行该方法。
应当理解,本发明还扩展到计算机程序,特别是适于将本发明付诸实践的载体上或载体中的计算机程序。程序可以是源代码、目标代码、代码中间源以及诸如部分编译形式的目标代码的形式,或者是适合用于在根据本发明的方法的实施方式中使用的任何其他形式。涉及计算机程序产品的实施例包括与所述方法中的至少一个的处理步骤中的每个相对应的计算机可执行指令。这些指令可以被细分成子例程并且/或者被存储在可以静态或动态链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与所述系统和/或产品中的至少一个的单元中的每个相对应的计算机可执行指令。
图5a示出了具有包括计算机程序1020的可写部分1010的计算机可读介质1000,计算机程序1020包括用于使处理器系统执行根据实施例的计算方法的指令。计算机程序1020可以在计算机可读介质1000上被实施为物理标记或者借助于计算机可读介质1000的磁化来实施。然而,也可以想到任何其他合适的实施例。此外,应当理解,虽然计算机可读介质1000在这里被示为光盘,但是计算机可读介质1000可以是任何合适的计算机可读介质(例如,硬盘、固态存储器、闪速存储器等)并且可以是不可记录的或可记录的。计算机程序1020包括用于使处理器系统执行所述计算方法的指令。
图5b示出了根据实施例的处理器系统1140的示意图。该处理器系统包括一个或多个集成电路1110。图5b示意性地示出了一个或多个集成电路1110的架构。电路1110包括处理单元1120,例如,CPU,其用于运行计算机程序要素以运行根据实施例的方法和/或实施其模块或单元。电路1110包括用于存储编程代码、数据等的存储器1122。存储器1122的部分可以是只读的。电路1110可以包括通信元件1126,例如,天线、连接器或这两者等。电路1110可以包括专用集成电路1124以用于执行在该方法中定义的部分或全部处理。处理器1120、存储器1122、专用IC 1124和通信元件1126可以经由互连1130(例如,总线)彼此连接。处理器系统1110可以被布置用于分别使用天线和/或连接器进行接触式和/或非接触式通信。
例如,在实施例中,计算设备可以包括处理器电路和存储器电路,处理器被布置为运行被存储在存储器电路中的软件。例如,处理器电路可以是Intel Core i7处理器、ARMCortex-R8等。存储器电路可以是ROM电路或非易失性存储器(例如,闪速存储器)。存储器电路可以是易失性存储器(例如,SRAM存储器)。在后一种情况下,验证设备可以包括非易失性软件接口(例如,硬盘驱动器、网络接口等),其被布置用于提供软件。软件包括:存储指令、加法指令和减少指令。软件还可以包括输入和/或输出指令和/或线性算子指令。这些指令实施本文描述的对应单元的实施例。
应当注意,以上提及的实施例图示而非限制本发明,并且本领域技术人员将能够设计许多备选实施例,而不偏离权利要求的范围。
在权利要求中,置于括号内的任何附图标记均不应被解读为对权利要求的限制。动词“包括”及其词性变化的使用不排除权利要求中记载的那些以外的其他元件或步骤的存在。元件前的词语“一”或“一个”不排除多个这样的元件的存在。本发明可以借助于包括若干不同元件的硬件,以及借助于被适当编程的计算机来实施。在列举了若干单元的装置型权利要求中,这些单元中的若干可以由同一项硬件来实施。某些措施被记载在互不相同的从属权利要求中的事实并不指示不能有利地使用这些措施的组合。
在权利要求中,括号内的附图标记指代示例性实施例的附图中的附图标记或实施例的公式,由此提高了权利要求的可理解性。这些附图标记不应被解释为限制权利要求。

Claims (16)

1.一种被布置用于阿贝尔群N中的白盒编码加法的电子计算设备(100),包括:
-存储设备(140),其被配置为存储所述阿贝尔群N的编码元素,所述存储设备包括以下列形式编码的元素:
-第一形式(110),其具有一种或多种类型,一种类型的所述第一形式由集合X、群A的元素b以及映射[]:X→M来定义,其中,所述集合X的元素x表示所述阿贝尔群N的元素π([x]b),其中,
-π是从阿贝尔群M到所述群N的同态满射投射π:M→N,
-所述群A和群G一起分解自同构群Aut(M)的子群H,其中,H=GA,所述群A和所述群G对于A中的任何a和G中的任何g具有属性ga=ag,所述群H具有对所述集合X的动作,
-所述映射[]是至少部分映射[]:X→M,使得对于X中的任何x和H中的任何h有[xh]=[x]h,其中,在[]:X→M中定义了所述映射,并且其中,构成π[]:X→N是满射的,
-第二形式(120),其具有至少一种类型,一种类型的所述第二形式由所述群M的元素m和所述群A的元素b′来定义,其中,所述群G的元素g表示阿贝尔群N的元素π(mgb′),
-第三形式(130),阿贝尔群N的元素被编码为编码元素的序列,其中,所述第三形式的所述序列包括根据所述第一形式或所述第二形式编码的至少两个编码元素,编码元素的所述序列表示所述阿贝尔群N中由所述序列中的元素表示的所述阿贝尔群N中的元素的总和,以及
-处理器电路,其被布置为具有:
-加法单元(150),其被布置为使多个编码加数相加,其中,所述加法单元被配置为形成包括所述多个编码加数的至少编码部分的所述第三形式的编码元素,以及
-减少单元(160),其被布置为通过以下操作来减少所述第三形式的编码元素:在所述编码元素的所述序列中利用所述第一形式W(xg-1)g以及由第二集合Y和元素a′与所述元素b的乘积(a′b)定义的类型的编码元素替换由所述集合X和所述群A的元素ab定义的类型的所述第一形式的第一编码元素x以及由所述群M的元素m和所述群A的元素b定义的类型的所述第二形式的第二编码元素g,其中,
-所述减少单元被提供有减函数W,所述减函数W是从第一集合X到第二集合Y的函数,所述函数W具有由第一集合X、第二集合Y、A的所述元素a、A的所述元素a’,以及所述群M的所述元素m定义的类型((X,a,Y,a′,m)),所述函数W对于X中的所有x,A中的所有a和a′,M中的所有m有[xa]+m=[W(x)a′],针对[xa]+m=[W(x)a′]定义了所述映射[]。
2.如前述权利要求中的任一项所述的电子计算设备,其中,所述第一集合X与所述第二集合Y是相同的。
3.如前述权利要求中的任一项所述的电子计算设备,其中,所述存储设备包括由第二集合Y定义的类型的所述第一形式的元素,以及所述群A的元素b,以及映射[]:Y→M,其中,所述集合Y的元素x表示所述阿贝尔群N的所述元素π([x]b),其中,所述映射[]是至少部分映射[]:Y→M,使得对于Y中的任何x和H中的任何h有[xh]=[x]h,在[]:Y→M中定义了所述映射,并且其中,所述构成π[]:X→N是满射的。
4.如前述权利要求中的任一项所述的电子计算设备,其中,所述减少单元被布置为还具有减函数W,如果所述减少单元被布置为具有(X,a,Y,a′,m)类型的减函数W,则由集合X、所述群A的元素ab定义的所述第一形式的类型的编码元素与由所述群M的元素m和所述群A的元素b定义的所述第二形式的类型的编码元素是兼容的,所述减少单元被布置为将对应的减函数应用于所述第三形式的编码元素的序列中的所述第一形式和所述第二形式的两个兼容的编码元素。
5.如权利要求4所述的电子计算设备,其中,
-第一加数是所述第三形式的并且包括所述第一形式的编码元素和所述第二形式的编码元素,所述第一形式的编码元素和所述第二形式的编码元素是不兼容的,
-第二加数包括与所述第一加数中的所述第一形式的所述编码元素兼容的所述第二形式的编码元素。
6.如前述权利要求中的任一项所述的电子计算设备,其中,所述构成π([W()])在N上是满射的。
7.如前述权利要求中的任一项所述的电子计算设备,包括:
-普通输入(170),其被布置为接收阿贝尔群N的元素并且例如使用查找表将接收到的元素转换成所述第一形式、所述第二形式或所述第三形式的编码元素,和/或
-普通输出(170),其被布置为接收所述第一形式、所述第二形式或所述第三形式的编码元素并且将接收到的元素转换为阿贝尔群N的未编码元素。
8.如前述权利要求中的任一项所述的电子计算设备,其中,所述群M与所述群N是相同的,并且其中,所述投射π是恒等式。
9.如前述权利要求中的任一项所述的电子计算设备,其中,所述群M和所述群N是地环上的模块,所述群H、所述群G和所述群A是所述地环上的矩阵组。
10.如前述权利要求中的任一项所述的电子计算设备,其中,所述群A是仅包括对角线矩阵和/或反对角线矩阵的矩阵组。
11.如前述权利要求中的任一项所述的电子计算设备,其中,所述阿贝尔群N是群其中,n≥2。
12.如前述权利要求中的任一项所述的电子计算设备,其中,所述第一集合和/或所述第二集合是所述群H的一个或多个副本的不相交并集。
13.如前述权利要求中的任一项所述的电子计算设备,其中,所述处理器电路被布置为具有线性算子单元,所述线性算子单元被布置为将线性算子应用于编码元素。
14.如前述权利要求中的任一项所述的电子计算设备,其中,所述第一集合X是阿贝尔群X,使得所述群H是自同构群Aut(X)和所述自同构群Aut(M)的共同子群。
15.一种被布置用于阿贝尔群N中的白盒编码加法的电子计算方法(400),包括:
-存储(410)所述阿贝尔群N的编码元素,所述存储包括存储以下列形式编码的元素:
-第一形式(110),其具有一种或多种类型,一种类型的所述第一形式由集合X、群A的元素b以及映射[]:X→M来定义,其中,所述集合X的元素x表示所述阿贝尔群N的元素π([x]b),其中,
-π是从阿贝尔群M到所述群N的同态满射投射π:M→N,
-所述群A和群G一起分解自同构群Aut(M)的子群H,其中,H=GA,所述群A和所述群G对于A中的任何a和G中的任何g具有属性ga=ag,所述群H具有对所述集合X的动作,
-所述映射[]是至少部分映射[]:X→M,使得对于X中的任何x和H中的任何h有[xh]=[x]h,在[]:X→M中定义了所述映射,并且其中,构成π[]:X→N是满射的,
-第二形式(120),其具有至少一种类型,一种类型的所述第二形式由所述群M的元素m和所述群A的元素b′来定义,其中,所述群G的元素g表示阿贝尔群N的元素π(mgb′),
-第三形式(130),阿贝尔群N的元素被编码为编码元素的序列,其中,以所述第三形式的所述序列包括根据所述第一形式或所述第二形式编码的至少两个编码元素,编码元素的所述序列表示所述阿贝尔群N中由所述序列中的元素表示的所述阿贝尔群N中的元素的总和,
-使多个编码加数相加(420),其中,加法单元被配置为形成包括所述多个编码加数的至少编码部分的所述第三形式的编码元素,以及,
-通过以下操作来减少(430)所述第三形式的编码元素:在所述编码元素的所述序列中利用所述第一形式W(xg-1)g以及由第二集合Y和元素a′与所述元素b的乘积(a′b)定义的类型的编码元素替换由所述集合X和所述群A的元素ab定义的类型的所述第一形式的第一编码元素x以及由所述群M的元素m和所述群A的元素b定义的类型的所述第二形式的第二编码元素g,其中,
-减少单元被提供有减函数W,所述减函数W是从第一集合X到第二集合Y的函数,所述函数W具有由第一集合X、第二集合Y、A的所述元素a、A的所述元素a’,以及所述群M的所述元素m定义的类型((X,a,Y,a′,m)),所述函数W对于X中的所有x,A中的所有a和a′,M中的所有m有[xa]+m=[W(x)a′],针对[xa]+m=[W(x)a′]定义了所述映射[]。
16.一种计算机可读介质(1000),包括表示使处理器系统执行如权利要求15所述的方法的指令的瞬态或非瞬态数据(1020)。
CN201780079120.7A 2016-12-20 2017-12-20 用于编码加法的计算设备 Pending CN110088728A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16205277.3 2016-12-20
EP16205277 2016-12-20
PCT/EP2017/083856 WO2018115143A1 (en) 2016-12-20 2017-12-20 A calculation device for encoded addition

Publications (1)

Publication Number Publication Date
CN110088728A true CN110088728A (zh) 2019-08-02

Family

ID=57708366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780079120.7A Pending CN110088728A (zh) 2016-12-20 2017-12-20 用于编码加法的计算设备

Country Status (7)

Country Link
US (1) US20200097256A1 (zh)
EP (1) EP3559799A1 (zh)
JP (1) JP2020515093A (zh)
CN (1) CN110088728A (zh)
BR (1) BR112019012368A2 (zh)
RU (1) RU2019122810A (zh)
WO (1) WO2018115143A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231561A (zh) * 2020-10-14 2021-01-15 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11103222B2 (en) 2016-12-21 2021-08-31 Koninklijke Philips N.V. System and method for fast and automated ultrasound probe calibration
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
FR3105684B1 (fr) * 2019-12-20 2022-12-23 Idemia France Procede de traitement cryptographique, dispositif electronique et programme d'ordinateur associes
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
US11765127B1 (en) * 2022-04-20 2023-09-19 Dell Products, L.P. Pluggable network address management stack

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002212871A1 (en) * 2001-05-22 2003-05-08 Said Kakhsurujevich Akajev Method for transmitting a digital message and system for carrying out said method
CN1507693A (zh) * 2001-05-22 2004-06-23 Ī�ٽ��ڹɷ����޹�˾ 用于传输数字消息的方法和实现所述方法的系统
US20040156498A1 (en) * 2001-07-12 2004-08-12 Paeng Seong Hun Public key cryptosystem using finite non abelian groups
US20070156797A1 (en) * 2005-12-29 2007-07-05 Proton World International N.V. Protection of a calculation performed by an integrated circuit
US20120254625A1 (en) * 2011-03-30 2012-10-04 Apple Inc. Protecting states of a cryptographic process using group automorphisms

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3201758A1 (en) 2014-09-30 2017-08-09 Koninklijke Philips N.V. Electronic calculating device for performing obfuscated arithmetic

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002212871A1 (en) * 2001-05-22 2003-05-08 Said Kakhsurujevich Akajev Method for transmitting a digital message and system for carrying out said method
CN1507693A (zh) * 2001-05-22 2004-06-23 Ī�ٽ��ڹɷ����޹�˾ 用于传输数字消息的方法和实现所述方法的系统
US20040156498A1 (en) * 2001-07-12 2004-08-12 Paeng Seong Hun Public key cryptosystem using finite non abelian groups
US20070156797A1 (en) * 2005-12-29 2007-07-05 Proton World International N.V. Protection of a calculation performed by an integrated circuit
US20120254625A1 (en) * 2011-03-30 2012-10-04 Apple Inc. Protecting states of a cryptographic process using group automorphisms

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231561A (zh) * 2020-10-14 2021-01-15 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质
CN112231561B (zh) * 2020-10-14 2024-06-07 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
EP3559799A1 (en) 2019-10-30
WO2018115143A1 (en) 2018-06-28
BR112019012368A2 (pt) 2020-02-27
US20200097256A1 (en) 2020-03-26
RU2019122810A (ru) 2021-01-22
JP2020515093A (ja) 2020-05-21

Similar Documents

Publication Publication Date Title
CN110088728A (zh) 用于编码加法的计算设备
Bakken et al. Data obfuscation: Anonymity and desensitization of usable data sets
Brenner et al. Secret program execution in the cloud applying homomorphic encryption
CN106888080A (zh) 保护白盒feistel网络实施方案以防错误攻击
CN109478996A (zh) 用于执行混淆算术的设备和方法
CN105024803A (zh) 白箱实现中的行为指纹
CN109661792A (zh) 计算分组密码的设备和方法
CN113010856A (zh) 一种动态非对称加解密的JavaScript代码混淆方法与系统
CN105007256B (zh) 用于在非信任平台上执行安全功能的安全模块
CN110663216A (zh) 密码设备和方法
CN108494546A (zh) 一种白盒加密方法、装置及存储介质
CN112639774B (zh) 具有掩蔽功能的编译器设备
CN105406957A (zh) 保护密码设备对抗实现攻击
CN110210211A (zh) 一种数据保护的方法和计算设备
CN106209346B (zh) 白盒密码技术交错查找表
EP3078154B1 (en) A computing device for iterative application of table networks
CN105022937A (zh) 用于将白箱实现紧附到周围程序的接口兼容方式
CN105978680A (zh) 在白盒实现方案中实现填充
CN113273131A (zh) 使用共享的份额的计算设备
CN113475034B (zh) 电路编译设备和电路评估设备
CN108370311A (zh) 计算设备和方法
Fan et al. Quantum image encryption algorithm based on Fisher–Yates algorithm and Logistic mapping
US10243937B2 (en) Equality check implemented with secret sharing
EP3238113B1 (en) Hiding of a program execution
CN109995506A (zh) Skinny算法优化实现方法、系统、终端、存储介质

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190802

WD01 Invention patent application deemed withdrawn after publication