(57)【要約】【課題】データのセキュリティを向上させることを目的とする。【解決手段】難読化させた複数の暗号文データを処理する情報処理装置は、前記複数の暗号文データである第１データ及び第２データを入力する入力部と、前記第１データを変換させる第１テーブル及び前記第２データを変換させる第２テーブルを記憶する第１記憶部と、前記第１テーブルに基づいて、前記第１データを第１変換データに変換する第１変換部と、前記第２テーブルに基づいて、前記第２データを第２変換データに変換する第２変換部と、前記第１変換データと、前記第２変換データとを加算して加算結果を算出する加算部と、基数を２とし、かつ、指数を前記暗号文データのビット数とする冪乗で、前記加算結果を除算した余りを取得する剰余演算部と、前記余りを変換する第３テーブルを記憶する第２記憶部と、前記第３テーブルに基づいて、前記余りを変換して出力結果を出力する第３変換部とを含むことで上記課題を解決する。【選択図】図１２
2018182407.tif 000002
【特許請求の範囲】
【請求項１】
難読化させた複数の暗号文データを処理する情報処理装置であって、
前記複数の暗号文データである第１データ及び第２データを入力する入力部と、
前記第１データを変換させる第１テーブル及び前記第２データを変換させる第２テーブルを記憶する第１記憶部と、
前記第１テーブルに基づいて、前記第１データを第１変換データに変換する第１変換部と、
前記第２テーブルに基づいて、前記第２データを第２変換データに変換する第２変換部と、
前記第１変換データと、前記第２変換データとを加算して加算結果を算出する加算部と、
基数を２とし、かつ、指数を前記暗号文データのビット数とする冪乗で、前記加算結果を除算した余りを取得する剰余演算部と、
前記余りを変換する第３テーブルを記憶する第２記憶部と、
前記第３テーブルに基づいて、前記余りを変換して出力結果を出力する第３変換部と
を含む情報処理装置。
【請求項２】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第１平文データと、第２平文データとを加算した結果と等価であり、
前記第１テーブルは、前記第１データを復号した第１平文データに第１定数を乗じた乗算結果に、第２定数を加算した結果となる前記第１変換データを示し、
前記第２テーブルは、前記第２データを復号した第２平文データに前記第１定数を乗じた乗算結果に、前記第２定数とは異なる第３定数を加算した結果となる前記第２変換データを示し、
前記第３テーブルは、前記余りから前記第２定数及び前記第３定数を減算した減算結果を前記第１定数で除算した結果となる前記出力結果を示す
請求項１に記載の情報処理装置。
【請求項３】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第１平文データと、第２平文データとを減算した結果と等価であり、
前記第１テーブルは、前記第１データを復号した第１平文データに第１定数を乗じた乗算結果に、第２定数を加算した結果となる前記第１変換データを示し、
前記第２テーブルは、前記第２データを復号した第２平文データに前記第１定数を乗じ、かつ、マイナス１倍した乗算結果に、前記第２定数とは異なる第３定数を加算した結果となる前記第２変換データを示し、
前記第３テーブルは、前記余りから前記第２定数及び前記第３定数を減算した減算結果を前記第１定数で除算した結果となる前記出力結果を示す
請求項１に記載の情報処理装置。
【請求項４】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第１平文データと、第２平文データとを加算した結果と等価又は前記第１平文データと、前記第２平文データとを減算した結果と等価であり、
前記第１テーブル及び前記第３テーブルを共通して用い、
前記第１記憶部は、異なる複数の前記第２テーブルを記憶する
請求項１に記載の情報処理装置。
【請求項５】
難読化させた複数の暗号文データを処理する情報処理装置であって、
前記複数の暗号文データである第３データ及び第４データを入力する入力部と、
前記第３データを変換させる第４テーブル及び前記第４データを変換させる第５テーブルを記憶する第１記憶部と、
前記第４テーブルに基づいて、前記第３データを第３変換データに変換する第１変換部と、
前記第５テーブルに基づいて、前記第４データを第４変換データに変換する第２変換部と、
前記第３変換データと、前記第４変換データとを乗算して乗算結果を算出する乗算部と、
基数を２とし、かつ、指数を前記暗号文データのビット数とする冪乗で、前記乗算結果を除算した余りを取得する剰余演算部と、
前記余りを変換する第６テーブルを記憶する第２記憶部と、
前記第６テーブルに基づいて、前記余りを変換して出力結果を出力する第３変換部と
を含む情報処理装置。
【請求項６】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第３平文データと、第４平文データとを乗算した結果と等価であり、
前記第４テーブルは、前記第３データを復号した第３平文データに、第４定数を乗じた結果となる前記第３変換データを示し、
前記第５テーブルは、前記第４データを復号した第４平文データに、前記第４定数とは異なる第５定数を乗じた結果となる前記第４変換データを示し、
前記第６テーブルは、前記余りを前記第４定数及び前記第５定数で除算した結果となる前記出力結果を示す
請求項５に記載の情報処理装置。
【請求項７】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第３平文データと、第４平文データとを除算した結果と等価であり、
前記第４テーブルは、前記第３データを復号した第３平文データに、第４定数を乗じた結果となる前記第３変換データを示し、
前記第５テーブルは、前記第４データを復号した第４平文データの逆数に、前記第４定数とは異なる第５定数を乗じた結果となる前記第４変換データを示し、
前記第６テーブルは、前記余りを前記第４定数及び前記第５定数で除算した結果となる前記出力結果を示す
請求項５に記載の情報処理装置。
【請求項８】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第３平文データと、第４平文データとを乗算した結果と等価又は前記第３平文データと、前記第４平文データとを除算した結果と等価であり、
前記第４テーブル及び前記第６テーブルを共通して用い、
前記第１記憶部は、異なる複数の前記第５テーブルを記憶する
請求項５に記載の情報処理装置。
【請求項９】
難読化させた複数の暗号文データを処理する情報処理装置であって、
前記複数の暗号文データである第５データ及び第６データを入力する入力部と、
前記第５データ及び前記第６データを変換させる第７テーブルを記憶する第１記憶部と、
前記第７テーブルに基づいて、前記第５データを第５変換データに変換する第１変換部と、
前記第７テーブルに基づいて、前記第６データを第６変換データに変換する第２変換部と、
前記第５変換データ及び前記第６変換データの論理積、論理和又はこれら両方を計算した計算結果を算出する計算部と、
前記計算結果を変換する第８テーブルを記憶する第２記憶部と、
前記第８テーブルに基づいて、前記計算結果を変換して出力結果を出力する第３変換部と
を含む情報処理装置。
【請求項１０】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第５平文データ及び第６平文データの論理積と等価であり、
前記計算部は、前記第５変換データ及び前記第６変換データの論理積を計算し、
前記第７テーブルは、前記第５データ及び前記第６データを復号した第５平文データ及び第６平文データを構成する複数のビットの並べ替えパターンを特定できる並替番号に基づいて、前記複数のビットを並べ替えた結果となる前記第６変換データを示し、
前記第８テーブルは、前記並替番号に基づいて、前記第７テーブルに基づく変換の逆変換となる前記出力結果を示す
請求項９に記載の情報処理装置。
【請求項１１】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第５平文データ及び第６平文データの論理和と等価であり、
前記計算部は、前記第５変換データ及び前記第６変換データの論理和を計算し、
前記第７テーブルは、前記第５データ及び前記第６データを復号した第５平文データ及び第６平文データを構成する複数のビットの並べ替えパターンを特定できる並替番号に基づいて、前記複数のビットを並べ替えた結果となる前記第６変換データを示し、
前記第８テーブルは、前記並替番号に基づいて、前記第７テーブルに基づく変換の逆変換となる前記出力結果を示す
請求項９に記載の情報処理装置。
【請求項１２】
前記出力結果は、前記複数の暗号文データが難読化される前のデータである第５平文データ及び第６平文データの論理積と等価、かつ、論理和と等価の両方の結果を示し、
前記第７テーブル及び前記第８テーブルを共通して用いる
請求項９に記載の情報処理装置。
【請求項１３】
難読化させた複数の暗号文データの排他的論理和を計算する処理を行う情報処理装置であって、
前記複数の暗号文データである第７データ及び第８データを入力する入力部と、
前記第７データを変換させる第９テーブル及び前記第８データを変換させる第１０テーブルを記憶する第１記憶部と、
前記第９テーブルに基づいて、前記第７データを第７変換データに変換する第１変換部と、
前記第１０テーブルに基づいて、前記第８データを第８変換データに変換する第２変換部と、
前記第７変換データ及び前記第８変換データの排他的論理和を計算した計算結果を算出する計算部と、
前記計算結果を変換する第１１テーブルを記憶する第２記憶部と、
前記第１１テーブルに基づいて、前記計算結果を変換して出力結果を出力する第３変換部と
を含む情報処理装置。
【請求項１４】
前記第９テーブルは、前記第７データを復号した第７平文データを構成する複数のビットの並べ替えパターンを特定できる並替番号に基づいて並べ替えた結果と、第６定数との排他的論理和となる前記第７変換データを示し、
前記第１０テーブルは、前記第８データを復号した第８平文データを構成する複数のビットを前記並替番号に基づいて並べ替えた結果と、前記第６定数とは異なる第７定数との排他的論理和となる前記第８変換データを示し、
前記第１１テーブルは、前記計算結果に対して前記第９テーブル又は前記第１０テーブルによる変換の逆変換を行った結果と、前記第６定数と、前記第７定数との排他的論理和となる前記出力結果を示す
請求項１３に記載の情報処理装置。
【請求項１５】
難読化させた複数の暗号文データを処理するコンピュータに情報処理方法を実行させるためのプログラムであって、
前記コンピュータが、前記複数の暗号文データである第１データ及び第２データを入力する入力手順と、
前記コンピュータが、前記第１データを変換させる第１テーブル及び前記第２データを変換させる第２テーブルを記憶する第１記憶手順と、
前記コンピュータが、前記第１テーブルに基づいて、前記第１データを第１変換データに変換する第１変換手順と、
前記コンピュータが、前記第２テーブルに基づいて、前記第２データを第２変換データに変換する第２変換手順と、
前記コンピュータが、前記第１変換データと、前記第２変換データとを加算して加算結果を算出する加算手順と、
前記コンピュータが、基数を２とし、かつ、指数を前記暗号文データのビット数とする冪乗で、前記加算結果を除算した余りを取得する剰余演算手順と、
前記コンピュータが、前記余りを変換する第３テーブルを記憶する第２記憶手順と、
前記コンピュータが、前記第３テーブルに基づいて、前記余りを変換して出力結果を出力する第３変換手順と
を実行させるためのプログラム。
【請求項１６】
難読化させた複数の暗号文データを処理する情報処理装置と、前記情報処理装置と接続する出力端末とを有する情報処理システムであって、
前記情報処理装置は、
前記複数の暗号文データである第１データ及び第２データを入力する入力部と、
前記第１データを変換させる第１テーブル及び前記第２データを変換させる第２テーブルを記憶する第１記憶部と、
前記第１テーブルに基づいて、前記第１データを第１変換データに変換する第１変換部と、
前記第２テーブルに基づいて、前記第２データを第２変換データに変換する第２変換部と、
前記第１変換データと、前記第２変換データとを加算して加算結果を算出する加算部と、
基数を２とし、かつ、指数を前記暗号文データのビット数とする冪乗で、前記加算結果を除算した余りを取得する剰余演算部と、
前記余りを変換する第３テーブルを記憶する第２記憶部と、
前記第３テーブルに基づいて、前記余りを変換して出力結果を出力する第３変換部と
を含み、
前記出力端末は、
前記出力結果を復号する復号部
を含む
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム及びプログラムに関する。
【背景技術】
【０００２】
従来、データを暗号化することによって、データを難読化させ、データを情報漏洩等から守る方法が知られている。
【０００３】
例えば、複数のデータを集計処理する場合等において、システムが、乱数に基づいてデータを暗号化して秘匿データを生成し、秘匿データの状態で集計する。このようにして、システムが、データを秘匿な状態で集計処理し、かつ、集計結果も秘匿な状態にすることで、セキュリティを向上させる方法が知られている（例えば、特許文献１等を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２０５５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の方法では、データは、独自の方式で暗号化されたり、又は、準同型暗号によって暗号化されたりする。そのため、従来の方法では、データが暗号化されても、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等のアルゴリズムによってデータが難読化された状態より、セキュリティが悪い場合がある。具体的には、従来の方法は、難読化に用いる鍵が特定されたり、又は、暗号化並びに復号のアルゴリズムが解読されたりしてしまうことが多い。ゆえに、従来の方法では、データの難読性が低い場合がある。
【０００６】
本発明の１つの側面は、このような課題に鑑みてなされたものであり、データの難読性を高くすることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一実施形態における、難読化させた複数の暗号文データを処理する情報処理装置は、
前記複数の暗号文データである第１データ及び第２データを入力する入力部と、
前記第１データを変換させる第１テーブル及び前記第２データを変換させる第２テーブルを記憶する第１記憶部と、
前記第１テーブルに基づいて、前記第１データを第１変換データに変換する第１変換部と、
前記第２テーブルに基づいて、前記第２データを第２変換データに変換する第２変換部と、
前記第１変換データと、前記第２変換データとを加算して加算結果を算出する加算部と、
基数を２とし、かつ、指数を前記暗号文データのビット数とする冪乗で、前記加算結果を除算した余りを取得する剰余演算部と、
前記余りを変換する第３テーブルを記憶する第２記憶部と、
前記第３テーブルに基づいて、前記余りを変換して出力結果を出力する第３変換部と
を含む。
【発明の効果】
【０００８】
本発明によれば、データの難読性を高くすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る情報処理装置を利用した情報処理システムの一例を示す概念図である。
【図２】本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【図３】本発明の一実施形態に係る情報処理システムによる第１全体処理例を示すシーケンス図である。
【図４】本発明の一実施形態に係る情報処理装置による加算処理と等価な計算を示す式である。
【図５】本発明の一実施形態に係る情報処理装置による加算処理の一例を示すフローチャートである。
【図６】本発明の一実施形態に係る情報処理装置による加算処理の等価性を証明する式である。
【図７】本発明の一実施形態に係る定理を示す式である。
【図８】本発明の一実施形態に係る情報処理システムによる第２全体処理例を示すシーケンス図である。
【図９】本発明の一実施形態に係る情報処理装置による減算処理と等価な計算を示す式である。
【図１０】本発明の一実施形態に係る情報処理装置による減算処理の一例を示すフローチャートである。
【図１１】本発明の一実施形態に係る情報処理装置による減算処理の等価性を証明する式である。
【図１２】本発明の一実施形態に係る第１実施形態及び第２実施形態における情報処理装置の機能構成例を示す機能ブロック図である。
【図１３】本発明の一実施形態に係る情報処理システムによる第３全体処理例を示すシーケンス図である。
【図１４】本発明の一実施形態に係る情報処理装置による乗算処理と等価な計算を示す式である。
【図１５】本発明の一実施形態に係る情報処理装置による乗算処理の一例を示すフローチャートである。
【図１６】本発明の一実施形態に係る情報処理装置による乗算処理の等価性を証明する式である。
【図１７】本発明の一実施形態に係る情報処理システムによる第４全体処理例を示すシーケンス図である。
【図１８】本発明の一実施形態に係る情報処理装置による除算処理と等価な計算を示す式である。
【図１９】本発明の一実施形態に係る情報処理装置による除算処理の一例を示すフローチャートである。
【図２０】本発明の一実施形態に係る情報処理装置による除算処理の等価性を証明する式である。
【図２１】本発明の一実施形態に係る第３実施形態及び第４実施形態における情報処理装置の機能構成例を示す機能ブロック図である。
【図２２】本発明の一実施形態に係る情報処理システムによる第５全体処理例を示すシーケンス図である。
【図２３】本発明の一実施形態に係る情報処理装置による論理積処理と等価な計算を示す式である。
【図２４】本発明の一実施形態に係る情報処理装置による論理積処理の一例を示すフローチャートである。
【図２５】本発明の一実施形態に係る情報処理装置による論理積処理の等価性を証明する式である。
【図２６】本発明の一実施形態に係る情報処理システムによる第６全体処理例を示すシーケンス図である。
【図２７】本発明の一実施形態に係る情報処理装置による論理和処理と等価な計算を示す式である。
【図２８】本発明の一実施形態に係る情報処理装置による論理和処理の一例を示すフローチャートである。
【図２９】本発明の一実施形態に係る情報処理装置による論理和処理の等価性を証明する式である。
【図３０】本発明の一実施形態に係る第５実施形態及び第６実施形態における情報処理装置の機能構成例を示す機能ブロック図である。
【図３１】本発明の一実施形態に係る情報処理システムによる第７全体処理例を示すシーケンス図である。
【図３２】本発明の一実施形態に係る情報処理装置による排他的論理和処理と等価な計算を示す式である。
【図３３】本発明の一実施形態に係る情報処理装置による排他的論理和処理の一例を示すフローチャートである。
【図３４】本発明の一実施形態に係る情報処理装置による排他的論理和処理の等価性を証明する式である。
【図３５】本発明の一実施形態に係る第７実施形態における情報処理装置の機能構成例を示す機能ブロック図である。
【図３６】本発明の一実施形態に係る情報処理装置によって行われる各全体処理の効果例を示すブロック図である。
【図３７】本発明の一実施形態に係るテーブルのサイズ例を示す表である。
【図３８】本発明の一実施形態に係る処理の種類ごとの難読化の度合いを示す表である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付し、重複した説明を省く。
【００１１】
《第１実施形態》
＜全体構成例＞
図１は、本発明の一実施形態に係る情報処理装置を利用した情報処理システムの一例を示す概念図である。例えば、情報処理装置１０は、以下のような全体構成の情報処理システム１に使用される。図示するように、情報処理システム１は、複数の端末２０と、情報処理装置１０とを含む構成である。
【００１２】
また、図示するように、情報処理システム１は、各端末２０及び情報処理装置１０を管理する管理者ＡＤが使用する管理装置４０と、サービスを提供する先の例であるユーザＵＲが使用する出力端末３０とを更に有してもよい。
【００１３】
端末２０は、例えば、計測機器、携帯端末又はＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等である。また、端末２０は、通信機器を有し、有線又は無線によって、難読な状態の暗号文データＤＳを情報処理装置１０に送信する。なお、情報処理システム１において、端末２０は、同一の機器でもよいし、異なる機器でもよい。また、端末２０は、１個以上であればよい。
【００１４】
まず、端末２０は、センサ等を使用して計測した結果を示すデータ又は端末２０が所定の処理を実行することによって、いわゆる平文データを生成する。次に、端末２０は、暗号化アルゴリズムを実行することによって、平文データを難読化し、暗号文データＤＳを生成する。
【００１５】
例えば、端末２０は、工場等に設置される。そして、端末２０は、温度を計測する計測機器であるとする。この場合には、各端末２０は、温度を計測し、計測して得られる温度の値を示す平文データを難読化した暗号文データＤＳを生成する。なお、端末２０は、温度以外の物性値を計測してもよい。他にも、各端末２０は、物性値に限られず、他の種類の平文データを生成してもよい。また、暗号文データＤＳは、定期的又は外部装置等から命令があると、送信される。
【００１６】
情報処理装置１０は、例えば、サーバ等である。なお、情報処理装置１０は、サーバに限られず、ＰＣ等でもよい。
【００１７】
情報処理装置１０は、端末２０から受信する暗号文データＤＳに対して、四則演算、論理演算又はこれらの組み合わせを含む所定の処理を行う。そして、情報処理装置１０は、処理結果を示す暗号文データを出力端末３０に送信する。
【００１８】
例えば、情報処理システム１によって、各端末２０によって計測されるそれぞれの温度の平均値をユーザＵＲに提供するサービスが行われる設定であるとする。このような場合には、まず、情報処理装置１０は、各端末２０から、温度を示すデータを難読化したそれぞれの暗号文データＤＳを受信する。そして、情報処理装置１０は、暗号文データＤＳに対して四則演算、論理演算又はこれらの組み合わせを行うことで、平均化処理し、ユーザＵＲが有する出力端末３０に平均値を示すデータを出力する。
【００１９】
出力端末３０及び管理装置４０は、例えば、ネットワークを介して情報処理装置１０に接続されるＰＣ等である。なお、出力端末３０及び管理装置４０は、情報処理装置１０等と一体の構成でもよい。すなわち、情報処理装置１０は、ユーザＵＲに対して、情報処理装置１０が有する出力装置等を使用して処理結果を表示してもよい。さらに、情報処理装置１０は、管理者ＡＤから、情報処理装置１０が有する入力装置等を使用して操作を受け付けてもよい。
【００２０】
例えば、情報処理装置１０は、ネットワークに接続され、ネットワークを介して各端末２０から、様々なデータを受信する、すなわち、情報処理システム１がいわゆるクラウドサービス等を提供する場合がある。このような場合には、各データは、情報漏洩等のリスクを少なくするため、図示するように、暗号文データＤＳのように、難読化されて送信される。
【００２１】
すなわち、端末２０は、所定の暗号化アルゴリズム及び鍵に基づいて、平文データを難読化する。このようにすると、暗号文データＤＳは、難読化された状態であるため、送信後、不正アクセス等によって取得されても、平文データの内容及び暗号文データＤＳの生成元に係る情報等の情報漏洩を少なくすることができる。そして、出力端末３０は、難読化されているデータを受信し、所定の復号アルゴリズム及び鍵に基づいて、データを復号する。このようにして、ユーザＵＲは、安全にクラウドサービス等の提供を受ける。
【００２２】
＜ハードウェア構成例＞
図２は、本発明の一実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。例えば、情報処理装置１０は、図示するように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）ＨＷ１と、記憶装置ＨＷ２と、インタフェースＨＷ３と、入力装置ＨＷ４と、出力装置ＨＷ５とを有するハードウェア構成である。
【００２３】
ＣＰＵＨＷ１は、演算装置及び制御装置である。したがって、ＣＰＵＨＷ１は、あらかじめインストールされるプログラム等に基づいて、所定の処理を実現するための演算及びハードウェアを制御する。
【００２４】
記憶装置ＨＷ２は、例えば、メモリ等の主記憶装置である。また、記憶装置ＨＷ２は、ハードディスク等の補助記憶装置を更に有してもよい。
【００２５】
インタフェースＨＷ３は、外部装置を接続させるコネクタ又はアンテナ等である。例えば、インタフェースＨＷ３は、ケーブル、近距離通信又はネットワーク等によって接続される外部装置とデータを送受信する。
【００２６】
入力装置ＨＷ４は、ユーザによる操作を入力する装置である。例えば、入力装置ＨＷ４は、キーボード又はマウス等である。
【００２７】
出力装置ＨＷ５は、ユーザに対して処理結果等を出力装置である。例えば、出力装置ＨＷ５は、ディスプレイ装置等である。
【００２８】
なお、情報処理装置１０は、図示するハードウェア構成に限られない。例えば、情報処理装置１０は、各ハードウェアを複数有してもよい。また、情報処理装置１０は、有線又は無線で接続される外部装置を有してもよい。さらに、情報処理装置１０は、複数の装置で構成されてもよい。
【００２９】
また、出力端末３０及び管理装置４０は、例えば、図示するハードウェア構成と同様のハードウェア構成の装置である。
【００３０】
＜第１全体処理例＞
図３は、本発明の一実施形態に係る情報処理システムによる第１全体処理例を示すシーケンス図である。例えば、第１全体処理では、まず、設定処理（ステップＳ１０１乃至ステップＳ１０３）が行われる。設定処理の後、第１全体処理では、データの収集処理（ステップＳ２０１乃至ステップＳ２０３）が行われる。データの収集処理後、第１全体処理では、加算処理（ステップＳＡ）が行われる。最後に、加算処理後、第１全体処理では、復号処理（ステップＳ３０１及びステップＳ３０２）が行われる。以下、図示する第１全体処理を例に説明する。また、この例では、端末２０は、端末２１及び端末２２の２台であるとする。
【００３１】
＜鍵の入力例＞（ステップＳ１０１）
ステップＳ１０１では、各端末２０及び出力端末３０は、鍵を入力する。具体的には、ＡＥＳ方式等の共通鍵暗号化方式では、暗号化及び復号に共通の鍵ＫＹが用いられる。したがって、管理者ＡＤ等は、暗号化アルゴリズムに係る処理を実行する端末２１及び端末２２に、同一の鍵ＫＹを入力する。一方で、管理者ＡＤ等は、復号アルゴリズムに係る処理を実行する出力端末３０にも、同一の鍵ＫＹを入力する。
【００３２】
このようにして、出力端末３０は、各端末２０に入力される鍵ＫＹと同一の鍵ＫＹを入力する。そのため、出力端末３０は、各端末２０が暗号化アルゴリズムによって難読化させたデータを復号アルゴリズムによって復号し、暗号文データを平文データにすることができる。
【００３３】
また、各端末２０には、ＡＥＳ方式等における暗号化アルゴリズムを実行するためのプログラムがあらかじめインストールされ、鍵ＫＹが入力されると、各端末２０は、データを難読化させることができるように設定される。
【００３４】
＜第１テーブル及び第２テーブルの入力例＞（ステップＳ１０２）
ステップＳ１０２では、情報処理装置１０は、第１テーブルＴ１及び第２テーブルＴ２を記憶する。なお、第１テーブルＴ１及び第２テーブルＴ２は、後段の加算処理（ステップＳＡ）で用いられるデータである。また、第１テーブルＴ１は、後段の加算処理（ステップＳＡ）においてパラメータとなる第１定数「Ｃ１」及び第２定数「Ｃ２」に基づいて定まるテーブルである。同様に、第２テーブルＴ２は、後段の加算処理（ステップＳＡ）においてパラメータとなる第１定数「Ｃ１」及び第３定数「Ｃ３」に基づいて定まるテーブルである。
【００３５】
＜第３テーブルの入力例＞（ステップＳ１０３）
ステップＳ１０３では、情報処理装置１０は、第３テーブルＴ３を記憶する。なお、第３テーブルＴ３は、後段の加算処理（ステップＳＡ）で用いられるデータである。また、第３テーブルＴ３は、後段の加算処理（ステップＳＡ）においてパラメータとなる第１定数「Ｃ１」、第２定数「Ｃ２」及び第３定数「Ｃ３」に基づいて定まるテーブルである。
【００３６】
なお、テーブルは、入力に対する出力を定めるデータである。例えば、テーブルは、いわゆるＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）等である。すなわち、テーブルは、入力値に対して出力させる出力値を特定できるデータであればよく、データ形式は、２次元表等の形式でなくともよい。また、各テーブルは、各定数が定まると生成できるデータである。テーブルの詳細は、後述する。
【００３７】
以上のような設定処理が、データの収集処理より以前にあらかじめ行われる。
【００３８】
＜データの生成例＞（ステップＳ２０１）
ステップＳ２０１では、端末２０は、データを生成する。例えば、データが温度等の計測値である場合には、端末２０は、センサ等によって物性値を計測し、計測結果を示すデータを生成する。なお、ステップＳ２０１では、データは、難読化される前の状態、いわゆる平文データである。
【００３９】
＜暗号化処理例＞（ステップＳ２０２）
ステップＳ２０２では、端末２０は、データを暗号化する。すなわち、ステップＳ２０２では、端末２０は、ステップＳ２０１で生成されるデータを暗号化アルゴリズム等によって暗号化し、暗号文データを生成する。すなわち、暗号文データは、難読化された状態のデータである。
【００４０】
＜暗号文データの送信例＞（ステップＳ２０３）
ステップＳ２０３では、端末２０は、暗号文データを送信する。以下、この例では、端末２１が送信する暗号文データを「第１データＤ１」という。さらに、この例では、端末２２が送信する暗号文データを「第２データＤ２」という。
【００４１】
以上のようなステップＳ２０１乃至ステップＳ２０３が各端末２０によって行われると、情報処理装置１０に、暗号文データが集まる。なお、ステップＳ２０１乃至ステップＳ２０３は、周期をあらかじめ定めて定期的に端末２０が行うようにしてもよいし、処理を実行するタイミングを各端末２０に入力して定められたタイミングとなると端末２０が行うようにしてもよい。
【００４２】
以上のようなデータの収集処理が、設定処理より以前にあらかじめ行われる。
【００４３】
＜加算処理例＞（ステップＳＡ）
ステップＳＡでは、情報処理装置１０は、加算処理を行う。以下、第１データＤ１と、第２データＤ２とを加算する例で説明する。例えば、加算処理は、以下に示す（１）式と等価の処理である。
【００４４】
図４は、本発明の一実施形態に係る情報処理装置による加算処理と等価な計算を示す式である。なお、図示する（１）式及び以下の説明では、「ＤＰ」は、平文データを示す。さらに、「ＤＣ」は、暗号文データを示す。「ＤＰ」及び「ＤＣ」の後に数値を記載し、同じ数値のデータは、暗号化された前と後の関係となる。例えば、「ＤＰ１」の平文データを暗号化アルゴリズムによって暗号化すると、「ＤＰ１」の平文データは、「ＤＣ１」の暗号文データとなる。一方で、「ＤＣ１」の暗号文データを復号アルゴリズムによって復号すると、「ＤＣ１」の暗号文データは、「ＤＰ１」の平文データとなる。
【００４５】
また、図示する（１）式及び以下の説明では、「Ｔ」は、テーブルによる変換を示す。「Ｔ」の後に数値を記載し、数値は、変換に用いるテーブルを示す番号である。例えば、「Ｔ１（ｘ）」は、第１テーブルＴ１を用いる変換を示す。したがって、「Ｔ１（ｘ）」は、変換対象となる「ｘ」を入力とし、第１テーブルＴ１によって定まる「ｘ」に対応する出力が行われる変換が行われることを示す。
【００４６】
さらに、「Ｅｎｃ」は、暗号化関数を示し、「Ｄｅｃ」は、復号関数を示す。したがって、「Ｅｎｃ」及び「Ｄｅｃ」は、「ｘ＝Ｄｅｃ［Ｅｎｃ（ｘ）］」及び「ｘ＝Ｅｎｃ［Ｄｅｃ（ｘ）］」の関係が成り立つ関数である。ゆえに、（１）式及び以下の説明では、「Ｄｅｃ」及び「Ｅｎｃ」の順序は、前後してもよい。
【００４７】
また、（１）式では、剰余演算を「ｍｏｄ」で示す。例えば、「ｘ  ｍｏｄ  ｙ」は、「ｘ」を「ｙ」で除算した余りを計算することを示す。
【００４８】
図示する（１）式及び以下の説明では、「Ｃ１」は、第１定数を示す。さらに、「Ｃ２」は、第２定数を示す。さらにまた、「Ｃ３」は、第３定数を示す。そして、第２定数と、第３定数とは、異なる値である。
【００４９】
図示する（１）式及び以下の説明では、「Ｎ」は、テーブルの個数を示す値（以下「要素数」という。）である。暗号文データが、「ｎ」（ｎ＝ｌｅｎｇｔｈ（ＤＣ））ビット数とすると、要素数「Ｎ」と「ｎ」は、「Ｎ＝２ｎ」の関係となる。すなわち、「Ｎ」は、基数を「２」とし、指数を「ｎ」とする冪乗である。また、各暗号文データ及び各平文データは、同じビット数のデータである。
【００５０】
したがって、「ｎ」は、扱う暗号文データのデータ長によって定まる値である。また、各定数は、処理ごとに、管理者ＡＤ等によって設定されるパラメータである。例えば、各定数は、乱数生成関数等を実行して生成される乱数等である。そして、（１）式に示すように、第２定数「Ｃ２」及び第３定数「Ｃ３」は、「０」乃至「Ｎ−１」のうち、いずれかの値である。一方で、（１）式に示すように、第１定数「Ｃ１」は、奇数であって、「Ｎ−１」以下の値である。
【００５１】
例えば、情報処理装置１０は、図示するような（１）式を以下のように実現する。
【００５２】
図５は、本発明の一実施形態に係る情報処理装置による加算処理の一例を示すフローチャートである。すなわち、ステップＳＡでは、例えば、図示するような処理が行われる。
【００５３】
＜複数の暗号文データの入力例＞（ステップＳＡ０１）
ステップＳＡ０１では、情報処理装置１０は、複数の暗号文データを入力する。例えば、ステップＳ２０３によって送信される暗号文データを受信すると、情報処理装置１０は、複数の暗号文データを入力できる。このようにして入力される暗号文データが、（１）式では、「ＤＣ１」及び「ＤＣ２」となる。
【００５４】
＜第１テーブルに基づく第１変換例＞（ステップＳＡ０２）
ステップＳＡ０２では、情報処理装置１０は、第１テーブルに基づいて、第１データを変換する。図示するように、情報処理装置１０は、ステップＳＡ０１で入力される複数の暗号文データのうち、一方の暗号文データである第１データＤ１を第１テーブルＴ１を用いて変換する。また、（１）式に示すように、第１テーブルＴ１は、変換対象となる第１データＤ１を復号したデータ、すなわち、第１データＤ１の平文データに第１定数「Ｃ１」を乗じた乗算結果に、第２定数「Ｃ２」を加算した計算と等価な変換をするためのテーブルである。以下、第１テーブルＴ１に基づく変換結果を示すデータ、すなわち、第１データＤ１の変換後のデータを「第１変換データＤＴ１」という。
【００５５】
＜第２テーブルに基づく第２変換例＞（ステップＳＡ０３）
ステップＳＡ０３では、情報処理装置１０は、第２テーブルに基づいて、第２データを変換する。図示するように、情報処理装置１０は、ステップＳＡ０１で入力される複数の暗号文データのうち、ステップＳＡ０２で用いるデータ、すなわち、第１データＤ１とは別の暗号文データである第２データＤ２を第２テーブルＴ２を用いて変換する。また、（１）式に示すように、第２テーブルＴ２は、変換対象となる第２データＤ２を復号したデータ、すなわち、第２データＤ２の平文データに、ステップＳＡ０２と同様の第１定数「Ｃ１」を乗じた乗算結果に、ステップＳＡ０２とは異なる第３定数「Ｃ３」を加算した計算と等価な変換をするためのテーブルである。以下、第２テーブルＴ２に基づく変換結果を示すデータ、すなわち、第２データＤ２の変換後のデータを「第２変換データＤＴ２」という。
【００５６】
＜第１変換データ及び第２変換データの加算例＞（ステップＳＡ０４）
ステップＳＡ０４では、情報処理装置１０は、第１変換データと、第２変換データとを加算する。すなわち、ステップＳＡ０４では、情報処理装置１０は、ステップＳＡ０２による第１変換の出力結果と、ステップＳＡ０３による第２変換の出力結果とを加算する。
【００５７】
＜剰余演算例＞（ステップＳＡ０５）
ステップＳＡ０５では、情報処理装置１０は、ステップＳＡ０４の処理結果に対して剰余演算を行う。（１）式に示すように、情報処理装置１０は、第１変換データＤＴ１と、第２変換データＤＴ２とを加算した結果に対して「Ｎ」による剰余演算を行い、余りＲＭを算出する。
【００５８】
＜第３テーブルに基づく第３変換例＞（ステップＳＡ０６）
ステップＳＡ０６では、情報処理装置１０は、第３テーブルに基づいて、ステップＳＡ０５による剰余演算によって算出される余りＲＭを変換する。また、（１）式に示すように、第３テーブルＴ３は、変換対象となる余りＲＭから、第２定数「Ｃ２」及び第３定数「Ｃ３」を減算した減算結果を第１定数「Ｃ１」で除算した計算と等価な変換をするためのテーブルである。
【００５９】
以上のような加算処理が行われると、難読化される前のデータである第１平文データと、第２平文データとを加算した出力結果と等価の出力結果が得られる。以下、証明を示す。
【００６０】
（証明）
図６は、本発明の一実施形態に係る情報処理装置による加算処理の等価性を証明する式である。例えば、等価性は、図示する（２）式のように証明できる。また、以下のような定理がある。
【００６１】
図７は、本発明の一実施形態に係る定理を示す式である。図示する（３）式のような定理があるため、奇数の乗算を行うと、入力と出力が異なる値となる。
【００６２】
（２）式及び（３）式によって証明するように、第１平文データ「ＤＰ１」を暗号化したデータと、第２平文データ「ＤＰ２」を暗号化したデータとを図５に示す加算処理によって処理した出力結果は、第１平文データ「ＤＰ１」と、第２平文データ「ＤＰ２」とを平文データの状態で加算し、その後、難読化したデータ「Ｅｎｃ（ＤＰ１＋ＤＰ２）」と等価になる。
【００６３】
以上のような加算処理が、復号処理より以前にあらかじめ行われる。
【００６４】
＜データの生成例＞（ステップＳ３０１）
図３に戻り、ステップＳ３０１では、情報処理装置１０は、加算処理による出力結果を示すデータを出力端末３０に送信する。なお、ステップＳＡによる加算処理が、処理対象となるデータが暗号文データの状態で処理されるため、ステップＳ３０１で送信されるデータは、暗号文データである。
【００６５】
＜復号処理例＞（ステップＳ３０２）
ステップＳ３０２では、出力端末３０は、データを復号する。すなわち、ステップＳ３０２では、出力端末３０は、ステップＳ３０１で送信されるデータを復号アルゴリズム等によって復号し、平文データを生成する。したがって、端末２０によって暗号化されるステップＳ２０１から、ステップＳ３０２までの間では、データは、難読化されているため、データがセキュアな状態である。一方で、ステップＳ３０２によってデータが復号された後は、平文データとなるため、データを情報処理装置等を介して参照すれば、ユーザＵＲは、データの内容を知ることができる。
【００６６】
このようにすると、ユーザＵＲは、平文データを参照することで、端末２１と端末２２が生成したデータの加算結果を知ることができる。
【００６７】
《第２実施形態》
第２実施形態は、例えば、第１実施形態と同様の全体構成によって実現できる。したがって、第２実施形態の全体構成は、第１実施形態と同様の構成であるとし、重複する説明を省略する。また、第２実施形態における情報処理装置のハードウェア構成は、例えば、第１実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【００６８】
一方で、第２実施形態は、全体処理が第１実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【００６９】
＜第２全体処理例＞
図８は、本発明の一実施形態に係る情報処理システムによる第２全体処理例を示すシーケンス図である。第１実施形態と比較すると、第２全体処理は、加算処理（ステップＳＡ）が減算処理（ステップＳＢ）となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第１全体処理と同様である。
【００７０】
＜減算処理例＞（ステップＳＢ）
ステップＳＢでは、情報処理装置１０は、減算処理を行う。以下、第１実施形態と同様に、第１データＤ１と、第２データＤ２とを処理対象とする例で説明する。例えば、減算処理は、以下に示す（４）式と等価の処理である。
【００７１】
図９は、本発明の一実施形態に係る情報処理装置による減算処理と等価な計算を示す式である。なお、（４）式における各変数及び演算子は、（１）式と同一であるとする。（１）式と（４）式を比較すると、第２テーブルＴ２が異なる。具体的には、第２実施形態では、第２テーブルＴ２による変換が行われると、（１）式における変換結果が更に「マイナス１（−１）」倍となる点が異なる。例えば、情報処理装置１０は、図示するような（４）式を以下のように実現する。
【００７２】
図１０は、本発明の一実施形態に係る情報処理装置による減算処理の一例を示すフローチャートである。図示するように、減算処理は、例えば、加算処理（ステップＳＡ）と同様の処理で実現できる。減算処理と、加算処理とでは、ステップＳＡ０３で用いられる第２テーブルＴ２が異なる。
【００７３】
（４）式に示すように、減算処理では、第２テーブルＴ２は、変換対象となる第２データＤ２を復号したデータ、すなわち、第２データＤ２の平文データに、ステップＳＡ０２と同様の第１定数「Ｃ１」を乗じ、かつ、「マイナス１（−１）」倍した乗算結果に、ステップＳＡ０２とは異なる第３定数「Ｃ３」を加算した計算と等価な変換をするためのテーブルである。
【００７４】
以下、第１実施形態と同様に処理を行うと減算処理が実現できる。以上のような減算処理が行われると、難読化される前のデータである第１平文データから第２平文データを減算した出力結果と等価の出力結果が得られる。以下、証明を示す。
【００７５】
（証明）
図１１は、本発明の一実施形態に係る情報処理装置による減算処理の等価性を証明する式である。例えば、等価性は、図示する（５）式のように証明できる。
【００７６】
（５）式及び（３）式によって証明するように、第１平文データ「ＤＰ１」を暗号化したデータと、第２平文データ「ＤＰ２」を暗号化したデータとを図１０に示す減算処理によって処理した出力結果は、第１平文データ「ＤＰ１」と、第２平文データ「ＤＰ２」とを平文データの状態で減算し、その後、難読化したデータ「Ｅｎｃ（ＤＰ１−ＤＰ２）」と等価になる。
【００７７】
以上のような減算処理が、復号処理より以前にあらかじめ行われる。以下、第１全体処理と同様に復号処理が行われると、ユーザＵＲは、平文データを参照できる。
【００７８】
このようにすると、ユーザＵＲは、平文データを参照することで、端末２１と端末２２が生成したデータの減算結果を知ることができる。
【００７９】
＜第１実施形態及び第２実施形態における情報処理装置の機能構成例＞
図１２は、本発明の一実施形態に係る第１実施形態及び第２実施形態における情報処理装置の機能構成例を示す機能ブロック図である。例えば、情報処理装置１０は、入力部ＦＮ１と、第１記憶部ＦＮ２と、第２記憶部ＦＮ３と、第１変換部ＦＮ４と、第２変換部ＦＮ５と、加算部ＦＮ６と、剰余演算部ＦＮ７と、第３変換部ＦＮ８とを含む機能構成である。
【００８０】
そして、情報処理システム１では、情報処理装置１０には、例えば、複数の端末２０、出力端末３０及び管理装置４０がネットワーク等によって接続される。
【００８１】
各端末２０は、例えば、暗号化部ＦＮ９と、データ生成部ＦＮ１０とを含む機能構成である。
【００８２】
出力端末３０は、例えば、復号部ＦＮ１１を含む機能構成である。復号部ＦＮ１１には、あらかじめ鍵ＫＹが入力され、鍵ＫＹに基づいて、暗号文データを復号する。
【００８３】
管理装置４０は、例えば、テーブル生成部ＦＮ１２を含む機能構成である。
【００８４】
入力部ＦＮ１は、第１データＤ１と、第２データＤ２とを入力する入力手順を行う。例えば、入力部ＦＮ１は、インタフェースＨＷ３（図２参照）等によって実現される。
【００８５】
第１記憶部ＦＮ２は、第１記憶手順によって、第１テーブルＴ１と、第２テーブルＴ２とを記憶する。例えば、第１記憶部ＦＮ２は、記憶装置ＨＷ２（図２参照）等によって実現される。
【００８６】
第２記憶部ＦＮ３は、第２記憶手順によって、第３テーブルＴ３を記憶する。例えば、第２記憶部ＦＮ３は、記憶装置ＨＷ２（図２参照）等によって実現される。
【００８７】
第１変換部ＦＮ４は、第１テーブルＴ１に基づいて、第１データＤ１を変換し、第１変換データＤＴ１を生成する第１変換手順を行う。例えば、第１変換部ＦＮ４は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【００８８】
第２変換部ＦＮ５は、第２テーブルＴ２に基づいて、第２データＤ２を変換し、第２変換データＤＴ２を生成する第２変換手順を行う。例えば、第２変換部ＦＮ５は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【００８９】
加算部ＦＮ６は、第１変換データＤＴ１と、第２変換データＤＴ２とを加算して加算結果ＲＡを剰余演算部ＦＮ７に出力する加算手順を行う。例えば、加算部ＦＮ６は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【００９０】
剰余演算部ＦＮ７は、基数を２とし、かつ、指数を第１データＤ１及び第２データＤ２のビット数とする冪乗で、加算結果ＲＡを除算して余りＲＭを取得する剰余演算手順を行う。例えば、剰余演算部ＦＮ７は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【００９１】
第３変換部ＦＮ８は、第３テーブルＴ３に基づいて、余りＲＭを変換して出力結果ＯＵＴを出力端末３０に送信する第３変換手順を行う。例えば、第３変換部ＦＮ８は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【００９２】
図示するように、各端末２０及び出力端末３０には、共通した鍵ＫＹが送信される。このように、鍵ＫＹが送信されると、端末２０は、鍵ＫＹに基づいて送信するデータを暗号化することができる。一方で、出力端末３０は、鍵ＫＹによって、出力結果ＯＵＴを復号することができる。
【００９３】
まず、管理者ＡＤの操作に基づいて、管理装置４０は、鍵ＫＹを生成する。さらに、管理者ＡＤの操作に基づいて、管理装置４０は、第１定数「Ｃ１」、第２定数「Ｃ２」及び第３定数「Ｃ３」等の難読化パラメータを生成する。このように、鍵ＫＹ、第１定数「Ｃ１」、第２定数「Ｃ２」及び第３定数「Ｃ３」が定まると、管理装置４０は、テーブル生成部ＦＮ１２によって第１テーブルＴ１、第２テーブルＴ２及び第３テーブルＴ３を生成する。例えば、テーブル生成部ＦＮ１２は、管理装置４０が有する演算装置等によって実現される。
【００９４】
このようにして生成される鍵ＫＹは、図３及び図８に示す設定処理によって、各端末２０及び出力端末３０に送信される。一方で、鍵ＫＹ、第１定数「Ｃ１」、第２定数「Ｃ２」及び第３定数「Ｃ３」に基づいて生成される各テーブルは、図３及び図８に示す設定処理によって、情報処理装置１０に送信される。
【００９５】
そして、各端末２０は、データ生成部ＦＮ１０によって平文データが生成される。例えば、データが計測結果である場合には、端末２０が有するセンサによって計測が行われると、データ生成部ＦＮ１０は、データを生成する。
【００９６】
次に、各端末２０は、データ生成部ＦＮ１０が生成した平文データを暗号化部ＦＮ９によって暗号化する。例えば、暗号化部ＦＮ９及びデータ生成部ＦＮ１０は、各端末２０が有する演算装置等によって実現される。このようにすると、各端末２０によって、暗号文データが生成される。このようにして生成される第１データＤ１及び第２データＤ２等の暗号文データは、情報処理装置１０に収集される。例えば、図３及び図８に示すデータの収集処理は、入力部ＦＮ１、暗号化部ＦＮ９及びデータ生成部ＦＮ１０等によって実現される。
【００９７】
図示するように、第１変換部ＦＮ４による第１変換、第２変換部ＦＮ５による第２変換、加算部ＦＮ６による加算、剰余演算部ＦＮ７による剰余演算及び第３変換部ＦＮ８による第３変換が行われると、情報処理装置１０は、図３に示す加算処理を実現できる。また、加算処理は、例えば、図５に示すような処理である。このようにすると、（２）式（図６参照）に証明するように、情報処理装置１０は、平文データを加算し、加算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置１０は、複数のデータを加算することができる。
【００９８】
図示するように、第１変換部ＦＮ４による第１変換、第２変換部ＦＮ５による第２変換、加算部ＦＮ６による加算、剰余演算部ＦＮ７による剰余演算及び第３変換部ＦＮ８による第３変換が行われると、情報処理装置１０は、図８に示す減算処理を実現できる。また、減算処理は、例えば、図１０に示すような処理である。このようにすると、（５）式（図１１参照）に証明するように、情報処理装置１０は、平文データを減算し、減算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置１０は、複数のデータを減算することができる。
【００９９】
また、情報処理装置１０は、図３に示す加算処理及び図８に示す減算処理を両方とも行うのが望ましい。すなわち、情報処理装置１０は、各端末２０が生成したデータを加算した結果と、各端末２０が生成したデータを減算した結果と等価となるどちらの暗号文データも出力端末３０に出力できる。このように、情報処理装置１０が減算処理及び加算処理の両方を行う場合には、情報処理装置１０は、例えば、図示するように各テーブルを記憶する構成であるのが望ましい。
【０１００】
具体的には、情報処理装置１０は、図示するように、加算処理及び減算処理で、第１テーブルＴ１及び第３テーブルＴ３を共通して用いるのが望ましい。つまり、図示するように、情報処理装置１０は、加算処理及び減算処理の両方を行う場合であっても、第１記憶部ＦＮ２によって、第１テーブルＴ１を１個記憶する。同様に、情報処理装置１０は、加算処理及び減算処理の両方を行う場合であっても、第２記憶部ＦＮ３によって、第３テーブルＴ３を１個記憶する。したがって、第１変換部ＦＮ４は、加算処理を行う場合でも、減算処理を行う場合でも、同一の第１テーブルＴ１を用いる。同様に、第３変換部ＦＮ８は、加算処理を行う場合でも、減算処理を行う場合でも、同一の第３テーブルＴ３を用いる。
【０１０１】
一方で、情報処理装置１０は、加算処理及び減算処理の両方を行う場合には、加算処理用の第２テーブルＴ２と、減算処理用の第２テーブルＴ２とを別に記憶する。そして、第２変換部ＦＮ５は、加算処理を行うか、又は、減算処理を行うかによって、第２テーブルＴ２を切り替える。
【０１０２】
このような構成であると、第１テーブルＴ１及び第３テーブルＴ３が共通であるため、情報処理装置１０は、第１テーブルＴ１及び第３テーブルＴ３を記憶する記憶領域が小さくできる。
【０１０３】
《第３実施形態》
第３実施形態は、例えば、第１実施形態と同様の全体構成によって実現できる。したがって、第３実施形態の全体構成は、第１実施形態と同様の構成であるとし、重複する説明を省略する。また、第３実施形態における情報処理装置のハードウェア構成は、例えば、第１実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【０１０４】
一方で、第３実施形態は、全体処理が第１実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【０１０５】
＜第３全体処理例＞
図１３は、本発明の一実施形態に係る情報処理システムによる第３全体処理例を示すシーケンス図である。第１実施形態と比較すると、第３全体処理は、加算処理（ステップＳＡ）が乗算処理（ステップＳＣ）となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第１全体処理と同様である。ただし、設定処理で扱われる定数及びテーブルは、第１全体処理及び第２全体処理と異なる。定数及びテーブルについての詳細は、後述する。
【０１０６】
＜乗算処理例＞（ステップＳＣ）
ステップＳＣでは、情報処理装置１０は、乗算処理を行う。以下、第１実施形態等と同様に、各端末２０から送信される暗号文データである第３データＤ３と、第４データＤ４とを処理対象とする例で説明する。例えば、乗算処理は、以下に示す（６）式と等価の処理である。
【０１０７】
図１４は、本発明の一実施形態に係る情報処理装置による減算処理と等価な計算を示す式である。なお、（６）式における各変数及び演算子は、（１）式と同一であるとする。
【０１０８】
例えば、情報処理装置１０は、図示するような（６）式を以下のように実現する。
【０１０９】
図１５は、本発明の一実施形態に係る情報処理装置による乗算処理の一例を示すフローチャートである。すなわち、ステップＳＣでは、例えば、図示するような処理が行われる。
【０１１０】
＜複数の暗号文データの入力例＞（ステップＳＣ０１）
ステップＳＣ０１では、情報処理装置１０は、複数の暗号文データを入力する。例えば、ステップＳ２０３によって送信される暗号文データを受信すると、情報処理装置１０は、複数の暗号文データを入力できる。このようにして入力される暗号文データが、（６）式では、「ＤＣ３」及び「ＤＣ４」となる。
【０１１１】
＜第４テーブルに基づく第１変換例＞（ステップＳＣ０２）
ステップＳＣ０２では、情報処理装置１０は、第４テーブルに基づいて、第３データを変換する。図示するように、情報処理装置１０は、ステップＳＣ０１で入力される複数の暗号文データのうち、一方の暗号文データである第３データＤ３を第４テーブルＴ４を用いて変換する。また、（６）式に示すように、第４テーブルＴ４は、変換対象となる第３データＤ３を復号したデータ、すなわち、第３データＤ３の平文データに第４定数「Ｃ４」を乗じる計算と等価な変換をするためのテーブルである。以下、第４テーブルＴ４に基づく変換結果を示すデータ、すなわち、第３データＤ３の変換後のデータを「第３変換データＤＴ３」という。
【０１１２】
＜第５テーブルに基づく第２変換例＞（ステップＳＣ０３）
ステップＳＣ０３では、情報処理装置１０は、第５テーブルに基づいて、第４データを変換する。図示するように、情報処理装置１０は、ステップＳＣ０１で入力される複数の暗号文データのうち、ステップＳＣ０２で用いるデータ、すなわち、第３データＤ３とは別の暗号文データである第４データＤ４を第５テーブルＴ５を用いて変換する。また、（６）式に示すように、第５テーブルＴ５は、変換対象となる第４データＤ４を復号したデータ、すなわち、第４データＤ４の平文データに第５定数「Ｃ５」を乗じる計算と等価な変換をするためのテーブルである。以下、第５テーブルＴ５に基づく変換結果を示すデータ、すなわち、第４データＤ４の変換後のデータを「第４変換データＤＴ４」という。
【０１１３】
＜第３変換データ及び第４変換データの加算例＞（ステップＳＣ０４）
ステップＳＣ０４では、情報処理装置１０は、第３変換データと、第４変換データとを乗算する。すなわち、ステップＳＣ０４では、情報処理装置１０は、ステップＳＣ０２による第１変換の出力結果と、ステップＳＣ０３による第２変換の出力結果とを乗算する。
【０１１４】
＜剰余演算例＞（ステップＳＣ０５）
ステップＳＣ０５では、情報処理装置１０は、ステップＳＣ０４の処理結果に対して剰余演算を行う。（６）式に示すように、情報処理装置１０は、第３変換データＤＴ３と、第４変換データＤＴ４とを乗算した結果に対して「Ｎ」による剰余演算を行い、余りＲＭを算出する。
【０１１５】
＜第６テーブルに基づく第３変換例＞（ステップＳＣ０６）
ステップＳＣ０６では、情報処理装置１０は、第６テーブルに基づいて、ステップＳＣ０５による剰余演算によって算出される余りＲＭを変換する。また、（６）式に示すように、第６テーブルＴ６は、変換対象となる余りＲＭを第４定数「Ｃ４」及び第５定数「Ｃ５」で除算する計算と等価な変換をするためのテーブルである。
【０１１６】
以上のような加算処理が行われると、難読化される前のデータである第３平文データと、第４平文データとを乗算した出力結果と等価の出力結果が得られる。以下、証明を示す。
【０１１７】
（証明）
図１６は、本発明の一実施形態に係る情報処理装置による乗算処理の等価性を証明する式である。例えば、等価性は、図示する（７）式のように証明できる。
【０１１８】
（７）式及び（３）式によって証明するように、第３平文データ「ＤＰ３」を暗号化したデータと、第４平文データ「ＤＰ４」を暗号化したデータとを図１５に示す乗算処理によって処理した出力結果は、第３平文データ「ＤＰ３」と、第４平文データ「ＤＰ４」とを平文データの状態で乗算し、その後、難読化したデータ「Ｅｎｃ（ＤＰ３×ＤＰ４）」と等価になる。
【０１１９】
以上のような乗算処理が、復号処理より以前にあらかじめ行われる。以下、第１全体処理と同様に復号処理が行われると、ユーザＵＲは、平文データを参照できる。
【０１２０】
このようにすると、ユーザＵＲは、平文データを参照することで、端末２１と端末２２が生成したデータの乗算結果を知ることができる。
【０１２１】
《第４実施形態》
第４実施形態は、例えば、第１実施形態と同様の全体構成によって実現できる。したがって、第４実施形態の全体構成は、第１実施形態と同様の構成であるとし、重複する説明を省略する。また、第４実施形態における情報処理装置のハードウェア構成は、例えば、第１実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【０１２２】
一方で、第４実施形態は、全体処理が第１実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【０１２３】
＜第４全体処理例＞
図１７は、本発明の一実施形態に係る情報処理システムによる第４全体処理例を示すシーケンス図である。第１実施形態と比較すると、第４全体処理は、加算処理（ステップＳＡ）が除算処理（ステップＳＤ）となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第３全体処理と同様である。
【０１２４】
＜除算処理例＞（ステップＳＤ）
ステップＳＤでは、情報処理装置１０は、除算処理を行う。以下、第３実施形態等と同様に、第３データＤ３と、第４データＤ４とを処理対象とする例で説明する。例えば、除算処理は、以下に示す（８）式と等価の処理である。
【０１２５】
図１８は、本発明の一実施形態に係る情報処理装置による除算処理と等価な計算を示す式である。なお、（８）式における各変数及び演算子は、（１）式と同一であるとする。
【０１２６】
例えば、情報処理装置１０は、図示するような（８）式を以下のように実現する。（６）式と（８）式を比較すると、第５テーブルＴ５が異なる。具体的には、第４実施形態では、第５テーブルＴ５による変換は、変換対象の逆数がまず計算され、その後、第５定数「Ｃ５」を乗じる計算と等価な点が異なる。例えば、情報処理装置１０は、図示するような（８）式を以下のように実現する。
【０１２７】
図１９は、本発明の一実施形態に係る情報処理装置による除算処理の一例を示すフローチャートである。図示するように、除算処理は、例えば、乗算処理（ステップＳＣ）と同様の処理で実現できる。一方で、除算処理と、乗算処理とでは、ステップＳＣ０３で用いられる第５テーブルＴ５が異なる。
【０１２８】
（８）式に示すように、第５テーブルＴ５は、変換対象となる第４データＤ４を復号したデータ、すなわち、第４データＤ４の平文データの逆数を計算し（１÷Ｄｅｃ（ｘ））、ステップＳＣ０２とは異なる第５定数「Ｃ５」を乗じた計算と等価な変換をするためのテーブルである。一方で、除算処理において用いられる第４テーブルＴ４及び第６テーブルＴ６は、乗算処理のテーブルと同様のテーブルである。
【０１２９】
以下、第３実施形態と同様に処理を行うと除算処理が実現できる。以上のような除算処理が行われると、難読化される前のデータである第１平文データから第２平文データを除算した出力結果と等価の出力結果が得られる。以下、証明を示す。
【０１３０】
（証明）
図２０は、本発明の一実施形態に係る情報処理装置による除算処理の等価性を証明する式である。例えば、等価性は、図示する（９）式のように証明できる。
【０１３１】
（９）式及び（３）式によって証明するように、第３平文データ「ＤＰ３」を暗号化したデータと、第４平文データ「ＤＰ４」を暗号化したデータとを図１９に示す除算処理によって処理した出力結果は、第３平文データ「ＤＰ３」と、第４平文データ「ＤＰ４」とを平文データの状態で除算し、その後、難読化したデータ「Ｅｎｃ（ＤＰ３÷ＤＰ４）」と等価になる。
【０１３２】
以上のような除算処理が、復号処理より以前にあらかじめ行われる。以下、第１全体処理と同様に復号処理が行われると、ユーザＵＲは、平文データを参照できる。
【０１３３】
このようにすると、ユーザＵＲは、平文データを参照することで、端末２１と端末２２が生成したデータの除算結果を知ることができる。
【０１３４】
＜第３実施形態及び第４実施形態における情報処理装置の機能構成例＞
図２１は、本発明の一実施形態に係る第３実施形態及び第４実施形態における情報処理装置の機能構成例を示す機能ブロック図である。例えば、情報処理装置１０は、入力部ＦＮ１と、第１記憶部ＦＮ２と、第２記憶部ＦＮ３と、第１変換部ＦＮ４と、第２変換部ＦＮ５と、乗算部ＦＮ２１と、剰余演算部ＦＮ７と、第３変換部ＦＮ８とを含む機能構成である。図１２に示す機能構成と比較すると、加算部ＦＮ６が乗算部ＦＮ２１となる点が異なる。一方で、端末２０、出力端末３０及び管理装置４０等は、図１２と同様であるため、説明を省略する。
【０１３５】
入力部ＦＮ１は、第３データＤ３と、第４データＤ４とを入力する入力手順を行う。例えば、入力部ＦＮ１は、インタフェースＨＷ３（図２参照）等によって実現される。
【０１３６】
第１記憶部ＦＮ２は、第１記憶手順によって、第４テーブルＴ４と、第５テーブルＴ５とを記憶する。例えば、第１記憶部ＦＮ２は、記憶装置ＨＷ２（図２参照）等によって実現される。
【０１３７】
第２記憶部ＦＮ３は、第２記憶手順によって、第６テーブルＴ６を記憶する。例えば、第２記憶部ＦＮ３は、記憶装置ＨＷ２（図２参照）等によって実現される。
【０１３８】
第１変換部ＦＮ４は、第４テーブルＴ４に基づいて、第３データＤ３を変換し、第３変換データＤＴ３を生成する第１変換手順を行う。例えば、第１変換部ＦＮ４は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０１３９】
第２変換部ＦＮ５は、第５テーブルＴ５に基づいて、第４データＤ４を変換し、第４変換データＤＴ４を生成する第２変換手順を行う。例えば、第２変換部ＦＮ５は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０１４０】
乗算部ＦＮ２１は、第３変換データＤＴ３と、第４変換データＤＴ４とを乗算して乗算結果ＲＢを剰余演算部ＦＮ７に出力する乗算手順を行う。例えば、乗算部ＦＮ２１は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０１４１】
剰余演算部ＦＮ７は、基数を２とし、かつ、指数を第３データＤ３及び第４データＤ４のビット数とする冪乗で、乗算結果ＲＢを除算して余りＲＭを取得する剰余演算手順を行う。例えば、剰余演算部ＦＮ７は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０１４２】
第３変換部ＦＮ８は、第６テーブルＴ６に基づいて、余りＲＭを変換して出力結果ＯＵＴを出力端末３０に送信する第３変換手順を行う。例えば、第３変換部ＦＮ８は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０１４３】
図示するように、各端末２０及び出力端末３０には、共通した鍵ＫＹが送信される。このように、鍵ＫＹが送信されると、端末２０は、鍵ＫＹに基づいて送信するデータを難読化することができる。一方で、出力端末３０は、鍵ＫＹによって、出力結果ＯＵＴを復号することができる。
【０１４４】
まず、管理者ＡＤの操作に基づいて、管理装置４０は、鍵ＫＹを生成する。さらに、管理者ＡＤの操作に基づいて、管理装置４０は、第４定数「Ｃ４」及び第５定数「Ｃ５」等の難読化パラメータを生成する。このように、鍵ＫＹ、第４定数「Ｃ４」及び第５定数「Ｃ５」が定まると、管理装置４０は、テーブル生成部ＦＮ１２によって第４テーブルＴ４、第５テーブルＴ５及び第６テーブルＴ６を生成する。例えば、テーブル生成部ＦＮ１２は、管理装置４０が有する演算装置等によって実現される。
【０１４５】
このようにして生成される鍵ＫＹは、図１３及び図１７に示す設定処理によって、各端末２０及び出力端末３０に送信される。一方で、第４定数「Ｃ４」及び第５定数「Ｃ５」に基づいて生成される各テーブルは、図１３及び図１７に示す設定処理によって、情報処理装置１０に送信される。
【０１４６】
そして、各端末２０は、データ生成部ＦＮ１０によって平文データが生成される。例えば、データが計測結果である場合には、端末２０が有するセンサによって計測が行われると、データ生成部ＦＮ１０は、データを生成する。
【０１４７】
次に、各端末２０は、データ生成部ＦＮ１０が生成した平文データを暗号化部ＦＮ９によって暗号化する。例えば、暗号化部ＦＮ９及びデータ生成部ＦＮ１０は、各端末２０が有する演算装置等によって実現される。このようにすると、各端末２０によって、暗号文データが生成される。このようにして生成される第３データＤ３及び第４データＤ４等の暗号文データは、情報処理装置１０に収集される。例えば、図１３及び図１７に示すデータの収集処理は、入力部ＦＮ１、暗号化部ＦＮ９及びデータ生成部ＦＮ１０等によって実現される。
【０１４８】
図示するように、第１変換部ＦＮ４による第１変換、第２変換部ＦＮ５による第２変換、乗算部ＦＮ２１による乗算、剰余演算部ＦＮ７による剰余演算及び第３変換部ＦＮ８による第３変換が行われると、情報処理装置１０は、図１３に示す乗算処理を実現できる。また、乗算処理は、例えば、図１５に示すような処理である。このようにすると、（７）式（図１６参照）に証明するように、情報処理装置１０は、平文データを乗算し、乗算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置１０は、複数のデータを乗算することができる。
【０１４９】
図示するように、第１変換部ＦＮ４による第１変換、第２変換部ＦＮ５による第２変換、乗算部ＦＮ２１による乗算、剰余演算部ＦＮ７による剰余演算及び第３変換部ＦＮ８による第３変換が行われると、情報処理装置１０は、図１７に示す除算処理を実現できる。また、除算処理は、例えば、図１９に示すような処理である。このようにすると、（９）式（図２０参照）に証明するように、情報処理装置１０は、平文データを除算し、除算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置１０は、複数のデータを除算することができる。
【０１５０】
また、情報処理装置１０は、図１３に示す乗算処理及び図１７に示す除算処理を両方とも行うのが望ましい。すなわち、情報処理装置１０は、各端末２０が生成したデータを乗算した結果と、各端末２０が生成したデータを除算した結果と等価となるどちらの暗号文データも出力端末３０に出力できる。このように、情報処理装置１０が乗算処理及び除算処理の両方を行う場合には、情報処理装置１０は、図示するように、各テーブルを記憶する構成であるのが望ましい。
【０１５１】
具体的には情報処理装置１０は、図示するように、乗算処理及び除算処理で、第４テーブルＴ４及び第６テーブルＴ６を共通して用いるのが望ましい。つまり、図示するように、情報処理装置１０は、乗算処理及び除算処理の両方を行う場合であっても、第１記憶部ＦＮ２によって、第４テーブルＴ４を１個記憶する。同様に、情報処理装置１０は、乗算処理及び除算処理の両方を行う場合であっても、第２記憶部ＦＮ３によって、第６テーブルＴ６を１個記憶する。したがって、第１変換部ＦＮ４は、乗算処理を行う場合でも、除算処理を行う場合でも、同一の第４テーブルＴ４を用いる。同様に、第３変換部ＦＮ８は、乗算処理を行う場合でも、除算処理を行う場合でも、同一の第６テーブルＴ６を用いる。
【０１５２】
一方で、情報処理装置１０は、乗算処理及び除算処理の両方を行う場合には、乗算処理用の第５テーブルＴ５と、除算処理用の第５テーブルＴ５とを別に記憶する。そして、第２変換部ＦＮ５は、乗算処理を行うか、又は、除算処理を行うかによって、第５テーブルＴ５を切り替える。
【０１５３】
このような構成であると、第４テーブルＴ４及び第６テーブルＴ６が共通であるため、情報処理装置１０は、第４テーブルＴ４及び第６テーブルＴ６を記憶する記憶領域が小さくできる。
【０１５４】
《第５実施形態》
第５実施形態は、例えば、第１実施形態と同様の全体構成によって実現できる。したがって、第５実施形態の全体構成は、第１実施形態と同様の構成であるとし、重複する説明を省略する。また、第５実施形態における情報処理装置のハードウェア構成は、例えば、第１実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【０１５５】
一方で、第５実施形態は、全体処理が第１実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【０１５６】
＜第５全体処理例＞
図２２は、本発明の一実施形態に係る情報処理システムによる第５全体処理例を示すシーケンス図である。第１実施形態と比較すると、第５全体処理は、加算処理（ステップＳＡ）が論理積処理（ステップＳＥ）となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第１全体処理と同様である。ただし、設定処理で扱われる定数及びテーブルは、第１全体処理乃至第４全体処理と異なる。定数及びテーブルについての詳細は、後述する。
【０１５７】
＜論理積処理例＞（ステップＳＥ）
ステップＳＥでは、情報処理装置１０は、論理積処理を行う。以下、第１実施形態等と同様に、各端末２０から送信される暗号文データである第５データＤ５と、第６データＤ６とを処理対象とする例で説明する。例えば、論理積処理は、以下に示す（１０）式と等価の処理である。
【０１５８】
図２３は、本発明の一実施形態に係る情報処理装置による論理積処理と等価な計算を示す式である。なお、（１０）式において、「Ｅｎｃ」及び「Ｄｅｃ」は、（１）式と同様である。また、「Ｔ」は、（１）式と同様にテーブルを示す。さらに、「ＤＰ」及び「ＤＣ」は、（１）式と同様に、平文データ及び暗号文データを示す。
【０１５９】
（１０）式及び以下の説明では、「Ｓｏｒｔ（ＮＭ，ｘ）」は、変換対象となるデータを構成する複数のビットを並べ替える並替関数である。そして、「ＮＭ」は、並替番号を示し、「Ｘ」は、変換対象となるデータを示す。
【０１６０】
並替関数は、並替番号に基づいて変換データとなる「Ｘ」のデータを構成するビットについてビットごとの並べ替え先を計算し、計算した並べ変え先に基づいて、それぞれのビットを並べ替える。一方で、「ＩｎｖＳｏｒｔ（ＮＭ，ｘ）」は、「Ｓｏｒｔ（ＮＭ，ｘ）」の逆関数である。逆関数が実行されると、変換対象となるデータが逆変換される。つまり、並替関数及び並替関数の逆関数は、「ｘ＝ＩｎｖＳｏｒｔ（ＮＭ，Ｓｏｒｔ（ＮＭ，ｘ））」及び「ｘ＝Ｓｏｒｔ（ＮＭ，ＩｎｖＳｏｒｔ（ＮＭ，ｘ））」の関係が成り立つ関数である。ゆえに、（１０）式及び以下の説明では、「Ｓｏｒｔ」及び「ＩｎｖＳｏｒｔ」の順序は、前後してもよい。
【０１６１】
並替番号は、並替関数「Ｓｏｒｔ（ＮＭ，ｘ）」及び逆関数「ＩｎｖＳｏｒｔ（ＮＭ，ｘ）」による並べ替えパターンを特定できる番号である。したがって、並替番号が同一であると、並替関数「Ｓｏｒｔ（ＮＭ，ｘ）」及び逆関数「ＩｎｖＳｏｒｔ（ＮＭ，ｘ）」は、同一のパターンとなるように並べ替える。つまり、例えば、並べ替えの対象となるデータが８ビット（ｎ＝８）である場合には、並べ替えのパターンは、「ｎ！＝８！＝４０３２０パターン」存在する。
【０１６２】
なお、並替関数、並替関数の逆関数及び並替番号の詳細は、例えば、特願２０１６―１１０１０５号公報に記載された通りである。
【０１６３】
さらに、（１０）式及び以下の説明では、「＆」は、論理積、いわゆる「ＡＮＤ」の計算を示す演算子である。
【０１６４】
例えば、情報処理装置１０は、図示するような（１０）式を以下のように実現する。
【０１６５】
図２４は、本発明の一実施形態に係る情報処理装置による論理積処理の一例を示すフローチャートである。
【０１６６】
＜複数の暗号文データの入力例＞（ステップＳＥ０１）
ステップＳＥ０１では、情報処理装置１０は、複数の暗号文データを入力する。例えば、ステップＳ２０３によって送信される暗号文データである第５データＤ５及び第６データＤ６を受信すると、情報処理装置１０は、複数の暗号文データを入力できる。このようにして入力される暗号文データが、（１０）式では、「ＤＣ５」及び「ＤＣ６」となる。
【０１６７】
＜第７テーブルに基づく第１変換例＞（ステップＳＥ０２）
ステップＳＥ０２では、情報処理装置１０は、第７テーブルに基づいて、第５データを変換する。図示するように、情報処理装置１０は、ステップＳＥ０１で入力される複数の暗号文データのうち、一方の暗号文データである第５データＤ５を第７テーブルＴ７を用いて変換する。また、（１０）式に示すように、第７テーブルＴ７は、変換対象となる第５データＤ５を復号したデータ、すなわち、第５データＤ５の平文データを並替関数によって並べ替えるのと等価な変換をするためのテーブルである。なお、どのような並べ替えパターンとなるかは、並替番号ＮＭによって定まる。以下、第５データＤ５を第７テーブルＴ７によって変換した結果を示すデータを第５変換データＤＴ５という。
【０１６８】
＜第７テーブルに基づく第２変換例＞（ステップＳＥ０３）
ステップＳＥ０３では、情報処理装置１０は、第７テーブルに基づいて、第６データを変換する。図示するように、情報処理装置１０は、ステップＳＥ０１で入力される複数の暗号文データのうち、ステップＳＥ０２で用いるのとは異なる暗号文データである第６データＤ６をステップＳＥ０２と同様の第７テーブルＴ７を用いて変換する。また、（１０）式に示すように、第７テーブルＴ７は、変換対象となる第６データＤ６を復号したデータ、すなわち、第６データＤ６の平文データを並替関数によって並べ替えるのと等価な変換をするためのテーブルである。以下、第６データＤ６を第７テーブルＴ７によって変換した結果を示すデータを第６変換データＤＴ６という。
【０１６９】
＜第５変換データ及び第６変換データの論理積の計算例＞（ステップＳＥ０４）
ステップＳＥ０４では、情報処理装置１０は、第５変換データ及び第６変換データの論理積を計算する。すなわち、ステップＳＥ０４では、情報処理装置１０は、ステップＳＥ０２による変換結果と、ステップＳＥ０３による変換結果との論理積を計算する。
【０１７０】
＜第８テーブルに基づく第３変換例＞（ステップＳＥ０５）
ステップＳＥ０５では、情報処理装置１０は、第８テーブルに基づいて、データを変換する。図示するように、変換対象は、ステップＳＥ０４による論理積の結果を示すデータである。また、（１０）式に示すように、第８テーブルＴ８は、変換対象となるデータを復号したデータ、すなわち、論理積の結果を示すデータの平文データを並替関数の逆関数によって並べ替えるのと等価な変換をするためのテーブルである。そして、第８テーブルＴ８による変換結果が論理積処理の出力結果ＯＵＴとなる。
【０１７１】
以上のような論理積処理が行われると、難読化される前のデータである第５平文データ及び第６平文データの論理積を計算した結果と等価の出力結果が得られる。以下、証明を示す。
【０１７２】
（証明）
図２５は、本発明の一実施形態に係る情報処理装置による論理積処理の等価性を証明する式である。例えば、等価性は、図示する（１１）式のように証明できる。
【０１７３】
（１１）式によって証明するように、第５平文データ「ＤＰ５」を暗号化したデータと、第６平文データ「ＤＰ６」を暗号化したデータとを図２４に示す論理積処理によって処理した出力結果ＯＵＴは、第５平文データ「ＤＰ５」と、第６平文データ「ＤＰ６」とが平文の状態で、２つのデータの論理積を計算し、その後、暗号化したデータ「Ｅｎｃ（ＤＰ５＆ＤＰ６）」と等価になる。
【０１７４】
以上のような論理積処理が、復号処理より以前にあらかじめ行われる。以下、第１全体処理と同様に復号処理が行われると、ユーザＵＲは、平文データを参照できる。
【０１７５】
このようにすると、ユーザＵＲは、平文データを参照することで、端末２１と端末２２が生成したデータの論理積の計算結果を知ることができる。
【０１７６】
なお、情報処理装置１０は、出力結果ＯＵＴを否定（ＮＯＴ）する計算を更に行ってもよい。このようにすると、情報処理装置１０は、否定的論理積（ＮＡＮＤ）の計算結果を得ることができる。
【０１７７】
《第６実施形態》
第６実施形態は、例えば、第１実施形態と同様の全体構成によって実現できる。したがって、第６実施形態の全体構成は、第１実施形態と同様の構成であるとし、重複する説明を省略する。また、第６実施形態における情報処理装置のハードウェア構成は、例えば、第１実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【０１７８】
一方で、第６実施形態は、全体処理が第１実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【０１７９】
＜第６全体処理例＞
図２６は、本発明の一実施形態に係る情報処理システムによる第６全体処理例を示すシーケンス図である。第１実施形態と比較すると、第５全体処理は、加算処理（ステップＳＡ）が論理和処理（ステップＳＦ）となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第１全体処理と同様である。ただし、設定処理で扱われる定数及びテーブルは、第１全体処理乃至第４全体処理と異なる。定数及びテーブルについての詳細は、後述する。
【０１８０】
＜論理和処理例＞（ステップＳＦ）
ステップＳＦでは、情報処理装置１０は、論理和処理を行う。以下、第５実施形態と様に、各端末２０から送信される暗号文データである第５データＤ５と、第６データＤ６とを処理対象とする例で説明する。例えば、論理和処理は、以下に示す（１２）式と等価の処理である。
【０１８１】
図２７は、本発明の一実施形態に係る情報処理装置による論理和処理と等価な計算を示す式である。なお、（１２）式におけるテーブル、各変数及び演算子は、（１０）式と同一であるとする。
【０１８２】
さらに、（１２）式及び以下の説明では、「｜」は、論理和、いわゆる「ＯＲ」の計算を示す演算子である。
【０１８３】
例えば、情報処理装置１０は、図示するような（１２）式を以下のように実現する。
【０１８４】
図２８は、本発明の一実施形態に係る情報処理装置による論理和処理の一例を示すフローチャートである。論理積処理と比較すると、ステップＳＥ０４がステップＳＦ０１となる点が異なる。以下、異なる点を中心に説明する。
【０１８５】
＜第５変換データ及び第６変換データの論理和の計算例＞（ステップＳＦ０１）
ステップＳＦ０１では、情報処理装置１０は、第５変換データ及び第６変換データの論理和を計算する。すなわち、ステップＳＦ０１では、情報処理装置１０は、ステップＳＥ０２による変換結果と、ステップＳＥ０３による変換結果との論理和を計算する。そして、第８テーブルＴ８による変換結果が論理和処理の出力結果ＯＵＴとなる。
【０１８６】
以上のような論理和処理が行われると、難読化される前のデータである第５平文データ及び第６平文データの論理和を計算した結果と等価の出力結果が得られる。以下、証明を示す。
【０１８７】
（証明）
図２９は、本発明の一実施形態に係る情報処理装置による論理和処理の等価性を証明する式である。例えば、等価性は、図示する（１３）式のように証明できる。
【０１８８】
（１３）式によって証明するように、第５平文データ「ＤＰ５」を暗号化したデータと、第６平文データ「ＤＰ６」を暗号化したデータとを図２８に示す論理和処理によって処理した出力結果ＯＵＴは、第５平文データ「ＤＰ５」と、第６平文データ「ＤＰ６」とが平文の状態で、２つのデータの論理和を計算し、その後、暗号化したデータ「Ｅｎｃ（ＤＰ５｜ＤＰ６）」と等価になる。
【０１８９】
以上のような論理和処理が、復号処理より以前にあらかじめ行われる。以下、第１全体処理と同様に復号処理が行われると、ユーザＵＲは、平文データを参照できる。
【０１９０】
このようにすると、ユーザＵＲは、平文データを参照することで、端末２１と端末２２が生成したデータの論理和の計算結果を知ることができる。
【０１９１】
なお、情報処理装置１０は、出力結果ＯＵＴを否定（ＮＯＴ）する計算を更に行ってもよい。このようにすると、情報処理装置１０は、否定的論理和（ＮＯＲ）の計算結果を得ることができる。
【０１９２】
＜第５実施形態及び第６実施形態における情報処理装置の機能構成例＞
図３０は、本発明の一実施形態に係る第５実施形態及び第６実施形態における情報処理装置の機能構成例を示す機能ブロック図である。例えば、情報処理装置１０は、入力部ＦＮ１と、第１記憶部ＦＮ２と、第２記憶部ＦＮ３と、第１変換部ＦＮ４と、第２変換部ＦＮ５と、計算部ＦＮ３１と、第３変換部ＦＮ８とを含む機能構成である。図２１に示す機能構成と比較すると、剰余演算部ＦＮ７及び乗算部ＦＮ２１がなく、計算部ＦＮ３１が加わる点が異なる。一方で、端末２０、出力端末３０及び管理装置４０等は、図２１と同様であるため、説明を省略する。
【０１９３】
入力部ＦＮ１は、第５データＤ５と、第６データＤ６とを入力する入力手順を行う。例えば、入力部ＦＮ１は、インタフェースＨＷ３（図２参照）等によって実現される。
【０１９４】
第１記憶部ＦＮ２は、第１記憶手順によって、第７テーブルＴ７を記憶する。例えば、第１記憶部ＦＮ２は、記憶装置ＨＷ２（図２参照）等によって実現される。
【０１９５】
第２記憶部ＦＮ３は、第２記憶手順によって、第８テーブルＴ８を記憶する。例えば、第２記憶部ＦＮ３は、記憶装置ＨＷ２（図２参照）等によって実現される。
【０１９６】
第１変換部ＦＮ４は、第７テーブルＴ７に基づいて、第５データＤ５を変換し、第５変換データＤＴ５を生成する第１変換手順を行う。例えば、第１変換部ＦＮ４は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０１９７】
第２変換部ＦＮ５は、第７テーブルＴ７に基づいて、第６データＤ６を変換し、第６変換データＤＴ６を生成する第２変換手順を行う。例えば、第２変換部ＦＮ５は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０１９８】
計算部ＦＮ３１は、第３変換データＤＴ３と、第４変換データＤＴ４との論理積、論理和又はこれら両方を計算し、計算結果を第３変換部ＦＮ８に出力する計算手順を行う。例えば、計算部ＦＮ３１は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０１９９】
第３変換部ＦＮ８は、第８テーブルＴ８に基づいて、計算部ＦＮ３１による計算結果を変換し、出力結果ＯＵＴを出力端末３０に送信する第３変換手順を行う。例えば、第３変換部ＦＮ８は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０２００】
図示するように、各端末２０及び出力端末３０には、共通した鍵ＫＹが送信される。このように、鍵ＫＹが送信されると、端末２０は、鍵ＫＹに基づいて送信するデータを暗号化することができる。一方で、出力端末３０は、鍵ＫＹによって、出力結果ＯＵＴを復号することができる。
【０２０１】
まず、管理者ＡＤの操作に基づいて、管理装置４０は、鍵ＫＹを生成する。さらに、管理者ＡＤの操作に基づいて、管理装置４０は、並替番号ＮＭ等の難読化パラメータを生成する。このように、並替番号ＮＭが定まると、管理装置４０は、テーブル生成部ＦＮ１２によって第７テーブルＴ７及び第８テーブルＴ８を生成する。例えば、テーブル生成部ＦＮ１２は、管理装置４０が有する演算装置等によって実現される。
【０２０２】
このようにして生成される鍵ＫＹは、図２２及び図２６に示す設定処理によって、各端末２０及び出力端末３０に送信される。同様に、並替番号ＮＭに基づいて生成される第７テーブルＴ７及び第８テーブルＴ８が、図２２及び図２６に示す設定処理によって、情報処理装置１０に送信される。
【０２０３】
そして、各端末２０は、データ生成部ＦＮ１０によって、平文データを生成する。例えば、データが計測結果である場合には、端末２０が有するセンサによって計測が行われると、データ生成部ＦＮ１０は、データを生成する。
【０２０４】
次に、各端末２０は、データ生成部ＦＮ１０が生成した平文データを暗号化部ＦＮ９によって難読化する。例えば、暗号化部ＦＮ９及びデータ生成部ＦＮ１０は、各端末２０が有する演算装置等によって実現される。このようにすると、各端末２０によって、暗号文データが生成される。このようにして生成される第５データＤ５及び第６データＤ６等の暗号文データは、情報処理装置１０に収集される。例えば、図２２及び図２６に示すデータの収集処理は、入力部ＦＮ１、暗号化部ＦＮ９及びデータ生成部ＦＮ１０等によって実現される。
【０２０５】
図示するように、第１変換部ＦＮ４による第１変換、第２変換部ＦＮ５による第２変換、計算部ＦＮ３１による論理積の計算及び第３変換部ＦＮ８による第３変換が行われると、情報処理装置１０は、図２２に示す論理積処理を実現できる。また、論理積処理は、例えば、図２４に示すような処理である。このようにすると、（１１）式（図２５参照）に証明するように、情報処理装置１０は、平文データの論理積を計算し、計算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置１０は、複数のデータを論理積を計算することができる。
【０２０６】
図示するように、第１変換部ＦＮ４による第１変換、第２変換部ＦＮ５による第２変換、計算部ＦＮ３１による論理和の計算及び第３変換部ＦＮ８による第３変換が行われると、情報処理装置１０は、図２６に示す論理和処理を実現できる。また、論理和処理は、例えば、図２６に示すような処理である。このようにすると、（１３）式（図２９参照）に証明するように、情報処理装置１０は、平文データの論理和を計算し、計算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置１０は、複数のデータを論理和を計算することができる。
【０２０７】
また、情報処理装置１０は、図２２に示す論理積処理及び図２６に示す論理和処理を両方とも行うのが望ましい。すなわち、情報処理装置１０は、各端末２０が生成したデータの論理和を計算した結果と、各端末２０が生成したデータの論理積を計算した結果と等価となるどちらの暗号文データも出力端末３０に出力できる。このように、情報処理装置１０が論理積処理及び論理和処理の両方を行う場合には、情報処理装置１０は、図示するように、各テーブルを記憶する構成であるのが望ましい。
【０２０８】
具体的には、情報処理装置１０は、図示するように、論理積処理及び論理和処理で、第７テーブルＴ７及び第８テーブルＴ８を共通して用いるのが望ましい。つまり、図示するように、情報処理装置１０は、論理積処理及び論理和処理の両方を行う場合であっても、第１記憶部ＦＮ２によって、第７テーブルＴ７を１個記憶する。同様に、情報処理装置１０は、論理積処理及び論理和処理の両方を行う場合であっても、第２記憶部ＦＮ３によって、第８テーブルＴ８を１個記憶する。したがって、第１変換部ＦＮ４は、論理積処理を行う場合でも、論理和処理を行う場合でも、同一の第７テーブルＴ７及び第８テーブルＴ８を用いる。
【０２０９】
そして、計算部ＦＮ３１は、論理積処理を行うか、又は、論理和処理を行うかによって、論理積の計算を行うか、論理和の計算を行うかを切り替える。
【０２１０】
このような構成であると、第７テーブルＴ７及び第８テーブルＴ８が共通であるため、情報処理装置１０は、第７テーブルＴ７及び第８テーブルＴ８を記憶する記憶領域が小さくできる。
【０２１１】
《第７実施形態》
第７実施形態は、例えば、第１実施形態と同様の全体構成によって実現できる。したがって、第７実施形態の全体構成は、第１実施形態と同様の構成であるとし、重複する説明を省略する。また、第７実施形態における情報処理装置のハードウェア構成は、例えば、第１実施形態と同様のハードウェア構成である。したがって、ハードウェア構成の説明も省略する。
【０２１２】
一方で、第７実施形態は、全体処理が第１実施形態と異なる。以下、同一の処理及び構成には、同一の符号を付し、説明を省略する。
【０２１３】
＜第７全体処理例＞
図３１は、本発明の一実施形態に係る情報処理システムによる第７全体処理例を示すシーケンス図である。第１実施形態と比較すると、第５全体処理は、加算処理（ステップＳＡ）が排他的論理和処理（ステップＳＧ）となる点が異なる。一方で、設定処理、データの収集処理及び復号処理は、例えば、第１全体処理と同様である。ただし、設定処理で扱われる定数及びテーブルは、第１全体処理乃至第４全体処理と異なる。定数及びテーブルについての詳細は、後述する。
【０２１４】
＜排他的論理和処理例＞（ステップＳＧ）
ステップＳＧでは、情報処理装置１０は、排他的論理和処理を行う。以下、各端末２０から送信される暗号文データである第７データＤ７と、第８データＤ８とを処理対象とする例で説明する。例えば、排他的論理和処理は、以下に示す（１４）式と等価の処理である。
【０２１５】
なお、（１４）式において、「Ｅｎｃ」及び「Ｄｅｃ」は、（１）式と同様である。また、「Ｔ」は、（１）式と同様にテーブルを示す。さらに、「ＤＰ」及び「ＤＣ」は、（１）式と同様に、平文データ及び暗号文データを示す。また、「Ｓｏｒｔ（ＮＭ，ｘ）」及び「ＩｎｖＳｏｒｔ（ＮＭ，ｘ）」は、（１１）式と同様に、並替関数及び逆関数を示す。さらにまた、「ＮＭ」は、（１１）式と同様に、並替番号である。
【０２１６】
（１４）式において、第６定数「Ｃ６」及び第７定数「Ｃ７」は、乱数生成関数等を実行して生成される乱数等である。そして、（１）式と同様に、第６定数「Ｃ６」及び第７定数「Ｃ７」は、「０」乃至「Ｎ−１」のうち、いずれかの値である。
【０２１７】
さらに、（１４）式及び以下の説明では、「＾」は、排他的論理和、いわゆる「ＸＯＲ」の計算を示す演算子である。
【０２１８】
例えば、情報処理装置１０は、図示するような（１４）式を以下のように実現する。
【０２１９】
図３３は、本発明の一実施形態に係る情報処理装置による排他的論理和処理の一例を示すフローチャートである。
【０２２０】
＜複数の暗号文データの入力例＞（ステップＳＧ０１）
ステップＳＧ０１では、情報処理装置１０は、複数の暗号文データを入力する。例えば、ステップＳ２０３によって送信される暗号文データである第７データＤ７及び第８データＤ８を受信すると、情報処理装置１０は、複数の暗号文データを入力できる。このようにして入力される暗号文データが、（１４）式では、「ＤＣ７」及び「ＤＣ８」となる。
【０２２１】
＜第９テーブルに基づく第１変換例＞（ステップＳＧ０２）
ステップＳＧ０２では、情報処理装置１０は、第９テーブルに基づいて、第７データを変換する。図示するように、情報処理装置１０は、ステップＳＧ０１で入力される複数の暗号文データのうち、一方の暗号文データである第７データＤ７を第９テーブルＴ９を用いて変換する。
【０２２２】
また、（１４）式に示すように、第９テーブルＴ９は、変換対象となる第７データＤ７を復号したデータ、すなわち、第７データＤ７の平文データを並替関数によって並べ替えるのと等価な変換をするためのテーブルである。なお、どのような並べ替えパターンとなるかは、並替番号ＮＭによって定まる。以下、第７データＤ７を第９テーブルＴ９によって変換した結果を示すデータを第７変換データＤＴ７という。
【０２２３】
＜第１０テーブルに基づく第２変換例＞（ステップＳＧ０３）
ステップＳＧ０３では、情報処理装置１０は、第１０テーブルに基づいて、第８データを変換する。図示するように、情報処理装置１０は、ステップＳＧ０１で入力される複数の暗号文データのうち、ステップＳＧ０２で用いるデータ、すなわち、第７データＤ７とは異なる暗号文データである第８データＤ８を第１０テーブルＴ１０を用いて変換する。
【０２２４】
また、（１４）式に示すように、第１０テーブルＴ１０は、変換対象となる第８データＤ８を復号したデータ、すなわち、第８データＤ８の平文データを並替関数によって並べ替えるのと等価な変換をするためのテーブルである。以下、第８データＤ８を第１０テーブルＴ１０によって変換した結果を示すデータを第８変換データＤＴ８という。
【０２２５】
＜第７変換データ及び第８変換データの排他的論理和の計算例＞（ステップＳＧ０４）
ステップＳＧ０４では、情報処理装置１０は、第７変換データ及び第８変換データの排他的論理和を計算する。すなわち、ステップＳＧ０４では、情報処理装置１０は、ステップＳＧ０２による変換結果と、ステップＳＧ０３による変換結果との排他的論理和を計算する。
【０２２６】
＜第１１テーブルに基づく第３変換例＞（ステップＳＧ０５）
ステップＳＧ０５では、情報処理装置１０は、第１１テーブルに基づいて、データを変換する。図示するように、変換対象は、ステップＳＧ０４による排他的論理和の結果を示すデータである。
【０２２７】
また、（１４）式に示すように、第１１テーブルＴ１１は、変換対象となるデータを復号したデータ、すなわち、排他的論理和の結果を示すデータの平文データを並替関数の逆関数によって並べ替えるのと等価な変換をするためのテーブルである。そして、第１１テーブルＴ１１による変換結果が排他的論理和処理の出力結果ＯＵＴとなる。
【０２２８】
以上のような排他的論理和処理が行われると、難読化される前のデータである第７平文データ及び第８平文データの排他的論理和を計算した結果と等価の出力結果が得られる。以下、証明を示す。
【０２２９】
（証明）
図３４は、本発明の一実施形態に係る情報処理装置による排他的論理和処理の等価性を証明する式である。例えば、等価性は、図示する（１５）式のように証明できる。なお、排他的論理和の計算には、「ｘ＝ｘ＾Ａ＾Ａ」となる性質がある。
【０２３０】
（１５）式によって証明するように、第７平文データ「ＤＰ７」を暗号化したデータと、第８平文データ「ＤＰ８」を暗号化したデータとを図３１に示す排他的論理和処理によって処理した出力結果ＯＵＴは、第７平文データ「ＤＰ７」と、第８平文データ「ＤＰ８」が平文の状態で、２つのデータの排他的論理和処理を計算し、その後、暗号化したデータ「Ｅｎｃ（ＤＰ７＾ＤＰ８）」と等価になる。
【０２３１】
以上のような排他的論理和処理が、復号処理より以前にあらかじめ行われる。以下、第１全体処理と同様に復号処理が行われると、ユーザＵＲは、平文データを参照できる。
【０２３２】
このようにすると、ユーザＵＲは、平文データを参照することで、端末２１と端末２２が生成したデータの排他的論理和の計算結果を知ることができる。
【０２３３】
＜第７実施形態における情報処理装置の機能構成例＞
図３５は、本発明の一実施形態に係る第７実施形態における情報処理装置の機能構成例を示す機能ブロック図である。例えば、情報処理装置１０は、入力部ＦＮ１と、第１記憶部ＦＮ２と、第２記憶部ＦＮ３と、第１変換部ＦＮ４と、第２変換部ＦＮ５と、計算部ＦＮ３１と、第３変換部ＦＮ８とを含む機能構成である。一方で、端末２０、出力端末３０及び管理装置４０等は、図２１と同様であるため、説明を省略する。
【０２３４】
入力部ＦＮ１は、第７データＤ７と、第８データＤ８とを入力する入力手順を行う。例えば、入力部ＦＮ１は、インタフェースＨＷ３（図２参照）等によって実現される。
【０２３５】
第１記憶部ＦＮ２は、第１記憶手順によって、第９テーブルＴ９と、第１０テーブルＴ１０とを記憶する。例えば、第１記憶部ＦＮ２は、記憶装置ＨＷ２（図２参照）等によって実現される。
【０２３６】
第２記憶部ＦＮ３は、第２記憶手順によって、第１１テーブルＴ１１を記憶する。例えば、第２記憶部ＦＮ３は、記憶装置ＨＷ２（図２参照）等によって実現される。
【０２３７】
第１変換部ＦＮ４は、第９テーブルＴ９に基づいて、第７データＤ７を変換し、第７変換データＤＴ７を生成する第１変換手順を行う。例えば、第１変換部ＦＮ４は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０２３８】
第２変換部ＦＮ５は、第１０テーブルＴ１０に基づいて、第８データＤ８を変換し、第８変換データＤＴ８を生成する第２変換手順を行う。例えば、第２変換部ＦＮ５は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０２３９】
計算部ＦＮ３１は、第７変換データＤＴ７と、第８変換データＤＴ８との排他的論理和を計算し、計算結果を第３変換部ＦＮ８に出力する計算手順を行う。例えば、計算部ＦＮ３１は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０２４０】
第３変換部ＦＮ８は、第１１テーブルＴ１１に基づいて、計算部ＦＮ３１による計算結果を変換し、出力結果ＯＵＴを出力端末３０に送信する第３変換手順を行う。例えば、第３変換部ＦＮ８は、ＣＰＵＨＷ１（図２参照）等によって実現される。
【０２４１】
図示するように、各端末２０及び出力端末３０には、共通した鍵ＫＹが送信される。このように、鍵ＫＹが送信されると、端末２０は、鍵ＫＹに基づいて送信するデータを暗号化することができる。一方で、出力端末３０は、鍵ＫＹによって、出力結果ＯＵＴを復号することができる。
【０２４２】
まず、管理者ＡＤの操作に基づいて、管理装置４０は、鍵ＫＹを生成する。さらに、管理者ＡＤの操作に基づいて、管理装置４０は、並替番号ＮＭ、第６定数「Ｃ６」及び第７定数「Ｃ７」等の難読化パラメータを生成する。このように、並替番号ＮＭ、第６定数「Ｃ６」及び第７定数「Ｃ７」が定まると、管理装置４０は、テーブル生成部ＦＮ１２によって第９テーブルＴ９、第１０テーブルＴ１０及び第１１テーブルＴ１１を生成する。例えば、テーブル生成部ＦＮ１２は、管理装置４０が有する演算装置等によって実現される。
【０２４３】
このようにして生成される鍵ＫＹは、図３１に示す設定処理によって、各端末２０及び出力端末３０に送信される。同様に、並替番号ＮＭ、第６定数「Ｃ６」及び第７定数「Ｃ７」に基づいて生成される第９テーブルＴ９、第１０テーブルＴ１０及び第１１テーブルＴ１１が、図３１に示す設定処理によって、情報処理装置１０に送信される。
【０２４４】
そして、各端末２０は、データ生成部ＦＮ１０によって、平文データを生成する。例えば、データが計測結果である場合には、端末２０が有するセンサによって計測が行われると、データ生成部ＦＮ１０は、データを生成する。
【０２４５】
次に、各端末２０は、データ生成部ＦＮ１０が生成した平文データを暗号化部ＦＮ９によって暗号化する。例えば、暗号化部ＦＮ９及びデータ生成部ＦＮ１０は、各端末２０が有する演算装置等によって実現される。このようにすると、各端末２０によって、暗号文データが生成される。このようにして生成される第７データＤ７及び第８データＤ８等の暗号文データは、情報処理装置１０に収集される。例えば、図３１に示すデータの収集処理は、入力部ＦＮ１、暗号化部ＦＮ９及びデータ生成部ＦＮ１０等によって実現される。
【０２４６】
図示するように、第１変換部ＦＮ４による第１変換、第２変換部ＦＮ５による第２変換、計算部ＦＮ３１による排他的論理和の計算及び第３変換部ＦＮ８による第３変換が行われると、情報処理装置１０は、図３１に示す排他的論理和処理を実現できる。また、排他的論理和処理は、例えば、図３３に示すような処理である。このようにすると、（１５）式（図３４参照）に証明するように、情報処理装置１０は、平文データの排他的論理和を計算し、計算結果を暗号化したのと等価のデータを得ることができる。すなわち、データが難読な状態であっても、情報処理装置１０は、複数のデータの排他的論理和を計算することができる。
【０２４７】
《効果例》
図３６は、本発明の一実施形態に係る情報処理装置によって行われる各全体処理の効果例を示すブロック図である。まず、情報処理システム１では、管理装置４０によってセキュアな状態で、鍵ＫＹ及び各定数等の難読化パラメータＰＡＲが、生成される。このように、鍵ＫＹ及び難読化パラメータＰＡＲがあると、管理装置４０は、テーブルＴＢを生成することができる。そして、情報処理装置１０には、生成されたテーブルＴＢが提供される。
【０２４８】
一方で、各端末２０には、鍵ＫＹが設定される。そして、各端末２０は、各端末２０が計測等によって生成した平文データＤＮを鍵ＫＹに基づいて、それぞれの平文データＤＮを暗号化し、暗号文データＤＳを生成する。このようにすると、平文データＤＮは、難読な状態となる。したがって、インターネット上等であっても、暗号文データＤＳの状態であれば、情報漏洩等のリスクが少ない。続いて、各端末２０は、それぞれの暗号文データＤＳを情報処理装置１０に送信する。このようにすると、情報処理装置１０には、統計処理等の対象となる暗号文データＤＳが収集される。
【０２４９】
情報処理装置１０は、ネットワーク上において、様々な演算サービスを提供できる。具体的には、情報処理装置１０は、いわゆるクラウドサービス等の提供を行うサーバである。また、サービスは、例えば、加算、減算、乗算、除算若しくはこれらの組み合わせ等の四則演算である。さらに、サービスは、論理積、論理和、否定的論理積、否定的論理和、排他的論理和、否定若しくはこれらの組み合わせ等の論理演算等である。このように、情報処理装置１０が四則演算及び論理演算等を行うと、ユーザＵＲは、複数のデータの統計結果等が得られる。
【０２５０】
このようなサービス形態では、情報処理装置１０は、様々なデータを扱う場合がある。すなわち、情報処理装置１０は、複数の利用者に対して、サービスを提供する場合がある。
【０２５１】
例えば、情報処理装置１０が複数の利用者に使用される場合では、情報処理装置１０が扱うデータは、平文データであると、何らかの事故又はセキュリティホール等によって、データが他の利用者等に公開された場合に、情報漏洩等のリスクが大きい。そこで、情報処理装置１０、つまり、クラウド側では、各データは、難読な状態で処理されるのが望ましい。
【０２５２】
上記に説明する各実施形態に係る情報処理装置１０は、テーブルＴＢが入力されると、各データが難読な状態、すなわち、暗号文データＤＳの状態で、各処理が実行できる。このようにすると、情報処理装置１０は、複数の暗号文データＤＳから、四則演算及び論理演算等を行って、処理後暗号文データＤＳＡを生成できる。
【０２５３】
次に、出力端末３０は、処理後暗号文データＤＳＡを情報処理装置１０からダウンロードする。そして、出力端末３０は、あらかじめ設定される鍵ＫＹに基づいて、処理後暗号文データＤＳＡを復号し、処理後平文データＤＮＡを取得する。
【０２５４】
処理後平文データＤＮＡは、複数の平文データＤＮに対して、四則演算及び論理演算等が行われた結果と等価の結果を示すデータである。したがって、ユーザＵＲは、処理後平文データＤＮＡを参照すると、複数の平文データＤＮを統計処理した結果等を知ることができる。
【０２５５】
また、以上のような実施形態であると、各データは、ＡＥＳ方式等で推奨される暗号化アルゴリズムによって、難読な状態にできる。ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）環境等では、独自の方式、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）方式及び準同型暗号アルゴリズムによる難読化は、鍵又はアルゴリズムが破られる可能性が高く、セキュリティが十分でない場合がある。
【０２５６】
さらに、ＲＳＡ方式等は、暗号化アルゴリズムを実行するのに、端末に大きなリソースが必要となる場合がある。そのため、ＩｏＴ環境等において、端末が、いわゆる組み込み機器等であると、端末は、リソースを補充する必要が出てくる。ゆえに、ＲＳＡ方式等を用いると、リソースの補充等によって、コストが増大する場合がある。
【０２５７】
一方で、本発明に係る各実施形態によれば、ＡＥＳ方式等が採用できる。すなわち、本発明に係る各実施形態によれば、暗号化方式等に依存せず、情報処理装置は、四則演算及び論理演算等の処理が可能となる。ゆえに、暗号化アルゴリズムを実行する端末のリソース及びスペック等に合わせた暗号化アルゴリズム及び復号アルゴリズムが、柔軟に適用できる。
【０２５８】
《テーブルについて》
各テーブルは、例えば、以下のようなデータ量となる。
【０２５９】
図３７は、本発明の一実施形態に係るテーブルのサイズ例を示す表である。図示するように、各テーブルのデータ量は、処理対象となるデータのビット長、すなわち、平文データのビット数に基づいて定まる。具体的には、図示するように、テーブルのデータ量は、「２ｎ×ｎ÷８」（ｂｙｔｅ）となる。より具体的には、処理対象となるデータが「８ｂｉｔ」、「１６ｂｉｔ」、「２４ｂｉｔ」及び「３２ｂｉｔ」である場合には、テーブルのデータ量は、図示するように、「２５６ｂｙｔｅ」、「１２８Ｋ（キロ）ｂｙｔｅ」、「４８Ｍ（メガ）ｂｙｔｅ」及び「１６Ｇ（ギガ）ｂｙｔｅ」となる。
【０２６０】
そこで、上記の通り、加算及び減算、乗算及び除算、論理積及び論理和を行う情報処理装置では、テーブルを共通化させるのが望ましい。このように、テーブルを共通化させると、情報処理装置は、図示するデータ量を削減することができる。
【０２６１】
図３８は、本発明の一実施形態に係る処理の種類ごとの難読化の度合いを示す表である。本発明に係る実施形態では、難読化の度合いは、図示するような値となる。各実施形態において、各テーブルに含まれる各定数が特定できれば、暗号文データに対する平文データの候補が抽出できる場合がある。しかし、図示するように、各テーブルから、各定数を探索するための計算量、すなわち、難読化の度合いは、図示するように、いずれもｎビット以上となる。そのため、平文データと、暗号文データとの対を検索するより、難読化の度合いが高い。また、暗号文データに対する平文データの候補が抽出できても、鍵の探索には繋がりにくい。
【０２６２】
一方で、例えば、ＡＥＳ方式におけるカウンタモード（ＳＰ８００−３８Ａ）による暗号化では、鍵長、すなわち、暗号化の強度は、１２８ビット乃至２５６ビットとなる。しかし、探索可能な範囲は、平文データ又は暗号文データの３２ビットである。
【０２６３】
したがって、本発明の一実施形態に係る情報処理装置は、高い難読化の度合いを確保することができる。ゆえに、本発明の一実施形態に係る情報処理装置は、データのセキュリティを向上させることができる。
【０２６４】
《その他の実施形態》
各実施形態は、組み合わせて実施されてもよい。
【０２６５】
また、各処理は、情報処理装置又は１つ以上の情報処理装置を有する情報処理システム等のコンピュータに情報処理方法を実行させるためのプログラムによって実現されてもよい。また、プログラムは、コンピュータが読み取り可能な記録媒体又はネットワークを介して、配布が可能である。なお、記録媒体は、例えば、光ディスク、フラッシュメモリ又は補助記憶装置等である。
【０２６６】
さらに、上記に説明した各処理は、図示する順序で行われなくともよい。すなわち、各処理は、図示するタイミング以外で行われてもよい。また、各処理は、複数の装置によって、冗長、分散、並列、仮想化又はこれらを組み合わせて行われてもよい。
【０２６７】
また、各装置は、ネットワーク等で接続される２以上の装置であってもよい。
【０２６８】
以上、本発明の好ましい実施例について詳述したが、本発明は、上述の実施形態に限定されず、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【０２６９】
１  情報処理システム
１０  情報処理装置
２０  端末
ＵＲ  ユーザ
ＡＤ  管理者
ＫＹ  鍵
Ｔ１  第１テーブル
Ｔ２  第２テーブル
Ｔ３  第３テーブル
Ｔ４  第４テーブル
Ｔ５  第５テーブル
Ｔ６  第６テーブル
Ｔ７  第７テーブル
Ｔ８  第８テーブル
Ｔ９  第９テーブル
Ｔ１０  第１０テーブル
Ｔ１１  第１１テーブル
ＦＮ１  入力部
ＦＮ２  第１記憶部
ＦＮ３  第２記憶部
ＦＮ４  第１変換部
ＦＮ５  第２変換部
ＦＮ６  加算部
ＦＮ７  剰余演算部
ＦＮ２１  乗算部
ＦＮ３１  計算部
ＦＮ８  第３変換部
ＦＮ９  暗号化部
ＦＮ１０  データ生成部
ＦＮ１１  復号部
【図１】
2018182407.tif 000003
【図２】
2018182407.tif 000004
【図３】
2018182407.tif 000005
【図４】
2018182407.tif 000006
【図５】
2018182407.tif 000007
【図６】
2018182407.tif 000008
【図７】
2018182407.tif 000009
【図８】
2018182407.tif 000010
【図９】
2018182407.tif 000011
【図１０】
2018182407.tif 000012
【図１１】
2018182407.tif 000013
【図１２】
2018182407.tif 000014
【図１３】
2018182407.tif 000015
【図１４】
2018182407.tif 000016
【図１５】
2018182407.tif 000017
【図１６】
2018182407.tif 000018
【図１７】
2018182407.tif 000019
【図１８】
2018182407.tif 000020
【図１９】
2018182407.tif 000021
【図２０】
2018182407.tif 000022
【図２１】
2018182407.tif 000023
【図２２】
2018182407.tif 000024
【図２３】
2018182407.tif 000025
【図２４】
2018182407.tif 000026
【図２５】
2018182407.tif 000027
【図２６】
2018182407.tif 000028
【図２７】
2018182407.tif 000029
【図２８】
2018182407.tif 000030
【図２９】
2018182407.tif 000031
【図３０】
2018182407.tif 000032
【図３１】
2018182407.tif 000033
【図３２】
2018182407.tif 000034
【図３３】
2018182407.tif 000035
【図３４】
2018182407.tif 000036
【図３５】
2018182407.tif 000037
【図３６】
2018182407.tif 000038
【図３７】
2018182407.tif 000039
【図３８】
2018182407.tif 000040