CN110569676B - 用于转换输入比特序列的加密设备和方法 - Google Patents

用于转换输入比特序列的加密设备和方法 Download PDF

Info

Publication number
CN110569676B
CN110569676B CN201910481540.9A CN201910481540A CN110569676B CN 110569676 B CN110569676 B CN 110569676B CN 201910481540 A CN201910481540 A CN 201910481540A CN 110569676 B CN110569676 B CN 110569676B
Authority
CN
China
Prior art keywords
bit sequence
input bit
logical operation
input
processing unit
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.)
Active
Application number
CN201910481540.9A
Other languages
English (en)
Other versions
CN110569676A (zh
Inventor
马库斯·劳
斯特凡·海斯
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN110569676A publication Critical patent/CN110569676A/zh
Application granted granted Critical
Publication of CN110569676B publication Critical patent/CN110569676B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
    • 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/729Methods 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 using representation by a residue number system
    • 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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Abstract

本发明涉及用于将输入比特序列变换成输出比特序列的加密设备和方法。输入比特序列的无溢出的算术加法得出机密,输出比特序列的逻辑XOR逻辑运算得到该机密。加密设备包括数据接口和处理单元,处理单元配置为:a)将第一输入比特序列和第二输入比特序列进行逻辑运算,以获得逻辑运算结果,逻辑运算结果显示溢出比特位置,第一输入比特序列和第二输入比特序列在所述溢出比特位置处具有为一的值;和b)在至少一个溢出比特位置处改变第一输入比特序列和/或第二输入比特序列。处理单元配置为,利用每次改变的输入比特序列重复地执行步骤a)和b),直至逻辑运算结果不再显示溢出比特位置并且获得输出比特序列。

Description

