JP2021128261A - 秘密分散ベースのマルチパーティ計算のための装置 - Google Patents

秘密分散ベースのマルチパーティ計算のための装置 Download PDF

Info

Publication number
JP2021128261A
JP2021128261A JP2020022997A JP2020022997A JP2021128261A JP 2021128261 A JP2021128261 A JP 2021128261A JP 2020022997 A JP2020022997 A JP 2020022997A JP 2020022997 A JP2020022997 A JP 2020022997A JP 2021128261 A JP2021128261 A JP 2021128261A
Authority
JP
Japan
Prior art keywords
share
random number
environment
update
revision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020022997A
Other languages
English (en)
Inventor
将司 川口
Shoji Kawaguchi
将司 川口
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.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
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 Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2020022997A priority Critical patent/JP2021128261A/ja
Priority to CN202010186400.1A priority patent/CN113268744B/zh
Priority to US16/829,594 priority patent/US11424917B2/en
Publication of JP2021128261A publication Critical patent/JP2021128261A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • 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/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)

Abstract


【課題】秘密分散ベースMPCの運用においてデータの流出に対する安全性をさらに高める。
【解決手段】装置は、秘密分散ベースのマルチパーティ計算に参加している装置である。装置が有するシェアと他の装置が有する対応するシェアとを合わせると元のデータを復元可能である。装置は、乱数を取得する手段と、装置のシェアを、取得された乱数に基づいて更新する手段と、を備える。更新する手段における更新の方法は、取得された乱数に基づいて更新された装置のシェアと、当該乱数に基づいて更新された他の装置の対応するシェアと、を合わせると、当該乱数による影響が相殺されて元のデータが復元されるように設計される。
【選択図】図13

Description

