(57)【要約】【課題】一方に乱数生成機能がない装置を相互認証する際でも、乱数生成機能がない装置の乱数生成メカニズムが容易にわからないようにすると共に、乱数生成機能がない装置に乱数生成メカニズムを搭載する。【解決手段】乱数を生成する装置Ａ１に接続された乱数生成機能のない装置Ｂ２が、装置Ａ１から送信された乱数を受信し、装置Ａ１と共有していない非共有鍵を用いて受信した乱数の暗号化を行うとともに、乱数の暗号化が行われる度に、非共有鍵を更新することにより、乱数生成機能のない装置Ｂ２が乱数を生成することができる。【選択図】図１
2007233266.tif 000002
【特許請求の範囲】
【請求項１】
乱数を生成する乱数生成装置と通信を行う情報処理装置であって、
前記乱数生成装置から送信された乱数を受信する受信部と、
前記乱数生成装置が共有していない非共有鍵を用いて、前記受信部により受信された乱数の暗号化を行う暗号処理部と、
前記暗号処理部により乱数の暗号化が行われる度に、非共有鍵を更新する鍵更新部とを有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、
揮発メモリと不揮発メモリを有し、
前記情報処理装置は、更に、
前記鍵更新部により非共有鍵が更新される度に、更新後の非共有鍵を揮発メモリに格納するとともに、一定期間ごとに、更新後の非共有鍵を不揮発メモリに格納するメモリ格納処理部を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記鍵更新部は、
非共有鍵の値を、一定値にてインクリメント又はデクリメントして、非共有鍵を更新することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記情報処理装置は、更に、
時刻を計測する時刻計測部を有し、
前記鍵更新部は、
非共有鍵の値を、前記時刻計測部により計測された時刻の値に基づいて変更して、非共有鍵を更新することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記鍵更新部は、
非共有鍵の値を、前記受信部により受信された乱数の値に基づいて変更して、非共有鍵を更新することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記鍵更新部は、
非共有鍵の値を、前記暗号処理部により暗号化された暗号データの値に基づいて変更して、非共有鍵を更新することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記情報処理装置は、更に、
前記暗号処理部による暗号化の回数をカウントするカウンタを有し、
前記鍵更新部は、
非共有鍵の値を、前記カウンタによりカウントされた暗号化の回数の値に基づいて変更して、非共有鍵を更新することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記暗号処理部は、
前記受信部により受信された乱数の値を変更し、値を変更した後の乱数の暗号化を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記暗号処理部は、
前記受信部により受信された乱数の二以上のビット位置の値を入れ替えて乱数の値を変更することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記情報処理装置は、更に、
前記受信部により受信された乱数を記憶する乱数記憶部を有し、
前記暗号処理部は、
前記乱数記憶部により記憶されている前記受信部により以前に受信された乱数と、前記受信部により新たに受信された乱数のとの間で排他的論理和演算を行って、新たに受信された乱数の値を変更することを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記情報処理装置は、更に、
時刻を計測する時刻計測部を有し、
前記暗号処理部は、
前記受信部により受信された乱数の値を、前記時刻計測部により計測された時刻の値に基づいて変更することを特徴とする請求項８に記載の情報処理装置。
【請求項１２】
乱数を生成する乱数生成装置と通信を行う情報処理装置であって、
前記乱数生成装置から送信された乱数を受信する受信部と、
前記受信部により以前に受信された乱数を記憶している乱数記憶部と、
前記受信部により新たに受信された乱数と、前記乱数記憶部に記憶されている乱数とを比較する乱数比較部と、
前記乱数比較部による比較の結果、前記受信部により新たに受信された乱数が前記乱数記憶部に記憶されているいずれかの乱数に一致する場合に、前記受信部により新たに受信された乱数を更新する乱数更新部と、
前記乱数生成装置と共有していない非共有鍵を用いて、前記乱数更新部により更新された更新後の乱数の暗号化を行う暗号処理部とを有することを特徴とする情報処理装置。
【請求項１３】
前記乱数記憶部は、
前記乱数更新部により更新された更新後の乱数を記憶することを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記情報処理装置は、
前記乱数記憶部として、揮発メモリと不揮発メモリを有し、
前記情報処理装置は、更に、
前記受信部により乱数が受信される度に、受信された乱数を揮発メモリに格納し、前記乱数更新部により乱数が更新される度に、更新後の乱数を揮発メモリに格納するとともに、一定期間ごとに、前記受信部により受信された乱数及び前記乱数更新部により更新された更新後の乱数を不揮発メモリに格納するメモリ格納処理部を有することを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記乱数更新部は、
前記受信部により新たに受信された乱数の値を、一定値にてインクリメント又はデクリメントして、前記受信部により新たに受信された乱数を更新することを特徴とする請求項１２に記載の情報処理装置。
【請求項１６】
前記情報処理装置は、更に、
時刻を計測する時刻計測部を有し、
前記乱数更新部は、
前記受信部により新たに受信された乱数の値を、前記時刻計測部により計測された時刻の値に基づいて変更して、前記受信部により新たに受信された乱数を更新することを特徴とする請求項１２に記載の情報処理装置。
【請求項１７】
前記情報処理装置は、更に、
前記暗号処理部による暗号化の回数をカウントするカウンタを有し、
前記乱数更新部は、
前記受信部により受信された乱数の値を、前記カウンタによりカウントされた暗号化の回数の値に基づいて変更して、前記受信部により新たに受信された乱数を更新することを特徴とする請求項１２に記載の情報処理装置。
【請求項１８】
前記情報処理装置は、更に、
前記暗号処理部により非共有鍵を用いて暗号化された非共有鍵一次暗号データを前記乱数生成装置に送信する送信部と、
前記乱数生成装置により前記非共有鍵一次暗号データから暗号化された非共有鍵二次暗号データを取得し、取得した前記非共有鍵二次暗号データを復号する復号処理部と、
前記復号処理部にて復号された前記非共有鍵二次暗号データの復号値と、前記非共有鍵一次暗号データとを比較する復号値比較部とを有することを特徴とする請求項１又は１２に記載の情報処理装置。
【請求項１９】
前記情報処理装置は、更に、
前記乱数生成装置と共有している共有鍵を保持する鍵保持部を有し、
前記復号処理部は、
前記乱数生成装置により共有鍵を用いて前記非共有鍵一次暗号データから暗号化された非共有鍵二次暗号データを取得し、取得した前記非共有鍵二次暗号データを前記鍵保持部が保有する共有鍵を用いて復号することを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記暗号処理部は、
前記乱数生成装置と共有している共有鍵を用いて、前記受信部により受信された乱数の暗号化を行い、
前記情報処理装置は、更に、
前記暗号処理部により共有鍵を用いて暗号化された共有鍵暗号データを前記乱数生成装置に送信する送信部とを有することを特徴とする請求項１又は１２に記載の情報処理装置。
【請求項２１】
乱数を生成する乱数生成装置と通信を行って暗号化を行う暗号化方法であって、
前記乱数生成装置から送信された乱数を受信する受信ステップと、
前記乱数生成装置が共有していない非共有鍵を用いて、前記受信ステップにより受信された乱数の暗号化を行う暗号処理ステップと、
前記暗号処理ステップにより乱数の暗号化が行われる度に、非共有鍵を更新する鍵更新ステップとを有することを特徴とする暗号化方法。
【請求項２２】
乱数を生成する乱数生成装置と通信を行って暗号化を行う暗号化方法であって、
前記乱数生成装置から送信された乱数を受信する受信ステップと、
前記受信ステップにより新たに受信された乱数と、前記受信ステップにより以前に受信されている乱数とを比較する乱数比較ステップと、
前記乱数比較ステップによる比較の結果、前記受信ステップにより新たに受信された乱数が前記受信ステップにより以前に受信されている乱数のいずれかに一致する場合に、前記受信ステップにより新たに受信された乱数を更新する乱数更新ステップと、
前記乱数生成装置と共有していない非共有鍵を用いて、前記乱数更新ステップにより更新された更新後の乱数の暗号化を行う暗号処理ステップとを有することを特徴とする暗号化方法。
【請求項２３】
前記暗号化方法は、更に、
前記暗号処理ステップにより非共有鍵を用いて暗号化された非共有鍵一次暗号データを前記乱数生成装置に送信する送信ステップと、
前記乱数生成装置により前記非共有鍵一次暗号データから暗号化された非共有鍵二次暗号データを取得し、取得した前記非共有鍵二次暗号データを復号する復号処理ステップと、
前記復号処理ステップにて復号された前記非共有鍵二次暗号データの復号値と、前記非共有鍵一次暗号データとを比較する復号値比較ステップとを有することを特徴とする請求項２１又は２２に記載の暗号化方法。
【請求項２４】
乱数を生成する乱数生成装置と通信を行うコンピュータに、
前記乱数生成装置から送信された乱数を受信する受信処理と、
前記乱数生成装置が共有していない非共有鍵を用いて、前記受信処理により受信された乱数の暗号化を行う暗号処理と、
前記暗号処理により乱数の暗号化が行われる度に、非共有鍵を更新する鍵更新処理とを実行させることを特徴とするプログラム。
【請求項２５】
乱数を生成する乱数生成装置と通信を行うコンピュータに、
前記乱数生成装置から送信された乱数を受信する受信処理と、
前記受信処理により新たに受信された乱数と、前記受信処理により以前に受信されている乱数とを比較する乱数比較処理と、
前記乱数比較処理による比較の結果、前記受信処理により新たに受信された乱数が前記受信処理により以前に受信されている乱数のいずれかに一致する場合に、前記受信処理により新たに受信された乱数を更新する乱数更新処理と、
前記乱数生成装置と共有していない非共有鍵を用いて、前記乱数更新処理により更新された更新後の乱数の暗号化を行う暗号処理とを実行させることを特徴とするプログラム。
【請求項２６】
前記プログラムは、更に、
前記暗号処理により非共有鍵を用いて暗号化された非共有鍵一次暗号データを前記乱数生成装置に送信する送信処理と、
前記乱数生成装置により前記非共有鍵一次暗号データから暗号化された非共有鍵二次暗号データを取得し、取得した前記非共有鍵二次暗号データを復号する復号処理と、
前記復号処理にて復号された前記非共有鍵二次暗号データの復号値と、前記非共有鍵一次暗号データとを比較する復号値比較処理とをコンピュータに実行させることを特徴とする請求項２４又は２５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証技術に関し、特に乱数を用いた認証技術に関する。
【背景技術】
【０００２】
従来の「認証装置及び被認証装置及び認証システム及び認証方法及び被認証方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体」は、被認証側から送られてきた乱数ＲＮＧを、認証側が、加算などの演算Ｘを行い、その結果をチャレンジとして被認証側に送り返し、チャレンジ＆レスポンスを行っていた（例えば、特許文献１）。
【０００３】
また、従来の「チャレンジ−レスポンス方式における機器間の認証処理方法」では、パラメータ更新機能をサーバ、端末双方に持たせ、同期を取りながらパラメータ更新を行っていた（例えば、特許文献２）。
【特許文献１】特開２００５−９４０８９号公報  第１０頁〜１１頁、第２図
【特許文献２】特開２００３−３１８８９４号公報  第６頁〜７頁、第４図
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の「認証装置及び被認証装置及び認証システム及び認証方法及び被認証方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体」（特許文献１）では、送られてきた乱数ＲＮＧを加算などの演算Ｘで加工して、チャレンジとして送り返しているので、演算Ｘの特性により、容易に乱数ＲＮＧとチャレンジとの関係がわかってしまうおそれがあった。
【０００５】
従来の「チャレンジ−レスポンス方式における機器間の認証処理方法」（特許文献２）では、パラメータ更新の機能を双方に持たせなければならず、双方の同期をとりつつ、パラメータを双方が秘匿しなければならないという手間がかかった。
【０００６】
本発明は、このような問題点を解決することを主な目的の一つとしており、一方に乱数生成機能がない装置を相互認証する際でも、乱数生成機能がない装置の乱数生成メカニズムが容易にわからないようにすると共に、乱数生成機能がない装置のみに乱数生成メカニズムを搭載する方法および装置を提供することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、
乱数を生成する乱数生成装置と通信を行う情報処理装置であって、
前記乱数生成装置から送信された乱数を受信する受信部と、
前記乱数生成装置が共有していない非共有鍵を用いて、前記受信部により受信された乱数の暗号化を行う暗号処理部と、
前記暗号処理部により乱数の暗号化が行われる度に、非共有鍵を更新する鍵更新部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、乱数生成機能を有しない情報処理装置が、乱数生成装置から送られてきた乱数を情報処理装置だけが保持している非共有鍵で暗号化するようにしたので、乱数生成機能を有しない情報処理装置でも乱数生成が行えるようになり、かつ、暗号化の度に非共有鍵を更新するようにしたので、乱数生成メカニズムが容易に外部から察知できず、認証処理における秘匿性を保つことができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
本発明の詳細な実施の形態１について図１を参照し説明する。
図１は、本実施の形態に係る装置構成の一例を示す。
装置Ａ１は乱数発生機能を有する装置、装置Ｂ２は乱数発生機能を有さない装置で、この両者が相互に認証を行う。装置Ａ１は、乱数生成装置の例であり、装置Ｂ２は、情報処理装置の例である。
【００１０】
図中、１００は一時的なデータを保持する揮発メモリで、電源切断により保持内容が消滅する。
１０１は電源を切断しても保持内容が消滅しない、半永久的にデータを保持する不揮発メモリである。この不揮発メモリ１０１には、後述のＣＰＵの動作を規定するプログラムや、秘密とすべき鍵などが書き込まれる。
不揮発メモリ１０１には、オンボードで書き換え可能なものもある。この種の不揮発メモリ１０１は、書き換え回数に制約があり、ある一定回数を超えると書き込みデータ値が保証されない。
１０２は、乱数発生器で、本実施の形態では真性乱数、または、擬似乱数を発生するものとする。乱数発生器１０２は装置Ａ１のみが保有する。
１０３は、制御動作や暗号計算を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）である。ＣＰＵの代わりに、規定された動作を行うロジック回路であっても構わない。
１０４は装置Ａ１が装置Ｂ２とデータをやり取りする通信装置である。
【００１１】
装置Ｂ２において、揮発メモリ２００、不揮発メモリ２０１、ＣＰＵ２０３及び通信装置２０４は、それぞれ、装置Ａ１の揮発メモリ１００、不揮発メモリ１０１、ＣＰＵ１０３及び通信装置１０４と同様である。
【００１２】
本実施の形態においては、乱数機能を有する装置Ａ１に接続された乱数生成機能のない装置Ｂ２は、装置Ａ１から送信された乱数を受信し、装置Ａ１と共有していない非共有鍵を用いて受信した乱数の暗号化を行うとともに、乱数の暗号化が行われる度に、非共有鍵を更新することにより、乱数生成機能のない装置Ｂ２が乱数を生成することができ、乱数生成機能がない装置Ｂ２の乱数生成メカニズムが容易にわからないようにすることができる。
【００１３】
図２は、実施の形態１における装置Ａ１及び装置Ｂ２の外観の一例を示す図である。
図２において、装置Ａ１及び装置Ｂ２は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続されていてもよく、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されていてもよい。
装置Ａ１及び装置Ｂ２は、それぞれＬＡＮ９２４やインターネット９４０を介して相互に接続されている。
【００１４】
図１に示したように、装置Ａ１及び装置Ｂ２は、プログラムを実行するＣＰＵを備えている。ＣＰＵは、バスを介して、前述した揮発メモリ、不揮発メモリ、通信装置の他、キーボード９０２、マウス９０３等と接続していてもよく、これらのハードウェアデバイスを制御するようにしてもよい。
更に、ＣＰＵは、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。
また、揮発メモリは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
また、不揮発メモリは、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク装置、光ディスク装置、フラッシュメモリ、メモリカード読み書き装置等である。
また、磁気ディスク装置等には、オペレーティングシステム、ウィンドウシステム、プログラム群、ファイル群が記憶されている。プログラム群のプログラムは、ＣＰＵ、オペレーティングシステム、ウィンドウシステムにより実行される。
【００１５】
上記プログラム群には、以下に述べる説明において「〜部」、「〜機能」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵにより読み出され実行される。
ファイル群には、以下に述べる説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」、「〜の更新結果」等として説明する情報や暗号鍵や乱数値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや暗号鍵や乱数値や変数値やパラメータは、読み書き回路を介してＣＰＵによりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・抽出のＣＰＵの動作の間、情報や暗号鍵や乱数値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下で説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭのメモリ、ＦＤＤのフレキシブルディスク、ＣＤＤのコンパクトディスク、磁気ディスク装置の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バスや信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１６】
また、以下に述べる説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、として説明するものは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵにより読み出され、ＣＰＵにより実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００１７】
このように、本実施の形態及び以下に述べる実施の形態に示す装置Ａ１及び装置Ｂ２は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【００１８】
次に、装置Ｂ２（情報処理装置）の機能ブロック図を図３に示す。
図３において、受信部２１０は、図１の通信装置２０４を構成し、例えば、装置Ａ１から送信された乱数等を受信する。
送信部２１１も、図１の通信装置２０４を構成し、例えば、装置Ａ１に対して乱数に対する暗号化結果等を送信する。装置Ｂ２から装置Ａ１に対して送信される暗号値は、装置Ａ１と装置Ｂ２との間で共有している秘密鍵Ｋ１による暗号値と、共有していない秘密鍵Ｋ２（非共有鍵）による暗号値（非共有鍵一次暗号データ）がある。
鍵更新部２１２は、秘密鍵Ｋ２（非共有鍵）の値を更新する。鍵更新部２１２は、後述する暗号処理部２１３により乱数の暗号化が行われる度に、秘密鍵Ｋ２（非共有鍵）を更新する。
暗号処理部２１３は、秘密鍵Ｋ１及び秘密鍵Ｋ２（非共有鍵）を用いて、受信部２１０により受信された乱数の暗号化を行う。
復号処理部２１４は、送信部２１１から送信された暗号値（非共有鍵一次暗号データ）が装置Ａ１により更に暗号化された暗号値（非共有鍵二次暗号データ）を取得し、取得した暗号値（非共有鍵二次暗号データ）を復号する。
復号値比較部２１５は、復号処理部２１４にて復号された復号値（非共有鍵二次暗号データの復号値）と、送信部２１１から送信された暗号値（非共有鍵一次暗号データ）とを比較する。
メモリ格納処理部２１６は、鍵更新部２１２により秘密鍵が更新される度に、更新後の秘密鍵を揮発メモリに格納するとともに、一定期間ごとに、更新後の秘密鍵を不揮発メモリに格納する。
鍵保持部２１７は、秘密鍵を保持する揮発メモリ又は不揮発メモリである。
暗号値記憶部２１８は、暗号処理部２１３が乱数を暗号した結果である暗号値を記憶する。
【００１９】
次に、装置Ａ１と装置Ｂ２の動作について、図４を参照し説明する。
相互に認証する以前に、装置Ａ１と装置Ｂ２は次の機能を有していることを前提とする。
１．正当な装置Ａ１と正当な装置Ｂ２は、使用する暗号アルゴリズムを知っている。
２．正当な装置Ａ１と正当な装置Ｂ２は、暗号アルゴリズムに使用する秘密鍵Ｋ１を共有し、外部に漏れることはない。
３．正当な装置Ｂ２は秘密鍵Ｋ２を保持し、これが外部に漏れることはない。
４．正当な装置Ｂ２は秘密鍵Ｋ２を更新した更新鍵Ｋ２’を保持し、これが外部に漏れることはない。
【００２０】
次に、相互認証の手順を、順を追って説明する。
【００２１】
（Ｓ１）において、乱数生成機能のある装置Ａ１は乱数ｒを生成し、装置Ｂ２へ通信する。
【００２２】
（Ｓ２）において、乱数ｒを受取った乱数生成機能のない装置Ｂ２は、乱数ｒを共有鍵Ｋ１と更新鍵Ｋ２’で暗号化する。暗号化結果をそれぞれｘ１，ｘ２とする。ｘ１は、共有鍵Ｋ１で暗号化した暗号値であり、ｘ２は更新鍵Ｋ２’（非共有鍵）で暗号化した暗号値（非共有鍵一次暗号データ）である。
【００２３】
（Ｓ３）で、装置Ｂ２はｘ１，ｘ２を装置Ａ１に送り返す。
【００２４】
一方、装置Ｂ２は（Ｓ１０）で、鍵の更新を行う。つまり、更新鍵Ｋ２’を更新して、新しい更新鍵Ｋ２’を作る。更新鍵Ｋ２’の初期値は、秘密鍵Ｋ２とする。更新方法は、例えば、更新鍵Ｋ２’の値を値ｄだけインクリメントしたり、デクリメントしたりする。
【００２５】
（Ｓ１１）では、装置Ｂ２が更新鍵Ｋ２’を保持する。メモリに書き込んで、更新鍵Ｋ２’を保持する。本実施の形態１では、揮発メモリに更新鍵Ｋ２’を常時保持し、定期的に不揮発メモリに更新鍵Ｋ２’を保持する。電源切断で揮発メモリの更新鍵Ｋ２’が消滅した場合、揮発メモリの更新鍵Ｋ２’を代用する。
【００２６】
（Ｓ４）では、装置Ａ１は、送られてきたｘ１を共有鍵Ｋ１で復号し、ｙ１を得る。
【００２７】
（Ｓ５）では、ｙ１と乱数ｒを比較し、一致すれば装置Ａ１が装置Ｂ２を認証したことになり、（Ｓ６）へ進む。
【００２８】
（Ｓ６）では、装置Ａ１は、ｘ２を共有鍵Ｋ１で暗号し、ｘ３を得る。このｘ３は、非共有鍵一次暗号データであるｘ２を装置Ａ１で暗号化した結果であり、非共有鍵二次暗号データに相当する。
【００２９】
（Ｓ７）では、装置Ａ１は、ｘ３を装置Ｂ２に送る。
【００３０】
（Ｓ８）では、装置Ｂ２が、ｘ３を共有鍵Ｋ１で復号し、ｙ２を得る。
【００３１】
（Ｓ９）では、ｙ２とｘ２を比較し、一致すれば装置Ｂ２が装置Ａ１を認証したことになる。
【００３２】
このような手順で相互認証を行うと次の効果が得られる。
【００３３】
（Ｓ２）で更新鍵Ｋ２’を使用して、乱数ｒを暗号化したものをｘ２として（Ｓ３）で送り返すので、ｘ２を傍受されたとしても、乱数ｒとｘ２との関係から更新鍵Ｋ２’を予測することは困難であり、乱数ｒとｘ２とが関係していることを予測するのも困難である。これは、安全性の高い暗号アルゴリズムを使用すれば保証されるものである。
【００３４】
（Ｓ１０）で更新鍵Ｋ２’を更新するため、同じ乱数ｒが繰返し送られてきても、ｘ２の値は毎回変化する。そのため、乱数ｒとｘ２とが関係していることを予測することはさらに困難になる。また、ｘ２は毎回変化し、その変化は予測が難しいことから乱数として扱える。
【００３５】
（Ｓ１１）で更新鍵Ｋ２’を揮発メモリに保持し、定期的に不揮発メモリに更新鍵Ｋ２’を保持するので、不揮発メモリの書き換え回数が制限されているようなデバイスにおいても、不揮発メモリの寿命を延ばすことができる。
【００３６】
次に、図４で説明した手順を、装置Ｂ２の処理として、図５を参照して説明する。
先ず、受信部２１０が、装置Ａ１からの乱数ｒを受信する（Ｓ５０１）（受信ステップ）。
次に、暗号処理部２１３が、乱数ｒを共有鍵Ｋ１で暗号化して暗号値ｘ１を得る（Ｓ５０２）。
次に、暗号処理部２１３が、乱数ｒを装置Ｂ２のみが保持している非共有鍵Ｋ２で暗号化して暗号値ｘ２を得る（Ｓ５０３）（暗号処理ステップ）。
次に、送信部２１１が、暗号値ｘ１、ｘ２を装置Ａ１に対して送信する（Ｓ５０４）（送信ステップ）。
次に、暗号値記憶部２１８が、暗号処理部２１３により非共有鍵Ｋ２で暗号化された暗号値ｘ２を記憶する（Ｓ５０５）。
次に、鍵更新部２１２が、非共有鍵Ｋ２の値を更新し、非共有鍵Ｋ２の値を変化させる（Ｓ５０６）（鍵更新ステップ）。
なお、非共有鍵Ｋ２の更新は、例えば、前述したように非共有鍵Ｋ２の値をインクリメント又はデクリメントして更新してもよい。
そして、次回の認証時には、更新された非共有鍵Ｋ２が利用される。
次に、メモリ格納処理部２１６は、更新した非共有鍵Ｋ２を、鍵保持部２１７（例えば、揮発メモリ）に格納する（Ｓ５０７）。
次に、受信部２１０が、装置Ａ１より暗号値ｘ３を受信する（Ｓ５０８）。この暗号値ｘ３は、前述したように、非共有鍵Ｋ２で暗号化された暗号値ｘ２に対して装置Ａ１において共有鍵Ｋ１で再度暗号化した暗号値である。
次に、復号処理部２１４が、暗号値ｘ３を共有鍵Ｋ１で復号して復号値ｙ２を得る（Ｓ５０９）（復号処理ステップ）。
次に、復号値比較部２１５が、復号値ｙ２と暗号値記憶部２１８に記憶されているｘ２とを比較する（Ｓ５１０）（復号値比較ステップ）。
次に、復号値比較部２１５は、復号値ｙ２と暗号値ｘ２とが一致するかを判定し（Ｓ５１１）、一致する場合は装置Ａ１を認証し（Ｓ５１２）、一致しない場合は装置Ａ１を認証しない（Ｓ５１３）。
【００３７】
このように、実施の形態１では、乱数生成機能を有しない装置Ｂ２に、更新鍵Ｋ２’を揮発メモリ、不揮発メモリに格納し、装置Ａ１から送られてきた乱数ｒを装置Ｂ２だけが保持している更新鍵Ｋ２’で暗号化したものを、装置Ａ１に送り返すようにしたので、乱数生成機能を有しない装置Ｂ２でも乱数生成が行えるようにし、かつ、更新鍵Ｋ２’を毎回更新するようにしたので、ｘ２の予測が難しい。また、揮発メモリ、不揮発メモリの使い分けを行ったので、書き換え回数の制限がある不揮発メモリの寿命を延ばすことができる。
【００３８】
また、本実施の形態１では、（Ｓ１０）の非共有鍵Ｋ２の更新方法を、値ｄのインクリメント、または、デクリメントとしたが、鍵更新部２１２は、乱数ｒの一部のビットを取り出し、その取り出したビット列の最下位ビットを１とした値をｄとして、インクリメント、または、デクリメントしても良い。
【００３９】
さらに、本実施の形態１では、（Ｓ１０）の更新方法を、値ｄのインクリメント、または、デクリメントとしたが、鍵更新部２１２は、ｘ１またはｘ２の一部のビットを取り出し、その取り出したビット列の最下位ビットを１とした値をｄとして、インクリメント、または、デクリメントしてもよい。
【００４０】
また、図６に示すように、乱数生成機能を有さない装置Ｂ２にカウンタ２２０を設け、カウンタ２２０が通算使用度数（例えば、暗号化の回数）をカウントし、鍵更新部２１２は、その値（通算使用度数）を（Ｓ１０）における値ｄとしてもよい。
【００４１】
一方、（Ｓ２）のｘ２＝ＥｎｃＫ２’（ｒ）を演算するときに、乱数ｒの上位と下位とを入れ替えるなどして、乱数ｒと異なる値を乱数ｒの代わりに使用してもよい。
【００４２】
さらに、図６に示すように、乱数生成機能を有さない装置Ｂ２に乱数記憶部２２１を設け、（Ｓ２）のｘ２＝ＥｎｃＫ２’（ｒ）を演算するときに、乱数記憶部２２１に１回前の乱数ｒを保持しておき、保持された乱数ｒと新規の乱数ｒとの排他的論理値を乱数ｒの代わりに使用してもよい。
【００４３】
また、（Ｓ２）のｘ２＝ＥｎｃＫ２’（ｒ）を演算するときに、乱数ｒにシリアル番号や、通算使用度数カウンタの値を加算または減算した値を乱数ｒの代わりに使用してもよい。
【００４４】
（Ｓ２）のｘ２＝ＥｎｃＫ２’（ｒ）を演算するときに、暗号演算の代わりに復号演算を使用してもよい。
【００４５】
また、図６に示すように、乱数生成機能を有さない装置Ｂ２にカウンタ２２０がある場合は、鍵更新部２１２は、秘密鍵Ｋ２をカウンタ２２０の通算使用度数値、または、それを加工（連接など）したものとしてもよい。
【００４６】
また、図６に示すように、乱数生成機能を有さない装置Ｂ２に時刻計測部２１９がある場合は、鍵更新部２１２は、秘密鍵Ｋ２を時刻計測部２１９の値（時刻）、または、それを加工（連接など）したものとしてもよい。
【００４７】
このように本実施の形態では、相互に暗号化データを交換し、相互認証を行う装置であり、２者の１方が乱数発生機能を有しない相互認証装置において、
乱数発生機能を有しない装置は、
相互認証のために共有する第１鍵以外に、第２鍵を保持する機能、
概第２鍵を更新する機能、
更新された第２鍵を第２鍵として保持する機能、
乱数発生機能を有する装置から送られた乱数を、第１鍵で暗号化する機能、
乱数発生機能を有する装置から送られた乱数を、第２鍵で暗号化する機能、
第２鍵で暗号化されたデータを送信する機能、
を有することを説明した。
【００４８】
また、相互に暗号化データを交換し、相互認証を行う装置であり、２者の１方が乱数発生機能を有しない相互認証装置において、
乱数発生機能を有しない装置は、
更新されたデータ保持を揮発メモリで行う機能、
更新されたデータ保持を定期的に不揮発メモリで行う機能、
揮発メモリのデータが消滅した場合、不揮発メモリの保持データで揮発メモリのデータを代用する機能、
を有することを説明した。
【００４９】
更に、相互に暗号化データを交換し、相互認証を行う装置であり、２者の１方が乱数発生機能を有しない相互認証装置において、
乱数発生機能を有しない装置は、
相互認証のために共有する第１鍵以外に、第２鍵を保持する機能、
概第２鍵を更新する機能、
更新された第２鍵を第２鍵として揮発メモリに保持する機能、
更新された第２鍵を第２鍵として定期的に揮発メモリに保持する機能、
揮発メモリのデータが消滅した場合、不揮発メモリの保持データで揮発メモリのデータを代用する機能、
乱数発生機能を有する装置から送られた乱数を、第１鍵で暗号化する機能、
乱数発生機能を有する装置から送られた乱数を、第２鍵で暗号化する機能、
第２鍵で暗号化されたデータを送信する機能、
を有することを説明した。
【００５０】
また、相互に暗号化データを交換し、相互認証を行う装置であり、２者の１方が乱数発生機能を有しない相互認証装置において、
乱数発生機能を有しない装置は、
相互認証のために共有する第１鍵以外に、第２鍵を保持する機能、
概第２鍵を更新する機能、
更新された第２鍵を第２鍵として保持する機能、
乱数発生機能を有する装置から送られた乱数を、第１鍵で暗号化する機能、
乱数発生機能を有する装置から送られた乱数を、第２鍵で暗号化する機能、
第２鍵で暗号化されたデータを送信する機能、
乱数発生機能を有する装置から送られた暗号文を復号化する機能、
概復号値を、乱数発生機能を有する装置から送られた乱数を第２鍵で暗号化した値と比較する機能、
を有することを説明した。
【００５１】
また、第２鍵の更新が、一定値のインクリメント、または、デクリメントにより行われる例を説明した。
【００５２】
更に、時刻を計測する機能がある場合に、第２鍵の更新が、時刻に基づく値のインクリメント、または、デクリメントにより行われる例を説明した。
【００５３】
更に、第２鍵の更新が、乱数発生機能を有する装置から送られた乱数に基づく値のインクリメント、または、デクリメントにより行われる例を説明した。
【００５４】
また、乱数発生機能を有する装置から送られた乱数に基づく値の最下位ビットは必ず１である例を説明した。
【００５５】
また、第２鍵の更新が、乱数発生機能を有する装置から送られた乱数を暗号化した値に基づく値のインクリメント、または、デクリメントにより行われる例を説明した。
【００５６】
また、使用回数を計測する機能がある場合に、第２鍵の更新が、使用回数に基づく値のインクリメント、または、デクリメントにより行われる例を説明した。
【００５７】
また、乱数発生機能を有する装置から送られた乱数を、第２鍵で暗号化する機能は、乱数発生機能を有する装置から送られた乱数の上位と下位を入れ替えた値と暗号化することを説明した。
【００５８】
また、乱数発生機能を有する装置から送られた乱数を、第２鍵で暗号化する機能は、乱数発生機能を有する装置から送られた１回前の乱数を保持し、新規に送られた乱数との排他的論理和を暗号化することを説明した。
【００５９】
また、乱数発生機能を有する装置から送られた乱数を、第２鍵で暗号化する機能は、乱数発生機能を有する装置から送られた乱数に一定値を加算、減算したものを暗号化することを説明した。
【００６０】
また、第２鍵による暗号化において、乱数発生機能を有する装置から送られた乱数を複合化することを説明した。
【００６１】
また、第２鍵の更新において、乱数発生機能のない装置内に設置された通算使用度数カウンタの値を第２鍵とすることを説明した。
【００６２】
また、第２鍵の更新において、乱数発生機能のない装置内に設置された時計の値を第２鍵とすることを説明した。
【００６３】
実施の形態２．
実施の形態２について図１を参照し、説明する。図１の構成は、実施の形態１と同様である。
【００６４】
本実施の形態では、乱数を生成する装置Ａ１と通信を行う装置Ｂ２が、以前に装置Ａ１から受信した乱数を記憶しており、新たに受信した乱数と、記憶している乱数とを比較し、比較の結果、新たに受信した乱数が記憶しているいずれかの乱数に一致する場合に、新たに受信した乱数を更新し、装置Ａ１と共有していない非共有鍵を用いて、更新された更新後の乱数の暗号化を行う。
【００６５】
図７は、本実施の形態に係る装置Ｂ２（情報処理装置）の機能ブロック図である。
図７において、受信部２１０、送信部２１１、暗号処理部２１３、復号処理部２１４、復号値比較部２１５、メモリ格納処理部２１６、鍵保持部２１７、暗号値記憶部２１８は、図３に示したものと同様であり、説明を省略する。
乱数記憶部２２１は、受信部２１０により以前に受信された乱数を記憶する。乱数記憶部２２１は、揮発メモリ又は不揮発メモリである。
乱数比較部２２２は、受信部２１０により新たに受信された乱数と、乱数記憶部２２１に記憶されている乱数とを比較する。
乱数更新部２２３は、乱数比較部２２２による比較の結果、受信部２１０により新たに受信された乱数が乱数記憶部２２１に記憶されているいずれかの乱数に一致する場合に、受信部２１０により新たに受信された乱数を更新する。
そして、本実施の形態では、暗号処理部２１３は、装置Ａ１と共有していない非共有鍵を用いて、乱数更新部２２３により更新された更新後の乱数の暗号化を行う。
【００６６】
次に、動作について図８を参照し、説明する。
相互に認証する以前に、装置Ａ１と装置Ｂ２は次の機能を有していることを実施の形態２は前提とする。
１．正当な装置Ａ１と正当な装置Ｂ２は、使用する暗号アルゴリズムを知っている。
２．正当な装置Ａ１と正当な装置Ｂ２は、暗号アルゴリズムに使用する秘密鍵Ｋ１を共有し、外部に漏れることはない。
３．正当な装置Ｂ２は秘密鍵Ｋ２を保持し、外部に漏れることはない。
４．正当な装置Ｂ２は受取った乱数ｒを保持する機能と加工された乱数（ｒ’）を保持する機能を有する。
【００６７】
次に、相互認証の手順を、順を追って説明する。
【００６８】
（Ｓ１）において、乱数生成機能のある装置Ａ１は乱数ｒを生成し、装置Ｂ２へ通信する。
【００６９】
（Ｓ１２）で、受取った乱数ｒと装置Ｂ２内部に保持している以前送られてきた乱数（以下、乱数ｒ’）を比較し、同じであればｒ’を保持されている乱数ｒ’１に値ｄを加えたものに、異なっていればｒ’を乱数ｒとする。
つまり、（Ｓ１２）で受け取った乱数ｒが以前送られてきた乱数ｒ’と同じであれば、乱数の更新を行って保持している乱数の値を変化させ、乱数ｒと乱数ｒ’が異なっていれば、乱数の更新は行わず、受信した乱数をそのまま保持する。
【００７０】
（Ｓ１３）では、乱数ｒを保持し、保持された乱数ｒを乱数ｒ１とする。さらに、乱数ｒ’も保持し、保持された乱数ｒ’を乱数ｒ’１とする。
なお、保持は、揮発メモリを使用して行う。また、定期的に不揮発メモリにも保持することで、不揮発メモリの書き換え回数が制限されているようなデバイスの寿命を延ばす。
【００７１】
（Ｓ２）において、乱数ｒと乱数ｒ’を受取った乱数生成機能のない装置Ｂ２は、乱数ｒを共有鍵Ｋ１で、乱数ｒ’を非共有鍵Ｋ２で暗号化する。暗号化結果をそれぞれｘ１，ｘ２する。
なお、（Ｓ１２）の判断において、新たに受け取った乱数ｒが以前送られてきた乱数ｒ’と同じであれば、乱数の更新を行うので、共有鍵Ｋ１による暗号化に用いる乱数ｒと非共有鍵Ｋ２による暗号化に用いる乱数ｒ’は違う値になる。一方、（Ｓ１２）の判断において、新たに受け取った乱数ｒが以前送られてきた乱数ｒ’と同じでなければ、乱数の更新を行わないので、共有鍵Ｋ１による暗号化に用いる乱数ｒと更新鍵Ｋ２による暗号化に用いる乱数ｒ’は同じ値になる。
【００７２】
（Ｓ３）で、装置Ｂ２は暗号値ｘ１，ｘ２を装置Ａ１に送り返す。
【００７３】
（Ｓ４）では、装置Ａ１が、送られてきたｘ１を共有鍵Ｋ１で復号し、ｙ１を得る。
【００７４】
（Ｓ５）では、装置Ａ１が、ｙ１と乱数ｒを比較し、一致すれば装置Ａ１が装置Ｂ２を認証したことになり、（Ｓ６）へ進む。
【００７５】
（Ｓ６）では、装置Ａ１が、ｘ２を共有鍵Ｋ１で暗号し、暗号値ｘ３を得る。
【００７６】
（Ｓ７）では、暗号値ｘ３を装置Ｂ２に送る。
【００７７】
（Ｓ８）では、ｘ３を共有鍵Ｋ１で復号し、復号値ｙ２を得る。
【００７８】
（Ｓ９）では、復号値ｙ２と暗号値ｘ２を比較し、一致すれば装置Ｂ２が装置Ａ１を認証したことになる。
【００７９】
このような手順で相互認証を行うと次の効果が得られる。
【００８０】
（Ｓ２）で更新鍵Ｋ２を使用して、乱数ｒ’を暗号化したものをｘ２として（Ｓ３）で送り返すので、ｘ２を傍受されたとしても、乱数ｒとｘ２との関係から更新鍵Ｋ２を予測することは困難であり、乱数ｒとｘ２とが関係していることを予測するのも困難である。これは、安全性の高い暗号アルゴリズムを使用すれば保証されるものである。
【００８１】
（Ｓ１２）で乱数ｒが以前に送られてきたものであるかを判定し、乱数ｒ’を求めるので、同じ乱数ｒが送られてきてもｘ２の値は変化する。そのため、乱数ｒとｘ２とが関係していることを予測することが困難になる。
【００８２】
（Ｓ１１）で保持するデータを揮発メモリに保持し、定期的に不揮発メモリにも保持するので、不揮発メモリの書き換え回数が制限されているようなデバイスにおいても、不揮発メモリの寿命を延ばすことができる。
【００８３】
次に、図８で説明した手順を、装置Ｂ２の処理として、図９を参照して説明する。
先ず、受信部２１０が、装置Ａ１からの乱数ｒを受信する（Ｓ９０１）（受信ステップ）。
次に、乱数比較部２２２が、受信した乱数ｒが乱数記憶部２２１に記憶されている乱数ｒ’のいずれかに一致するか否かを判断する（Ｓ９０２）（乱数比較ステップ）。
Ｓ９０２で乱数が一致すると判断された場合は、乱数更新部２２３が、乱数ｒ’を更新して乱数値を変化させる（Ｓ９０３）（乱数更新ステップ）。
一方、Ｓ９０２で乱数が一致しないと判断された場合は、乱数比較部２２２は、乱数ｒを乱数ｒ’とする（Ｓ９０４）。
そして、メモリ格納処理部２１６が、乱数ｒを乱数ｒ１として乱数記憶部２２１（例えば、揮発メモリ）に格納する（Ｓ９０５）。
また、メモリ格納処理部２１６が、乱数ｒ’を乱数ｒ’１として乱数記憶部２２１（例えば、揮発メモリ）に格納する（Ｓ９０６）。
次に、暗号処理部２１３が、乱数ｒを共有鍵Ｋ１で暗号化して暗号値ｘ１を得る（Ｓ９０７）。
次に、暗号処理部２１３が、乱数ｒ’を非共有鍵Ｋ２で暗号化して暗号値ｘ２を得る（Ｓ９０８）（暗号処理ステップ）。
次に、送信部２１１が、暗号値ｘ１、ｘ２を装置Ａ１に対して送信する（Ｓ９０９）（送信ステップ）。
次に、暗号値記憶部２１８が、暗号処理部２１３により非共有鍵Ｋ２で暗号化された暗号値ｘ２を記憶する（Ｓ９１０）。
次に、受信部２１０が、装置Ａ１より暗号値ｘ３を受信する（Ｓ９１１）。この暗号値ｘ３は、前述したように、非共有鍵Ｋ２で暗号化された暗号値ｘ２に対して装置Ａ２において共有鍵Ｋ１で再度暗号化した暗号値である。
次に、復号処理部２１４が、暗号値ｘ３を共有鍵Ｋ１で復号して復号値ｙ２を得る（Ｓ９１２）（復号処理ステップ）。
次に、復号値比較部２１５が、復号値ｙ２と暗号値記憶部２１８に記憶されているｘ２とを比較する（Ｓ９１３）（復号値比較ステップ）。
次に、復号値比較部２１５は、復号値ｙ２と暗号値ｘ２とが一致するかを判定し（Ｓ９１４）、一致する場合は装置Ａ１を認証し（Ｓ９１５）、一致しない場合は装置Ａ１を認証しない（Ｓ９１６）。
【００８４】
このように、実施の形態２では、乱数生成機能を有しない装置Ｂ２に、受取った乱数ｒと乱数ｒ’を揮発メモリ、不揮発メモリに格納し、乱数ｒ’を装置Ｂ２だけが保持している更新鍵Ｋ２で暗号化したものを、装置Ａ１に送り返すようにしたので、乱数生成機能を有しない装置Ｂ２でも乱数生成が行えるようにし、かつ、乱数ｒが以前に送られてきた乱数ｒ１と同じであるかを判定し、乱数ｒ’を決めるのでｘ２の予測が難しい。また、揮発メモリ、不揮発メモリの使い分けを行ったので、書き換え回数の制限がある不揮発メモリの寿命を延ばすことができる。
【００８５】
なお、実施の形態１と同様に、乱数の更新手法として、乱数更新部２２３は、乱数ｒの一部のビットを取り出し、その取り出したビット列の最下位ビットを１とした値をｄとして、インクリメント、または、デクリメントしても良い。
【００８６】
また、図６と同様に、乱数生成機能を有さない装置Ｂ２にカウンタを設け、カウンタが通算使用度数（例えば、暗号化の回数）をカウントし、乱数更新部２２３は、その値（通算使用度数）を乱数更新における値ｄとしてもよい。
【００８７】
また、図６と同様に、乱数生成機能を有さない装置Ｂ２に時刻計測部を設け、乱数更新部２２３は、乱数ｒを時刻計測部の値（時刻）、または、それを加工（連接など）したもので更新してもよい。
【００８８】
このように本実施の形態では、相互に暗号化データを交換し、相互認証を行う装置であり、２者の１方が乱数発生機能を有しない相互認証装置において、
乱数発生機能を有しない装置は、
相互認証のために共有する第１鍵以外に、第２鍵を保持する機能、
乱数発生機能を有する装置から受取った乱数を保持する機能、
保持された乱数と受取った乱数を比較する機能、
比較結果に基づき乱数を更新する機能、
更新された乱数を保持される乱数として保持する機能、
乱数発生機能を有する装置から送られた乱数を、第１鍵で暗号化する機能、
更新された乱数を、第２鍵で暗号化する機能、
第２鍵で暗号化されたデータを送信する機能、
を有していることを説明した。
【００８９】
また、相互に暗号化データを交換し、相互認証を行う装置であり、２者の１方が乱数発生機能を有しない相互認証装置において、
乱数発生機能を有しない装置は、
相互認証のために共有する第１鍵以外に、第２鍵を保持する機能、
乱数発生機能を有する装置から受取った乱数を揮発メモリに保持する機能、
乱数発生機能を有する装置から受取った乱数を定期的に不揮発メモリに保持する機能、
上記、乱数発生機能を有する装置から受取った乱数用の揮発メモリのデータが消滅した場合、不揮発メモリの保持データで揮発メモリのデータを代用する機能、
保持された乱数と受取った乱数を比較する機能、
比較結果に基づき乱数を更新する機能、
更新された乱数を保持される乱数として揮発メモリに保持する機能、
更新された乱数を保持される乱数として定期的に不揮発メモリに保持する機能、
上記、更新された乱数を保持される乱数用の揮発メモリのデータが消滅した場合、不揮発メモリの保持データで揮発メモリのデータを代用する機能、
乱数発生機能を有する装置から送られた乱数を、第１鍵で暗号化する機能、
更新された乱数を、第２鍵で暗号化する機能、
第２鍵で暗号化されたデータを送信する機能、
を有することを説明した。
【００９０】
また、データ保持を揮発メモリで行い、かつ、定期的に不揮発メモリでも行い、揮発メモリのデータが消滅した場合、不揮発メモリの保持データで揮発メモリのデータを代用することを説明した。
【００９１】
また、相互に暗号化データを交換し、相互認証を行う装置であり、２者の１方が乱数発生機能を有しない相互認証装置において、
乱数発生機能を有しない装置は、
相互認証のために共有する第１鍵以外に、第２鍵を保持する機能、
乱数発生機能を有する装置から受取った乱数を保持する機能、
保持された乱数と受取った乱数を比較する機能、
比較結果に基づき乱数を更新する機能、
更新された乱数を保持される乱数として保持する機能、
乱数発生機能を有する装置から送られた乱数を、第１鍵で暗号化する機能、
更新された乱数を、第２鍵で暗号化する機能、
第２鍵で暗号化されたデータを送信する機能、
乱数発生機能を有する装置から送られた暗号文を復号化する機能、
概復号値を、乱数発生機能を有する装置から送られた乱数を第２鍵で暗号化した値と比較する機能、
を有していることを説明した。
【００９２】
更に、比較結果に基づき乱数を更新する際に、一定値のインクリメント、または、デクリメントにより乱数を更新する例を説明した。
【００９３】
また、時刻を計測する機能を有する場合に、比較結果に基づき乱数を更新する際に、時刻に基づく値のインクリメント、または、デクリメントにより乱数を更新する例を説明した。
【００９４】
また、使用回数を計測する機能を有する場合に、比較結果に基づき乱数を更新する際に、使用回数に基づく値のインクリメント、または、デクリメントにより乱数を更新する例を説明した。
【００９５】
実施の形態３．
実施の形態１に示した装置Ｂ２の機能と実施の形態２に示した装置Ｂ２の機能を組み合わせてもよい。
つまり、装置Ａ１から乱数を受信した際に、以前に受信した乱数ｒ’と新たに受信した乱数ｒが同じであるかどうかを判断し、同じであれば、乱数の更新を行い、また、暗号化を行う度に非共有鍵Ｋ２の値を更新し、毎回異なる非共有鍵及び乱数にて暗号化を行うようにしてもよい。
このようにすることで、乱数生成機能を有しない装置においても乱数の生成と同等の処理を行うことができる。
【００９６】
前述した実施の形態では、乱数発生器というハードウェアを有しないコンピュータである装置Ｂ２であっても、秘密鍵の更新又は受信した乱数の更新により、乱数発生器というハードウェアがなくても乱数の生成処理をすることができ、ソフトウェアとハードウェア資源とが協働した情報処理装置が実現されている。
つまり、装置Ｂ２に乱数発生器というハードウェアを付加しなくとも、秘密鍵の更新又は乱数の更新を行うソフトウェアとを用いることにより、乱数発生器を装置Ｂ２に付加したのと同様な結果が得られるのであるから、上記の実施の形態のソフトウェアの開発は、自然法則を利用した技術的創作である。すなわち、この実施の形態の装置Ｂ２（情報処理装置）の実現は、経済法則ではないし、人為的取決めでもないし、人間の精神活動でもなく、自然法則を利用した技術的創作である。
【図面の簡単な説明】
【００９７】
【図１】実施の形態１に係る装置構成例を示す図。
【図２】実施の形態１に係る装置Ａ及び装置Ｂの外観例を示す図。
【図３】実施の形態１に係る装置Ｂの機能ブロック図。
【図４】実施の形態１に係る装置Ａと装置Ｂにおける認証処理の例を示す図。
【図５】実施の形態１に係る装置Ｂの動作例を示すフローチャート図。
【図６】実施の形態１に係る装置Ｂの機能ブロック図。
【図７】実施の形態２に係る装置Ｂの機能ブロック図。
【図８】実施の形態２に係る装置Ａと装置Ｂにおける認証処理の例を示す図。
【図９】実施の形態２に係る装置Ｂの動作例を示すフローチャート図。
【符号の説明】
【００９８】
１  装置Ａ、２  装置Ｂ、１００  揮発メモリ、１０１  不揮発メモリ、１０２  乱数発生器、１０３  ＣＰＵ、１０４  通信装置、２００  揮発メモリ、２０１  不揮発メモリ、２０３  ＣＰＵ、２０４  通信装置、２１０  受信部、２１１  送信部、２１２  鍵更新部、２１３  暗号処理部、２１４  復号処理部、２１５  復号値比較部、２１６  メモリ格納処理部、２１７  鍵保持部、２１８  暗号値記憶部、２１９  時刻計測部、２２０  カウンタ、２２１  乱数記憶部、２２２  乱数比較部、２２３  乱数更新部。
【図１】
2007233266.tif 000003
【図２】
2007233266.tif 000004
【図３】
2007233266.tif 000005
【図４】
2007233266.tif 000006
【図５】
2007233266.tif 000007
【図６】
2007233266.tif 000008
【図７】
2007233266.tif 000009
【図８】
2007233266.tif 000010
【図９】
2007233266.tif 000011