用于转换输入比特序列的加密设备和方法
技术领域
本公开涉及一种加密设备和一种用于将输入比特序列、尤其描述机密的相加份额(additive share)的输入比特序列转换成可在XOR域中处理的份额的方法。本公开尤其涉及一种数据掩码的随机化的变换。
背景技术
在安全控制器(英文:security controllers)、例如芯片卡控制装置中存在如下需求:保护数据免受恶意攻击者的边信道分析。这可以通过实施掩码进行,以便在处理数据期间保护安全攸关的数据。基于各种应用领域,可以使用基于加法(ADD)运算操作或异或(XOR)运算操作的掩码。加法掩码广泛用于非对称加密的领域中,而在对称加密的领域中使用XOR逻辑运算是普遍的。
期望有一种能够实现使用两种运算操作ADD和XOR的设计方案。
发明内容
实施例提出了一种用于将输入比特序列转换成输出比特序列的加密设备,所述输入比特序列的无溢出的算术加法得出机密,所述输出比特序列的逻辑XOR逻辑运算得到所述机密。加密设备包括用于提供至少一个第一输入比特序列和第二输入比特序列的数据接口。加密设备还包括处理单元,所述处理单元配置用于:a)将第一输入比特序列和第二输入比特序列进行逻辑运算,以便获得逻辑运算结果,所述逻辑运算结果显示溢出比特位置,第一输入比特序列和第二输入比特序列在所述溢出比特位置处具有为一(1)的值;和b)在至少一个溢出比特位置处改变第一输入比特序列和/或第二输入比特序列。处理单元配置为,利用每次改变的输入比特序列重复执行步骤a)和b),直至逻辑运算结果不再显示溢出比特位置并且获得输出比特序列。由此实现:针对相同的机密的或值得保护的数据使用ADD运算操作和XOR运算操作,因为输入比特序列在需要时能够从ADD域转变成XOR域。同时,能够避免处理未掩蔽的机密数据。
根据一个实施例,一种系统包括本文描述的加密设备。这种系统例如能够是相应的数据处理设备,例如认证系统或通信系统。
一个实施例提出一种用于将输入比特序列转换成输出比特序列的方法,所述输入比特序列的无溢出的算术加法得出机密,所述输出比特序列的逻辑XOR逻辑运算得到所述机密。该方法包括:提供至少一个第一输入比特序列和第二输入比特序列。该方法包括:a)将第一输入比特序列和第二输入比特序列进行逻辑运算,以便获得逻辑运算结果,所述逻辑运算结果显示溢出比特位置,第一输入比特序列和第二输入比特序列在所述溢出比特位置处具有为一(1)的值。该方法包括:b)在至少一个溢出比特位置处改变第一输入比特序列和/或第二输入比特序列。该方法包括:利用每次改变的输入比特序列重复执行步骤a)和b),直至所述逻辑运算结果不再显示溢出比特位置并且获得输出比特序列。
附图说明
下面参考所附的附图阐述实施例。附图示出:
图1示出根据一个实施例的加密设备的示意框图;
图2示出了用于说明为了获得逻辑运算结果根据一个实施例的加密设备的逻辑运算器的运算的示意图;
图3示出根据一个实施例的呈伪码形式的例如由处理装置执行的方法的示意图;
图4示出根据一个实施例的根据伪码的方法的示意图,所述方法具有用于交换计算的附加方法步骤;
图5a示出根据一个实施例的用于随机化输出比特序列中已经检验的比特的方法的示意图;
图5b示出值和变量的示意图,所述值和变量能够在遍历图5a的方法期间获得;
图6示出根据一个实施例的用于获得比特掩码的方法600的示意图;
图7示出根据一个实施例的方法的伪码的示意图,其中将输入比特序列转换成输出比特序列并且还进行未检验的比特的随机化;
图8示出根据一个实施例的扩展的输入比特序列的示意图,分成三个部分的输入比特序列在随机比特序列中的不同的位处补入到所述扩展的输入比特序列中;
图9示出根据一个实施例的呈伪码形式的方法的示意图,其中通过附加地考虑随机数获得逻辑运算结果;
图10示出提供用于实施该实施例的可行性的方法的示意图;
图11示出根据一个实施例的方法的示意图,其中使用窗口技术以选择输入比特序列的部分;
图12示出用于说明图11的窗口函数的示意图;
图13示出根据一个实施例的呈伪码形式的方法的示意图,其中使用提高数量的三个输入比特序列,以获得输出比特序列;
图14示出根据一个实施例的方法的示意图,其中在转换成输出比特序列期间使用三个输入比特序列中的仅一个输入比特序列;
图15示出根据一个实施例的呈伪码形式的方法的示意图,其中使用四个输入比特序列;和
图16示出根据一个实施例的系统的示意框图。
具体实施方式
在后续参照附图详细阐述实施例的细节之前,需要指出:为不同附图中的相同的、功能相同的或起相同作用的元件、对象和/或结构设有相同的附图标记,使得在不同的实施例中示出的对这些元件的描述能够交换或能够相互应用。
后续描述的实施例中的一些实施例涉及加密设备。加密设备的一个实例例如是安全控制器,所述安全控制器配置为处理机密的或值得保护的数据。机密例如能够是密匙的至少一部分。所述数据在此可以以掩蔽的方式存在并且也能够经掩蔽处理,使得能够避免存在未被掩蔽的数据。
后续描述的实施例中的一些实施例涉及AND运算。该AND运算对于2比特的与组合描述了在第一比特和第二比特即两个比特具有逻辑1的情况为逻辑1。
后续描述的实施例中的一些实施例涉及XOR运算。该XOR运算描述两个比特的异或逻辑运算,所述比特当两个比特中仅有一个比特具有逻辑1时才得到1。
图1示出根据一个实施例的加密设备10的示意框图。加密设备10包括用于提供至少一个第一输入比特序列141和第二输入比特序列142的数据接口12,所述第一和第二输入比特序列例如能够基于数据信号16获得,所述数据信号能够由数据源或数据存储器发送。为了传送数据信号16能够使用无线或有线的接口,例如数据总线。
加密设备10包括处理单元18。处理单元18能够包括逻辑运算器19,所述逻辑运算器配置为,将所提供的输入比特序列141和142彼此进行逻辑运算,以获得逻辑运算结果22。逻辑运算结果22显示溢出比特位置,输入比特序列141和输入比特序列142在所述溢出比特位置处具有为一的值。每个所述输入比特序列141和142在各个比特位置处能够具有逻辑零的值或者逻辑一的值。逻辑运算例如能够是AND逻辑运算,所述AND逻辑运算用于将输入比特序列141和142逐比特地进行逻辑运算。逐比特地进行逻辑运算能够表示:沿着确定的顺序例如从最低位的比特或最低有效位(英文:least significant bit-LSB)朝最高位的比特或最高有效位(英文:most significant bit–MSB)、正好相反或根据其他的规则将输入比特序列141和142的两个相对应的比特比较或相互进行逻辑运算,以获得逻辑运算结果22的一部分。当输入比特序列141和/或142中的至少一个在相应的比特位置处具有零的值时,则AND运算的AND逻辑运算能够得到逻辑零,而当两个比特序列具有为一的值时,能够得到逻辑一的值。逻辑运算结果22能够是如下比特序列,所述比特序列在如下位处具有逻辑一,在所述位处第一输入比特序列141和第二输入比特序列142具有为一的值。
处理单元18能够构成为,在逻辑运算结果22中显示的溢出比特位置中的至少一个溢出比特位置处改变输入比特序列141和/或142中的至少一个。为此,能够将出自逻辑运算结果22中的信息提供给比特改变单元241和/或242,所述比特改变单元配置为,改变输入比特序列141或142
处理单元22配置为,借助于逻辑运算器19重复执行逻辑运算和在利用每次改变的输入比特序列14'1或14'2重复执行输入比特序列141或142的改变,直至逻辑运算结果22不再显示溢出比特位置并且获得输出比特序列261和262
所述的运算的重复执行能够以循环重复等的形式来执行,使得将朝着经改变的输入比特序列14'1改变的输入比特序列141在后续的循环重复中能够用作为新的输入比特序列。可选地,还能够进行另外的处理步骤。输出比特序列261和262还能够对应于最后的循环进程的经改变的输入比特序列14'1或者能够至少基于其。
加密设备10构成为,将输入比特序列转变成输出比特序列26i,使得所述输出比特序列的逻辑XOR逻辑运算同样得到机密,其中所述输入比特序列的无溢出的算术加法得到机密。能够将比特序列的加法与mod 2n运算组合地理解为无溢出的算术加法,这表示:将所代表的值相加,但忽略由此可能产生的溢出。
处理单元18能够构成为,提供比特序列281和282,所述比特序列是输入比特序列141或142的经改变的或操纵的代表并且例如能够用于XOR运算,但是在此代表相同的机密,所述机密通过输入比特序列141和142的无溢出的算术加法获得。
加密设备10例如能够形成为安全控制器,如其例如使用在芯片卡等中的那样。该设备能够具有专用的安全匹配的硬件,例如具有相应接口的CPU。
图2示出用于说明为了在处理单元18中获得逻辑运算结果22的逻辑运算器19的运算的示意图。然而,输入比特序列141和142能够借助任意的但优选相一致的比特长度32获得,所述比特长度具有相应数量的n个比特位置341至34n
处理单元18能够构成为,针对每个所述比特位置341在输入比特序列141和142中的相一致的位置处逐比特地执行比特AND逻辑运算,以便获得逻辑运算结果22。所示出的示例性的比特序列141和142例如在比特位置347、34n-5和34n处相一致地具有逻辑一,使得逻辑运算结果在比特位置347、34n-5和34n处同样具有一。在其他比特位置处,输入比特序列141或142中的至少一个具有逻辑零,使得逻辑运算结果22在此同样具有零。
在比特位置347、34n-5和34n处,逻辑运算结果22显示溢出比特位置。在输入比特序列141和142的算术加法中,在相应的比特位置处出现溢出,所述溢出引起:相邻的比特位置、例如比特位置348或34n-3,这引起在加法的结果和XOR运算的结果之间的发散。
处理单元18配置为,在至少一个溢出比特位置的位置处改变输入比特序列141和/或142。如果例如考虑比特位置347,则输入比特序列141和/或输入比特序列142在该位置处的任意的改变能够引起:逻辑运算结果22在比特位置347处不再显示溢出,这表示:在该位处能够消除加法运算和XOR运算的发散。这通过调整输入比特序列实现获得输出比特序列,这表示:比特序列进行转换:即经改变的输入比特序列也能够用于XOR运算。
实施例基于利用加法运算或减法运算以及逻辑运算将机密的加法份额变换成XOR份额。这基于基础函数方法提供多种获得随机化的可能性。与其无关,选项:对更高数量的份额(输入比特序列)、例如大于二、大于三、大于四或更高的数量的份额的变换也提供防止更高阶的边信道攻击(英文:side channel attacks)的运算的可行性。
图3示出根据一个实施例的呈伪码形式的例如由处理装置18执行的方法300的示意图。结合这里所描述的实施例所阐述的伪码用于理解本文描述的实施例。然而,所示出的代码不应理解为,使得其规定特定的指令顺序、编程语言或明确地使用软件部分,以获得相应的功能。更确切地说,本文描述的运算中的至少一些也能够实施为硬件,例如通过固定布线等。
在行1和2中例如获得输入比特序列141和142并且称作为比特序列a1和a2,所述比特序列能够具有零(全部比特具有逻辑零的值)和2n-1(全部比特具有逻辑一的值)之间的任意的值,其中输入比特序列141和142能够具有相同的或彼此不同的值。
在行3和4中,定义变量x1和x2,所述变量在方法完全遍历之后在行13中作为输出比特序列261和262输出并且在此满足如下条件:即输出比特序列261和262的由⊕代表的XOR逻辑运算对应于输入比特序列的由+代表的算术加法,尤其对应于输入比特序列的由mod 2n运算获得的无溢出的算术加法。
有帮助的是,在行5和6中将输入比特序列141和142暂存到变量x1和x2中。在行7中,通过输入比特序列或其暂存的内容的逐比特的AND逻辑运算获得逻辑运算结果22。
在行8中检验:逻辑运算结果22是否具有至少一个如下比特位置,在所述比特位置处获得不等于零的值,这能够通过如下方式获得:检验由逻辑运算结果22代表的值是否不等于零。该检验能够逐比特地进行,例如以比特位置341至34n的升序进行。
根据一个实施例的加密设备能够构成为,使得处理单元构成为,为了在至少一个溢出比特位置处改变第一输入比特序列和/或第二输入比特序列而基于逻辑运算结果计算校正比特序列,并且将校正比特序列与第一和第二输入比特序列相加,并且将其从其他输入比特序列中减去或者与取反的校正比特序列相加。在行9和10中,改变输入比特序列以获得修改的或改变的输入比特序列14'1和14'2。例如,将逻辑运算结果的值加给输入比特序列141且清除可能的溢出。逻辑运算结果22的值能够从输入比特序列142减去,以便获得改变的输入比特序列14'2。在此,加法和/或减法能够无溢出地进行,这表示:与取模2n运算组合。如也从图2的阐述中得出:将输入比特序列之一的值的提高和/或另一比特序列的值的减小能够通过如下方式显示:逻辑运算结果22的比特序列在相应的比特位置处具有预定义的值,例如1。替选地,也能够使用其他值,以便显示相应的位置,例如通过将逻辑运算结果22取反。如果逻辑运算结果在相应被分析的位处不具有预定义的值,则处理装置能够构成为,至少针对当前的重复使所使用的输入比特序列不变。
逻辑运算结果22能够用于获得另一校正比特序列,所述另一校正比特序列用于加法和/或减法。在此,加法和/或减法能够逐比特地进行。替选地,也能够将整个比特序列相加或相减。
这表示,处理单元能够为了在至少一个溢出比特位置处改变输入比特序列141和/或142而基于逻辑运算结果22计算校正比特序列,并且根据一个实施例或者将第一输入比特序列或第二输入比特序列与校正比特序列相加。
在行11中,能够重新计算逻辑运算结果22,其中经改变的输入比特序列14'1和14'2能够用于计算。这实现重新评估:是否重新执行循环36以调整输入比特序列。循环36能够重复,直至逻辑运算结果22不再显示溢出比特位置。在此情况下,能够将输出比特序列261和262输出。如根据循环36描述的那样,重复能够通过重复执行循环36的循环进程或其适配的形式来获得。在此可行的是:加密设备设计为,使得一个循环进程的经改变的比特序列14'1和14'2用作为跟着其之后的另一循环进程的输入比特序列。
换言之,图3示出基础的方法或基本方法。该方法如下工作:两个加法份额、即输入比特序列141和142迭代地通过至少重复执行循环36修改成XOR份额,即通过将值加给一个份额(输入比特序列)和将相同的值从另一份额(输入比特序列)减去。由此,两个份额的和保持相同,而修改两个份额上的分配。要相加/相减的值能够等于两个份额的的逻辑AND,因此,每当两个份额的逻辑AND为零就结束循环。在该点处,加法份额的分配以如下方式设定:即两个份额的加法产生与对两个份额的异或(XOR)计算相同的值。一些或优选全部运算能够执行取模2n,使得份额的值的相加/相减不引起朝更高的比特溢出。溢出因此能够被忽略并且这明确地通过计算取模2n来实现。
该方法在此运作为,使得两个加法份额的分配迭代地以如下方式修改,即使得最后获得两个加法份额,所述加法份额为相同的和,但是在相同的位置处不具有1比特。因此,该方法考虑该位置(通过计算a1Λa2,其中符号Λ符号表述逻辑逐比特AND逻辑运算)并且通过可变的所考虑的比特的相加/相减设定该分配。该修改能够重复,直至两个份额在相同的位置处不具有1比特。
该方法提供如下优点,即确保:能够最终获得结果。该方法在最多n个循环之后以小于2n的数终止,即当a1Λa2等于零。如果例如考虑任意迭代中的a1Λa2的最低的1比特的位置,那么考虑如下情况,在所述情况中该位置的或在该位置中的两个比特为一。两个比特的相加引起与进行XOR运算不同的值。将逻辑运算结果的AND值相加到一个份额并且将其从另一份额减去引起在该位置处具有0比特的份额(比特,其代表逻辑零),而保持和值。加法/减法修改低于所考虑的比特的比特,例如不考虑两个份额的更低位的比特。因此,新计算的AND值的最低的1比特至少具有如下值,在最后的迭代中该最低的1比特已经具有该值,或具有更高的值。因为加法/减法在所考虑的位置处产生两个0比特,所以要考虑的比特的位置在下一次迭代中更高。即,在迭代间,a1Λa2的结果增加地具有后续越来越多的0比特,直至结果s本身得到零。因此,算法在最高的n次迭代、即重复中结束。
根据一个实施例,处理单元配置为,在第一循环进程或第一重复、例如While循环中减小由第一输入比特序列141代表的值并且将具有减小的值的所获得的比特序列14'1用作为之后的循环进程中的输入比特序列,其中处理单元配置为,以便提高后续的循环进程中的减小的值。这表示,结合图3阐述的在While循环之内关于加法和减法的确定能够关于时间变化。
对此的实例结合图4示出,图4借助伪码示意地示出方法400,所述伪码相对于图3的伪码在行9-14中能够具有附加的代码模块,所述代码模块表示附加的方法步骤。在行9中获得附加的随机数,所述随机数例如能够具有0或1的值。根据随机数,在行10至14中限定:在行13中逻辑运算结果22在随机数=1的情况下是否取反,参见伪码的行11。取反、即符号变换,同样将行15和16中的加法或减法取反,使得从行15中的加法中能够变为减法并且从行16中的减法中能够变为加法。随机数在每次迭代中能够重新确定,如在行9中进行的那样。替选地,确定也能够仅针对循环进程或重复的整体进行一次。
逻辑运算结果22的取反为多种可行性中的一种。替选地,也能够交换变量x1和x2并且在不同的重复中经受不同的运算、加法和减法。
替选于使用随机数也能够使用可能机密的方案,以便在不同的重复中提高或减小输入比特序列或其改变的版本。
换言之,不存在如下需求:总是将相同的份额相加或者从相同的份额相减。因为具有至少一个比特位置的比特的和如当前考虑的比特保持不变就足够了,所以用于加法的输入比特序列能够可变地或随机地选择,而选择用于减法的比特序列简单地能够是其他比特序列或正好相反。使用该机制将到份额的分配容易地随机化并且因此对迭代次数有影响。图4示出方法400的示意图,所述方法将哪些份额可用于相加或相减随机化。
根据一个实施例,逻辑运算结果22具有多个比特。逻辑运算结果的每个比特单义地与输入比特序列141的一个比特和与输入比特序列142的一个比特相关联。例如在重新参考图2的情况下,这能够是相同比特位置34i处的相应的比特,其中其他单义关联也是可行的。处理单元能够构成为,重复执行逻辑运算的步骤以获得逻辑运算结果22,如其例如在图3和图4中通过While循环示出的那样。图2中的比特位置347例如为当前检查的比特38。例如当检验的顺序朝升高的比特位置进行时,更低位的比特位置341至346处的比特能够视作为已经被检验。处理单元根据实施例能够配置为,将可能改变的输入比特序列141和/或142或14‘1和/或14‘2的比特随机化,例如通过与随机数的XOR逻辑运算来随机化,其中针对所述比特已经检验逻辑运算结果22。
图5a示出根据伪码的用于将已经检验的比特随机化的方法500的示意图。与图3和图4的方法相比,方法500在行8中和在行13中具有:获得比特掩码,这通过表述“getBitMask(AND)”代表,这结合图6详细阐述。比特掩码简化地能够理解为比特序列,所述比特序列针对一些比特允许运算而针对另外的比特排除这种运算。换言之,借助比特掩码能够区分:哪些比特已经处理过或扫描过并且哪些比特还没有处理或扫描过,其中一些运算能够选择性地或者针对已经处理的比特或者针对尚未处理的比特执行并且对另外的比特不执行,或刚好相反。在当前的实例中,运算为XOR逻辑运算,所述XOR逻辑运算针对已经检验的比特是允许的并且针对未被检验的比特排除或阻止。例如,允许运算通过相应比特序列中的1代表。替选地,也能够为针对未被检验的比特运行的AND运算。
换言之,在迭代间、即在重复间或循环进程中提高所考虑的比特的位置。因为两个份额的1比特的位置(低于所观察的比特)不相交,所以比特序列的低位份额已经能够解释为比特序列的XOR变型。因为其能够由基础方法300保持不变,所以所述比特利用XOR运算能够随机化。对此的可行性在于:两个份额的低位比特处的随机值经受XOR逻辑运算。这能够在每次迭代中利用新的随机值重复。替选地,能够使用未改变的随机值或确定值。使用该机制能够引起具有汉明权重的(中间)份额,所述汉明权重看起来相当随机。图5a示出基于方法300的这种方法。在方法500中,将低于所考虑的比特的比特随机化。
图5b示出在方法500遍历期间可以获得的值和变量的示例图。例如,输入比特序列141和142的长度为8比特,其中可以使用任意其他长度,例如16比特、32比特或更高。与2的倍数不同的值是可行的。需要指出的是:行1至26中的并非每行都可作为各自的方法步骤执行。更确切地说,图5b用于说明运算操作。例如可在行4、行10和/或行21中获得的比特掩码例如能够基于结合图6阐述的方法600获得。行11中的随机数rnd以及行22中的rnd'在此随机地选择并且也能够描述或是任意其他数字。
在第二循环进程结束处,即在行26中,随后考虑的AND逻辑运算、即逻辑运算结果仅用0比特占位,这表示:不再显示出溢出比特位置。将输入比特序列141和142改变成,使得获得满足该方法要求的输出比特序列261和262
图6示意地示出方法600的流程,所述方法例如能够用于获得这种比特掩码。在行1中将具有数量为n个比特的比特序列,例如逻辑运算结果用作为输入变量y。输出比特序列m定义为,使得其代表的值与值1相加对应于值2k,其中k是输入比特序列中的最低位的1比特的位置。参考图2,这例如对于比特位置347是满足的。针对逻辑运算结果的在图2中示出的比特序列,比特掩码能够为:0…0111111。因此,比特掩码在已经检验的比特位置341至346处能够具有一,并且在其他比特位置347至34n处能够具有零。可选地,比特掩码也能够在比特位置347处具有一,因为在此当前进行检验。
重新参考图5a,在加法或减法之后为了获得修改的输入比特序列14‘1和14‘2能够确定校正比特序列42。尽管在行12中校正比特序列42同样描述为AND,但需要指出的是,也可以使用另一变量名。该校正比特变量例如通过改变的输入比特序列14'1和14'2的AND逻辑运算在附加地与代表值2n-m-1的比特序列的AND逻辑运算的情况下获得,这也能够理解为:校正比特序列42针对已经检验的比特设定成0。在行14中能够获得随机数44,所述随机数例如具有与逻辑运算结果和/或输入比特序列相同的比特长度。行15和16能够通过从随机数选取如下比特提供比特位置,针对所述比特已经检验逻辑运算结果,如这通过表达“rndΛm”描述的那样。在行15和16中还进行改变的输入比特序列与从中获得的比特序列的XOR逻辑运算,这表示:在比特位置341至346处已经检验的比特通过XOR逻辑运算随机化。因为已经获得机密的XOR份额,所以另外的XOR运算对于进一步的可用性是无害的,然而提高所获得的比特的随机程度。
替选于或除了将已经检验的比特随机化之外,处理装置能够配置为,通过执行与随机数的AND逻辑运算,将所使用的输入比特序列141和/或142或者14‘1和/或14‘2的如下比特随机化,针对所述比特未检验逻辑运算结果,例如位置348至34n处的比特。
换言之,一些机制执行对在所考虑的比特之下或之上的比特随机化,即在更低位或更高位的比特处随机化。完成这的有效可行方式是:使用n个随机比特并且应用特定掩码,以便删除随机比特,所述随机比特对于随机化是不必要的,即如果要将例如较低的比特随机化,则删除更高位置处的随机比特,刚好相反。能够在本文描述的实施例中使用的掩码例如能够视作为如下并且能够利用图6中描述的getBitMask方法导出:将在所考虑的比特之下的比特设定为1,而将其他比特设定为0。因此,掩码例如视为:0b00..0011..11。掩码的最低位的0比特的位置与所考虑的比特的位置相一致。所述掩码于是能够根据方法600计算。
图7示出方法700的伪码的示意图,其中将输入比特序列转换成输出比特序列并且还对未检验的比特进行所提及的随机化。为此,例如同样能够使用比特掩码,参见行9。此外,能够获得具有相一致的比特长度的随机数,参见行10。通过将随机数与比特序列进行逻辑运算,能够选择随机数的如下比特,所述比特具有未检验的比特的比特位置。其他比特位置、例如已经校验的比特位置能够通过相应的逻辑运算隐去或设定成零。如在方法700的行13和14中示出的那样,能够进行与相应被掩蔽的或过滤的随机数的加法或减法,以便获得比特序列的随机化。
根据一个实施例,此时被检验的比特、即Spotlight比特能够由相应的XOR或AND随机化保持不变。根据一个实施例,也能够进行所述比特的随机化,然而这优选考虑用于之后的处理。
换言之,图3的基本方法能够使用AND值,以便修改更高的比特、即两个份额的更高位的比特。为了结束算法会足够的是:设定所考虑的比特。更高位的比特或较高值的比特能够设定为零或随机设定,以便获得关于边信道分析的高安全性。因为例如在行13和14中示出的加法或减法如之前那样确保高位比特的和保持不变,所以在限定的时间不变地确保方法结束。该机制的使用引起比AND值(逻辑运算结果)更随机的程序流并进而迭代的数量不再强制决定性地与输入参数、输入比特序列相关。方法700描述方法300的修改方案。尤其是,方法700描述方法300,其中附加地将高于所考虑的比特的比特随机化。
根据一个实施例,处理单元构成为,将输入比特序列141和/或142中的至少一个输入比特序列嵌入到随机比特序列中。图8示出扩展的输入比特序列46的示意图,在所述扩展的输入比特序列中将输入比特序列141分解成三个相同大小的或不同大小的部分14a、14b和14c,并且在不同的位处插入到随机比特序列中。所述部分141a至141c的数量以及大小、即比特的数量能够是任意的。因此,例如能够仅使用一部分,这意味着:输入比特序列141能够连贯地嵌入扩展的输入比特序列46中,可能在机密位置处嵌入。替选地,输入比特序列141能够在至少两个、至少三个、至少四个位处直至逐比特单独地在彼此不同的位处设置在扩展的输入比特序列46中。输入比特序列142能够以相同的或至少类似的方式嵌入另一随机比特序列中。处理单元能够构成为,产生或提供随机比特序列本身,并且将输入比特序列嵌入如此获得的比特序列中。在此,处理单元能够构成为,将获得的随机的比特序列分区段,以便获得区段48a至48d,以将部分141a至141c嵌入区段之间。替选地,处理装置也能够构成为,用输入比特序列或来自其的各个比特覆写所获得的随机比特序列的一个或多个比特。
处理单元能够构成为,提供具有相同比特长度的扩展的输入比特序列,所述输入比特序列基于输入比特序列141的嵌入和输入比特序列142的嵌入来获得。当处理单元配置为使得将输入比特序列141和142在相一致的位置处定位或嵌入到相应的随机比特序列中。
嵌入实现机密信息的附加的遮掩。通过如下方式能够获得对实际实施的运算操作的小的影响:处理单元配置为使得提供扩展的输入比特序列,以至于基于随机比特序列获得逻辑运算结果22对于输入比特序列141和142的比特无溢出,其中所述随机比特序列提供区段48。例如,扩展的输入比特序列的至少一个输入比特序列的部分48a、48b、48c和48d的最高有效位(MSB)能够分别具有逻辑0的值,使得在经由扩展的输入比特序列形成比较结果时不溢出到实际上遮掩的输入比特序列141和142中。因此能够避免:基于随机数改变输入比特序列,这会引起机密信息的改变。替选地,也能够确定这种溢出并且在专门的方法步骤中修正这种溢出。
换言之,方法300能够通过如下方式补充:要变换的数据部段嵌入到伪数据或随机数据的较大的部段中。在考虑实施、例如在芯片卡上的实施的情况下,能够存在如下可行性:即将模板攻击(英文:template attack)施加到各个字上,所述字通过CPU处理。因此能够有利的是:将原始的份额嵌入到随机数据的更大的部段中。n比特机密例如能够嵌入在n+32比特数据部段中,始于例如12个随机比特,随后是原始的n比特份额和另外20个随机比特。用于全部份额的相同的布局的另外的选择和执行相同的方法能够在布局相同的情况下产生良好的结果。原始份额本身同样能够划分成多个部分。能够考虑两个边界条件。全部份额能够具有相同的布局,这表示:相同的比特长度,并且添加随机比特的相应的部分优选不产生到原始份额的任意部分的最低比特的溢出,这表示相应的输入比特序列的一部分。使用该机制能够提供抗边信道分析的有效保护。在CPU中处理的每个字能够包含一定量的随机比特,并且此外能够管理任意的量,使得能够可靠地设定随机性。
根据一个实施例,处理单元构成为,为逻辑运算结果的未校验的比特,例如重新参考图2,在比特位置348至34n处的比特补充随机数量的比特,使得多个循环进程和进而对逻辑运算结果的检验的重复执行同样是基于随机的。之前结合方法700阐述的未校验的高位比特的随机化尽管已经能够提供在重复数量方面的一定程度的随机性。该随机性能够通过将一定的随机性补入到AND逻辑运算中得以进一步提高。
图9示出呈伪码形式的方法900的示意图,所述方法构基于方法300。在行9和13中,与在方法300中不同地通过附加地考虑随机数rnd获得逻辑运算结果,所述随机数与另一随机数msk逻辑运算。符号“∣”在此能够如下地理解:
这表示:在行9和13中与在方法300中不同地获得校正比特序列。尽管随机数rnd能够具有与输入比特序列141和/或142相同的比特长度,但随机数msk能够选自任意的值,例如选择值1和3。在While循环重复中,随机数msk能够总是无溢出地翻倍,以便在后续的循环中产生另一表现。
换言之,通过将随机性加入到循环条件中能够获得相关性的隐藏。基本方法300能够经历循环,直至满足条件x1Λx2=0。用于此的迭代的次数通过所提供的加法份额限定。利用高位比特的加法的随机化能够获得要执行的迭代次数的一定的随机性。尽管如此能够进一步隐藏汉明权重与迭代次数之间的相关性,例如通过在评估循环条件中的该数量之前将一定的随机性添加至运算x1Λx2。该机制能够根据随机性添加附加的迭代,而与未加密数据(Klardatenwert)的输入比特序列141或142无关。该机制在图9中以在根据图3的基本方法上构建的方式描述并且将一定的随机性添加到循环条件中。
根据一个实施例,加密设备构成为,重复地执行将输入比特序列14转变成输出比特序列26。这表示,可能在不同的时间点能够获得不同组的输入比特序列,并且转变成相应组的输出比特序列。加密设备、例如加密设备10能够构成用于,获得与组的数量相对应的多个逻辑运算结果,例如通过如下方式实现:当接收到新输入比特序列时,分别获得逻辑运算结果22。加密设备能够构成为,应用相应的方法,使得对于不同对或组的输入比特序列总是需要恒定的持续时间,以便将所述输入比特序列转变成输出比特序列。这实现进一步遮掩信息。
图10示出方法1000的示意图,所述方法提供用于实施该实施例的可行性。方法1000能够与方法300的不同在于:代替循环条件,即逻辑运算结果不等于0,使用替选的While循环48,所述While循环例如针对输入比特序列的n个比特中的每个比特来执行循环进程i。这表示:与逻辑运算结果是否具有特定值或显示溢出比特位置无关,能够执行逻辑运算的特定运算。这表示:处理单元能够构成为,在保持由第一输入比特序列代表的第一值和由第二输入比特序列代表的第二值构成的和值的情况下,针对逻辑运算结果的每个比特提高出自第一值和第二值中的一个值,并且减小另一值,以便以恒定的持续时间改变多个逻辑运算结果。多个输出比特序列因此能够以恒定的持续时间获得。换言之,能够通过如下方式使用恒定的定时:即强制最大数量的迭代,这表示:总是能够执行n次叠加。具有恒定的执行时间或运行时间的方法,可能总是还与n个比特的数量相关,能够具有与机密的无关性和所述机密以提供的方式分配到加法份额(shares)上的无关性。因为恒定的运行时间或在该情况下迭代次数应始终与所有例外情况匹配,所以可以提高该方法的运行时间,而可以获得更好的边信道抵抗力。可以通过多种机制实现恒定的定时。一种方法可以在于:明确地将一个比特设置到AND值中,或者通过将1比特掩码(在一个位处具有1值的比特掩码)的XOR逻辑运算来实现,所述1比特掩码通过1初始化并且在每次迭代/重复中向左移动一个位置(mod 2n)。另一可行性在于:简单地执行次数为n的迭代,如方法1000所示出那样。方法1000因此描述具有恒定定时的方法300。
图11示出根据一个实施例的方法1100的示意图,所述方法例如能由加密设备10执行。与方法300相比,能够使用窗口技术,以便在相应的循环进程中选择和处理逻辑运算结果的至少一个第一比特和第二比特。这表示:处理单元能够构成为,基于窗口函数确定用于第一输入比特序列和/或第二输入比特序列的循环进程的比特,其中所述窗口函数在多个循环进程之上随时间而变地选择用于相应的循环进程的逻辑运算结果的至少一个第一和第二比特。处理单元能够构成为,在循环进程期间改变第一输入比特序列和/或第二输入比特序列中的所选择的比特。因此例如在方法1100的行7中将值msk设定为3,这也能够对应于11的二进制表示。只要该尚待改变的值不等于0,则能够执行While循环52,所述While循环能够改变方法300的循环条件。尤其是,值msk能够用于与输入比特序列和/或逻辑运算结果进行逻辑运算,如这例如在行9和10中示出的那样。在此基础上也进行输入比特序列和辅助变量的影响,如这在行11至13示出的那样。
值msk=3,即以二进制表示为11,能够表示长度为二的窗口函数,这表示:在一个时间点或在一次重复中考虑两个比特。如从行15中得出,在循环结束时能够将该窗口向左移动两个比特,这表示:在后续的循环中考虑两个邻接的比特。尽管将窗口函数描述为其具有两个比特的长度,但也能够使用其他长度,其中长度能够限制于输入比特序列的n比特的数量或补充的或扩展的输入比特序列的比特的数量。换言之,窗口技术能够用于一次处理多于一个比特,例如总是同时处理两个比特。使用在一次迭代中一次处理多于一个比特的窗口技术能够提供防信道分析的保护。在不限制普遍性的情况下,能够提供使用具有两个比特的窗口的方法。与其无关,能够将该逻辑扩展到更大的窗口。方法100示出窗口技术的使用和恒定的定时的获得,因为窗口在整个比特长度之上移动。
图12示出用于说明窗口函数msk的示意图。方法1000中在行9中示出的输入比特序列x1即输入比特序列141与窗口msk的逻辑运算能够引起选择输入比特序列141的两个比特。在第一循环进程中,能够使用窗口msk(1)。通过向左移动两个位置,参见方法1100的行15,能够选择两个相邻的比特。重新移动实现在第三循环进程中重新选择不同的比特,如这通过msk(3)表明。
上文所描述的实施例中的一些实施例描述第一输入比特序列与第二输入比特序列的逻辑运算。此公开内容并不限于使用仅两个输入比特序列,而是能够构成有任意数量的输入比特序列,例如多于2,多于3或多于4,例如5、10或20个输入比特序列。
下面示例性地参考用于将三个输入比特序列逻辑运算以获得三个输出比特序列和用于将四个输入比特序列逻辑运算以获得四个输出比特序列的实施例。
图13示出用于实施方法1300的伪码的示意图。方法1300和方法300之间可能的区别能够在于,在伪码的10行中计算校正比特序列或逻辑运算结果22。尽管将方法300描述成逻辑运算结果22能够通过两个输入比特序列141和142的AND逻辑运算来获得,但方法1300适合于提高数量的输入比特序列141至143,使得通过AND逻辑运算对多对的输入比特序列进行检验。例如,进行全部对的AND逻辑运算,这表示:输入比特序列141和142、142和143以及143和141。该AND逻辑运算未经改变地提供这两个作为配对比较的输入比特序列在相一致的位置处是否具有相一致的1或1比特的信息内容,所述1或1比特在三个输入比特序列141至143的算术加法中会引起溢出。通过该成对的结果的XOR逻辑运算,能够获得在一个比特中的该信息的聚合,这表示:逻辑运算结果22未经改变地在逻辑1中显示:会出现输入比特序列141、142和143的算术加法的溢出。
尽管基于所示出的溢出比特位置可以改变三个输入比特序列141至143,但结合其他实施例的公开内容也能够仅实施两个输入比特序列的改变。重新参考图2,在相同的比特位置处、例如比特位置347处例如提高输入比特序列141的值以及同时减小输入比特序列142的值能够引起:输入比特序列141和142都不具有1。参考方法1300变得清楚的是:个别输入比特序列141、142和143在如下情况下本身单独不会产生溢出:其他输入比特序列在相同的比特位置处具有逻辑0。
校正比特序列m能够通过根据方法600获得比特掩码来获得,其中逻辑运算结果与值2相乘能够用作为函数自变量,这对应于逻辑运算结果向左移动一个比特位置。如也从行12至19中得出的那样,能够对三个输入比特序列中的至少两个、例如输入比特序列141和142执行重复匹配,所述输入比特序列被处理成可变的变量x1和x2。在此,输入比特序列141能够与逻辑运算结果相加并且附加地与校正比特序列或比特掩码的值相加并且附加地与值1相加。从输入比特序列142能够减去逻辑运算结果的值。逻辑运算结果与m和与值1相加能够与逻辑运算结果的翻倍同义。比特序列m对于全部已经被校验的比特位置以及当前被校验的比特位置具有值1。与值1附加地相加引起在比特序列m中在尚未校验的第一比特位置处的1,第一比特位置例如是图2中的比特位置348
行16和17以及18描述用于接下来的循环进程的中间变量的重新计算,这表示接下来的重复。第三输入比特序列、例如输入比特序列143能够是机密的另一加法份额,然而也能够是随机数。此外,输入比特序列143能够作为随机数本身由该设备产生,例如由加密设备10产生。使用随机的份额实现结果的随机化。
换言之,方法1300示出用于执行具有超过两个输入比特序列的算术逻辑的可行的方式。未加密形式的一些值具有到两个加法分量的有限量的可能的分配。从边信道分析视角来看,因此会有利的是:使用一个(或多个)附加的份额。在不限制普遍性的情况下,描述利用三个份额的改进方案,这表示一个附加的份额。始于两个加法份额,第一步骤能够是初始划分为三个加法份额。该方法的加法/减法能够如之前那样对仅两个份额执行。所使用的AND值能够被简单地导出。根据图3的基本方法能够构成为,通过对两个份额施加逻辑AND运算来计算AND。置于AND中的比特为如下比特位置:当两个份额相加时,所述比特位置产生向更高位的溢出。通常这表示:AND对于每个比特位置具有1比特并且仅在两个(或更多个)份额的情况下在特定位置处具有1比特。以该方式计算要相加/相减的值能够得出如下方法,所述方法对三个份额执行变换。使用该机制得到随机算法,因为对两个份额执行的全部修改与未加密数据无关,因为如之前那样考虑随机选择的第三份额。方法1300就此而言为方法300的修改方案。
其他修改方案同样是可行的。因此,修改比特序列中的仅仅一个比特序列就足够了。这种实施例的相应的设计方案根据图14描述,图14示出呈伪码形式的方法1400的示意图。与方法1300不同,处理装置能够构成为,基于式子2*(ANDΛm)计算校正比特序列42并且将校正比特序列42与输入比特序列141相加。校正比特序列42例如基于根据方法600获得的比特掩码与逻辑运算结果的AND逻辑运算。比特掩码在未被校验的位置处具有逻辑0的值,使得保持不考虑逻辑运算比特序列的从溢出比特位置开始高位的比特。通过与值2相乘,将各直接高位的比特设定为1,以便补偿溢出。这能够引起:已经考虑的比特保持为零并且通过AND逻辑运算和通过算术加法进行的进一步的运算保持对于所述未被考虑的比特无影像。此外,在如下位处能够通过如下方式补偿该效应:在下一更高位的比特位置处加上1并进而阻止溢出,其中在所述位处逻辑运算结果22显示出溢出比特位置。换言之,图14示出使用三个份额的方法的另一版本的示意图。
图15示出根据一个实施例的且呈伪码形式的方法1500的示意图。方法1500构成为,使得使用四个输入比特序列141至144。方法1500能够构成为,使得使用第一逻辑运算结果221和第二逻辑运算结果222,如其在行13和14中示出。逻辑运算结果221能够以类似于逻辑运算结果22的方式根据方法1300和1400获得,这表示进行输入比特序列的成对的AND逻辑运算和单独结果的XOR逻辑运算。
第二逻辑运算结果222能够通过四个输入比特序列141至144的逐比特的AND逻辑运算来获得。
在不同的逻辑运算结果221和222中以不同的方式将各四个输入比特序列141至144彼此逻辑运算。处理单元能够构成为,利用逻辑运算结果221和/或利用逻辑运算结果222改变至少一个第一和第二输入比特序列,以便阻止或补偿溢出的出现。根据方法1500能够通过使用两个逻辑运算结果221和222改变第一输入比特序列。输入比特序列142能够通过利用逻辑运算结果222来改变。能够执行所述步骤中的仅一个,交换或改变将要使用的逻辑运算结果与输入比特序列的关联关系,或使用其他输入比特序列。替选地或附加地可行的是:也使用功能其他的运算。
如在行17中所示的那样,输入比特序列141能够通过如下方式改变:进行逻辑运算结果222与值2n-1的算术加法,这表示在每个位置处1比特。该值能够经受与比特掩码m的AND逻辑运算,所述比特掩码能够根据方法600获得。该结果能够向左移动一个比特位置,这对应于与值2相乘。从中获得的结果能够进行与逻辑运算结果221的AND逻辑运算并且从中获得的比特序列或由此代表的值能够与输入比特序列141的值相加。这能够无溢出地进行,这表示:能够使用运算mod 2n。输入比特序列142能够如在行18中示出的那样通过逻辑运算结果222的比特序列与比特掩码m的AND逻辑运算通过如下方式进行:即该结果附加地向左移动两个比特位置。该结果同样能够相加,更确切地说与输入比特序列142相加。
无溢出能够通过取模2n运算获得。因此能够将加法应用于两个输入比特序列。本文描述的加法也能够实施为减法,所述减法借助被加数的逆值执行。
本文描述的实施例能够设计为,使得能够具有关于要保密的数据的信息的逻辑运算结果不是输出比特序列的组成部分。这表示,考虑编码的或加密的信息,而不必执行解密,这在保密方面是有利的。
实施例因此涉及以如下方式改变机密的份额:即所述份额的算术加法是无溢出的。在所描述的方法中示出的伪码能够以任意编程语言实施和/或完全或部分地作为硬件电路制造。尽管本文描述的方法描述为分别独立的方法,而方法400、500、700、900、1000、1100、1300、1400和/或1500能够单独地或组合地与方法1300组合,和/或延伸到其他的组合。尤其是,各个由此获得的改进形式能够任意地彼此组合,因为这些机制不相互妨碍。实施例提供了可如何改善侧信道阻力作为处理不同掩码方案的核心任务的机制。例如,可实施图3的基本机制,使得不损害其下层的系统的功能,但是仍获得高的侧信道阻力。在此所描述的实施例的一个方面是:在执行完整数据的连续刷新期间,份额迭代地从加法份额修改成具有异或逻辑运算的份额。在需要从加法到XOR的变换的任何地方都可以使用实施例。根据使用情况,可以选择和应用所提供的机制的特定组合。一些实施例可以是SHA-方法(SHA安全散列算法;Secure Hash Algorithm)的实施方案的一部分,所述部分提供了先进的侧信道保护。在这种情况下,实施可以基于将机密数据永久划分为至少两个份额。为了保持永久划分,能够使用掩码的变换,因为可对机密数据执行加法和XOR运算。
图16示出根据一个实施例的系统160的示意框图,所述系统包括加密设备10。加密设备10能够构成为,结合方法300、400、500、700、900、1000、1100、1300、1400和/或1500实施本文描述的实施例中的至少一个实施例。
用于将输入比特序列转换成输出比特序列的方法,所述输入比特序列的无溢出的算术加法得出机密,所述输出比特序列的逻辑XOR逻辑运算得到该机密,该方法包括:提供至少一个第一输入比特序列和第二输入比特序列。该方法包括:a)将第一输入比特序列和第二输入比特序列逻辑运算,以便获得逻辑运算结果,所述逻辑运算结果显示溢出比特位置,第一输入比特序列和第二输入比特序列在所述溢出比特位置处具有为一的值。该方法还包括:b)在至少一个溢出比特位置处改变第一输入比特序列和/或第二输入比特序列。该方法包括:利用分别改变的输入比特序列重复地执行步骤a)和b),直至逻辑运算结果不再显示溢出比特位置并且获得输出比特序列。
本文描述的实施例实现关于如下问题的解决方案,即如何能够在CPU上以有效的方式产生和/或导出虚拟数据,和如何将用于掩蔽的虚拟指令或操作集成到代码流中,使得它们是无法区分的。根据这里描述的实施例,仅产生逻辑运算,获得所述逻辑运算以导出信息,但是可以在获得输出比特序列之后丢弃该逻辑运算。实施例考虑安全的编码规则,同时实现在软件和/或硬件中方法执行的高效率。
根据方法400、500、700、900、1000、1100、1300、1400和1500描述如何能够在边信道分析方面改进该方法300的多种可行性。改进包括:
1.随机化,哪些份额用于加法或减法;
2.以XOR方式将比当前考虑的比特位置更低位的位置处的比特随机化;
3.以加法方式将比当前考虑的比特位置更高位的位置处的比特随机化;
4.对多于两个份额执行算术逻辑;
5.要变换的数据部段能够嵌入在伪/随机数据的更大的部段中。
明码值的汉明权重不与一个/多个AND值的平均的汉明权重无关。因此,汉明权重影响算法的运行时间,即实施概率分布的迭代。因为该关系可以通过攻击者观察并且可能会用于获得信息,所以附加地存在用于改进边信道性能的措施:
6.通过将一定的随机性添加到循环条件中隐藏相关性;
7.通过强制最大数量的迭代使用恒定的定时,即总是执行n个迭代;和
8.将窗口技术用于一次处理多于一个比特,例如总是同时处理两个比特。
全部这些改进的机制彼此独立并进而能够独立地应用和/或彼此组合。
尽管一些方面结合设备描述,但要理解的是:所述方面也为相应方法的描述,使得设备的器件或块也可理解为相应的方法步骤或方法步骤的特征。类似于此,结合方法步骤或作为方法步骤描述的方面也为相应的设备的相应的块或细节或特征。
根据特定的实施要求,本发明的实施例能够以软件或硬件实施。实施方案能够利用数字存储介质、例如软盘、DVD、蓝光光盘、CD、ROM、PROM、EPROM、EEPROM或FLASH存储器、硬盘或其他磁性或光学存储器来执行,在所述存储介质上存储可电子读取的控制信号,所述控制信号与可编程计算机系统协作或可以与其协作,使得执行相应的方法。因此,数字存储介质可以是计算机可读的。因此,根据本发明的一些实施例包括具有电子可读的控制信号的数据载体,所述控制信号能够:与可编程计算机系统协作,使得执行这里所描述的方法之一。
通常,本发明的实施例可以作为具有程序代码的计算机程序产品实现,其中程序代码以如下方式起作用:当计算机程序产品在计算机上运行时执行这些方法之一。程序代码例如也可以存储在例如机器可读的载体上。
其他实施例包括用于执行本文描述的方法之一的计算机程序,其中计算机程序存储在机器可读的载体上。
换句话说,根据本发明的方法的一个实施例因此是一种计算机程序,所述计算机程序具有程序代码,当所述计算机程序在计算机上运行时用于执行本文描述方法之一的程序代码。因此,根据本发明的方法的另一实施例是数据载体(或数字存储介质或计算机可读介质),在所述数据载体上记录用于执行本文描述的方法之一的计算机程序。
因此,根据本发明的方法的另一实施例是数据流或信号序列,所述数据流或信号序列为用于执行本文描述方法之一的计算机程序。例如,数据流或信号序列可以以如下方式配置:经由数据通信连接、例如经由因特网传输。
另一实施例包括处理装置,例如计算机或可编程逻辑器件,所述计算机或可编程逻辑器件如下配置或适配:执行本文描述的方法之一。
另一实施例包括计算机,在所述计算机上安装用于执行本文描述的方法之一的计算机程序。
在一些实施例中,可编程逻辑器件(例如,现场可编程门阵列,FPGA)可用于:执行本文描述的方法的一些或全部功能。在一些实施例中,现场可编程门阵列可以与微处理器协作,以执行本文描述的方法之一。通常,在一些实施例中,所述方法由任意硬件设备执行。这可以是通用硬件如计算机处理器(CPU)或对于该方法特定的硬件,如例如ASIC。
上述实施例仅是本发明的原理的说明。应当理解的是:本文描述的布置和细节的修改方案和变型方案对于其他本领域技术人员而言是清楚的。因此,旨在本发明仅受所附权利要求的保护范围限制,而不受根据对实施例的描述和参数这里已呈现的具体细节限制。

Claims (28)

1.一种用于将输入比特序列(14)转换成输出比特序列(26)的加密设备(10),所述输入比特序列的无溢出的算术加法得出机密,所述输出比特序列的逻辑XOR逻辑运算得到所述机密,所述加密设备具有如下特征:
用于提供至少一个第一输入比特序列(141)和第二输入比特序列(142)的数据接口(12);
处理单元(18),所述处理单元配置为,
a)将所述第一输入比特序列(141)和所述第二输入比特序列(142)进行逻辑运算,以便获得逻辑运算结果(22),所述逻辑运算结果显示溢出比特位置,所述第一输入比特序列(141)和所述第二输入比特序列(142)在所述溢出比特位置处具有为一的值;和
b)在至少一个溢出比特位置处改变所述第一输入比特序列(141)和/或所述第二输入比特序列(142);
其中所述处理单元(18)配置为,利用每次改变的输入比特序列重复地执行所述步骤a)和b),直至所述逻辑运算结果(22)不再显示溢出比特位置而获得所述输出比特序列(261,262)。
2.根据权利要求1所述的加密设备,其中所述处理单元(18)构成为,在至少一个所述溢出比特位置处改变所述第一输入比特序列(141)和/或所述第二输入比特序列(142),使得所述输出比特序列的XOR逻辑运算结果对应于所述输入比特序列的算术加法结果mod 2n,其中n是所述第一输入比特序列(141)和所述第二输入比特序列(142)的比特的数量。
3.根据权利要求1或2所述的加密设备,所述加密设备形成为安全控制器。
4.根据权利要求1或2所述的加密设备,其中将所述处理单元(18)配置为,通过提高由所述输入比特序列所代表的值在所述至少一个溢出比特位置处改变所述第一输入比特序列(141)和/或所述第二输入比特序列(142)。
5.根据权利要求1或2所述的加密设备,其中所述处理单元(18)配置为,将至少一个第三输入比特序列(143)与所述第一输入比特序列(141)和所述第二输入比特序列(142)进行逻辑运算,以便获得所述逻辑运算结果(22)。
6.根据权利要求5所述的加密设备,其中所述处理单元(18)构成为,产生所述第三输入比特序列(143)作为随机数。
7.根据权利要求1或2所述的加密设备,其中所述处理单元(18)构成为,为了在所述至少一个溢出比特位置处改变所述第一输入比特序列(141)和/或所述第二输入比特序列(142)而基于所述逻辑运算结果(22)计算校正比特序列(42),并且将所述第一输入比特序列(141)或所述第二输入比特序列(142)与所述校正比特序列(42)相加。
8.根据权利要求7所述的加密设备,其中所述处理单元(18)配置为,基于如下规则
2*(ANDΛm)
计算所述校正比特序列(42),其中AND是逻辑运算比特序列,所述逻辑运算比特序列代表所述逻辑运算结果(22),并且其中m是比特掩码,基于所述比特掩码,不考虑所述逻辑运算比特序列的从所述溢出比特位置开始更高位的比特。
9.根据权利要求1或2所述的加密设备,其中所述数据接口(12)构成为,提供至少一个第一、第二、第三和第四输入比特序列(141-144);
其中所述处理单元(18)构成为,
a)将所述第一至第四输入比特序列(141-144)以第一方式和方法进行逻辑运算,以便获得第一逻辑运算结果(221),并且将所述第一至第四输入比特序列以第二方式和方法进行逻辑运算,以便获得第二逻辑运算结果(222),并且
b)利用所述第一逻辑运算结果(221)改变所述第一和第二输入比特序列(141,142)中的至少一个输入比特序列,和/或利用所述第二逻辑运算结果(222)改变所述第一和第二输入比特序列(141,142)中的至少一个输入比特序列。
10.根据权利要求1或2所述的加密设备,其中所述处理单元(18)构成为,为了在所述至少一个溢出比特位置处改变所述第一输入比特序列(141)和所述第二输入比特序列(142)而基于所述逻辑运算结果(22)计算校正比特序列(42),将所述校正比特序列(42)与所述第一和第二输入比特序列中的一个输入比特序列(142)相加,并且将所述校正比特序列从所述第一和第二输入比特序列中的另一个输入比特序列中减去,或者与取反的校正比特序列(42)相加。
11.根据权利要求10所述的加密设备,其中所述处理单元(18)构成为,获得所述输出比特序列(261,262),使得由通过所述输入比特序列(14)所代表的输入值的算术加法结果和由通过所述输出比特序列(26)代表的输出值的算术加法结果相同。
12.根据权利要求1或2所述的加密设备,其中所述处理单元(18)构成为,基于所述第一输入比特序列(141)和所述第二输入比特序列(142)的逐比特的AND逻辑运算,获得所述逻辑运算结果(22),其中所述逻辑运算结果(22)在具有逻辑1的比特位置处显示至少一个溢出比特位置。
13.根据权利要求1或2所述的加密设备,其中所述处理单元(18)构成为,从所述逻辑运算结果(22)的最低有效位开始朝最高有效位重复地分析所述逻辑运算结果(22),并且当所述逻辑运算结果(22)在被分析的位(38)处对应于预定义的值时,提高由所述第一输入比特序列(141)代表的第一值并且减小由所述第二输入比特序列(142)代表的第二值,而当所述逻辑运算结果(22)在被分析的位(38)处不对应于预定义的值时,使所述第一值和所述第二值不变。
14.根据权利要求1或2所述的加密设备,其中所述处理单元(18)配置为,在第一循环进程中减小由所述第一输入比特序列(141)代表的值并且将具有减小的值的所获得的比特序列用作为随后的第二循环进程中的输入比特序列,其中所述处理单元(18)配置为,提高所述第二循环进程中的被减小的值。
15.根据权利要求14所述的加密设备,其中所述处理单元(18)配置为,从随机数(rnd)中导出:在所述第二循环进程期间是减小还是提高由所述第一输入比特序列(141)代表的第一值。
16.根据权利要求1或2所述的加密设备,
其中所述逻辑运算结果(22)具有多个比特,其中所述逻辑运算结果(22)的每个比特单义地与所述第一输入比特序列(141)的一个比特相关联和单义地与所述第二输入比特序列(142)的一个比特相关联,
其中所述处理单元(18)构成为,重复执行所述步骤a)和b),以便就是否存在溢出比特位置在此重复针对所述逻辑运算结果(22)的每个比特检验所述逻辑运算结果(22);
其中所述处理单元(18)配置为,通过与随机数(rnd)进行XOR逻辑运算来随机化所述第一输入比特序列(141)的如下比特和/或所述第二输入比特序列(142)的如下比特,针对所述比特已经检验所述逻辑运算结果(22)。
17.根据权利要求1或2所述的加密设备,
其中所述逻辑运算结果(22)具有多个比特,其中所述逻辑运算结果(22)的每个比特单义地与所述第一输入比特序列(141)的一个比特相关联和单义地与所述第二输入比特序列(142)的一个比特相关联,
其中所述处理单元(18)构成为,重复执行所述步骤a)和b),以便就是否存在溢出比特位置在此重复针对所述逻辑运算结果(22)的每个比特检验所述逻辑运算结果(22);
其中所述处理单元(18)配置为,通过与随机数(rnd)进行AND逻辑运算来随机化所述第一输入比特序列(141)的如下比特和/或所述第二输入比特序列(142)的如下比特,针对所述比特未校验所述逻辑运算结果(22)。
18.根据权利要求1或2所述的加密设备,其中所述处理单元(18)构成为,获得第一随机比特序列和第二随机比特序列;将所述第一输入比特序列(141)嵌入到所述第一随机比特序列中以获得扩展的第一输入比特序列(46);将第二输入比特序列(142)嵌入到第二随机数中以获得扩展的第二输入比特序列,其中所述处理单元(18)还构成为,基于所述扩展的第一比特序列(46)和所述扩展的第二输入比特序列的逻辑运算获得所述逻辑运算结果(22)。
19.根据权利要求18所述的加密设备,其中所述处理单元(18)构成为,提供具有相同比特长度的所述扩展的第一输入比特序列(46)和所述扩展的第二输入比特序列,并且在相应的扩展的比特序列之内在相一致的位置处将所述第一输入比特序列(141)定位在所述扩展的第一输入比特序列(46)中和将所述第二输入比特序列(142)定位在所述扩展的第二输入比特序列中。
20.根据权利要求18所述的加密设备,其中逻辑运算器(19)的所述处理单元(18)构成为,提供所述扩展的第一输入比特序列和所述扩展的第二输入比特序列,使得基于所述第一和第二随机比特序列获得所述逻辑运算结果(22)对于所述第一和第二输入比特序列(142)的比特是无溢出的。
21.根据权利要求1或2所述的加密设备,
其中所述逻辑运算结果(22)具有多个比特,其中所述逻辑运算结果(22)的每个比特单义地与所述第一输入比特序列(141)的一个比特相关联和单义地与所述第二输入比特序列(142)的一个比特相关联,
其中所述处理单元(18)构成为,重复地执行所述步骤a)和b),以便就是否存在溢出比特位置在此重复针对所述逻辑运算结果(22)的每个比特检验所述逻辑运算结果(22);
其中所述处理单元(18)构成为,对所述逻辑运算结果(22)的未校验的比特补充随机数量的比特,使得重复执行步骤a)和b)的次数是基于随机的。
22.根据权利要求1或2所述的加密设备,所述加密设备构成为,获得多个至少第一和第二输入比特序列(141,142);获得相对应数量的逻辑运算结果(22)和在溢出比特位置处改变相对应数量的第一输入比特序列(141)和/或第二输入比特序列(142);并且获得相对应数量的输出比特序列(26),其中所述处理单元(18)构成为,在总是恒定的持续时间中产生所述数量的输出比特序列。
23.根据权利要求22所述的加密设备,其中所述处理单元(18)构成为,在保持由通过所述第一输入比特序列(141)代表的第一值和通过所述第二输入比特序列(142)代表第二值构成的和值的情况下,针对所述逻辑运算结果(22)的每个比特(34)提高所述第一值和所述第二值中的一个值而减小另一个值,以便以恒定的持续时间改变所述数量的逻辑运算结果(22)和进而以恒定的持续时间获得所述数量的输出比特序列。
24.根据权利要求1或2所述的加密设备,其中所述处理单元(18)构成为,基于窗口函数确定用于所述第一输入比特序列(141)和/或所述第二输入比特序列(142)的循环进程的比特,所述窗口函数在多个循环进程中随时间而变地针对相应的循环进程选择所述逻辑运算结果(22)的至少一个第一比特和第二比特(34),其中所述处理单元(18)构成为,在循环进程期间改变在所述第一输入比特序列(141)和/或所述第二输入比特序列(142)中的所选择的比特(34)。
25.根据权利要求1或2所述的加密设备,其中所述逻辑运算结果(22)不是所述输出比特序列(26)的组成部分。
26.根据权利要求1或2所述的加密设备,其中所述处理单元(18)构成为,将在第一循环进程的步骤b)中获得的经改变的比特序列(14')用作为随后的第二循环进程的输入比特序列。
27.一种系统(160),其具有根据权利要求1至26中任一项所述的加密设备。
28.一种用于将输入比特序列转换成输出比特序列的方法,所述输入比特序列的无溢出的算术加法得出机密,所述输出比特序列的逻辑XOR逻辑运算得到所述机密,
提供至少一个第一输入比特序列(141)和第二输入比特序列(142);
a)将所述第一输入比特序列(141)和所述第二输入比特序列(142)进行逻辑运算,以便获得逻辑运算结果(22),所述逻辑运算结果显示溢出比特位置,所述第一输入比特序列(141)和所述第二输入比特序列(142)在所述溢出比特位置处具有为一的值;
b)在至少一个溢出比特位置处改变所述第一输入比特序列(141)和/或所述第二输入比特序列(142);
利用每次改变的输入比特序列重复地执行所述步骤a)和b),直至所述逻辑运算结果不再显示溢出比特位置而获得所述输出比特序列。
CN201910481540.9A 2018-06-05 2019-06-04 用于转换输入比特序列的加密设备和方法 Active CN110569676B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018208851.9A DE102018208851A1 (de) 2018-06-05 2018-06-05 Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
DE102018208851.9 2018-06-05