本発明は、秘密分散ベースのマルチパーティ計算に利用されるシェアを保持する装置に関する。
持続可能な開発目標(Sustainable Development Goals、SDGs)は持続可能でよりよい世界を目指す国際目標である。SDGsは発展途上国のみならず、先進国自身が取り組むユニバーサルなものであるとして、我が国の外務省が取り組みを後押ししている。
いわゆるビッグデータの活用はSDGsの達成に寄与する要素として認識されている一方、「人権」や「プライバシー」のリスクがあることについても認識されている。もしビッグデータの活用とプライバシーの保護とを両立することができれば、経済価値と併せて社会価値を生み出すことができると考えられる。
データ活用推進の例として、データの第三者提供が挙げられる。提供されるデータから個人が特定される可能性のあるデータには、しばしば仮名化/匿名化などの対策が施される。しかし、これらの手法ではデータの有用性と秘匿性のトレードオフを余儀なくされる。つまりプライバシー保護の強度を犠牲にして、精度の高い集計結果を得ることを優先するか、逆に、プライバシー保護を優先して、集計結果の精度を諦めるかの選択を迫られることになる。
このような二律背反の問題を解消し、経済価値・社会価値の創出を下支えする技術として「秘密計算」がある(非特許文献1参照)。秘密計算は、入力値を隠蔽したまま計算を可能とする技術である。この技術により、前述したトレードオフの状況をトレードオンに変えることが可能になる。
またデータ活用社会の実現に向けて、組織におけるデータ管理責任の問題が大きな注目を集めている。たとえば過去いくつもの組織によるデータの不正な取り扱いが問題視されており、データ主体である消費者が自身のデータを提供する先として安心できる組織か判断しかねることも多い。一方の組織にとっても、事業やサービスを介して蓄積したデータを流出させることで、経済的な損失だけではなく、社会的な信用を失うことに繋がる。持続可能な事業環境を構築するためには、組織能力あるいはガバナンスによる信頼を高める努力だけではなく、信頼を落とさないための根本的な技術革新が必要とされる。「秘密計算」はそこに寄与する、ひとつの手段である。
URL:https://www.jstage.jst.go.jp/article/isciesci/63/2/63_71/_pdf、2020年1月29日検索
前述の通り、秘密計算の仕組みを導入すればデータ流出のリスクを軽減しつつ精確なデータの分析を行うことができる。しかしながら、ここ数年で起きた各所のビッグデータ流出事件にも見られる通り、攻撃は巧妙化、大規模化していることから、さらなる安全性の向上が求められている。
本発明はこうした課題に鑑みてなされたものであり、その目的は、秘密計算のひとつである秘密分散ベースのマルチパーティ計算(MPC)においてデータの流出に対する安全性をさらに高めることができる技術の提供にある。
本発明のある態様は、装置に関する。この装置は、秘密分散ベースのマルチパーティ計算に参加している装置である。装置が有するシェアと他の装置が有する対応するシェアとを合わせると元のデータを復元可能である。装置は、乱数を取得する手段と、装置のシェアを、取得された乱数に基づいて更新する手段と、を備える。更新する手段における更新の方法は、取得された乱数に基づいて更新された装置のシェアと、当該乱数に基づいて更新された他の装置の対応するシェアと、を合わせると、当該乱数による影響が相殺されて元のデータが復元されるように設計される。
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を装置、方法、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
本発明によれば、秘密計算のひとつである秘密分散ベースのマルチパーティ計算においてデータの流出に対する安全性をさらに高めることができる
2―out―of―2秘密分散されたデータを示す模式図である。 2―out―of―3秘密分散されたデータを示す模式図である。 秘密分散ベースMPCを実現するシステムの模式図である。 秘密分散ベースMPCの加算器における処理を説明するための模式図である。 秘密分散ベースMPCの乗算器に使用するビーバーズトリプルの概要を示す模式図である。 秘密分散ベースMPCの乗算器における処理を説明するための模式図である。 サーバエイデッドモデルの概要を示す模式図である。 クライアントエイデッドモデルの概要を示す模式図である。 漏洩が起こる第1のパターンを説明する模式図である。 漏洩が起こる第2のパターンを説明する模式図である。 実施の形態に係る秘密分散ベースMPCのコンセプトを説明するための模式図である。 本実施の形態に係る秘密分散ベースMPCの安全性の根拠を説明する模式図である。 実施の形態に係る秘密分散ベースMPCシステムの構成を示す模式図である。 図13の環境A装置のハードウエア構成図である。 図13の環境A装置の機能および構成を示すブロック図である。 図15のシェア保持部の一例を示すデータ構造図である。 図15のアクセス履歴保持部の一例を示すデータ構造図である。 図13の秘密分散ベースMPCシステムおける一連の処理の流れを示すチャートである。 本実施の形態に係る秘密分散ベースMPCシステムによるトレーサビリティの向上を説明する模式図である。 本実施の形態に係る秘密分散ベースMPCの適用例を説明するための模式図である。 変形例に係る秘密分散ベースMPCの考え方を示す模式図である。 図21に対応するシェア値の変化を示す模式図である。 乗算器の計算過程の一例を示す図である。 図10の補足情報を示す図である。 2者間の乱数生成(環境A視点のフロー)を示す図である。 Ethereumのトランザクションのハッシュ値による乱数生成を示す図である。
以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。
<秘密分散法の概要>
秘密分散法は、データを2つ以上に分割し、分割後のデータを閾値(一定数)以上集めれば、元データを復元できる手法を指す。分割後の値を「シェア」または「割符(わりふ、わっぷ)」と呼ぶ。秘密分散技術のISO標準は、ISO/IEC 19592−2:2017に規定されている。秘密分散法のメリットは、各シェアが異なる記憶領域に保存されることで、閾値未満のシェアが不正に取得されても元データの復元を不可能にできることである。
秘密分散法には、データをN(Nは2以上の整数)分割し、うちT(Tは2以上N以下の整数)個を集めたら元データを復元できる実装が存在し、これを閾値法と呼ぶ。閾値法には例えばT―out―of―N秘密分散((T、N)秘密分散とも呼ばれる)がある。T―out―of―N秘密分散は、N個のうち(T−1)個は盗まれても機密性が守られ(=秘密が流出することはない)、(N−T)個まで破損しても完全性を維持できる(=復元可能性を損なわない)仕組みである。
図1は、2―out―of―2秘密分散されたデータを示す模式図である。このスキームでは、データ2が2つのシェア4、6に分割されており、これら2つのシェア4、6を集めることで元のデータ2を復元可能である。加法型秘密分散法の場合のシェアの生成について具体的に説明する。秘密にしたいデータ2をdとする。まず、乱数を生成し、これをrとする。rを1つ目のシェア(シェア4)とする。(d−r)を2つ目のシェア(シェア6)とする。多くの場合、ある有限体上で表現される離散データとしてシェアの値は表現される。端的に言えば、シェア化する以前に法の値を取り決めて、乱数を用いて目的の個数に分割し、それぞれを法の値で剰余(モジュロ演算、%またはmod)することでシェア値を求める。通例、剰余の記述が省略されることが多く、本明細書も一部を除いてこれに倣う。
・2つのシェアを足し合わせると、シェア4+シェア6=r+(d−r)=dとなり、データ2(d)の復元に成功する。
図2は、2―out―of―3秘密分散されたデータを示す模式図である。このスキームでは、データ8が3つのシェアのペア値10、12、14に分割されており、これら3つのシェアのペア値10、12、14のうち2つを集めれば元のデータ8を復元可能である。加法型秘密分散法の場合のシェアの生成について具体的に説明する。秘密にしたいデータ8をdとする。
・2―out―of―2秘密分散と同様にデータ8を2つのシェアに分割する。簡単のため(r、d−r)をそれぞれs1、s2と呼ぶ。
・ローカルで乱数を2つ生成し、それぞれr1、r2とする。
・各環境に対し、以下のシェアのペア値(2−タプル)を提供する。いずれの環境に渡されるペア値でもそれだけでは元のデータ8の復元は不可能である。
・(a1=s1+r1、a2=s2−r2)
・(b1=s1+r2、b2=s2−r1−r2)
・(c1=s1+r1+r2、c2=s2−r1)
・この場合、任意の2組の環境が持つペア値のうちの片方同士を足し算すれば、元のデータ8を復元できる。すなわち、a2+b1=s1+s2=d、a1+c2=s1+s2=d、b2+c1=s1+s2=d。
なお、秘密分散のシェア化は加減算によるものに限られず、例えば排他的論理和で実施されてもよい。この場合、シェアを(乱数Q)と(元のデータ^乱数Q)とに分ける(「^」は排他的論理和を表す)。検算すると、(乱数Q)^(元のデータ^乱数Q)=元のデータとなる。本明細書では加減算による表現で統一する。
<秘密分散ベースのマルチパーティ計算の概要>
秘密分散ベースのマルチパーティ計算(Multi−Party Computation、MPC)は、秘密分散されたままのデータを計算に用いることで秘密計算を実現する手法であり、本明細書では「秘密分散ベースMPC」と称す。秘密分散ベースMPCでは、加算器と乗算器を用意することで機能完全性(Functional Completeness)を実現している。なお以下の説明では簡単のため、排他的論理和ではなく、加減算による加法型秘密分散法を前提とした説明を行う。
図3は、秘密分散ベースMPCを実現するシステム16の模式図である。秘密分散ベースMPCを実現するシステム16では、計算を行う装置同士の通信が極めて大量に発生する。図3の例では、シェアを分け合うP環境18とQ環境20との間で、秘密計算を行うための通信が大量に発生する。したがって、通信の性能が秘密分散ベースMPCの性能を決める大きな要因となる。そこでは、如何にラウンド数・通信量・通信回数を抑えるかが課題であり、また、如何に通信速度を向上させるか・通信を並列化させるかが課題である。
図4は、秘密分散ベースMPCの加算器における処理を説明するための模式図である。秘密の提供者(データ収集基盤)である2つのクライアント22、24はそれぞれ第1秘密データ26、第2秘密データ28を有している。第1クライアント22は第1秘密データ26を2分割することで2つのシェア26a、26bを生成し、データ解析基盤の第1装置30(例えば、サーバ)、第2装置32にそれぞれ提供(例えば、アップロード)する。第2クライアント24は第2秘密データ28を2分割することで2つのシェア28a、28bを生成し、第1装置30、第2装置32にそれぞれ提供する。
第1装置30は、提供されたシェア26aとシェア28aとを足し合わせることで第1和シェア34aを生成する。第2装置32は、提供されたシェア26bとシェア28bとを足し合わせることで第2和シェア34bを生成する。計算結果の利用者の装置36は、第1和シェア34aと第2和シェア34bとを取得して足し合わせることで、和データ34を生成する。シェアの定義から、和データ34は、第1秘密データ26と第2秘密データ28との和となる。このように、装置36は第1秘密データ26や第2秘密データ28を知らなくてもそれらの和を計算することができる。
図5は、秘密分散ベースMPCの乗算器に使用するビーバーズトリプルの概要を示す模式図である。ビーバーズトリプル(Beaver’s Triple、BT)は乗算器の利用毎に使い捨てられる値である。1乗算ごとに1組のBTを使い捨てる。再利用すると安全性が損なわれる可能性があるので、再利用は行わない。BTは、c=a×b(cはaとbの乗算結果)を満たす(a、b、c)という3値の組から成る。図5の例では、8ビット環境(256が法)において、a=47、b=93、c=19となっている。理解を促す目的で検算するとしたら、c=19であるのは、(a×b)=(47×93)%256=19=cだからである。BTの各値は乱数でシェア化された上で計算を行う装置へ配布される。図5の例ではc=19が187と88に分割される。これら2つのシェアを合わせると、(187+88)%256=19となって元のc=19が復元される。a、bについても同様である。以下、BTを生成する段階を「オフライン・フェーズ」と呼ぶ。計算の実施前にBTを予め作成して蓄積しておいてもよい。
図6は、秘密分散ベースMPCの乗算器における処理を説明するための模式図である。オフライン・フェーズでのBT生成により3つの値38、40、42の組としてBTが生成される。
第1クライアントは第1秘密データを2分割することで2つのシェア26a、26bを生成し、データ解析基盤の第1装置30、第2装置32にそれぞれ提供する。第2クライアントは第2秘密データを2分割することで2つのシェア28a、28bを生成し、第1装置30、第2装置32にそれぞれ提供する。第1装置30は併せてBTのシェア38a、40a、42aを取得し、第2装置32はBTの対応するシェア38b、40b、42bを取得する。
図23が表すように、第1装置30は、提供されたシェア26a、28a、38a、40a、42aに対して第2装置32との通信を含んだ所定の処理を行うことで、第1積シェア44aを生成する。第2装置32は、提供されたシェア26b、28b、38b、40b、42bに対して対応する第1装置30との通信を含んだ所定の処理を行うことで、第2積シェア44bを生成する。第1装置30と第2装置32とは上記の算術処理の過程で通信し、中間値を共有する。計算結果の利用者の装置36は、第1積シェア44aと第2積シェア44bとから積データ44を生成する。このように、装置36は第1秘密データや第2秘密データを知らなくてもそれらの積を計算することができる。
<秘密分散ベースMPCの実装モデル>
BTを生成するモデルはいくつかの類型化が可能である。例えば以下のように秘匿したいデータのシェア値を持つ装置と、秘匿したいデータのシェア値は持たないがBT生成あるいは計算を助ける第三者的な装置を分けて考えて、それぞれの役割がどこに与えられるかにより大別できる。
・2者間のみでBTを生成するモデル(例えば紛失通信や準同型暗号によるもの)。このモデルは計算量や通信の面で比較的コストが高くなる。ただし2―out―of―2秘密分散の機密性が保たれるため、このあとのクライアントエイデッドモデルやサーバエイデッドモデルよりも堅牢である。
・Client−Aided(クライアントエイデッド)、すなわち第三者であるクライアントがBTを生成するモデル。このモデルでは、データの提供者自身であるクライアントにBT生成の権限を委譲する。参加するクライアントが多いほど分権的という見方もあり、BTを生成する計算負荷も分散される。後述の通り、クライアントを含めた3者中2者が背信(=攻撃に協力)することで、秘密は漏洩しうる。つまり2者間のみでBTを生成するモデルの機密性より劣る。
・Server−Aided(サーバエイデッド)、すなわち第三者であるサーバがBTを生成するモデル。このモデルでは、計算を担う2者に加えて、第三者にBT生成の権限を委譲する。クライアントエイデッドモデルと同じく、サーバを含めた3者中2者が背信することで、秘密は漏洩しうる。つまり2者間のみでBTを生成するモデルの機密性より劣る。
図7は、サーバエイデッドモデルの概要を示す模式図である。サーバエイデッドモデルでは、第1装置30とも第2装置32とも異なる、第三者の環境に置かれたサーバ46がBT(値38、40、42の組)を生成する。サーバ46は、生成されたBTをシェア化し、シェアの一方を第1装置30に、シェアの他方を第2装置32に、それぞれ提供する。
図8は、クライアントエイデッドモデルの概要を示す模式図である。クライアントエイデッドモデルでは、第1クライアント22は第1装置30、第2装置32の両方から認証を受ける。認証済みの第1クライアント22はBT(値38、40、42の組)を生成する。第1クライアント22は、生成されたBTをシェア化し、シェアの一方を第1装置30に、シェアの他方を第2装置32に、それぞれ提供する。
<秘密分散ベースMPCの安全性を守る条件>
秘密分散ベースMPCにおいて、元のデータが復元されるパターン、すなわち漏洩が起こるパターンには以下の二通りがある。
図9は、漏洩が起こる第1のパターンを説明する模式図である。第1のパターンでは、攻撃者が両方のシェアを集めて、元のデータを復元する。例えば、攻撃者は元のデータ(値:13)を分割して生成される2つのシェア(値:189と値:80)を不正な手段で取得する。攻撃者はこれらのシェアを合わせることで((189+80)%256=13)、元のデータを復元することができる。
図10は、漏洩が起こる第2のパターンを説明する模式図である。第2のパターンでは、乗算過程において攻撃者がBTと乗算過程とを集めて、元のデータを復元する。例として、図24は具体的にBT生成者と環境Aが結託することで起きる秘密の復元を表している。図10、図24の数値は図23の数値に基づく。
元のデータ1(値:13)をシェア1−1(乱数値:242)とシェア1−2(乱数値:27)に分割、元のデータ2(値:17)をシェア2−1(乱数値:213)とシェア2−2(値:60)に分割、BT3(乱数値:11)をシェア3−1(乱数値:56)とシェア3−2(値:211)に分割、BT4(乱数値:205)をシェア4−1(乱数値:240)とシェア4−2(値:221)に分割、BT5(値:207)をシェア5−1(乱数値:129)とシェア5−2(値:78)に分割したとする。攻撃者は、乗算器の計算過程に得られるシェア1−1とBT3−1の和((242+56)%256=42)とシェア1−2とBT3−2の和((27+211)%256=238)、シェア2−1とBT4−1の和((213+240)%256=197)とシェア2−2とBT4−2の和((60+221)%256=25)、ならびにBT3とBT4を得る。このとき、シェア1−1とBT3−1の和(計算結果:42)とシェア1−2とBT3−2の和(計算結果:238)の和からBT3(値:11)の差((42+238−11)%256=13)から元のデータ1(値:13)を復元することができる。同じくシェア2−1とBT4−1の和(計算結果:197)とシェア2−2とBT4−2の和(計算結果:25)の和とBT4(値:205)の差((197+25−205)%256=17)から元のデータ2(値:17)を復元することができる。
これら2つのうち、いずれかのパターンを満たすのは、クライアントエイデッドとサーバエイデッドモデルにおいては、BTの生成者を含めた3者中2者が背信した場合である。2者間のみでBTを生成するモデルでは、2者中2者が背信した場合である。
<実施の形態に係る秘密分散ベースMPCのコンセプト>
実施の形態に係る秘密分散ベースMPCでは、計算への参加者が結託することによる秘密の漏洩への対策として、秘密分散ベースMPCに参加している各環境において定期的にシェア値を更新する。これにより、安全性とトレーサビリティとを高めることができる。
図11は、実施の形態に係る秘密分散ベースMPCのコンセプトを説明するための模式図である。本実施の形態では、周期的に(例えば、定期的に)乱数56を生成する乱数生成機構54を設ける。この乱数生成機構54により生成される乱数56は、図1や図2で説明したシェアを生成するための乱数とは異なり、BTとも異なる。以下、乱数生成機構54により生成される乱数56をシェア更新用乱数と称す。
図25に乱数生成機構54の実現方法の例を示す。復号に必要なシェア値を持つすべての環境同士で実現する。この範囲を図11の形態に基づけば、「すべて」は環境Aと環境Bであり、環境Aにとっての「自身以外のすべて」は環境B、環境Bにとっての「自身以外のすべて」は環境Aを指す。すべての装置は、自身で無作為に数字を選択(乱数値を生成)する。このとき決めた数字をシェア更新用乱数シードと称す。公開鍵暗号(非対称鍵暗号)の公開鍵・秘密鍵を生成の上、シェア更新用乱数シードにハッシュ関数など不可逆な処理を適用した出力値に秘密鍵で署名する。署名済みの値と公開鍵のペアをシード検証値と称す。
まずシード検証値を、自身以外のすべての装置へ送信する。それから自身以外のすべての装置からシード検証値を受け取ったら、それぞれのシード検証値を送信元と対応づけて、保持する。自身以外のすべての装置からシード検証値を受け取った装置は、自身以外のすべての装置に向けて自身のシェア更新用乱数シードを送信する。自身以外のすべてのシェア更新用乱数シードを受け取った装置は、受け取ったシェア更新用乱数シードを、送信元を同じくするシード検証値の公開鍵で認証する。
ひとつでも認証が失敗した場合、例外処理を開始する。例外処理の例として、たとえばシェアの更新処理を中止してもよい。
反対にすべての認証が成功した場合、受け取ったすべてのシェア更新用乱数シードを合計する。この合計値、または合計値にハッシュ関数など不可逆な処理を適用した出力値を、暫定シェア更新用乱数と称す。自身以外のすべての装置に向けて暫定シェア更新用乱数を提供する。同時に、自身以外のすべての装置から暫定シェア更新用乱数を受け取る。すべての暫定シェア更新用乱数が一致した場合、この値を正式に次回更新用のシェア更新用乱数とする。
ここまでの手続きの代替案を述べる。すべての環境のうちのK者(Kは1以上N未満の整数)に、または他の環境に、たとえばBTの生成や計算を補助する役割を持つ装置に、シェア更新用乱数を生成させる方法もある。しかし、K者の環境あるいは他の環境が結託し、K者上の装置において、攻撃対象とする秘密に紐づくシェア値の合計を任意の値(例:0)にすることで、残りの(N−K)個の環境上のシェアを合わせれば、秘密を復号可能にできる。図11を例にとれば、環境A上のシェアを意図的に0にできれば、環境B上のシェアを元のデータ(=秘密)と等価にすることができてしまう。言い換えると、シェアの更新前に環境A側の攻撃者が、環境B側の誰かに、次回のシェアの更新後に、環境B上で秘密が復元されることを予告しておけば、次回のシェアの更新後に環境B側の攻撃者が、環境B側へアクセスするだけで、秘密を入手することができる。この状況の不都合は、秘密が復元された環境へのアクセスのみで秘密が漏洩しうる状況が、攻撃者の意図の下で実現可能であり、後述のアクセス履歴を活用したトレーサビリティを無効化してしまう点にある。そのため、N未満の環境の意図で操作されない乱数値の生成方法が推奨される。もちろん上述した例のように、N全体で合意済みの乱数値であっても、N内の各環境に乱数を操作可能な攻撃者が存在することで、同様の攻撃が可能となる。したがって、シェアを保有する当事者が等しくアクセス可能で、かつシェアを保有する当事者の意図を介在させづらい手段により取得された乱数が、シェア更新用乱数シードの合計値と所定の計算(例:加減算)されることが、もっとも望ましい。例として図26のように、すべての環境から直接インターネットへの接続が許されるのであれば、Ethereumのようなパブリックチェーンが保持するトランザクションのハッシュ値から乱数を得る手段が考えられる。シェア更新用乱数に予測不可能性を与えるため、すべての環境がシード検証値を受け取るよりも未来のBlock Heightから乱数を得るようにし、当該Block Heightより数ブロック(Confirmations)を経たあとで、すべての環境はシェア更新用乱数シードを送受信する。
上記の懸念を許容した上で、たとえばN箇所中T箇所未満でアクセスが同時発生した場合でも追跡対象とする、という運用が許容されるのであれば、N未満の環境が合意可能な乱数生成手段を用いてもよい。
元のデータ58を二つのシェア58a、58bに分割し、それぞれ異なる環境A、環境Bに秘密分散させる。乱数生成機構54により、所定のタイミングで環境A、環境Bは同じシェア更新用乱数56を入手する。シェア更新用乱数56を入手した環境A、環境Bは通信を行い、シェア更新用乱数56を確かめ合う。つまりシェアを保有するすべての環境同士でシェア更新用乱数を確かめ合うことで、シェア更新用乱数56の不一致によるデータの破損を防ぐことができる。
環境Aでは、シェアの更新処理として、シェア58aにシェア更新用乱数56が加算されて新たなシェア60aが生成される。環境Bでは、シェアの更新処理として、シェア58bからシェア更新用乱数56が減算されて新たなシェア60bが生成される。環境Aの新たなシェア60aと環境Bの新たなシェア60bとが足し合わされると、シェア更新用乱数56の影響が相殺されて元のデータ58が復元される。すなわち、
シェア60a+シェア60b=
(シェア58a+シェア更新用乱数56)+(シェア58b−シェア更新用乱数56)=
シェア58a+シェア58b=
元のデータ58
となる。このように、シェア更新用乱数56によりシェアが更新されても元のデータは損なわれず、秘密分散ベースMPCにも支障を起こさない。
図11に示されるような本実施の形態に係る秘密分散ベースMPCでは、環境A、環境Bの両方への攻撃を同時に、特に同じ期間(すなわち、同じシェア更新用乱数56で加算/減算したタイミングから、次回の更新が発生するまでの期間)で成功させない限り、秘密を暴くことはできない。これにより、攻撃に対する強い制約が課せられる。
図12は、本実施の形態に係る秘密分散ベースMPCの安全性の根拠を説明する模式図である。攻撃者62があるタイミングで環境Bへの攻撃に成功し、環境Bがそのタイミングで有するシェア58bを取得したとする。そして、攻撃者62はシェア値の更新を跨いだ別のタイミングで環境Aへの攻撃に成功し、環境Aがその別のタイミングで有するシェア60aを取得したとする。攻撃者62は取得した二つのシェア58b、60aから元のデータ58の復元を試みるが、シェア更新用乱数56によるシェア値の更新のために、その復元は成功しない。このように、本実施の形態に係る秘密分散ベースMPCでは、仮に両方のシェアが流出したとしても、流出のタイミングが十分にずれていれば、元のデータを復元することはできない。
<実施の形態に係る秘密分散ベースMPCを実現するシステムの詳細な説明>
図13は、実施の形態に係る秘密分散ベースMPCシステム70の構成を示す模式図である。秘密分散ベースMPCシステム70は、乱数生成機構54と、環境Aに設けられた環境A装置72と、環境Bに設けられた環境B装置74と、を備える。乱数生成機構54、環境A装置72、環境B装置74はインターネットなどのネットワークを介して通信する。図13には図示していないが、秘密分散ベースMPCシステム70がクライアントなどの他の要素を有することは本明細書に接した当業者には理解される。
環境A、環境Bはそれぞれ異なる環境であり、例えば環境A、環境Bはそれぞれ異なる主体により管理、運用されているクラウドサーバ群であってもよい。環境A装置72、環境B装置74はいずれも実施の形態に係る秘密分散ベースMPCに参加している。環境A装置72が有するシェアと環境B装置74が有する対応するシェアとを合わせると元のデータを復元可能ではあるが、一方のシェアだけでは復元できない秘密の分散が上記の機構により実現されている。
図14は、図13の環境A装置72のハードウエア構成図である。環境B装置74、乱数生成機構54は図14に記載のハードウエア構成と同様のハードウエア構成を有してもよい。環境A装置72は、メモリ130と、プロセッサ132と、通信インタフェース134と、ディスプレイ136と、入力インタフェース138と、を含む。これらの要素はそれぞれバス140に接続され、バス140を介して互いに通信する。
メモリ130は、データやプログラムを記憶するための記憶領域である。データやプログラムは、メモリ130に恒久的に記憶されてもよいし、一時的に記憶されてもよい。プロセッサ132は、メモリ130に記憶されているプログラムを実行することにより、環境A装置72における各種機能を実現する。通信インタフェース134は、環境A装置72の外部との間でデータの送受信を行うためのインタフェースである。例えば、通信インタフェース134はネットワークにアクセスするためのインタフェースを含み、該ネットワークを介して環境B装置74や乱数生成機構54とデータの授受を行う。ディスプレイ136は、各種情報を表示するためのデバイスであり、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどである。入力インタフェース138は、ユーザからの入力を受け付けるためのデバイスである。入力インタフェース138は、例えば、マウスやキーボードやディスプレイ138上に設けられたタッチパネルを含む。
図15は、図13の環境A装置72の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウエア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウエア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウエア、ソフトウエアの組合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。環境B装置74は、図15に示される環境A装置72の機能および構成と同様の機能および構成を有する。
環境A装置72は、シェア更新用乱数取得部102と、シェア更新用乱数確認部104と、シェア更新部106と、アクセス管理部108と、シェア保持部110と、アクセス履歴保持部112と、を備える。
図16は、図15のシェア保持部110の一例を示すデータ構造図である。シェア保持部110は、秘密分散ベースMPCシステム70におけるシェア同士の対応関係を示すシェアIDと、シェアの値と、シェアのリビジョンを特定する値であるリビジョン番号と、を対応付けて保持する。シェアのリビジョン番号は、複数のシェアが常に同一のリビジョン番号を保持しても良いし、シェア毎にリビジョン番号を管理しても良い。秘密分散ベースMPCシステム70において、秘密の提供者であるクライアントにおいて元のデータを分割して生成される2個以上のシェアにはそれぞれ同じシェアIDが割り当てられる。したがって、シェアのシェアIDが一致するということは、それらシェアが、同じ元のデータを分割することで生成された対応するシェアであることを示す。図1の例では、元のデータ2を分割することで生成されるシェア4およびシェア6は同じシェアID(例えば、「SH01」など)を有する。リビジョン番号は、シェアが更新されるたびに更新される。リビジョン番号の更新はインクリメントか、あるいはハッシュ関数等の一方向性を持つものが推奨される。本明細書の以下においては、簡単のためインクリメントで表現する。
図17は、図15のアクセス履歴保持部112の一例を示すデータ構造図である。アクセス履歴保持部112は、シェア保持部110に保持されているシェアごとに、当該シェアのリビジョン番号と、当該リビジョン番号のシェアに対するアクセスの情報と、を対応付けて、アクセス当時のリビジョン番号を保持する。アクセスの情報は、図17の例ではシェアにアクセスしたユーザを特定するユーザIDを含む。アクセス履歴保持部112では、シェア更新用乱数が更新されるたびに、すなわちシェアが更新されるたびに、更新されたリビジョン番号を有するエントリが追加される。
図15に戻り、シェア更新用乱数取得部102は、乱数生成機構54からシェア更新用乱数を取得する。乱数生成機構54は周期的に、例えば1時間ごと、8時間ごと、12時間ごと、1日ごとなどのように定期的に、シェア更新用乱数を更新する。シェア更新用乱数取得部102は、乱数生成機構54においてシェア更新用乱数が更新されるたびに、そのように更新されたシェア更新用乱数を取得する。
なお、シェア更新用乱数は所定のルールに基づいて更新されればよく、定期的に更新される以外にも、不規則な間隔で更新されてもよい。シェア更新用乱数の更新サイクル(=シェアの更新サイクル)が不規則な方が、攻撃が難しくなる。
シェア更新用乱数確認部104は、シェア更新用乱数取得部102が取得したシェア更新用乱数の正当性を検証する。シェア更新用乱数確認部104は、シェア更新用乱数取得部102がシェア更新用乱数を取得すると、環境B装置74のシェア更新用乱数確認部とネットワークを介して通信することによって、環境A装置72が取得したシェア更新用乱数と環境B装置74が取得したシェア更新用乱数とが一致するか否か判定する。シェア更新用乱数確認部104は、一致すると判定されると処理をシェア更新部106に渡す。シェア更新用乱数確認部104は、一致しないと判定されると所定のシェア更新用乱数生成異常処理を実行する。
シェア更新部106は、シェア保持部110に保持されている環境A装置72のシェアを、シェア更新用乱数取得部102によって取得されたシェア更新用乱数に基づいて更新する。このシェア更新部106における更新の方法は、取得されたシェア更新用乱数に基づいて更新された環境A装置72のシェアと、当該シェア更新用乱数に基づいて更新された環境B装置74の対応するシェアと、を合わせると、当該シェア更新用乱数による影響が相殺されて元のデータが復元されるように設計される。
本実施の形態では、環境A装置72のシェアにシェア更新用乱数を加算する一方、環境B装置74の対応するシェアからシェア更新用乱数を減算することによって、シェア更新用乱数の影響の相殺を実現する(図11、図12を参照)。全環境で更新が成功し、かつ、以降の処理で不要になった時点で、速やかに環境A装置72の全部から更新前のシェア値とシェア更新用乱数を破棄して、復元不可能にしなければならない。シェア更新部106は、シェア更新用乱数取得部102が破棄以外に更新されたシェア更新用乱数を取得した場合、更新前のシェア更新用乱数によって既に更新されたシェアを、更新されたシェア更新用乱数に基づいてシェアをさらに更新する。
環境Aでは加算を、環境Bでは減算を行ったように、環境ごとに計算を行う役割は所定の手段により決定される。シェアの更新を通してなされた操作内容が、全体で相殺(ゼロサム)される手段であればよい。例えば3環境で秘密分散している状況において、加算役に1環境を割り当て、減算役に2環境を割り当てたら、加算役の環境はシェア更新用乱数の倍を加算する取り決めを置く。結果としてシェアの更新は全体で(シェア更新用乱数×2)−(シェア更新用乱数+シェア更新用乱数)=0となる。
シェア更新部106は、環境B装置74と通信することによって、取得されたシェア更新用乱数に基づいて更新された環境A装置72のシェアのリビジョン番号と、当該シェア更新用乱数に基づいて更新された環境B装置74の対応するシェアのリビジョン番号と、を一致させるための処理を行う。各装置でシェア値の更新が完了したことを確認し合い、更新ごとのリビジョンを管理することで、更新後もシェアを一意にすることが可能になる。
シェア更新部106は、更新シェア算出部114と、リビジョン同期部116と、シェア切替部118と、リビジョン遷移管理部120と、を含む。シェア更新部106のさらなる詳細は図18を参照して後述する。
アクセス管理部108は、シェア保持部110に保持されるシェアへのアクセスを管理する。アクセス管理部108は、ユーザから入力インタフェース138を介してまたはネットワークを介して、シェア保持部110に保持されるシェアへのアクセス要求を受け付ける。アクセス管理部108は、要求元のユーザのユーザ認証を行い、認証に失敗するとアクセスを拒否する。アクセス管理部108は、認証に成功すると、受け付けたアクセス要求で指定されるシェアをシェア保持部110から読み出し、要求元に提供する。アクセス管理部108は併せて、提供したシェアのリビジョン番号と、シェアの提供先のユーザのユーザIDと、を対応付けてアクセス履歴保持部112に登録する。
以上の構成による秘密分散ベースMPCシステム70の動作を説明する。
図18は、図13の秘密分散ベースMPCシステム70おける一連の処理の流れを示すチャートである。環境A装置72のシェア更新用乱数取得部102および環境B装置74のシェア更新用乱数取得部はそれぞれ、乱数生成機構54によって生成または更新されたシェア更新用乱数を取得する(S802)。環境A装置72のシェア更新用乱数確認部104は環境B装置74のシェア更新用乱数確認部と通信することで、ステップS802で取得したシェア更新用乱数を確認する(S804)。環境A装置72のシェア更新部106の更新シェア算出部114は、シェア保持部110に保持されているシェアのシェアIDおよび現在のシェア値を読み出し、読み出されたシェア値にステップS802で取得したシェア更新用乱数を加算することで更新シェアを算出する(S806)。併せて更新シェア算出部114は、ステップS806で読み出されたシェア値の現在のリビジョン番号をシェア保持部110から読み出し、読み出されたリビジョン番号をインクリメントする(あるいはハッシュ関数でハッシュ計算し、次回リビジョン番号を決める)ことで新しいリビジョン番号を算出する(S808)。同様に、環境B装置74のシェア更新部の更新シェア算出部は、環境B装置74のシェア保持部に保持されているシェアのシェアIDおよび現在のシェア値を読み出し、読み出されたシェア値からステップS802で取得したシェア更新用乱数を減算することで更新シェアを算出する(S810)。併せて更新シェア算出部は、ステップS810で読み出されたシェア値の現在のリビジョン番号をシェア保持部から読み出し、読み出されたリビジョン番号をインクリメントする(あるいはハッシュ関数でハッシュ計算し、次回リビジョン番号を決める)ことで新しいリビジョン番号を算出する(S812)。
環境A装置72のシェア更新部106のリビジョン同期部116は、更新対象のシェアのシェアIDと、ステップS808で算出された新しいリビジョン番号と、を、ネットワークを介して環境B装置74のシェア更新部のリビジョン同期部に通知する(S814)。環境B装置74のシェア更新部のリビジョン同期部はその通知を受け取る。該リビジョン同期部は、ステップS810で算出された更新シェアのなかから、通知されたシェアIDと一致するシェアIDを有する更新シェアを特定する。該リビジョン同期部は、特定された更新シェアについてステップS812で算出された新しいリビジョン番号と、ステップS814で通知された新しいリビジョン番号と、を比較する(S816)。
ステップS816において新しいリビジョン番号同士が一致しないと判定された場合(S818のN)、環境B装置74のシェア更新部のリビジョン同期部は所定の例外処理を実行する(S820)。例えば、該リビジョン同期部は更新シェアを破棄し、リビジョンを再同期して更新し直すための処理を行ってもよい。
ステップS816において新しいリビジョン番号同士が一致すると判定された場合(S818のY)、環境B装置74のシェア更新部のシェア切替部は古いシェアを破棄して更新シェアに切り替える(S822)と共に、当該シェアのリビジョン番号を新しいリビジョン番号で更新する(S824)。該シェア切替部は、環境B装置74のシェア保持部に保持されているシェアのなかから、ステップS814で通知されたシェアIDと一致するシェアIDを有するシェアを特定する。該シェア切替部は、特定されたシェアの値を破棄し、通知されたシェアIDと一致するシェアIDを有する更新シェアの値(ステップS810で算出済み)を代わりに登録する。併せて該シェア切替部は、特定されたシェアのリビジョン番号を新しいリビジョン番号(ステップS812で算出済み)に書き換える。
環境B装置74において更新シェアへの切替が完了すると、環境B装置74のシェア更新部のシェア切替部は、環境A装置72のシェア切替部118に更新完了通知を行う(S826)。シェア切替部118は、更新完了通知を受け取ると、古いシェアを破棄して更新シェアに切り替える(S828)と共に、当該シェアのリビジョン番号を新しいリビジョン番号で更新する(S830)。該シェア切替部118は、環境A装置72のシェア保持部110に保持されているシェアのなかから更新対象のシェア(すなわち、ステップS814で通知したシェアIDと一致するシェアIDを有するシェア)を特定する。該シェア切替部118は、特定されたシェアの値を破棄し、更新対象のシェアの更新シェアの値(ステップS806で算出済み)を代わりに登録する。併せて該シェア切替部118は、特定されたシェアのリビジョン番号を新しいリビジョン番号(ステップS808で算出済み)に書き換える。
環境A装置72のシェア更新部106はステップS802で取得したシェア更新用乱数を破棄する(S832)。環境Aは更新完了時間のタイムスタンプをログ形式で残す。このとき環境Aから環境BへステップS830が正常終了したことを通知する(S834)。環境Bは通知を受け取ると、環境Bのシェア更新部はステップS802で取得したシェア更新用乱数を破棄する(S836)。環境Bは更新完了時間のタイムスタンプをログ形式で残す。
ステップS834の通知が一定時間受け取られなかった場合(S838のY)、例外処理を行う(S840)。たとえば環境Aと連絡を取り合い、環境A側の正常終了を確認したら、環境Bのシェア更新部はステップS802で取得したシェア更新用乱数を破棄し、通常運用に復帰する。逆に、正常終了が確認できなかった場合、すべての環境を更新する以前の状態に巻き戻す必要がある。例えば、更新操作が完了していたシェアに対して、シェア更新用乱数を使い、シェアを元に戻す操作を行ってもよい。シェア更新用乱数で加算していたシェアはシェア更新用乱数で減算し、シェア更新用乱数で減算していたシェアはシェア更新用乱数で加算し、更新済みのリビジョン番号は1つ古いものに戻すことで、更新を行う以前の状態にシェアを戻してもよい。同時に更新操作が完了していたシェアのリビジョン番号も更新前に戻す。リビジョン番号の採番にインクリメントを利用している場合は、デクリメントする。ただし、リビジョン番号に対して、ハッシュ関数のような一方向性のある採番方法を採用している場合、古いリビジョン番号は正常終了が確認できるまで保持されてある必要がある。シェアの更新の正常終了が確認できた場合、安全性のために古いリビジョン番号は破棄されてもよい。更新時に残したタイムスタンプも無効化する。
環境A装置72のシェア更新部106のリビジョン遷移管理部120は、上記のシェア更新の手順において、各装置内で行われる計算のオペランド(=シェア)のリビジョンの不一致を防止するための処理を行う。そのようなリビジョンの不一致は、例えば、環境B装置74側でシェアの切り替えが終わってから、環境A装置72側でシェアの切り替えが終わるまでの間(図18のステップS824からステップS830の間)に計算が発生した場合に生じうる。具体的には、環境A装置72で進行中の計算に使われているシェアが古いリビジョンになってしまう。このようなリビジョンの不一致を防止するため、対策を実施する。例として、リビジョン遷移管理部120において、以下の2つの遷移管理処理のうちのいずれかを行うことが例として挙げられる。
(その1)シェアのリビジョンの同期中、すなわち図18のステップS814の開始前からステップS830が完了するまでの間、環境A装置72のリビジョン遷移管理部120および環境B装置74のリビジョン遷移管理部はそれぞれ環境A装置72の計算および環境B装置74の計算を以下の要領で停止する。
(停止手順)
まず環境A装置72と環境B装置74ともに計算プロセスの開始受付を停止する。さらにそれら2つの装置間で、現在実行中の計算プロセスを共有し合う。差分が存在する場合、その応対に以下の2通りの選択肢がある。
選択肢1:停止前に両装置で、当該計算プロセスの協力作業を完了させてしまう。
選択肢2:差分プロセスを実行中の装置側で当該プロセスを中断し、シェア更新後に先送りする。
ステップS830の完了後、環境A装置72のリビジョン遷移管理部120から環境B装置74のリビジョン遷移管理部に追加の通知を行い、それぞれ更新後のシェアを使い計算を再開する。
その1の遷移管理処理は、特に計算プロセスの粒感が小さい場合には残存プロセスの消化にかかる時間が短いので、可用性が高い。また、後述のその2の遷移管理処理よりも必要な通信帯域が少なくて済む。
(その2)各装置で発生するすべての計算プロセスにおいて、オペランドにしたシェアにそのリビジョン番号を対応付ける。計算が発生したタイミングで、このリビジョン番号を環境A装置72のリビジョン遷移管理部120から環境B装置74のリビジョン遷移管理部に通知する。なお、一連の処理に乗算器が含まれる場合、元々2つの装置間で1ラウンド以上の通信が発生するため、そちらのタイミングで通知を兼ねてもよい。
環境B装置74において、同じ計算を協力するプロセスのリビジョン番号が、環境A装置72から通知されたリビジョン番号と不一致した場合(すなわち、環境A装置72から通知したリビジョン番号の方が古い場合(なぜなら、図18の手順に倣った場合、環境B装置74の方が先にシェアの切り替えを実施しているから))、環境B装置74のリビジョン遷移管理部から環境A装置72のリビジョン遷移管理部120へ通知する。
通知を受けた環境A装置72のリビジョン遷移管理部120は、新しいリビジョンのシェアを取得し終えてから、環境A装置72側だけで当該計算プロセスをはじめからやり直す。
その2の遷移管理処理によると、可用性への影響は比較的小さい。例えば、不一致が起きたとき、環境A装置72側で若干の遅延が発生するのみである。また、その2の遷移管理処理は、シェアの更新サイクルが不規則な場合により好適である。また、特に環境全体ですべてのシェアを1つのリビジョン番号に紐づけて管理する場合に限定されるが、一度でもシェアをオペランドに使い、かつラウンドが発生する計算(例:乗算器)が成功した場合、以降はリビジョン番号を相手に通知する必要はなくなる。なぜなら環境全体に渡り同一のリビジョン番号によりシェアが管理されているという前提があるため、すべての環境が通信する(ラウンドが発生する)計算が成功したということは、すべての環境のすべてのシェアが最新化されていることを保証できるからである。乗算器を通した合意方法以外に、あらかじめシェア更新後は双方でリビジョンを通知し合い、合意してから計算を再開する、という取り決めをしてもよい。
その1の遷移管理処理を採用するか、その2の遷移管理処理を採用するか、はシステムの要件により判断されてもよい。
上述の実施の形態において、保持部の例は、ハードディスクや半導体メモリである。また、本明細書の記載に基づき、各部を、図示しないCPUや、インストールされたアプリケーションプログラムのモジュールや、システムプログラムのモジュールや、ハードディスクから読み出したデータの内容を一時的に記憶する半導体メモリなどにより実現できることは本明細書に触れた当業者には理解される。
本実施の形態に係る秘密分散ベースMPCシステム70によると、装置管理者の能力不足などによる元のデータの流出リスクを低減することができる。従来の秘密分散ベースMPCでは、片方のシェア値の流出検知が遅れたがために、その間にもう片方のシェア値が流出することで、データが流出したと見做される。これに対して、本実施の形態に係る秘密分散ベースMPCシステム70では、周期的にシェア更新用乱数を生成してシェアを更新していくので、同じリビジョンのシェア値がほぼ同時に流出しない限り、元のデータの流出は起こらない。
また、本実施の形態に係る秘密分散ベースMPCシステム70では、悪意のある攻撃を牽制し、仮にデータの流出が起きても容疑者を絞り込めることでフォレンジックに貢献することができる。秘密分散ベースMPCシステム70では環境A装置72のアクセス履歴と環境B装置74のアクセス履歴とを付き合わせることでトレーサビリティが向上するので、攻撃実行に向けての心理障壁が高まる。データの流出が起きた場合、それは「データ作成/変更」時点から「同時アクセスが発生したリビジョン」時点までの間に起きた蓋然性が高いため、問題発生時のフォレンジックを支援することが可能になる。そのため説明責任の能力が向上する。
図19は、本実施の形態に係る秘密分散ベースMPCシステム70によるトレーサビリティの向上を説明する模式図である。図19の上段は、環境A装置72における、元のデータを分割して得られた片方のシェア80へのアクセス履歴を表す。図19の下段は、環境B装置74における、もう片方のシェア82へのアクセス履歴を表す。同じリビジョンの2つのシェア80、82を合わせると元のデータを復元可能である。このように、本実施の形態に係る秘密分散ベースMPCシステム70では、シェアの更新時点でタイムラインをハッシュすることができるので、流出を引き起こした容疑者を絞り込むことができる。
図19の例では、リビジョン番号が「Rev4」、「Rev5」、「Rev6」のときに2つのシェア80、82への同時のアクセスが生じている。したがって、仮に元のデータの流出が発生した場合、リビジョン番号「Rev4」、「Rev5」、「Rev6」に関連するユーザ84、86、88、90、92、94が怪しいということになる。同じユーザが同じリビジョンの2つのシェア80、82にアクセスしていた場合は、当然そのユーザが最も疑わしいこととなる。したがって、図19の例ではユーザ94が、流出を生じさせた犯人として最も疑わしい。次に、何度もアクセスしているユーザは疑わしいことから、リビジョン番号「Rev4」、「Rev5」、「Rev6」について2度アクセスしているユーザ86は疑わしいこととなる。また、異なるユーザが結託している可能性を考慮すると、同じリビジョンの2つのシェア80、82にアクセスしているユーザ84とユーザ86の組(Rev4)、ユーザ92とユーザ86との組(Rev6)、の結託が疑われる。逆にリビジョンがずれていれば2つのシェア80、82にアクセスしていても問題はないことから、例えばユーザ88とユーザ86との結託の蓋然性は低いと言える。
このように、本実施の形態に係る秘密分散ベースMPCシステム70によると、システム監査を支援する結託防止スキームを実現できる。
<適用例>
図20は、本実施の形態に係る秘密分散ベースMPCの適用例を説明するための模式図である。本適用例では、秘密計算を用いたM&Aの支援において本実施の形態に係る秘密分散ベースMPCを適用することで、機微なデータの流出のリスクを軽減し、かつ、有事の際のトレーサビリティを向上させる。
同業他社のM&Aを検討する場合、買収先の顧客層が被らない方がM&A効果が高いと言われている。顧客プロフィール、過去の消費活動、嗜好などの差分を分析できれば顧客層の被りを最小化できるが、そのような分析のためには顧客情報を一度明かさなければならない。顧客情報を明かしたあげくM&Aが不成立となった場合、今後の競争力に多大な影響を及ぼしかねない。
そこで、本適用例では、秘密計算のスキームに則り、各社が顧客情報に秘匿化(シェア化)を施した上で計算環境上で共有する。そのまま秘密計算で解析することで、より高精度な意思決定が可能となる。そして、実施の形態の乱数生成機構54と同様の乱数生成機構を設け、ベンダーP環境の装置を環境A装置72と同様に構成し、ベンダーQ環境の装置を環境B装置74のと同様に構成することで、顧客情報の流出のリスクを低減することができる。また、仮に流出が生じた場合でもより容易に容疑者を絞り込むことができる。
以上、実施の形態に係る秘密分散ベースMPCシステム70の構成と動作について説明した。この実施の形態は例示であり、各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解される。
<変形例>
実施の形態では、環境A装置72においてシェアにシェア更新用乱数を加える一方、環境B装置74において対応するシェアからシェア更新用乱数を減じることで、更新後の両シェアを合わせたときにシェア更新用乱数による影響が相殺されるようにする場合を説明したが、これに限られない。例えば、シェアの更新方法は、法を考慮した場合、更新後のシェアを合わせるとシェア更新用乱数の影響が無い、たとえば「+0」となるように設計されてもよい。
図21は、変形例に係る秘密分散ベースMPCの考え方を示す模式図である。図21ではシェアの更新時のシェアの変化量が示される。図22は、図21に対応するシェア値の変化を示す模式図である。本変形例は、周期的に0(ゼロ)値のシェアを足して、各装置上のシェアを変化させて、安全性を高めるものである。
法を16、つまり16で巡回する環境を考える。この環境では、乱数でシェア化すると、例えば、
7=(15+8)mod16=23mod16=7
0=(3+13)mod16=16mod16=0
となる。本変形例では、元のデータに0を何回足しても0であるから、法16の下で足し合わせると0となる数の組み合わせでシェアを更新する。
図21、図22において、元のデータ「7」はシェアA「15」とシェアB「8」に分割され、両シェアを合わせると上記の計算例のとおりに確かに元のデータ「7」が復元される。シェア更新用乱数として「3」が生成された場合、シェアAは「+3」により更新されて「2」となり、シェアBは法16を考慮してシェア更新用乱数「3」から算出される「+13」(補足:13=(−3)%16)により更新されて「5」となる。その結果、更新後の両シェアを合わせると(2+5)=7であり、上記の計算例のとおりシェア更新用乱数の影響は「+0」となり、元のデータ「7」が復元される。
このように、どの上下の組み合わせを足し合わせても、16で剰余をとれば元のデータ(「7」)になる。しかしながら、組み合わせを変えると、偶然の一致を除けば元のデータが復元できなくなる。
54 乱数生成機構、 70 秘密分散ベースMPCシステム、 72 環境A装置、 74 環境B装置。

