CN113518991A - 秘密数组访问装置、秘密数组访问方法以及程序 - Google Patents

秘密数组访问装置、秘密数组访问方法以及程序 Download PDF

Info

Publication number
CN113518991A
CN113518991A CN202080007097.2A CN202080007097A CN113518991A CN 113518991 A CN113518991 A CN 113518991A CN 202080007097 A CN202080007097 A CN 202080007097A CN 113518991 A CN113518991 A CN 113518991A
Authority
CN
China
Prior art keywords
array
access
value
secret
hidden
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.)
Granted
Application number
CN202080007097.2A
Other languages
English (en)
Other versions
CN113518991B (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of CN113518991A publication Critical patent/CN113518991A/zh
Application granted granted Critical
Publication of CN113518991B publication Critical patent/CN113518991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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
    • 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/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

高效地进行对数组的访问而不公开访问了的位置。存储部(10)存储数组x'的隐匿值的数组[x']、和与隐匿值的数组[x']的各要素对应的地址的数组a'。刷新部(11)求出随机的参数F的隐匿值[F]、以随机的置换ρ对数组x'进行了置换后的数组x的隐匿值的数组[x]、从地址的数组a的各要素中通过函数TagF计算出的公开标签的数组b。访问部(12)对于与从访问位置j的隐匿值[j]中通过函数Tag和参数的隐匿值[F]计算出的标签对应的隐匿值的数组[x]的要素,进行期望的访问。

Description

秘密数组访问装置、秘密数组访问方法以及程序
技术领域
本发明涉及密码应用技术,特别涉及不公开(revealing)访问的位置而对数组(array)进行数据的读取或写入的技术。
背景技术
作为不复原被加密的数值而得到确定的运算结果的方法,有被称为秘密计算的方法(例如,参照非专利文献1)。在非专利文献1中记载的方法中,进行使数值的片段分散在三个秘密计算装置的加密,三个秘密计算装置进行协调计算,由此无需复原数值,使得加减运算、常数加法运算、乘法运算、常数倍、逻辑运算(与非、逻辑积、逻辑和、异或)、数据形式变换(整数、二进制数)的结果以分散在三个秘密计算装置中的状态原样保持、即以加密的状态能够原样保持。
然而,在不公开访问的位置j而进行数组的第j个数据的读取或值w的写入的情况下,经常视为每次访问时都访问了随机的要素(例如,参照非专利文献2、3)。
现有技术文献
非专利文献
非专利文献1:千田浩司、濱田浩気、五十嵐大、高橋克巳、“軽量検証可能3パーティ秘匿関数計算的再考”、CSS、2010年
非专利文献2:Oded Goldreich and Rafail Ostrovsky,“Software protectionand simulation on oblivious rams.”J.ACM,Vol.43,No.3,pp.431-473,1996.
非专利文献3:Samee Zahur,Xiao Shaun Wang,Mariana Raykova,Adria Gasc'on,Jack Doerner,David Evans,and Jonathan Katz,“Revisiting square-root ORAM:efficient random access in multi-party computation.”In IEEE Symposium onSecurity and Privacy,SP 2016,pp.218-234,May 22-26,2016.
发明内容
发明要解决的课题
但是,在现有技术中,对大小为n的数组的访问需要Ω(log n)的通信级数。因此,在通信延迟大的环境中,访问数组所需的时间变大是一个课题。
本发明的目的是实现一种秘密数组访问技术,能够在常数级的通信中有效地进行对数组的数据读取和写入,而无需公开访问了的位置。
用于解决课题的手段
为了解决上述的课题,本发明的一个方式的秘密数组访问装置包括:存储部,存储数组x'的隐匿值的数组[x']、和与隐匿值的数组[x']的各要素对应的地址的数组a';刷新部,在将随机的置换设为ρ,将用置换ρ对数组x'进行了置换后的数组设为x,将用置换ρ对地址的数组a'进行了置换后的地址的数组设为a,将以F'为参数并表示从地址向标签的单射的函数设为agF’,将随机的参数设为F,将从地址的数组a的各要素中通过函数TagF计算出的公开标签的数组设为b时,求出参数F的隐匿值[F]、数组x的隐匿值的数组[x]、公开标签的数组b;以及访问部,对于与从所输入的访问位置j的隐匿值[j]中通过函数Tag和参数的隐匿值[F]计算出的标签对应的隐匿值的数组[x]的要素,进行期望的访问。
发明的效果
根据本发明的秘密数组访问技术,能够在常数级的通信中有效地进行对数组的数据的读取和写入,而无需公开访问了的位置。
附图说明
图1是例示第一实施方式的秘密数组访问装置的功能结构的图。
图2是例示第一实施方式的秘密数组访问方法的处理过程的图。
图3是例示秘密数组访问方法中的刷新时所执行的处理过程的图。
图4是例示由刷新部生成的数据的图。
图5是例示秘密数组访问方法中的读取时所执行的处理过程的图。
图6是例示秘密数组访问方法中的写入时执行的处理过程的图。
图7是例示第二实施方式的秘密数组访问装置的功能结构的图。
图8是例示第二实施方式的秘密数组访问方法的处理过程的图。
图9是例示秘密数组访问方法中在事先计算时执行的处理过程的图。
图10是例示秘密数组访问方法中在事先计算时执行的处理过程的图。
具体实施方式
在说明本发明的实施方式之前,说明本说明书中的记述方法以及术语的定义。
<记述方法>
在文中使用的记号“”(上标箭头)本来应该记载在紧前面的字符的正上方,但由于文本记法的限制,记载在该字符的紧后面。在数学式中,这些记号记述在本来的位置、即字符的正上方。例如,“a”在数学式中用下式表示。
【数学式1】
Figure BDA0003121149950000031
将对某值a通过加密或秘密分散等进行隐匿化而得到的值称为a的隐匿值,记述为[a]。另外,将a称为[a]的明文。在隐匿化是秘密分散的情况下,通过[a]参照各秘密计算装置具有的秘密分散的片段的集合。通过a[i]参照向量a=(a[0],a[1],...)的第i个要素。对于向量a=(a[1],a[2],...,a[n])和双射(bijection)π:[1,n]→[1,n],将向量a=(b[π(1)],b[π(2)],...,b[π(n)])这样的向量b记述为b=πa。将向量a的要素的数量记述为|a|。
<复原>
将a的隐匿值[a]作为输入,以下式记述计算成为c=a的值c的处理。
【数学式2】
c←Open([a])
<算术运算>
加法运算、减法运算、乘法运算的各运算将两个值a、b的隐匿值[a]、[b]作为输入,分别计算a+b、a-b、ab的计算结果c1、c2、c3的隐匿值[c1]、[c2]、[c3]。将这些运算的执行分别如下式这样记述。
【数学式3】
[c1]←Add([a],[b]),
[c2]←Sub([a],[b]),
[c3]←Mul([a],[b])
在不担心导致误解的情况下,将Add([a],[b])、Sub([a],[b])、Mul([a],[b])分别简记为[a]+[b]、[a]-[b]、[a]×[b]。
<等号判定>
等号判定的运算将两个值a、b的隐匿值[a]、[b]作为输入,计算a=b的真假值c∈{0,1}的隐匿值[c]。真假值为真时设为1,为假时设为0。将该运算的执行如下式这样记述。
【数学式4】
[c]←EQ([a],[b])
<选择>
选择的运算将真假值c∈{0,1}的隐匿值[c]和两个值a、b的隐匿值[a],[b]作为输入,计算满足下式的d的隐匿值[d]。
【数学式5】
Figure BDA0003121149950000041
将该运算的执行如下式这样记述。
【数学式6】
[d]←IfElse([c],[a],[b])
该运算能够通过下式来实现。
【数学式7】
[d]←[c]×([a]-[b])+[b]
<置换的应用>
将表示n个隐匿值的列[a]=([a[1]],[a[2]],…,[a[n]])和双射π:{1,2,…,n}→{1,2,…,n}的隐匿值[π]作为输入,将计算成为b=πa的隐匿值的处理用下式记述。
【数学式8】
Figure BDA0003121149950000042
<逆置换>
将表示双射π:{1,2,…,n}→{1,2,…,n}的隐匿值[π]作为输入,将计算表示成为σ=π-1的双射的隐匿值[σ]的处理用下式记述。
【数学式9】
[σ]←Inv([π])
<置换的合成>
将表示双射π:{1,2,…,n}→{1,2,…,n}的隐匿值[π]和表示双射ρ:{1,2,…,n}→{1,2,…,n}的隐匿值[ρ]作为输入,将计算表示成为
Figure BDA0003121149950000051
的双射的隐匿值[σ]的处理用下式记述。另外,
Figure BDA0003121149950000052
是表示映射的合成的运算符。
【数学式10】
[σ]←Compose([ρ],[π])
以下,详细地说明本发明的实施的方式。另外,对于附图中具有相同的功能的构成部分附加相同的号码,省略重复说明。
<第一实施方式>
第一实施方式的秘密数组访问装置1在进行从数组的读取的情况下,将表示访问位置的隐匿值[j]作为输入,并输出与访问位置对应的数组的要素。秘密数组访问装置1在进行向数组的写入的情况下,将表示访问位置的隐匿值[j]和写入的值的隐匿值[w]作为输入,将与访问位置对应的数组的要素更新为写入的值。如图1所例示那样,秘密数组访问装置1具备存储部10、刷新(refresh)部11、以及访问部12。该秘密数组访问装置1通过进行图2例示的各步骤的处理,实现第一实施方式的秘密数组访问方法。
秘密数组访问装置1例如是在具有中央运算处理装置(CPU:Central ProcessingUnit)、主存储装置(RAM:Random Access Memory)等的公知或专用的计算机中读取特别的程序而构成的特别的装置。秘密数组访问装置1例如在中央运算处理装置的控制下执行各处理。输入到秘密数组访问装置1的数据和在各处理中得到的数据例如被保存在主存储装置中,保存在主存储装置中的数据根据需要被读出到中央运算处理装置中,并用于其他处理。秘密数组访问装置1的各处理部的至少一部分可以由集成电路等硬件构成。秘密数组访问装置1所具备的各存储部例如可以由RAM(随机存取存储器(Random Access Memory))等主存储装置、由硬盘、光盘或闪存(闪存(Flash Memory))这样的半导体存储器元件构成的辅助存储装置、或者由关系数据库或密钥价值存储(Key Value Store)等中间件构成。
在存储部10中存储了n个隐匿值的数组[x']=([x'[1]],[x'[2]],…,
[x'[n]])、与隐匿值的数组[x']的各要素对应的地址的数组a'=(a'[1],a'[2],…,a'[n])。其中,n是规定的自然数。a'的各要素设为互不相同的值。
在步骤S11中,刷新部11使用在存储部10中所存储的隐匿值的数组[x']和地址的数组a',生成如下数据:将隐匿值的数组[x']的明文x'置换后的数组x=(x[1],x[2],…,x[n])的隐匿值[x]=([x[1]],[x[2]],…,[x[n]]);以及将与置换后的隐匿值的数组[x]的各要素对应的地址的数组作为a=(a[1],a[2],…,a[n])而与置换后的地址的数组a的各要素一对一地对应的公开标签(tag)的数组b=(b[1],b[2],…,b[n])。以下,参照图3详细地说明刷新部11的动作。
在步骤S111中,刷新部11生成表示随机的置换ρ的隐匿值[ρ]。
在步骤S112中,刷新部11将在存储部10中所存储的地址的数组a'的各要素隐匿化,得到地址的隐匿值的数组[a']。
在步骤S113中,刷新部11对于在存储部10中所存储的隐匿值的数组[x']应用置换[ρ],得到置换后的隐匿值的数组[x]。即,刷新部11计算式(1)。
【数学式11】
Figure BDA0003121149950000061
另外,刷新部11对于地址的隐匿值的数组[a']应用置换[ρ],得到置换后的地址的隐匿值的数组[a]。即,刷新部11计算式(2)。
【数学式12】
Figure BDA0003121149950000062
在步骤S114中,刷新部11使用表示随机的参数F的隐匿值[F],对于置换后的地址的隐匿值的数组[a]计算函数Tag[F]([a]),将该计算结果复原,从而得到公开标签的数组b=(b[1],b[2],…,b[n])。这里,函数Tag[F]是表示从地址向标签的单射的函数,其动作是通过参数[F]控制的。在输入为隐匿值的情况下,假设函数Tag[F]在将输入值保持隐匿的状态下执行函数内的各运算。另外,在输入为数组的情况下,假设函数Tag[F]对于数组的各要素计算函数内的各运算。即,对于1以上且n以下的各整数i,刷新部11计算式(3)。
【数学式13】
Figure BDA0003121149950000071
图4例示由刷新部11所生成的数据。置换前的隐匿值的数组[x']和地址的数组a'分别通过相同的置换ρ重新排列,并生成置换后的隐匿值的数组[x]和置换后的地址的数组a。即,以隐匿值[x'[i]]和地址a'[i]的组合被维持的方式分别被置换。接着,从置换后的地址的数组a的各要素,通过函数TagF,计算一对一地对应的公开的标签,并生成公开标签的数组b。另外,考虑安全性,地址的数组a'的重新排列如上述那样,优选在暂时隐匿化的基础上,通过秘密计算来执行。
在步骤S12a中,访问部12将表示访问位置j的隐匿值[j]作为输入,读取与访问位置j对应的隐匿值的数组[x]的要素并输出。以下,参照图5,详细地说明读取时的访问部12的动作。
在步骤S121a中,访问部12接受表示访问位置j的隐匿值[j]作为输入。
步骤S122a中,访问部12使用表示参数F的隐匿值[F],并对于表示访问位置j的隐匿值[j],计算函数Tag[F]([j]),将该计算结果复原得到标签t。即,访问部12计算式(4)。
【数学式14】
t←Open(Tag[F]([j]))…(4)
在步骤S123a中,访问部12读取与标签t对应的隐匿值的数组[x]的要素[x[d]]的值并输出。另外,“与标签t对应”意思是指,与生成与公开标签的数组b中的标签t一致的公开标签b[d]的地址a[d]成为组。
在步骤S12b中,访问部12将表示访问位置j的隐匿值[j]和表示写入的值w的隐匿值[w]作为输入,用写入的值[w]改写与访问位置j对应的隐匿值的数组[x]的要素。以下,参照图6,详细地说明写入时的访问部12的动作。
在步骤S121b中,访问部12接受表示访问位置j的隐匿值[j]和表示写入的值w的隐匿值[w]作为输入。
在步骤S122b中,访问部12使用表示参数F的隐匿值[F],对于表示访问位置j的隐匿值[j]计算函数Tag[F]([j]),并将该计算结果复原,从而得到标签t。即,访问部12计算上述式(4)。
步骤S123b中,访问部12将与标签t对应的隐匿值的数组[x]的要素[x[d]]的值跟新为写入的值[w]。
<第二实施方式>
第一实施方式的秘密数组访问装置1被构成为,每次生成刷新部11为了执行所需要的参数。在第二实施方式中,关于刷新部11使用的参数中可事先生成的参数,预先生成并存储。通过使用预先计算出的参数,能够快速地进行刷新部11的动作。
如图7所例示那样,第二实施方式的秘密数组访问装置2除了第一实施方式的存储部10、刷新部11、以及访问部12之外,还具有事先计算部13。该秘密数组访问装置2通过进行图8例示的各步骤的处理,实现第二实施方式的秘密数组访问方法。
在步骤S13中,首先,事先计算部13将在存储部10中所存储的地址的数组a'设定为第0个地址的数组a→(0)。然后,对于1以上且m以下的各整数k,进行下述的计算。其中,m是规定的自然数。M按照对数组的设想访问数和进行刷新的频率而被任意地设定。
第一,事先计算部13生成表示第k个随机的参数F(k)的隐匿值[F(k)]。第二,事先计算部13生成表示第k个随机的置换ρ(k)的隐匿值[ρ(k)]。第三,事先计算部13以与第k个置换[ρ(k)]对应的方式,生成将地址的数组a'重新排列后的第k个地址的数组a→(k)。最后,事先计算部13计算根据第k个地址的数组a→(k)的各要素计算出的第k个公开标签的数组b→(k)。即,事先计算部13在第k次的执行时,对于1以上且n以下的各整数i,计算式(5)。
【数学式15】
Figure BDA0003121149950000081
具体地说,地址的数组a→(k),用第k个置换[ρ(k)]将第k-1个地址的数组a→(k-1)进行置换并计算。即,通过式(6),计算地址的数组a→(k)
【数学式16】
Figure BDA0003121149950000082
地址的数组a→(k)也可以如以下这样计算。首先,生成表示第k个随机的置换π(k)的隐匿值[π(k)]。接着,将第k-1个置换[π(k-1)]的逆置换Inv([π(k-1)])和第k个置换[π(k)]进行合成,从而计算第k个置换[ρ(k)]。即,通过式(7)计算置换[ρ(k)]。
【数学式17】
(k)]←Compose([π(k)],Inv([π(k-1)]))…(7)
然后,用置换[π(k)]对第0个地址的数组a→(0)进行置换,从而计算地址的数组a→(k)。即,通过式(8),计算地址的数组a→(k)
【数学式18】
Figure BDA0003121149950000091
如果是后者的过程,则在计算第k个地址的数组a→(k)时,由于不需要第k-1个地址的数组a→(k-1),因此能够并行地计算多个地址的数组a→(k)。因此,能够更快速地进行事先计算部13的处理。
在步骤S11中,刷新部11在第k次的执行时,进行下述的计算。第一,刷新部11将第k次的参数[F(k)]设为函数Tag[F]的参数[F]。第二,刷新部11将第k次的公开标签的数组b→(k)设为公开标签的数组b。最后,刷新部11求出用第k置换[ρ(k)]将隐匿值的数组[x']进行置换后得到的隐匿值的数组[x]。即,刷新部11计算式(9)。
【数学式19】
Figure BDA0003121149950000092
<第三实施方式>
在第一实施方式以及第二实施方式中,在进行前一刷新后到进行下一刷新为止,对相同的访问位置的访问参照相同的标签。因此,如果对某个访问位置进行多次访问,则有可能容易推测出访问位置。在第三实施方式中,通过即使访问相同的访问位置也参照不同的标签,从而更难以推测访问位置,提高安全性。
在第三实施方式中,将函数TagF设为AES-128,将F设为加密密钥。将N、T设为自然数,设n=N+T。将地址的数组a设为a[i]=i(i∈[1,n]),将访问位置j设为j∈[1,N]。
第三实施方式的事先计算部13将m设为足够大的自然数,对于各k∈[1,k],执行在第二实施方式中说明的处理。
第三实施方式的刷新部11执行在第二实施方式中说明的处理。另外,第三实施方式的刷新部11将用于存储访问完毕的标签的集合S初始化为空集合。
第三实施方式的访问部12如以下这样进行对隐匿值的数组[x]的读取或者写入。第一,访问部12使用表示参数F的隐匿值[F],对表示访问位置j的隐匿值[j]计算函数Tag[F]([j]),并得到标签t的隐匿值[t]。即,访问部12计算式(10)。
【数学式20】
[t]←Tag[F]([j])…(10)
第二,访问部12使用表示参数F的隐匿值[F],对于N+|S|计算函数Tag[F](N+|S|),并得到标签s的隐匿值[s]。即,访问部12计算式(11)。
【数学式21】
[s]←Tag[F](N+|S|)…(11)
第三,访问部12计算如下那样的真假值c的隐匿值[c]:如果t∈S则c=1,如果不是则c=0。例如,访问部12设为c←0,对于各t'∈S,计算式(12)。
【数学式22】
[c]←[c]+EQ([t],t′)…(13)
第四,如果c=1则访问部12选择标签s,如果c=0则选择标签t,得到将该选择结果复原后的标签p。即,访问部12计算式(13)。
【数学式23】
p←Open(IfElse([c],[s],[t]))…(13)
第五,访问部12计算S←S∪{p},对集合S追加标签p。
在进行读取的情况下,访问部12从具有在集合S中所包含的公开标签的隐匿值的数组[x]的要素中,计算公开标签与标签t一致的要素的值的隐匿值[r]。例如,设[r]←0,对于各t'∈S,访问部12将i作为b[i]=t'的数,计算式(14)。
【数学式24】
Figure BDA0003121149950000101
在进行写入的情况下,访问部12从具有在集合S中包含的公开标签的隐匿值的数组[x]的要素中,将公开标签与标签t一致的要素的值改写为写入的值的隐匿值[w]。例如,对于各t'∈S,访问部12将i作为b[i]=t'的数,计算式(15)。
【数学式25】
Figure BDA0003121149950000111
最后,如果|S|≥T,则访问部12将集合S初始化为空集合,并执行刷新部11。
在第三实施方式的结构中,能够在O(1)的通信循环(round)下实现保持了将地址隐匿的状态的读写。由于通信循环小,因此能够有效地实现串行下的读写。
各实施方式的秘密数组访问装置以及方法,由于预先通过随机的置换来打乱了(shuffle)秘密值的数组,所以即使公开根据数组的要素生成的标签,也不会泄漏与数组的要素的排列相关的信息。对公开的标签的搜索能够以明文执行,另外,如果在标签的计算中使用AES等常数循环的方法,则在标签的计算或与标签对应的要素的搜索中不包含递归的处理。因此,整体上也能够实现常数的通信循环。在现有技术中,由于不进行标签的公开而直接计算要素的位置,所以在要素的位置的计算中包含递归的处理。其结果,需要比常数大的通信循环。
以上,对本发明的实施方式进行了说明,但具体的结构不限于这些实施方式,在不脱离本发明的宗旨的范围内,即使有适当设计的变更等,当然也包含在本发明中。在实施方式中说明的各种处理不仅按照记载的顺序时序地执行,也可以根据执行处理的装置的处理能力或者根据需要并行或者单独地执行。
[程序、记录介质]
在通过计算机实现在上述实施方式中说明的各装置中的各种处理功能的情况下,各装置应具有的功能的处理内容被通过程序来记述。然后,通过由计算机执行该程序,上述各装置中的各种处理功能在计算机上被实现。
记述了该处理内容的程序,可以预先记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如也可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任何介质。
此外,该程序的流通例如通过销售、转让、租借等记录了该程序的DVD、CD-ROM等便携式记录介质来进行。进而,也可以设为将该程序保存在服务器计算机的存储装置中,经由网络,通过将该程序从服务器计算机转发到其它计算机,使该程序流通的结构。
执行这样的程序的计算机,例如首先将便携式记录介质中记录的程序或者从服务器计算机转发的程序暂时保存在自己的存储装置中。然后,在执行处理时,该计算机读取自己的存储装置中保存的程序,执行按照读取的程序的处理。而且,作为该程序其它实施方式,计算机也可以从便携式记录介质直接读取程序,执行按照该程序的处理,进而,也可以在每次从服务器计算机对该计算机转发程序时,逐次执行按照接受的程序的处理。而且,也可以设为通过不进行从服务器计算机向该计算机的程序的转发,仅通过该执行指令和结果取得来实现处理功能的、所谓ASP(应用服务提供商(Application Service Provider))型的服务,执行上述的处理的结构。再者,在本方式的程序中,假设包含供电子计算机的处理用的信息即基于程序的信息(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。
此外,在该方式中,通过在计算机上执行规定的程序来构成本装置,但也可以硬件性地实现这些处理内容的至少一部分。

Claims (6)

1.一种秘密数组访问装置,包括:
存储部,存储数组x'的隐匿值的数组[x']、和与所述隐匿值的数组[x']的各要素对应的地址的数组a'
刷新部,在将随机的置换设为ρ、将用所述置换ρ对所述数组x'进行了置换后的数组设为x、将用所述置换ρ对所述地址的数组a'进行了置换后的地址的数组设为a、将以F'为参数并表示从地址向标签的单射的函数设为TagF’、将随机的参数设为F、将从所述地址的数组a的各要素中通过所述函数TagF计算出的公开标签的数组设为b时,求出所述参数F的隐匿值[F]、所述数组x的隐匿值的数组[x]、所述公开标签的数组b;以及
访问部,对于与从所输入的访问位置j的隐匿值[j]中通过所述函数Tag和所述参数的隐匿值[F]计算出的标签对应的所述隐匿值的数组[x]的要素,进行期望的访问。
2.根据权利要求1所述的秘密数组访问装置,其中,
所述秘密数组访问装置还包括事先计算部,该事先计算部将所述地址的数组a'设为第0个地址的数组a→(0),将m设为自然数,对于1以上且m以下的各整数k,计算所述函数Tag的随机的参数[F(k)]、随机的置换[ρ(k)]、以与所述置换[ρ(k)]对应的方式将所述地址的数组a'重新排列后的地址的数组a→(k)的隐匿值[a→(k)]、通过使用所述参数[F(k)]的所述函数Tag并从所述地址的数组a→(k)的隐匿值[a→(k)]的各要素中计算出的公开标签的数组b→(k)
所述刷新部在第k次的执行时,将所述参数[F(k)]设为所述函数Tag的参数[F],将所述公开标签的数组b→(k)设为所述公开标签的数组b,求出以所述置换[ρ(k)]对所述隐匿值的数组[x']进行了置换后的隐匿值的数组[x]。
3.根据权利要求2所述的秘密数组访问装置,其中,
所述事先计算部以第k个置换[ρ(k)]对第k-1个地址的数组a→(k-1)进行置换,计算第k个地址的数组a→(k)
4.根据权利要求2所述的秘密数组访问装置,其中,
所述事先计算部生成第k个随机的置换[π(k)],将第k-1个置换[π(k-1)]的逆置换Inv([π(k-1)])和第k个置换[π(k)]进行合成,计算所述置换[ρ(k)],
所述事先计算部以第k个置换[π(k)]对所述地址的数组a→(0)进行置换,计算第k个地址的数组a→(k)
5.一种秘密数组访问方法,其中,
在存储部中存储了数组x'的隐匿值的数组[x']、和与所述隐匿值的数组[x']的各要素对应的地址的数组a'
刷新部在将随机的置换设为ρ、将以所述置换ρ对所述数组x'进行了置换后的数组设为x、将以所述置换ρ对所述地址的数组a'进行了置换后的地址的数组设为a、将以F'为参数并表示从地址向标签的单射的函数设为TagF’、将随机的参数设为F、将从所述地址的数组a的各要素中通过函数TagF计算出的公开标签的数组设为b时,求出所述参数F的隐匿值[F]、所述数组x的隐匿值的数组[x]、和所述公开标签的数组b
访问部对于与从所输入的访问位置j的隐匿值[j]中通过所述函数Tag和所述参数的隐匿值[F]计算出的标签对应的所述隐匿值的数组[x]的要素,进行期望的访问。
6.一种程序,用于使计算机作为权利要求1至4中任一项所述的秘密数组访问装置发挥功能。
CN202080007097.2A 2019-01-10 2020-01-09 秘密数组访问装置、秘密数组访问方法以及记录介质 Active CN113518991B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019-002450 2019-01-10
JP2019002450 2019-01-10
PCT/JP2020/000432 WO2020145340A1 (ja) 2019-01-10 2020-01-09 秘密配列アクセス装置、秘密配列アクセス方法、およびプログラム

Publications (2)

Publication Number Publication Date
CN113518991A true CN113518991A (zh) 2021-10-19
CN113518991B CN113518991B (zh) 2024-05-28

Family

ID=71520528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080007097.2A Active CN113518991B (zh) 2019-01-10 2020-01-09 秘密数组访问装置、秘密数组访问方法以及记录介质

Country Status (6)

Country Link
US (1) US20220114110A1 (zh)
EP (1) EP3910512B1 (zh)
JP (1) JP7060115B2 (zh)
CN (1) CN113518991B (zh)
AU (1) AU2020205530B2 (zh)
WO (1) WO2020145340A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022107323A1 (ja) * 2020-11-20 2022-05-27 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
WO2023062835A1 (ja) * 2021-10-15 2023-04-20 日本電信電話株式会社 キュー計算システム、キュー計算装置、キュー計算方法、及びプログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7050581B1 (en) * 1999-04-09 2006-05-23 Cp8 Technologies Method for making secure one or several computer installations using a common secret key algorithm, use of the method and a computer system utilizing the method
WO2008010441A1 (fr) * 2006-07-21 2008-01-24 Nec Corporation dispositif de cryptage, programme et procédé
CN101778142A (zh) * 2009-12-11 2010-07-14 东南大学 比特串和哈希函数组合的网络地址前缀保留的匿名化方法
JP2010231717A (ja) * 2009-03-30 2010-10-14 Hitachi Ltd 情報秘匿装置、情報秘匿方法、情報秘匿プログラム、および記録媒体
JP2013152520A (ja) * 2012-01-24 2013-08-08 Mitsubishi Electric Corp 検索装置、検索端末装置、データ登録装置、検索方法、検索プログラム、データ登録方法およびデータ登録プログラム
KR101356795B1 (ko) * 2012-11-05 2014-01-28 한국과학기술원 보안태그 생성방법과 복원방법
JP2014081475A (ja) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
CN104798339A (zh) * 2013-01-12 2015-07-22 三菱电机株式会社 密钥生成装置、密钥生成程序、隐匿检索系统和密钥发布方法
CN108140335A (zh) * 2015-10-13 2018-06-08 日本电信电话株式会社 秘密随机数合成装置、秘密随机数合成方法以及程序

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2305078A1 (en) * 2000-04-12 2001-10-12 Cloakware Corporation Tamper resistant software - mass data encoding
US20080152142A1 (en) * 2006-12-20 2008-06-26 Mark Buer Memory scrambler unit (msu)
US9117094B2 (en) * 2008-10-29 2015-08-25 Microsoft Technology Licensing, Llc Data location obfuscation
US8364979B1 (en) * 2009-04-27 2013-01-29 Stealth Software Technologies, Inc. Apparatus, system, and method to efficiently search and modify information stored on remote servers, while hiding access patterns
US9015853B2 (en) * 2012-06-15 2015-04-21 The Regents Of The University Of California Concealing access patterns to electronic data storage for privacy
US9514169B2 (en) * 2013-09-23 2016-12-06 Protegrity Corporation Columnar table data protection
GB201400992D0 (en) * 2014-01-21 2014-03-05 Metaforic Ltd Method of protecting dynamic cryptographic keys
US10140437B2 (en) * 2015-05-05 2018-11-27 Nxp B.V. Array indexing with modular encoded values
US10372886B2 (en) * 2015-05-05 2019-08-06 Nxp B.V. Protecting the input/output of modular encoded white-box RSA/ECC
US10789369B2 (en) * 2018-06-12 2020-09-29 Fujitsu Limited Oblivious array shuffling in trusted execution environments

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7050581B1 (en) * 1999-04-09 2006-05-23 Cp8 Technologies Method for making secure one or several computer installations using a common secret key algorithm, use of the method and a computer system utilizing the method
WO2008010441A1 (fr) * 2006-07-21 2008-01-24 Nec Corporation dispositif de cryptage, programme et procédé
JP2010231717A (ja) * 2009-03-30 2010-10-14 Hitachi Ltd 情報秘匿装置、情報秘匿方法、情報秘匿プログラム、および記録媒体
CN101778142A (zh) * 2009-12-11 2010-07-14 东南大学 比特串和哈希函数组合的网络地址前缀保留的匿名化方法
JP2013152520A (ja) * 2012-01-24 2013-08-08 Mitsubishi Electric Corp 検索装置、検索端末装置、データ登録装置、検索方法、検索プログラム、データ登録方法およびデータ登録プログラム
JP2014081475A (ja) * 2012-10-16 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム
KR101356795B1 (ko) * 2012-11-05 2014-01-28 한국과학기술원 보안태그 생성방법과 복원방법
CN104798339A (zh) * 2013-01-12 2015-07-22 三菱电机株式会社 密钥生成装置、密钥生成程序、隐匿检索系统和密钥发布方法
CN108140335A (zh) * 2015-10-13 2018-06-08 日本电信电话株式会社 秘密随机数合成装置、秘密随机数合成方法以及程序

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SAMEE ZAHUR: "Revisiting Square-Root ORAM Efficient Random Access in Multi-Party Computation", 2016 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, pages 2 *

Also Published As

Publication number Publication date
WO2020145340A1 (ja) 2020-07-16
US20220114110A1 (en) 2022-04-14
WO2020145340A8 (ja) 2021-09-16
CN113518991B (zh) 2024-05-28
EP3910512A4 (en) 2022-10-05
EP3910512B1 (en) 2023-11-29
JP7060115B2 (ja) 2022-04-26
JPWO2020145340A1 (ja) 2021-10-28
EP3910512A1 (en) 2021-11-17
AU2020205530B2 (en) 2022-05-19
AU2020205530A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
Farah et al. A novel method for designing S-box based on chaotic map and teaching–learning-based optimization
CN1677917B (zh) 用于流式密码中的循环存储单元的方法和系统
US9742556B2 (en) Comparison and search operations of encrypted data
TWI642294B (zh) 具有鑑認指令之密碼訊息之電腦程式產品、系統及方法
KR102550812B1 (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
JPWO2015053185A1 (ja) 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
CN108140335B (zh) 秘密随机数合成装置、秘密随机数合成方法以及记录介质
Coron et al. Side-channel masking with pseudo-random generator
CN115632761B (zh) 基于秘密共享的多用户分布式隐私保护回归方法及装置
CN113518991A (zh) 秘密数组访问装置、秘密数组访问方法以及程序
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
Al-Muhammed et al. Mesh-based encryption technique augmented with effective masking and distortion operations
EP3686870B1 (en) Secure reading apparatus, secure writing apparatus, method thereof, and program
Raddum et al. MRHS solver based on linear algebra and exhaustive search
Dolmatov GOST R 34.11-94: Hash Function Algorithm
CN111108540B (zh) 秘密读写装置、秘密读写方法、以及记录介质
CN107667368A (zh) 用于sparse函数的非可延展混淆器
CN117353923B (zh) 轻量级哈希加密算法的演练方法及相关设备
CN114254372B (zh) 数据加密处理方法、系统及电子设备
Tuğ The Generalized Difference Operator Δ i 3 of Order Three and Its Domain in the Sequence Spaces ℓ1 and bv
Ghosh et al. A Secure Steganography Scheme Using LFSR
Song et al. Searchable Symmetric Encryption with Tunable Leakage Using Multiple Servers
Dalai et al. Wip: Degree evaluation of Grain-v1
Kesarwani et al. Some cryptanalytic results on TRIAD
Setiawaty et al. The Implementation of the RC4 algorithm For Sale and Purchase Agreements Data Security On Notary Office

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