【文献】
濱田 浩気 他,秘匿計算上の一括写像アルゴリズム,情報処理学会研究報告 研究報告 セキュリティ心理学とトラスト(SPT) No.4,一般社団法人情報処理学会,2012年 8月15日,[ISSN]1884-0930、(29)
(58)【調査した分野】(Int.Cl.,DB名)
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第1平文データと、第2平文データとを加算した結果と等価又は前記第1平文データと、前記第2平文データとを減算した結果と等価であり、
前記第1テーブル及び前記第3テーブルを共通して用い、
前記第1記憶部は、異なる複数の前記第2テーブルを記憶する
請求項1に記載の情報処理装置。
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第3平文データと、第4平文データとを乗算した結果と等価又は前記第3平文データと、前記第4平文データとを除算した結果と等価であり、
前記第4テーブル及び前記第6テーブルを共通して用い、
前記第1記憶部は、異なる複数の前記第5テーブルを記憶する
請求項5に記載の情報処理装置。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付し、重複した説明を省く。
【0011】
《第1実施形態》
<全体構成例>
図1は、本発明の一実施形態に係る情報処理装置を利用した情報処理システムの一例を示す概念図である。例えば、情報処理装置10は、以下のような全体構成の情報処理システム1に使用される。図示するように、情報処理システム1は、複数の端末20と、情報処理装置10とを含む構成である。
【0012】
また、図示するように、情報処理システム1は、各端末20及び情報処理装置10を管理する管理者ADが使用する管理装置40と、サービスを提供する先の例であるユーザURが使用する出力端末30とを更に有してもよい。
【0013】
端末20は、例えば、計測機器、携帯端末又はPC(Personal Computer)等である。また、端末20は、通信機器を有し、有線又は無線によって、難読な状態の暗号文データDSを情報処理装置10に送信する。なお、情報処理システム1において、端末20は、同一の機器でもよいし、異なる機器でもよい。また、端末20は、1個以上であればよい。
【0014】
まず、端末20は、センサ等を使用して計測した結果を示すデータ又は端末20が所定の処理を実行することによって、いわゆる平文データを生成する。次に、端末20は、暗号化アルゴリズムを実行することによって、平文データを難読化し、暗号文データDSを生成する。
【0015】
例えば、端末20は、工場等に設置される。そして、端末20は、温度を計測する計測機器であるとする。この場合には、各端末20は、温度を計測し、計測して得られる温度の値を示す平文データを難読化した暗号文データDSを生成する。なお、端末20は、温度以外の物性値を計測してもよい。他にも、各端末20は、物性値に限られず、他の種類の平文データを生成してもよい。また、暗号文データDSは、定期的又は外部装置等から命令があると、送信される。
【0016】
情報処理装置10は、例えば、サーバ等である。なお、情報処理装置10は、サーバに限られず、PC等でもよい。
【0017】
情報処理装置10は、端末20から受信する暗号文データDSに対して、四則演算、論理演算又はこれらの組み合わせを含む所定の処理を行う。そして、情報処理装置10は、処理結果を示す暗号文データを出力端末30に送信する。
【0018】
例えば、情報処理システム1によって、各端末20によって計測されるそれぞれの温度の平均値をユーザURに提供するサービスが行われる設定であるとする。このような場合には、まず、情報処理装置10は、各端末20から、温度を示すデータを難読化したそれぞれの暗号文データDSを受信する。そして、情報処理装置10は、暗号文データDSに対して四則演算、論理演算又はこれらの組み合わせを行うことで、平均化処理し、ユーザURが有する出力端末30に平均値を示すデータを出力する。
【0019】
出力端末30及び管理装置40は、例えば、ネットワークを介して情報処理装置10に接続されるPC等である。なお、出力端末30及び管理装置40は、情報処理装置10等と一体の構成でもよい。すなわち、情報処理装置10は、ユーザURに対して、情報処理装置10が有する出力装置等を使用して処理結果を表示してもよい。さらに、情報処理装置10は、管理者ADから、情報処理装置10が有する入力装置等を使用して操作を受け付けてもよい。
【0020】
例えば、情報処理装置10は、ネットワークに接続され、ネットワークを介して各端末20から、様々なデータを受信する、すなわち、情報処理システム1がいわゆるクラウドサービス等を提供する場合がある。このような場合には、各データは、情報漏洩等のリスクを少なくするため、図示するように、暗号文データDSのように、難読化されて送信される。
【0021】
すなわち、端末20は、所定の暗号化アルゴリズム及び鍵に基づいて、平文データを難読化する。このようにすると、暗号文データDSは、難読化された状態であるため、送信後、不正アクセス等によって取得されても、平文データの内容及び暗号文データDSの生成元に係る情報等の情報漏洩を少なくすることができる。そして、出力端末30は、難読化されているデータを受信し、所定の復号アルゴリズム及び鍵に基づいて、データを復号する。このようにして、ユーザURは、安全にクラウドサービス等の提供を受ける。
【0022】
<ハードウェア構成例>
図2は、本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。例えば、情報処理装置10は、図示するように、CPU(Central Processing Unit)HW1と、記憶装置HW2と、インタフェースHW3と、入力装置HW4と、出力装置HW5とを有するハードウェア構成である。
【0023】
CPUHW1は、演算装置及び制御装置である。したがって、CPUHW1は、あらかじめインストールされるプログラム等に基づいて、所定の処理を実現するための演算及びハードウェアを制御する。
【0024】
記憶装置HW2は、例えば、メモリ等の主記憶装置である。また、記憶装置HW2は、ハードディスク等の補助記憶装置を更に有してもよい。
【0025】
インタフェースHW3は、外部装置を接続させるコネクタ又はアンテナ等である。例えば、インタフェースHW3は、ケーブル、近距離通信又はネットワーク等によって接続される外部装置とデータを送受信する。
【0026】
入力装置HW4は、ユーザによる操作を入力する装置である。例えば、入力装置HW4は、キーボード又はマウス等である。
【0027】
出力装置HW5は、ユーザに対して処理結果等を出力装置である。例えば、出力装置HW5は、ディスプレイ装置等である。
【0028】
なお、情報処理装置10は、図示するハードウェア構成に限られない。例えば、情報処理装置10は、各ハードウェアを複数有してもよい。また、情報処理装置10は、有線又は無線で接続される外部装置を有してもよい。さらに、情報処理装置10は、複数の装置で構成されてもよい。
【0029】
また、出力端末30及び管理装置40は、例えば、図示するハードウェア構成と同様のハードウェア構成の装置である。
【0030】
<第1全体処理例>
図3は、本発明の一実施形態に係る情報処理システムによる第1全体処理例を示すシーケンス図である。例えば、第1全体処理では、まず、設定処理(ステップS101乃至ステップS103)が行われる。設定処理の後、第1全体処理では、データの収集処理(ステップS201乃至ステップS203)が行われる。データの収集処理後、第1全体処理では、加算処理(ステップSA)が行われる。最後に、加算処理後、第1全体処理では、復号処理(ステップS301及びステップS302)が行われる。以下、図示する第1全体処理を例に説明する。また、この例では、端末20は、端末21及び端末22の2台であるとする。
【0031】
<鍵の入力例>(ステップS101)
ステップS101では、各端末20及び出力端末30は、鍵を入力する。具体的には、AES方式等の共通鍵暗号化方式では、暗号化及び復号に共通の鍵KYが用いられる。したがって、管理者AD等は、暗号化アルゴリズムに係る処理を実行する端末21及び端末22に、同一の鍵KYを入力する。一方で、管理者AD等は、復号アルゴリズムに係る処理を実行する出力端末30にも、同一の鍵KYを入力する。
【0032】
このようにして、出力端末30は、各端末20に入力される鍵KYと同一の鍵KYを入力する。そのため、出力端末30は、各端末20が暗号化アルゴリズムによって難読化させたデータを復号アルゴリズムによって復号し、暗号文データを平文データにすることができる。
【0033】
また、各端末20には、AES方式等における暗号化アルゴリズムを実行するためのプログラムがあらかじめインストールされ、鍵KYが入力されると、各端末20は、データを難読化させることができるように設定される。
【0034】
<第1テーブル及び第2テーブルの入力例>(ステップS102)
ステップS102では、情報処理装置10は、第1テーブルT1及び第2テーブルT2を記憶する。なお、第1テーブルT1及び第2テーブルT2は、後段の加算処理(ステップSA)で用いられるデータである。また、第1テーブルT1は、後段の加算処理(ステップSA)においてパラメータとなる第1定数「C1」及び第2定数「C2」に基づいて定まるテーブルである。同様に、第2テーブルT2は、後段の加算処理(ステップSA)においてパラメータとなる第1定数「C1」及び第3定数「C3」に基づいて定まるテーブルである。
【0035】
<第3テーブルの入力例>(ステップS103)
ステップS103では、情報処理装置10は、第3テーブルT3を記憶する。なお、第3テーブルT3は、後段の加算処理(ステップSA)で用いられるデータである。また、第3テーブルT3は、後段の加算処理(ステップSA)においてパラメータとなる第1定数「C1」、第2定数「C2」及び第3定数「C3」に基づいて定まるテーブルである。
【0036】
なお、テーブルは、入力に対する出力を定めるデータである。例えば、テーブルは、いわゆるLUT(Look Up Table)等である。すなわち、テーブルは、入力値に対して出力させる出力値を特定できるデータであればよく、データ形式は、2次元表等の形式でなくともよい。また、各テーブルは、各定数が定まると生成できるデータである。テーブルの詳細は、後述する。
【0037】
以上のような設定処理が、データの収集処理より以前にあらかじめ行われる。
【0038】
<データの生成例>(ステップS201)
ステップS201では、端末20は、データを生成する。例えば、データが温度等の計測値である場合には、端末20は、センサ等によって物性値を計測し、計測結果を示すデータを生成する。なお、ステップS201では、データは、難読化される前の状態、いわゆる平文データである。
【0039】
<暗号化処理例>(ステップS202)
ステップS202では、端末20は、データを暗号化する。すなわち、ステップS202では、端末20は、ステップS201で生成されるデータを暗号化アルゴリズム等によって暗号化し、暗号文データを生成する。すなわち、暗号文データは、難読化された状態のデータである。
【0040】
<暗号文データの送信例>(ステップS203)
ステップS203では、端末20は、暗号文データを送信する。以下、この例では、端末21が送信する暗号文データを「第1データD1」という。さらに、この例では、端末22が送信する暗号文データを「第2データD2」という。
【0041】
以上のようなステップS201乃至ステップS203が各端末20によって行われると、情報処理装置10に、暗号文データが集まる。なお、ステップS201乃至ステップS203は、周期をあらかじめ定めて定期的に端末20が行うようにしてもよいし、処理を実行するタイミングを各端末20に入力して定められたタイミングとなると端末20が行うようにしてもよい。
【0042】
以上のようなデータの収集処理が、設定処理より以前にあらかじめ行われる。
【0043】
<加算処理例>(ステップSA)
ステップSAでは、情報処理装置10は、加算処理を行う。以下、第1データD1と、第2データD2とを加算する例で説明する。例えば、加算処理は、以下に示す(1)式と等価の処理である。
【0044】
図4は、本発明の一実施形態に係る情報処理装置による加算処理と等価な計算を示す式である。なお、図示する(1)式及び以下の説明では、「DP」は、平文データを示す。さらに、「DC」は、暗号文データを示す。「DP」及び「DC」の後に数値を記載し、同じ数値のデータは、暗号化された前と後の関係となる。例えば、「DP1」の平文データを暗号化アルゴリズムによって暗号化すると、「DP1」の平文データは、「DC1」の暗号文データとなる。一方で、「DC1」の暗号文データを復号アルゴリズムによって復号すると、「DC1」の暗号文データは、「DP1」の平文データとなる。
【0045】
また、図示する(1)式及び以下の説明では、「T」は、テーブルによる変換を示す。「T」の後に数値を記載し、数値は、変換に用いるテーブルを示す番号である。例えば、「T1(x)」は、第1テーブルT1を用いる変換を示す。したがって、「T1(x)」は、変換対象となる「x」を入力とし、第1テーブルT1によって定まる「x」に対応する出力が行われる変換が行われることを示す。
【0046】
さらに、「Enc」は、暗号化関数を示し、「Dec」は、復号関数を示す。したがって、「Enc」及び「Dec」は、「x=Dec[Enc(x)]」及び「x=Enc[Dec(x)]」の関係が成り立つ関数である。ゆえに、(1)式及び以下の説明では、「Dec」及び「Enc」の順序は、前後してもよい。
【0047】
また、(1)式では、剰余演算を「mod」で示す。例えば、「x mod y」は、「x」を「y」で除算した余りを計算することを示す。
【0048】
図示する(1)式及び以下の説明では、「C1」は、第1定数を示す。さらに、「C2」は、第2定数を示す。さらにまた、「C3」は、第3定数を示す。そして、第2定数と、第3定数とは、異なる値である。
【0049】
図示する(1)式及び以下の説明では、「N」は、テーブルの個数を示す値(以下「要素数」という。)である。暗号文データが、「n」(n=length(DC))ビット数とすると、要素数「N」と「n」は、「N=2
n」の関係となる。すなわち、「N」は、基数を「2」とし、指数を「n」とする冪乗である。また、各暗号文データ及び各平文データは、同じビット数のデータである。
【0050】
したがって、「n」は、扱う暗号文データのデータ長によって定まる値である。また、各定数は、処理ごとに、管理者AD等によって設定されるパラメータである。例えば、各定数は、乱数生成関数等を実行して生成される乱数等である。そして、(1)式に示すように、第2定数「C2」及び第3定数「C3」は、「0」乃至「N−1」のうち、いずれかの値である。一方で、(1)式に示すように、第1定数「C1」は、奇数であって、「N−1」以下の値である。
【0051】
例えば、情報処理装置10は、図示するような(1)式を以下のように実現する。
【0052】
図5は、本発明の一実施形態に係る情報処理装置による加算処理の一例を示すフローチャートである。すなわち、ステップSAでは、例えば、図示するような処理が行われる。
【0053】
<複数の暗号文データの入力例>(ステップSA01)
ステップSA01では、情報処理装置10は、複数の暗号文データを入力する。例えば、ステップS203によって送信される暗号文データを受信すると、情報処理装置10は、複数の暗号文データを入力できる。このようにして入力される暗号文データが、(1)式では、「DC1」及び「DC2」となる。
【0054】
<第1テーブルに基づく第1変換例>(ステップSA02)
ステップSA02では、情報処理装置10は、第1テーブルに基づいて、第1データを変換する。図示するように、情報処理装置10は、ステップSA01で入力される複数の暗号文データのうち、一方の暗号文データである第1データD1を第1テーブルT1を用いて変換する。また、(1)式に示すように、第1テーブルT1は、変換対象となる第1データD1を復号したデータ、すなわち、第1データD1の平文データに第1定数「C1」を乗じた乗算結果に、第2定数「C2」を加算した計算と等価な変換をするためのテーブルである。以下、第1テーブルT1に基づく変換結果を示すデータ、すなわち、第1データD1の変換後のデータを「第1変換データDT1」という。
【0055】
<第2テーブルに基づく第2変換例>(ステップSA03)
ステップSA03では、情報処理装置10は、第2テーブルに基づいて、第2データを変換する。図示するように、情報処理装置10は、ステップSA01で入力される複数の暗号文データのうち、ステップSA02で用いるデータ、すなわち、第1データD1とは別の暗号文データである第2データD2を第2テーブルT2を用いて変換する。また、(1)式に示すように、第2テーブルT2は、変換対象となる第2データD2を復号したデータ、すなわち、第2データD2の平文データに、ステップSA02と同様の第1定数「C1」を乗じた乗算結果に、ステップSA02とは異なる第3定数「C3」を加算した計算と等価な変換をするためのテーブルである。以下、第2テーブルT2に基づく変換結果を示すデータ、すなわち、第2データD2の変換後のデータを「第2変換データDT2」という。
【0056】
<第1変換データ及び第2変換データの加算例>(ステップSA04)
ステップSA04では、情報処理装置10は、第1変換データと、第2変換データとを加算する。すなわち、ステップSA04では、情報処理装置10は、ステップSA02による第1変換の出力結果と、ステップSA03による第2変換の出力結果とを加算する。
【0057】
<剰余演算例>(ステップSA05)
ステップSA05では、情報処理装置10は、ステップSA04の処理結果に対して剰余演算を行う。(1)式に示すように、情報処理装置10は、第1変換データDT1と、第2変換データDT2とを加算した結果に対して「N」による剰余演算を行い、余りRMを算出する。
【0058】
<第3テーブルに基づく第3変換例>(ステップSA06)
ステップSA06では、情報処理装置10は、第3テーブルに基づいて、ステップSA05による剰余演算によって算出される余りRMを変換する。また、(1)式に示すように、第3テーブルT3は、変換対象となる余りRMから、第2定数「C2」及び第3定数「C3」を減算した減算結果を第1定数「C1」で除算した計算と等価な変換をするためのテーブルである。
【0059】
以上のような加算処理が行われると、難読化される前のデータである第1平文データと、第2平文データとを加算した出力結果と等価の出力結果が得られる。以下、証明を示す。
【0060】
(証明)
図6は、本発明の一実施形態に係る情報処理装置による加算処理の等価性を証明する式である。例えば、等価性は、図示する(2)式のように証明できる。また、以下のような定理がある。
【0061】
図7は、本発明の一実施形態に係る定理を示す式である。図示する(3)式のような定理があるため、奇数の乗算を行うと、入力と出力が異なる値となる。
【0062】
(2)式及び(3)式によって証明するように、第1平文データ「DP1」を暗号化したデータと、第2平文データ「DP2」を暗号化したデータとを
図5に示す加算処理によって処理した出力結果は、第1平文データ「DP1」と、第2平文データ「DP2」とを平文データの状態で加算し、その後、難読化したデータ「Enc(DP1+DP2)」と等価になる。
【0063】
以上のような加算処理が、復号処理より以前にあらかじめ行われる。
【0064】
<データの生成例>(ステップS301)
図3に戻り、ステップS301では、情報処理装置10は、加算処理による出力結果を示すデータを出力端末30に送信する。なお、ステップSAによる加算処理が、処理対象となるデータが暗号文データの状態で処理されるため、ステップS301で送信されるデータは、暗号文データである。
【0065】
<復号処理例>(ステップS302)
ステップS302では、出力端末30は、データを復号する。すなわち、ステップS302では、出力端末30は、ステップS301で送信されるデータを復号アルゴリズム等によって復号し、平文データを生成する。したがって、端末20によって暗号化されるステップS201から、ステップS302までの間では、データは、難読化されているため、データがセキュアな状態である。一方で、ステップS302によってデータが復号された後は、平文データとなるため、データを情報処理装置等を介して参照すれば、ユーザURは、データの内容を知ることができる。
【0066】
このようにすると、ユーザURは、平文データを参照することで、端末21と端末22が生成したデータの加算結果を知ることができる。
【0067】
《第2実施形態》
第2実施形態は、例えば、第1実施形態と同様の全体構成によって実現できる。したがって、第2実施形態の全体構成は、第1実施形態と同様の構成であるとし、重複する説明を省略する。また、第2実施形態における情報処理装置のハードウェア構成は、例えば、第1実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【0068】
一方で、第2実施形態は、全体処理が第1実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【0069】
<第2全体処理例>
図8は、本発明の一実施形態に係る情報処理システムによる第2全体処理例を示すシーケンス図である。第1実施形態と比較すると、第2全体処理は、加算処理(ステップSA)が減算処理(ステップSB)となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第1全体処理と同様である。
【0070】
<減算処理例>(ステップSB)
ステップSBでは、情報処理装置10は、減算処理を行う。以下、第1実施形態と同様に、第1データD1と、第2データD2とを処理対象とする例で説明する。例えば、減算処理は、以下に示す(4)式と等価の処理である。
【0071】
図9は、本発明の一実施形態に係る情報処理装置による減算処理と等価な計算を示す式である。なお、(4)式における各変数及び演算子は、(1)式と同一であるとする。(1)式と(4)式を比較すると、第2テーブルT2が異なる。具体的には、第2実施形態では、第2テーブルT2による変換が行われると、(1)式における変換結果が更に「マイナス1(−1)」倍となる点が異なる。例えば、情報処理装置10は、図示するような(4)式を以下のように実現する。
【0072】
図10は、本発明の一実施形態に係る情報処理装置による減算処理の一例を示すフローチャートである。図示するように、減算処理は、例えば、加算処理(ステップSA)と同様の処理で実現できる。減算処理と、加算処理とでは、ステップSA03で用いられる第2テーブルT2が異なる。
【0073】
(4)式に示すように、減算処理では、第2テーブルT2は、変換対象となる第2データD2を復号したデータ、すなわち、第2データD2の平文データに、ステップSA02と同様の第1定数「C1」を乗じ、かつ、「マイナス1(−1)」倍した乗算結果に、ステップSA02とは異なる第3定数「C3」を加算した計算と等価な変換をするためのテーブルである。
【0074】
以下、第1実施形態と同様に処理を行うと減算処理が実現できる。以上のような減算処理が行われると、難読化される前のデータである第1平文データから第2平文データを減算した出力結果と等価の出力結果が得られる。以下、証明を示す。
【0075】
(証明)
図11は、本発明の一実施形態に係る情報処理装置による減算処理の等価性を証明する式である。例えば、等価性は、図示する(5)式のように証明できる。
【0076】
(5)式及び(3)式によって証明するように、第1平文データ「DP1」を暗号化したデータと、第2平文データ「DP2」を暗号化したデータとを
図10に示す減算処理によって処理した出力結果は、第1平文データ「DP1」と、第2平文データ「DP2」とを平文データの状態で減算し、その後、難読化したデータ「Enc(DP1−DP2)」と等価になる。
【0077】
以上のような減算処理が、復号処理より以前にあらかじめ行われる。以下、第1全体処理と同様に復号処理が行われると、ユーザURは、平文データを参照できる。
【0078】
このようにすると、ユーザURは、平文データを参照することで、端末21と端末22が生成したデータの減算結果を知ることができる。
【0079】
<第1実施形態及び第2実施形態における情報処理装置の機能構成例>
図12は、本発明の一実施形態に係る第1実施形態及び第2実施形態における情報処理装置の機能構成例を示す機能ブロック図である。例えば、情報処理装置10は、入力部FN1と、第1記憶部FN2と、第2記憶部FN3と、第1変換部FN4と、第2変換部FN5と、加算部FN6と、剰余演算部FN7と、第3変換部FN8とを含む機能構成である。
【0080】
そして、情報処理システム1では、情報処理装置10には、例えば、複数の端末20、出力端末30及び管理装置40がネットワーク等によって接続される。
【0081】
各端末20は、例えば、暗号化部FN9と、データ生成部FN10とを含む機能構成である。
【0082】
出力端末30は、例えば、復号部FN11を含む機能構成である。復号部FN11には、あらかじめ鍵KYが入力され、鍵KYに基づいて、暗号文データを復号する。
【0083】
管理装置40は、例えば、テーブル生成部FN12を含む機能構成である。
【0084】
入力部FN1は、第1データD1と、第2データD2とを入力する入力手順を行う。例えば、入力部FN1は、インタフェースHW3(
図2参照)等によって実現される。
【0085】
第1記憶部FN2は、第1記憶手順によって、第1テーブルT1と、第2テーブルT2とを記憶する。例えば、第1記憶部FN2は、記憶装置HW2(
図2参照)等によって実現される。
【0086】
第2記憶部FN3は、第2記憶手順によって、第3テーブルT3を記憶する。例えば、第2記憶部FN3は、記憶装置HW2(
図2参照)等によって実現される。
【0087】
第1変換部FN4は、第1テーブルT1に基づいて、第1データD1を変換し、第1変換データDT1を生成する第1変換手順を行う。例えば、第1変換部FN4は、CPUHW1(
図2参照)等によって実現される。
【0088】
第2変換部FN5は、第2テーブルT2に基づいて、第2データD2を変換し、第2変換データDT2を生成する第2変換手順を行う。例えば、第2変換部FN5は、CPUHW1(
図2参照)等によって実現される。
【0089】
加算部FN6は、第1変換データDT1と、第2変換データDT2とを加算して加算結果RAを剰余演算部FN7に出力する加算手順を行う。例えば、加算部FN6は、CPUHW1(
図2参照)等によって実現される。
【0090】
剰余演算部FN7は、基数を2とし、かつ、指数を第1データD1及び第2データD2のビット数とする冪乗で、加算結果RAを除算して余りRMを取得する剰余演算手順を行う。例えば、剰余演算部FN7は、CPUHW1(
図2参照)等によって実現される。
【0091】
第3変換部FN8は、第3テーブルT3に基づいて、余りRMを変換して出力結果OUTを出力端末30に送信する第3変換手順を行う。例えば、第3変換部FN8は、CPUHW1(
図2参照)等によって実現される。
【0092】
図示するように、各端末20及び出力端末30には、共通した鍵KYが送信される。このように、鍵KYが送信されると、端末20は、鍵KYに基づいて送信するデータを暗号化することができる。一方で、出力端末30は、鍵KYによって、出力結果OUTを復号することができる。
【0093】
まず、管理者ADの操作に基づいて、管理装置40は、鍵KYを生成する。さらに、管理者ADの操作に基づいて、管理装置40は、第1定数「C1」、第2定数「C2」及び第3定数「C3」等の難読化パラメータを生成する。このように、鍵KY、第1定数「C1」、第2定数「C2」及び第3定数「C3」が定まると、管理装置40は、テーブル生成部FN12によって第1テーブルT1、第2テーブルT2及び第3テーブルT3を生成する。例えば、テーブル生成部FN12は、管理装置40が有する演算装置等によって実現される。
【0094】
このようにして生成される鍵KYは、
図3及び
図8に示す設定処理によって、各端末20及び出力端末30に送信される。一方で、鍵KY、第1定数「C1」、第2定数「C2」及び第3定数「C3」に基づいて生成される各テーブルは、
図3及び
図8に示す設定処理によって、情報処理装置10に送信される。
【0095】
そして、各端末20は、データ生成部FN10によって平文データが生成される。例えば、データが計測結果である場合には、端末20が有するセンサによって計測が行われると、データ生成部FN10は、データを生成する。
【0096】
次に、各端末20は、データ生成部FN10が生成した平文データを暗号化部FN9によって暗号化する。例えば、暗号化部FN9及びデータ生成部FN10は、各端末20が有する演算装置等によって実現される。このようにすると、各端末20によって、暗号文データが生成される。このようにして生成される第1データD1及び第2データD2等の暗号文データは、情報処理装置10に収集される。例えば、
図3及び
図8に示すデータの収集処理は、入力部FN1、暗号化部FN9及びデータ生成部FN10等によって実現される。
【0097】
図示するように、第1変換部FN4による第1変換、第2変換部FN5による第2変換、加算部FN6による加算、剰余演算部FN7による剰余演算及び第3変換部FN8による第3変換が行われると、情報処理装置10は、
図3に示す加算処理を実現できる。また、加算処理は、例えば、
図5に示すような処理である。このようにすると、(2)式(
図6参照)に証明するように、情報処理装置10は、平文データを加算し、加算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置10は、複数のデータを加算することができる。
【0098】
図示するように、第1変換部FN4による第1変換、第2変換部FN5による第2変換、加算部FN6による加算、剰余演算部FN7による剰余演算及び第3変換部FN8による第3変換が行われると、情報処理装置10は、
図8に示す減算処理を実現できる。また、減算処理は、例えば、
図10に示すような処理である。このようにすると、(5)式(
図11参照)に証明するように、情報処理装置10は、平文データを減算し、減算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置10は、複数のデータを減算することができる。
【0099】
また、情報処理装置10は、
図3に示す加算処理及び
図8に示す減算処理を両方とも行うのが望ましい。すなわち、情報処理装置10は、各端末20が生成したデータを加算した結果と、各端末20が生成したデータを減算した結果と等価となるどちらの暗号文データも出力端末30に出力できる。このように、情報処理装置10が減算処理及び加算処理の両方を行う場合には、情報処理装置10は、例えば、図示するように各テーブルを記憶する構成であるのが望ましい。
【0100】
具体的には、情報処理装置10は、図示するように、加算処理及び減算処理で、第1テーブルT1及び第3テーブルT3を共通して用いるのが望ましい。つまり、図示するように、情報処理装置10は、加算処理及び減算処理の両方を行う場合であっても、第1記憶部FN2によって、第1テーブルT1を1個記憶する。同様に、情報処理装置10は、加算処理及び減算処理の両方を行う場合であっても、第2記憶部FN3によって、第3テーブルT3を1個記憶する。したがって、第1変換部FN4は、加算処理を行う場合でも、減算処理を行う場合でも、同一の第1テーブルT1を用いる。同様に、第3変換部FN8は、加算処理を行う場合でも、減算処理を行う場合でも、同一の第3テーブルT3を用いる。
【0101】
一方で、情報処理装置10は、加算処理及び減算処理の両方を行う場合には、加算処理用の第2テーブルT2と、減算処理用の第2テーブルT2とを別に記憶する。そして、第2変換部FN5は、加算処理を行うか、又は、減算処理を行うかによって、第2テーブルT2を切り替える。
【0102】
このような構成であると、第1テーブルT1及び第3テーブルT3が共通であるため、情報処理装置10は、第1テーブルT1及び第3テーブルT3を記憶する記憶領域が小さくできる。
【0103】
《第3実施形態》
第3実施形態は、例えば、第1実施形態と同様の全体構成によって実現できる。したがって、第3実施形態の全体構成は、第1実施形態と同様の構成であるとし、重複する説明を省略する。また、第3実施形態における情報処理装置のハードウェア構成は、例えば、第1実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【0104】
一方で、第3実施形態は、全体処理が第1実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【0105】
<第3全体処理例>
図13は、本発明の一実施形態に係る情報処理システムによる第3全体処理例を示すシーケンス図である。第1実施形態と比較すると、第3全体処理は、加算処理(ステップSA)が乗算処理(ステップSC)となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第1全体処理と同様である。ただし、設定処理で扱われる定数及びテーブルは、第1全体処理及び第2全体処理と異なる。定数及びテーブルについての詳細は、後述する。
【0106】
<乗算処理例>(ステップSC)
ステップSCでは、情報処理装置10は、乗算処理を行う。以下、第1実施形態等と同様に、各端末20から送信される暗号文データである第3データD3と、第4データD4とを処理対象とする例で説明する。例えば、乗算処理は、以下に示す(6)式と等価の処理である。
【0107】
図14は、本発明の一実施形態に係る情報処理装置による減算処理と等価な計算を示す式である。なお、(6)式における各変数及び演算子は、(1)式と同一であるとする。
【0108】
例えば、情報処理装置10は、図示するような(6)式を以下のように実現する。
【0109】
図15は、本発明の一実施形態に係る情報処理装置による乗算処理の一例を示すフローチャートである。すなわち、ステップSCでは、例えば、図示するような処理が行われる。
【0110】
<複数の暗号文データの入力例>(ステップSC01)
ステップSC01では、情報処理装置10は、複数の暗号文データを入力する。例えば、ステップS203によって送信される暗号文データを受信すると、情報処理装置10は、複数の暗号文データを入力できる。このようにして入力される暗号文データが、(6)式では、「DC3」及び「DC4」となる。
【0111】
<第4テーブルに基づく第1変換例>(ステップSC02)
ステップSC02では、情報処理装置10は、第4テーブルに基づいて、第3データを変換する。図示するように、情報処理装置10は、ステップSC01で入力される複数の暗号文データのうち、一方の暗号文データである第3データD3を第4テーブルT4を用いて変換する。また、(6)式に示すように、第4テーブルT4は、変換対象となる第3データD3を復号したデータ、すなわち、第3データD3の平文データに第4定数「C4」を乗じる計算と等価な変換をするためのテーブルである。以下、第4テーブルT4に基づく変換結果を示すデータ、すなわち、第3データD3の変換後のデータを「第3変換データDT3」という。
【0112】
<第5テーブルに基づく第2変換例>(ステップSC03)
ステップSC03では、情報処理装置10は、第5テーブルに基づいて、第4データを変換する。図示するように、情報処理装置10は、ステップSC01で入力される複数の暗号文データのうち、ステップSC02で用いるデータ、すなわち、第3データD3とは別の暗号文データである第4データD4を第5テーブルT5を用いて変換する。また、(6)式に示すように、第5テーブルT5は、変換対象となる第4データD4を復号したデータ、すなわち、第4データD4の平文データに第5定数「C5」を乗じる計算と等価な変換をするためのテーブルである。以下、第5テーブルT5に基づく変換結果を示すデータ、すなわち、第4データD4の変換後のデータを「第4変換データDT4」という。
【0113】
<第3変換データ及び第4変換データの加算例>(ステップSC04)
ステップSC04では、情報処理装置10は、第3変換データと、第4変換データとを乗算する。すなわち、ステップSC04では、情報処理装置10は、ステップSC02による第1変換の出力結果と、ステップSC03による第2変換の出力結果とを乗算する。
【0114】
<剰余演算例>(ステップSC05)
ステップSC05では、情報処理装置10は、ステップSC04の処理結果に対して剰余演算を行う。(6)式に示すように、情報処理装置10は、第3変換データDT3と、第4変換データDT4とを乗算した結果に対して「N」による剰余演算を行い、余りRMを算出する。
【0115】
<第6テーブルに基づく第3変換例>(ステップSC06)
ステップSC06では、情報処理装置10は、第6テーブルに基づいて、ステップSC05による剰余演算によって算出される余りRMを変換する。また、(6)式に示すように、第6テーブルT6は、変換対象となる余りRMを第4定数「C4」及び第5定数「C5」で除算する計算と等価な変換をするためのテーブルである。
【0116】
以上のような加算処理が行われると、難読化される前のデータである第3平文データと、第4平文データとを乗算した出力結果と等価の出力結果が得られる。以下、証明を示す。
【0117】
(証明)
図16は、本発明の一実施形態に係る情報処理装置による乗算処理の等価性を証明する式である。例えば、等価性は、図示する(7)式のように証明できる。
【0118】
(7)式及び(3)式によって証明するように、第3平文データ「DP3」を暗号化したデータと、第4平文データ「DP4」を暗号化したデータとを
図15に示す乗算処理によって処理した出力結果は、第3平文データ「DP3」と、第4平文データ「DP4」とを平文データの状態で乗算し、その後、難読化したデータ「Enc(DP3×DP4)」と等価になる。
【0119】
以上のような乗算処理が、復号処理より以前にあらかじめ行われる。以下、第1全体処理と同様に復号処理が行われると、ユーザURは、平文データを参照できる。
【0120】
このようにすると、ユーザURは、平文データを参照することで、端末21と端末22が生成したデータの乗算結果を知ることができる。
【0121】
《第4実施形態》
第4実施形態は、例えば、第1実施形態と同様の全体構成によって実現できる。したがって、第4実施形態の全体構成は、第1実施形態と同様の構成であるとし、重複する説明を省略する。また、第4実施形態における情報処理装置のハードウェア構成は、例えば、第1実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【0122】
一方で、第4実施形態は、全体処理が第1実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【0123】
<第4全体処理例>
図17は、本発明の一実施形態に係る情報処理システムによる第4全体処理例を示すシーケンス図である。第1実施形態と比較すると、第4全体処理は、加算処理(ステップSA)が除算処理(ステップSD)となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第3全体処理と同様である。
【0124】
<除算処理例>(ステップSD)
ステップSDでは、情報処理装置10は、除算処理を行う。以下、第3実施形態等と同様に、第3データD3と、第4データD4とを処理対象とする例で説明する。例えば、除算処理は、以下に示す(8)式と等価の処理である。
【0125】
図18は、本発明の一実施形態に係る情報処理装置による除算処理と等価な計算を示す式である。なお、(8)式における各変数及び演算子は、(1)式と同一であるとする。
【0126】
例えば、情報処理装置10は、図示するような(8)式を以下のように実現する。(6)式と(8)式を比較すると、第5テーブルT5が異なる。具体的には、第4実施形態では、第5テーブルT5による変換は、変換対象の逆数がまず計算され、その後、第5定数「C5」を乗じる計算と等価な点が異なる。例えば、情報処理装置10は、図示するような(8)式を以下のように実現する。
【0127】
図19は、本発明の一実施形態に係る情報処理装置による除算処理の一例を示すフローチャートである。図示するように、除算処理は、例えば、乗算処理(ステップSC)と同様の処理で実現できる。一方で、除算処理と、乗算処理とでは、ステップSC03で用いられる第5テーブルT5が異なる。
【0128】
(8)式に示すように、第5テーブルT5は、変換対象となる第4データD4を復号したデータ、すなわち、第4データD4の平文データの逆数を計算し(1÷Dec(x))、ステップSC02とは異なる第5定数「C5」を乗じた計算と等価な変換をするためのテーブルである。一方で、除算処理において用いられる第4テーブルT4及び第6テーブルT6は、乗算処理のテーブルと同様のテーブルである。
【0129】
以下、第3実施形態と同様に処理を行うと除算処理が実現できる。以上のような除算処理が行われると、難読化される前のデータである第1平文データから第2平文データを除算した出力結果と等価の出力結果が得られる。以下、証明を示す。
【0130】
(証明)
図20は、本発明の一実施形態に係る情報処理装置による除算処理の等価性を証明する式である。例えば、等価性は、図示する(9)式のように証明できる。
【0131】
(9)式及び(3)式によって証明するように、第3平文データ「DP3」を暗号化したデータと、第4平文データ「DP4」を暗号化したデータとを
図19に示す除算処理によって処理した出力結果は、第3平文データ「DP3」と、第4平文データ「DP4」とを平文データの状態で除算し、その後、難読化したデータ「Enc(DP3÷DP4)」と等価になる。
【0132】
以上のような除算処理が、復号処理より以前にあらかじめ行われる。以下、第1全体処理と同様に復号処理が行われると、ユーザURは、平文データを参照できる。
【0133】
このようにすると、ユーザURは、平文データを参照することで、端末21と端末22が生成したデータの除算結果を知ることができる。
【0134】
<第3実施形態及び第4実施形態における情報処理装置の機能構成例>
図21は、本発明の一実施形態に係る第3実施形態及び第4実施形態における情報処理装置の機能構成例を示す機能ブロック図である。例えば、情報処理装置10は、入力部FN1と、第1記憶部FN2と、第2記憶部FN3と、第1変換部FN4と、第2変換部FN5と、乗算部FN21と、剰余演算部FN7と、第3変換部FN8とを含む機能構成である。
図12に示す機能構成と比較すると、加算部FN6が乗算部FN21となる点が異なる。一方で、端末20、出力端末30及び管理装置40等は、
図12と同様であるため、説明を省略する。
【0135】
入力部FN1は、第3データD3と、第4データD4とを入力する入力手順を行う。例えば、入力部FN1は、インタフェースHW3(
図2参照)等によって実現される。
【0136】
第1記憶部FN2は、第1記憶手順によって、第4テーブルT4と、第5テーブルT5とを記憶する。例えば、第1記憶部FN2は、記憶装置HW2(
図2参照)等によって実現される。
【0137】
第2記憶部FN3は、第2記憶手順によって、第6テーブルT6を記憶する。例えば、第2記憶部FN3は、記憶装置HW2(
図2参照)等によって実現される。
【0138】
第1変換部FN4は、第4テーブルT4に基づいて、第3データD3を変換し、第3変換データDT3を生成する第1変換手順を行う。例えば、第1変換部FN4は、CPUHW1(
図2参照)等によって実現される。
【0139】
第2変換部FN5は、第5テーブルT5に基づいて、第4データD4を変換し、第4変換データDT4を生成する第2変換手順を行う。例えば、第2変換部FN5は、CPUHW1(
図2参照)等によって実現される。
【0140】
乗算部FN21は、第3変換データDT3と、第4変換データDT4とを乗算して乗算結果RBを剰余演算部FN7に出力する乗算手順を行う。例えば、乗算部FN21は、CPUHW1(
図2参照)等によって実現される。
【0141】
剰余演算部FN7は、基数を2とし、かつ、指数を第3データD3及び第4データD4のビット数とする冪乗で、乗算結果RBを除算して余りRMを取得する剰余演算手順を行う。例えば、剰余演算部FN7は、CPUHW1(
図2参照)等によって実現される。
【0142】
第3変換部FN8は、第6テーブルT6に基づいて、余りRMを変換して出力結果OUTを出力端末30に送信する第3変換手順を行う。例えば、第3変換部FN8は、CPUHW1(
図2参照)等によって実現される。
【0143】
図示するように、各端末20及び出力端末30には、共通した鍵KYが送信される。このように、鍵KYが送信されると、端末20は、鍵KYに基づいて送信するデータを難読化することができる。一方で、出力端末30は、鍵KYによって、出力結果OUTを復号することができる。
【0144】
まず、管理者ADの操作に基づいて、管理装置40は、鍵KYを生成する。さらに、管理者ADの操作に基づいて、管理装置40は、第4定数「C4」及び第5定数「C5」等の難読化パラメータを生成する。このように、鍵KY、第4定数「C4」及び第5定数「C5」が定まると、管理装置40は、テーブル生成部FN12によって第4テーブルT4、第5テーブルT5及び第6テーブルT6を生成する。例えば、テーブル生成部FN12は、管理装置40が有する演算装置等によって実現される。
【0145】
このようにして生成される鍵KYは、
図13及び
図17に示す設定処理によって、各端末20及び出力端末30に送信される。一方で、第4定数「C4」及び第5定数「C5」に基づいて生成される各テーブルは、
図13及び
図17に示す設定処理によって、情報処理装置10に送信される。
【0146】
そして、各端末20は、データ生成部FN10によって平文データが生成される。例えば、データが計測結果である場合には、端末20が有するセンサによって計測が行われると、データ生成部FN10は、データを生成する。
【0147】
次に、各端末20は、データ生成部FN10が生成した平文データを暗号化部FN9によって暗号化する。例えば、暗号化部FN9及びデータ生成部FN10は、各端末20が有する演算装置等によって実現される。このようにすると、各端末20によって、暗号文データが生成される。このようにして生成される第3データD3及び第4データD4等の暗号文データは、情報処理装置10に収集される。例えば、
図13及び
図17に示すデータの収集処理は、入力部FN1、暗号化部FN9及びデータ生成部FN10等によって実現される。
【0148】
図示するように、第1変換部FN4による第1変換、第2変換部FN5による第2変換、乗算部FN21による乗算、剰余演算部FN7による剰余演算及び第3変換部FN8による第3変換が行われると、情報処理装置10は、
図13に示す乗算処理を実現できる。また、乗算処理は、例えば、
図15に示すような処理である。このようにすると、(7)式(
図16参照)に証明するように、情報処理装置10は、平文データを乗算し、乗算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置10は、複数のデータを乗算することができる。
【0149】
図示するように、第1変換部FN4による第1変換、第2変換部FN5による第2変換、乗算部FN21による乗算、剰余演算部FN7による剰余演算及び第3変換部FN8による第3変換が行われると、情報処理装置10は、
図17に示す除算処理を実現できる。また、除算処理は、例えば、
図19に示すような処理である。このようにすると、(9)式(
図20参照)に証明するように、情報処理装置10は、平文データを除算し、除算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置10は、複数のデータを除算することができる。
【0150】
また、情報処理装置10は、
図13に示す乗算処理及び
図17に示す除算処理を両方とも行うのが望ましい。すなわち、情報処理装置10は、各端末20が生成したデータを乗算した結果と、各端末20が生成したデータを除算した結果と等価となるどちらの暗号文データも出力端末30に出力できる。このように、情報処理装置10が乗算処理及び除算処理の両方を行う場合には、情報処理装置10は、図示するように、各テーブルを記憶する構成であるのが望ましい。
【0151】
具体的には情報処理装置10は、図示するように、乗算処理及び除算処理で、第4テーブルT4及び第6テーブルT6を共通して用いるのが望ましい。つまり、図示するように、情報処理装置10は、乗算処理及び除算処理の両方を行う場合であっても、第1記憶部FN2によって、第4テーブルT4を1個記憶する。同様に、情報処理装置10は、乗算処理及び除算処理の両方を行う場合であっても、第2記憶部FN3によって、第6テーブルT6を1個記憶する。したがって、第1変換部FN4は、乗算処理を行う場合でも、除算処理を行う場合でも、同一の第4テーブルT4を用いる。同様に、第3変換部FN8は、乗算処理を行う場合でも、除算処理を行う場合でも、同一の第6テーブルT6を用いる。
【0152】
一方で、情報処理装置10は、乗算処理及び除算処理の両方を行う場合には、乗算処理用の第5テーブルT5と、除算処理用の第5テーブルT5とを別に記憶する。そして、第2変換部FN5は、乗算処理を行うか、又は、除算処理を行うかによって、第5テーブルT5を切り替える。
【0153】
このような構成であると、第4テーブルT4及び第6テーブルT6が共通であるため、情報処理装置10は、第4テーブルT4及び第6テーブルT6を記憶する記憶領域が小さくできる。
【0154】
《第5実施形態》
第5実施形態は、例えば、第1実施形態と同様の全体構成によって実現できる。したがって、第5実施形態の全体構成は、第1実施形態と同様の構成であるとし、重複する説明を省略する。また、第5実施形態における情報処理装置のハードウェア構成は、例えば、第1実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【0155】
一方で、第5実施形態は、全体処理が第1実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【0156】
<第5全体処理例>
図22は、本発明の一実施形態に係る情報処理システムによる第5全体処理例を示すシーケンス図である。第1実施形態と比較すると、第5全体処理は、加算処理(ステップSA)が論理積処理(ステップSE)となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第1全体処理と同様である。ただし、設定処理で扱われる定数及びテーブルは、第1全体処理乃至第4全体処理と異なる。定数及びテーブルについての詳細は、後述する。
【0157】
<論理積処理例>(ステップSE)
ステップSEでは、情報処理装置10は、論理積処理を行う。以下、第1実施形態等と同様に、各端末20から送信される暗号文データである第5データD5と、第6データD6とを処理対象とする例で説明する。例えば、論理積処理は、以下に示す(10)式と等価の処理である。
【0158】
図23は、本発明の一実施形態に係る情報処理装置による論理積処理と等価な計算を示す式である。なお、(10)式において、「Enc」及び「Dec」は、(1)式と同様である。また、「T」は、(1)式と同様にテーブルを示す。さらに、「DP」及び「DC」は、(1)式と同様に、平文データ及び暗号文データを示す。
【0159】
(10)式及び以下の説明では、「Sort(NM,x)」は、変換対象となるデータを構成する複数のビットを並べ替える並替関数である。そして、「NM」は、並替番号を示し、「X」は、変換対象となるデータを示す。
【0160】
並替関数は、並替番号に基づいて変換データとなる「X」のデータを構成するビットについてビットごとの並べ替え先を計算し、計算した並べ変え先に基づいて、それぞれのビットを並べ替える。一方で、「InvSort(NM,x)」は、「Sort(NM,x)」の逆関数である。逆関数が実行されると、変換対象となるデータが逆変換される。つまり、並替関数及び並替関数の逆関数は、「x=InvSort(NM,Sort(NM,x))」及び「x=Sort(NM,InvSort(NM,x))」の関係が成り立つ関数である。ゆえに、(10)式及び以下の説明では、「Sort」及び「InvSort」の順序は、前後してもよい。
【0161】
並替番号は、並替関数「Sort(NM,x)」及び逆関数「InvSort(NM,x)」による並べ替えパターンを特定できる番号である。したがって、並替番号が同一であると、並替関数「Sort(NM,x)」及び逆関数「InvSort(NM,x)」は、同一のパターンとなるように並べ替える。つまり、例えば、並べ替えの対象となるデータが8ビット(n=8)である場合には、並べ替えのパターンは、「n!=8!=40320パターン」存在する。
【0162】
なお、並替関数、並替関数の逆関数及び並替番号の詳細は、例えば、特願2016―110105号公報に記載された通りである。
【0163】
さらに、(10)式及び以下の説明では、「&」は、論理積、いわゆる「AND」の計算を示す演算子である。
【0164】
例えば、情報処理装置10は、図示するような(10)式を以下のように実現する。
【0165】
図24は、本発明の一実施形態に係る情報処理装置による論理積処理の一例を示すフローチャートである。
【0166】
<複数の暗号文データの入力例>(ステップSE01)
ステップSE01では、情報処理装置10は、複数の暗号文データを入力する。例えば、ステップS203によって送信される暗号文データである第5データD5及び第6データD6を受信すると、情報処理装置10は、複数の暗号文データを入力できる。このようにして入力される暗号文データが、(10)式では、「DC5」及び「DC6」となる。
【0167】
<第7テーブルに基づく第1変換例>(ステップSE02)
ステップSE02では、情報処理装置10は、第7テーブルに基づいて、第5データを変換する。図示するように、情報処理装置10は、ステップSE01で入力される複数の暗号文データのうち、一方の暗号文データである第5データD5を第7テーブルT7を用いて変換する。また、(10)式に示すように、第7テーブルT7は、変換対象となる第5データD5を復号したデータ、すなわち、第5データD5の平文データを並替関数によって並べ替えるのと等価な変換をするためのテーブルである。なお、どのような並べ替えパターンとなるかは、並替番号NMによって定まる。以下、第5データD5を第7テーブルT7によって変換した結果を示すデータを第5変換データDT5という。
【0168】
<第7テーブルに基づく第2変換例>(ステップSE03)
ステップSE03では、情報処理装置10は、第7テーブルに基づいて、第6データを変換する。図示するように、情報処理装置10は、ステップSE01で入力される複数の暗号文データのうち、ステップSE02で用いるのとは異なる暗号文データである第6データD6をステップSE02と同様の第7テーブルT7を用いて変換する。また、(10)式に示すように、第7テーブルT7は、変換対象となる第6データD6を復号したデータ、すなわち、第6データD6の平文データを並替関数によって並べ替えるのと等価な変換をするためのテーブルである。以下、第6データD6を第7テーブルT7によって変換した結果を示すデータを第6変換データDT6という。
【0169】
<第5変換データ及び第6変換データの論理積の計算例>(ステップSE04)
ステップSE04では、情報処理装置10は、第5変換データ及び第6変換データの論理積を計算する。すなわち、ステップSE04では、情報処理装置10は、ステップSE02による変換結果と、ステップSE03による変換結果との論理積を計算する。
【0170】
<第8テーブルに基づく第3変換例>(ステップSE05)
ステップSE05では、情報処理装置10は、第8テーブルに基づいて、データを変換する。図示するように、変換対象は、ステップSE04による論理積の結果を示すデータである。また、(10)式に示すように、第8テーブルT8は、変換対象となるデータを復号したデータ、すなわち、論理積の結果を示すデータの平文データを並替関数の逆関数によって並べ替えるのと等価な変換をするためのテーブルである。そして、第8テーブルT8による変換結果が論理積処理の出力結果OUTとなる。
【0171】
以上のような論理積処理が行われると、難読化される前のデータである第5平文データ及び第6平文データの論理積を計算した結果と等価の出力結果が得られる。以下、証明を示す。
【0172】
(証明)
図25は、本発明の一実施形態に係る情報処理装置による論理積処理の等価性を証明する式である。例えば、等価性は、図示する(11)式のように証明できる。
【0173】
(11)式によって証明するように、第5平文データ「DP5」を暗号化したデータと、第6平文データ「DP6」を暗号化したデータとを
図24に示す論理積処理によって処理した出力結果OUTは、第5平文データ「DP5」と、第6平文データ「DP6」とが平文の状態で、2つのデータの論理積を計算し、その後、暗号化したデータ「Enc(DP5&DP6)」と等価になる。
【0174】
以上のような論理積処理が、復号処理より以前にあらかじめ行われる。以下、第1全体処理と同様に復号処理が行われると、ユーザURは、平文データを参照できる。
【0175】
このようにすると、ユーザURは、平文データを参照することで、端末21と端末22が生成したデータの論理積の計算結果を知ることができる。
【0176】
なお、情報処理装置10は、出力結果OUTを否定(NOT)する計算を更に行ってもよい。このようにすると、情報処理装置10は、否定的論理積(NAND)の計算結果を得ることができる。
【0177】
《第6実施形態》
第6実施形態は、例えば、第1実施形態と同様の全体構成によって実現できる。したがって、第6実施形態の全体構成は、第1実施形態と同様の構成であるとし、重複する説明を省略する。また、第6実施形態における情報処理装置のハードウェア構成は、例えば、第1実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【0178】
一方で、第6実施形態は、全体処理が第1実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【0179】
<第6全体処理例>
図26は、本発明の一実施形態に係る情報処理システムによる第6全体処理例を示すシーケンス図である。第1実施形態と比較すると、第5全体処理は、加算処理(ステップSA)が論理和処理(ステップSF)となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第1全体処理と同様である。ただし、設定処理で扱われる定数及びテーブルは、第1全体処理乃至第4全体処理と異なる。定数及びテーブルについての詳細は、後述する。
【0180】
<論理和処理例>(ステップSF)
ステップSFでは、情報処理装置10は、論理和処理を行う。以下、第5実施形態と様に、各端末20から送信される暗号文データである第5データD5と、第6データD6とを処理対象とする例で説明する。例えば、論理和処理は、以下に示す(12)式と等価の処理である。
【0181】
図27は、本発明の一実施形態に係る情報処理装置による論理和処理と等価な計算を示す式である。なお、(12)式におけるテーブル、各変数及び演算子は、(10)式と同一であるとする。
【0182】
さらに、(12)式及び以下の説明では、「|」は、論理和、いわゆる「OR」の計算を示す演算子である。
【0183】
例えば、情報処理装置10は、図示するような(12)式を以下のように実現する。
【0184】
図28は、本発明の一実施形態に係る情報処理装置による論理和処理の一例を示すフローチャートである。論理積処理と比較すると、ステップSE04がステップSF01となる点が異なる。以下、異なる点を中心に説明する。
【0185】
<第5変換データ及び第6変換データの論理和の計算例>(ステップSF01)
ステップSF01では、情報処理装置10は、第5変換データ及び第6変換データの論理和を計算する。すなわち、ステップSF01では、情報処理装置10は、ステップSE02による変換結果と、ステップSE03による変換結果との論理和を計算する。そして、第8テーブルT8による変換結果が論理和処理の出力結果OUTとなる。
【0186】
以上のような論理和処理が行われると、難読化される前のデータである第5平文データ及び第6平文データの論理和を計算した結果と等価の出力結果が得られる。以下、証明を示す。
【0187】
(証明)
図29は、本発明の一実施形態に係る情報処理装置による論理和処理の等価性を証明する式である。例えば、等価性は、図示する(13)式のように証明できる。
【0188】
(13)式によって証明するように、第5平文データ「DP5」を暗号化したデータと、第6平文データ「DP6」を暗号化したデータとを
図28に示す論理和処理によって処理した出力結果OUTは、第5平文データ「DP5」と、第6平文データ「DP6」とが平文の状態で、2つのデータの論理和を計算し、その後、暗号化したデータ「Enc(DP5|DP6)」と等価になる。
【0189】
以上のような論理和処理が、復号処理より以前にあらかじめ行われる。以下、第1全体処理と同様に復号処理が行われると、ユーザURは、平文データを参照できる。
【0190】
このようにすると、ユーザURは、平文データを参照することで、端末21と端末22が生成したデータの論理和の計算結果を知ることができる。
【0191】
なお、情報処理装置10は、出力結果OUTを否定(NOT)する計算を更に行ってもよい。このようにすると、情報処理装置10は、否定的論理和(NOR)の計算結果を得ることができる。
【0192】
<第5実施形態及び第6実施形態における情報処理装置の機能構成例>
図30は、本発明の一実施形態に係る第5実施形態及び第6実施形態における情報処理装置の機能構成例を示す機能ブロック図である。例えば、情報処理装置10は、入力部FN1と、第1記憶部FN2と、第2記憶部FN3と、第1変換部FN4と、第2変換部FN5と、計算部FN31と、第3変換部FN8とを含む機能構成である。
図21に示す機能構成と比較すると、剰余演算部FN7及び乗算部FN21がなく、計算部FN31が加わる点が異なる。一方で、端末20、出力端末30及び管理装置40等は、
図21と同様であるため、説明を省略する。
【0193】
入力部FN1は、第5データD5と、第6データD6とを入力する入力手順を行う。例えば、入力部FN1は、インタフェースHW3(
図2参照)等によって実現される。
【0194】
第1記憶部FN2は、第1記憶手順によって、第7テーブルT7を記憶する。例えば、第1記憶部FN2は、記憶装置HW2(
図2参照)等によって実現される。
【0195】
第2記憶部FN3は、第2記憶手順によって、第8テーブルT8を記憶する。例えば、第2記憶部FN3は、記憶装置HW2(
図2参照)等によって実現される。
【0196】
第1変換部FN4は、第7テーブルT7に基づいて、第5データD5を変換し、第5変換データDT5を生成する第1変換手順を行う。例えば、第1変換部FN4は、CPUHW1(
図2参照)等によって実現される。
【0197】
第2変換部FN5は、第7テーブルT7に基づいて、第6データD6を変換し、第6変換データDT6を生成する第2変換手順を行う。例えば、第2変換部FN5は、CPUHW1(
図2参照)等によって実現される。
【0198】
計算部FN31は、第3変換データDT3と、第4変換データDT4との論理積、論理和又はこれら両方を計算し、計算結果を第3変換部FN8に出力する計算手順を行う。例えば、計算部FN31は、CPUHW1(
図2参照)等によって実現される。
【0199】
第3変換部FN8は、第8テーブルT8に基づいて、計算部FN31による計算結果を変換し、出力結果OUTを出力端末30に送信する第3変換手順を行う。例えば、第3変換部FN8は、CPUHW1(
図2参照)等によって実現される。
【0200】
図示するように、各端末20及び出力端末30には、共通した鍵KYが送信される。このように、鍵KYが送信されると、端末20は、鍵KYに基づいて送信するデータを暗号化することができる。一方で、出力端末30は、鍵KYによって、出力結果OUTを復号することができる。
【0201】
まず、管理者ADの操作に基づいて、管理装置40は、鍵KYを生成する。さらに、管理者ADの操作に基づいて、管理装置40は、並替番号NM等の難読化パラメータを生成する。このように、並替番号NMが定まると、管理装置40は、テーブル生成部FN12によって第7テーブルT7及び第8テーブルT8を生成する。例えば、テーブル生成部FN12は、管理装置40が有する演算装置等によって実現される。
【0202】
このようにして生成される鍵KYは、
図22及び
図26に示す設定処理によって、各端末20及び出力端末30に送信される。同様に、並替番号NMに基づいて生成される第7テーブルT7及び第8テーブルT8が、
図22及び
図26に示す設定処理によって、情報処理装置10に送信される。
【0203】
そして、各端末20は、データ生成部FN10によって、平文データを生成する。例えば、データが計測結果である場合には、端末20が有するセンサによって計測が行われると、データ生成部FN10は、データを生成する。
【0204】
次に、各端末20は、データ生成部FN10が生成した平文データを暗号化部FN9によって難読化する。例えば、暗号化部FN9及びデータ生成部FN10は、各端末20が有する演算装置等によって実現される。このようにすると、各端末20によって、暗号文データが生成される。このようにして生成される第5データD5及び第6データD6等の暗号文データは、情報処理装置10に収集される。例えば、
図22及び
図26に示すデータの収集処理は、入力部FN1、暗号化部FN9及びデータ生成部FN10等によって実現される。
【0205】
図示するように、第1変換部FN4による第1変換、第2変換部FN5による第2変換、計算部FN31による論理積の計算及び第3変換部FN8による第3変換が行われると、情報処理装置10は、
図22に示す論理積処理を実現できる。また、論理積処理は、例えば、
図24に示すような処理である。このようにすると、(11)式(
図25参照)に証明するように、情報処理装置10は、平文データの論理積を計算し、計算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置10は、複数のデータを論理積を計算することができる。
【0206】
図示するように、第1変換部FN4による第1変換、第2変換部FN5による第2変換、計算部FN31による論理和の計算及び第3変換部FN8による第3変換が行われると、情報処理装置10は、
図26に示す論理和処理を実現できる。また、論理和処理は、例えば、
図26に示すような処理である。このようにすると、(13)式(
図29参照)に証明するように、情報処理装置10は、平文データの論理和を計算し、計算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置10は、複数のデータを論理和を計算することができる。
【0207】
また、情報処理装置10は、
図22に示す論理積処理及び
図26に示す論理和処理を両方とも行うのが望ましい。すなわち、情報処理装置10は、各端末20が生成したデータの論理和を計算した結果と、各端末20が生成したデータの論理積を計算した結果と等価となるどちらの暗号文データも出力端末30に出力できる。このように、情報処理装置10が論理積処理及び論理和処理の両方を行う場合には、情報処理装置10は、図示するように、各テーブルを記憶する構成であるのが望ましい。
【0208】
具体的には、情報処理装置10は、図示するように、論理積処理及び論理和処理で、第7テーブルT7及び第8テーブルT8を共通して用いるのが望ましい。つまり、図示するように、情報処理装置10は、論理積処理及び論理和処理の両方を行う場合であっても、第1記憶部FN2によって、第7テーブルT7を1個記憶する。同様に、情報処理装置10は、論理積処理及び論理和処理の両方を行う場合であっても、第2記憶部FN3によって、第8テーブルT8を1個記憶する。したがって、第1変換部FN4は、論理積処理を行う場合でも、論理和処理を行う場合でも、同一の第7テーブルT7及び第8テーブルT8を用いる。
【0209】
そして、計算部FN31は、論理積処理を行うか、又は、論理和処理を行うかによって、論理積の計算を行うか、論理和の計算を行うかを切り替える。
【0210】
このような構成であると、第7テーブルT7及び第8テーブルT8が共通であるため、情報処理装置10は、第7テーブルT7及び第8テーブルT8を記憶する記憶領域が小さくできる。
【0211】
《第7実施形態》
第7実施形態は、例えば、第1実施形態と同様の全体構成によって実現できる。したがって、第7実施形態の全体構成は、第1実施形態と同様の構成であるとし、重複する説明を省略する。また、第7実施形態における情報処理装置のハードウェア構成は、例えば、第1実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【0212】
一方で、第7実施形態は、全体処理が第1実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【0213】
<第7全体処理例>
図31は、本発明の一実施形態に係る情報処理システムによる第7全体処理例を示すシーケンス図である。第1実施形態と比較すると、第5全体処理は、加算処理(ステップSA)が排他的論理和処理(ステップSG)となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第1全体処理と同様である。ただし、設定処理で扱われる定数及びテーブルは、第1全体処理乃至第4全体処理と異なる。定数及びテーブルについての詳細は、後述する。
【0214】
<排他的論理和処理例>(ステップSG)
ステップSGでは、情報処理装置10は、排他的論理和処理を行う。以下、各端末20から送信される暗号文データである第7データD7と、第8データD8とを処理対象とする例で説明する。例えば、排他的論理和処理は、以下に示す(14)式と等価の処理である。
【0215】
なお、(14)式において、「Enc」及び「Dec」は、(1)式と同様である。また、「T」は、(1)式と同様にテーブルを示す。さらに、「DP」及び「DC」は、(1)式と同様に、平文データ及び暗号文データを示す。また、「Sort(NM,x)」及び「InvSort(NM,x)」は、(11)式と同様に、並替関数及び逆関数を示す。さらにまた、「NM」は、(11)式と同様に、並替番号である。
【0216】
(14)式において、第6定数「C6」及び第7定数「C7」は、乱数生成関数等を実行して生成される乱数等である。そして、(1)式と同様に、第6定数「C6」及び第7定数「C7」は、「0」乃至「N−1」のうち、いずれかの値である。
【0217】
さらに、(14)式及び以下の説明では、「^」は、排他的論理和、いわゆる「XOR」の計算を示す演算子である。
【0218】
例えば、情報処理装置10は、図示するような(14)式を以下のように実現する。
【0219】
図33は、本発明の一実施形態に係る情報処理装置による排他的論理和処理の一例を示すフローチャートである。
【0220】
<複数の暗号文データの入力例>(ステップSG01)
ステップSG01では、情報処理装置10は、複数の暗号文データを入力する。例えば、ステップS203によって送信される暗号文データである第7データD7及び第8データD8を受信すると、情報処理装置10は、複数の暗号文データを入力できる。このようにして入力される暗号文データが、(14)式では、「DC7」及び「DC8」となる。
【0221】
<第9テーブルに基づく第1変換例>(ステップSG02)
ステップSG02では、情報処理装置10は、第9テーブルに基づいて、第7データを変換する。図示するように、情報処理装置10は、ステップSG01で入力される複数の暗号文データのうち、一方の暗号文データである第7データD7を第9テーブルT9を用いて変換する。
【0222】
また、(14)式に示すように、第9テーブルT9は、変換対象となる第7データD7を復号したデータ、すなわち、第7データD7の平文データを並替関数によって並べ替えるのと等価な変換をするためのテーブルである。なお、どのような並べ替えパターンとなるかは、並替番号NMによって定まる。以下、第7データD7を第9テーブルT9によって変換した結果を示すデータを第7変換データDT7という。
【0223】
<第10テーブルに基づく第2変換例>(ステップSG03)
ステップSG03では、情報処理装置10は、第10テーブルに基づいて、第8データを変換する。図示するように、情報処理装置10は、ステップSG01で入力される複数の暗号文データのうち、ステップSG02で用いるデータ、すなわち、第7データD7とは異なる暗号文データである第8データD8を第10テーブルT10を用いて変換する。
【0224】
また、(14)式に示すように、第10テーブルT10は、変換対象となる第8データD8を復号したデータ、すなわち、第8データD8の平文データを並替関数によって並べ替えるのと等価な変換をするためのテーブルである。以下、第8データD8を第10テーブルT10によって変換した結果を示すデータを第8変換データDT8という。
【0225】
<第7変換データ及び第8変換データの排他的論理和の計算例>(ステップSG04)
ステップSG04では、情報処理装置10は、第7変換データ及び第8変換データの排他的論理和を計算する。すなわち、ステップSG04では、情報処理装置10は、ステップSG02による変換結果と、ステップSG03による変換結果との排他的論理和を計算する。
【0226】
<第11テーブルに基づく第3変換例>(ステップSG05)
ステップSG05では、情報処理装置10は、第11テーブルに基づいて、データを変換する。図示するように、変換対象は、ステップSG04による排他的論理和の結果を示すデータである。
【0227】
また、(14)式に示すように、第11テーブルT11は、変換対象となるデータを復号したデータ、すなわち、排他的論理和の結果を示すデータの平文データを並替関数の逆関数によって並べ替えるのと等価な変換をするためのテーブルである。そして、第11テーブルT11による変換結果が排他的論理和処理の出力結果OUTとなる。
【0228】
以上のような排他的論理和処理が行われると、難読化される前のデータである第7平文データ及び第8平文データの排他的論理和を計算した結果と等価の出力結果が得られる。以下、証明を示す。
【0229】
(証明)
図34は、本発明の一実施形態に係る情報処理装置による排他的論理和処理の等価性を証明する式である。例えば、等価性は、図示する(15)式のように証明できる。なお、排他的論理和の計算には、「x=x^A^A」となる性質がある。
【0230】
(15)式によって証明するように、第7平文データ「DP7」を暗号化したデータと、第8平文データ「DP8」を暗号化したデータとを
図31に示す排他的論理和処理によって処理した出力結果OUTは、第7平文データ「DP7」と、第8平文データ「DP8」が平文の状態で、2つのデータの排他的論理和処理を計算し、その後、暗号化したデータ「Enc(DP7^DP8)」と等価になる。
【0231】
以上のような排他的論理和処理が、復号処理より以前にあらかじめ行われる。以下、第1全体処理と同様に復号処理が行われると、ユーザURは、平文データを参照できる。
【0232】
このようにすると、ユーザURは、平文データを参照することで、端末21と端末22が生成したデータの排他的論理和の計算結果を知ることができる。
【0233】
<第7実施形態における情報処理装置の機能構成例>
図35は、本発明の一実施形態に係る第7実施形態における情報処理装置の機能構成例を示す機能ブロック図である。例えば、情報処理装置10は、入力部FN1と、第1記憶部FN2と、第2記憶部FN3と、第1変換部FN4と、第2変換部FN5と、計算部FN31と、第3変換部FN8とを含む機能構成である。一方で、端末20、出力端末30及び管理装置40等は、
図21と同様であるため、説明を省略する。
【0234】
入力部FN1は、第7データD7と、第8データD8とを入力する入力手順を行う。例えば、入力部FN1は、インタフェースHW3(
図2参照)等によって実現される。
【0235】
第1記憶部FN2は、第1記憶手順によって、第9テーブルT9と、第10テーブルT10とを記憶する。例えば、第1記憶部FN2は、記憶装置HW2(
図2参照)等によって実現される。
【0236】
第2記憶部FN3は、第2記憶手順によって、第11テーブルT11を記憶する。例えば、第2記憶部FN3は、記憶装置HW2(
図2参照)等によって実現される。
【0237】
第1変換部FN4は、第9テーブルT9に基づいて、第7データD7を変換し、第7変換データDT7を生成する第1変換手順を行う。例えば、第1変換部FN4は、CPUHW1(
図2参照)等によって実現される。
【0238】
第2変換部FN5は、第10テーブルT10に基づいて、第8データD8を変換し、第8変換データDT8を生成する第2変換手順を行う。例えば、第2変換部FN5は、CPUHW1(
図2参照)等によって実現される。
【0239】
計算部FN31は、第7変換データDT7と、第8変換データDT8との排他的論理和を計算し、計算結果を第3変換部FN8に出力する計算手順を行う。例えば、計算部FN31は、CPUHW1(
図2参照)等によって実現される。
【0240】
第3変換部FN8は、第11テーブルT11に基づいて、計算部FN31による計算結果を変換し、出力結果OUTを出力端末30に送信する第3変換手順を行う。例えば、第3変換部FN8は、CPUHW1(
図2参照)等によって実現される。
【0241】
図示するように、各端末20及び出力端末30には、共通した鍵KYが送信される。このように、鍵KYが送信されると、端末20は、鍵KYに基づいて送信するデータを暗号化することができる。一方で、出力端末30は、鍵KYによって、出力結果OUTを復号することができる。
【0242】
まず、管理者ADの操作に基づいて、管理装置40は、鍵KYを生成する。さらに、管理者ADの操作に基づいて、管理装置40は、並替番号NM、第6定数「C6」及び第7定数「C7」等の難読化パラメータを生成する。このように、並替番号NM、第6定数「C6」及び第7定数「C7」が定まると、管理装置40は、テーブル生成部FN12によって第9テーブルT9、第10テーブルT10及び第11テーブルT11を生成する。例えば、テーブル生成部FN12は、管理装置40が有する演算装置等によって実現される。
【0243】
このようにして生成される鍵KYは、
図31に示す設定処理によって、各端末20及び出力端末30に送信される。同様に、並替番号NM、第6定数「C6」及び第7定数「C7」に基づいて生成される第9テーブルT9、第10テーブルT10及び第11テーブルT11が、
図31に示す設定処理によって、情報処理装置10に送信される。
【0244】
そして、各端末20は、データ生成部FN10によって、平文データを生成する。例えば、データが計測結果である場合には、端末20が有するセンサによって計測が行われると、データ生成部FN10は、データを生成する。
【0245】
次に、各端末20は、データ生成部FN10が生成した平文データを暗号化部FN9によって暗号化する。例えば、暗号化部FN9及びデータ生成部FN10は、各端末20が有する演算装置等によって実現される。このようにすると、各端末20によって、暗号文データが生成される。このようにして生成される第7データD7及び第8データD8等の暗号文データは、情報処理装置10に収集される。例えば、
図31に示すデータの収集処理は、入力部FN1、暗号化部FN9及びデータ生成部FN10等によって実現される。
【0246】
図示するように、第1変換部FN4による第1変換、第2変換部FN5による第2変換、計算部FN31による排他的論理和の計算及び第3変換部FN8による第3変換が行われると、情報処理装置10は、
図31に示す排他的論理和処理を実現できる。また、排他的論理和処理は、例えば、
図33に示すような処理である。このようにすると、(15)式(
図34参照)に証明するように、情報処理装置10は、平文データの排他的論理和を計算し、計算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置10は、複数のデータの排他的論理和を計算することができる。
【0247】
《効果例》
図36は、本発明の一実施形態に係る情報処理装置によって行われる各全体処理の効果例を示すブロック図である。まず、情報処理システム1では、管理装置40によってセキュアな状態で、鍵KY及び各定数等の難読化パラメータPARが、生成される。このように、鍵KY及び難読化パラメータPARがあると、管理装置40は、テーブルTBを生成することができる。そして、情報処理装置10には、生成されたテーブルTBが提供される。
【0248】
一方で、各端末20には、鍵KYが設定される。そして、各端末20は、各端末20が計測等によって生成した平文データDNを鍵KYに基づいて、それぞれの平文データDNを暗号化し、暗号文データDSを生成する。このようにすると、平文データDNは、難読な状態となる。したがって、インターネット上等であっても、暗号文データDSの状態であれば、情報漏洩等のリスクが少ない。続いて、各端末20は、それぞれの暗号文データDSを情報処理装置10に送信する。このようにすると、情報処理装置10には、統計処理等の対象となる暗号文データDSが収集される。
【0249】
情報処理装置10は、ネットワーク上において、様々な演算サービスを提供できる。具体的には、情報処理装置10は、いわゆるクラウドサービス等の提供を行うサーバである。また、サービスは、例えば、加算、減算、乗算、除算若しくはこれらの組み合わせ等の四則演算である。さらに、サービスは、論理積、論理和、否定的論理積、否定的論理和、排他的論理和、否定若しくはこれらの組み合わせ等の論理演算等である。このように、情報処理装置10が四則演算及び論理演算等を行うと、ユーザURは、複数のデータの統計結果等が得られる。
【0250】
このようなサービス形態では、情報処理装置10は、様々なデータを扱う場合がある。すなわち、情報処理装置10は、複数の利用者に対して、サービスを提供する場合がある。
【0251】
例えば、情報処理装置10が複数の利用者に使用される場合では、情報処理装置10が扱うデータは、平文データであると、何らかの事故又はセキュリティホール等によって、データが他の利用者等に公開された場合に、情報漏洩等のリスクが大きい。そこで、情報処理装置10、つまり、クラウド側では、各データは、難読な状態で処理されるのが望ましい。
【0252】
上記に説明する各実施形態に係る情報処理装置10は、テーブルTBが入力されると、各データが難読な状態、すなわち、暗号文データDSの状態で、各処理が実行できる。このようにすると、情報処理装置10は、複数の暗号文データDSから、四則演算及び論理演算等を行って、処理後暗号文データDSAを生成できる。
【0253】
次に、出力端末30は、処理後暗号文データDSAを情報処理装置10からダウンロードする。そして、出力端末30は、あらかじめ設定される鍵KYに基づいて、処理後暗号文データDSAを復号し、処理後平文データDNAを取得する。
【0254】
処理後平文データDNAは、複数の平文データDNに対して、四則演算及び論理演算等が行われた結果と等価の結果を示すデータである。したがって、ユーザURは、処理後平文データDNAを参照すると、複数の平文データDNを統計処理した結果等を知ることができる。
【0255】
また、以上のような実施形態であると、各データは、AES方式等で推奨される暗号化アルゴリズムによって、難読な状態にできる。IoT(Internet of Things)環境等では、独自の方式、RSA(Rivest Shamir Adleman)方式及び準同型暗号アルゴリズムによる難読化は、鍵又はアルゴリズムが破られる可能性が高く、セキュリティが十分でない場合がある。
【0256】
さらに、RSA方式等は、暗号化アルゴリズムを実行するのに、端末に大きなリソースが必要となる場合がある。そのため、IoT環境等において、端末が、いわゆる組み込み機器等であると、端末は、リソースを補充する必要が出てくる。ゆえに、RSA方式等を用いると、リソースの補充等によって、コストが増大する場合がある。
【0257】
一方で、本発明に係る各実施形態によれば、AES方式等が採用できる。すなわち、本発明に係る各実施形態によれば、暗号化方式等に依存せず、情報処理装置は、四則演算及び論理演算等の処理が可能となる。ゆえに、暗号化アルゴリズムを実行する端末のリソース及びスペック等に合わせた暗号化アルゴリズム及び復号アルゴリズムが、柔軟に適用できる。
【0258】
《テーブルについて》
各テーブルは、例えば、以下のようなデータ量となる。
【0259】
図37は、本発明の一実施形態に係るテーブルのサイズ例を示す表である。図示するように、各テーブルのデータ量は、処理対象となるデータのビット長、すなわち、平文データのビット数に基づいて定まる。具体的には、図示するように、テーブルのデータ量は、「2
n×n÷8」(byte)となる。より具体的には、処理対象となるデータが「8bit」、「16bit」、「24bit」及び「32bit」である場合には、テーブルのデータ量は、図示するように、「256byte」、「128K(キロ)byte」、「48M(メガ)byte」及び「16G(ギガ)byte」となる。
【0260】
そこで、上記の通り、加算及び減算、乗算及び除算、論理積及び論理和を行う情報処理装置では、テーブルを共通化させるのが望ましい。このように、テーブルを共通化させると、情報処理装置は、図示するデータ量を削減することができる。
【0261】
図38は、本発明の一実施形態に係る処理の種類ごとの難読化の度合いを示す表である。本発明に係る実施形態では、難読化の度合いは、図示するような値となる。各実施形態において、各テーブルに含まれる各定数が特定できれば、暗号文データに対する平文データの候補が抽出できる場合がある。しかし、図示するように、各テーブルから、各定数を探索するための計算量、すなわち、難読化の度合いは、図示するように、いずれもnビット以上となる。そのため、平文データと、暗号文データとの対を検索するより、難読化の度合いが高い。また、暗号文データに対する平文データの候補が抽出できても、鍵の探索には繋がりにくい。
【0262】
一方で、例えば、AES方式におけるカウンタモード(SP800−38A)による暗号化では、鍵長、すなわち、暗号化の強度は、128ビット乃至256ビットとなる。しかし、探索可能な範囲は、平文データ又は暗号文データの32ビットである。
【0263】
したがって、本発明の一実施形態に係る情報処理装置は、高い難読化の度合いを確保することができる。ゆえに、本発明の一実施形態に係る情報処理装置は、データのセキュリティを向上させることができる。
【0264】
《その他の実施形態》
各実施形態は、組み合わせて実施されてもよい。
【0265】
また、各処理は、情報処理装置又は1つ以上の情報処理装置を有する情報処理システム等のコンピュータに情報処理方法を実行させるためのプログラムによって実現されてもよい。また、プログラムは、コンピュータが読み取り可能な記録媒体又はネットワークを介して、配布が可能である。なお、記録媒体は、例えば、光ディスク、フラッシュメモリ又は補助記憶装置等である。
【0266】
さらに、上記に説明した各処理は、図示する順序で行われなくともよい。すなわち、各処理は、図示するタイミング以外で行われてもよい。また、各処理は、複数の装置によって、冗長、分散、並列、仮想化又はこれらを組み合わせて行われてもよい。
【0267】
また、各装置は、ネットワーク等で接続される2以上の装置であってもよい。
【0268】
以上、本発明の好ましい実施例について詳述したが、本発明は、上述の実施形態に限定されず、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。