CN114514569B - 秘密多重迭代计算装置、方法以及记录介质 - Google Patents
秘密多重迭代计算装置、方法以及记录介质 Download PDFInfo
- Publication number
- CN114514569B CN114514569B CN201980101147.0A CN201980101147A CN114514569B CN 114514569 B CN114514569 B CN 114514569B CN 201980101147 A CN201980101147 A CN 201980101147A CN 114514569 B CN114514569 B CN 114514569B
- Authority
- CN
- China
- Prior art keywords
- secret
- calculation
- iterative calculation
- iterative
- state
- 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
Links
- 238000000034 method Methods 0.000 title claims description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 281
- 238000012545 processing Methods 0.000 claims description 66
- 238000010586 diagram Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
在内侧的迭代计算没有以规定的迭代次数结束的情况下,设为保持中途的循环变量的值,在外侧的迭代计算中不进行输出值的计算。并且,然后,再一次使用在执行内侧的迭代计算时保持的循环变量的值来执行后续的迭代计算。即,在各迭代计算中,仅限于在对象迭代计算的紧内侧的迭代计算全部结束的情况下进行该对象迭代计算。通过递归地进行该计算,能够减少内侧的迭代计算中的无用的计算。
Description
技术领域
本发明涉及加密应用技术。本发明特别涉及不公开输入或输出的值、至计算结束为止所需的迭代次数而进行迭代计算的技术。
背景技术
作为不复原被加密的数值而得到特定的运算结果的方法,有被称为秘密计算的方法(例如,参照非专利文献1。)。在非专利文献1的方法中,进行使数值的片断分散到3个秘密计算装置中的加密,3个秘密计算装置进行协调计算,由此,不复原数值,能够使加减运算、常数加法运算、乘法运算、常数倍、逻辑运算(“非”、“与”、“或”、“异或”)以及数据形式变换(整数、二进制)的结果以被分散到3个秘密计算装置中的状态、即保持被加密的状态来保持。
另外,在除了输入或输出的值之外还未公开迭代次数而进行直到计算结束为止的迭代次数不定的迭代计算的情况下,存在如下方法:预先求出成为直到计算结束为止的迭代次数的上界的次数N,在中途计算结束的条件被满足了的情况下,不更新计算结果的值而进行N次迭代计算。
现有技术文献
非专利文献
非专利文献1:千田浩司、滨田浩气、五十风大、高桥克巳“轻量可验证3部分秘匿函数计算的再考”(千田浩司、濱田浩気、五十嵐大、高橋克巳、“軽量検証可能3パーティ秘匿関数計算の再考”)、In CSS,2010。
发明内容
本发明要解决的课题
但是,在迭代计算中还包含迭代计算的情况下,若将直到外侧的迭代计算的计算结束为止的迭代次数的上界设为N,将直到内侧的迭代计算的计算结束为止的迭代次数的上界设为M,则需要执行MN次内侧的迭代计算。
本发明的目的在于提供在迭代计算中还包含迭代计算的情况下,以较少的内侧的迭代计算的执行次数实现迭代计算的秘密多重迭代计算装置、方法以及程序。
用于解决课题的手段
本发明的一方式的秘密多重迭代计算装置包括:秘密初始化部,将循环变量设定为虚拟值,并将各迭代计算的状态设定为“执行前”,所述循环变量是在迭代计算中被使用的、值能够按每个迭代计算变化的规定的变量;以及秘密迭代计算部,输出使用输入和规定的迭代次数进行了成为计算对象的迭代计算的结果,所述秘密迭代计算部包括:(i)秘密输入反映部,在成为当前计算的对象的迭代计算即对象迭代计算的状态为“执行前”、并且对象迭代计算的全部的输入不是虚拟值的情况下,使用对象迭代计算的输入,对对象迭代计算的循环变量的初始值进行秘密计算,在对象迭代计算中存在内侧的迭代计算的情况下,将该内侧的各迭代计算的状态初始化为“执行前”,将对象迭代计算的状态变更为“执行中”;(ii)秘密更新部,将处理仅进行规定的迭代次数,所述秘密更新部包括:(a)秘密循环变量计算部,使用紧前被秘密计算出的对象迭代计算的循环变量的值,在对象迭代计算中存在内侧的迭代计算的情况下,进行与该内侧的各迭代计算有关的秘密迭代计算部的处理,从而对对象迭代计算的循环变量的新的值进行秘密计算;(b)秘密循环变量更新部,在对象迭代计算的状态为“执行中”、并且对象迭代计算的内侧的各迭代计算的状态为“结束”的情况下,将新的值设为对象迭代计算的循环变量的值,将对象迭代计算的内侧的各迭代计算的状态更新为“执行前”;以及(c)秘密结束状态反映部,在对象迭代计算的状态为“执行中”、并且对象迭代计算的循环变量的值满足规定的结束条件的情况下,将对象迭代计算的状态变更为“结束”;以及(iii)秘密输出计算部,在对象迭代计算的状态为“结束”的情况下,根据循环变量的值,对对象迭代计算的输出值进行秘密计算并输出。
发明效果
在迭代计算中还包含迭代计算的情况下,能够以较少的内侧的迭代计算的执行次数来实现迭代计算。
附图说明
图1是表示秘密多重迭代计算装置的功能结构的例子的图。
图2是表示秘密多重迭代计算方法的处理过程的例子的图。
图3是表示秘密初始化部1的处理的例子的图。
图4是表示与第一迭代计算有关的秘密迭代计算部2的处理的例子的图。
图5是表示与第二迭代计算有关的秘密迭代计算部2的处理的例子的图。
图6是表示与第一迭代计算有关的秘密迭代计算部2的处理的变形例的图。
图7是表示与第二迭代计算有关的秘密迭代计算部2的处理的变形例的图。
图8是表示计算机的功能结构例的图。
具体实施方式
[概要]
在本发明中,假设为在内侧的迭代计算没有以规定的迭代次数结束的情况下,保持中途的循环变量的值,在外侧的迭代计算中不进行输出值的计算。并且,然后,再一次使用在执行内部迭代计算时保持的循环变量的值来执行后续的迭代计算。即,在各迭代计算中,仅限于在对象迭代计算的紧内侧的迭代计算全部结束的情况下进行该对象迭代计算。通过递归地进行该计算,能够减少内侧的迭代计算中的无用的计算。
[实施方式]
以下,对本发明的实施方式进行详细说明。另外,在附图中对具有相同功能的结构部标注相同的号码,省略重复说明。
如图1所示,秘密多重迭代计算装置具有秘密初始化部1以及秘密迭代计算部2。秘密迭代计算部2包括秘密输入反映部21、秘密更新部22以及秘密输出计算部23。秘密更新部22包括秘密循环变量计算部221、秘密循环变量更新部222以及秘密结束状态反映部223。
秘密多重迭代计算方法例如通过秘密多重迭代计算装置的各结构部进行以下说明的以及图2所示的步骤S1到步骤S2的处理来实现。
以下,说明秘密多重迭代计算装置的各结构部。
<秘密初始化部1>
秘密初始化部1将循环变量设置为虚拟(dummy,伪)值,并各迭代计算的状态设定为“执行前”(步骤S1),该循环变量是在迭代计算中被使用的、值能够按每个迭代计算变化的规定的变量。虚拟值是表示循环变量的值为虚拟的规定的值。
<秘密迭代计算部2>
秘密迭代计算部2输出使用输入和规定的迭代次数进行成为计算对象的迭代计算的结果(步骤S2)。
秘密迭代计算部2包括秘密输入反映部21、秘密更新部22以及秘密输出计算部23。步骤S2的处理例如通过由秘密输入反映部21、秘密更新部22以及秘密输出计算部23执行的步骤S21至步骤S23的处理来实现。
<<秘密输入反映部21>>
秘密输入反映部21在成为当前计算的对象的迭代计算即对象迭代计算的状态为“执行前”、并且对象迭代计算的全部的输入不是虚拟值的情况下,(a)使用对象迭代计算的输入,对于对象迭代计算的循环变量的初始值进行秘密计算,(b)在对象迭代计算中存在内侧的迭代计算的情况下,将其内侧的各迭代计算的状态初始化为“执行前”,(c)将对象迭代计算的状态变更为“执行中”(步骤S21)。
<<秘密更新部22>>
秘密更新部22包括秘密循环变量计算部221、秘密循环变量更新部222以及秘密结束状态反映部223。
秘密更新部22的处理例如通过由秘密循环变量计算部221、秘密循环变量更新部222以及秘密结束状态反映部223执行的步骤S221至步骤S223的处理而被实现。秘密更新部22将由秘密循环变量计算部221、秘密循环变量更新部222以及秘密结束状态反映部223执行的步骤S221到步骤S223的处理仅执行规定的迭代次数。
<<<秘密循环变量计算部221>>>
秘密循环变量计算部221使用紧前被秘密计算出的对象迭代计算的循环变量的值,在对象迭代计算中存在内侧的迭代计算的情况下,通过进行与该内侧的各迭代计算有关的秘密迭代计算部2的处理,从而对于对象迭代计算的循环变量的新的值进行秘密计算(步骤S221)。
<<<秘密循环变量更新部222>>>
秘密循环变量更新部222在对象迭代计算的状态为“执行中”、并且对象迭代计算的内侧的各迭代计算的状态为“结束”的情况下,(b-i)将由秘密循环变量计算部221被秘密计算出的新的值作为对象迭代计算的循环变量的值,(b-ii)将对象迭代计算的内侧的各迭代计算的状态更新为“执行前”(步骤S222)。
<秘密结束状态反映部223>
在对象迭代计算的状态为“执行中”、并且对象迭代计算的循环变量的值满足规定的结束条件的情况下,秘密结束状态反映部223将对象迭代计算的状态变更为“结束”(步骤S223)。
<<秘密输出计算部23>>
在对象迭代计算的状态为“结束”的情况下,秘密输出计算部23根据循环变量的值秘密计算并输出对象迭代计算的输出值(步骤S23)。在对象迭代计算的状态不是“结束”的情况下,秘密输出计算部23输出虚拟值。
为了每次可靠地结束内侧的迭代计算,即使只是在有时需要大的迭代次数的情况下,需要将上界设定得较大。在本实施方式中,在内侧的迭代计算未结束的情况下,“假装”执行了其他处理而实际上不更新值,之后在再次进入内侧的迭代计算时执行后续的处理。由此,在大的上界之下内侧的迭代次数存在偏差的情况下,能够削减无用的迭代。
更具体地,在对象迭代计算的状态是“执行中”、并且对象迭代计算的内侧的各迭代计算的状态不是“结束”的情况下,换言之,在对象迭代计算的循环变量的值不满足规定的结束条件的情况下,不进行秘密输入反映部21的处理,该秘密输入反映部21的处理是执行进行对象迭代计算的循环变量的初始值等处理的处理。这是因为秘密输入反映部21至少在对象迭代计算的状态是“执行前”的情况下被执行。另外,在该情况下,不进行根据循环变量的值,对于对象迭代计算的输出值进行秘密计算并输出的秘密输出计算部23的处理。这是因为秘密输出计算部23在对象迭代计算的状态为“结束”的情况下被进行。
因此,在该情况下,不进行秘密输出计算部23的处理,在秘密更新部22中,使用紧前被秘密计算出的对象迭代计算的循环变量的值,进行迭代计算的后续计算。换言之,在这种情况下,保持对象迭代计算的循环变量的值,不根据循环变量的值进行对象迭代计算的输出值的秘密计算以及输出。
这样,假设为在内侧的迭代计算没有以规定的迭代次数结束的情况下,保持中途的循环变量的值,在外侧的迭代计算中不进行输出值的计算。然后,再一次使用在执行内部迭代计算时保持的循环变量的值来执行后续的迭代计算。即,在各迭代计算中,仅限于在对象迭代计算的紧内侧的迭代计算全部结束的情况下进行该对象迭代计算。通过递归地进行该计算,能够减少内侧的迭代计算中的无用的计算。
在想要不公开迭代次数地执行多重的迭代计算的情况下,能够稍微增加外侧的迭代的执行次数而减少内侧的迭代的执行次数。在通常的方法中,内侧的迭代的执行次数成为各层次的迭代次数的上界的积,因此变得非常大,但在本发明中能够大幅减小。
例如,在已知外侧的迭代次数的上界为6次、内侧的迭代次数的上界为50次,进而内侧的迭代次数超过25的情况最多为2次时,在以往的方法中需要执行300=50×6次内侧的迭代计算。但是,根据本发明,例如通过将外侧的迭代次数的上界设定为8次,将内侧的迭代次数的上界设定为25次,能够将内侧的迭代计算抑制为200=25×8次的执行。
另外,在不使用本实施方式的情况下,也可以将迭代计算x的1次迭代所需的处理时间中、除去了x的内侧的迭代计算的处理时间后的时间设为f(x),将迭代次数的上界设为N(x),将包含x的各迭代计算的迭代次数的上界的积设为T(x)(在x为最外侧的情况下设为T(x)=1),将在使用本发明的情况下的迭代计算x的1次迭代所需的处理时间中、除去了x的内侧的迭代计算的处理时间后的时间设为f'(x),将迭代次数的上界设为N'(x),将包含x的各迭代计算的迭代次数的上界的积设为T'(x)(在x为最外侧的情况下设为T'(x)=1)。此时,在能够以Σx(T(x)N(x)f(x))>Σx(T'(x)N'(x)f'(x))成立的方式设定各迭代计算x的迭代次数的上界N'(x)时,通过本实施方式能够减少整体的处理时间。
[迭代计算的例子]
图3以及图4表示秘密多重迭代计算装置进行由第一迭代计算以及第二迭代计算构成的迭代计算的情况下的秘密多重迭代计算装置的处理的例子。
将第一迭代计算记为f1(x1,y1)。f1(x1,y1)也是设为u(n)=Σi=0 n-1f2(x1+i),输出满足y1≤u(n),1≤n的最少的u(n)的函数。设为f1(x1,y1)的输入是x1,y1,f1(x1,y1)的输出是z1。f1(x1,y1)的循环变量为a1,b1,t1。另外,将表示第一迭代计算的状态的变量设为s1。以下,有时将表示第一迭代计算的状态的变量s1简称为第一迭代计算的状态s1。设第一迭代计算的规定的迭代次数为n1。n1是规定的正整数。
另外,将第二迭代计算记为f2(x2)。f2(x2)也是输出x2以上的最小的10的倍数的函数。假设为f2(x2)的输入是x2,f2(x2)的输出是z2。假设为f2(x2)的循环变量为a2,t2。另外,将表示第二迭代计算的状态的变量设为s2。以下,也有时将表示第二迭代计算的状态的变量s2仅简称为第二迭代计算的状态s2。假设为第二迭代计算的规定的迭代次数为n2。n2是规定的正整数。
以下,对图3及图4中使用的记法进行说明。
[x]为x的隐匿值。
[z]←[a]+[b]意味着计算如z=a+b这样的z的隐匿值。
[z]←[a][b]意味着计算如z=ab这样的z的隐匿值。
[z]←EQ([a],[b])意味着计算在a=b时z=1、在不是a=b时z=0这样的z的隐匿值。
[z]←LE([a],[b])意味着计算在a≤b时z=1、在不是a≤b时z=0这样的z的隐匿值。
[z]←NE([a],[b]))意味着计算在a≠b时z=1、在不是a≠b时z=0这样的z的隐匿值。
[z]←IfElse([c],[a],[b])意味着计算在c=1时z=a、在c=0时z=b这样的z的隐匿值。
[z]←AND([a1],[a2],...,[an])意味着计算z=a1a2...an这样的z的隐匿值。
NULL是规定的虚拟值。某个变量v是否为虚拟,假设为能够通过是否为v=NULL来判定。将v设为虚拟的处理,假设为能够通过v←NULL来实现,将v设为不为虚拟的值v的处理,假设为能够通过v←x来实现。另外,也可以按各变量v的每一个来准备另外的变量Dummy(v),在变量v为虚拟时Dummy(v)设为1,在变量v不为虚拟时设为Dummy(v)=0。在这种情况下,将v设为虚拟的处理能够通过Dummy(v)←1来实现,将v设为不为虚拟的值v的处理能够通过Dummy(v)←0来实现。
PRE、RUN、END分别表示“执行前”、“执行中”、“结束”。
另外,在秘密循环变量计算部221中,各处理在输入的一部分中包含虚拟值的情况下,以输出也成为虚拟的方式进行计算。假设为将这样的计算称为进行了虚拟对应的计算。将进行了虚拟对应的各计算如下记述。
[z]←D-Add([a],[b])意味着将用于求出z=a+b这样的z的隐匿值的计算进行了虚拟对应的计算。
[z]←D-LE([a],[b])意味着将在a≤b时z=1、在不是a≤b时z=0这样的z的隐匿值执行进行了虚拟对应的计算。
另外,秘密迭代计算是虚拟对应的。
在该例子的情况下,秘密初始化部1的处理与图3的“1:”至“7:”对应。
秘密迭代计算部2的处理与图4的“1:”至“39:”对应。
秘密输入反映部21的处理与图4的“1:”至“11:”对应
秘密更新部22的处理与图4的“12:”至“31:”对应。
秘密循环变量计算部221的处理与图4的“12:”至“17:”对应。在图4的“16:”中,进行与第一迭代计算的内侧的第二迭代计算有关的秘密迭代计算部2的处理,换言之进行f2([a1'])的计算处理。与第二迭代计算有关的秘密迭代计算部2的处理,与图5的“1:”至“34:”对应。
秘密循环变量更新部222的处理与图4的“18:”至“26:”对应。
秘密结束状态反映部223的处理与图4的“27:”至“31:”对应。
秘密输出计算部23的处理与图4的“32:”至“39”对应。
[变形例]
以上,虽然对本发明的实施方式进行了说明,但具体的结构不限于这些实施方式,在不脱离本发明的主旨的范围内,即使有适当的设计变更等,当然也包含在本发明中。
在实施方式中说明了的各种处理不仅可以按照记载的顺序按时间序列执行,也可以根据执行处理的装置的处理能力或需要并行或单独执行。
例如,秘密多重迭代计算装置的结构部之间的数据的交换可以直接进行,也可以经由未图示的存储部进行。
另外,在以附带条件方式进行处理的情况下,为了不公开成为条件的值(隐匿值),也可以将写入目的地改变为临时变量来执行满足条件的情况和不满足条件的情况这两者的处理。
例如,对于在至少一方的情况下值被变更的各值ai的隐匿值[ai],在将满足条件的情况下的值的隐匿值设为[ti],将不满足条件的情况下的值的隐匿值设为[fi],将表示条件被满足了(1)、还是条件未被满足(0)的比特的隐匿值设为[c]时,也可以进行[ai]←[c]×[ti]+(1-[c])×[fi]的计算。
换句话说,秘密输入反映部21、秘密循环变量更新部222、秘密结束状态反映部223以及秘密输出计算部23也可以隐匿是否符合各情况的同时执行处理。
在图6以及图7表示秘密输入反映部21、秘密循环变量更新部222、秘密结束状态反映部223以及秘密输出计算部23隐匿是否符合各情况的同时进行的处理的例子。图6以及图7中出现的符号和记法与[迭代计算的例子]中所述的相同。
秘密输入反映部21的处理与图6的“1:”至“10:”对应。
秘密更新部22的处理与图6的“11:”至“33:”对应。
秘密循环变量计算部221的处理与图6中的“13:”至“16:”对应。在图6的“15:”中,进行与第一迭代计算的内侧的第二迭代计算有关的秘密迭代计算部2的处理,换言之进行f2([a1'])的计算处理。与此时的第二迭代计算有关的秘密迭代计算部2的处理与图7的“1:”至“28:”对应。
秘密循环变量更新部222的处理与图6的“17:”至“24:”对应。
秘密结束状态反映部223的处理与图6的“26:”至“27:”对应。
秘密输出计算部23的处理与图6的“29:”至“33:”对应。
[程序、记录介质]
在通过计算机实现上述说明的各装置中的各种处理功能的情况下,各装置应具有的功能的处理内容通过程序来记述。并且,通过由计算机执行该程序,在计算机上实现上述各装置中的各种处理功能。例如,上述各种处理能够通过使图8所示的计算机的记录部2020读入要执行的程序,使控制部2010、输入部2030、输出部2040等动作来实施。
记述了该处理内容的程序能够记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如也可以是磁记录装置、光盘、光磁记录介质、半导体存储器等这样的介质。
此外,该程序的流通例如通过销售、转让、出借记录了该程序的DVD、CD-ROM等便携式记录介质来进行。进而,也可以构成为将该程序保存在服务器计算机的存储装置中,通过网络,从服务器计算机向其他计算机转发该程序,从而使该程序流通。
执行这种程序的计算机例如首先将存储在便携式存储介质中的程序或从服务器计算机转发的程序暂时保存在自己的存储装置中。然后,在执行处理时,该计算机读取保存在自己的存储装置中的程序,并按照读取的程序执行处理。另外,作为该程序的另一执行方式,计算机也可以从便携式存储介质直接读取程序,执行按照该程序的处理,并且,每当程序从服务器计算机转发到该计算机时也可以依次按照所接收的程序执行处理。此外,也可以构成为,不从服务器计算机向该计算机转发程序,而仅通过该执行指示和结果取得来实现处理功能,即通过所谓的ASP(Application Service Provider,应用服务提供商)型的服务来执行上述处理。另外,在本方式的程序中,设为包含作为供电子计算机的处理使用的信息的、遵照程序的信息(不是对计算机的直接指令,但具有规定计算机的处理的性质的数据等)。
此外,在该方式中,设为通过在计算机上执行规定的程序来构成本装置,但是也可以设为仅在硬件上实现这些处理内容的至少一部分。
Claims (3)
1.一种秘密多重迭代计算装置,包括:
秘密初始化部,将循环变量设定为虚拟值,并将各迭代计算的状态设定为“执行前”,所述循环变量是在迭代计算中被使用的、值能够按每个迭代计算变化的规定的变量;以及
秘密迭代计算部,输出使用输入和规定的迭代次数进行了成为计算对象的迭代计算的结果,
所述秘密迭代计算部包括:
(i)秘密输入反映部,在成为当前计算的对象的迭代计算即对象迭代计算的状态为“执行前”、并且所述对象迭代计算的全部的输入不是虚拟值的情况下,使用所述对象迭代计算的输入,对所述对象迭代计算的循环变量的初始值进行秘密计算,在所述对象迭代计算中存在内侧的迭代计算的情况下,将该内侧的各迭代计算的状态初始化为“执行前”,将所述对象迭代计算的状态变更为“执行中”;
(ii)秘密更新部,将秘密循环变量计算部、秘密循环变量更新部和秘密结束状态反映部的处理仅进行所述规定的迭代次数,所述秘密更新部包括:(a)秘密循环变量计算部,使用紧前被秘密计算出的所述对象迭代计算的循环变量的值,在所述对象迭代计算中存在内侧的迭代计算的情况下,进行与该内侧的各迭代计算有关的所述秘密迭代计算部的处理,从而对所述对象迭代计算的循环变量的新的值进行秘密计算;(b)秘密循环变量更新部,在所述对象迭代计算的状态为“执行中”、并且所述对象迭代计算的内侧的各迭代计算的状态为“结束”的情况下,将所述新的值设为所述对象迭代计算的循环变量的值,将所述对象迭代计算的内侧的各迭代计算的状态更新为“执行前”;以及(c)秘密结束状态反映部,在所述对象迭代计算的状态为“执行中”、并且所述对象迭代计算的循环变量的值满足规定的结束条件的情况下,将所述对象迭代计算的状态变更为“结束”;以及
(iii)秘密输出计算部,在所述对象迭代计算的状态为“结束”的情况下,根据循环变量的值,对所述对象迭代计算的输出值进行秘密计算并输出,
所述秘密输入反映部、所述秘密循环变量更新部、所述秘密结束状态反映部以及所述秘密输出计算部分别将是否符合各自所对应的所述情况这一情形进行隐匿并进行处理。
2.一种秘密多重迭代计算方法,包括:
秘密初始化步骤,秘密初始化部将循环变量设定为虚拟值,并将各迭代计算的状态设置为“执行前”,所述循环变量是在迭代计算中被使用的、值能够按每个迭代计算变化的规定的变量;以及
秘密迭代计算步骤,秘密迭代计算部输出使用输入和规定的迭代次数进行了成为计算对象的迭代计算的结果,
所述秘密迭代计算步骤包括:
(i)秘密输入反映步骤,在成为当前计算的对象的迭代计算即对象迭代计算的状态为“执行前”、并且所述对象迭代计算的全部的输入不是虚拟值的情况下,秘密输入反映部使用所述对象迭代计算的输入,对所述对象迭代计算的循环变量的初始值进行秘密计算,在所述对象迭代计算中存在内侧的迭代计算的情况下,将该内侧的各迭代计算的状态初始化为“执行前”,将所述对象迭代计算的状态变更为“执行中”;
(ii)秘密更新步骤,将秘密循环变量计算部、秘密循环变量更新部和秘密结束状态反映部的处理仅进行所述规定的迭代次数,所述秘密更新步骤包括:(a)秘密循环变量计算步骤,所述秘密循环变量计算部使用紧前被秘密计算出的所述对象迭代计算的循环变量的值,在所述对象迭代计算中存在内侧的迭代计算的情况下,进行与该内侧的各迭代计算有关的所述秘密迭代计算部的处理,从而对所述对象迭代计算的循环变量的新的值进行秘密计算;
(b)秘密循环变量更新步骤,在所述对象迭代计算的状态为“执行中”、并且所述对象迭代计算的内侧的各迭代计算的状态为“结束”的情况下,所述秘密循环变量更新部将所述新的值设为所述对象迭代计算的循环变量的值,将所述对象迭代计算的内侧的各迭代计算的状态更新为“执行前”;以及(c)秘密结束状态反映步骤,在所述对象迭代计算的状态为“执行中”、并且所述对象迭代计算的循环变量的值满足规定的结束条件的情况下,所述秘密结束状态反映部将所述对象迭代计算的状态变更为“结束”;以及
(iii)秘密输出计算步骤,在所述对象迭代计算的状态为“结束”的情况下,秘密输出计算部根据循环变量的值,对所述对象迭代计算的输出值进行秘密计算并输出,
所述秘密输入反映部、所述秘密循环变量更新部、所述秘密结束状态反映部以及所述秘密输出计算部分别将是否符合各自所对应的所述情况这一情形进行隐匿并进行处理。
3.一种计算机可读取的记录介质,存储程序,该程序用于使计算机作为权利要求1的秘密多重迭代计算装置的各部发挥功能。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/040006 WO2021070322A1 (ja) | 2019-10-10 | 2019-10-10 | 秘密多重反復計算装置、方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114514569A CN114514569A (zh) | 2022-05-17 |
CN114514569B true CN114514569B (zh) | 2024-03-01 |
Family
ID=75438120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980101147.0A Active CN114514569B (zh) | 2019-10-10 | 2019-10-10 | 秘密多重迭代计算装置、方法以及记录介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220350638A1 (zh) |
EP (1) | EP4044156A4 (zh) |
JP (1) | JP7351343B2 (zh) |
CN (1) | CN114514569B (zh) |
AU (1) | AU2019469404B2 (zh) |
WO (1) | WO2021070322A1 (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0298741A (ja) * | 1988-07-29 | 1990-04-11 | Digital Equip Corp <Dec> | マルチプロセッサコンピュータにおいてネスト式ループを実行する階層的方法 |
CA2658476A1 (en) * | 2006-07-21 | 2008-01-24 | Nec Corporation | Encryption device, program, and method |
US7395419B1 (en) * | 2004-04-23 | 2008-07-01 | Apple Inc. | Macroscalar processor architecture |
CN102271108A (zh) * | 2010-06-07 | 2011-12-07 | 中兴通讯股份有限公司 | 恒模序列的离散傅立叶变换的快速计算方法和装置 |
WO2012013768A1 (fr) * | 2010-07-30 | 2012-02-02 | Thales | Procede et dispositif de randomisation d'une cle secrete contre les attaques par canaux auxiliaires |
CN102761414A (zh) * | 2011-04-26 | 2012-10-31 | 航天信息股份有限公司 | 一种sm3密码杂凑算法及确定其中的变量字的方法 |
WO2013065687A1 (ja) * | 2011-11-04 | 2013-05-10 | 学校法人 早稲田大学 | プロセッサシステム及びアクセラレータ |
CN103914556A (zh) * | 2014-04-15 | 2014-07-09 | 西北工业大学 | 大规模图数据处理方法 |
CN107395347A (zh) * | 2017-08-04 | 2017-11-24 | 桂林电子科技大学 | 对称密码***代数次数评估新方法 |
WO2019181594A1 (ja) * | 2018-03-19 | 2019-09-26 | 日本電信電話株式会社 | パラメータ設定装置、演算装置、それらの方法、プログラム、および記録媒体 |
-
2019
- 2019-10-10 CN CN201980101147.0A patent/CN114514569B/zh active Active
- 2019-10-10 WO PCT/JP2019/040006 patent/WO2021070322A1/ja unknown
- 2019-10-10 EP EP19948300.9A patent/EP4044156A4/en active Pending
- 2019-10-10 US US17/764,977 patent/US20220350638A1/en active Pending
- 2019-10-10 JP JP2021551038A patent/JP7351343B2/ja active Active
- 2019-10-10 AU AU2019469404A patent/AU2019469404B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0298741A (ja) * | 1988-07-29 | 1990-04-11 | Digital Equip Corp <Dec> | マルチプロセッサコンピュータにおいてネスト式ループを実行する階層的方法 |
US7395419B1 (en) * | 2004-04-23 | 2008-07-01 | Apple Inc. | Macroscalar processor architecture |
CA2658476A1 (en) * | 2006-07-21 | 2008-01-24 | Nec Corporation | Encryption device, program, and method |
CN102271108A (zh) * | 2010-06-07 | 2011-12-07 | 中兴通讯股份有限公司 | 恒模序列的离散傅立叶变换的快速计算方法和装置 |
WO2012013768A1 (fr) * | 2010-07-30 | 2012-02-02 | Thales | Procede et dispositif de randomisation d'une cle secrete contre les attaques par canaux auxiliaires |
CN102761414A (zh) * | 2011-04-26 | 2012-10-31 | 航天信息股份有限公司 | 一种sm3密码杂凑算法及确定其中的变量字的方法 |
WO2013065687A1 (ja) * | 2011-11-04 | 2013-05-10 | 学校法人 早稲田大学 | プロセッサシステム及びアクセラレータ |
CN103914556A (zh) * | 2014-04-15 | 2014-07-09 | 西北工业大学 | 大规模图数据处理方法 |
CN107395347A (zh) * | 2017-08-04 | 2017-11-24 | 桂林电子科技大学 | 对称密码***代数次数评估新方法 |
WO2019181594A1 (ja) * | 2018-03-19 | 2019-09-26 | 日本電信電話株式会社 | パラメータ設定装置、演算装置、それらの方法、プログラム、および記録媒体 |
Non-Patent Citations (2)
Title |
---|
The Program Counter Security Model: Automatic Detection and Removal of Control-Flow Side Channel Attacks;David Molnar,Matt Piotrowski, David Schultz, and David Wagner;INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH;1-25 * |
一种基于MDP的快速公开密钥数字签名算法;郑建德;计算机研究与发展(02);102-107 * |
Also Published As
Publication number | Publication date |
---|---|
EP4044156A1 (en) | 2022-08-17 |
US20220350638A1 (en) | 2022-11-03 |
JP7351343B2 (ja) | 2023-09-27 |
CN114514569A (zh) | 2022-05-17 |
EP4044156A4 (en) | 2023-06-21 |
JPWO2021070322A1 (zh) | 2021-04-15 |
WO2021070322A1 (ja) | 2021-04-15 |
AU2019469404B2 (en) | 2023-02-02 |
AU2019469404A1 (en) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7093599B2 (ja) | ブロックチェーンにおけるスナップショットを管理する方法、コンピュータ・プログラム、スナップショット・ノード、オーディタ・ノードおよびシステム | |
JP2023052782A (ja) | ブロックチェーン上で高レベル演算を提供する方法及びシステム | |
CN107832062B (zh) | 一种程序更新方法及终端设备 | |
JP2004152136A (ja) | データ更新システム、データ更新システムの差分データ生成装置及びプログラム、並びに更新後ファイル復元装置及びプログラム | |
CN106897103B (zh) | 一种移动端网络游戏版本快速热更新的方法 | |
US11093682B2 (en) | Language and compiler that generate synchronous digital circuits that maintain thread execution order | |
US20210109920A1 (en) | Method for Validating Transaction in Blockchain Network and Node for Configuring Same Network | |
JPWO2009017131A1 (ja) | ε遷移を含まない非決定性有限オートマトン生成システムと方法およびプログラム | |
JP2018097612A (ja) | 情報処理装置、プログラム及び情報処理方法 | |
CN112463056B (zh) | 一种多节点分布式训练方法、装置、设备及可读介质 | |
CN101582697B (zh) | 低密度奇偶校验(ldpc)解码器 | |
CN113302616A (zh) | 从映射到电路实现的源代码构造生成同步数字电路 | |
US11461291B2 (en) | Method, electronic device and computer program product for processing machine learning model | |
CN103460178B (zh) | 包括掩码上的数学操作的simd整数加法 | |
CN110572164B (zh) | Ldpc译码方法、装置、计算机设备及存储介质 | |
CN114514569B (zh) | 秘密多重迭代计算装置、方法以及记录介质 | |
EP4125001A1 (en) | Machine learning program, information processing device, and machine learning method | |
CN114791865A (zh) | 一种基于关系图的配置项自洽性检测方法、***和介质 | |
CN117114087B (zh) | 故障预测方法、计算机设备和可读存储介质 | |
JPWO2020054402A1 (ja) | ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法 | |
CN113157979B (zh) | 一种基于哑模块节点的内核模块关系图构建方法、***及介质 | |
Le Martelot et al. | Crash-proof systemic computing: a demonstration of native fault-tolerance and self-maintenance | |
US20230169240A1 (en) | Computing device and method generating optimal input data | |
KR20230155760A (ko) | 양자 회로 시뮬레이션 하드웨어 | |
KR20230155761A (ko) | 상태 벡터를 효율적으로 계산하는 양자 회로 연산 방법 |
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 |