Claims (5)

  1. 秘密分散ベースのマルチパーティ計算に利用されるシェアを保持する装置であって、前記装置が有するシェアと他の装置が有する対応するシェアとを合わせると元のデータを復元可能であり、前記装置は、
    乱数を取得する手段と、
    前記装置のシェアを、取得された乱数に基づいて更新する手段と、を備え、
    前記更新する手段における更新の方法は、取得された乱数に基づいて更新された前記装置のシェアと、当該乱数に基づいて更新された前記他の装置の対応するシェアと、を合わせると、当該乱数による影響が相殺されて元のデータが復元されるように設計される装置。
  2. 前記取得する手段は更新された乱数を取得し、
    前記更新する手段は、更新された前記装置のシェアを、更新された乱数に基づいてさらに更新する請求項1に記載の装置。
  3. 乱数は周期的に更新され、
    前記取得する手段は、乱数が更新されるたびに更新された乱数を取得する請求項2に記載の装置。
  4. 前記装置のシェアと、当該シェアのリビジョンを特定する値と、を対応付けて保持する手段と、
    前記更新する手段は、前記他の装置と通信することによって、取得された乱数に基づいて更新された前記装置のシェアのリビジョンと、当該乱数に基づいて更新された前記他の装置の対応するシェアのリビジョンと、を一致させるための処理を行う請求項1から3のいずれか一項に記載の装置。
  5. 前記装置のシェアのリビジョンと、当該リビジョンのシェアに対するアクセスの情報と、を対応付けて保持する手段をさらに備える請求項4に記載の装置。
