JP5657128B2 - 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム - Google Patents

秘匿計算システム、秘匿計算方法、および秘匿計算プログラム Download PDF

Info

Publication number
JP5657128B2
JP5657128B2 JP2013535678A JP2013535678A JP5657128B2 JP 5657128 B2 JP5657128 B2 JP 5657128B2 JP 2013535678 A JP2013535678 A JP 2013535678A JP 2013535678 A JP2013535678 A JP 2013535678A JP 5657128 B2 JP5657128 B2 JP 5657128B2
Authority
JP
Japan
Prior art keywords
client
calculation
secret
server
norm
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.)
Expired - Fee Related
Application number
JP2013535678A
Other languages
English (en)
Other versions
JPWO2013046320A1 (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5657128B2 publication Critical patent/JP5657128B2/ja
Publication of JPWO2013046320A1 publication Critical patent/JPWO2013046320A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

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

Description

本発明は、秘匿計算システム、秘匿計算方法、および秘匿計算プログラムに関するものであり、具体的には、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算を実行可能とする技術に関する。
情報システムの開発の効率化、運用管理費の低減などを目的に、近年、計算リソースを自分で保持せず、外部業者に委託するクラウドと呼ばれる運用管理形態が脚光を浴びている。こうしたクラウドにおいては、効率化やコスト低減を図れる反面、クラウドを実現する情報システムの管理業者と、前記情報システムの利用者とが異なることで、機密情報を外部業者たる前記管理業者に預託することへの不安が前記利用者に生じやすい。そのため、事前に、預託するデータの不正利用の予防策として、暗号技術を活用し、該当データの機密性を確保する必要がある。
しかし、単純な暗号化方式において、暗号化したデータに対する足し算、掛け算などの基本演算やそれらを組み合わせた統計処理、関数値計算などは、データの復号可能な者しか実行できない。従って、データ預託先である、外部の情報システム管理者ではそうした暗号化データに対する各種演算処理はできない。こうした状況に対処するために専用の人員を預託先に配置したり、種々の対策が必要となり、クラウドを採用する当初目的である、コスト低減の目的に反することになる。
こうした状況への対策技術のうち、クライアントが、秘匿化したデータをサーバに預託しながら、任意の関数値計算が可能な暗号方式が提案されている。例えば、計算機上で実現可能な任意の関数計算は、ブール足し算とブール掛け算との組み合わせで表現できる事を利用し、秘匿化したbitデータに対して、ブール足し算とブール掛け算が実行可能な暗号方式(特許文献1参照)が提案されている。
米国特許公開公報2011/0110525
上述した従来技術などにおいては、平文bitデータに、エラーベクトルを加える事で暗号化を行っている。しかし、暗号化データをブール演算する度に、暗号化データ内のエラーベクトルの大きさは増大する。エラーベクトルの大きさが特定の閾値を超えると、復号化アルゴリズムで正しい関数値が算出されない確率が高くなる。
この問題に対し従来技術では、暗号化データ内のエラーベクトルを小さくするために、暗号化済みの復号関数回路に暗号化データと暗号化した復号用秘密鍵を入力し、平文を変えずに、エラーベクトルのより小さい暗号化データに再暗号化する方法が提案されている。 エラーベクトルの小さい暗号文に再暗号化する事によって、エラーベクトルが閾値に達するまで、再びブール演算が実行可能となる。しかし、この方法を実行するには、復号関数回路を計算する際に発生するエラーベクトルの増大量が、閾値以下である必要がある。 始めに平文bitを暗号化する際に、加えるエラーベクトルの大きさを十分小さくとる事で、エラーベクトルの増大を閾値以下にする事が出来る。しかし、エラーベクトルを小さく取ると、公開鍵を用いた格子簡約攻撃が可能となり、セキュリティの観点から適切ではない。そこで、従来技術においては、squahingという方法を用いて復号関数回路計算時に発生するエラーベクトルの増大を抑え、再暗号化を実行する技術が提案されている。ただし、このsquahingによって、暗号化データのデータ長や再暗号化に必要な計算量が大幅に増大する問題が挙げられており、現実的な対策とは言い難い。
そこで上記に鑑み本発明は、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算を実行可能とする、ことを目的とする。
を目的としている。
上記課題を解決する本発明の秘匿計算システムは、準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型暗号方式に基づく秘匿計算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムであって、前記クライアントは、n次元のイデアル格子基底を秘密鍵として、平文を、準同型性の暗号方式に対応した所定の暗号化関数を用いて暗号化し、前記データ暗号化を実行する処理と、前記秘密鍵が生成する格子の部分格子基底である抑制情報を前記サーバに送信する処理を実行するものであり、前記サーバは、前記クライアントから前記抑制情報を受信して記憶装置に保持する処理と、前記クライアントから受信した暗号化データに対する準同型暗号方式に基づく秘匿計算処理を、暗号化データ数に応じた回数で実行するに際し、少なくともいずれかの回での秘匿計算処理において、所定暗号化データに関して行った秘匿計算処理の結果であるベクトルについて、ノルムと所定の閾値とを比較した結果、ノルムが所定の閾値を超えている場合、前記抑制情報に基づいて、前記ベクトルの基底表現における実数係数を所定値以下に低減することで、前記ベクトルのノルムを前記閾値以下とする処理を実行するものであることを特徴とする。
本発明によれば、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算が実行可能となる。
本実施形態における秘匿計算システムの構成例を示す図である。 本実施形態におけるクライアント端末の構成例を示す図である。 本実施形態における秘匿計算サーバの構成例を示す図である。 本実施形態における秘匿計算方法の処理手順例1を示すフロー図である。 本実施形態における秘匿計算方法の処理手順例2を示すフロー図である。 本実施形態における秘匿計算方法の処理手順例3を示すフロー図である。 本実施形態における秘匿計算方法の処理手順例4を示すフロー図である。 本実施形態における秘匿計算方法の処理手順例5を示すフロー図である。 本実施形態における秘匿計算方法の処理手順例6を示すフロー図である。 本実施形態における秘匿計算方法の処理手順例7を示すフロー図である。 本実施形態における秘匿計算方法の処理手順例8を示すフロー図である。
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態の秘匿計算システム10の構成例を示す図である。図1に示す秘匿計算システム10(以下、システム10)は、準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型性を有する演算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムであって、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算を実行可能とするコンピュータシステムである。
図1に示すように、本実施形態における前記システム10は、本発明で言うところのクライアントたるクライアント端末100、本発明で言うところのサーバたる秘匿計算サーバ200、を備え、クライアント端末100と秘匿計算サーバ200とは、ネットワーク300を介して相互にデータ授受可能となっている。
こうした前記システム10を構成するクライアント端末100、秘匿計算サーバ200のハードウェア構成は以下の如くとなる。図2は本実施形態におけるクライアント端末100の構成例を示す図である。図示するように、クライアント端末100は、CPU101、ハードディスクドライブなど適宜な不揮発性記憶装置で構成される補助記憶装置102、RAMなど揮発性記憶装置で構成されるメモリ103、耐タンパ記憶装置105、処理データの表示を行うディスプレイ等の表示装置106、キーボードやマウスなど入出力インターフェイス107、および、ネットワーク300と接続し秘匿計算サーバ200との通信処理を担う通信装置108が、内部信号線104で連結し構成される。前記CPU101は、前記補助記憶装置102に保持されるプログラムをメモリ103に読み出すなどして実行しクライアント端末100自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なう演算装置である。また、前記補助記憶装置102には、プログラムの他に、暗号化対象となる平文データ、および暗号化に用いる秘密鍵が予め格納されているものとする。
図3は本実施形態における秘匿計算サーバ200の構成例を示す図である。また、前記秘匿計算サーバ200は、CPU201、ハードディスクドライブなど適宜な不揮発性記憶装置で構成される補助記憶装置202、RAMなど揮発性記憶装置で構成されるメモリ203、処理データの表示を行うディスプレイ等の表示装置206、キーボードやマウスなど入出力インターフェイス207、および、ネットワーク300と接続しクライアント端末100との通信処理を担う通信装置208が、内部信号線204で連結し構成される。前記CPU201は、前記補助記憶装置202に保持されるプログラムをメモリ203に読み出すなどして実行し、秘匿計算サーバ200自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なう演算装置である。
続いて、本実施形態の秘匿計算システム10を構成する、前記クライアント端末100、および秘匿計算サーバ200が備える機能について説明する。上述したように、以下に説明する機能は、クライアント端末100、および秘匿計算サーバ200らが、それぞれ補助記憶装置にて備えるプログラムを各々実行することで実装される機能と言える。
なお、本実施形態において実行される暗号化は、準同型性を持つ暗号方式において秘密鍵を用いた暗号化であるものとする。
前記システム10のうち前記クライアント端末100は、所定基準以下の大きさのエラーベクトルを、補助記憶装置102から読み出した平文データに加えて当該平文データの暗号化を実行する機能を備える。暗号化が施されたデータ、すなわち暗号化データは、クライアント端末100から秘匿計算サーバ200に対し送信される。クライアント端末100から秘匿計算サーバ200に送られる前記暗号化データは、準同型性を有する演算処理の対象となる。
また前記クライアント端末100は、補助記憶装置102から読み出した秘密鍵が生成する格子の部分格子基底からなる暗号文抑制情報(抑制情報)を、前記秘匿計算サーバ200に送信する機能を備える。
また前記クライアントは、補助記憶装置102に保持する秘密鍵行列と、所定の整数係数正則行列との行列積を実行し、該行列積の結果である行列を、前記暗号文抑制情報として、前記秘匿計算サーバ200に送信する機能を備える、とすれば好適である。
一方、前記秘匿計算サーバ200は、前記クライアント端末100から前記暗号文抑制情報を受信して、補助記憶装置102ないしメモリ203に保持する機能を備える。
また、前記秘匿計算サーバ200は、前記クライアント端末100から前記暗号化データを受信し、この暗号化データに対する準同型性を有する演算処理を実行する機能を備える。秘匿計算サーバ200は、この演算処理に際し、演算処理中ないし演算処理結果の暗号文のビット長が、所定閾値以上である場合、該当暗号文のベクトルを、前記保持する暗号文抑制情報に対応した部分格子基底が成す領域内に平行移動させ、前記暗号文のビット長を所定閾値以下に低減する機能を備える。
また前記秘匿計算サーバ200は、前記クライアント端末100から受信した暗号文抑制情報が示す、抑制情報行列の列ベクトルからなる一次結合で、係数の絶対値が1以下のベクトル全体の中で、原点からのユークリッド距離が最も大きいものを特定し、該特定したベクトルと原点との距離を前記所定閾値とする機能を備えるとすれば好適である。
−−−用語の定義−−−
ここではまず、本実施形態において使用する用語について定義しておく。
(1)イデアル格子基底B=(b1,b2,・・・,bn):非特許文献1と同様の定義とする。つまり、イデアル格子の条件を満足するn次元整数係数ベクトル基底である。
(2)暗号文抑制情報:暗号文生成用秘密鍵であるイデアル格子基底B=(b1,b2,・・・,bn)と、ランダムに生成したn×n整数係数正則行列Uとの行列積をとった格子基底P=(p1,p2,・・・,pn)とする。
(3)秘匿計算プログラム:本実施形態における暗号文(暗号化データ)を入力値とし、m回のブール演算ステップを行う処理とする。
(4)秘匿計算関数用内部変数:秘匿計算プログラムの各ステップの出力値を格納し、それを次のステップに対する入力値として利用する変数の変数名とする。
(5)秘匿計算用引数:秘匿計算プログラムの入力値として、クライアント端末100が生成する、準同型性の暗号方式の暗号文もしくは、暗号文の組である。
(6)ノルム:ユークリッドノルムを指す。つまり、n次元整数係数ベクトル(v1,v2,・・・,vn)に対して、S=v1×v1+v2×v2+・・・+vn×vnとし、値Sの平方根をn次元整数係数ベクトル(v1,v2,・・・,vn)のノルムとする。
(7)閾値L:暗号文抑制情報である格子基底P=(p1,p2,・・・,pn)に対して、実係数一次結合a1×p1+ a2×p2+・・・an×pn:ただし0<ai<=1とするとき、この一次結合の全体の中で、ノルムが最大であるベクトルのノルムをLとする。
−−−全体処理フロー−−−
以下、本実施形態における秘匿計算方法の実際手順について図に基づき説明する。以下で説明する秘匿計算方法に対応する各種動作は、前記システム10を構成するクライアント端末100や秘匿計算サーバ200らがそれぞれメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図4は本実施形態における秘匿計算方法の処理手順例1を示すフロー図であり、具体的には、クライアント端末100と秘匿計算サーバ200との間で、秘匿計算用の各種データ送受信を示すフローである。
この場合、クライアント端末100は、例えば入出力インターフェイス107で受けたユーザ指示に応じ、暗号文生成用秘密鍵生成プログラムを実行し、暗号文生成用秘密鍵を生成する(S100)。この暗号文生成用秘密鍵を生成する処理については後に詳述する。
続いてクライアント端末100は、ユーザ指示を受けて、或いは、前記ステップS100の実行を受けて、暗号文抑制情報生成プログラムを実行し、暗号文抑制情報の生成を行う(S200)。またクライアント端末100は、ここで生成した暗号文抑制情報(D100)を、通信装置108を用いてネットワーク300上の秘匿計算サーバ200に送信する。この暗号文抑制情報生成の処理については後に詳述する。
次にクライアント端末100は、ユーザ指示を受けて、或いは、前記ステップS200の実行を受けて、秘匿計算用引数生成プログラムを実行し、秘匿計算プログラムに入力するための暗号文を生成し(S300)、それを秘匿計算用引数(D200)として通信装置108を用いて秘匿計算サーバ200に送信する。この秘匿計算用引数生成の処理については後に詳述する。
一方、秘匿計算サーバ200は、前記クライアント端末100より、前記暗号文抑制情報(D100)と、秘匿計算用引数(D200)を受信し、これらを入力値として、秘匿計算プログラムによる秘匿計算処理を実行する(S400)。また、秘匿計算サーバ200は、前記秘匿計算プログラムの出力値である秘匿計算結果(D300)を、通信装置203を用いて、ネットワーク300上のクライアント端末100に送信する。この秘匿計算の処理については後に詳述する。
他方、前記クライアント端末100は、前記秘匿計算サーバ200より秘匿計算結果(D300)を受信し、ここで受信した秘匿計算結果(D300)を入力値とする復号処理プログラムによる復号処理を実行する(S500)。前記クライアント端末100は、当該復号プログラムの出力値である計算結果を得て本処理を終了する。この復号処理については後に詳述する。
−−−暗号文生成用秘密鍵生成処理−−−
次に、暗号文生成用秘密鍵生成処理について図に基づき説明する。図5は、本実施形態における秘匿計算方法の処理手順例2を示すフロー図であり、具体的には、図4の処理フローにおける暗号文生成用秘密鍵生成プログラムの処理(S100)を示す図である。
この場合、前記クライアント端末100は、所定の秘密鍵用イデアル格子生成アルゴリズムを用いて、n次元のイデアル格子基底B=(b1,b2,・・・,bn)を生成し(S110)、生成したイデアル格子基底を暗号文生成用秘密鍵として耐タンパ記憶装置105に格納する。なお、本実施形態で用いる、暗号文生成用秘密鍵生成プログラムにおける秘密鍵用イデアル格子生成アルゴリズム、暗号化関数、復号化関数については、非特許文献1にある従来技術(秘密鍵生成プログラム、暗号化関数プログラム、復号化関数プログラム)を用いてもよい。
−−−暗号文抑制情報生成処理−−−
次に、暗号文抑制情報生成処理について図に基づき説明する。図6は本実施形態における秘匿計算方法の処理手順例3を示すフロー図であり、具体的には、図4の処理フローにおける暗号文抑制情報生成プログラムの処理(S200)を示す図である。
この場合、前記クライアント端末100は、暗号文生成用秘密鍵生成プログラム(図5:S100)で生成した暗号文生成用秘密鍵である、n次元のイデアル格子基底B=(b1,b2,・・・,bn)を、例えばメモリ103にて計算用に確保した記憶領域に格納する(S210)。
続いて前記クライアント端末100は、ランダムなn×n整数係数正則行列Uを、既存技術による所定アルゴリズムにて生成し(S220)、このランダムなn×n整数係数正則行列Uを、前記メモリ103にセッティングしたn次元のイデアル格子基底B=(b1,b2,・・・,bn)に対して乗じる(S230)。クライアント端末100は、前記ステップS230による行列積の結果を、“P=(p1,p2,・・・,pn)”といった行列たる暗号文抑制情報として出力する。この暗号文抑制情報は、クライアント端末100から前記秘匿計算サーバ200に送信されることになる。
−−−秘匿計算用引数生成処理−−−
次に、秘匿計算用引数生成処理について図に基づき説明する。図7は本実施形態における秘匿計算方法の処理手順例4を示すフロー図であり、具体的には、図4の処理フローにおける秘匿計算用引数生成プログラムの処理(S300)を示す図である。
この場合、前記クライアント端末100は、k個の関数引数用の平文m1,m2,・・・,mk、すなわち、秘匿計算対象となる暗号化データの元となるデータを、入出力インターフェイス107で受けたユーザ指示に応じて補助記憶装置102から読み出し、例えばメモリ103にて計算用に確保した記憶領域に格納する(S310)。
またクライアント端末100は、前記暗号文生成用秘密鍵生成プログラムの処理(S100)で生成している暗号文生成用秘密鍵Bを秘密鍵として、前記メモリ103にセッティングした各平文m1,m2,・・・,mkを、準同型性の暗号方式に対応した所定の暗号化関数(既存のものでよい)を用いて暗号化し、それらk個の各暗号文を、”c1,c2,・・・,ck”の行列とし(S320)、秘匿計算用引数として秘匿計算サーバ200に出力する。
−−−秘匿計算処理−−−
次に、秘匿計算処理について図に基づき説明する。図8は本実施形態における秘匿計算方法の処理手順例5を示すフロー図であり、図9は本実施形態における秘匿計算方法の処理手順例6を示すフロー図である。具体的には、図4の処理フローにおける秘匿計算サーバ200が行う秘匿計算処理フロー(S400)を示す図である。
この場合、前記秘匿計算サーバ200は、前記クライアント端末100が前記ステップS200で生成した暗号文抑制情報P=(p1,p2,・・・,pn)を、前記クライアント端末100から受信する(S410)。
また秘匿計算サーバ200は、前記クライアント端末100が前記ステップS300で生成した秘匿計算用引数(c1,c2,・・・,ck)を、前記クライアント端末100が前記ステップから受信する(S420)。秘匿計算用引数の具体例としては、例えば、秘匿性を維持しつつも、統計処理を必要とする個人情報などが想定できる。本実施形態では、例えば、統計対象の個人がm人だけ存在し、各人の個人情報が示す所定値を合算するため、第1〜第mの計mステップにわたって、秘匿計算を行う例を想定する。
前記秘匿計算サーバ200は、秘匿計算関数用内部変数Zを初期化し(S430)、前記ステップS420で得た秘匿計算用引数(c1,c2,・・・,ck)をコマンド引数とする秘匿計算関数の第1ステップを計算し、その出力を秘匿計算関数用内部変数Zに格納する(S440)。秘匿計算関数は、暗号文に対して平文や秘密鍵なしで演算可能な準同型暗号方式において、加法や乗法のような二項演算を行う関数である。秘匿計算サーバ200は当然ながら、こうした秘匿計算関数のプログラムを補助記憶装置102等に予め保持している。
次に、前記秘匿計算サーバ200は、秘匿計算関数用内部変数Zのノルムと閾値Lとを比較し(S450)、ノルムの値が閾値L以下であれば(S450:ノルム<L)、秘匿計算関数の第2ステップに処理を移行する。一方、前記ノルムが閾値Lを超えていれば(S450:ノルム>L)、秘匿計算サーバ200は、暗号文抑制情報P=(p1,p2,・・・,pn)を用いて秘匿計算関数用内部変数ZのノルムをL以下に変形し、その値を秘匿計算関数用内部変数Zに格納し、秘匿計算関数の第2ステップに処理を移行する(S460)。
なお、前記閾値Lは、秘匿計算サーバ200が、暗号文抑制情報の行列の列ベクトルからなる一次結合で、係数の絶対値が1以下のベクトル全体の中で、原点からのユークリッド距離が最も大きいものを特定し、該特定したベクトルと原点との距離を閾値Lとして採用したものである。
また、暗号文抑制情報P=(p1,p2,・・・,pn)を用いて、秘匿計算関数用内部変数ZのノルムをL以下に変形する処理、すなわち、暗号文抑制処理については図11に基づき後述する。
次に、秘匿計算サーバ200は、秘匿計算用引数(c1,c2,・・・,ck)と秘匿計算関数用内部変数Zをコマンド引数とする秘匿計算関数の第2ステップを計算し、その出力を秘匿計算関数用内部変数Zに格納する(S470)。ここで秘匿計算サーバ200は、秘匿計算関数用内部変数Zのノルムと閾値Lとを比較し(S480)、前記ノルムの値が閾値L以下であれば(S480:ノルム<L)、秘匿計算関数の第3ステップに処理を移行する。他方、ノルムが閾値Lを超えていれば(S480:ノルム>L)、秘匿計算サーバ200は、暗号文抑制情報P=(p1,p2,・・・,pn)を用いて秘匿計算関数用内部変数ZのノルムをL以下に変形し、その値を秘匿計算関数用内部変数Zに格納し、秘匿計算関数の第3ステップに処理を移行する(S490)。
次に、秘匿計算サーバ200は、秘匿計算用引数(c1,c2,・・・,ck)と秘匿計算関数用内部変数Zをコマンド引数とする秘匿計算関数の第3ステップを計算し、その出力を秘匿計算関数用内部変数Zに格納する(S411)。
次に秘匿計算サーバ200は、秘匿計算関数用内部変数Zのノルムと閾値Lとを比較し(S421)、ノルムの値が閾値L以下であれば(S421:ノルム<L)、秘匿計算関数の第4ステップに処理を移行する。他方、ノルムが閾値Lを超えていれば(S421:ノルム>L)、秘匿計算サーバ200は、暗号文抑制情報P=(p1,p2,・・・,pn)を用いて秘匿計算関数用内部変数ZのノルムをL以下に変形し、その値を秘匿計算関数用内部変数Zに格納し、秘匿計算関数の第4ステップに処理を移行する(S431)。
以下、上述した秘匿計算関数の第1ステップ〜第3ステップまでと同様の手続きで、秘匿計算関数の第4ステップから秘匿計算関数の第m−1ステップまで計算する(S441)。
続いて秘匿計算サーバ200は、秘匿計算用引数(c1,c2,・・・,ck)と秘匿計算関数用内部変数Zをコマンド引数とする秘匿計算関数の第mステップを計算し、その出力を秘匿計算関数用内部変数Zに格納する(S451)。
また、秘匿計算サーバ200は、秘匿計算関数用内部変数Zのノルムと閾値Lとを比較し(S461)、ノルムの値が閾値L以下であれば(S461:ノルム<L)、秘匿計算用内部変数Zを秘匿計算結果Rとして出力する。他方、ノルムが閾値Lを超えていれば(S461:ノルム<L)、秘匿計算サーバ200は、暗号文抑制情報P=(p1,p2,・・・,pn)を用いて秘匿計算関数用内部変数Zの係数ノルムをL以下に変形し、その値を秘匿計算関数用内部変数Zに格納し、秘匿計算用内部変数Zを秘匿計算結果Rとして出力する(S471)。この秘匿計算結果Rは、秘匿計算サーバ200から前記クライアント端末100に返信されるものである。上記例の場合、秘匿計算結果Rは、m人の個人情報が示す所定値の合算値に対応したものとなる。
−−−復号処理−−−
次に、復号処理について図に基づき説明する。図10は本実施形態における秘匿計算方法の処理手順例7を示すフロー図であり、具体的には、図4の処理フローにおける復号処理プログラムによる処理(S500)を示す図である。
この場合、前記クライアント端末100は、前記秘匿計算サーバ200から、前記秘匿計算結果R(D200)を受信する(S510)。また前記クライアント端末100は、上述した暗号文生成用秘密鍵生成プログラムの処理(図4、図5:S100)で生成してある暗号文生成用秘密鍵Bを秘密鍵として、前記秘匿計算結果Rを、所定の復号化関数を用いて復号する(S520)。クライアント端末100は、ここで復号した値を計算結果として表示装置105にて出力する。上記例の場合、表示装置105にて出力する計算結果は、統計対象であるm人の個人に関する、個人情報の合算値となる。
−−−暗号文抑制処理−−−
次に、暗号文抑制処理について図に基づき説明する。図11は本実施形態における秘匿計算方法の処理手順例8を示すフロー図であり、具体的には、図8と図9の秘匿計算処理フロー(S400)における暗号文抑制処理を示す図である。
この場合、前記秘匿計算サーバ200は、暗号文抑制情報P=(p1,p2,・・・,pn)を用いて、秘匿計算関数用内部変数Zをベクトル基底表現する。つまり、実数係数(a1,a2,・・・,an)で、Z=a1×p1+a2×p2+・・・an×pnとなる表示を求める(S610)。次に、秘匿計算サーバ200は、前記ステップS610で求めた各ai(i=1〜n)に対して、実数aiを超えない最大の整数たる[ai]を減算し、各係数aiを“ai−[ai]”の値に更新する(S620)。例えば、a1が“3.5”である時、実数“3.5”を超えない最大の整数たる“3”で“3.5”を減算し、係数a1を“0.5”の値に更新する。
続いて秘匿計算サーバ200は、前記ステップS620で求めた、各係数aiを用いて、秘匿計算関数用内部変数Zを、Z=a1×p1+a2×p2+・・・an×pn、に更新し(S630)、秘匿計算関数用内部変数Zを出力する。こうした処理は、すなわち、抑制前の暗号文のベクトル(“ai”が1を越えている)を、前記暗号用抑制情報に対応した部分格子基底が成す領域内に平行移動させ(“ai”を1以下とする)、前記暗号文のビット長を所定値以下に低減する処理となる。
なお、上記実施形態においては、暗号文抑制情報を生成する際に、ランダムなn×n整数係数正則行列Uを生成しているが、行列式の値がある条件を満足するランダムなn×n整数係数正則行列Uとしてもよい。また、上記実施形態においては、ベクトルのノルム計算方法として、ユークリッドノルム計算法を利用しているが、その他の従来技術であるノルム計算法を用いてもよい。また、上記実施形態においては、秘匿計算用内部変数を一つの変数Zとしているが、秘匿計算用内部変数を複数の変数の組(Z1,Z2,・・・,Zk)としてもよい。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態においては、従来の課題であった「再暗号化時に発生するエラーベクトルの増大」を抑制するために、平文bitを暗号化する際に、クライアント端末100が加えるエラーベクトルの大きさを十分小さくとり、さらに、エラーベクトルが小さくことにより懸念される格子簡約攻撃を防ぐため、従来公開していた公開鍵は秘匿する方式となっている。また、秘匿計算サーバ200は、従来の公開鍵とは異なる暗号文抑制情報生成(暗号文のビット長をある定数以下に抑えるための情報)をクライアント端末100から得て、暗号文のノルム増大問題を解決している。暗号文抑制情報は、秘密鍵が生成する格子の部分格子基底からなり、暗号文ベクトルを常にこの部分格子基底の生成する基本領域に平行移動する事で、ノルム増大を防いでいる。この時、ベクトルを平行移動する際、加えるベクトルは部分格子のベクトルのため、暗号文ベクトルの平文情報を変更する事無く、ノルムを小さくできる。
また、前記暗号文抑制情報は、秘密鍵である格子の部分格子基底であるため、従来の公開鍵を用いた暗号化アルゴリズムにはそもそも利用できず、本実施形態の秘匿計算システムにおける暗号文抑制情報に対して格子簡約攻撃がなされるとしても、暗号文が解読され平文が出力されてしまう確率は非常に低い。実際、秘密鍵の格子基底のなす行列の行列式の絶対値をD、暗号文抑制情報の格子基底のなす行列の行列式の絶対値をD’とすると、暗号文解読の確率は、D/D’程度となる。従って、D’を十分大きく取る事によって、前記確率は、現実的には問題にならない程度に小さくする事が可能である。
しかして本実施形態によれば、平文bitデータに加えるエラーベクトルを従来より低減し、暗号化データのブール演算によるエラーベクトル増大を抑制する一方、エラーベクトルが小さい場合に懸念される従来の格子簡約攻撃を回避することが可能である。従って、squahingの如き、計算量や計算時間が非常大きい手法を採用する必要も無い。つまり、データ預託先のコンピュータにおいて、良好なセキュリティを維持しつつ、秘匿した状態での預託データに関する効率的な演算が実行可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、前記秘匿計算システムにおいて、前記クライアントは、記憶装置に保持する秘密鍵行列と、所定の整数係数正則行列との行列積を実行し、該行列積の結果である行列を、前記抑制情報としてサーバに送信するものである、としてもよい。
また、前記秘匿計算システムにおいて、前記サーバは、前記クライアントから受信した抑制情報が示す、抑制情報行列の列ベクトルからなる一次結合で、係数の絶対値が1以下のベクトル全体の中で、原点からのユークリッド距離が最も大きいものを特定し、該特定したベクトルと原点との距離を前記所定閾値とするものである、としてもよい。
10 秘匿計算システム
100 クライアント端末(クライアント)
101 CPU
102 補助記憶装置(記憶装置)
103 メモリ
104 内部信号線
105 耐タンパ記憶装置
106 表示装置
107 入出力インターフェイス
108 通信装置
200 秘匿計算サーバ(サーバ)
201 CPU
202 補助記憶装置(記憶装置)
203 メモリ
204 内部信号線
206 表示装置
207 入出力インターフェイス
208 通信装置
300 ネットワーク

Claims (6)

  1. 準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型暗号方式に基づく秘匿計算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムであって、
    前記クライアントは、
    n次元のイデアル格子基底を秘密鍵として、平文を、準同型性の暗号方式に対応した所定の暗号化関数を用いて暗号化し、前記データ暗号化を実行する処理と、前記秘密鍵が生成する格子の部分格子基底である抑制情報を前記サーバに送信する処理を実行するものであり、
    前記サーバは、
    前記クライアントから前記抑制情報を受信して記憶装置に保持する処理と、
    前記クライアントから受信した暗号化データに対する準同型暗号方式に基づく秘匿計算処理を、暗号化データ数に応じた回数で実行するに際し、少なくともいずれかの回での秘匿計算処理において、所定暗号化データに関して行った秘匿計算処理の結果であるベクトルについて、ノルムと所定の閾値とを比較した結果、ノルムが所定の閾値を超えている場合、前記抑制情報に基づいて、前記ベクトルの基底表現における実数係数を所定値以下に低減することで、前記ベクトルのノルムを前記閾値以下とする処理を実行するものであることを特徴とする秘匿計算システム。
  2. 前記クライアントは、
    記憶装置に保持する前記秘密鍵であるn次元のイデアル格子基底に対し、所定の整数係数正則行列を乗じて行列積を実行し、該行列積の結果である行列を、前記抑制情報としてサーバに送信するものである、ことを特徴とする請求項1に記載の秘匿計算システム。
  3. 前記サーバは、
    前記クライアン卜から受信した抑制情報である前記部分格子基底を、実係数の絶対値が1より小さいベクトルの一次結合とした場合、前記一次結合の中でノルムが最大であるベクトルのノルムを、前記閾値として、前記秘匿計算処理の結果であるベクトルについての、ノルムと所定の閾値との比較に用いる、
    ものであることを特徴とする請求項1に記載の秘匿計算システム。
  4. 準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型暗号方式に基づく秘匿計算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムにおける、
    前記クライアントが、
    n次元のイデアル格子基底を秘密鍵として、平文を、準同型性の暗号方式に対応した所定の暗号化関数を用いて暗号化し、前記データ暗号化を実行する処理と、前記秘密鍵が生成する格子の部分格子基底である抑制情報を前記サーバに送信する処理を実行し、
    前記サーバが、
    前記クライアントから前記抑制情報を受信して記憶装置に保持する処理と、
    前記クライアントから受信した暗号化データに対する準同型暗号方式に基づく秘匿計算処理を、暗号化データ数に応じた回数で実行するに際し、少なくともいずれかの回での秘匿計算処理において、所定暗号化データに関して行った秘匿計算処理の結果であるベクトルについて、ノルムと所定の閾値とを比較した結果、ノルムが所定の閾値を超えている場合、前記抑制情報に基づいて、前記ベクトルの基底表現における実数係数を所定値以下に低減することで、前記ベクトルのノルムを前記閾値以下とする処理を実行する、
    ことを特徴とする秘匿計算方法。
  5. 準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型暗号方式に基づく秘匿計算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムにおける、
    前記クライアントに、
    n次元のイデアル格子基底を秘密鍵として、平文を、準同型性の暗号方式に対応した所定の暗号化関数を用いて暗号化し、前記データ暗号化を実行する処理と、
    前記秘密鍵が生成する格子の部分格子基底である抑制情報を前記サーバに送信する処理と、
    を実行させることを特徴とする秘匿計算プログラム。
  6. 準同型性を持つ暗号方式において秘密鍵を用いたデータ暗号化を実行し、該暗号化データをサーバに送信するクライアントと、クライアントから受信した暗号化データに対して準同型暗号方式に基づく秘匿計算処理を実行し、該演算結果をクライアントに返信するサーバとを含むコンピュータシステムにおける、
    前記サーバに、
    前記クライアントから前記抑制情報を受信して記憶装置に保持する処理と、
    前記クライアントから受信した暗号化データに対する準同型暗号方式に基づく秘匿計算処理を、暗号化データ数に応じた回数で実行するに際し、少なくともいずれかの回での秘匿計算処理において、所定暗号化データに関して行った秘匿計算処理の結果であるベクトルについて、ノルムと所定の閾値とを比較した結果、ノルムが所定の閾値を超えている場合、前記抑制情報に基づいて、前記ベクトルの基底表現における実数係数を所定値以下に低減することで、前記ベクトルのノルムを前記閾値以下とする処理と、
    を実行させることを特徴とする秘匿計算プログラム。
JP2013535678A 2011-09-27 2011-09-27 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム Expired - Fee Related JP5657128B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/072009 WO2013046320A1 (ja) 2011-09-27 2011-09-27 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム

Publications (2)

Publication Number Publication Date
JP5657128B2 true JP5657128B2 (ja) 2015-01-21
JPWO2013046320A1 JPWO2013046320A1 (ja) 2015-03-26

Family

ID=47994437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013535678A Expired - Fee Related JP5657128B2 (ja) 2011-09-27 2011-09-27 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム

Country Status (3)

Country Link
US (1) US9276734B2 (ja)
JP (1) JP5657128B2 (ja)
WO (1) WO2013046320A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111052206A (zh) * 2017-08-22 2020-04-21 日本电信电话株式会社 秘密计算装置、秘密计算方法、程序以及记录介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6212377B2 (ja) * 2013-12-17 2017-10-11 Kddi株式会社 演算装置、演算方法およびコンピュータプログラム
US9917820B1 (en) 2015-06-29 2018-03-13 EMC IP Holding Company LLC Secure information sharing
US9729525B1 (en) 2015-06-29 2017-08-08 EMC IP Holding Company LLC Secure data analytics
US9906511B1 (en) 2015-06-29 2018-02-27 Bar-Ilan University Secure impersonation detection
EP3361469B8 (en) * 2015-10-09 2021-03-10 Mitsubishi Electric Corporation Secret search system, management device, secret search method, and secret search program
JP6504013B2 (ja) * 2015-10-13 2019-04-24 富士通株式会社 暗号処理方法、暗号処理装置、および暗号処理プログラム
WO2017096590A1 (en) * 2015-12-10 2017-06-15 Nokia Technologies Oy Schemes of homomorphic re-encryption
EP3379768B1 (en) 2016-01-18 2019-11-06 Mitsubishi Electric Corporation Encryption device, encrypted text conversion device, encryption program, encrypted text conversion program, encryption method, and encrypted text conversion method
WO2017135970A1 (en) * 2016-02-05 2017-08-10 Entit Software Llc Extended ciphertexts
FR3048102B1 (fr) * 2016-02-24 2018-03-09 Commissariat A L'energie Atomique Et Aux Energies Alternatives Methode d'execution confidentielle d'un programme operant sur des donnees chiffrees par un chiffrement homomorphe
US10476661B2 (en) * 2016-06-27 2019-11-12 Fujitsu Limited Polynomial-based homomorphic encryption
CN115668334A (zh) * 2020-06-05 2023-01-31 三菱电机株式会社 隐匿信息处理系统、加密装置、加密方法和加密程序
DE102021200297A1 (de) 2021-01-14 2022-07-14 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Senden von Daten
CN112861164B (zh) * 2021-03-16 2021-12-28 上海纬百科技有限公司 一种加密方法、解密方法、数据处理方法、终端及加密机

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005084568A (ja) * 2003-09-11 2005-03-31 Nippon Telegr & Teleph Corp <Ntt> セキュリティ方法、セキュリティ装置及びセキュリティプログラム
JP2011002810A (ja) * 2009-05-19 2011-01-06 Hitachi Ltd 暗号化装置、プログラム、暗号システム及び暗号化方法
US20110110525A1 (en) * 2009-11-10 2011-05-12 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005084568A (ja) * 2003-09-11 2005-03-31 Nippon Telegr & Teleph Corp <Ntt> セキュリティ方法、セキュリティ装置及びセキュリティプログラム
JP2011002810A (ja) * 2009-05-19 2011-01-06 Hitachi Ltd 暗号化装置、プログラム、暗号システム及び暗号化方法
US20110110525A1 (en) * 2009-11-10 2011-05-12 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6011056506; C. Gentry et al.: 'Fully Homomorphic Encryption without Squashing Using Depth-3 Arithmetic Circuits' Cryptology ePrint Archive Report 2011/279, 20110914, International Association for Cryptologic Research *
JPN6011056510; 國廣昇: '準同型な共通鍵暗号から準同型な公開鍵暗号への変換法' 2011年暗号と情報セキュリティシンポジウム予稿集 3F1-3, 20110125 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111052206A (zh) * 2017-08-22 2020-04-21 日本电信电话株式会社 秘密计算装置、秘密计算方法、程序以及记录介质

Also Published As

Publication number Publication date
US20140208101A1 (en) 2014-07-24
JPWO2013046320A1 (ja) 2015-03-26
US9276734B2 (en) 2016-03-01
WO2013046320A1 (ja) 2013-04-04

Similar Documents

Publication Publication Date Title
JP5657128B2 (ja) 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム
US11095428B2 (en) Hybrid system and method for secure collaboration using homomorphic encryption and trusted hardware
WO2022237450A1 (zh) 多方安全计算方法、装置、设备及存储介质
JPWO2015155896A1 (ja) サポートベクトルマシン学習システムおよびサポートベクトルマシン学習方法
JP2022508351A (ja) 準同型暗号に基づくプライバシー保護多機関データ分類方法
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
CN112491529B (zh) 用于不可信服务器环境中数据文件加密及完整性验证方法及其系统
WO2018045568A1 (zh) 一种面向云存储服务平台的访问控制方法及其系统
JP6738061B2 (ja) 暗号文照合システム、方法、および記録媒体
CN114039785B (zh) 数据加密、解密、处理方法、装置、设备和存储介质
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
JP2012128398A (ja) プライバシを保護したまま暗号化された要素の順序を選択するための方法およびシステム
WO2021129470A1 (zh) 基于多项式完全同态的二进制数据加密系统及方法
WO2015166701A1 (ja) 暗号化方法、プログラム、および、システム
Yenugula et al. Privacy-preserving decision tree classification using Homomorphic encryption in IoT big data scenarios
Shakor et al. Built-in encrypted health cloud environment for sharing COVID-19 data
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
CN117034334A (zh) 一种基于区块链的隐私保护可验证多项式计算外包方法
US11811741B2 (en) Information processing system and information processing method
JP6775231B2 (ja) 計算システム、計算方法及び計算プログラム
US10116439B2 (en) Encrypted data computation system, device, and program
KR102319699B1 (ko) 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법
WO2022137447A1 (ja) 秘匿情報処理システムおよび秘匿情報処理方法
CN116028969B (zh) 一种基于数据加密技术的隐私计算方法
JP2011118387A (ja) 信号に関数を適用した結果を求めるための方法およびシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141125

R150 Certificate of patent or registration of utility model

Ref document number: 5657128

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees