CN116830181A - 服务提供*** - Google Patents
服务提供*** Download PDFInfo
- Publication number
- CN116830181A CN116830181A CN202080107835.0A CN202080107835A CN116830181A CN 116830181 A CN116830181 A CN 116830181A CN 202080107835 A CN202080107835 A CN 202080107835A CN 116830181 A CN116830181 A CN 116830181A
- Authority
- CN
- China
- Prior art keywords
- share
- group
- data
- information
- shares
- 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
Links
- 238000004364 calculation method Methods 0.000 claims abstract description 63
- 238000012795 verification Methods 0.000 claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 description 35
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 22
- 230000007246 mechanism Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 235000013405 beer Nutrition 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000011389 fruit/vegetable juice Nutrition 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000015205 orange juice Nutrition 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/42—Anonymization, e.g. involving pseudonyms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
客户端(2)具有:份额提供部(22),其用于从VC保管部(24)获取VC,通过秘密共享方案分割成多个份额(26),并分发给服务器(3);组同步部(33),其用于获取与从服务器(3)返还的VC相关的组ID的信息,并保管在ID保管部(25)中,根据组ID,对与服务器(3)中的服务相关的预定秘密计算结果进行重构后获取;服务器(3)具有:份额获取部(31),其用于获取从客户端(2)分发的份额(26);验证处理部(32),其用于针对具有与该份额(26)相关的VC中包括的相同ID信息值的部分进行分组,发行组ID,并保管在份额保管部(34)中;以及组同步部(33),其用于将包括组ID的信息返还给客户端(2)。
Description
技术领域
本发明涉及一种用于提供个性化服务的技术,特别涉及一种适用于在不确定用户本人的情况下提供个性化服务的服务提供***的有效技术。
背景技术
随着IT技术的进步,不仅是Web上的服务,而且想要在所有的场景中提供/接受个性化服务的需求也在提高。为了使用户接受个性化服务的提供,作为其前提,需要向服务提供商提供本人简介等个人信息及与兴趣、爱好、关注点等偏好相关的信息、与浏览历史或购买历史等的行为历史相关的信息等、与确定本人的资料或隐私的公开相关的信息。不管是明示的还是隐含的,用户是在预先同意服务提供商获取和利用这些信息的基础上,接受个性化服务的提供。但是,存在服务提供商信息泄露或被恶意人员非法使用的风险。
对此,正在研究在保护用户隐私的同时提供个性化服务的机制。例如,在日本特表2015-532737号公报(专利文献1)中记载了如下机制:不限制应用的利用,通过对各最终用户的私人信息提供匿名性,来对最终用户的私人信息提供真正的保护,另一方面,可利用任意的计算机设备来接收个性化服务、或可使用需要根据私人数据的相似性进行用户集群化的其他应用或服务。
在先技术文献
专利文献
专利文献1:日本特表2015-532737号公报
发明内容
发明所要解决的课题
根据现有技术,例如,在向基于爱好或关注点等进行集群化的用户提供特定化广告等的情况下,从是否可以向该用户提供该服务的观点来看,对于要求不那么严格的服务,可以在保护用户隐私的同时提供个性化服务。
然而,例如,对于仅仅允许向对象用户本人提供的服务,没有考虑在不确定该用户的情况下,在保护隐私的基础上为其提供个性化服务。此外,对于用户为了接受个性化服务的提供而提供给服务提供商的数据,也没有考虑到确认其是归属于该用户的正规数据。
因此,本发明的目的在于实现一种服务提供***,该服务提供***无需确定用户本人,就可以在保护隐私的同时,提供包含该用户固有服务的个性化服务。
本发明的所述以及其他目的和新颖的特征,将通过本说明书的记载以及附图得以明确。
用于解决课题的方案
本申请所公开的发明中,对具有代表性的概要内容进行简要说明如下。
作为本发明的代表性实施方式的服务提供***是通过1个以上的第2装置经由网络向用户的第1装置提供服务的服务提供***,其具有以下结构。
即,所述第1装置具有:份额提供部,其用于从保管可验证为所述用户的数据VC的VC保管部获取所述VC,并通过秘密共享方案分割成多个份额,将所述各份额分发给所述第2装置;以及第1组同步部,其用于获取从所述第2装置返还的与1个以上的所述VC相关的组ID的信息,并保管在ID保管部,根据所述组ID,对与所述第2装置中的所述服务相关的预定的秘密计算结果通过秘密共享方案进行重构(Reconstruct)后获取。
此外,所述第2装置具有:份额获取部,其用于获取从所述第1装置分发的所述份额;验证处理部,其用于针对所获取的所述份额,将与该份额相关的所述VC中包含的ID信息值相等的部分进行分组,发行所述组ID,并将所述组ID和与该份额相关的信息保管在份额保管部中;以及第2组同步部,其用于将包含所述组ID的信息返还给所述第1装置。
发明效果
本申请所公开的发明中,对通过代表性的内容所能获得的效果,简要说明如下。
即,根据本发明的代表性的实施方式,无需确定用户本人,就可以在保护隐私的同时,向该用户提供包含固有服务的个性化服务。
附图说明
图1是概要示出作为本发明的一实施方式的服务提供***的结构例的图。
图2是说明本发明的一实施方式中的机制的示例的概要的图。
图3是示出本发明的一实施方式中的用于提供个性化服务的机制的示例的概要的图。
图4是示出本发明的一实施方式中的用于提供个性化服务的机制的另一示例的概要的图。
图5是示出本发明的一实施方式中的秘密共享方案的适用示例的概要的图。
图6是概要示出本发明的一实施方式中的VC保管部的数据构成与具体的数据例的图。
图7是概要示出本发明的一实施方式中的VC保管部的数据构成与具体的数据例的图。
图8是概要示出本发明的一实施方式中的ID保管部的数据构成与具体的数据例的图。
图9是概要示出本发明的一实施方式中的份额保管部的数据构成与具体的数据例的图。
图10是概要示出本发明的一实施方式中的份额保管部的数据构成与具体的数据例的图。
图11是示出本发明的一实施方式中的从客户端向服务器分发各个份额到在服务器中进行验证为止的处理流程的示例的概要的图。
图12是示出本发明的一实施方式中的在服务器中执行份额验证之后到提供个性化服务为止的处理流程的示例的概要的图。
具体实施方式
以下,基于附图对本发明的实施方式详细进行说明。此外,在对实施方式进行说明的全部图中,对于同一部位,原则上标注相同的附图标记,并省略对其重复的说明。另一方面,对于在某图中标注了附图标记进行了说明的部位,有在其他图的说明中并未再次图示,但标注了相同附图标记而提及的情况。
<概述>
作为本发明的一实施方式的服务提供***实现如下机制:享受服务的用户将与自身相关的数据提供给服务提供商,服务提供商基于此提供个性化服务。在本实施方式中,此时用户提供的数据是作为用户本人的数据而能够验证的数据(Verifiable Credentials,以下有时记载为“VC”)。由此,能够限制用于允许提供给该用户的固有服务的提供。此外,服务提供商无法根据所提供的数据来确定用户本人(无需确定用户本人),从而实现用户的隐私保护。
在本实施方式中,使用所谓的秘密计算技术作为保护隐私的机制,以使得服务提供商无法根据用户提供的数据来确定用户本人。所谓秘密计算,是在加密计算对象数据的状态下直接进行计算并得到计算结果的技术,并可隐藏计算对象数据或计算过程。
在本实施方式中,作为秘密计算的方法使用多方计算(Multi-PartyComputation,以下有时记载为“MPC”)。即,通过秘密共享方案将用户数据分割为多个份额,以隔离的状态配置在不同的服务器中的同时,在服务器侧,在服务器间进行通信的同时,在维持数据隐秘性的状态下进行加法、乘法等计算,并得到计算结果。
具备Functional Completeness的MPC能够在隐藏数据的状态下计算任意的函数算法。由于该计算结果也是进行秘密共享的状态,因此只要参与MPC的各方不向彼此或者外部提供份额并允许重构(Reconstruct),则重构(Reconstruct)就只能由允许收集各份额的人、即提供数据的用户本人来进行,在服务器侧也无法窥视所提供的数据和计算结果。只要计算结果没被非预期方重构(Reconstruct),就能够保持隐藏的状态,因此能够防止所谓的输出隐私成为问题点。
由此,可以向用户本人提供计算结果(或基于此的个性化服务),而无需知道用户提供给服务提供商的数据内容,并且无需确定用户本人。另外,作为秘密共享方案,例如可以使用(k,n)阈值的加法秘密共享方案(n≥k≥2)。
另一方面,由于将用户提供的数据作为可验证的VC进行处理,因此用于表示ID(身份标识号)的信息与各数据相关联。作为该ID的管理基础,也可以使用所谓的中央集中型ID,但在本实施方式中,使用利用了区块链和共享总帐的技术的共享型ID(DecentralizedIdentity,以下有时记载为“DID”)的机制。关于DID的规格,目前正在推进标准化,但作为用户本人的ID信息,区块链中的钱包地址(Wallet Address,以下有时记载为“WA”。另外,也有时会对钱包地址赋予用于提供DID的网络或协议等唯一的元信息)与各数据相关联。
另外,用DID处理的数据的格式是VC可采用的所有格式(关于数据模型的定义,参照以下的W3C推荐。https://www.w3.org/TR/vc-data-model/#:~:text=Data%20derived%20from%20one%20or,a%20process%20of%20cryptographic%20verification.),并且只要是可用序列或关联序列(Map格式)表示的数据类型即可。例如,可以使用JSON(JavaScript Object Notation)、YAML、CBOR(Concise Binary ObjectRepresentation)、TOML等,但在本实施方式中,除非特别说明,否则使用JSON(JSON-LD)。
通过使用DID机制,可以根据用户本人的意图对任意对象实施身份证明。在本实施方式中,不仅是身份证明,作为根据用户本人的意图来给予任意对象以数据收集、利用许可的意图表示的方法,还可以使用DID机制。
另外,在本实施方式中,作为实现将数据作为VC处理的方式的方法的一例,使用了DID。因此,将赋予了签名的数据与DID用语对应地表现为“VC”,但再现本实施方式的方法并不限于使用DID,因此也可以在与由DID规格定义的VC不同的数据格式中使用。如果与DID中的VC相当的数据是满足以下所有条件的数据,则可以适当地使用。
1.存在负责数据发行的发行者(Issuer),作为证明是该发行者(Issuer)发行的数据的方法,赋予了数字签名。
2.数据中包含用于表示ID(身份标识号)的信息(例如,WA或个人编号、护照号码等)。
3.所发行的数据是序列、关联序列、JSON、YAML、TOML等结构化的数据,或者是结构化的数据集合,即使格式与要素分离,只要提供分配给各要素的序列编号或者属性这样的元信息,就能够复原。
4.能够在结构化的数据中唯一地确定ID(身份标识号)信息的存储位置。
5.数据包括用于唯一确定数字签名的算法和公钥获取方法的信息。
6.对结构化数据或整个结构化数据集合同时执行数字签名。
作为满足上述条件3的例子,例如,对于[a,b,c]这样的数据,如(0,a)、(1,b)、(2,c)那样,如果序列编号与要素之间的对应是唯一的,则能够根据该信息复原[a,b,c]这样的原始数据。同样地,例如,
{“name”:“alice”,“age”:42}这样的数据可以通过(“name”,
“alice”)和(“age”,42)复原。即使是如[[a,b,c],[d,e],[f]]这样的嵌套数据也是同样的,只要能够使如(0,0,a)、(0,1,b)、(0,2,c)、
(1,0,d)、(1,1,e)、(2,0,f)这样的序列编号(上位序列和下位序列)与要素之间的对应(映射)唯一,就能够复原原始数据。
作为满足上述条件4的例子,例如,如果是序列,则存在“第零号要素是身份标识号”的规定(或者设置规定);如果是DID,则存在“sub属性的值是身份标识号(特别是WA)”的规定(或者设置规定),从而能够唯一地确定ID信息的存储位置。
作为满足上述条件6的方法,当将结构化数据的集合设为
{x1,x2,...,xj}(j是要素的个数)时,签名σ必须通过签名算法Sign来求出,以将结合了私钥sk、结构化数据集合的(x1||x2||...||xj)作为输入值。
σ=Sign(sk,(x1||x2||...||xj))
另外,用于(x1||x2||...||xj)的结合部分(||)的值和结构是任意的。
其结果是,要求将签名σ、公钥pk、{x1,x2,...,xj}作为输入值的验证算法Verify(pk,σ,(x1||x2||...||xj))的结果返回Accept。以JWS(JSON Web Signature)为例,结构化数据的集合包括头部和负载部,将头部(Header)和负载部(Payload)用点(.)结合后的值作为输入值,并求出签名部(Signature)。
图2是说明本发明的一实施方式中的机制的示例的概要的图。用户4的客户端2具有VC241,该VC241例如包含由位于街道中的摄像机等数据采集设备6获取的数据(在这种情况下,虽然它是摄像机影像,但也可以是结算服务的购买历史等由不同的设备/服务所收集的数据),通过作为在PKI(Public Key Infrastructure,公钥基础结构)或DPKI(Decentralized PKI,分布式公钥基础结构)5中登录(图中的[1])的公钥对的私钥来赋予数字签名并发行(图中的[2])。如上所述,在本实施方式中,VC241由JSON表示,并且包括DID的WA以作为ID信息。用户4的客户端2通过在DPKI5中登录的公钥来验证VC241的数字签名(图中的[3]),从而对发行者(数据采集设备6)进行认证。
在本实施方式中,在用户4同意将该VC241提供给服务提供商(图中的[4])的基础上,用户4的客户端2将通过秘密共享VC241而获得的份额26a、份额26b分别提供给参与MPC的服务器A(3a)、服务器B(3b)(图中的[5])。在图2的例子中,将VC241进行秘密共享为2个份额,并提供给2个服务器,但也可以秘密共享为2个以上的份额、即进行基于(k,n)阈值秘密共享方案(n≥k≥2)的秘密共享,并将各个份额提供给不同的服务器。
在服务提供商中,将这些份额26a、份额26b(密文)和登录在DPKI5中的公钥(明文)作为输入值,通过基于服务器A(3a)和服务器B(3b)的MPC进行验证(图中的[6])。在利用(图中的[7])时,通过在服务器A(3a)和服务器B(3b)中执行MPC,在不获取原始VC241的内容的情况下获得计算结果,并基于此提供个性化服务。
另一方面,即使服务提供商侧无法获知原始VC241或计算结果的内容,但在能够知道是哪个用户4的数据、即能够确定本人的情况下,也不能说可全面保护隐私。因此,在本实施方式中,对于提供给服务提供商侧的1个以上的VC241,在加密内容的状态下,确认(1)内容未被篡改、以及(2)任一个VC241都与同一用户4相关联的基础上,将提供给服务提供商侧的各VC241进行分组并赋予组ID,并将该组ID返还给用户4。由此,能够对服务提供商侧隐藏是哪个用户4的数据的同时,用户4根据返还的组ID请求个性化服务,并接受其提供。
另外,在服务提供商侧的MPC的处理中,也可以委托可信赖的外部环境进行计算,将计算结果以秘密共享的形式返回到服务器A(3a)和服务器B(3b)中、或者也可以将组ID传递给委托方,并委托代理计算结果的发送。例如,代替在MPC中实施计算,通过允许TEE内的TA(Trusted Application)重构(Reconstruct),由MPC以外的方法实施计算,并将该计算结果重新进行秘密共享到服务器A(3a)和服务器B(3b)(同时,也可以将寄存在委托方中的信息全部从委托方的环境中删除)。由此,可以在安全性和性能之间进行权衡。
图3是示出本发明的一实施方式中的用于提供个性化服务的机制的示例的概要的图。在图中所示的例子中,示出以下状态:在用户4a的钱包211a中保存“数据1”、“数据2”、“数据3”的VC,而在用户4b的钱包211b中保存“数据4”、“数据5”的VC。
而且,表示用户4a为了接受某个服务的提供而提供了“数据1”和“数据2”,与此相对,在服务提供商(服务器)侧对这些数据发行“组1”这样的组ID并进行了分组。同样地,表示用户4a为了接受其他服务的提供而提供了“数据2”和“数据3”,与此相对,在对这些数据发行“组2”这样的组ID并进行了分组。所发行的“组1”和“组2”的各组ID分别返还给作为对象数据的提供者的用户4a。同样地,表示用户4b提供了“数据4”和“数据5”,与此相对,在对这些数据发行“组3”这样的组ID并进行了分组。将“组3”的组ID返还给用户4b。
在这种情况下,例如,即使服务提供商侧的数据的管理员7(具有访问数量小于秘密共享方案的重构所要求的阈值k的环境的数据库的权限)参照了数据库的内容,由于任意数据(通过秘密共享)都被加密,因此无法掌握内容。进一步地,不用说用户4a或用户4b本人,就连任意数据与每个人的钱包211a、钱包211b的WA相关联的情况都无法掌握。即,能够实现在管理员7(服务提供商)中无法确定提供了数据的本人的不确定性。
另一方面,对于管理员7来说,例如,能够掌握“组1”中包含的“数据1”和“数据2”与“同一人”相关联。即,可以为“组1”的“某人”提供个性化服务。返还了“组1”的组ID的用户4a为基于“组1”的数据来请求个性化服务,可以使用该组ID。即,对于基于“组1”的“数据1”和“数据2”的计算结果,通过在服务提供商(服务器)侧将“组1”的组ID与该计算结果相关联,用户4a能够利用“组1”的组ID来请求。
同样地,对于管理员7来说,由于能够掌握“组2”的“数据2”和“数据3”分别与“同一人”相关联的情况,因此能够面向“组2”的“某人”提供个性化服务。返还了“组1”和“组2”的组ID的用户4a能够分别接受基于“组1”的服务和基于“组2”的服务的提供。另外,管理员7无法掌握“组1”和“组2”与“同一人”相关联的情况。即,无法将与同一用户4a相关联的“数据1”和“数据3”归并在一起。“组3”也一样,管理员7由于能够掌握“数据4”和“数据5”与“同一人”相关联的情况,因此能够面向“组3”的“某人”提供个性化服务。
图4是示出本发明的一实施方式中的用于提供个性化服务的机制的另一示例的概要的图。在图中所示的例子中,示出以下状态:“数据C1”和“数据C2”保存在用户4c的钱包211c中,而“数据D1”和“数据D2”保存在用户4d的钱包211d中,用户4c从用户4d的钱包211d非法获取“数据D1”,并将其添加到自己的钱包211c中。另外,示出了用户4c为了接受某服务的提供而提供“数据C1”和“数据C2”,将这些数据进行分组,并发行了“组4”这样的组ID。
这里,假设用户4c为了接受其他服务的提供而提供“数据C2”和“数据D1”,对这些数据进行分组并发行了“组5”这样的组ID的情况下,如“组5”那样,当将他人的数据作为同一组的信息来处理时,则基于这些数据的计算结果为并非基于用户4c的真实信息而生成的非法结果,所提供的服务的内容会变质。然而,如上所述,由于数据的管理员无法掌握加密后的数据内容,因此无法确认作为属于同一组(在图4的例子中为“组5”)的数据而提供的各数据是否真的与同一用户(在图4的例子中为用户4c)相关联。
因此,在本实施方式中,能够通过将用户提供的数据设为包含ID信息的VC,来验证其为用户本人的数据的同时,在服务提供商(服务器)侧,对于作为属于同一组的数据而提供的各数据,在通过MPC验证了是否全部是同一ID信息之后,在能够确认全部是同一ID信息的情况下,将这些数据进行分组。即,在图4的例子中,未对“数据C2”和“数据D1”进行分组,不发行“组5”这样的组ID(或者,也可以在将“组5”这样的组ID作为“视同组ID”暂时发行的基础上,在之后无法确认全部是同一ID信息的情况下废弃)。由此,能够将属于某组的数据全部作为同一用户的数据来处理。另外,在服务提供商侧,即使能够掌握具有同一ID信息的数据是“同一人”的数据,也无法掌握是“谁”的数据。
<秘密共享>
图5是示出本发明的一实施方式中的秘密共享方案的适用示例的概要的图。在通过秘密共享方案进行份额化之前的明文(在本实施方式中,例如,JWS的头部和负载部是用点(.)连接字符串而成的,在用Base64URL编码的情况下,事先进行解码))的VC241由数据D和作为其数字签名(在JWS签名部中,在使用Base64URL编码的情况下,事先进行解码)的Dsig构成。这里,数据D由其格式部分F、ID信息SUB_WA、以及m个属性信息(在本实施方式中,例如JWT(JSON Web Token))中的声明(键值对))C1~Cm构成。
另外,格式部分F是JSON中的格式部分(特别是从负载部的声明集(Claims Set)中除去根据本实施方式中的隐私保护对象的值后的部分),不仅包括JWS中的负载部,还包括头部。另外,关于SUB_WA,如上所述,在本实施方式中设为DID的WA(钱包地址),但只要与各VC内的身份标识号信息一致即可,也可以是个人编号或护照号码、其他身份标识号信息。
在本实施方式中,声明集中的格式部分F、各声明C1~Cm以及SUB_WA分别以可分离的形式进行秘密共享。这是因为,当通过对作为JWS的VC241按原样执行秘密共享并生成份额时,则在分发该份额的服务器侧无法区分声明集的格式部分F和数据(在本实施方式中,是SUB_WA和各声明C1~Cm中作为隐私保护对象的值)的份额部分,这可能会妨碍服务器侧的MPC对数据的验证和使用。作为分离以外的方法,例如,也有如下方法,即,特别是通过赋予声明集的密文的字节列中的从哪里到哪里与隐私信息的密文相关的信息和包含键信息的元信息,能够在事后获取目标隐私信息的份额。
另外,关于格式部分F,由于不包含用户4的隐私信息,因此不需要隐藏,不必基于秘密共享而进行份额化,而是以原样的明文的状态向参与MPC的服务器分发。在这种情况下,当在服务器侧对各个份额26执行MPC时,当格式部分F作为份额来处理并将其设为MPC的对象时,则由于格式部分F的明文包括在多个份额中,因此无法正确地执行计算。
因此,在本实施方式中,将格式部分F设为明文,另一方面,为了对该格式部分F也能够正确地进行MPC,通过以下所示的方法虚拟地进行份额化。具体而言,例如,在所有的服务器中只将在格式部分F中包含全部实际内容的份额26设为1个,对于其他的服务器的份额26,将格式部分F的部分“零值化”。所谓“零值化”,是指例如按照以下的要领将任意数据S变换为S’的基于Zero函数的操作。
S’=Zero(S)
S=Reconstruct(S,S’,S’,...,S’)
即,所谓“零值化”后的S’,是在基于只有一个S、其他全部为S’的份额进行重构(Reconstruct)的情况下,其结果为S的数据,只要是满足该要件的数据(即,重构时不会产生影响)即可,S’可以是任何值。在加性秘密共享方案中,S'例如可以设为与S相同尺寸的“0”。
如果第i个服务器3(参与方)表示为Pi,则对于每个1<i≤n的Pi,
执行S’=Zero(S)
以将S替换为S’,从而通过第1个P1所保存的S和各个Pi(1<i≦n)所保存的S’,
Reconstruct(S,S’,S’,...,S’)=S
然后,可以通过重构获得S。即,可以将S和S’(零值)作为S的伪份额来处理。
例如,在用“1234”表示的数据的情况下,当将其“零值化”时,
则如Zero(1234)=0000
那样,置换为Reconstruct函数中的单位元。因此,在所有服务器所保存的份额中,基于只有1个份额为“1234”、其他所有服务器所保存的份额为“0000”的份额进行重构时,
1234+0000+0000+...+0000=1234
或者,
1234@0000@0000@...@0000=1234
(“@”表示异或逻辑)
,可以获得原始明文“1234”。
预先将格式部分F设为明文时的方法并不限于上述的“零值化”。例如,可以进行秘密共享方案,即,保存份额26的所有参与方(服务器3)中除1个参与方以外的参与方发行随机数,将其收集到1个参与方中,在收集了随机数的参与方上,将各参与方发行的随机数视为份额。例如,通过将从明文中减去所有随机数或进行异或逻辑化后的结果作为新的份额,可以再现加性秘密共享。即,当将各参与方发行的随机数设为Ri(1<i≦n)时,则在从各参与方收集了随机数的参与方上,当
S’=S-(R2+R3+...+Rn)
或者,
S’=S@R2@R3@...@Rn
时,则
Reconstruct(S’,R2,R3,...,Rn)=S
,可以复原S。即,可以将S’和Ri(1<i≦n)设为S的伪份额。
在本实施方式中,作为预先将格式部分F设为明文的方法,使用上述的“零值化”,下面将对格式部分F进行了“零值化”的Zero(F)记载为F’。另外,在计算了格式部分F’的情况下,格式部分F不在MPC中使用,但出于参照键信息的目的,也可以不另行删除格式部分F而是进行保存。此外,详细内容将在后面进行描述,在格式部分F中包含由隐私信息的份额(包含在份额26中的声明的值的份额)置换的部分的情况下,仅对用于表示该置换对象的标记(例如,作为置换对象的字符串)以外的部分进行零值化。
图中的份额26_1、份额26_2...份额26_n分别表示在上述条件下将VC241进行秘密共享而获得的n个份额26。例如,第n个份额26_n包括VC241的第n个份额,即数据D的第n个份额D_$n和数字签名Dsig的第n个份额Dsig_$n。进一步地,还包括:明文的格式部分F(或者在对格式部分F进行“零值化”后的参与方的格式部分F’)、ID信息SUB_WA的第n个份额SUB_WA_$n与各声明C1~Cm的第n个份额C1_$n~Cm_$n连接而成的VC_$n。
另外,这里的连接,是指用各自的份额(密文)来置换相当于数据D中包含的信息中的隐私信息的声明的值(明文)的操作,并将其定义为Replace函数。即,在对进行秘密共享后的份额26进行分发后的第i个服务器Pi(i∈{1,2,...,n})中,实施以下置换。
在P1中,
VC_$1
=Replace(F,SUB_WA_$i,
C1_$i,...,Cm_$i)
在Pi(1<i≤n)中,
VC_$i
=Replace(F’,SUB_WA_$i,
C1_$i,...,Cm_$i)
如此一来,各份额26具有用于可将格式部分F(明文)和各声明C1~Cm的份额进行分离的结构。由此,在服务器侧的MPC时,即使将包含在各份额26中的格式部分F作为份额进行处理,对于“零值化”后的格式部分F’,如上所述,不会对Reconstruct函数的结果产生影响,因此能够根据实际上包含全部份额中仅有1个的格式部分F的明文在内的份额26的内容,进行MPC。
此外,即使在不进行上述的“零值化”、所有的份额26的格式部分F包含实际内容的情况下,例如,也可以仅仅使用任意的1个服务器3(Pi)所保存的份额26的格式部分F,忽略其他的份额26的格式部分F,并与“零”同样地进行处理,从而进行验证。
另外,通过如上所述的各种方法,除了预先将格式部分F保存为明文的状态之外,还可以将通过秘密共享对格式部分F进行份额化后得到的部分一并进行分发。
此外,在图5的例子中,将VC241分为数据部分和格式部分,在仅仅将格式部分(格式部分F)保存为明文的同时,通过秘密共享对其他数据部分进行加密,并生成份额26。然而,对于数据部分中的声明C1~Cm,也认为存在隐私信息(用户本人想要隐藏的秘密信息)和非隐私信息(用户本人认为可以公开的信息),对于相当于非隐私信息的声明,也可以与格式部分F同样地不进行加密(份额化)而是直接以明文进行处理。在这种情况下,对于各声明,可以对所保存的数据(值)是否是隐私信息(是否份额化)的信息进行另外保存,例如也可以将该数据(值)的明文包含在格式部分F中。
<***构成>
图1是概要示出作为本发明的一实施方式的服务提供***的结构例的图。服务提供***1例如具有用户4所持有的客户端2和多个服务器3可经由未图示的因特网等网络相互通信的结构。客户端2是具有主要保存并管理关于用户4的VC241的信息的功能的装置(第1装置),例如,由PC(Personal Computer)、平板终端、智能手机等信息处理终端等其他装置进行安装。
另一方面,服务器3是具有将通过在客户端2中秘密共享VC241而生成的多个份额26分别进行隔离保管的同时,基于这些份额26进行MPC,得到用于提供个性化服务的计算结果的功能的装置(第2装置),例如,由服务器设备或在云计算服务上构建的虚拟服务器等其他装置进行安装。各服务器3分别由不会出于非法操作份额26的目的而进行勾结的不同的人/商业实体进行管理,优选在物理上彼此隔离,但并不排除在由同一人/商业实体进行管理的1个服务器设备上构建的多个虚拟服务器等、逻辑上彼此隔离的结构。
下面,按照处理流程对客户端2和服务器3各自的结构进行说明。
[客户端]
客户端2例如通过未图示的CPU(Central Processing Unit),执行从HDD(HardDisk Drive)或SSD(Solid State Drive)等记录装置在存储器上展开的OS(OperatingSystem)或DBMS(Database Management System)等中间件、或在其上运行的Web浏览器或应用程序等软件,从而实现上述客户端2的各种功能。客户端2例如具有通过软件进行安装的VC处理部21、份额提供部22、以及组同步部23等各部。此外,具有通过数据库或文件等进行安装的VC保管部24及ID保管部25等各数据存储器。
VC处理部21具有上述DID的功能,其用于使用户4将从发行者发行的数据作为VC241进行处理。如上所述,经由VC处理部21获得的VC241包括用于表示ID(身份标识号)的信息(例如,DID的WA)和属性信息(例如,“购买产品”苹果“,”金额(日元)“100”等)。所获得的VC241记录并保管在VC保管部24中。用户4也可以具有用于将自身的VC241的集合存储在钱包中并进行管理的用户界面的功能。在安装VC处理部21时,例如可以适当使用Microsoft社等现有的DID产品以及SDK(软件开发工具包)。
图6和图7是概要示出本发明的一实施方式中的VC保管部24的数据构成与具体的数据例的图。在本实施方式中,例如,在图5的例子中所示的VC241的内容中,在图6的VC保管部24a的表中,表示将数据D和其数字签名Dsig、格式部分F以及ID信息SUB_WA的部分分别保管在对应的列中;在图7的VC保管部24b的表中,表示将声明C1~Cm的键和值、以及值的数据类型(string、number(int、double)、boolean、null/empty、object(JSON object)、array等是标准型,但也可以定义独特型)分别保管在对应的列中。另外,在图6的VC保管部24a中,表示还将唯一确定各VC241的VCID保存为键;在图7的VC保管部24b中,表示还将唯一确定各声明的声明ID保存为键。
在图6的VC保管部24a的数据D中原样保存JWS的数据。另一方面,在格式部分F中,表示在JWS所包含的声明中仅仅将值的部分置换为“${SUB_WA}”或“${声明ID}”这样的标记的状态下进行保管。该部分例如通过由图7的VC保管部24b中用于表示对应的声明的声明ID(在图6和图7的例子中,为“C001”)或身份标识号信息的字符串(在图6的例子中为“SUB_WA”)的值表示,能够在值之间进行置换。在本实施方式中,通过用“${}”包围,能够区分声明值和置换对象,但只要能够安装可正确分析置换后的数据的表述(例如JSON的语法)的解析器,则可以使用任何表述方法。
返回图1,客户端2的份额提供部22具有如下功能:通过(k,n)阈值秘密共享方案对保管在VC保管部24中的VC241中指定给用户4的部分进行加密以生成多个份额26,并将每个份额26提供给任意服务器3。秘密共享VC241而生成多个份额26的方法如图5的例子所示,但在这种情况下,由于生成n个份额26,因此优选对n个服务器3分别提供1个份额26。另一方面,如果不向1个服务器3提供k个以上的份额26,则不会在1个服务器3中复原原始VC241,因此也不排除在该限度内向数量不足n个的服务器3提供(向1个服务器3提供多个份额26)的情况。
当以份额26的形式向服务器3提供数据时,如上述图3的例子所示,在服务器3中发行组ID(在“客户端2借给服务器3的数据的组ID”的意义上,以下有“借出组ID”的情况),并返还到用户4的客户端2中。在本实施方式中,如后所述,除了借出组ID之外,还返还与在服务器3中针对VC241的各声明发行的借出声明ID相对应的声明成为唯一的信息,例如键、数据类型、值等信息。此外,也可以仅仅在初次返还时,返还用于之后的认证的信任信息。在图中,将它们汇总表示为借出信息35。
组同步部23具有如下功能:与后述的服务器3的组同步部33协作,获取从服务器3返还的借出信息35,将其内容记录/保管在ID保管部25中,并且通过秘密共享方案对包含计算结果在内的数据进行重构(Reconstruct)。以后,根据需要向服务器3发送信任信息,通过将从服务器3返还的借出组ID(以及借出声明ID)和与在服务器3中由组ID进行分组管理的基于份额26的MPC的计算结果(份额)同步,根据所获取的计算结果的份额进行重构(Reconstruct),从而能够接收基于与组ID相关联的声明的数据的计算结果(明文)。即,从服务器3发布与组ID相关联的计算结果的份额的行为是发送个性化服务的方式。
除了借出组ID之外,还可以通过指定借出声明ID来进行基于与该借出声明ID相关的数据的处理。例如,可以对对象数据执行与GDPR(General Data ProtectionRegulation,EU通用数据保护条例)中规定的“删除权”或“更正权”相对应的权利。
图8是概要示出本发明的一实施方式中的ID保管部25的数据构成与具体的数据例的图。作为从服务器3返还的借出信息35的内容,表示分别保管借出组ID和借出声明ID、以及对象声明的键、数据类型的内容。此外,对于各个声明,表示对通过秘密共享方案来重构(Reconstruct)的值的内容进行保管。另外,该表不仅包含由VC241提供的数据(声明),还包含基于由VC241提供的数据(声明)对服务器3侧的MPC的计算结果进行重构而获得的数据。通过以相同的方式向计算结果赋予声明ID,可以执行与由VC241提供的数据相同的操作。即,能够将计算结果进一步用于其他的计算/处理。
[服务器]
返回图1,服务器3例如通过未图示的CPU,执行从HDD或SSD等记录装置在存储器上展开的OS或DBMS等中间件、或在其上运行的软件,从而实现上述服务器3的各种功能。服务器3例如具有由软件安装的份额获取部31、验证处理部32和组同步部33等各部。此外,具有通过数据库或文件等进行安装的份额保管部34等数据存储器。
份额获取部31具有如下功能:接收/获取从客户端2提供的份额26,并暂时保存在存储器等记录装置中。验证处理部32具有一边利用MPC一边对由份额获取部31暂时保存的份额26进行以下3种验证处理的功能,为了进行各种验证处理,还具有发行者验证部321、包含验证部322、以及分组部323等各部。另外,进行以下3种验证处理的顺序并没有特别限定。即,可以并行执行所有3种类型的验证处理。
作为第1验证,发行者验证部321具有验证作为对象数据的发行者的人是否是正确的发行者的功能。该验证处理通过MPC实施与用于签名的计算的数字签名的签名算法配对相对应的验证算法。该签名算法由格式部分F中包含的信息来确定。例如,由JWS头部中的键“alg”的值来确定。执行以基于键“kid”的值从PKI或DPKI获取的公钥、VC_$i以及VC241中包含的数字签名的份额Dsig_$i为输入值的、基于MPC的完整性验证的算法(VerifyMPC函数),并通过对验证结果的份额进行重构(Reconstruct)来确认结果。
作为第2验证,包含验证部332对VC_$i中包含的隐私信息的份额是否是将VC241中包含的数据进行秘密共享后的份额进行验证。具体而言,例如,以图5中的份额26_n为例,通过MPC对将格式部分F或F’与各声明C1~Cm的份额C1_$n~Cm_$n连接而成的值、即VC_$i与VC241整体的份额D_$n进行等价验证(EqualMPC函数),通过对验证结果的份额进行重构(Reconstruct)来确认结果。
另外,第1验证和第2验证可以通过1个验证来兼任。即,如下所示,如果以将从PKI或DPKI获取的公钥、格式部分F或F’与各声明C1~Cm的份额C1_$n~Cm_$n连接而成的值、以及VC241中包含的数字签名Dsig_$i作为输入值,在MPC中执行完整性验证的算法,通过对验证结果的份额进行重构(Reconstruct)来确认结果,则能够兼作第1验证和第2验证。
[v]←VerifyMPC(pk,[Dsig],[VC])
{Accept,Reject}
←Reconstruct([v])
另外,[]内的值简略地表示为进行秘密共享的份额。例如,对于任何值X,
[X]={X_$1,X_$2,...,X_$n}
。即,
VC=Reconstruct([VC])
=Reconstruct(VC_$1,VC_$2,
...,VC_$n)
。VerifyMPC函数表示基于MPC的数字签名的完整性验证算法。此外,v表示由pk、Dsig、VC通过由键“alg”的值来确定的数字签名的完整性验证算法来进行验证的结果。
作为第3验证,分组部323具有如下功能:在获取了与多个VC241相关的份额26的情况下,验证各份额26中包含的VC241的ID信息是否与其他VC241的ID信息相同,并对与具有相同ID信息的VC241相关的数据进行分组。
具体而言,例如,当用VC241q(q∈{1,2,...,p}表示不同的p个VC241并对它们进行分组的情况下,将VC2411中的ID信息SUB_WA的份额设为REP_SUB_WA_$i、将其他(p-1)个VC241中的ID信息SUB_WA的份额设为subq_$i,并且在1<q≤p时,分别用MPC对REP_SUB_WA_$i和subq_$i进行等价验证(EqualMPC函数)。
[eq]←qualMPC([REP_SUB_WA],
[subq])
{Accept,Reject}
←Reconstruct([eq])
另外,eq表示对1<q≤p的范围内的第q个VC241中包含的SUB_WA和REP_SUB_WA进行等价验证的结果。此外,EqualMPC函数表示基于MPC的等价验证。如果所有VC241的ID信息都是相同值(在1<q≤p时,如果所有Reconstruct([eq])返回Accept),则分组成功。
在发行者验证部321的处理、包含验证部322的处理、分组部323的处理中,当在所有的验证中都返回了Accept的情况下,对VC241发行组ID。特别是在分组部323的等价验证中,即使存在1个ID信息并非相同值的VC241,则可以仅用ID信息为相同值的VC241进行分组,也可以废弃后执行预定的例外处理。在对VC241进行了分组的情况下,进一步对各VC241中包含的各个值分配声明ID。分配的组ID和声明ID通过后述的组同步部33,分别将其作为借出组ID、借出声明ID(带有VC241的属性名称)返还给客户端2。
与分组后的VC241相关的信息保管在份额保管部34中。图9和图10是概要示出本发明的一实施方式中的份额保管部34的数据构成与具体的数据例的图。在本实施方式中,例如,在图9的例子所示的份额保管部34a的表中,表示作为与组ID相关的信息,保管借出组ID和ID信息SUB_WA的份额。在图中,借出组ID为“组1”的记录的ID信息SUB_WA的值由“30181B...”和16进制的随机数表示,这表示是其处于份额(加密)的状态。
此外,在图10的例子所示的份额保管部34b的表中,作为与声明ID相关的信息,表示除了借出组ID和借出声明ID、以及签名以外的声明中的键和数据类型的明文之外,还保管值的份额的信息。在图中,声明的键为“name”的记录值的值由16进制的随机数表示,这表示处于份额(加密)状态。进一步地,表示对标志信息进行保存,该标志信息用于判定声明是否是非隐私信息、是否可以不通过秘密共享进行份额化并处于明文状态。另外,如上所述,对于处于明文状态的声明,在值中保存明文内容的只有1个服务器3,将其他服务器3中的该声明的值进行“零值化”。
组同步部33与客户端2的组同步部23协作,具有如下功能:对于由分组部323分组而成的VC241,将发行的借出组ID、借出声明ID以及对应的声明(键、值、数据类型等)的信息作为借出信息35返还给客户端2。另外,也可以仅仅在对客户端2进行初次返还时,在借出信息35中进一步包含用于之后的认证的信任信息。
在返还给用户4的客户端2的借出信息35中,不包含用户4的隐私信息本身,但是,例如,在返还目的地的客户端2的IP地址每次都相同的情况下,也可能产生确定用户4本人的风险。因此,对于服务器3和客户端2之间的通信,例如,优选使用能够隐藏Tor等连接路径的通信方式。
<处理流程>
图11是示出本发明的一实施方式中的从客户端2向服务器3分发各个份额26到在服务器3中进行验证为止的处理流程的示例的概要的图。首先,在客户端2中,VC处理部21通过由用户4从发行者接收的数据来获取VC241,并保管在VC保管部24中(S01)。然后,份额提供部22通过保管在VC保管部24中的VC241来计算n个份额26(份额26_i(1≤i≤n))(S02),并将它们分别发送到合计n个服务器3(在图中的例子中为第1个服务器3c(P1)以及第i个(1<i≤n)服务器3d(Pi))(S03)。另外,在图中的例子中,分发给n个服务器3(服务器3c以及服务器3d),但如上所述,只要是服务器3的数量大于在计算份额26时的秘密共享的阈值k即可,数量也可以小于n个。
在发送了份额26_i(1≤i≤n)的各服务器3(服务器3c及服务器3d)中,由份额获取部31获取该份额并暂时保存(S04)。然后,在通过上述方法对格式部分F虚拟地进行份额化时,在除了保存该明文的服务器3(将其作为服务器3c(P1))之外的其他服务器3(即,服务器3d(Pi(1<i≤n))中,通过上述方法对格式部分F进行“零值化”(S05)。
然后,通过验证处理部32在各服务器3(服务器3c以及服务器3d)之间进行MPC,来进行以下步骤S06~S08的3种验证处理。另外,如上所述,进行3种验证处理的顺序并不受特别限定,图11所示的顺序是一例。此外,步骤S06和S07的验证处理也可以兼作1个验证处理。
作为第1验证,发行者验证部321通过MPC验证原始VC241的数据的发行者是否是正确的发行者(S06)。具体而言,预先根据格式部分F中的JWS头部的键“kid”的值,从PKI或DPKI获取公钥,进而根据键“alg”的值来确定签名验证算法,在各服务器3(P1~Pn)之间预先约定该算法。然后,基于各份额26_i中包含的VC_$i和Dsig_$i来验证签名的完整性,通过对验证结果的份额进行重构(Reconstruct)来确认结果。
作为第2验证,包含验证部322通过MPC来验证VC_$i中包含的隐私信息的份额是否是对原始VC241中包含的数据进行了秘密共享的份额(S07)。具体而言,例如,如上所述,通过MPC来等价验证各份额26_i中包含的VC_$i和D_$i,通过对验证结果的份额进行重构(Reconstruct)来确认结果。
作为第3验证,分组部323利用具有相同信息的各份额26_i中包含的ID信息对VC241进行分组(S08)。具体而言,例如,分别对与份额26_i相关的VC241中的ID信息SUB_WA的份额和其他VC241中的ID信息SUB_WA的份额进行等价验证,如果全部是相同的值,则作为分组成功,对这些VC241发行组ID。即使存在一个不是相同值的VC241,则可以仅使用相同值的VC241进行分组。发行了组ID时,进一步对与份额26_i相关的VC241中包含的值分别分配声明ID。
然后,判定上述3种验证处理的结果是否全部没有问题(验证结果全部为真(Accept))(S09),在即使有1个问题(验证结果中有1个以上为假(Reject))的情况下,进行预定的例外处理(S10)。另一方面,在步骤S09中验证结果全部没有问题的情况下,通过组同步部33,将发行的组ID和声明ID以及对应的声明(键、份额值、数据类型等)保管在份额保管部34中的同时,将它们作为借出信息35(S11)返还给客户端2(S12)。在接收到借出信息35的返还的客户端2中,由组同步部23获取该借出信息,并记录到ID保管部25中(S13)。
特别是在希望避免因步骤S06~步骤S08的处理时间而在用户4中产生等待时间的情况下,在份额获取部31或组同步部33中,假设在步骤S04之后所有VC241的ID信息全部为相同值,也可以发行“视同组ID”,(根据需要发行信任,与此同时)将“视同组ID”返回给客户端2的组同步部23中。在这种情况下,当步骤S06~步骤S08的验证全部成功时,将“视同组ID”和借出声明ID以及对应的声明(键、份额值、数据类型等)保管在份额保管部34中。
另外,无论计算的输入值、输出值如何,为了不会使分配给数据的借出组ID和借出声明ID产生不一致,也可以在参与MPC的服务器之间进行通信,也可以使针对相同数据发行的借出组ID和借出声明ID的等价性或者编号方法达成一致。或者,借出组ID、借出声明ID也可以对每个服务器3采用不同的编号。在这种情况下,例如,在客户端2中,按每个服务器3保管图8所示的借出组ID、借出声明ID,另外采用用于将在复原(Reconstruct)各数据(声明的值)中使用的份额的集合设为唯一的ID编号。
图12是示出本发明的一实施方式中的在服务器3中执行份额26验证之后到提供个性化服务为止的处理流程的示例的概要的图。在各服务器3(Pi(1≦i≦n))中,通过组同步部33,根据与在份额保管部34中保管的借出组ID相关联的声明信息,由MPC进行计算处理(S21)。然后,向计算的输出结果(份额)发行借出声明ID,将与作为计算的输入值而使用的声明相同的借出组ID与计算结果相关联,并将该计算结果作为声明信息记录到份额保管部34中(S22)。该声明信息包括所发行的借出声明ID、用于表示计算结果含义的键信息、计算结果的份额(值份额)、计算结果的数据类型等。
另外,关于步骤S21的计算处理,考虑MPC的计算处理的负荷和效率等,如后所述,例如,也可以在服务器3中在内部从秘密共享方案变换为不同的计算方法之后进行分析,并将其结果重新进行秘密共享,从而提高处理效率。
在客户端2中,通过向各服务器3(Pi(1≤i≤n))发送与为了接受个性化服务而提供的VC241相对应的借出组ID的信息,来请求计算结果(S31)。在各服务器3(Pi(1≤i≤n))中,从份额保管部34提取根据借出组ID进行分组的声明信息(也包含上述步骤S21中的计算结果),并将其响应于客户端2(S32)。在客户端2中,根据从各服务器3(Pi(1≤i≤n))响应的声明信息中的值的份额,通过秘密共享方案进行重构(Reconstruct),从而获取基于与借出组ID相关联的声明数据的计算结果(S33)。即,可以接收个性化服务的分发。
<利用方式>
在以上所示的结构中,例如,作为使用案例,假设服务提供商希望“对年龄为20岁以上的用户,提供酒广告;对不足20岁的用户,提供果汁广告”的情况。在用户4提供年龄信息作为VC241,并且在服务器3发行了与其相对应的组ID的状态下,在服务器3侧,
if(年龄>=20)
“啤酒广告”
else
“橙汁广告”
对于包含“年龄”数据的组执行如上所述那样的处理(MPC)。将适用于计算的组的组ID与计算结果相关联。
在服务器3侧,计算结果(“啤酒广告”或“橙汁广告”)保持为份额的形式,不能把握其内容,但在用户4的客户端2中,基于从各服务器3返还的计算结果,利用秘密共享方案的Reconstruct进行重构,从而能够接收与计算结果相关的个性化广告。此时,在服务器3侧,由于经由组ID进行MPC中的处理,因此不仅无法知道计算结果的内容,也无法确定提供了VC241的用户4。由此,可以在强力保护隐私信息的基础上为用户4提供固有的个性化服务。
另外,在服务器3之间的MPC处理中,不仅计算处理的负荷大,而且还存在通信的开销,很难说处理效率高。因此,例如,也可以在服务器3侧从内部秘密共享方案变换为不同的计算方法,提高处理效率。例如,对于各服务器3获取的VC241的份额26而言,也可以在通过MPC变换为所谓同态加密的基础上,对其进行计算,将得到的计算结果重新进行秘密共享,并从份额求出通过MPC对同态加密进行重构后的结果的份额(根据环境或条件有时处理性能会提高)。此外,也可以在基于硬件的TEE上动作的TA(Trusted Application)内对各服务器3获取的份额26进行重构(Reconstruct)之后进行计算,重新进行秘密共享计算结果,生成份额后输出。然而,特别是在后者的情况下,可能会降低对隐私保护的安全性。
以上基于实施方式对于本发明者完成的发明进行了具体说明,但本发明并非仅限于上述实施方式,在不脱离其主旨的范围内可以进行各种改变。另外,上述实施方式是为了使本发明易于理解而进行的详细说明,但并非限定为必须具备所说明的全部构成。另外,关于上述实施方式的构成的一部分,能够进行其他构成的追加、删除、置换。
另外,上述各构成、功能、处理部、处理手段等的一部分或全部,例如可以通过在集成电路中进行设计等以硬件方式实现。另外,上述各构成、功能等还可以通过由处理器对实现各自的功能的程序进行解释、执行以软件方式实现。实现各功能的程序、表、文件等信息,能够存放于内存、硬盘、SSD等记录装置,或IC卡、SD卡、DVD等记录媒体中。
另外,上述各图中,控制线、信息线是考虑说明上的需要而示出的,未必示出了安装上的全部控制线、信息线。实际上可以认为,近乎所有的构成都可以相互连接。
工业上的实用性
本发明可用于在不确定用户本人的情况下提供个性化服务的服务提供***。
符号说明
1 服务提供***
2 客户端
3 服务器
3a 服务器A
3b 服务器B
3c、3d 服务器
4、4a~4c 用户
5 DPKI
6 数据采集设备
7 管理员
21 VC处理部
22 份额提供部
23 组同步部
24、24a、24b VC保管部
25 ID保管部
26、26_1~26_n 份额
31 份额获取部
32 验证处理部
33 验证处理部
34、34a、34b 份额保管部
35 借出信息
211a~211d 钱包
241 VC
321 发行者验证部
322 包含验证部
323 分组部
Claims (4)
1.一种服务提供***,具体是一种通过1个以上的第2装置经由网络向用户的第1装置提供服务的服务提供***,其中,
所述第1装置具有:
份额提供部,其用于从保管可验证为所述用户的数据VC的VC保管部获取所述VC,并通过秘密共享方案分割成多个份额,将所述各份额分发给所述第2装置;
以及第1组同步部,其用于获取从所述第2装置返回的与1个以上的所述VC相关的组ID的信息,并保管在ID保管部,根据所述组ID,对与所述第2装置中的所述服务相关的预定的秘密计算结果,通过秘密共享方案进行重构后获取;
所述第2装置具有:
份额获取部,其用于获取从所述第1装置分发的所述份额;
验证处理部,其用于针对所获取的所述份额,将与该份额相关的所述VC中包含的ID信息值相等的部分进行分组,发行所述组ID,并将所述组ID和与该份额相关的信息保管在份额保管部中;
以及第2组同步部,其用于将包含所述组ID的信息返还给所述第1装置。
2.根据权利要求1所述的服务提供***,其中,
所述第1装置的所述份额提供部将所述VC中的私人信息和非私人信息分离,在所述非私人信息为明文的状态下通过秘密共享方案分割成所述份额。
3.根据权利要求2所述的服务提供***,其中,
所述第1装置的所述份额提供部在通过秘密共享方案将所述VC分割为多个所述份额时,对预定的1个所述份额设定所述非私人信息,对于其他所述份额,用在通过秘密共享方案对所述VC进行重构时不产生影响的数据进行填充。
4.根据权利要求2所述的服务提供***,其中,
所述非私人信息包括所述VC中的格式信息,
所述第2装置的所述验证处理部针对从所述第1装置分发的所述份额,验证该份额中包含的所述私人信息是否是与该份额中包含的所述格式信息中规定的要素相关的数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/046433 WO2022123795A1 (ja) | 2020-12-11 | 2020-12-11 | サービス提供システム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116830181A true CN116830181A (zh) | 2023-09-29 |
Family
ID=81974329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080107835.0A Pending CN116830181A (zh) | 2020-12-11 | 2020-12-11 | 服务提供*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230370252A1 (zh) |
EP (1) | EP4261809A1 (zh) |
JP (1) | JP7500771B2 (zh) |
CN (1) | CN116830181A (zh) |
WO (1) | WO2022123795A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11930074B2 (en) * | 2021-10-26 | 2024-03-12 | King Fahd University Of Petroleum And Minerals | Content distribution over a network |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011248711A (ja) * | 2010-05-28 | 2011-12-08 | Nomura Research Institute Ltd | 秘密分散によるデータ管理システム |
EP2688264B1 (en) | 2012-07-16 | 2016-08-24 | Alcatel Lucent | Method and apparatus for privacy protected clustering of user interest profiles |
-
2020
- 2020-12-11 JP JP2022568031A patent/JP7500771B2/ja active Active
- 2020-12-11 EP EP20965176.9A patent/EP4261809A1/en active Pending
- 2020-12-11 CN CN202080107835.0A patent/CN116830181A/zh active Pending
- 2020-12-11 US US18/039,011 patent/US20230370252A1/en active Pending
- 2020-12-11 WO PCT/JP2020/046433 patent/WO2022123795A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP7500771B2 (ja) | 2024-06-17 |
JPWO2022123795A1 (zh) | 2022-06-16 |
EP4261809A1 (en) | 2023-10-18 |
WO2022123795A1 (ja) | 2022-06-16 |
US20230370252A1 (en) | 2023-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210409221A1 (en) | Portable Biometric Identity on a Distributed Data Storage Layer | |
US20220191012A1 (en) | Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System | |
CN107925581B (zh) | 生物体认证***以及认证服务器 | |
Li et al. | OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices | |
JP7426031B2 (ja) | 鍵セキュリティ管理システムおよび方法、媒体、ならびにコンピュータプログラム | |
US10567377B2 (en) | Multifactor privacy-enhanced remote identification using a rich credential | |
US9646161B2 (en) | Relational database fingerprinting method and system | |
CN112347516A (zh) | 基于区块链的资产证明方法及装置 | |
CN114503508A (zh) | 用于在区块链上存储经认证的数据的计算机实施的方法和*** | |
CN114629713B (zh) | 身份验证方法、装置及*** | |
Tu et al. | Privacy‐Preserving Outsourced Auditing Scheme for Dynamic Data Storage in Cloud | |
US11870898B2 (en) | Split keys for wallet recovery | |
Wei et al. | Dynamic data integrity auditing for secure outsourcing in the cloud | |
CN116830181A (zh) | 服务提供*** | |
WO2024011863A9 (zh) | 通信方法、装置、sim卡、电子设备和终端设备 | |
KR102517001B1 (ko) | 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법 | |
Xu et al. | A generic integrity verification algorithm of version files for cloud deduplication data storage | |
Ganesh et al. | An efficient integrity verification and authentication scheme over the remote data in the public clouds for mobile users | |
CN113489669A (zh) | 一种用户数据保护的方法及装置 | |
Aruna et al. | Development of hybrid heuristic‐assisted dynamic data auditing strategy in cloud sector | |
US11829512B1 (en) | Protecting membership in a secure multi-party computation and/or communication | |
Abraham et al. | Proving possession and retrievability within a cloud environment: A comparative survey | |
US11886617B1 (en) | Protecting membership and data in a secure multi-party computation and/or communication | |
KR101994096B1 (ko) | 사용자 인증 방법 및 이를 수행하기 위한 사용자 단말 | |
CN115580495B (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 |