(57)【要約】【課題】通信オーバヘッドや、演算能力の乏しい装置の演算負荷を削減し、マルチパーティプロトコルを短時間で完了させる。【解決手段】計算実行装置３０１では、通信部３１１が計算依頼装置２０１により暗号化された入力データを入力し、暗号部３１２が暗号化された入力データを復号し、耐タンパ領域３１０内に配置された演算部３１４は、復号後の入力データの内容を耐タンパ領域外に配置された演算部３２１に秘匿しながら演算部３２１と通信を行って依頼計算プロトコルに基づいて入力データに対する演算を行い、入力データに対する演算結果を演算部３２１に秘匿して取得する。そして、暗号部３１２が、演算部３１４から復号後の入力データに対する演算結果を入力し、入力した演算結果を暗号化し、通信部３１１が暗号化された演算結果を計算依頼装置２０１に対して送信する。【選択図】図３
2008177966.tif 000002
【特許請求の範囲】
【請求項１】
入力データに対する演算を行う情報処理装置であって、
入力データを入力するデータ入力部と、
外部から内部の情報を読み取られることに対する耐性を持つ耐タンパ領域内に配置された耐タンパ領域演算部と、
前記情報処理装置内の前記耐タンパ領域外に配置された非耐タンパ領域演算部とを有し、
前記耐タンパ領域演算部は、
前記データ入力部により入力された入力データの内容を前記非耐タンパ領域演算部に秘匿しながら前記非耐タンパ領域演算部と通信を行って前記非耐タンパ領域演算部と協働して前記入力データに対する演算を行い、前記入力データに対する演算結果を取得することを特徴とする情報処理装置。
【請求項２】
前記耐タンパ領域演算部は、
前記入力データに対する演算結果を前記非耐タンパ領域演算部に秘匿して取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記耐タンパ領域演算部は、
前記非耐タンパ領域演算部以外とは通信を行うことなく、前記非耐タンパ領域演算部と協働して前記入力データに対する演算を行い、前記入力データに対する演算結果を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記耐タンパ領域演算部及び前記非耐タンパ領域演算部は、
マルチパーティプロトコルに基づいて前記入力データに対する演算を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記情報処理装置は、
前記入力データに対する演算を依頼する計算依頼装置とネットワークを介して接続されており、
前記データ入力部は、
前記計算依頼装置により暗号化された入力データを入力し、
前記耐タンパ領域演算部及び前記非耐タンパ領域演算部は、
依頼計算プロトコルに基づいて復号後の入力データに対する演算を行い、
前記情報処理装置は、更に、
前記耐タンパ領域内に配置され、前記データ入力部により入力された暗号化された入力データを復号し、復号後の入力データを前記耐タンパ領域演算部に対して出力し、前記耐タンパ領域演算部から復号後の入力データに対する演算結果を入力し、入力した演算結果を暗号化する耐タンパ領域暗号化部と、
前記耐タンパ領域暗号化部により暗号化された演算結果を前記計算依頼装置に対して送信するデータ出力部とを有することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記情報処理装置は、
認証演算を依頼する認証依頼装置とネットワークを介して接続されており、
前記データ入力部は、
前記入力データとして、前記認証依頼装置から認証演算の対象となる認証対象データを入力し、
前記耐タンパ領域演算部及び前記非耐タンパ領域演算部は、
ゼロ知識証明プロトコルに基づいて認証対象データに対する認証演算を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記情報処理装置は、更に、
前記認証対象データに対する認証演算に先立ち、前記認証演算に使用するデータを暗号化された状態で暗号登録認証データとして予め記憶している登録認証データ記憶部を有し、
前記データ入力部は、
前記入力データとして、前記認証対象データに加えて、前記暗号登録認証データの暗号化に用いられた暗号鍵を前記認証依頼装置から入力し、
前記耐タンパ領域演算部及び前記非耐タンパ領域演算部は、
ゼロ知識証明プロトコルに基づき、前記データ入力部により入力された暗号鍵と認証対象データと、前記登録認証データ記憶部に記憶されている暗号登録認証データを用いて、前記暗号鍵の正当性と、前記認証対象データの正当性を確認して、認証演算を行うことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記データ入力部は、
前記入力データとして、暗号化された前記暗号鍵と、暗号化された前記認証対象データを入力し、
前記情報処理装置は、更に、
前記耐タンパ領域内に配置され、前記データ入力部により入力された暗号化された前記暗号鍵と暗号化された前記認証対象データを復号し、復号後の暗号鍵と認証対象データを前記耐タンパ領域演算部に対して出力する耐タンパ領域暗号化部と、
認証演算結果を前記認証依頼装置に対して送信するデータ出力部とを有することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記登録認証データ記憶部は、
前記暗号登録認証データとして、人の生体情報を記憶し、
前記データ入力部は、
前記認証対象データとして、前記認証依頼装置にて取得された生体情報を入力し、
前記耐タンパ領域演算部及び前記非耐タンパ領域演算部は、
ゼロ知識証明プロトコルに基づき、前記データ入力部により入力された暗号鍵と生体情報と、前記登録認証データ記憶部に記憶されている生体情報とを用いて、認証演算を行うことを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
外部から内部の情報を読み取られることに対する耐性を持つ耐タンパ領域を有するコンピュータを用いる演算方法であって、
コンピュータが、入力データを入力するデータ入力ステップと、
コンピュータが、前記耐タンパ領域内に配置された耐タンパ領域演算部と、コンピュータ内の前記耐タンパ領域外に配置された非耐タンパ領域演算部とを用いて前記入力データに対する演算を行う演算ステップとを有し、
前記演算ステップでは、
前記データ入力ステップにより入力された入力データの内容を前記非耐タンパ領域演算部に秘匿しながら前記耐タンパ領域演算部と前記非耐タンパ領域演算部とが通信を行って前記耐タンパ領域演算部と前記非耐タンパ領域演算部とが協働して前記入力データに対する演算を行い、前記入力データに対する演算結果を取得することを特徴とする演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチパーティプロトコルに基づく計算を行う情報処理装置等に関する。
【背景技術】
【０００２】
基本的な暗号技術を複合的に利用し、高度な機能を実現するものを暗号プロトコルと呼ぶが、この一つにマルチパーティプロトコル（またはＳｅｃｕｒｅ  Ｃｏｍｐｕｔａｔｉｏｎ）がある。
マルチパーティプロトコルを利用すると、例えばエンティティＡが秘密の値ｘを、エンティティＢが秘密の値ｙを保持しているときに、双方の秘密を保ったままある関数値ｆ（ｘ，ｙ）を計算することが可能となる。
【０００３】
さらに、マルチパーティプロトコルの特別な形として、依頼計算プロトコルと呼ばれるものがある。
これは、エンティティＡの計算能力が低く、エンティティＢが高い計算能力を持ちかつ秘密情報を保持していない場合に相当する。
依頼計算プロトコルを利用すると、例えば計算能力の低いエンティティＡが秘密の値ｘに関数ｆを適用した値ｆ（ｘ）を求めたいときに、その計算の大半を計算能力の高いエンティティＢに依頼することで高速にｆ（ｘ）を取得でき、かつエンティティＢに対して入力ｘ、出力ｆ（ｘ）に関する情報を一切漏らさないということが可能になる。
非特許文献１では、依頼計算プロトコルを利用してべき乗剰余演算を行う具体的な方法が記載されている。
また、特許文献１では、べき乗剰余演算を実行する依頼計算装置が開示されている。
【０００４】
さらに、マルチパーティプロトコルの別の形として、ゼロ知識証明プロトコルと呼ばれるものがある。
ゼロ知識証明プロトコルを利用すると、例えば「エンティティＡの持つ情報がある性質を満たすという事実」を、その事実以外の一切の情報を漏らすことなく、エンティティＢに対して証明することができるため、認証への応用などが可能である。
【特許文献１】特開平６−１９３９３号公報
【非特許文献１】岡本龍明，山本博資著，「現代暗号」，産業図書，１９９７年６月３０日，ｐｐ．２３６−２３８．
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１又は非特許文献１で記載された具体例（依頼計算プロトコル）を始めとするマルチパーティプロトコルは、一般に多くの通信量や通信回数を必要とする。
従って、例えば依頼計算プロトコルがインターネットなどのネットワークを介して実行される場合（例えば、図１に示すように計算依頼装置２０１と計算実行装置３０１とがネットワーク１０１を介して依頼計算プロトコルを実行する場合）、依頼計算プロトコル実行中に計算依頼装置２０１と計算実行装置３０１が多くの通信を行う必要が生じるため、プロトコルの完了までに多くの時間がかかってしまうという課題がある。
さらに、通信量や通信回数が多いと、複数の計算実行装置３０１に対して同時に計算を依頼することが困難となり、グリッドコンピューティングのような大規模なシステムを構成することが難しくなるという課題がある。
【０００６】
また、ゼロ知識証明プロトコルを利用して、ユーザの情報をサーバに対して秘匿したままユーザ認証を行うシステム（例えば、図８に示すようにクライアント装置９０１とサーバ装置１００１とがネットワーク１０１を介してゼロ知識証明プロトコルを利用してユーザ認証を行うシステム）を考えた場合、一般に、ゼロ知識証明プロトコルは同じ手順を何度も繰り返すことによって「ユーザの持つ情報がある性質を満たすという事実」をサーバに確信させるため、クライアント装置９０１とサーバ装置１００１が多くの演算・通信を行う必要が生じる。
特に、クライアント装置９０１として例えば携帯電話のような、演算能力の乏しい装置を利用する場合、クライアント装置９０１の演算負荷が大きくなり、プロトコルの完了までに多くの時間がかかってしまうという課題がある。
【０００７】
本発明は上記のような問題点を解決するためになされたもので、マルチパーティプロトコルにおける通信オーバヘッドや、演算能力の乏しい装置の演算負荷を削減し、マルチパーティプロトコルを短時間で完了させることを主な目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、
入力データに対する演算を行う情報処理装置であって、
入力データを入力するデータ入力部と、
外部から内部の情報を読み取られることに対する耐性を持つ耐タンパ領域内に配置された耐タンパ領域演算部と、
前記情報処理装置内の前記耐タンパ領域外に配置された非耐タンパ領域演算部とを有し、
前記耐タンパ領域演算部は、
前記データ入力部により入力された入力データの内容を前記非耐タンパ領域演算部に秘匿しながら前記非耐タンパ領域演算部と通信を行って前記非耐タンパ領域演算部と協働して前記入力データに対する演算を行い、前記入力データに対する演算結果を取得することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、情報処理装置内の耐タンパ演算部と非耐タンパ演算部とを用いて情報処理装置の内部だけで演算を実行することで、マルチパーティプロトコルにおける通信オーバヘッドを削減し、また、演算能力の乏しい装置の演算負荷を削減し、マルチパーティプロトコルの高速化を達成することができる。
また、耐タンパ領域演算部の耐タンパ性により、入力データの内容が非耐タンパ領域演算部に対して秘匿された状態で演算が実行されるので、秘匿性を保持してマルチパーティプロトコルを実行することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
本実施の形態では、マルチパーティプロトコルとして、依頼計算プロトコルを扱う。
図１は、本実施の形態に係る依頼計算システムの構成例を示す。
計算依頼装置２０１と計算実行装置３０１は、ネットワーク１０１で接続されており、計算実行装置３０１は計算依頼装置２０１からの入力データに対する演算を実行する。
計算実行装置３０１は、情報処理装置の例である。
【００１１】
図２は、依頼計算システム（図１）において、計算依頼装置２０１の構成例を表すブロック図である。
図２において、通信部２１１は計算実行装置３０１と通信を行う手段である。
暗号部２１２は共通鍵・公開鍵暗号を用いた暗号化・復号・認証、乱数生成などを行う手段である。
鍵記憶領域２１３は暗号鍵を、計算実行装置ＩＤと関連付けて記憶するデータ記憶手段である。
【００１２】
図４は、鍵記憶領域２１３が記憶するデータの一例を表す。
計算実行装置ＩＤとしては、計算実行装置３０１を特定できるもの、例えばマシン名やＩＰアドレスなどが利用できる。
【００１３】
図３は、依頼計算システム（図１）において、計算実行装置３０１（情報処理装置）の構成例を表すブロック図である。
図３において、耐タンパ領域３１０は、外部から物理的・論理的に内部の情報を読み取られることに対する耐性を持つ領域である。
すなわち、たとえ計算実行装置３０１の構成要素であっても、耐タンパ領域外から耐タンパ領域３１０内部に直接アクセスすることはできない。
耐タンパ領域３１０を利用するためには、鍵記憶領域３１３が保持する暗号鍵に対応する暗号鍵を、あらかじめ保持しておく必要がある。
耐タンパ領域３１０の一例としては、耐タンパ暗号装置、ＩＣカード、耐タンパＵＳＢトークンなどが挙げられる。
通信部３１１は計算依頼装置２０１と通信を行う手段である。通信部３１１は、計算依頼装置２０１から、依頼計算の元になる入力データを入力し、また、依頼計算の演算結果を計算依頼装置２０１に出力する。通信部３１１は、データ入力部及びデータ出力部の例である。
暗号部３１２は、共通鍵・公開鍵暗号を用いた暗号化・復号・認証、乱数生成などを行う手段である。暗号部３１２は、耐タンパ領域暗号化部の例である。
鍵記憶領域３１３は暗号鍵を、計算依頼者ＩＤと関連付けて記憶するデータ記憶手段である。
【００１４】
図５は鍵記憶領域３１３が記憶するデータの一例を表す。
計算依頼者ＩＤとしては、計算依頼者（ユーザでも装置でも良い）を特定できるもの、例えばユーザ名、マシン名やＩＰアドレスなどが利用できる。
【００１５】
演算部３１４は、耐タンパ領域外にある演算部３２１との間で依頼計算を行う手段である。演算部３１４は、耐タンパ領域演算部の例である。
計算手順記憶領域３１５は、演算部３１４と演算部３２１との間で行われる依頼計算の手順を記憶するデータ記憶手段である。
【００１６】
図６は計算手順記憶領域３１５が記憶するデータの一例を表す。
図６では自然言語を用いて手順を記述しているが、プログラム言語などを用いて手順を記述することもできる。
【００１７】
演算部３２１は、耐タンパ領域３１０内部にある演算部３１４との間で依頼計算を行う手段である。演算部３２１は、非耐タンパ領域演算部の例である。
計算手順記憶領域３２２は、演算部３２１と演算部３１４との間で行われる依頼計算の手順を記憶するデータ記憶手段であり、一例として、図６と同様の形式のデータを記憶する。但し、計算手順記憶領域３２２に記憶されている計算手順の内容自体は、計算手順記憶領域３１５に記憶されている計算手順の内容と異なる。つまり、耐タンパ領域３１０内に配置されている計算手順記憶領域３１５に記憶されている計算手順は、耐タンパ領域３１０内の演算部３１４が行う計算の手順が示されており、耐タンパ領域３１０外に配置されている計算手順記憶領域３２２に記憶されている計算手順は、耐タンパ領域３１０外の演算部３２１が行う計算の手順が示されている。
【００１８】
ここで、計算実行装置３０１における処理の流れを概説しておく。
計算実行装置３０１では、通信部３１１が計算依頼装置２０１により暗号化された入力データを入力し、暗号部３１２が通信部３１１により入力された暗号化された入力データを復号し、復号後の入力データを耐タンパ領域内に配置された演算部３１４に対して出力する。
演算部３１４は、復号後の入力データの内容を耐タンパ領域外に配置された演算部３２１に秘匿しながら演算部３２１と通信を行って演算部３２１と協働して依頼計算プロトコルに基づいて入力データに対する演算を行い、入力データに対する演算結果を演算部３２１に秘匿して取得する。
また、演算に際しては、演算部３１４は、演算部３２１以外とは通信を行うことなく（つまり、計算実行装置３０１の外部と通信することなく）、演算部３２１と協働して入力データに対する演算を行い、入力データに対する演算結果を取得する。
そして、暗号部３１２は、演算部３１４から演算結果を入力し、入力した演算結果を暗号化し、通信部３１１は暗号化された演算結果を計算依頼装置２０１に対して送信する。
【００１９】
図７は、本実施の形態における依頼計算処理を説明するためのフローチャートである。依頼計算処理における動作について、図７のフローチャートを参照しながら説明する。
【００２０】
依頼計算処理を行う前に、あらかじめ計算依頼装置２０１と耐タンパ領域３１０とで、暗号鍵を共有しておく（ステップＳ７０１、Ｓ７０２）。
ここでは、鍵記憶領域２１３、鍵記憶領域３１３に、同じ共通鍵ｋが格納されているものとする。
また、あらかじめ計算実行装置３０１の耐タンパ領域３１０と耐タンパ領域外とで、依頼計算手順を共有しておく（ステップＳ７０２、Ｓ７０３）。
ここでは、計算手順記憶領域３１５、計算手順記憶領域３２２に、依頼計算を適用したい関数ｆに対応する依頼計算手順が格納されているものとする。
【００２１】
以下、計算依頼装置２０１が、入力ｘに関数ｆを適用した値ｆ（ｘ）の計算を、計算実行装置３０１に依頼して、ｆ（ｘ）を取得する手順について説明する。
【００２２】
まず、計算依頼装置２０１の暗号部２１２が、計算実行装置３０１に対応する暗号鍵ｋを鍵記憶領域２１３から取得し、この暗号鍵ｋを用いて、入力ｘに対して暗号化・認証処理を行い、Ｅ（ｋ，ｘ）を生成する（ステップＳ７０４）。
暗号化は入力ｘを耐タンパ領域３１０以外に秘匿するために、認証処理は入力ｘが改ざんされていないことを耐タンパ領域３１０が確認できるようにするために実行される。これらは、既存の暗号・認証技術を用いることで実現できる。
次に、計算依頼装置２０１の通信部２１１が、耐タンパ領域３１０の通信部３１１にＥ（ｋ，ｘ）を送信する（ステップＳ７０５）。
計算実行装置３０１では、通信部３１１がＥ（ｋ，ｘ）を受信する（ステップＳ７０６）（データ入力ステップ）。
その後、耐タンパ領域３１０の暗号部３１２が、計算依頼装置２０１に対応する暗号鍵ｋを鍵記憶領域３１３から取得し、この暗号鍵ｋを用いて、Ｅ（ｋ，ｘ）に対して復号・認証処理を行う（ステップＳ７０７）。ここでは、既存の暗号・認証技術を用いることで、入力ｘを取得し、かつ入力ｘが改ざんされていないことを確認する。
【００２３】
その後、耐タンパ領域３１０の演算部３１４、耐タンパ領域外の演算部３２１が、それぞれの計算手順記憶領域３１５、３２２に格納されている依頼計算手順に従って相互に通信を行い、依頼計算プロトコルを実行することで、耐タンパ領域３１０が保持する入力ｘを秘密にしたまま、耐タンパ領域３１０だけが目的関数の値ｆ（ｘ）を得る（ステップＳ７０８）（演算ステップ）。ここでは、既存の依頼計算技術が利用できる。
つまり、既存の依頼計算技術における計算依頼装置の役割を耐タンパ領域内の演算部３１４が担い、計算実行装置の役割を耐タンパ領域外の演算部３２１が担うことにより、計算実行装置３０１の内部のみで依頼計算が実行できる。
【００２４】
依頼計算プロトコルの終了後、耐タンパ領域３１０の暗号部３１２が、暗号鍵ｋを用いて、出力ｆ（ｘ）に対して暗号化・認証処理を行い、Ｅ（ｋ，ｆ（ｘ））を生成する（ステップＳ７０９）。
暗号化は出力ｆ（ｘ）を計算依頼装置２０１以外に秘匿するために、認証処理は出力ｆ（ｘ）が改ざんされていないことを計算依頼装置２０１が確認できるようにするために実行される。これらは、既存の暗号・認証技術を用いることで実現できる。
次に、耐タンパ領域３１０の通信部３１１が、計算依頼装置２０１の通信部２１１にＥ（ｋ，ｆ（ｘ））を送信する（ステップＳ７１０、Ｓ７１１）。
その後、計算依頼装置２０１の暗号部２１２が、暗号鍵ｋを用いて、Ｅ（ｋ，ｆ（ｘ））に対して復号・認証処理を行う（ステップＳ７１２）。ここでは、既存の暗号・認証技術を用いることで、出力ｆ（ｘ）を取得、かつ出力ｆ（ｘ）が改ざんされていないことを確認し、全体の処理を終了する。
【００２５】
以上のように、依頼計算プロトコルを計算実行装置３０１の内部だけで実行することで、ネットワーク１０１を介した依頼計算プロトコルが実行される場合に比べ、通信オーバヘッド削減による高速化を達成することができる。計算依頼装置２０１が保持する秘密情報は、耐タンパ領域３１０の耐タンパ性によって守られる。
前述のように、従来は、計算依頼装置と計算実行装置との間で通信を行いながら依頼計算を実行していたので、計算依頼装置と計算実行装置との間で多くの通信量や通信回数が必要であり、計算の完了までに時間がかかっていた。
本実施の形態によれば、従来の計算依頼装置の役割を計算実行装置３０１内の耐タンパ領域３１０に配置された演算部３１４に担わせ、従来の計算実行装置の役割を計算実行装置３０１内の耐タンパ領域３１０外に配置された演算部３２１に担わせているので、依頼計算自体は、計算実行装置３０１内の演算部３１４と演算部３２１との間の通信を通じて実行される。このため、依頼計算における計算依頼装置２０１と計算実行装置３０１との間の通信は、計算依頼装置２０１から計算実行装置３０１への入力データの送信と、計算実行装置３０１から計算依頼装置２０１への演算結果の送信のみである。
【００２６】
また、依頼計算プロトコルの実行中（ステップＳ７０８）は、計算依頼装置２０１には一切の計算負荷がかからないため、複数の計算実行装置３０１に対して同時に計算を依頼するという、グリッドコンピューティングのような大規模システムを構成することも容易となる。
【００２７】
なお、本実施の形態では、計算依頼装置と計算実行装置が協調して依頼計算プロトコルを実行するシステムについて記述しているが、同様の構成で、ゼロ知識証明を始めとする一般のマルチパーティプロトコルを実行するシステムを構成することも可能である。
例えばゼロ知識証明の場合、証明者が計算依頼装置に、検証者が計算実行装置に相当する。
なお、ゼロ知識証明プロトコルを実行する例については、実施の形態２で説明する。
【００２８】
また、本実施の形態では、耐タンパ領域内外であらかじめ依頼計算手順が共有されているが、依頼計算プロトコル（ステップＳ７０８）実行前に手順を共有することも可能である。
この場合、計算依頼装置が耐タンパ領域に送信した依頼計算手順を、耐タンパ領域内外の計算手順記憶領域に格納することになる。必要に応じて、本実施の形態で示したものと同様の暗号・認証技術が利用できる。
【００２９】
また、本実施の形態では、暗号や認証を行うために共通鍵暗号を利用しているが、公開鍵暗号を利用することも可能である。
この場合、鍵記憶領域は、公開鍵（もしくは公開鍵証明書）や秘密鍵を記憶することになる。
【００３０】
また、本実施の形態では、計算実行装置の耐タンパ領域が暗号部と演算部を持っているが、これらは一部機能を共有していても良い。また、同一であっても良い。
【００３１】
また、本実施の形態では、計算実行装置の耐タンパ領域が通信部を持っているが、かわりに、計算実行装置の耐タンパ領域外に通信部を持たせることも可能である。
この場合、計算依頼装置−耐タンパ領域間の情報のやり取りは、耐タンパ領域外にある通信部を介して行うことになる。
【００３２】
また、本実施の形態では、計算実行装置の耐タンパ領域、耐タンパ領域外にそれぞれ計算手順記憶領域が存在するが、一方だけに計算手順記憶領域が存在するようにすることも可能である。
この場合、ステップＳ７０８の依頼計算プロトコルにおいて、計算手順記憶領域を持つ方が、持たない方に指示を出しながらプロトコルが実行されることになる。
【００３３】
また、本実施の形態では、計算依頼装置が保持する秘密情報を入力ｘとしているが、ｘはスカラー値に限らず、一般のベクトル値であっても良い。
【００３４】
以上、本実施の形態では、マルチパーティプロトコル実行システムにおいて、計算を実行する片方の装置の中に、もう片方の装置が信用し、かつコントロールできる耐タンパ領域を持たせることで、マルチパーティプロトコルの処理時間を短縮する方式について説明した。
【００３５】
また、本実施の形態では、依頼計算システムにおいて、計算を実行する装置の中に、計算を依頼する装置が信用し、かつコントロールできる耐タンパ領域を持たせることで、依頼計算の処理時間を短縮する方式について説明した。
【００３６】
また、本実施の形態では、計算を実行する装置と、耐タンパ領域の間で行われる依頼計算の手順を、あらかじめ計算実行装置と耐タンパ領域に組み込んでおく方式について説明した。
【００３７】
また、本実施の形態では、計算を実行する装置と、耐タンパ領域の間で行われる依頼計算の手順を、計算を依頼する装置が耐タンパ領域に送信し、この手順に基づいて依頼計算を行う方式について説明した。
【００３８】
実施の形態２．
本実施の形態では、マルチパーティプロトコルとしてゼロ知識証明プロトコルを扱い、これを利用して、ユーザの情報をサーバに対して秘匿したままユーザ認証を行うシステムについて述べる。
特に、ユーザの情報として生体情報を用いる、生体認証システムについて説明する。
【００３９】
図８は、本実施の形態に係る生体認証システムの構成例を示す。
クライアント装置９０１とサーバ装置１００１は、ネットワーク１０１で接続されており、サーバ装置１００１はクライアント装置９０１で取得された人の生体情報（認証対象データ）に対する認証演算を実行する。
クライアント装置９０１は、認証依頼装置の例であり、サーバ装置１００１は、情報処理装置の例である。
生体情報とは、例えば、人の指紋、静脈、虹彩、網膜、顔、筆跡、声、ＤＮＡ等の情報である。
【００４０】
図９は、生体認証システム（図８）において、クライアント装置９０１（認証依頼装置）の構成例を表すブロック図である。
図９において、通信部９１１はサーバ装置１００１と通信を行う手段である。
暗号部９１２は共通鍵・公開鍵暗号を用いた暗号化・復号・認証、乱数生成などを行う手段である。
鍵記憶領域９１３はサーバ装置１００１が持つ耐タンパ領域１０１０の公開鍵、およびユーザが生体情報の暗号化に利用する共通鍵を、サーバ装置ＩＤと関連付けて記憶するデータ記憶手段である。
図１１は鍵記憶領域９１３が記憶するデータの一例を表す。サーバ装置ＩＤとしては、サーバ装置を特定できるもの、例えばマシン名やＩＰアドレスなどが利用できる。
【００４１】
図１０は、生体認証システム（図８）において、サーバ装置１００１（情報処理装置）の構成例を表すブロック図である。
図１０において、耐タンパ領域１０１０は、外部から物理的・論理的に内部の情報を読み取られることに対する耐性を持つ領域である。すなわち、たとえサーバ装置１００１の構成要素であっても、耐タンパ領域外から耐タンパ領域１０１０内部に直接アクセスすることはできない。耐タンパ領域１０１０の一例としては、耐タンパ暗号装置、ＩＣカード、耐タンパＵＳＢトークンなどが挙げられる。
通信部１０１１は、クライアント装置９０１と通信を行う手段である。通信部１０１１は、データ入力部及びデータ出力部の例である。
暗号部１０１２は、共通鍵・公開鍵暗号を用いた暗号化・復号・認証、乱数生成などを行う手段である。暗号部１０１２は、耐タンパ領域暗号化部の例である。
鍵記憶領域１０１３は耐タンパ領域１０１０の公開鍵ペアを記憶するデータ記憶手段である。
演算部１０１４は、耐タンパ領域外にある演算部１０２１との間でゼロ知識証明などを行う手段である。演算部１０１４は、耐タンパ領域演算部の例である。
計算手順記憶領域１０１５は、演算部１０１４と演算部１０２１との間で行われるゼロ知識証明の手順を記憶するデータ記憶手段であり、一例として、図６と同様のデータを記憶する。
演算部１０２１は、耐タンパ領域１０１０内部にある演算部１０１４との間でゼロ知識証明などを行う手段である。演算部１０２１は、非耐タンパ領域演算部の例である。
計算手順記憶領域１０２２は、演算部１０２１と演算部１０１４との間で行われるゼロ知識証明の手順を記憶するデータ記憶手段であり、一例として、図６と同様のデータを記憶する。
生体情報記憶領域１０２３は、暗号化された各ユーザの生体情報を、クライアントＩＤと関連付けて記憶するデータ記憶手段である。つまり、生体情報記憶領域１０２３は、クライアント装置９０１で取得された生体情報（認証対象データ）に対する認証演算に先立ち、認証演算に使用するユーザの生体情報を暗号化された状態で予め記憶している。記憶されている生体情報は暗号登録認証データの例であり、また、生体情報記憶領域１０２３は、登録認証データ記憶部の例である。
図１２は生体情報記憶領域１０２３が記憶するデータの一例を表す。
【００４２】
ここで、サーバ装置１００１における処理の流れを概説しておく。
サーバ装置１００１では、通信部１０１１がクライアント装置９０１により暗号化された認証演算の対象となる生体情報（認証対象データ）を入力し、暗号部１０１２が通信部１０１１により入力された暗号化された生体情報を復号し、復号後の生体情報を耐タンパ領域内に配置された演算部１０１４に対して出力する。
演算部１０１４は、復号後の生体情報の内容を耐タンパ領域外に配置された演算部１０２１に秘匿しながら演算部１０２１と通信を行って演算部１０２１と協働してゼロ知識証明プロトコルに基づいてクライアント装置９０１から受信した生体情報に対する認証演算を行い、認証演算結果を取得する。
前述したように、生体情報記憶領域１０２３は、認証演算に先立ち、認証演算に使用する生体情報を暗号化された状態で予め記憶しており、通信部１０１１は、生体情報記憶領域１０２３に記憶されている生体情報の暗号化に用いられた暗号鍵を、クライアント装置９０１から生体情報とともに入力し、演算部１０１４及び演算部１０２１は、ゼロ知識証明プロトコルに基づき、通信部１０１１により入力された暗号鍵と生体情報と、生体情報記憶領域１０２３に記憶されている生体情報を用いて、前記暗号鍵の正当性と、クライアント装置９０１から入力した生体情報の正当性を確認して、認証演算を行う。
また、演算に際しては、演算部１０１４は、演算部１０２１以外とは通信を行うことなく（つまり、サーバ装置１００１の外部とは通信することなく）、演算部１０２１と協働して認証演算を行い、認証演算結果を取得する。
そして、暗号部１０１２は、演算部１０１４から認証演算結果を入力し、入力した認証演算結果を暗号化し、通信部１０１１は暗号化された認証演算結果をクライアント装置９０１に対して送信する。
【００４３】
図１３は、本実施の形態におけるクライアント登録処理を説明するためのフローチャートである。
図１４は、本実施の形態におけるクライアント認証処理を説明するためのフローチャートである。
【００４４】
まずクライアント登録処理における動作について、図１３のフローチャートを参照しながら説明する。
最初にクライアント装置９０１の暗号部９１２が暗号鍵ｋｔを生成し、鍵記憶領域９１３から読み出した、サーバ装置ＩＤに対応する耐タンパ領域公開鍵で暗号化する。
暗号化されたものを、通信部９１１を用いて耐タンパ領域１０１０に送信する。耐タンパ領域１０１０の暗号部１０１２は、通信部１０１１が受信した内容を、鍵記憶領域１０１３が記憶する秘密鍵を用いて復号し、暗号鍵ｋｔを得る。
以上の処理により、クライアント装置９０１と耐タンパ領域１０１０との間で暗号鍵ｋｔが共有されたことになる（ステップＳ１３０１）。
その後、クライアント装置９０１の暗号部９１２が暗号鍵ｋを生成し、生成された暗号鍵ｋを鍵記憶領域９１３に、サーバ装置ＩＤと関連付けて格納する（ステップＳ１３０２）。
【００４５】
次に、生体情報読取部９１４がクライアントに対応する生体情報（指紋、静脈、虹彩、網膜、顔、筆跡、声、ＤＮＡなどの情報。以降、登録時生体情報と記述する）ｂを読み取る（ステップＳ１３０３）。登録時生体情報ｂは画像・音声などのデータそのものであってもよいし、特徴点抽出などの処理が行われた後のものであってもよい。
暗号部９１２は、クライアントＩＤ、登録時生体情報ｂおよび暗号鍵ｋを、暗号鍵ｋｔを用いて暗号化する。暗号化されたものを、通信部９１１が耐タンパ領域１０１０に送信する（ステップＳ１３０４）。送られたものを耐タンパ領域１０１０の通信部１０１１が受信し、暗号部１０１２が暗号鍵ｋｔを用いて復号し、クライアントＩＤ、登録時生体情報ｂおよび暗号鍵ｋを得る（ステップＳ１３０５）。
その後、耐タンパ領域１０１０の演算部１０１４が登録時生体情報ｂを特定の形式に従った情報ｆに変換する（ステップＳ１３０６）。ｆは登録時生体情報ｂの内容全てと、冗長な情報を含む。冗長な情報として、例えばｂに関するパリティ、ｂのハッシュ値、時刻情報、もしくは決まった文字列などが利用できる。次に、暗号部１０１２が、本システムであらかじめ決められた暗号化アルゴリズムＥと受信した暗号鍵ｋを用いて、情報ｆを暗号化してｅを得る（ｅ＝Ｅ（ｋ，ｆ））（ステップＳ１３０７）。
耐タンパ領域１０１０はクライアントＩＤおよび暗号化生体情報ｅをサーバ装置１００１の耐タンパ領域外に送信する（ステップＳ１３０８、Ｓ１３０９）。最後に、サーバ装置１００１はクライアントＩＤと暗号化生体情報ｅを生体情報記憶領域１０２３に格納する（ステップＳ１３１０）。
【００４６】
次にクライアント認証処理における動作を説明する前に、クライアント認証処理の原理を説明する。
クライアント認証時、クライアントが保持する情報は暗号鍵ｋ、および認証時に読み取られる生体情報（以降、認証時生体情報と記述する）ｂ’であり、サーバが保持する情報は暗号化生体情報ｅである。
仮に暗号鍵ｋと認証時生体情報ｂ’をサーバに開示するとすれば、サーバはＦ１（Ｄ（ｋ，ｅ））＝１を確認することで暗号鍵ｋの正当性を、Ｍ（Ｆ２（Ｄ（ｋ，ｅ）），ｂ’）＝１を確認することで認証時生体情報ｂ’の正当性（登録時生体情報ｂとの類似度が十分高いこと）を確認でき、クライアント認証を完了できる。
ここで、Ｄは暗号化アルゴリズムＥに対応する復号アルゴリズム、Ｆ１は入力が特定の形式に従っている場合に限り１を出力する関数、Ｆ２は特定の形式に従った（冗長な情報を含む）生体情報を入力として生体情報だけを出力する関数、Ｍは２つの生体情報を入力としてこれらが同一人物からのものだと判断される場合に限り１を出力する生体情報照合関数である。
しかし、ｋやｂ’の開示は生体情報の開示を意味するため、これらを開示することなく暗号鍵・生体情報の正当性を示す必要がある。
以上の目的を達成するために、ゼロ知識証明プロトコルを実行する。ゼロ知識証明プロトコルを利用することで、クライアントの秘密情報ｋ，ｂ’を秘密にしたままで、前述の関数値が１であることをサーバに確信させることが可能となる。
【００４７】
クライアント認証処理における動作の詳細について、図１４のフローチャートを参照しながら説明する。
最初にクライアント装置９０１の暗号部９１２が暗号鍵ｋｔ（クライアント登録時に用いたものと同じでなくてもよい）を生成し、鍵記憶領域９１３から読み出した、サーバ装置ＩＤに対応する耐タンパ領域公開鍵で暗号化する。暗号化されたものを、通信部９１１を用いて耐タンパ領域１０１０に送信する。耐タンパ領域１０１０の暗号部１０１２は、通信部１０１１が受信した内容を、鍵記憶領域１０１３が記憶する秘密鍵を用いて復号し、暗号鍵ｋｔを得る。以上の処理により、クライアント装置９０１と耐タンパ領域１０１０との間で暗号鍵ｋｔが共有されたことになる（ステップＳ１４０１）。
クライアント装置９０１は、鍵記憶領域９１３から、サーバ装置ＩＤに対応する暗号鍵ｋを読み出す（ステップＳ１４０２）。
その後、クライアント装置９０１の生体情報読取部９１４がクライアントに対応する生体情報ｂ’を読み取る（ステップＳ１４０３）。
暗号部９１２は、クライアントＩＤ、認証時生体情報ｂ’および暗号鍵ｋを、暗号鍵ｋｔを用いて暗号化する。暗号化されたものを、通信部９１１が耐タンパ領域１０１０に送信する（ステップＳ１４０４）。
送られたものを耐タンパ領域１０１０の通信部１０１１が受信し、暗号部１０１２が暗号鍵ｋｔを用いて復号し、クライアントＩＤ、認証時生体情報ｂ’および暗号鍵ｋを得る（ステップＳ１４０５）（データ入力ステップ）。
【００４８】
次に、耐タンパ領域１０１０はクライアントＩＤをサーバ装置１００１の耐タンパ領域外に送信する（ステップＳ１４０６、Ｓ１４０７）。
サーバ装置１００１は、受信したクライアントＩＤに対応する暗号化生体情報ｅを、生体情報記憶領域１０２３から取得する（ステップＳ１４０８）。
【００４９】
その後、耐タンパ領域１０１０の演算部１０１４、サーバ装置１００１の演算部１０２１を用いて、計算手順記憶領域１０１５、１０２２に記憶されている計算手順に従って相互に通信を行い、ゼロ知識証明プロトコルを実行することで、クライアントの秘密情報ｋ，ｂ’を秘密にしたまま、サーバは証明対象である「Ｆ１（Ｄ（ｋ，ｅ））＝１であるか」と「Ｍ（Ｆ２（Ｄ（ｋ，ｅ）），ｂ’）＝１であるか」を判定する（ステップＳ１４０９）（演算ステップ）。なお、Ｄ，Ｆ１，Ｆ２，Ｍはそれぞれ前述した関数である。この判定には、既存のマルチパーティプロトコル技術が利用できる。
つまり、既存のマルチパーティプロトコル技術におけるクライアント装置の役割を耐タンパ領域内の演算部１０１４が担い、サーバ装置の役割を耐タンパ領域外の演算部１０２１が担うことにより、サーバ装置１００１の内部のみでマルチパーティプロトコル演算が実行できる。
【００５０】
ゼロ知識証明プロトコルの終了後、サーバ装置１００１は証明結果を認証結果として、耐タンパ領域１０１０に送信する（ステップＳ１４１０、Ｓ１４１１）。
その後、耐タンパ領域１０１０は暗号部１０１２を用いて認証結果を暗号鍵ｋｔで暗号化し、通信部１０１１を用いて、クライアント装置９０１に送信する（ステップＳ１４１２）。
クライアント装置９０１の通信部９１１が受信した内容を、暗号部９１２が暗号鍵ｋｔで復号し、認証結果を得ることでクライアント認証処理が終了する（ステップＳ１４１３）。
【００５１】
以上のように、ゼロ知識証明プロトコルを用いることによって、ユーザの生体情報をサーバに対して秘匿したままの生体認証が実現できるが、ゼロ知識証明プロトコルをサーバ装置１００１の内部だけで実行することで、ネットワーク１０１を介したゼロ知識証明プロトコルが実行される場合に比べ、通信オーバヘッドや、クライアント装置９０１の演算負荷削減による高速化を達成することができる。
前述のように、従来は、クライアント装置とサーバ装置との間で通信を行いながらゼロ知識証明演算を実行していたので、クライアント装置とサーバ装置との間で多くの通信量や通信回数が必要であり、計算の完了までに時間がかかっていた。
本実施の形態によれば、従来のクライアント装置の役割をサーバ装置１００１内の耐タンパ領域１０１０に配置された演算部１０１４に担わせ、従来のサーバ装置の役割をサーバ装置１００１内の耐タンパ領域１０１０外に配置された演算部１０２１に担わせているので、ゼロ知識証明演算自体は、サーバ装置１００１内の演算部１０１４と演算部１０２１との間の通信を通じて実行される。このため、本実施の形態のゼロ知識証明演算におけるクライアント装置９０１とサーバ装置１００１との間の通信は、クライアント装置９０１からサーバ装置１００１への生体情報及び鍵の送信と、サーバ装置１００１からクライアント装置９０１への認証演算結果の送信のみである。
【００５２】
また、ユーザの生体情報およびクライアント装置９０１が保持する秘密情報は、耐タンパ領域１０１０の耐タンパ性によって守られる。
【００５３】
なお、本実施の形態では、クライアント登録処理の際、耐タンパ領域が仲介することによってサーバ装置の生体情報記憶領域に暗号化生体情報を登録しているが、クライアント装置が（耐タンパ領域を介さずに）直接サーバ装置と通信を行い、暗号化生体情報を登録することも可能である。
この場合、サーバ装置は耐タンパ領域外に通信部、暗号部、鍵記憶領域を持つことになる。また、生体情報の形式変換、暗号化などは、クライアント装置が行うことになる。一方、クライアント登録処理は、フレキシブルディスクなどを介してオフラインで実行することも可能である。
【００５４】
また、本実施の形態では、耐タンパ領域内外での通信における暗号化について明示していないが、必要に応じて暗号化を行うことが可能である。この場合、サーバ装置は耐タンパ領域外に暗号部、鍵記憶領域を持つことになる。
【００５５】
また、本実施の形態では、クライアント装置と耐タンパ領域との通信におけるメッセージ認証について明示していないが、必要に応じて追加することが可能である。
【００５６】
また、本実施の形態では、クライアント装置の鍵記憶領域がサーバ装置の公開鍵を記憶しているが、かわりに公開鍵証明書を記憶していても良い。また、公開鍵を記憶せずに、必要な時にサーバ装置の公開鍵証明書を取得し、その正当性を確認してから公開鍵を利用するようにしても良い。
【００５７】
また、本実施の形態では、サーバ装置の耐タンパ領域が暗号部と演算部を持っているが、これらは一部機能を共有していても良い。また、同一であっても良い。
【００５８】
また、本実施の形態では、サーバ装置の耐タンパ領域が通信部を持っているが、かわりに、サーバ装置の耐タンパ領域外に通信部を持たせることも可能である。
この場合、クライアント装置−耐タンパ領域間の情報のやり取りは、耐タンパ領域外にある通信部を介して行うことになる。
【００５９】
また、本実施の形態では、サーバ装置の耐タンパ領域、耐タンパ領域外にそれぞれ計算手順記憶領域が存在するが、一方だけに計算手順記憶領域が存在するようにすることも可能である。
この場合、ステップＳ１４０９のゼロ知識証明プロトコルにおいて、計算手順記憶領域を持つ方が、持たない方に指示を出しながらプロトコルが実行されることになる。
【００６０】
以上のように、本実施の形態では、マルチパーティプロトコルを利用して、ユーザの情報をサーバに対して秘匿したままユーザ認証を行うシステムにおいて、サーバ装置の中に、全てのユーザが信用する耐タンパ領域を持たせることで、認証の処理時間を短縮する方式について説明した。
【００６１】
また、本実施の形態では、ユーザ認証として生体認証を利用する方式について説明した。
【００６２】
最後に、実施の形態１及び２に係る計算依頼装置２０１、計算実行装置３０１、クライアント装置９０１及びサーバ装置１００１のハードウェア構成例について説明する。
図１５は、本実施の形態及び以下に述べる実施の形態に示す計算依頼装置２０１、計算実行装置３０１、クライアント装置９０１及びサーバ装置１００１のハードウェア資源の一例を示す図である。なお、図１５の構成は、あくまでも計算依頼装置２０１、計算実行装置３０１、クライアント装置９０１及びサーバ装置１００１のハードウェア構成の一例を示すものであり、計算依頼装置２０１、計算実行装置３０１、クライアント装置９０１及びサーバ装置１００１のハードウェア構成は図１５に記載の構成に限らず、他の構成であってもよい。
【００６３】
図１５において、計算依頼装置２０１、計算実行装置３０１、クライアント装置９０１及びサーバ装置１００１は、プログラムを実行するＣＰＵ１５１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ１５１１は、バス１５１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１５１４、通信ボード１５１５、表示装置１５０１、キーボード１５０２、マウス１５０３、磁気ディスク装置１５２０と接続され、これらのハードウェアデバイスを制御する。更に、ＣＰＵ１５１１は、ＦＤＤ１５０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置１５０５（ＣＤＤ）、プリンタ装置１５０６、スキャナ装置１５０７と接続していてもよい。また、磁気ディスク装置１５２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ１５１４は、揮発性メモリの一例である。ＲＯＭ１５１３、ＦＤＤ１５０４、ＣＤＤ１５０５、磁気ディスク装置１５２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード１５１５、キーボード１５０２、スキャナ装置１５０７、ＦＤＤ１５０４などは、入力部、入力装置の一例である。
また、通信ボード１５１５、表示装置１５０１、プリンタ装置１５０６などは、出力部、出力装置の一例である。
【００６４】
通信ボード１５１５は、図１に示すように、ネットワークに接続されている。例えば、通信ボード１５１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
磁気ディスク装置１５２０には、オペレーティングシステム１５２１（ＯＳ）、ウィンドウシステム１５２２、プログラム群１５２３、ファイル群１５２４が記憶されている。プログラム群１５２３のプログラムは、ＣＰＵ１５１１、オペレーティングシステム１５２１、ウィンドウシステム１５２２により実行される。
【００６５】
上記プログラム群１５２３には、本実施の形態１及び２の説明において「〜部」、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ１５１１により読み出され実行される。
ファイル群１５２４には、実施の形態１及び２の説明において、「〜の判断」、「〜の計算」、「〜の演算」、「〜の比較」、「〜の更新」、「〜の設定」、「〜の登録」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ１５１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１及び２で説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ１５１４のメモリ、ＦＤＤ１５０４のフレキシブルディスク、ＣＤＤ１５０５のコンパクトディスク、磁気ディスク装置１５２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス１５１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００６６】
また、本実施の形態１及び２の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、「〜手段」として説明しているものは、ＲＯＭ１５１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ１５１１により読み出され、ＣＰＵ１５１１により実行される。すなわち、プログラムは、本実施の形態１及び２に示す「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、本実施の形態１及び２に示す「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【００６７】
このように、本実施の形態１及び２に示す計算依頼装置２０１、計算実行装置３０１、クライアント装置９０１及びサーバ装置１００１は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【図面の簡単な説明】
【００６８】
【図１】実施の形態１に係る依頼計算システムの構成例を示す図。
【図２】実施の形態１に係る計算依頼装置の構成例を示す図。
【図３】実施の形態１に係る計算実行装置の構成例を示す図。
【図４】実施の形態１に係る計算依頼装置の鍵記憶領域の記憶内容の例を示す図。
【図５】実施の形態１に係る計算実行装置の鍵記憶領域の記憶内容の例を示す図。
【図６】実施の形態１に係る計算実行装置の計算手順記憶領域の記憶内容の例を示す図。
【図７】実施の形態１に係る依頼計算システムにおける処理例を示すフローチャート図。
【図８】実施の形態２に係る生体認証システムの構成例を示す図。
【図９】実施の形態２に係るクライアント装置の構成例を示す図。
【図１０】実施の形態２に係るサーバ装置の構成例を示す図。
【図１１】実施の形態２に係るクライアント装置の鍵記憶領域の記憶内容の例を示す図。
【図１２】実施の形態２に係るサーバ装置の生体情報記憶領域の記憶内容の例を示す図。
【図１３】実施の形態２に係る生体認証システムにおける処理例を示すフローチャート図。
【図１４】実施の形態２に係る生体認証システムにおける処理例を示すフローチャート図。
【図１５】実施の形態１及び２に係る計算依頼装置２０１、計算実行装置３０１、クライアント装置９０１及びサーバ装置１００１のハードウェア構成例を示す図。
【符号の説明】
【００６９】
１０１  ネットワーク、２０１  計算依頼装置、２１１  通信部、２１２  暗号部、２１３  鍵記憶領域、３０１  計算実行装置、３１０  耐タンパ領域、３１１  通信部、３１２  暗号部、３１３  鍵記憶領域、３１４  演算部、３１５  計算手順記憶領域、３２１  演算部、３２２  計算手順記憶領域、９０１  クライアント装置、９１１  通信部、９１２  暗号部、９１３  鍵記憶領域、９１４  生体情報読取部、１００１  サーバ装置、１０１１  通信部、１０１２  暗号部、１０１３  鍵記憶領域、１０１４  演算部、１０１５  計算手順記憶領域、１０２１  演算部、１０２２  計算手順記憶領域、１０２３  生体情報記憶領域。
【図１】
2008177966.tif 000003
【図２】
2008177966.tif 000004
【図３】
2008177966.tif 000005
【図４】
2008177966.tif 000006
【図５】
2008177966.tif 000007
【図６】
2008177966.tif 000008
【図７】
2008177966.tif 000009
【図８】
2008177966.tif 000010
【図９】
2008177966.tif 000011
【図１０】
2008177966.tif 000012
【図１１】
2008177966.tif 000013
【図１２】
2008177966.tif 000014
【図１３】
2008177966.tif 000015
【図１４】
2008177966.tif 000016
【図１５】
2008177966.tif 000017