Publications (2)

Publication Number Publication Date
CN110569676A CN110569676A (zh) 2019-12-13
CN110569676B true CN110569676B (zh) 2023-12-05

Family

ID=68576326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910481540.9A Active CN110569676B (zh) 2018-06-05 2019-06-04 用于转换输入比特序列的加密设备和方法

Country Status (3)

Country Link
US (1) US11495144B2 (zh)
CN (1) CN110569676B (zh)
DE (1) DE102018208851A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021101697B3 (de) * 2021-01-26 2022-02-17 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum verarbeiten geheimer daten

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020063058A (ko) * 2001-01-26 2002-08-01 한탁돈 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
CN101106381A (zh) * 2007-08-09 2008-01-16 上海交通大学 分层的低密度校验码译码器及译码处理方法
DE102011012328A1 (de) * 2011-02-24 2012-08-30 Gottfried Wilhelm Leibniz Universität Hannover Verschlüsseltes Rechnen
CN104067194A (zh) * 2011-12-22 2014-09-24 英特尔公司 用于计算多轮skein散列算法的执行单元的设备和方法
KR20150078817A (ko) * 2013-12-31 2015-07-08 (주) 아이씨티케이 디지털 값 처리 장치 및 방법
CN106209347A (zh) * 2016-07-22 2016-12-07 武汉大学 一种复杂度可变的任意阶掩码防护方法
CN107769910A (zh) * 2017-11-15 2018-03-06 东南大学 一种基于Latch PUF的抗边信道攻击DES防护方法及电路

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5816780B2 (ja) * 1977-12-02 1983-04-02 松下電器産業株式会社 信号発生装置
EP0661624A1 (en) * 1994-01-04 1995-07-05 Sun Microsystems, Inc. Pseudo-superscalar technique for video processing
AU6502896A (en) * 1995-07-20 1997-02-18 Dallas Semiconductor Corporation Single chip microprocessor, math co-processor, random number generator, real-time clock and ram having a one-wire interface
US5973628A (en) * 1997-10-03 1999-10-26 Cisco Technology, Inc. Parallel variable bit encoder
US6804355B1 (en) * 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
JP3833884B2 (ja) * 2000-09-27 2006-10-18 株式会社東芝 ディジタルフィルタ
US7290024B2 (en) * 2003-12-18 2007-10-30 Intel Corporation Methods and apparatus for performing mathematical operations using scaled integers
KR101566408B1 (ko) * 2009-03-13 2015-11-05 삼성전자주식회사 불 마스크와 산술 마스크의 변환 회로 및 변환 방법
US9003170B2 (en) * 2009-12-22 2015-04-07 Intel Corporation Bit range isolation instructions, methods, and apparatus
US9455962B2 (en) * 2013-09-22 2016-09-27 Winbond Electronics Corporation Protecting memory interface
US20170293471A1 (en) * 2014-03-28 2017-10-12 Universidad De Málaga Arithmetic units and related converters
US9813243B1 (en) * 2015-03-30 2017-11-07 EMC IP Holding Company LLC Methods and apparatus for password-based secret sharing schemes

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020063058A (ko) * 2001-01-26 2002-08-01 한탁돈 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
CN101106381A (zh) * 2007-08-09 2008-01-16 上海交通大学 分层的低密度校验码译码器及译码处理方法
DE102011012328A1 (de) * 2011-02-24 2012-08-30 Gottfried Wilhelm Leibniz Universität Hannover Verschlüsseltes Rechnen
CN104067194A (zh) * 2011-12-22 2014-09-24 英特尔公司 用于计算多轮skein散列算法的执行单元的设备和方法
KR20150078817A (ko) * 2013-12-31 2015-07-08 (주) 아이씨티케이 디지털 값 처리 장치 및 방법
WO2015102253A1 (ko) * 2013-12-31 2015-07-09 (주) 아이씨티케이 디지털 값 처리 장치 및 방법
CN106209347A (zh) * 2016-07-22 2016-12-07 武汉大学 一种复杂度可变的任意阶掩码防护方法
CN107769910A (zh) * 2017-11-15 2018-03-06 东南大学 一种基于Latch PUF的抗边信道攻击DES防护方法及电路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NORX算法G函数的线性性质研究;程文 等;密码学报(第01期);全文 *
运算器中全加器标志位的逻辑设计与应用;汤龙梅 等;福建工程学院学报(第03期);全文 *

