(57)【要約】  情報処理方法および情報処理システムは、乱数データＲから秘密データＤと同一のデータ量の擬似乱数データＰＤを生成するステップと、擬似乱数データＰＤと、秘密データＤとの排他的論理和を計算してデータＸＰＤを生成するステップと、所定の関数を用いてデータＸＰＤから乱数データＲと同一のデータ量の関数データＦＤを生成するステップと、乱数データＲと、関数データＦＤとの排他的論理和を計算して乱数データＸＲを生成するステップと、データＸＰＤと乱数データＸＲとを結合して結合データＣＤを生成するステップとを有することを特徴とする。【特許請求の範囲】
【請求項１】
乱数データから元データと同一のデータ量の擬似乱数データを生成するステップと、
前記擬似乱数データと前記元データとの排他的論理和を計算して第１ＸＯＲデータを生成するステップと、
所定の関数を用いて前記第１ＸＯＲデータから前記乱数データと同一のデータ量の関数データを生成するステップと、
前記乱数データと前記関数データとの排他的論理和を計算して第２ＸＯＲデータを生成するステップと、
前記第１ＸＯＲデータと前記第２ＸＯＲデータとを結合して結合データを生成するステップとを有することを特徴とする情報処理方法。
【請求項２】
さらに、前記結合データを２以上に分割した分割データを生成するステップを有する請求の範囲第１項に記載の情報処理方法。
【請求項３】
さらに、前記結合データを第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するステップと、
所定の関数を用いて前記第１ＸＯＲデータから前記関数データを生成するステップと、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して前記乱数データを復元するステップと、
前記乱数データから前記擬似乱数データを生成するステップと、
前記乱数データと前記擬似乱数データとの排他的論理和を計算して前記元データを復元するステップとを有する請求の範囲第１項に記載の情報処理方法。
【請求項４】
さらに、前記各分割データのうち、前記結合データを復元可能な前記分割データが入力されたとき、これらの分割データから前記結合データを復元するステップと、
前記結合データを前記第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するステップと、
所定の関数を用いて前記第１ＸＯＲデータから前記関数データを生成するステップと、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して前記乱数データを復元するステップと、
前記乱数データから前記擬似乱数データを生成するステップと、
前記乱数データと前記擬似乱数データとの排他的論理和を計算して前記元データを復元するステップとを有する請求の範囲第２項に記載の情報処理方法。
【請求項５】
前記分割データは、秘密分散法を用いて生成される分散データである請求の範囲第２項または第４項に記載の情報処理方法。
【請求項６】
前記結合データを生成するステップにおいて、入力される前記第１ＸＯＲデータと前記第２ＸＯＲデータのうちのいずれか一方の大きさを特定し得る情報を前記結合データに付加する請求の範囲第１項ないし第５項のいずれかに記載の情報処理方法。
【請求項７】
前記結合データを生成するステップにおいて、入力される前記第１ＸＯＲデータと前記第２ＸＯＲデータのうちのいずれか一方の大きさを特定し得る情報を前記結合データに付加し、
前記結合データを前記第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するステップにおいて、前記情報に基づいて前記第１ＸＯＲデータと前記第２ＸＯＲデータとを分離する請求の範囲第３項または第４項に記載の情報処理方法。
【請求項８】
所定の暗号化データから、予め設定された元データと同一のデータ量の第１ＸＯＲデータおよび前記第１ＸＯＲデータ以外の第２ＸＯＲデータを抽出するステップと、
所定の関数を用いて前記第１ＸＯＲデータから前記第２ＸＯＲデータと同一のデータ量の関数データを生成するステップと、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して乱数データを生成するステップと、
前記乱数データから前記第１ＸＯＲデータと同一のデータ量の擬似乱数データを生成するステップと、
前記乱数データと前記擬似乱数データとの排他的論理和を計算して前記元データを生成するステップとを有することを特徴とする情報処理方法。
【請求項９】
前記擬似乱数データは、前記乱数データから一度の演算処理で生成される請求の範囲第１項ないし第８項のいずれかに記載の情報処理方法。
【請求項１０】
前記擬似乱数データは、ＡＯＮＴ（All or Nothing Transform）法において生成される請求の範囲第１項ないし第９項のいずれかに記載の情報処理方法。
【請求項１１】
前記関数は、ハッシュ関数である請求の範囲第１項ないし第１０項のいずれかに記載の情報処理方法。
【請求項１２】
乱数データから元データと同一のデータ量の擬似乱数データを生成する擬似乱数データ生成部と、
前記擬似乱数データと前記元データとの排他的論理和を計算して第１ＸＯＲデータを生成する第１演算部と、
所定の関数を用いて前記第１ＸＯＲデータから前記乱数データと同一のデータ量の関数データを生成する関数データ生成部と、
前記乱数データと前記関数データとの排他的論理和を計算して第２ＸＯＲデータを生成する第２演算部と、
前記第１ＸＯＲデータと前記第２ＸＯＲデータとを結合して結合データを生成するデータ結合部とを有することを特徴とする情報処理システム。
【請求項１３】
さらに、前記結合データを２以上に分割した分割データを生成するデータ分割部を有する請求の範囲第１２項に記載の情報処理システム。
【請求項１４】
さらに、前記結合データを前記第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するデータ分離部と、
所定の関数を用いて前記第１ＸＯＲデータから前記関数データを生成する関数データ生成部と、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して前記乱数データを復元する第３演算部と、
前記乱数データから前記擬似乱数データを生成する擬似乱数データ生成部と、
前記乱数データと前記擬似乱数データとの排他的論理和を計算して前記元データを復元する第４演算部とを有する請求の範囲第１２項に記載の情報処理システム。
【請求項１５】
さらに、前記各分割データのうち、前記結合データを復元可能な前記分割データが入力されたとき、これらの分割データから前記結合データを復元するデータ復元部と、
前記結合データを前記第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するデータ分離部と、
所定の関数を用いて前記第１ＸＯＲデータから前記関数データを生成する関数データ生成部と、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して前記乱数データを復元する第３演算部と、
前記乱数データから前記擬似乱数データを生成する擬似乱数データ生成部と、
前記乱数データと、前記擬似乱数データとの排他的論理和を計算して前記元データを復元する第４演算部とを有する請求の範囲第１３項に記載の情報処理システム。
【請求項１６】
前記データ結合部は、前記結合データを生成するに際し、入力される前記第１ＸＯＲデータと前記第２ＸＯＲデータのうちのいずれか一方の大きさを特定し得る情報を付加する機能を有する請求の範囲第１２項ないし第１５項のいずれかに記載の情報処理システム。
【請求項１７】
前記データ結合部は、前記結合データを生成するに際し、入力される前記第１ＸＯＲデータと前記第２ＸＯＲデータのうちのいずれか一方の大きさを特定し得る情報を付加する機能を有し、
前記データ分離部は、前記情報に基づいて前記第１ＸＯＲデータと前記第２ＸＯＲデータとを分離する請求の範囲第１４項または第１５項に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法および情報処理システムに関する。
【背景技術】
【０００２】
オープンネットワークを用いて、電子情報を送受信するときや、所定のストレージデバイスに電子情報を保管するとき等に、電子情報に対して暗号化処理などを行い、安全性（電子情報の秘匿性）を確保する方法が知られている。【０００３】
この暗号化処理の一例として、ハッシュ関数を用いた暗号化処理が知られている。【０００４】
このハッシュ関数の特徴として以下の（１）、（２）および（３）が挙げられる。
（１）電子情報を入力として、固定長のハッシュ値を出力する。
（２）一方向性の関数であるためハッシュ値から元のデータを復元することはできない。
（３）違うデータを入力した場合、同じハッシュ値になる確率が低いため通信途中で改ざんされていないかを調べることができる。【０００５】
これらの特徴により、ハッシュ関数は、暗号化、誤り検出、改ざん検出等に広く用いられている（例えば、特開２００５−３２１３０号公報）。【０００６】
このハッシュ関数を用いた情報処理方法として以下のものが知られている。【０００７】
図７は、従来の情報処理方法を示すブロック図である。この情報処理方法（暗号化方法）は、ＡＯＮＴ(All Or Nothing Transform)法（参考文献：V.Boyko,“On the security properties of OAEP as an all-or-nothing transform, ”Advances in Cryptology - CRYPTO ’99, Lecture Notes in Computer Science, vol.1666, pp.503-518, 1999.）と呼ばれるものである。【０００８】
この暗号化方法において、電子情報をＤ、乱数データをＲ、ハッシュ関数をＧ、Ｈとすると、
Ｘ＝ＧＲ(＋)Ｄ（ここで、(＋)は排他的論理和を示す）
Ｙ＝Ｈ（Ｘ）(＋)Ｒ＝Ｈ（ＧＲ(＋)Ｄ）(＋)Ｒ
で表される。【０００９】
このＸとＹとを所定の方法で結合して転送用の暗号化データを作成している。【００１０】
これにより、第三者が容易に復号することのできない暗号化データを作成することができる。【００１１】
しかしながら、一般的に暗号化を行う電子情報Ｄは、そのデータ容量が数Ｍバイトを超えるものも珍しくない。一方、用意する乱数データＲは、一般的に１ｋバイト未満のものが用いられる。すなわち、電子情報Ｄが、乱数データＲの何倍もの大きさにもなるケースがほとんどである。この場合、暗号化処理は、小さい入力から大きな出力を生成する必要がある。ところが、前述した（１）の特徴により、１回の処理で出力されるハッシュ値は固定長であるため、必要な大きさの出力を求めるために多数回（例えば、データが１Ｍバイト、ハッシュ関数が１６０ビットの場合は６５００回以上）のハッシュ処理を行う必要がある。そのため、処理速度が遅いという問題が生じる場合がある。電子情報Ｄとして、例えば静止画や動画の画像データのようなデータ量が多いものの場合には、このような問題は顕著となる。
【発明の開示】
【００１２】
本発明の目的は、安全性（データの秘匿性）を低下させることなく、処理を高速化することができる情報処理方法および情報処理システムを提供することにある。
【００１３】
上記目的を達成するために、本発明の情報処理方法は、乱数データから元データと同一のデータ量の擬似乱数データを生成するステップと、
前記擬似乱数データと前記元データとの排他的論理和を計算して第１ＸＯＲデータを生成するステップと、
所定の関数を用いて前記第１ＸＯＲデータから前記乱数データと同一のデータ量の関数データを生成するステップと、
前記乱数データと前記関数データとの排他的論理和を計算して第２ＸＯＲデータを生成するステップと、
前記第１ＸＯＲデータと前記第２ＸＯＲデータとを結合して結合データを生成するステップとを有することを特徴とする。
【００１４】
これにより、安全性を低下させることなく、処理を高速化することができる。
【００１５】
さらに、本発明の情報処理方法では、前記結合データを２以上に分割した分割データを生成するステップを有するのが好ましい。
【００１６】
これにより、安全性をさらに向上させることができる。
【００１７】
さらに、本発明の情報処理方法では、前記結合データを第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するステップと、
所定の関数を用いて前記第１ＸＯＲデータから前記関数データを生成するステップと、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して前記乱数データを復元するステップと、
前記乱数データから前記擬似乱数データを生成するステップと、
前記乱数データと前記擬似乱数データとの排他的論理和を計算して前記元データを復元するステップとを有するのが好ましい。
【００１８】
これにより、安全性を低下させることなく、処理を高速化することができる。
【００１９】
さらに、本発明の情報処理方法では、前記各分割データのうち、前記結合データを復元可能な前記分割データが入力されたとき、これらの分割データから前記結合データを復元するステップと、
前記結合データを前記第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するステップと、
所定の関数を用いて前記第１ＸＯＲデータから前記関数データを生成するステップと、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して前記乱数データを復元するステップと、
前記乱数データから前記擬似乱数データを生成するステップと、
前記乱数データと前記擬似乱数データとの排他的論理和を計算して前記元データを復元するステップとを有するのが好ましい。
【００２０】
これにより、安全性をさらに向上させることができる。
【００２１】
本発明の情報処理方法では、前記分割データは、秘密分散法を用いて生成される分散データであるのが好ましい。
【００２２】
これにより、安全性をさらに向上させることができる。
【００２３】
本発明の情報処理方法では、前記結合データを生成するステップにおいて、入力される前記第１ＸＯＲデータと前記第２ＸＯＲデータのうちのいずれか一方の大きさを特定し得る情報を前記結合データに付加するのが好ましい。
【００２４】
これにより、結合データを第１ＸＯＲデータと第２ＸＯＲデータとに分離する際、該分離を容易かつ正確に（確実に）行うことができる。
【００２５】
本発明の情報処理方法では、前記結合データを生成するステップにおいて、入力される前記第１ＸＯＲデータと前記第２ＸＯＲデータのうちのいずれか一方の大きさを特定し得る情報を前記結合データに付加し、
前記結合データを前記第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するステップにおいて、前記情報に基づいて前記第１ＸＯＲデータと前記第２ＸＯＲデータとを分離するのが好ましい。
【００２６】
これにより、結合データを第１ＸＯＲデータと第２ＸＯＲデータとに分離する際、該分離を容易かつ正確に（確実に）行うことができる。
【００２７】
本発明の情報処理方法は、所定の暗号化データから、予め設定された元データと同一のデータ量の第１ＸＯＲデータおよび前記第１ＸＯＲデータ以外の第２ＸＯＲデータを抽出するステップと、
所定の関数を用いて前記第１ＸＯＲデータから前記第２ＸＯＲデータと同一のデータ量の関数データを生成するステップと、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して乱数データを生成するステップと、
前記乱数データから前記第１ＸＯＲデータと同一のデータ量の擬似乱数データを生成するステップと、
前記乱数データと前記擬似乱数データとの排他的論理和を計算して前記元データを生成するステップとを有することを特徴とする。
【００２８】
これにより、安全性を低下させることなく、処理を高速化することができる。
【００２９】
本発明の情報処理方法では、前記擬似乱数データは、前記乱数データから一度の演算処理で生成されるのが好ましい。
【００３０】
これにより、処理をより高速化することができる。
【００３１】
本発明の情報処理方法では、前記擬似乱数データは、ＡＯＮＴ（All or Nothing Transform）法において生成されるのが好ましい。
【００３２】
これにより、元データから早い処理速度で、かつ、安全性の高い擬似乱数データを生成することができる。
【００３３】
本発明の情報処理方法では、前記関数は、ハッシュ関数であるのが好ましい。
【００３４】
これにより、安全性の高い情報処理方法を提供することができる。
【００３５】
本発明の情報処理システムは、乱数データから元データと同一のデータ量の擬似乱数データを生成する擬似乱数データ生成部と、
前記擬似乱数データと前記元データとの排他的論理和を計算して第１ＸＯＲデータを生成する第１演算部と、
所定の関数を用いて前記第１ＸＯＲデータから前記乱数データと同一のデータ量の関数データを生成する関数データ生成部と、
前記乱数データと前記関数データとの排他的論理和を計算して第２ＸＯＲデータを生成する第２演算部と、
前記第１ＸＯＲデータと前記第２ＸＯＲデータとを結合して結合データを生成するデータ結合部とを有することを特徴とする。
【００３６】
これにより、安全性を低下させることなく、処理を高速化することができる。
【００３７】
本発明の情報処理システムでは、さらに、前記結合データを２以上に分割した分割データを生成するデータ分割部を有するのが好ましい。
【００３８】
これにより、さらに安全性を向上させることができる。
【００３９】
さらに、本発明の情報処理システムでは、前記結合データを前記第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するデータ分離部と、
所定の関数を用いて前記第１ＸＯＲデータから前記関数データを生成する関数データ生成部と、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して前記乱数データを復元する第３演算部と、
前記乱数データから前記擬似乱数データを生成する擬似乱数データ生成部と、
前記乱数データと前記擬似乱数データとの排他的論理和を計算して前記元データを復元する第４演算部とを有するのが好ましい。
【００４０】
これにより、安全性を低下させることなく、処理を高速化することができる。
【００４１】
さらに、本発明の情報処理システムでは、前記各分割データのうち、前記結合データを復元可能な前記分割データが入力されたとき、これらの分割データから前記結合データを復元するデータ復元部と、
前記結合データを前記第１ＸＯＲデータと前記第２ＸＯＲデータとに分離するデータ分離部と、
所定の関数を用いて前記第１ＸＯＲデータから前記関数データを生成する関数データ生成部と、
前記第２ＸＯＲデータと前記関数データとの排他的論理和を計算して前記乱数データを復元する第３演算部と、
前記乱数データから前記擬似乱数データを生成する擬似乱数データ生成部と、
前記乱数データと、前記擬似乱数データとの排他的論理和を計算して前記元データを復元する第４演算部とを有するのが好ましい。
【００４２】
これにより、さらに安全性を向上させることができる。
【００４３】
本発明の情報処理システムでは、前記データ結合部は、前記結合データを生成するに際し、入力される前記第１ＸＯＲデータと前記第２ＸＯＲデータのうちのいずれか一方の大きさを特定し得る情報を付加する機能を有するのが好ましい。
【００４４】
これにより、結合データを第１ＸＯＲデータと第２ＸＯＲデータとに分離する際、該分離を容易かつ正確に（確実に）行うことができる。
【００４５】
本発明の情報処理システムでは、前記データ結合部は、前記結合データを生成するに際し、入力される前記第１ＸＯＲデータと前記第２ＸＯＲデータのうちのいずれか一方の大きさを特定し得る情報を付加する機能を有し、
前記データ分離部は、前記情報に基づいて前記第１ＸＯＲデータと前記第２ＸＯＲデータとを分離するのが好ましい。
【００４６】
これにより、結合データを第１ＸＯＲデータと第２ＸＯＲデータとに分離する際、該分離を容易かつ正確に（確実に）行うことができる。
【図面の簡単な説明】
【００４７】
【図１】第１図は、本発明の情報処理システムの実施形態を示すブロック図である。
【図２】第２図は、サーバの構成例を示すブロック図である。
【図３】第３図は、本発明の実施形態におけるクライアントの構成例を示すブロック図である。
【図４】第４図は、本発明の実施形態におけるサーバのハードウェアの構成例を示す図である。
【図５】第５図は、サーバの動作を示すフローチャートである。
【図６】第６図は、クライアントの動作を示すフローチャートである。
【図７】第７図は、従来の情報処理方法を示すブロック図である。
【発明を実施するための最良の形態】
【００４８】
以下、本発明の情報処理方法および情報処理システムを添付図面に示す好適実施形態に基づいて詳細に説明する。【００４９】
図１は、本発明の情報処理システムの実施形態を示すブロック図である。【００５０】
図１に示すように、本実施形態の情報処理システム１００は、例えば、インターネット回線等のオープンネットワーク３０を介して、データ通信を行うときに用いられるものであり、サーバ１０と、クライアント２０とを有している。【００５１】
図２は、サーバの構成例を示すブロック図である。【００５２】
サーバ１０は、記憶部１１と、擬似乱数データ生成部１２と、第１演算部１３と、ハッシュ値生成部１４と、第２演算部１５と、データ結合部１６と、分散データ生成部（データ分割部）１７と、インターフェース部１８とを有している。【００５３】
記憶部１１は、機密にする必要のあるデータ等の、暗号化対象のデータ（以下「秘密データ」と言う）Ｄと、図示しない乱数発生器などにより作成される乱数データＲ等の各種データを格納する。【００５４】
ここで「乱数」とは、何の規則性もなくデタラメに発生する数を意味する。【００５５】
擬似乱数データ生成部１２は、乱数データＲに対して擬似乱数処理を行い、擬似乱数(pseudo-random number）データＰＤを生成する。【００５６】
ここで、擬似乱数処理とは、多項式計算の計算機（本実施形態では、後述するＣＰＵ１０１）が乱数と識別不能な列を出力する処理を言い、この列に含まれる数を（暗号論的）擬似乱数という。より詳しく説明すると、擬似乱数とは、確定的な計算によって求められる数列に含まれる数を指す。【００５７】
また、擬似乱数処理は、サイズ可変分散アルゴリズムであり、生成する擬似乱数データの個数および大きさを任意に設定することができる。【００５８】
以上に説明したように、擬似乱数は、単なる乱数とは明らかに区別されるものである。本発明では、前述したＡＯＮＴ（図７参照）を用い、該ＡＯＮＴにおけるハッシュ関数Ｇを前記擬似乱数処理に置き換えたものである。【００５９】
「擬似乱数を生成する仕組みが安全なものである」という前提を置くとき、その仕組みを、前述したＡＯＮＴ（図７参照）のハッシュ関数Ｇの代替として使用したとしても、そのＡＯＮＴの安全性は損なわれることはない。このことは、次のようにして証明することができる。【００６０】
ここにある攻撃者を想定し、その攻撃者がＡＯＮＴの入力と出力を観察することによって、入力に対して期待される出力または出力から期待される入力を予想できる手段を有していると仮定するとき（つまり、その手段によってＡＯＮＴの安全性が危殆化しているとき）、その手段を持ってすれば、擬似乱数生成の処理そのものを破ることが可能となってしまう。このとき、前提として置いた「擬似乱数を生成する仕組みが安全なものである」との間で矛盾が生じることとなる。従って、前述したような手段を有する攻撃者は存在しないということになり、ＡＯＮＴの安全性が損なわれることはないことが証明される。【００６１】
第１演算部１３および第２演算部１５は、入力されたデータの排他的論理和（ＸＯＲ）を演算する。【００６２】
ハッシュ値生成部１４は、入力されるデータに対して所定のハッシュ関数を用いて演算し、乱数データＲと同じ大きさの関数データ（ハッシュ値）ＦＤを生成する。【００６３】
ここで、ハッシュ関数とは、ドキュメントや数字などの文字列の羅列から一定長（固定長）のデータに要約するための関数を言う。換言すると、ハッシュ関数ｈ（ｘ）とは、関数値ｙからｈ（ｘ）＝ｙとなるような元の値ｘを求めることが「計算量的に困難な」関数を言う。【００６４】
データ結合部１６は、入力される複数のデータを所定の方法を用いて結合し、１つの結合データＣＤを生成する。データ結合部１６に入力されるデータは、後述するデータＸＰＤとデータＸＲである。また、データ結合部１６は、入力されるデータＸＰＤとデータＸＲのうちのいずれか一方の大きさ（長さ）を特定し、この情報をヘッダＨＤとして結合データＣＤに付加する機能を有している。本実施形態では、ヘッダＨＤは、データＸＰＤの大きさを特定する情報を示すものである。【００６５】
分散データ生成部（データ分割部）１７は、入力される結合データＣＤを所定の方法により複数に分割する（複数の分割データを生成する）機能を有する。本実施形態における分散データ生成部１７は、入力される結合データＣＤに対し、秘密分散法（暗号化方法の一種）を用いて分散データＳ１、Ｓ２、・・・、Ｓｎ（但し、ｎは２以上の整数）を生成するものである。【００６６】
ここで秘密分散法とは、１つの秘密情報（secret）を複数の分散情報（シェア）に分散して管理する方法である。【００６７】
以下具体的に説明すると、この秘密情報をｎ個（但し、ｎは２以上の整数）の分散情報（シェア）に分散符号化し、任意の分散情報をｋ個集めると、元の秘密情報を復元することができるが、分散情報をｋ−１個以下集めても元の秘密情報を復元することができない。また、分散情報（シェア）の１つ１つをみても秘密情報の部分的な情報はわからないようになっている。【００６８】
このとき分散情報ｗｉ（ｉ＝１，２，・・・，ｎ）は、秘密情報Ｓと素数ｐおよび乱数データＲｊ（ｊ＝１，２，・・・，ｋ−１）を用いてｋ−１次の、下記の多項式（１）から式（２）のように表せる。また、このときｘｉは、同じ値を含まない。【００６９】
ｗｉ＝ｆ（ｘｉ）  （ｉ＝１，２，・・・，ｎ）      （１）
ｆ（ｘ）＝Ｓ＋ｒ１ｘ＋ｒ２ｘ２＋…＋ｒｋ−１ｘｋ−１  （ｍｏｄ  ｐ）  （２）
ここでｍｏｄは剰余を示す。【００７０】
これらの式を用いて秘密分散法の原理を説明すると以下のようになる。【００７１】
式（１）において、ｙ＝ｆ（ｘ）とすると、秘密情報Ｓは、ｙ軸切片を示している。式（１）は、ｋ−１次の多項式なので、分散情報ｗｉ（ｉ＝１，２，．．．，ｎ）が、ｋ個集まると、ｋ個の座標点から多項式ｙ＝ｆ（ｘ）が一意に求まる。しかし、分散情報をｋ−１個集めただけでは、ｋ−１個の座標点しかわからず、多項式が一意に求まらないので、全てのｙ軸切片を通る可能性がある。そのため秘密情報が分からない。【００７２】
以上の秘密分散法を用いることにより、分割された分散情報それぞれによる、部分的な情報の漏えいを有効に防止することができる。【００７３】
なお、本発明において、分散データ生成部（データ分割部）１７におけるデータの分割方法は、上述した秘密分散法によるものに限られず、例えば、データ量が全部で１００００バイトのデータがあるとき、１バイト目からＸバイト目まで、Ｘ＋１バイト目からＹバイト目まで、・・・、Ｚバイト目から１００００バイト目まで（ただし、１＜Ｘ＜Ｙ＜Ｚ＜１００００）、というように、単純にデータを２または３以上に分割するような方法を採用してもよい。この場合、前記秘密分散法によるものに比較して処理にかかる時間が短く、さらに個々の分割データの大きさの合計が小さくなるという利点がある。【００７４】
インターフェース部１８は、オープンネットワーク３０を介してクライアント２０との間で分散データＳ１、Ｓ２、・・・、Ｓｎ等の、各種データの送受信を行う。【００７５】
図３は、クライアントの構成例を示すブロック図である。【００７６】
クライアント２０は、インターフェース部２１と、分散データ復元部（分割データ結合部）２２と、ハッシュ値生成部２４と、第３演算部２５と、擬似乱数データ生成部２６と、第４演算部２７と、記憶部２８とを有している。【００７７】
インターフェース部２１は、オープンネットワーク３０を介して、サーバ１０のインターフェース部１８との間で分散データＳ１、Ｓ２、・・・、Ｓｎ等の、各種データの送受信を行う。【００７８】
分散データ復元部２２は、復元可能な個数の分散データＳ１、Ｓ２、・・・、Ｓｎのうち復元可能な個数の分散データが入力されると、それらより結合データＣＤ（へッダＨＤを含む）を復元する。ここでは、分散データＳ１、Ｓ２、・・・、Ｓｎの全てが揃わなくても結合データＣＤを復元できる場合（例えば、ｎ−１個の分散データが揃えば復元可能な場合）がある。【００７９】
データ分離部２３は、分散データ復元部２２で得られた結合データＣＤから、ヘッダＨＤの情報に基づいてデータＸＰＤとデータＸＲとを分離する。【００８０】
ハッシュ値生成部２４は、ハッシュ値生成部１４のハッシュ関数に対応するハッシュ関数を備え、入力されるデータに対してこのハッシュ関数を用いて演算を行う。【００８１】
第３演算部２５および第４演算部２７は、入力されたデータの排他的論理和（ＸＯＲ）を演算する。【００８２】
擬似乱数データ生成部２６は、入力される関数データＦＤに対して擬似乱数データ生成部１２と同じ処理を行って秘密データＤを復元する。【００８３】
記憶部２８は、入力された各種のデータや、各分散データを結合データＣＤに復元可能なアルゴリズムを備えるプログラム等、各種データ処理に必要なプログラム等を格納する。【００８４】
図４は、本実施形態に用いるサーバのハードウェアの構成例を示す図である。【００８５】
サーバ１０は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、ＨＤＤ（Hard Disk Drive）１０４、Ｉ／Ｆ（Interface）１０５、グラフィック装置１０６、入力装置１０７、バス１０８およびモニタ（表示装置）１１１によって構成されている。【００８６】
ここで、ＣＰＵ１０１は、ＨＤＤ１０４に格納されているプログラムに従って各種演算処理を実行するととともに、サーバ１０の各部を制御する。【００８７】
ＲＯＭ１０２は、ＣＰＵ１０１が実行する基本的なプログラム等が格納されている。【００８８】
ＲＡＭ１０３には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０３には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０４には、ＯＳやアプリケーションプログラムが格納される。【００８９】
Ｉ／Ｆ１０５は、入力装置１０７から入力されるデータの表現形式を変更して入力するとともに、ネットワーク３０との間で所定のプロトコルに従ってデータを送受信する。【００９０】
グラフィック装置１０６には、モニタ１１１が接続されている。グラフィック装置１０６は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１１の画面に表示させる。【００９１】
入力装置１０７は、例えば、キーボードやマウスなどによって構成されており、ユーザの操作に応じたデータを生成して入力する。【００９２】
以上のようなハードウェア構成によって、本実施形態の処理機能を実現することができる。なお、図４には、サーバ１０のハードウェア構成例を示したが、クライアント２０も同様のハードウェア構成で実現することができる。【００９３】
次に、情報処理システム１００の動作（作用）について説明する。【００９４】
図５は、サーバの動作を示すフローチャートである。【００９５】
以下の説明では、予め用意される秘密データＤと乱数データＲとに対して処理を行うものとする。【００９６】
まず、乱数データＲを擬似乱数データ生成部１２に入力する（ステップＳ１１）。【００９７】
次に、擬似乱数データ生成部１２は、入力された乱数データＲに基づいて、秘密データＤの大きさと等しい擬似乱数データＰＤを生成し、出力する（ステップＳ１２）。【００９８】
次に、第１演算部１３は、擬似乱数データＰＤと、秘密データＤとの排他的論理和（ＸＯＲ）を演算し、得られた結果をデータＸＰＤ（第１ＸＯＲデータ）として出力する（ステップＳ１３）。【００９９】
次に、ハッシュ値生成部１４は、データＸＰＤを入力としてハッシュ関数を実行し、関数データＦＤを生成し出力する（ステップＳ１４）。【０１００】
次に、第２演算部１５は、関数データＦＤと、乱数データＲとの排他的論理和を演算し、得られた結果をデータＸＲ（第２ＸＯＲデータ）として出力する（ステップＳ１５）。【０１０１】
次に、データ結合部１６は、データＸＲと、データＸＰＤとを結合して結合データＣＤを生成するとともに、ヘッダＨＤとしてデータＸＰＤの大きさを特定する情報を付加する（ステップＳ１６）。【０１０２】
次に、分散データ作成部１７は、結合データＣＤからｎ個の分散データＳ１、Ｓ２、・・・、Ｓｎを生成する（ステップＳ１７）。【０１０３】
そして、サーバ１０は、インターフェース部１８（Ｉ／Ｆ１０５）を介して分散データＳ１、Ｓ２、・・・、Ｓｎを転送先（本実施形態ではクライアント２０）に転送する（ステップＳ１８）。なお、各分散データの転送の順序やタイミングは、任意に設定または選択することができ、また、各分散データの転送経路や転送タイミングは、同一でも異なっていてもよい。【０１０４】
一方、クライアント２０は、インターフェース部２１を介して何らかのデータを受信すると、以下の処理を行う。【０１０５】
図６は、クライアントの動作を示すフローチャートである。【０１０６】
まず、分散データ復元部２２は、入力されたデータから結合データＣＤの復元を試みる（ステップＳ２１）。入力されたデータからなんらかのデータが復元された場合（ステップＳ２１のＹｅｓ）は、そのデータを結合データＣＤとみなし、以下の処理を行う。【０１０７】
一方、入力されたデータから復元できなかった場合は（ステップＳ２１のＮｏ）、処理を終了する。【０１０８】
次に、データ分離部２３は、ヘッダＨＤの情報からデータＸＰＤの大きさを特定し、結合データＣＤをデータＸＰＤとデータＸＲとに分離する（ステップＳ２２）。【０１０９】
次に、ハッシュ値生成部２４は、ステップＳ２２で分離されたデータＸＰＤを入力してハッシュ関数を実行し、関数データｄＦＤを生成し出力する（ステップＳ２３）。【０１１０】
次に、第３演算部２５は、生成された関数データｄＦＤと、データＸＲとの排他的論理和を演算し、得られた結果を乱数データＲとして出力する（ステップＳ２４）。【０１１１】
次に、擬似乱数データ生成部２６は、ステップＳ２４で得られた乱数データＲに基づいて、擬似乱数データｄＰＤを生成し出力する（ステップＳ２５）。【０１１２】
次に、第４演算部２７は、データＸＰＤと、擬似乱数データｄＰＤとの排他的論理和を演算し、得られたデータを秘密データＤとして記憶部２８に格納する（ステップＳ２６）。【０１１３】
以上説明したように、この情報処理システム１００によれば、擬似乱数データ生成部１２で擬似乱数処理を行うことにより、ハッシュ関数を用いてハッシュ値を求めるのに比べて、はるかに少ない演算回数で、第三者に識別不能な擬似乱数データを生成することができる。これにより、安全性を低下させることなくサーバ１０の処理を高速化することができるため、サーバ１０の演算処理の負担を軽くすることができる。その結果、情報処理システム１００のデータ処理速度やデータの送受信の速度が格段に速くなり、高速化への対応が有利となる。特に、本発明では、例えば静止画や動画の画像データのようなデータ量が多いものの場合には、かかる高速化のメリットが大きく、有利である。【０１１４】
なお、本実施形態では、サーバからクライアントに対して分散データを転送したが、これに限らず、例えば、クライアントが分散データを作成し、サーバに対して転送してもよい。この場合、分散データ復元部２２は、分散データ作成部１７として機能し、データ分離部２３は、データ結合部１６として機能する。【０１１５】
また、本実施形態では、例えば、インターフェースを介してリアルタイムに復元動作を行ったが、これに限らず、例えば、作成された各分散データをクライアント２０の記憶部２８に格納し、任意に秘密データＤを復元してもよい。【０１１６】
なお、本発明では、使用する関数は、ハッシュ関数に限定されない。また、関数には、各種数式が含まれる。【０１１７】
なお、本実施形態では、乱数生成器を用いて得られた乱数データＲを使用したが、これに限らず、例えば、秘密データＤにハッシュ関数を用いて得たデータを乱数データＲとして使用してもよい。【０１１８】
以上、本発明の認証システムを、図示の実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物が付加されていてもよい。【０１１９】
また、本発明では、サーバ装置が複数設けられていてもよいし、クライアント装置が複数設けられていてもよい。【０１２０】
なお、本発明の情報処理システムは、オープンネットワーク３０以外の他の用途（例えば、クローズドネットワーク（専用線）等）にも適用することができる。【０１２１】
また、本発明の情報処理方法は、例えば、コンピュータ内の記憶媒体に格納されている秘密データを、例えば、コンピュータ内の他の記憶媒体に格納するときにも適用することができる。【０１２２】
また、本発明の情報処理方法は、例えば、外部の記憶媒体からＰＣＩバスやＵＳＢなどを介して、秘密データが入力されたときにも適用することができる。なお、コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disk)などがある。【０１２３】
なお、本実施の形態では、暗号化処理として秘密分散法を用いたが、これに限らず、例えば、物理的に分割した後に鍵暗号を使用する処理等を用いてもよい。
【産業上の利用可能性】
【０１２４】
本発明によれば、擬似乱数データを用いて情報処理を行うことにより、安全性を低下させることなく、処理を高速化することができる。【０１２５】
したがって、産業上の利用可能性を有する。
【図１】
2006114841.tif 000002
【図２】
2006114841.tif 000003
【図３】
2006114841.tif 000004
【図４】
2006114841.tif 000005
【図５】
2006114841.tif 000006
【図６】
2006114841.tif 000007
【図７】
2006114841.tif 000008
【国際調査報告】
2006114841.tif 000009
2006114841.tif 000010