JP2020022997A 2020-02-14 2020-02-14 秘密分散ベースのマルチパーティ計算のための装置 Pending JP2021128261A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020022997A JP2021128261A (ja) 2020-02-14 2020-02-14 秘密分散ベースのマルチパーティ計算のための装置
CN202010186400.1A CN113268744B (zh) 2020-02-14 2020-03-17 用于基于秘密共享的多方计算的装置
US16/829,594 US11424917B2 (en) 2020-02-14 2020-03-25 Device for secret sharing-based multi-party computation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020022997A JP2021128261A (ja) 2020-02-14 2020-02-14 秘密分散ベースのマルチパーティ計算のための装置

Publications (1)

Publication Number Publication Date
JP2021128261A true JP2021128261A (ja) 2021-09-02

Family

ID=77227586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020022997A Pending JP2021128261A (ja) 2020-02-14 2020-02-14 秘密分散ベースのマルチパーティ計算のための装置

Country Status (3)

Country Link
US (1) US11424917B2 (ja)
JP (1) JP2021128261A (ja)
CN (1) CN113268744B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7561470B1 (ja) 2024-07-30 2024-10-04 株式会社BLOCKSMITH&Co. マルチシグ検証用の公開鍵は維持したまま各自が秘密鍵として利用する断片を秘密裏にリフレッシュする技術

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11985232B2 (en) * 2018-10-26 2024-05-14 Nec Corporation Secure computing server, system, secure computing method, and program
CN114650134A (zh) * 2022-03-31 2022-06-21 深圳前海环融联易信息科技服务有限公司 一种基于秘密共享的纵向隐私保护逻辑回归方法
CN115913525A (zh) * 2022-04-25 2023-04-04 上海紫先科技有限公司 一种用硬件芯片实现安全多方计算的方法及系统
CN116248266B (zh) * 2022-12-16 2023-11-14 北京海泰方圆科技股份有限公司 基于秘密分享的安全多方计算方法及系统
CN116846554B (zh) * 2023-08-29 2024-01-26 北京信安世纪科技股份有限公司 数据处理方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09205422A (ja) * 1996-01-16 1997-08-05 Internatl Business Mach Corp <Ibm> 順向性、ロバスト及び回復可能な分散しきい値秘密共有を有する公開キー暗号システム及びその方法
JP2007102667A (ja) * 2005-10-07 2007-04-19 Fuji Xerox Co Ltd 評価装置
JP2018005089A (ja) * 2016-07-06 2018-01-11 学校法人東京理科大学 分散値更新装置及び分散値更新プログラム、分散値計算装置及び分散値計算プログラム、分散値検証装置及び分散値検証プログラム
US20180351754A1 (en) * 2017-06-06 2018-12-06 Analog Devices, Inc. System and device including reconfigurable physical unclonable functions and threshold cryptography

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949975A (en) * 1997-03-12 1999-09-07 Microsoft Corp. Method and system for negotiating capabilities when sharing an application program with multiple computer systems
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
JP4292835B2 (ja) * 2003-03-13 2009-07-08 沖電気工業株式会社 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
JP4856909B2 (ja) * 2005-08-05 2012-01-18 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ分割・復元システム、端末装置、データ分割・復元方法、およびコンピュータプログラム
JP4917453B2 (ja) * 2007-02-22 2012-04-18 Kddi株式会社 閾値秘密分散装置、閾値秘密分散方法、秘密情報復元方法およびプログラム
US8209744B2 (en) * 2008-05-16 2012-06-26 Microsoft Corporation Mobile device assisted secure computer network communication
CN103096308B (zh) * 2011-11-01 2016-01-20 华为技术有限公司 生成组密钥的方法和相关设备
US9230075B1 (en) * 2012-08-31 2016-01-05 Emc Corporation Multi-server authentication using proactivization journaling
US9292671B1 (en) * 2012-08-31 2016-03-22 Emc Corporation Multi-server authentication using personalized proactivization
US9426185B1 (en) * 2013-06-03 2016-08-23 Ayla Networks, Inc. Proximity based communication with embedded system
WO2015107952A1 (ja) * 2014-01-17 2015-07-23 日本電信電話株式会社 秘密計算方法、秘密計算システム、ランダム置換装置及びプログラム
CN107078898A (zh) * 2014-05-20 2017-08-18 神秘双八达通有限公司 一种在多路径网络上建立安全私人互连的方法
US10516527B1 (en) * 2015-04-17 2019-12-24 EMC IP Holding Company LLC Split-key based cryptography system for data protection and synchronization across multiple computing devices
CN105450394B (zh) * 2015-12-30 2018-12-28 中国农业大学 一种基于门限秘密共享的份额更新方法及装置
CN106452745B (zh) * 2016-09-27 2019-07-02 中国农业大学 一种秘密数据共享的验证方法及装置
CN110392998B (zh) * 2017-05-09 2020-11-27 华为技术有限公司 一种数据包校验方法及设备
EP4002754A1 (en) * 2017-08-31 2022-05-25 Visa International Service Association Single node multi-party encryption
US10404455B2 (en) * 2017-09-01 2019-09-03 Accenture Global Solutions Limited Multiple-phase rewritable blockchain
US11606203B2 (en) * 2017-12-14 2023-03-14 Robert Bosch Gmbh Method for faster secure multiparty inner product with SPDZ
US11531647B2 (en) * 2019-01-31 2022-12-20 Qatar Foundation For Education, Science And Community Development Data storage methods and systems
CN110740033B (zh) * 2019-08-19 2022-07-19 杭州云象网络技术有限公司 一种基于秘密共享技术的区块链多方数据共享方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09205422A (ja) * 1996-01-16 1997-08-05 Internatl Business Mach Corp <Ibm> 順向性、ロバスト及び回復可能な分散しきい値秘密共有を有する公開キー暗号システム及びその方法
JP2007102667A (ja) * 2005-10-07 2007-04-19 Fuji Xerox Co Ltd 評価装置
JP2018005089A (ja) * 2016-07-06 2018-01-11 学校法人東京理科大学 分散値更新装置及び分散値更新プログラム、分散値計算装置及び分散値計算プログラム、分散値検証装置及び分散値検証プログラム
US20180351754A1 (en) * 2017-06-06 2018-12-06 Analog Devices, Inc. System and device including reconfigurable physical unclonable functions and threshold cryptography

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
土居範久: "6.7.4 プロアクティブ秘密分散法", 情報セキュリティ事典, JPN6023040137, 10 July 2003 (2003-07-10), pages 230, ISSN: 0005163301 *
電子情報通信学会, 情報セキュリティハンドブック, JPN6023040136, 30 November 2004 (2004-11-30), pages 212 - 213, ISSN: 0005163300 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7561470B1 (ja) 2024-07-30 2024-10-04 株式会社BLOCKSMITH&Co. マルチシグ検証用の公開鍵は維持したまま各自が秘密鍵として利用する断片を秘密裏にリフレッシュする技術