Also Published As

Publication number Publication date
US11495144B2 (en) 2022-11-08
CN110569676A (zh) 2019-12-13
DE102018208851A1 (de) 2019-12-05
US20190371210A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
US11362802B2 (en) Cryptographic device arranged to compute a target block cipher
JP5911654B2 (ja) 乱数生成器及びストリーム暗号
EP2398182B1 (en) A device and a method for generating software code
CN108964872B (zh) 一种基于aes的加密方法及装置
CN110663215B (zh) 在白盒场景中的椭圆曲线点乘设备和方法
Ge et al. Secure and fast image encryption algorithm using hyper-chaos-based key generator and vector operation
JP6517436B2 (ja) 暗号化デバイス及び符号化デバイス
US20130077790A1 (en) Encryption processing apparatus
CN106487499B (zh) Rijndael算法的保护
US10819502B2 (en) Method for symmetric block encryption or decryption
KR102169369B1 (ko) 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치
CN111066077B (zh) 加密装置、加密方法、解密装置以及解密方法
EP3732822B1 (en) Whitebox computation of keyed message authentication codes
EP3891925B1 (en) A computation device using shared shares
CN105765896B (zh) 用于表格网络的迭代应用的计算设备
CN110569676B (zh) 用于转换输入比特序列的加密设备和方法
CN107534550B (zh) 密码设备、密码方法、计算设备和计算机可读存储介质
JP7079711B2 (ja) 変換装置、変換方法、変換プログラム及び難読プログラム
CN107835070B (zh) 一种简单的嵌入式加密方法
JP6890589B2 (ja) 計算デバイス及び方法
You et al. Low trace-count template attacks on 32-bit implementations of ASCON AEAD
US20230141210A1 (en) Neural networks
WO2021201780A1 (en) Method and system for white-box implementation of a stream cipher
CN115549892A (zh) 由加密算法处理的数据的保护
CN116684071A (zh) 一种基于布尔电路的白盒保护方案的加速实现方法及系统

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
GR01 Patent grant
GR01 Patent grant