Also Published As

Publication number Publication date
CN113268744B (zh) 2024-08-09
US11424917B2 (en) 2022-08-23
CN113268744A (zh) 2021-08-17
US20210258149A1 (en) 2021-08-19

Similar Documents

Publication Publication Date Title
JP2021128261A (ja) 秘密分散ベースのマルチパーティ計算のための装置
AlAhmad et al. Mobile cloud computing models security issues: A systematic review
Sharma et al. Blockchain-based interoperable healthcare using zero-knowledge proofs and proxy re-encryption
Liu et al. A survey of security and privacy challenges in cloud computing: solutions and future directions
Pillai et al. Enhancing Network Privacy through Secure Multi-Party Computation in Cloud Environments
CN111769956B (zh) 业务处理方法、装置、设备及介质
Raghavendra et al. [Retracted] Critical Retrospection of Security Implication in Cloud Computing and Its Forensic Applications
Mishra et al. Enhancing privacy‐preserving mechanisms in Cloud storage: A novel conceptual framework
Ashraf A Survey on Data Security in Cloud Computing Using Blockchain: Challenges, Existing-State-Of-The-Art Methods, And Future Directions
Srikanth et al. Security issues in cloud and mobile cloud: A comprehensive survey
Saad et al. Achieving trust in cloud computing using secure data provenance
Rathi et al. Secure cloud data computing with third party auditor control
Sari Use of Blockchain in strengthening cybersecurity and protecting privacy
Abd et al. A review of cloud security based on cryptographic mechanisms
Hasimi Cost-effective solutions in cloud computing security
Mishra et al. Data Prevention Protocol for Cloud Computing Security Using Blockchain Technology
Sarhan Protecting sensitive data in clouds using active data bundles and agent-based secure multi-party computation
Geetha et al. Blockchain based Mechanism for Cloud Security
Raheman Futureproofing Blockchain & Cryptocurrencies against Growing Vulnerabilities & Q-Day Threat with Quantum-Safe Ledger Technology (QLT)
Zawawi et al. Realization of a data traceability and recovery service for a trusted authority service co-ordination within a Cloud environment
Dawson et al. Reconnoitering Security Algorithms Performance in the Cloud: Systematic Literature Review based on the Prisma Archetype
Montagut et al. Bridging security and fault management within distributed workflow management systems
CN109495455A (zh) 一种数据处理系统、方法及设备
Suganya et al. Enhancing the Reliability of Cloud Data by Implementing AES Algorithm
Kunal et al. Securing patient data in the healthcare industry: A blockchain-driven protocol with advanced encryption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230920

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20241004