JP6264935B2 - 情報処理装置の認証方法 - Google Patents

情報処理装置の認証方法 Download PDF

Info

Publication number
JP6264935B2
JP6264935B2 JP2014032583A JP2014032583A JP6264935B2 JP 6264935 B2 JP6264935 B2 JP 6264935B2 JP 2014032583 A JP2014032583 A JP 2014032583A JP 2014032583 A JP2014032583 A JP 2014032583A JP 6264935 B2 JP6264935 B2 JP 6264935B2
Authority
JP
Japan
Prior art keywords
information processing
code
encryption
processing apparatus
rearrangement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014032583A
Other languages
English (en)
Other versions
JP2015159394A (ja
Inventor
秀一 沖
秀一 沖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2014032583A priority Critical patent/JP6264935B2/ja
Publication of JP2015159394A publication Critical patent/JP2015159394A/ja
Application granted granted Critical
Publication of JP6264935B2 publication Critical patent/JP6264935B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置の認証方法に関し、特に、ランダムコードの暗号化を伴う処理により、一方の情報処理装置が他方の情報処理装置を正当な装置として認証する技術に関する。
一対の情報処理装置が相互に通信を開始する場合、事前に相手方装置の正当性を確認する認証処理が不可欠である。このような認証処理として、現在最も普及している方法は、ランダムコードの暗号化を伴う処理を行うチャレンジレスポンス方式の認証方法である。
この認証方法によって、第1の情報処理装置が第2の情報処理装置の正当性を確認する場合、まず、第1の情報処理装置が「チャレンジ」と呼ばれるランダムコードを発生させ、これを第2の情報処理装置に送信する。第2の情報処理装置は、この「チャレンジ」を所定の暗号アルゴリズム(通常、特定の暗号鍵を用いた数学的な演算アルゴリズムが用いられる。当該演算アルゴリズム自体は必ずしも秘密である必要はないが、暗号鍵は秘密にされる。)を用いて暗号化し、「レスポンス」と呼ばれる認証トークンの形で第1の情報処理装置に返信する。一方、第1の情報処理装置においても、「チャレンジ」を同一の暗号アルゴリズムを用いて暗号化し、その結果が、返信されてきた「レスポンス」に一致するか否かを判定する。両者が一致すれば、第2の情報処理装置を正当な装置として認証することができる。たとえば、下記の特許文献1および特許文献2には、このようなチャレンジレスポンス方式の認証方法が開示されている。
上記認証方法を採れば、暗号鍵の秘匿性が維持されている限り、不正な装置を正規の装置になりすませる不正な認証行為を防ぐことができる。一般に、情報処理装置間の通信経路が盗聴され、両者間でやりとりされる「チャレンジ」および「レスポンス」が傍受されたとしても、暗号アルゴリズムが数学的に強固なものであれば、それだけで暗号アルゴリズムが露見する可能性は低い。実際、現在利用されている暗号アルゴリズムを、情報処理装置間の通信傍受で得た「チャレンジ」および「レスポンス」のみから解析することは極めて困難である。
しかしながら、近年は、サイドチャネル解析と呼ばれている暗号解析技術を用いた攻撃(サイドチャネル攻撃)が問題になってきている。サイドチャネル解析は、暗号化処理を実行中の情報処理装置についての消費電力、演算処理時間、発生する電磁波などをモニタして暗号アルゴリズムを推定する解析方法である。このサイドチャネル解析の手法を、通信傍受で得た「チャレンジ」および「レスポンス」の情報に組み合わせると暗号アルゴリズムの推定が容易になるため、たとえ数学的に強固な暗号アルゴリズムを採用していても、不正な認証行為が行われる可能性が危惧されている。
そこで、たとえば、下記の特許文献3には、鍵処理のための処理時間を工夫して中継端末に対する攻撃を防ぐ手法が開示されている。また、サイドチャネル攻撃への対応策として、特許文献4には、物理的現象に基づいて暗号鍵を生成する手法が開示されており、特許文献5には、暗号鍵の再利用を制限しながら、内部を秘密状態に保つ機能をもった装置で暗号化を行う手法が開示されている。更に、特許文献6には、回路レベルでサイドチャネル攻撃に対抗する技術が開示されており、特許文献7には、複数の暗号鍵をランダムに採用することによりサイドチャネル攻撃に対抗する技術が開示されている。
WO2005/057447号公報 特開2000−183869号公報 特開2006−197458号公報 特表2012−519987号公報 特表2013−513312号公報 WO2012/014291号公報 WO2012/131926号公報
上述したように、認証機能を備えた情報処理装置へのサイドチャネル攻撃に対する対策として、様々な方法が提案されている。しかしながら、従来提案されている対抗策は、ハードウエア的に専用の設備を設ける必要があったり、ソフトウエア的に複雑な処理を行う必要があったりするため、構成が複雑になり、必ずしも効率的な対抗策にはなっていない。そのため、導入するにはそれなりのコストがかかり、製品価格を高騰させる要因になるという問題がある。
そこで本発明は、通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐えることができ、かつ、効率的な処理が可能な情報処理装置の認証方法を提供することを目的とする。
(1) 第1の実施形態に係る基本発明(図5参照)
本発明の第1の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、文字もしくは数字を羅列したランダムコードを発生させ、これを第2の情報処理装置に送信する段階と、
第2の情報処理装置が、ランダムコードを受信し、その構成要素をランダムな第1の並び替え方法で並び替えて並替コードを生成する段階と、
第2の情報処理装置が、並替コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
第2の情報処理装置が、暗号コードの構成要素をランダムな第2の並び替え方法で並び替えて並替暗号コードを生成する段階と、
第2の情報処理装置が、並替暗号コードとともに、第1の並び替え方法および第2の並び替え方法のいずれか一方もしくは双方を示す並替情報を、第1の情報処理装置に送信する段階と、
第1の情報処理装置が、並替暗号コードとともに、並替情報を受信し、受信した並替暗号コードの正当性を、受信した並替情報に基づく並び替え処理および上記暗号アルゴリズムに基づく暗号化演算もしくは復号演算により確認する段階と、
を行うようにしたものである。
(2) 第1の実施形態に係る基本発明のバリエーション(並替情報の暗号化)
本発明の第2の態様は、上述した第1の態様に係る情報処理装置の認証方法において、
第2の情報処理装置から第1の情報処理装置への並替情報の送信を暗号化した状態で行うようにしたものである。
(3) 実施例Aに係る発明(図8参照)
本発明の第3の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
第2の情報処理装置が、第1の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、第2の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第2の情報処理装置が、第1の並び替えテーブルおよび第2の並び替えテーブルをそれぞれ暗号化し、第1の暗号化テーブルおよび第2の暗号化テーブルを生成するテーブル暗号化段階と、
第2の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルおよび第2の暗号化テーブルを、第1の情報処理装置に送信する並替暗号コード送信段階と、
第1の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルおよび第2の暗号化テーブルを受信する並替暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化テーブルおよび第2の暗号化テーブルをそれぞれ復号し、第1の並び替えテーブルおよび第2の並び替えテーブルを復元するテーブル復号段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素を、第1の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、第2の並び替えテーブルに基づいて、照合用暗号コードの構成要素を並び替えて照合用並替暗号コードを生成する照合用並替暗号コード生成段階と、
第1の情報処理装置が、並替暗号コード受信段階で受信した並替暗号コードと、照合用並替暗号コード生成段階で生成された照合用並替暗号コードと、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(4) 実施例Bに係る発明(図9参照)
本発明の第4の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
第2の情報処理装置が、第1の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、第2の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第2の情報処理装置が、第1の並び替えテーブルおよび第2の並び替えテーブルをそれぞれ暗号化し、第1の暗号化テーブルおよび第2の暗号化テーブルを生成するテーブル暗号化段階と、
第2の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルおよび第2の暗号化テーブルを、第1の情報処理装置に送信する並替暗号コード送信段階と、
第1の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルおよび第2の暗号化テーブルを受信する並替暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化テーブルおよび第2の暗号化テーブルをそれぞれ復号し、第1の並び替えテーブルおよび第2の並び替えテーブルを復元するテーブル復号段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素を、第1の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード第1生成段階と、
第1の情報処理装置が、第2の並び替えテーブルを逆転させたテーブルに基づいて、並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード第2生成段階と、
第1の情報処理装置が、照合用暗号コード第1生成段階で生成した照合用暗号コードと、照合用暗号コード第2生成段階で生成した照合用暗号コードと、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(5) 実施例Cに係る発明(図10参照)
本発明の第5の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
第2の情報処理装置が、第1の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、第2の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第2の情報処理装置が、第1の並び替えテーブルおよび第2の並び替えテーブルをそれぞれ暗号化し、第1の暗号化テーブルおよび第2の暗号化テーブルを生成するテーブル暗号化段階と、
第2の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルおよび第2の暗号化テーブルを、第1の情報処理装置に送信する並替暗号コード送信段階と、
第1の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルおよび第2の暗号化テーブルを受信する並替暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化テーブルおよび第2の暗号化テーブルをそれぞれ復号し、第1の並び替えテーブルおよび第2の並び替えテーブルを復元するテーブル復号段階と、
第1の情報処理装置が、第2の並び替えテーブルを逆転させたテーブルに基づいて、並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード生成段階と、
第1の情報処理装置が、第1の並び替えテーブルを逆転させたテーブルに基づいて、照合用並替コードの構成要素を並び替えて照合用ランダムコードを生成する照合用ランダムコード生成段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードと、照合用ランダムコード生成段階で生成された照合用ランダムコードと、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(6) 実施例Dに係る発明(図11参照)
本発明の第6の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
第2の情報処理装置が、第1の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、第2の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第2の情報処理装置が、第1の並び替えテーブルおよび第2の並び替えテーブルをそれぞれ暗号化し、第1の暗号化テーブルおよび第2の暗号化テーブルを生成するテーブル暗号化段階と、
第2の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルおよび第2の暗号化テーブルを、第1の情報処理装置に送信する並替暗号コード送信段階と、
第1の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルおよび第2の暗号化テーブルを受信する並替暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化テーブルおよび第2の暗号化テーブルをそれぞれ復号し、第1の並び替えテーブルおよび第2の並び替えテーブルを復元するテーブル復号段階と、
第1の情報処理装置が、第2の並び替えテーブルを逆転させたテーブルに基づいて、並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード第1生成段階と、
第1の情報処理装置が、第1の並び替えテーブルに基づいて、ランダムコード発生段階で発生させたランダムコードの構成要素を並び替えて照合用並替コードを生成する照合用並替コード第2生成段階と、
第1の情報処理装置が、照合用並替コード第1生成段階で生成した照合用並替コードと、照合用並替コード第2生成段階で生成した照合用並替コードと、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(7) 実施例Eに係る発明(図12参照)
本発明の第7の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
第2の情報処理装置が、第1の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、第2の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第2の情報処理装置が、第1の並び替えテーブルを暗号化し、第1の暗号化テーブルを生成するテーブル暗号化段階と、
第2の情報処理装置が、並替暗号コードとともに第1の暗号化テーブルを、第1の情報処理装置に送信する並替暗号コード送信段階と、
第1の情報処理装置が、並替暗号コードとともに、第1の暗号化テーブルを受信する並替暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化テーブルを復号し、第1の並び替えテーブルを復元するテーブル復号段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素を、第1の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、並替暗号コード受信段階で受信した並替暗号コードに含まれている構成要素と、照合用暗号コード生成段階で生成された照合用暗号コードに含まれている構成要素と、が対応するか否かを照合し、対応する場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(8) 実施例Fに係る発明(図13参照)
本発明の第8の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
第2の情報処理装置が、第1の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、第2の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第2の情報処理装置が、第2の並び替えテーブルを暗号化し、第2の暗号化テーブルを生成するテーブル暗号化段階と、
第2の情報処理装置が、並替暗号コードとともに第2の暗号化テーブルを、第1の情報処理装置に送信する並替暗号コード送信段階と、
第1の情報処理装置が、並替暗号コードとともに、第2の暗号化テーブルを受信する並替暗号コード受信段階と、
第1の情報処理装置が、第2の暗号化テーブルを復号し、第2の並び替えテーブルを復元するテーブル復号段階と、
第1の情報処理装置が、第2の並び替えテーブルを逆転させたテーブルに基づいて、並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード生成段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードに含まれている構成要素と、照合用並替コード生成段階で生成された照合用並替コードに含まれている構成要素と、が対応するか否かを照合し、対応する場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(9) 実施例Gに係る発明(図14参照)
本発明の第9の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して並び替えテーブルを生成する並替テーブル生成段階と、
第2の情報処理装置が、並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、暗号コードに対して一方向性関数を作用させて所定の関数値を生成する一方向性関数値生成段階と、
第2の情報処理装置が、並び替えテーブルを暗号化し、暗号化テーブルを生成するテーブル暗号化段階と、
第2の情報処理装置が、上記関数値とともに暗号化テーブルを、第1の情報処理装置に送信する関数値送信段階と、
第1の情報処理装置が、上記関数値とともに、暗号化テーブルを受信する関数値受信段階と、
第1の情報処理装置が、暗号化テーブルを復号し、並び替えテーブルを復元するテーブル復号段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素を、並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、照合用暗号コードに対して上記一方向性関数を作用させて照合用関数値を生成する照合用一方向性関数値生成段階と、
第1の情報処理装置が、関数値受信段階で受信した関数値と、照合用一方向性関数値生成段階で生成された照合用関数値と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(10) 実施例A〜Fのバリエーション(同一の並び替えテーブル)
本発明の第10の態様は、上述した第3〜第8の態様に係る情報処理装置の認証方法において、
第1の並び替えテーブルおよび第2の並び替えテーブルとして、同一のテーブルを用いるようにしたものである。
(11) 実施例A〜Gのバリエーション(公開鍵暗号方式)
本発明の第11の態様は、上述した第3〜第10の態様に係る情報処理装置の認証方法において、
第2の情報処理装置が、テーブル暗号化段階において、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて並び替えテーブルの暗号化を行い、
第1の情報処理装置が、テーブル復号段階において、この一対の鍵のうちの他方の鍵を用いて並び替えテーブルの復号を行うようにしたものである。
(12) 第2の実施形態に係る基本発明(図15参照)
本発明の第12の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、数字を羅列したランダムコードを発生させ、これを第2の情報処理装置に送信する段階と、
第2の情報処理装置が、ランダムコードを受信し、その構成要素となる個々の数字に対して、ランダムに発生した第1の修正数を用いた第1の修正演算を行って修正コードを生成する段階と、
第2の情報処理装置が、修正コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
第2の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、ランダムに発生した第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する段階と、
第2の情報処理装置が、修正暗号コードとともに、第1の修正演算および第2の修正演算のいずれか一方もしくは双方を示す修正情報を、第1の情報処理装置に送信する段階と、
第1の情報処理装置が、修正暗号コードとともに、修正情報を受信し、受信した修正暗号コードの正当性を、受信した修正情報に基づく修正演算および上記暗号アルゴリズムに基づく暗号化演算もしくは復号演算により確認する段階と、
を行うようにしたものである。
(13) 第2の実施形態に係る基本発明のバリエーション(修正情報の暗号化)
本発明の第13の態様は、上述した第12の態様に係る情報処理装置の認証方法において、
第2の情報処理装置から第1の情報処理装置への修正情報の送信を暗号化した状態で行うようにしたものである。
(14) 実施例aに係る発明(図18参照)
本発明の第14の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
第2の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第2の情報処理装置が、第1の修正数および第2の修正数をそれぞれ暗号化し、第1の暗号化修正数および第2の暗号化修正数を生成する修正数暗号化段階と、
第2の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数および第2の暗号化修正数を、第1の情報処理装置に送信する修正暗号コード送信段階と、
第1の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数および第2の暗号化修正数を受信する修正暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化修正数および第2の暗号化修正数をそれぞれ復号し、第1の修正数および第2の修正数を復元する修正数復号段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、照合用暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算を行って照合用修正暗号コードを生成する照合用修正暗号コード生成段階と、
第1の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードと、照合用修正暗号コード生成段階で生成された照合用修正暗号コードと、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
行うようにしたものである。
(15) 実施例bに係る発明(図19参照)
本発明の第15の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
第2の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第2の情報処理装置が、第1の修正数および第2の修正数をそれぞれ暗号化し、第1の暗号化修正数および第2の暗号化修正数を生成する修正数暗号化段階と、
第2の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数および第2の暗号化修正数を、第1の情報処理装置に送信する修正暗号コード送信段階と、
第1の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数および第2の暗号化修正数を受信する修正暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化修正数および第2の暗号化修正数をそれぞれ復号し、第1の修正数および第2の修正数を復元する修正数復号段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード第1生成段階と、
第1の情報処理装置が、修正暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード第2生成段階と、
第1の情報処理装置が、照合用暗号コード第1生成段階で生成した照合用暗号コードと、照合用暗号コード第2生成段階で生成した照合用暗号コードと、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(16) 実施例cに係る発明(図20参照)
本発明の第16の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
第2の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第2の情報処理装置が、第1の修正数および第2の修正数をそれぞれ暗号化し、第1の暗号化修正数および第2の暗号化修正数を生成する修正数暗号化段階と、
第2の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数および第2の暗号化修正数を、第1の情報処理装置に送信する修正暗号コード送信段階と、
第1の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数および第2の暗号化修正数を受信する修正暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化修正数および第2の暗号化修正数をそれぞれ復号し、第1の修正数および第2の修正数を復元する修正数復号段階と、
第1の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード生成段階と、
第1の情報処理装置が、照合用修正コードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算とは逆の演算を行って照合用ランダムコードを生成する照合用ランダムコード生成段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードと、照合用ランダムコード生成段階で生成された照合用ランダムコードと、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(17) 実施例dに係る発明(図21参照)
本発明の第17の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
第2の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第2の情報処理装置が、第1の修正数および第2の修正数をそれぞれ暗号化し、第1の暗号化修正数および第2の暗号化修正数を生成する修正数暗号化段階と、
第2の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数および第2の暗号化修正数を、第1の情報処理装置に送信する修正暗号コード送信段階と、
第1の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数および第2の暗号化修正数を受信する修正暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化修正数および第2の暗号化修正数をそれぞれ復号し、第1の修正数および第2の修正数を復元する修正数復号段階と、
第1の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード第1生成段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って照合用修正コードを生成する照合用修正コード第2生成段階と、
第1の情報処理装置が、照合用修正コード第1生成段階で生成した照合用修正コードと、照合用修正コード第2生成段階で生成した照合用修正コードと、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(18) 実施例eに係る発明(図22参照)
本発明の第18の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
第2の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第2の情報処理装置が、第1の修正数を暗号化し、第1の暗号化修正数を生成する修正数暗号化段階と、
第2の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数を、第1の情報処理装置に送信する修正暗号コード送信段階と、
第1の情報処理装置が、修正暗号コードとともに、第1の暗号化修正数を受信する修正暗号コード受信段階と、
第1の情報処理装置が、第1の暗号化修正数を復号し、第1の修正数を復元する修正数復号段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードに含まれている構成要素と、照合用暗号コード生成段階で生成された照合用暗号コードに含まれている構成要素と、が第2の修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(19) 実施例fに係る発明(図23参照)
本発明の第19の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
第2の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第2の情報処理装置が、第2の修正数を暗号化し、第2の暗号化修正数を生成する修正数暗号化段階と、
第2の情報処理装置が、修正暗号コードとともに第2の暗号化修正数を、第1の情報処理装置に送信する修正暗号コード送信段階と、
第1の情報処理装置が、修正暗号コードとともに、第2の暗号化修正数を受信する修正暗号コード受信段階と、
第1の情報処理装置が、第2の暗号化修正数を復号し、第2の修正数を復元する修正数復号段階と、
第1の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、第2の修正数を用いた第2の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード生成段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードに含まれている構成要素と、照合用修正コード生成段階で生成された照合用修正コードに含まれている構成要素と、が第1の修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(20) 実施例gに係る発明(図24参照)
本発明の第20の態様は、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第1の情報処理装置が、ランダムコードを第2の情報処理装置に送信するランダムコード送信段階と、
第2の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第2の情報処理装置が、乱数を利用して修正数を生成する修正数生成段階と、
第2の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、上記修正数を用いた修正演算を行って修正コードを生成する修正コード生成段階と、
第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第2の情報処理装置が、暗号コードに対して一方向性関数を作用させて所定の関数値を生成する一方向性関数値生成段階と、
第2の情報処理装置が、上記修正数を暗号化し、暗号化修正数を生成する修正数暗号化段階と、
第2の情報処理装置が、上記関数値とともに暗号化修正数を、第1の情報処理装置に送信する関数値送信段階と、
第1の情報処理装置が、上記関数値とともに、暗号化修正数を受信する関数値受信段階と、
第1の情報処理装置が、暗号化修正数を復号し、修正数を復元する修正数復号段階と、
第1の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、上記修正数を用いた修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
第1の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第1の情報処理装置が、照合用暗号コードに対して上記一方向性関数を作用させて照合用関数値を生成する照合用一方向性関数値生成段階と、
第1の情報処理装置が、関数値受信段階で受信した関数値と、照合用一方向性関数値生成段階で生成された照合用関数値と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
(21) 実施例a〜fのバリエーション(同一の修正数)
本発明の第21の態様は、上述した第14〜第19の態様に係る情報処理装置の認証方法において、
第1の修正数および第2の修正数として、同一の修正数を用いるようにしたものである。
(22) 実施例a〜gのバリエーション(公開鍵暗号方式)
本発明の第22の態様は、上述した第14〜第21の態様に係る情報処理装置の認証方法において、
第2の情報処理装置が、修正数暗号化段階において、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて修正数の暗号化を行い、
第1の情報処理装置が、修正数復号段階において、この一対の鍵のうちの他方の鍵を用いて修正数の復号を行うようにしたものである。
(23) 実施例a〜gのバリエーション(修正数の加減算)
本発明の第23の態様は、上述した第14〜第22の態様に係る情報処理装置の認証方法において、
修正数として、乱数を利用して生成した正もしくは負の数を用い、修正演算として、個々の数字に対してこの修正数を加算もしくは減算する演算を行うようにしたものである。
(24) 実施例a〜gのバリエーション(数値範囲の制限)
本発明の第24の態様は、上述した第23の態様に係る情報処理装置の認証方法において、
ランダムコードの構成要素となる個々の数字および暗号コードの構成要素となる個々の数字が、N〜M(但し、N<M)の範囲内の数値となるようにし、修正演算を行う際に、演算後の数値VがV<Nとなる場合には(M−N+1)を加算する補正を行い、演算後の数値VがV>Mとなる場合には(M−N+1)を減算する補正を行い、修正演算後の数値がN〜Mの範囲内の数値となるようにしたものである。
(25) 実施例a〜gのバリエーション(構成要素ごとの個別修正)
本発明の第25の態様は、上述した第14〜第24の態様に係る情報処理装置の認証方法において、
複数n個の数字を構成要素として含むコードについて、これらn個の構成要素のそれぞれについて別個に修正数を生成し、n個の修正数の数列を用いて修正演算を行うことを特徴とする情報処理装置の認証方法。
(26) 第2の実施形態に係る基本発明のバリエーション(文字を含むコード)
本発明の第26の態様は、上述した第12〜第25の態様に係る情報処理装置の認証方法において、
第1の情報処理装置および第2の情報処理装置として、それぞれ特定の数字に対応づけられた文字を取り扱う装置を用い、ランダムコードもしくは暗号コードとして文字を含むコードを発生させ、個々の文字をそれぞれ対応する数字として取り扱う処理を行うようにしたものである。
(27) 本発明全体についてのバリエーション(相互認証)
本発明の第27の態様は、上述した第1〜第26の態様に係る情報処理装置の認証方法において、
第1の情報処理装置が行う各処理段階と、第2の情報処理装置が行う各処理段階と、を入れ替えた処理を更に行うことにより、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証するとともに、第2の情報処理装置が第1の情報処理装置を正当性が確認された装置として認証する処理を行うようにしたものである。
(28) 本発明全体についてのバリエーション(情報処理装置)
本発明の第28の態様は、上述した第1〜第26の態様に係る情報処理装置の認証方法における第1の情報処理装置または第2の情報処理装置が行う各段階を実行する機能をもった装置を提供するようにしたものである。
(29) 本発明全体についてのバリエーション(プログラム)
本発明の第29の態様は、上述した第1〜第26の態様に係る情報処理装置の認証方法における第1の情報処理装置または第2の情報処理装置が行う各段階をコンピュータに実行させるプログラムを提供するようにしたものである。
本発明に係る情報処理装置の認証方法によれば、第1の情報処理装置から送信されてきたランダムコード(チャレンジ)を第2の情報処理装置で暗号化する際に、暗号化処理の前後に、コードの並び替え処理、修正処理、もしくは一方向性関数の作用処理を施すようにしたため、通信経路を介して送受されるチャレンジおよびレスポンスと、暗号化処理の対象となる平文および暗号文とが、相互に異なるデータになる。すなわち、通信傍受で得たチャレンジおよびレスポンスと、サイドチャネル解析の対象となる暗号化処理で用いる平文および暗号文とが直接的には対応しないことになる。したがって、通信傍受とサイドチャネル解析とを組み合わせた攻撃が行われても、採用している暗号アルゴリズムを容易には推定することができなくなり、そのような組み合わせ攻撃にも十分に耐え得る認証方法を提供することができる。また、本発明を導入するにあたっては、暗号化処理の前後に、コードの並び替え処理、修正処理、もしくは一方向性関数の作用処理を施すだけでよいので、非常に効率的な処理により目的を達成することができ、導入コストを抑制させることができる。
一般的なチャレンジレスポンス方式の認証方法を示すブロック図である。 本願の説明で便宜的に利用する具体的な暗号アルゴリズムAの一例を示す図である。 図1に示す認証方法に、図2に示す暗号アルゴリズムAを用いた場合の具体的なデータの変遷を示すブロック図である。 図3に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。 本発明の第1の実施形態に係る認証方法の基本概念を示すブロック図である。 図5の実施形態で用いられている具体的な並び替え方法を示す図である。 図5に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。 図5に示す第1の実施形態の具体的実施例Aを示すブロック図である。 図5に示す第1の実施形態の具体的実施例Bを示すブロック図である。 図5に示す第1の実施形態の具体的実施例Cを示すブロック図である。 図5に示す第1の実施形態の具体的実施例Dを示すブロック図である。 図5に示す第1の実施形態の具体的実施例Eを示すブロック図である。 図5に示す第1の実施形態の具体的実施例Fを示すブロック図である。 図5に示す第1の実施形態の具体的実施例Gを示すブロック図である。 本発明の第2の実施形態に係る認証方法の基本概念を示すブロック図である。 図15の実施形態で用いられている具体的な修正演算を示す図である。 図15に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。 図15に示す第2の実施形態の具体的実施例aを示すブロック図である。 図15に示す第2の実施形態の具体的実施例bを示すブロック図である。 図15に示す第2の実施形態の具体的実施例cを示すブロック図である。 図15に示す第2の実施形態の具体的実施例dを示すブロック図である。 図15に示す第2の実施形態の具体的実施例eを示すブロック図である。 図15に示す第2の実施形態の具体的実施例fを示すブロック図である。 図15に示す第2の実施形態の具体的実施例gを示すブロック図である。
以下、本発明を図示する実施形態に基づいて説明する。
<<< §1. 一般的なチャレンジレスポンス方式の認証方法 >>>
はじめに、説明の便宜上、従来から広く利用されている一般的なチャレンジレスポンス方式の認証方法の基本原理を簡単に説明しておく。ここでは、図1に示すように、第1の情報処理装置10(たとえば、サーバ装置)が第2の情報処理装置20(たとえば、クライアント装置)の正当性を確認する処理を例にとって、具体的なデータの流れに即した手順を述べる。
図示の例の場合、認証処理に関与する構成要素として、第1の情報処理装置10には、ランダムコード発生部11、照合用暗号コード生成部13、照合判定部15、ランダムコード送信部16、暗号コード受信部17が設けられており、第2の情報処理装置20には、ランダムコード受信部21、暗号コード生成部23、暗号コード送信部25が設けられている。
もちろん、実際には、各情報処理装置10,20には、それぞれ本来の機能を実行するために必要な様々な構成要素が組み込まれているが、ここでは認証処理に関与する構成要素のみを図示し、これら図示された構成要素についてのみの説明を行うことにする。§2以下に述べる本発明の各実施形態の説明においても同様である。
また、本願では、各情報処理装置の個々の構成要素を「○○部」と称するブロックで示し、当該「○○部」が実行する処理を「○○処理」もしくは「○○段階」と呼ぶことにする。たとえば、図1に示す例の場合、ランダムコード発生部11が実行する処理は「ランダムコード発生処理」もしくは「ランダムコード発生段階」であり、ランダムコード送信部16が実行する処理は「ランダムコード送信処理」もしくは「ランダムコード送信段階」ということになる。実際には、これらの各構成要素は専用のプログラムが組み込まれたコンピュータもしくは半導体集積回路の個々の機能として実現されることになり、各処理や各段階は、コンピュータもしくは半導体集積回路によって実行されることになる。
さて、第1の情報処理装置10が、第2の情報処理装置20を正当性が確認された装置として認証するには、まず、ランダムコード発生部11によって、文字もしくは数字を羅列したランダムコードRを発生させる処理が行われる。ランダムコード発生部11には、乱数を発生させる機能が備わっており、この機能を利用して、複数の文字もしくは数字からなるランダムコードRが生成される。たとえば、それぞれ1バイトからなる数字を1構成要素として、n個の構成要素を羅列したnバイトからなるランダムコードRを生成すればよい。このランダムコード発生段階の処理は、第2の情報処理装置20に対する認証が必要になったときに毎回行われるが、ランダムコードRは乱数に基づいて生成されたランダムなコードであるため、毎回、その内容は異なっている。
こうして発生されたランダムコードRは、ランダムコード送信部16によって、第2の情報処理装置20に対して送信される。こうして送信されるランダムコードRは、一般に「チャレンジ」と呼ばれるデータである。なお、コンピュータで取り扱われるデータは、いずれもバイナリデジタルデータであるが、本願では、実施例の説明の便宜上、ランダムコードRおよびこれに派生して生じる各種コードを文字もしくは数字を羅列したコードと把握して、以下の説明を行うことにする。
一方、第2の情報処理装置20では、「チャレンジ」として送信されてきたランダムコードRが、ランダムコード受信部21によって受信され、暗号コード生成部23に引き渡される。暗号コード生成部23は、与えられたランダムコードRを所定の暗号アルゴリズムAに基づいて暗号化し、暗号コードQを生成する処理を行い、これを暗号コード送信部25に与える。暗号コード送信部25は、この暗号コードQを第1の情報処理装置10に対して送信する。こうして送信される暗号コードQは、一般に「レスポンス」(認証トークン)と呼ばれるデータである。
続いて、第1の情報処理装置10では、「レスポンス」として送信されてきた暗号コードQが、暗号コード受信部17によって受信される。また、ランダムコード発生部11によって発生されたランダムコードRは、照合用暗号コード生成部13に引き渡される。照合用暗号コード生成部13は、第2の情報処理装置20内の暗号コード生成部23と同じ機能をもった構成要素であり、与えられたランダムコードRを暗号アルゴリズムAに基づいて暗号化し、照合用暗号コードQを生成する処理を行う。
第1の情報処理装置10内の照合用暗号コード生成部13で利用される暗号アルゴリズムAは、第2の情報処理装置20内の暗号コード生成部23で利用される暗号アルゴリズムAと全く同じアルゴリズムである。図では、この点を明確に示すため、これら各ブロック13,23内に丸Aの記号を記載してある。したがって、本来、照合用暗号コード生成部13で生成された照合用暗号コードQは、暗号コード生成部23で生成された暗号コードQと一致するはずである。照合判定部15は、両者が一致するか否かの照合を行い、一致した場合に、第2の情報処理装置20を正当性が確認された装置と判定する照合判定処理を行う。
要するに、第1の情報処理装置10で発生させたランダムコードRをチャレンジ(平文)として第2の情報処理装置200に与え、第2の情報処理装置200で暗号化し、得られた暗号コードQをレスポンス(暗号文)として返信させ、第1の情報処理装置10において、当該レスポンス(暗号文)が当該チャレンジ(平文)に応じた正しいものであるか否かを判定することにより、第2の情報処理装置200の正当性確認を行うことになる。
このようなチャレンジレスポンス方式の認証方法を採れば、暗号アルゴリズムAの秘匿性が維持されている限り、不正な装置を正規の装置になりすませる不正な認証行為を防ぐことができる。たとえば、第3の情報処理装置30を、第2の情報処理装置20に見せかけて不正行為を行うことを企てても、暗号コード生成部23で採用されている暗号アルゴリズムAの実体が把握できなければ、与えられたチャレンジRに対して正しいレスポンスQを返信することができないので、第1の情報処理装置10によって第3の情報処理装置30は、正規の装置として認証されないことになる。
暗号アルゴリズムAとしては、通常、固有の秘密鍵を用いる複雑な数学的演算処理が利用される。本発明における「暗号アルゴリズム」という用語は、このような数学的演算処理の手順そのものだけでなく、当該演算に用いられる固有の秘密鍵をも含めた概念を意味するものである。したがって、数学的演算処理の手順自体が漏洩したとしても、当該演算に用いられる固有の秘密鍵が秘匿状態であれば、本発明における「暗号アルゴリズム」の秘匿性は維持できることになる。
このように、一般的なチャレンジレスポンス方式の認証方法では、通常、固有の秘密鍵(暗号鍵)を用いる複雑な数学的演算処理からなる暗号アルゴリズムが利用されることになる。ただ、以下の各例では、説明の便宜上、図2に示すような極めて単純な暗号アルゴリズムAが採用された例に基づいて、具体的なデータの変遷例を示すことにする。図2に示す暗号アルゴリズムAは、10種類の数字(1〜9,0)と10種類のアルファベット(A〜J)とを1対1に対応させた表を用いて暗号化処理および復号処理を行う例である。
たとえば、「12345」という5つの数字を羅列した平文データが与えられた場合に、図2に示す暗号アルゴリズムAを用いて暗号化処理を行えば、「ABCDE」という5つのアルファベットを羅列した暗号データが得られることになる。逆に、「ABCDE」という暗号データが与えられた場合に、この暗号アルゴリズムAを用いて復号処理を行えば、「12345」という元の平文データが得られる。なお、平文データ/暗号データの区別や、暗号化処理/復号処理の区別は、人間の都合に応じて定められるものであり、それぞれ呼び方を逆にしてもかまわない。
要するに暗号アルゴリズムAは、与えられた第1の状態のデータを、一義的に第2の状態のデータに可逆的に変換するための論理的なアルゴリズムであればよい。可逆的な変換アルゴリズムであるから、当然、第2の状態のデータを一義的に第1の状態のデータに戻すことが可能である。上述したとおり、図2に例示するような極めて単純な暗号アルゴリズムAは、実用上、利用されることはないが、本願では、説明の便宜上、このような単純な暗号アルゴリズムAを利用した例を以下に述べることにする。
図3は、図1に示す認証方法に、図2に示す暗号アルゴリズムAを用いた場合の具体的なデータの変遷を示すブロック図である。この図3には、ランダムコード発生部11によって、「12345」なる5つの数字を羅列したランダムコードRが発生された場合の例が示されている。図面上では、この具体的なコードを括弧書きで示すことにする。こうして発生されたランダムコードR「12345」は、ランダムコード送信部16によって「チャレンジ」として送信され、ランダムコード受信部21によって受信される。
続いて、暗号コード生成部23が、このランダムコードR「12345」に対して、図2に示す暗号アルゴリズムAを用いた暗号化処理を行い、暗号コードQ「ABCDE」を生成する。この暗号コードQ「ABCDE」は、暗号コード送信部25から「レスポンス」として返信され、暗号コード受信部17によって受信される。
一方、ランダムコード発生部11によって発生されたランダムコードR「12345」は、照合用暗号コード生成部13によって暗号化される。照合用暗号コード生成部13は、暗号コード生成部23と全く同じ暗号アルゴリズムAを用いた暗号化処理を行うため、ランダムコードR「12345」は、やはり暗号コードQ「ABCDE」に変換される。最後に、照合判定部15において、照合用暗号コード生成部13で生成された照合用暗号コードQ「ABCDE」と、暗号コード受信部17によって受信された暗号コードQ「ABCDE」と、が一致するか否かの判定が行われ、一致した場合に、第2の情報処理装置20が正規の装置として認証される。図示の例の場合、両暗号コードはいずれも「ABCDE」であり、第2の情報処理装置20は正規の装置として認証されることになる。
このようなチャレンジレスポンス方式の認証方法は、暗号アルゴリズムAの秘匿性が維持されている限り有効な認証方法として機能する。上例は、ランダムコード発生部11によって発生されたランダムコードRが「12345」である例になっているが、ランダムコードRは乱数に基づいて認証を行うたびに発生されるランダムなコードであるため、毎回異なっている。たとえば、2回目の認証時には、「67890」のようなランダムコードRが「チャレンジ」として発生されることになり、これに対して「FGHIJ」なる暗号コードQが「レスポンス」として返信されることになる。したがって、暗号アルゴリズムAが秘匿されている限り、正しい「レスポンス」を生成することはできず、不正な方法で認証が行われることを防ぐことができる。
しかしながら、暗号アルゴリズムAの内容が推定されてしまうと、当該暗号アルゴリズムAに基づく暗号化処理機能をもたせた任意の情報処理装置を、正規の装置として認証させる不正行為が可能になる。
暗号アルゴリズムAを解析する方法としては、古くから、情報処理装置10,20間の通信を傍受する方法が知られている。図示の例の場合、両者間の通信路を流れる情報を盗聴すれば、ランダムコードR「12345」によるチャレンジに対して、暗号コードQ「ABCDE」というレスポンスが得られることが認識できる。同様に、別な認証時には、ランダムコードR「67890」によるチャレンジに対して、暗号コードQ「FGHIJ」というレスポンスが得られることが認識できる。
もちろん、第2の情報処理装置20を入手した者であれば、任意のコードをチャレンジとして与えたときに、どのようなレスポンスが返されるかを系統的に調べることも可能である。本願における「通信傍受」とは、このように第2の情報処理装置20を入手した者が、意図的に特定のチャレンジを与えて、どのようなレスポンスが返されるかを調べる行為も含めた概念である。
このような通信傍受により得られたチャレンジ・レスポンスの組み合わせは、第2の情報処理装置20内で実行されている暗号化処理で用いられている暗号アルゴリズムA(図2に示すアルゴリズム)を推定するヒントを与えることになる。図2に例示するような単純なアルゴリズムAであれば、チャレンジ・レスポンスの組み合わせをいくつか収集することにより解析が可能であり、通信傍受により容易に推定することができる。
ただ、前述したとおり、実用上は、固有の秘密鍵を用いる複雑な数学的演算処理からなる暗号アルゴリズムが利用されており、その防備は数学的にはかなり強固である。したがって、現在一般に利用されている暗号アルゴリズムを、通信傍受の方法のみによって推定することは極めて困難と言うことができ、それだけで暗号アルゴリズムが露見する可能性は低い。ところが、近年、問題視されているサイドチャネル解析を組み合わせると、暗号アルゴリズムの推定が容易になることが懸念されている。
図3に示す例の場合、サイドチャネル解析は、暗号アルゴリズムAに基づいて暗号化処理を実行中の第2の情報処理装置20について、消費電力、演算処理時間、発生する電磁波などをモニタすることによって行われる。たとえば、第2の情報処理装置20に様々な測定装置を取り付けた状態で暗号化処理を実行させれば、特定のチャレンジに対して特定のレスポンスを生成する際に、装置内部でどのような演算処理が行われているのかを推定する重要な手がかりが得られることになる。
図4は、図3に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。図示の例の場合、まず、通信傍受により、ランダムコードR「12345」によるチャレンジに対して、暗号コードQ「ABCDE」というレスポンスが得られる事実が認識できる。このとき、暗号コード生成部23の内部では、暗号アルゴリズムAに基づく暗号化処理の演算が実行されていることになる。したがって、同時にサイドチャネル解析を行えば、暗号コード生成部23がコード「12345」をコード「ABCDE」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報が得られることになる。
このように、通信傍受によって得られた情報に、サイドチャネル解析によって得られた情報を組み合わせると、暗号アルゴリズムAの推定が容易になることは否めない。このため、たとえ数学的に強固な暗号アルゴリズムを採用しても、不正な攻撃にさらされる危険性が指摘されている。本発明は、このような問題を解決する一手法を提案するものであり、通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐え得る情報処理装置の認証方法を提供することを目的とする。
<<< §2. 本発明の第1の実施形態に係る認証方法の基本概念 >>>
ここでは、図5を参照しながら、本発明の第1の実施形態に係る認証方法の基本概念を説明する。具体的には、第1の情報処理装置100(たとえば、サーバ装置)が第2の情報処理装置200(たとえば、クライアント装置)の正当性を確認する処理を例にとって、データの流れに即した処理手順を述べることにする。
図示の例の場合、認証処理に関与する構成要素として、第1の情報処理装置100には、ランダムコード発生部110、照合用並替コード生成部120、照合用暗号コード生成部130、照合用並替暗号コード生成部140、照合判定部150、ランダムコード送信部160、並替暗号コード受信部170が設けられており、第2の情報処理装置200には、ランダムコード受信部210、並替コード生成部220、暗号コード生成部230、並替暗号コード生成部240、並替暗号コード送信部250が設けられている。
この図5に示す第1の情報処理装置100(本発明の装置)を、図3に示す第1の情報処理装置10(従来の装置)と対比すると、ランダムコード発生部110はランダムコード発生部11に対応し、照合用暗号コード生成部130は、照合用暗号コード生成部13に対応し、照合判定部150は照合判定部15に対応し、ランダムコード送信部160はランダムコード送信部16に対応し、並替暗号コード受信部170は暗号コード受信部17に対応する。これらの各対応する構成要素の機能は基本的にほぼ同じものである。
したがって、図5に示す第1の情報処理装置100(本発明の装置)の大きな特徴は、図3に示す第1の情報処理装置10(従来の装置)に、更に、照合用並替コード生成部120および照合用並替暗号コード生成部140を付加したものということになる。これら新たな構成要素120,140の役割は、照合用暗号コード生成部130における暗号化処理の前後の段階において、データの並び替えを行うことにある。
一方、図5に示す第2の情報処理装置200(本発明の装置)を、図3に示す第2の情報処理装置20(従来の装置)と対比すると、ランダムコード受信部210はランダムコード受信部21に対応し、暗号コード生成部230は暗号コード生成部23に対応し、並替暗号コード送信部250は暗号コード送信部25に対応する。これらの各対応する構成要素の機能は基本的にほぼ同じものである。
したがって、図5に示す第2の情報処理装置200(本発明の装置)の大きな特徴は、図3に示す第2の情報処理装置20(従来の装置)に、更に、並替コード生成部220および並替暗号コード生成部240を付加したものということになる。これら新たな構成要素220,240の役割は、暗号コード生成部230における暗号化処理の前後の段階において、データの並び替えを行うことにある。
より具体的に説明すれば、第1の情報処理装置100内の照合用並替コード生成部120および第2の情報処理装置200内の並替コード生成部220は、いずれも与えられたランダムコードRの構成要素を並び替えて並替コードR′を生成する機能を果たす。具体的には、図示の例の場合、第1の並び替え方法X1に基づいて、5つの数字を羅列してなるランダムコードR「12345」が、「35214」という順序に並び替えられ、並替コードR′が生成されている。図5におけるブロック220内の丸X1は、方法X1によって並び替えが行われることを示すものである(以下同様)。
図6(a) は、この第1の並び替え方法X1を定義する第1の並び替えテーブルT1を示す図である。このテーブルT1は、5つの構成要素m1〜m5からなる任意のコードに対する並び替えを定義するためのものであり、具体的には、構成要素m1,m2,m3,m4,m5をこの順番に羅列してなるコードについて、各構成要素が、m3,m5,m2,m1,m4の順番に並ぶような並び替え方法を定義するものである。図5に示す例の場合、照合用並替コード生成部120および並替コード生成部220において、ランダムコードR「12345」の各構成要素が、この第1の並び替えテーブルT1に基づいて並び替えられ、並替コードR′「35214」が生成されている。
結局、照合用暗号コード生成部130および暗号コード生成部230には、ランダムコードR「12345」の代わりに並替コードR′「35214」が与えられることになる。したがって、暗号化処理は、この並替コードR′「35214」に対して行われる。前述のとおり、ここでは説明の便宜上、暗号化処理が、図2に示すような単純な暗号アルゴリズムAに基づいて行われることにしている。したがって、並替コードR′「35214」に対する暗号化処理を行うことにより、暗号コードQ「CEBAD」が生成されることになる。
一方、第1の情報処理装置100内の照合用並替暗号コード生成部140および第2の情報処理装置200内の並替暗号コード生成部240は、いずれも与えられた暗号コードQの構成要素を並び替えて並替暗号コードQ′を生成する機能を果たす。具体的には、図示の例の場合、第2の並び替え方法X2に基づいて、5つのアルファベットを羅列してなる暗号コードQ「CEBAD」が、「BEDAC」という順序に並び替えられ、並替暗号コードQ′が生成されている。
図6(b) は、この第2の並び替え方法X2を定義する第2の並び替えテーブルT2を示す図である。このテーブルT2は、やはり5つの構成要素m1〜m5からなる任意のコードに対する並び替えを定義するためのものであり、具体的には、構成要素m1,m2,m3,m4,m5をこの順番に羅列してなるコードについて、各構成要素が、m3,m2,m5,m4,m1の順番に並ぶような並び替え方法を定義するものである。図5に示す例の場合、照合用並替暗号コード生成部140および並替暗号コード生成部240において、暗号コード「CEBAD」の各構成要素が、この第2の並び替えテーブルT2に基づいて並び替えられ、並替暗号コードQ′「BEDAC」が生成されている。
こうして、並替暗号コード送信部250から並替暗号コード受信部170に対しては、並替暗号コードQ′「BEDAC」が返信されることになる。照合判定部150は、並替暗号コード受信部170が受信した並替暗号コードQ′「BEDAC」と、照合用並替暗号コード生成部140が生成した並替暗号コードQ′「BEDAC」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200を正当性が確認された装置と判定する処理を行うことになる。
なお、並替コード生成部220が実行する並び替え処理に利用される第1の並び替え方法X1や、並替暗号コード生成部240が実行する並び替え処理に利用される第2の並び替え方法X2は、認証処理が行われるたびにランダムに定義するようにする。すなわち、ランダムコード受信部210が新たなランダムコードRを受信するたびに、並替コード生成部220および並替暗号コード生成部240は、ランダムに定義された新たな並び替え方法X1およびX2を用いて、毎回、異なる並び替え方法に基づく並び替えが行われるようにする。
一方、照合用並替コード生成部120が利用する並び替え方法X1は、そのときに並替コード生成部220で利用された並び替え方法X1と同一である必要があり、照合用並替暗号コード生成部140が利用する並び替え方法X2は、そのときに並替暗号コード生成部240で利用された並び替え方法X2と同一である必要がある。そこで、並替暗号コード送信部250は、並替暗号コードQ′とともに、並替コード生成部220が利用した第1の並び替え方法X1と並替暗号コード生成部240が利用した第2の並び替え方法X2とを示す並替情報を、並替暗号コード受信部170に対して送信する。
並替暗号コード受信部170は、受信した並替暗号コードQ′を照合判定部150に引き渡すとともに、受信した並替情報(すなわち、第1の並び替え方法X1および第2の並び替え方法X2)を照合用並替コード生成部120および照合用並替暗号コード生成部140に引き渡す処理を行う。これにより、照合用並替コード生成部120は第1の並び替え方法X1に基づく並び替え処理を行うことができ、照合用並替暗号コード生成部140は第2の並び替え方法X2に基づく並び替え処理を行うことができる。
要するに、この図5に示す認証方法を採用した場合、第1の情報処理装置100から第2の情報処理装置200に対して、チャレンジとしてランダムコードR「12345」が与えられると、並替コード生成部220において、このランダムコードR「12345」は、第1の並び替え方法X1に基づいて並び替えられ、並替コードR′「35214」に変換される。そして、暗号コード生成部230は、この並替コードR′「35214」に対して暗号アルゴリズムAに基づく暗号化処理を行って、暗号コードQ「CEBAD」を生成する。更に、並替暗号コード生成部240において、この暗号コードQ「CEBAD」は、第2の並び替え方法X2に基づいて並び替えられ、並替暗号コードQ′「BEDAC」に変換された後、この並替暗号コードQ′「BEDAC」がレスポンスとして返信されることになる。
図7は、図5に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。もちろん、この図5に示す認証方法を採用した場合も、通信傍受やサイドチャネル解析は可能である。しかしながら、通信傍受によって得られる情報とサイドチャネル解析によって得られる情報との間には、直接的な関連がないため、両者を組み合わせたとしても、暗号アルゴリズムAを推定することは困難である。
すなわち、図5に示す認証方法を採用した場合、通信傍受によって得られる情報は、図7に示すとおり、ランダムコードR「12345」によるチャレンジに対して、並替暗号コードQ′「BEDAC」というレスポンスが得られるという事実である。しかしながら、このとき、暗号コード生成部230の内部で行われている暗号化処理の演算は、ランダムコードR「12345」を並替暗号コードQ′「BEDAC」に変換する演算ではなく、並替コードR′「35214」を暗号コードQ「CEBAD」に変換する演算であり、サイドチャネル解析によって得られる情報は、図7に示すとおり、並替コードR′「35214」を暗号コードQ「CEBAD」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報ということになる。
別言すれば、暗号コード生成部230が採用している暗号アルゴリズムAを解析しようとして、通信傍受によりチャレンジ「12345」とレスポンス「BEDAC」とが特定されたとしても、実際に行われている暗号化処理の演算は、別なコード「35214」を「CEBAD」に変換する演算であるため、両者を組み合わせた解析を行ったとしても、暗号アルゴリズムAを推定することは困難になる。これが本発明の基本的な技術思想であり、通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐え得る認証方法が実現できる基本原理である。また、本発明を導入するにあたっては、暗号化処理の前後に、比較的単純なデータ処理(図5の例の場合、並べ替え処理)を行うプロセスを追加するだけでよいので、非常に効率的な処理により上記攻撃への対抗策を用意することができ、導入コストを抑制させることができる。
結局、本発明の第1の実施形態に係る情報処理装置の認証方法を総括すると、次のようなプロセスが行われることになる。すなわち、第1の情報処理装置100が第2の情報処理装置200を正当性が確認された装置として認証するために、まず、第1の情報処理装置100側において、乱数を利用して、文字もしくは数字を羅列したランダムコードRを発生させ、これを第2の情報処理装置200に送信する段階(ランダムコード発生部110およびランダムコード送信部160による処理)が行われる。
続いて、第2の情報処理装置200側において、送信されてきたランダムコードRを受信し、その構成要素をランダムな第1の並び替え方法X1で並び替えて並替コードR′を生成する段階(ランダムコード受信部210および並替コード生成部220による処理)と、この並替コードR′を所定の暗号アルゴリズムにAに基づく暗号化演算によって暗号化し、暗号コードQを生成する段階(暗号コード生成部230による処理)と、この暗号コードQの構成要素をランダムな第2の並び替え方法X2で並び替えて並替暗号コードQ′を生成する段階(並替暗号コード生成部240による処理)と、並替暗号コードQ′とともに、第1の並び替え方法X1および第2の並び替え方法X2を示す並替情報を、第1の情報処理装置100に送信する段階(並替暗号コード送信部250による処理)と、が行われる。
そして、第1の情報処理装置100側において、並替暗号コードQ′とともに、並替情報を受信し(並替暗号コード受信部170による処理)、受信した並替暗号コードQ′の正当性を、受信した並替情報に基づく並び替え処理(照合用並替コード生成部120および照合用並替暗号コード生成部140による処理)および暗号コード生成部230による暗号化処理と同じ暗号アルゴリズムAに基づく暗号化演算(照合用暗号コード生成部130による処理)によって確認する段階が行われる。
なお、第2の情報処理装置200から第1の情報処理装置100への並替情報(第1の並び替え方法X1および第2の並び替え方法X2を示す情報)の送信は、実際には暗号化した状態で行うのが好ましい。すなわち、第2の情報処理装置200側で並替情報の暗号化処理を行い、暗号化された状態の並替情報が並替暗号コード送信部250から並替暗号コード受信部170へと送信されるようにし、これを第1の情報処理装置100側で復号して元に戻すようにすれば、通信傍受が行われても並替情報が露見するのを防ぐことができる。
また、図5に示す例では、第1の情報処理装置100側において、第2の情報処理装置200側で行われた暗号化演算と同じ暗号化演算を行い、照合判定部150が双方の処理結果として得られた並替暗号コードQ′の一致確認を行うことにより認証を行っているが、本発明は、必ずしもこのような手順で一致確認を行う例に限定されるものではない。たとえば、第1の情報処理装置100側において、並替暗号コードQ′に基づく復号演算(暗号コード生成部230による暗号化処理と同じ暗号アルゴリズムAに基づく復号演算)を実行することにより照合を行ってもかまわない。
更に、図5に示す例では、第2の情報処理装置200側において、並び替え方法X1に基づくランダムコードRに対する並び替えと、並び替え方法X2に基づく暗号コードQに対する並び替えと、を行っているため、これに応じて、第1の情報処理装置100側においても、並び替え方法X1に基づくランダムコードRに対する並び替えと、並び替え方法X2に基づく暗号コードQに対する並び替えと、を行っている。しかしながら、本発明は、必ずしもこのような手順で一致確認を行う例に限定されるものではなく、たとえば、第1の情報処理装置100側において、一方の並び替え処理を省略することも可能である。この場合、並替暗号コード送信部250は、並替暗号コードQ′とともに、第1の並び替え方法および第2の並び替え方法の双方を示す並替情報を送信する必要はなく、いずれか一方を示す並替情報を送信すれば足りる。
このように、ここでは図5に示す基本的な実施例に基づいて本発明の第1の実施形態の基本概念を説明したが、実際には、細かな部分を変更した様々なバリエーションが考えられる。そこで、以下の§3では、このようなバリエーションに係る実施例をいくつか述べることにする。
<<< §3. 第1の実施形態の具体的な実施例 >>>
本発明の第1の実施形態の特徴は、図5の例を用いてその基本概念を説明したように、認証を行う際に、図6に例示するような並び替え方法をランダムに定義し、暗号化処理を行う際に並び替え処理を行う点にある。以下、その具体的な実施例をいくつか説明する。
<3−1.実施例A:暗号化による照合その1>
図8は、図5に示す第1の実施形態の実施例Aを示すブロック図である。ここでは、この図8を参照しながら、実施例Aに係る認証方法の基本概念を説明する。この実施例Aでは、第1の情報処理装置100Aが第2の情報処理装置200Aの正当性を確認する処理が行われることになる。
図示のとおり、この実施例の場合、認証処理に関与する構成要素として、第1の情報処理装置100Aには、ランダムコード発生部110、照合用並替コード生成部120、照合用暗号コード生成部130、照合用並替暗号コード生成部140、照合判定部150、ランダムコード送信部160、並替暗号コード受信部170、テーブル復号部180が設けられている。ここで、構成要素110〜170は、図5に示す基本的実施例の構成要素110〜170と同一の構成要素である。また、構成要素180は、この実施例Aにおいて新たに導入された構成要素であり、暗号化された状態で送信されてきた並び替えテーブルを復号する処理を行う構成要素である。
一方、第2の情報処理装置200Aには、ランダムコード受信部210、並替コード生成部220、暗号コード生成部230、並替暗号コード生成部240、並替暗号コード送信部250、テーブル暗号化部260、並替テーブル生成部270が設けられている。ここで、構成要素210〜250は、図5に示す基本的実施例の構成要素210〜250と同一の構成要素である。また、構成要素260,270は、この実施例Aにおいて新たに導入された構成要素であり、コードの並び替え方法X1,X2を定義するために並び替えテーブルT1,T2を生成し、これを暗号化する処理を行う構成要素である。
結局、この図8に示す実施例Aでは、図5に示す基本的実施例における第2の情報処理装置200内に、乱数を利用して第1の並び替えテーブルT1および第2の並び替えテーブルT2を生成する並替テーブル生成部270と、これら第1の並び替えテーブルT1および第2の並び替えテーブルT2をそれぞれ暗号化し、第1の暗号化テーブルT1および第2の暗号化テーブルT2を生成するテーブル暗号化部260と、が追加されることになる。
並替テーブル生成部270は、ランダムコード受信部210が新たなランダムコードRを受信するたびに、第1の並び替えテーブルT1および第2の並び替えテーブルT2を生成する処理を行う。そして、並替コード生成部220は、こうして生成された第1の並び替えテーブルT1によって定義される第1の並び替え方法X1(たとえば、図6(a) に示す方法)に基づいてランダムコードRの構成要素を並び替えて並替コードR′を生成する処理を行う。同様に、並替暗号コード生成部240は、こうして生成された第2の並び替えテーブルT2によって定義される第2の並び替え方法X2(たとえば、図6(b) に示す方法)に基づいて暗号コードQの構成要素を並び替えて並替暗号コードQ′を生成する処理を行う。
並び替えテーブルの具体的な形態は、図6(a) ,(b) に例示するように、ランダムコードRや暗号コードQの構成要素(個々の文字もしくは数字)の並び順を特定の並び替え方法に基づいて変更することを定義できるものであれば、どのような形態のものであってもかまわない。図示の例の場合、ランダムコードRおよび暗号コードQは、いずれも5つの構成要素によって構成されているため、並び替えテーブルT1,T2は、5つの構成要素についての並び替えを定義するテーブルになっているが、もちろん、並び替えテーブルは、ランダムコードRおよび暗号コードQの構成要素の数に応じたテーブルにしておくようにする。
こうして生成された並び替えテーブルT1,T2は、テーブル暗号化部260において暗号化され、暗号テーブルT1,T2となる。したがって、並替暗号コード送信部250は、並替暗号コードQ′とともに暗号テーブルT1,T2を第1の情報処理装置100Aに対して送信することになる。
並替暗号コード受信部170は、こうして送信されてきた並替暗号コードQ′および暗号テーブルT1,T2を受信する。受信した並替暗号コードQ′は、照合判定部150に与えられ、受信した暗号テーブルT1,T2は、テーブル復号部180に与えられる。テーブル復号部180は、暗号テーブルT1,T2をそれぞれ復号し、元の並び替えテーブルT1,T2を復元する処理を行う。
照合用並替コード生成部120は、こうして復元された第1の並び替えテーブルT1によって定義される第1の並び替え方法X1に基づいてランダムコードRの構成要素を並び替えて並替コードR′を生成する処理を行う。同様に、照合用並替暗号コード生成部140は、こうして復元された第2の並び替えテーブルT2によって定義される第2の並び替え方法X2に基づいて暗号コードQの構成要素を並び替えて並替暗号コードQ′を生成する処理を行う。
なお、並び替えテーブルT1,T2の暗号化および復号には、公開鍵暗号方式を利用するのが好ましい。具体的には、テーブル暗号化部260が、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて並び替えテーブルT1,T2の暗号化を行って暗号テーブルT1,T2を生成するようにし、テーブル復号部180が、上記一対の鍵のうちの他方の鍵を用いて暗号テーブルT1,T2に対する復号を行って元の並び替えテーブルT1,T2を生成するようにすればよい。
たとえば、第1の情報処理装置100Aがサーバ装置、第2の情報処理装置200Aがクライアント装置の場合、テーブル暗号化部260は、サーバ装置100Aを管理する者の公開鍵を用いて暗号化を行い、テーブル復号部180は、サーバ装置100Aを管理する者の秘密鍵を用いて復号を行うことができる。
上述したとおり、並び替えテーブルT1,T2は、図示する認証処理を行うたびに、第2の情報処理装置200A側で乱数を利用して新たに生成されるランダムなテーブルであるため、これを第1の情報処理装置100A側に送信する必要がある。ここに示す実施例Aでは、並び替えテーブルT1,T2を暗号化して、暗号テーブルT1,T2の形で送信することができるので、通信傍受が行われても、並び替えテーブルT1,T2が直接露見することはない。したがって、不正な攻撃に対する防備をより高めることができる。
なお、図6には、第1の並び替えテーブルT1および第2の並び替えテーブルT2として、それぞれ異なるテーブルを生成する例を示したが、テーブルT1,T2は、必ずしも異なるテーブルである必要はなく、同一のテーブルを用いるようにしてもかまわない。ただ、それぞれ異なるテーブルを用意した方が、不正な攻撃に対する防備を高める上では効果的であるので、実用上は、図6に示す例のように、第1の並び替えテーブルT1および第2の並び替えテーブルT2として、それぞれ異なるテーブルを生成するのが好ましい。
続いて、図8を参照しながら、実施例Aにおける認証方法の具体的な処理内容、すなわち、第1の情報処理装置100Aが第2の情報処理装置200Aを正当性が確認された装置として認証するための具体的手順を、データの流れを追って順に説明する。
まず、ランダムコード発生部110において、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードRを発生させるランダムコード発生段階が行われる。図示の例は、5つの数字を羅列したランダムコードR「12345」が発生された例である。実用上は、1バイトで表現される数字をn個羅列したランダムコードRを発生させるのが好ましい。そして、ランダムコード送信部160において、このランダムコードR「12345」を第2の情報処理装置200Aに送信するランダムコード送信段階が行われる。
続いて、ランダムコード受信部210において、送信されてきたランダムコードR「12345」を受信するランダムコード受信段階が行われ、並替テーブル生成部270において、乱数を利用して、図6に例示するような第1の並び替えテーブルT1および第2の並び替えテーブルT2を生成する並替テーブル生成段階が行われる。
そして、並替コード生成部220において、第1の並び替えテーブルT1に基づいて(第1の並び替え方法X1に基づいて)、ランダムコードR「12345」の構成要素を並び替えて並替コードR′「35214」を生成する並替コード生成段階が行われ、暗号コード生成部230において、所定の暗号アルゴリズムAに基づく暗号化演算によって、並替コードR′「35214」を暗号化して暗号コードQ「CEBAD」を生成する暗号コード生成段階が行われ、更に、並替暗号コード生成部240において、第2の並び替えテーブルT2に基づいて、暗号コードQ「CEBAD」の構成要素を並び替えて並替暗号コードQ′「BEDAC」を生成する並替暗号コード生成段階が行われる。
また、テーブル暗号化部260では、第1の並び替えテーブルT1および第2の並び替えテーブルT2をそれぞれ暗号化し、第1の暗号化テーブルT1および第2の暗号化テーブルT2を生成するテーブル暗号化段階が行われる。そして、並替暗号コード送信部250において、並替暗号コードQ′「BEDAC」とともに、第1の暗号化テーブルT1および第2の暗号化テーブルT2を、第1の情報処理装置100Aに送信する並替暗号コード送信段階が行われる。
一方、並替暗号コード受信部170では、送信を受けた並替暗号コードQ′「BEDAC」、ならびに、第1の暗号化テーブルT1および第2の暗号化テーブルT2を受信する並替暗号コード受信段階が行われ、テーブル復号部180では、第1の暗号化テーブルT1および第2の暗号化テーブルT2をそれぞれ復号し、第1の並び替えテーブルT1および第2の並び替えテーブルT2を復元するテーブル復号段階が行われる。
そして、照合用並替コード生成部120において、ランダムコード発生部110が発生させたランダムコードR「12345」の構成要素を、復元された第1の並び替えテーブルT1に基づいて並び替えて照合用並替コードR′「35214」を生成する照合用並替コード生成段階が行われ、照合用暗号コード生成部130において、暗号コード生成部230が採用している暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく暗号化演算によって、照合用並替コードR′「35214」を暗号化して照合用暗号コードQ「CEBAD」を生成する照合用暗号コード生成段階が行われ、更に、照合用並替暗号コード生成部140において、復元された第2の並び替えテーブルT2に基づいて、照合用暗号コードQ「CEBAD」の構成要素を並び替えて照合用並替暗号コードQ′「BEDAC」を生成する照合用並替暗号コード生成段階が行われる。
そして、最後に、照合判定部150において、並替暗号コード受信部170が受信した並替暗号コードQ′「BEDAC」と、照合用並替暗号コード生成部140が生成した照合用並替暗号コードQ′「BEDAC」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200Aを正当性が確認された装置と判定する照合判定段階が行われる。
結局、この図8に示す実施例Aに係る認証方法を採用した場合、第1の情報処理装置100Aから第2の情報処理装置200Aに対して、チャレンジとしてランダムコードR「12345」が与えられると、並替コード生成部220において、このランダムコードR「12345」は、第1の並び替えテーブルT1に基づいて並び替えられ、並替コードR′「35214」に変換される。そして、暗号コード生成部230は、この並替コードR′「35214」に対して暗号アルゴリズムAに基づく暗号化処理を行って、暗号コードQ「CEBAD」を生成する。更に、並替暗号コード生成部240において、この暗号コードQ「CEBAD」は、第2の並び替えテーブルT2に基づいて並び替えられ、並替暗号コードQ′「BEDAC」に変換された後、この並替暗号コードQ′「BEDAC」がレスポンスとして返信されることになる。
このとき、第1の情報処理装置100Aには、このレスポンスとともに、並び替えテーブルT1,T2が暗号化された状態で送信される。しかも、照合用暗号コード生成部130は、暗号コード生成部230と同じ暗号アルゴリズムAを用いた暗号化処理を実行する機能を有している。したがって、第1の情報処理装置100A側においても、第2の情報処理装置200A側において実行された手順と同様の手順を実行して、ランダムコードR「12345」→並替コードR′「35214」→暗号コードQ「CEBAD」→並替暗号コードQ′「BEDAC」という変遷を辿って、並替暗号コードQ′「BEDAC」を得ることができ、最終的に、照合判定部150において、並替暗号コードQ′「BEDAC」の一致確認を行うことにより、第2の情報処理装置200Aの正当性が確認されることになる。
この実施例Aに示す認証方法が、通信傍受およびサイドチャネル解析を組み合わせた攻撃に対しても十分な防備機能を果たすことは、図7を用いて説明したとおりである。すなわち、図8に示す認証方法を採用した場合、通信傍受によって得られる情報は、図7に示すとおり、ランダムコードR「12345」によるチャレンジに対して、並替暗号コードQ′「BEDAC」というレスポンスが得られるという事実である。
ところが、このとき、暗号コード生成部230の内部で行われている暗号化処理の演算は、ランダムコードR「12345」を並替暗号コードQ′「BEDAC」に変換する演算ではなく、並替コードR′「35214」を暗号コードQ「CEBAD」に変換する演算であり、サイドチャネル解析によって得られる情報は、図7に示すとおり、並替コードR′「35214」を暗号コードQ「CEBAD」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報ということになる。
このように、通信傍受によりチャレンジ「12345」とレスポンス「BEDAC」とが特定されたとしても、実際に行われている暗号化処理の演算は、別なコード「35214」を「CEBAD」に変換する演算であるため、両者を組み合わせた解析を行ったとしても、暗号アルゴリズムAを推定することは困難になる。
<3−2.実施例B:暗号化による照合その2>
続いて、図9を参照しながら、本発明の第1の実施形態の実施例Bを説明する。この実施例Bでは、第1の情報処理装置100Bが第2の情報処理装置200Bの正当性を確認する処理が行われることになる。実施例Bは、前述した実施例Aにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例Aとほぼ同じである。そこで、以下、実施例Aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200Bについては、実施例Aに示す第2の情報処理装置200Aの構成と全く同じであるため、ここでは説明を省略する。また、第1の情報処理装置100Bについては、構成要素110,120,160,170,180は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素130,140,150の代わりに、照合用暗号コード第1生成部130B,照合用暗号コード第2生成部140B,照合判定部150Bが設けられている点である。そこで、以下、これら3つの構成要素の機能について説明する。なお、実施例Bの構成要素のうち、実施例Aの構成要素と異なるものについては、符号末尾に「B」を付して示してある。
はじめに、照合用暗号コード第1生成部130Bは、実際には、実施例Aにおける照合用暗号コード生成部130と全く同じ機能をもった構成要素であり、暗号コード生成部230において実行される暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく暗号化演算によって、照合用並替コードR′「35214」を暗号化して照合用暗号コードQ「CEBAD」を生成する照合用暗号コード第1生成段階を実行する。したがって、図9においても、「照合用暗号コード第1生成部130B」と呼ばずに「照合用暗号コード生成部130」と呼んでもよいが、ここでは、構成要素140Bとの混同を避けるため、名称に「第1」を挿入しているため、符号も「130」ではなく新たな符号「130B」を付している。
一方、照合用暗号コード第2生成部140Bは、第2の並び替えテーブルT2を逆転させたテーブルに基づいて、並替暗号コード受信部170が受信した並替暗号コードQ′「BEDAC」の構成要素を並び替えて、照合用暗号コードQ「CEBAD」を生成する照合用暗号コード第2生成段階を行う構成要素である。照合用暗号コード第1生成部130Bも照合用暗号コード第2生成部140Bも、照合用暗号コードQ「CEBAD」を生成する機能をもった構成要素であるが、前者が、照合用並替コードR′「35214」に対する暗号化処理によって照合用暗号コードQ「CEBAD」を生成するのに対して、後者は、並替暗号コードQ′「BEDAC」に対する並び替え処理によって照合用暗号コードQ「CEBAD」を生成することになる。
ここで、第2の並び替えテーブルT2を逆転させたテーブルとは、図6(b) に示すテーブルT2とは逆の並び替えを示すテーブル、すなわち、図の矢印の向きを逆転させて、下段の並び順から上段の並び順に変換する並び替え方法を示すテーブルを意味する。なお、本願の図では、任意の並び替えテーブルTを逆転させたテーブルを、符号Tの上部にバーを付した符号で示し、任意の並び替え方法Xを逆転させた並び替え方法を、符号Xの上部にバーを付した符号で示すことにする。また、明細書中では、それぞれテーブルTバー、並び替え方法Xバーと表記する。
上述したように、照合用暗号コード第2生成部140Bは、与えられた並替暗号コードQ′「BEDAC」を、照合用暗号コードQ「CEBAD」に変換する処理を行うが、当該処理は、逆転テーブルT2バーによって示された並び替え方法X2バーに基づく並び替え処理ということになる。
なお、実際には、各並べ替えテーブルTは可換性を有するテーブルであり、テーブルTと逆転テーブルTバーとは本質的には同じ情報をもったテーブルということができ、テーブルに記述された並び替え操作を作用させる方向が異なっているだけである。したがって、図では、照合用暗号コード第2生成部140Bが、逆転テーブルT2バーに基づいて並べ替え処理を行うような記載がなされているが、実用上は、テーブル復号部180からは第2の並び替えテーブルT2をそのまま与え、照合用暗号コード第2生成部140Bでは、このテーブルT2を逆方向に作用させた並び替えを行うようにすればよい。以下の各実施例においても同様である。
結局、この実施例Bにおける照合用暗号コード第2生成部140Bは、並替暗号コード生成部240とは逆の並び替え処理を行い、並替暗号コードQ′「BEDAC」を、照合用暗号コードQ「CEBAD」に変換していることになる。別言すれば、この実施例Bでは、照合判定を行う際に、並替暗号コード生成部240による並び替え処理によって得られた並替暗号コードQ′「BEDAC」を、元の並び順をもった暗号コードQ「CEBAD」の状態に戻し、その状態での一致確認を行うことにより照合を行うことになる。
すなわち、照合判定部150Bは、照合用暗号コード第1生成部130Bが生成した照合用暗号コードQ「CEBAD」と、照合用暗号コード第2生成部140Bが生成した照合用暗号コードQ「CEBAD」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200Bを正当性が確認された装置と判定する照合判定段階を実行することになる。
要するに、実施例Aの場合は、暗号コードQ「CEBAD」に対して並び替えを行うことによって得られる並替暗号コードQ′「BEDAC」の状態で一致判定を行っていたのに対して、実施例Bの場合は、並替暗号コードQ′「BEDAC」を並び替え前の状態である暗号コードQ「CEBAD」に戻し、暗号コードQ「CEBAD」の状態で一致判定を行うことになる。したがって、実施例A,Bに本質的な相違はなく、実施例Bについても実施例Aと同じ作用効果が得られる。
<3−3.実施例C:復号による照合その1>
ここでは、図10を参照しながら、本発明の第1の実施形態の実施例Cを説明する。この実施例Cでは、第1の情報処理装置100Cが第2の情報処理装置200Cの正当性を確認する処理が行われることになる。実施例Cは、前述した実施例Aにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例Aとほぼ同じである。そこで、以下、実施例Aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200Cについては、実施例Aに示す第2の情報処理装置200Aの構成と全く同じであるため、ここでは説明を省略する。また、第1の情報処理装置100Cについては、構成要素110,160,170,180は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素120,130,140,150の代わりに、照合用ランダムコード生成部120C,照合用並替コード生成部130C,照合用暗号コード生成部140C,照合判定部150Cが設けられている点である。そこで、以下、これら4つの構成要素の機能について説明する。なお、実施例Cの構成要素のうち、実施例Aの構成要素と異なるものについては、符号末尾に「C」を付して示してある。
はじめに、照合用暗号コード生成部140Cは、第2の並び替えテーブルT2を逆転させたテーブルT2バーに基づいて、並替暗号コード受信部170が受信した並替暗号コードQ′「BEDAC」の構成要素を並び替えて照合用暗号コードQ「CEBAD」を生成する照合用暗号コード生成段階を行う構成要素である。この照合用暗号コード生成部140Cの機能は、実施例Bの照合用暗号コード第2生成部140Bの機能と全く同じであり、詳しい説明は省略する。
次に、照合用並替コード生成部130Cは、暗号コード生成部230が暗号化処理を行う際に利用した暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく復号演算によって、照合用暗号コードQ「CEBAD」を復号して照合用並替コードR′「35214」を生成する照合用並替コード生成段階を行う構成要素である。暗号コード生成部230は、暗号アルゴリズムAに基づく暗号化演算により、並替コードR′「35214」に対する暗号化を行い、暗号コードQ「CEBAD」を生成する処理を行ったが、照合用並替コード生成部130Cは、これと全く逆の処理により、暗号コードQ「CEBAD」を復号して元の並替コードR′「35214」に戻す処理を行うことになる。
一方、照合用ランダムコード生成部120Cは、第1の並び替えテーブルT1を逆転させたテーブルT1バーに基づいて、照合用並替コードR′「35214」の構成要素を並び替えて照合用ランダムコードR「12345」を生成する照合用ランダムコード生成段階を行う構成要素である。ここで、第1の並び替えテーブルT1を逆転させたテーブルT1バーとは、図6(a) に示すテーブルT1とは逆の並び替えを示すテーブル、すなわち、図の矢印の向きを逆転させて、下段の並び順から上段の並び順に変換する並び替え方法を示すテーブルを意味する。
なお、前述したとおり、図では、照合用ランダムコード生成部120Cや照合用暗号コード生成部140Cが、逆転テーブルT1バーやT2バーに基づいて並べ替え処理を行うような記載がなされているが、実用上は、テーブル復号部180から与えられたテーブルT1,T2を逆方向に作用させた並び替えを行うようにすればよい。
そして、照合判定部150Cは、ランダムコード発生部110が発生させたランダムコードR「12345」と、照合用ランダムコード生成部120Cが生成した照合用ランダムコードR「12345」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200Cを正当性が確認された装置と判定する照合判定段階を行う構成要素である。
結局、この実施例Cでは、第2の情報処理装置200Cにおいて、ランダムコードR「12345」→並替コードR′「35214」→暗号コードQ「CEBAD」→並替暗号コードQ′「BEDAC」という暗号化処理を伴う変遷を辿って、並替暗号コードQ′「BEDAC」を得る点は、これまで述べてきた実施例Aと全く同じであるが、第1の情報処理装置100Cにおける認証プロセスでは、逆に、並替暗号コードQ′「BEDAC」→暗号コードQ「CEBAD」→並替コードR′「35214」→ランダムコードR「12345」という復号処理を伴う変遷を辿ってランダムコードR「12345」を得て、これが元のランダムコードR「12345」に一致するか否かを確認することにより、第2の情報処理装置200Cの正当性が確認されることになる。
要するに、実施例Aの場合は、第1の情報処理装置100において、暗号化を経た照合が行われていたのに対し、実施例Cの場合は、第1の情報処理装置100Cにおいて、復号を経た照合が行われることになる。したがって、実施例A,Cに本質的な相違はなく、実施例Cについても実施例Aと同じ作用効果が得られる。
<3−4.実施例D:復号による照合その2>
ここでは、図11を参照しながら、本発明の第1の実施形態の実施例Dを説明する。この実施例Dでは、第1の情報処理装置100Dが第2の情報処理装置200Dの正当性を確認する処理が行われることになる。実施例Dは、前述した実施例Aにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例Aとほぼ同じである。そこで、以下、実施例Aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200Dについては、実施例Aに示す第2の情報処理装置200Aの構成と全く同じであるため、ここでは説明を省略する。また、第1の情報処理装置100Dについては、構成要素110,160,170,180は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素120,130,140,150の代わりに、照合用並替コード第2生成部120D,照合用並替コード第1生成部130D,照合用暗号コード生成部140D,照合判定部150Dが設けられている点である。そこで、以下、これら4つの構成要素の機能について説明する。なお、実施例Dの構成要素のうち、実施例Aの構成要素と異なるものについては、符号末尾に「D」を付して示してある。
はじめに、照合用暗号コード生成部140Dは、第2の並び替えテーブルT2を逆転させたテーブルT2バーに基づいて、並替暗号コード受信部170が受信した並替暗号コードQ′「BEDAC」の構成要素を並び替えて照合用暗号コードQ「CEBAD」を生成する照合用暗号コード生成段階を行う構成要素である。この照合用暗号コード生成部140Dの機能は、実施例Bの照合用暗号コード第2生成部140Bの機能と全く同じであり、詳しい説明は省略する。
次に、照合用並替コード第1生成部130Dは、暗号コード生成部230が暗号化処理を行う際に利用した暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく復号演算によって、照合用暗号コードQ「CEBAD」を復号して照合用並替コードR′「35214」を生成する照合用並替コード第1生成段階を行う構成要素である。暗号コード生成部230は、暗号アルゴリズムAに基づく暗号化演算により、並替コードR′「35214」に対する暗号化を行い、暗号コードQ「CEBAD」を生成する処理を行ったが、照合用並替コード第1生成部130Dは、これと全く逆の処理により、暗号コードQ「CEBAD」を復号して元の並替コードR′「35214」に戻す処理を行うことになる。
この照合用並替コード第1生成部130Dは、実際には、実施例Cにおける照合用並替コード生成部130Cと全く同じ機能をもった構成要素であるが、照合用並替コード第2生成部120Dとの混同を避けるため、ここでは、構成要素130Dについては名称に「第1」を挿入し、構成要素120Dについては名称に「第2」を挿入して、それぞれ照合用並替コード第1生成部130Dおよび照合用並替コード第2生成部120Dと呼ぶことにする。
この照合用並替コード第2生成部120Dは、第1の並び替えテーブルT1に基づいて、ランダムコード発生部110で発生させたランダムコードR「12345」の構成要素を並び替えて、照合用並替コードR′「35214」を生成する照合用並替コード第2生成段階を実行する構成要素である。この照合用並替コード第2生成部120Dは、実際には、実施例Aにおける照合用並替コード生成部120と全く同じ機能をもった構成要素であるが、上述したように、照合用並替コード第1生成部130Dとの混同を避けるため、ここでは、照合用並替コード第2生成部120Dと呼んでいる。
そして、照合判定部150Dは、照合用並替コード第1生成部130Dが生成した照合用並替コードR′「35214」と、照合用並替コード第2生成部120Dが生成した照合用並替コードR′「35214」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200Dを正当性が確認された装置と判定する照合判定段階を行う構成要素である。
結局、この実施例Cでは、第2の情報処理装置200Dにおいて、ランダムコードR「12345」→並替コードR′「35214」→暗号コードQ「CEBAD」→並替暗号コードQ′「BEDAC」という暗号化処理を伴う変遷を辿って、並替暗号コードQ′「BEDAC」を得る点は、これまで述べてきた実施例Aと全く同じであるが、第1の情報処理装置100Dにおける認証プロセスでは、逆に、並替暗号コードQ′「BEDAC」→暗号コードQ「CEBAD」→並替コードR′「35214」という復号処理を伴う変遷を辿って並替コードR′「35214」を得るとともに、元のランダムコードR「12345」→並替コードR′「35214」という並べ替えを行い、得られた2通りの並替コードR′「35214」が一致するか否かを確認することにより、第2の情報処理装置200Dの正当性が確認されることになる。したがって、実施例A,Dに本質的な相違はなく、実施例Dについても実施例Aと同じ作用効果が得られる。
<3−5.実施例E:暗号化による簡易照合>
次に、図12を参照しながら、本発明の第1の実施形態の実施例Eを説明する。この実施例Eでは、第1の情報処理装置100Eが第2の情報処理装置200Eの正当性を確認する処理が行われることになる。実施例Eは、前述した実施例Aにおける照合プロセスを一部簡略化したものであり、基本的な構成は、実施例Aとほぼ同じである。そこで、以下、実施例Aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200Eについては、構成要素210,220,230,240,270は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素250,260の代わりに、並替暗号コード送信部250E,テーブル暗号化部260Eが設けられている点である。
一方、第1の情報処理装置100Eについては、構成要素110,120,130,160は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素140に相当する構成要素が省略されている点と、構成要素150,170,180の代わりに、照合判定部150E,並替暗号コード受信部170E,テーブル復号部180Eが設けられている点である。そこで、以下、これらの相違点について説明する。なお、実施例Eの構成要素のうち、実施例Aの構成要素と異なるものについては、符号末尾に「E」を付して示してある。
この実施例Eの根本的な特徴は、実施例Aにおける第2の情報処理装置200から第1の情報処理装置100への第2の暗号化テーブルT2の送信を省略し、第1の情報処理装置100側での第2の並び替え方法X2による並び替え作業を省略する点にある。
したがって、第2の情報処理装置200E側では、並替テーブル生成部270において2組のテーブルT1,T2を生成し、並替コード生成部220における並び替え作業および並替暗号コード生成部240における並び替え作業が行われる点は、実施例Aと同じであるが、テーブル暗号化部260Eにおいて行われるテーブル暗号化段階では、第1の並び替えテーブルT1を暗号化し、第1の暗号化テーブルT1を生成する処理が行われるものの、第2の並び替えテーブルT2の暗号化は省略される。また、並替暗号コード送信部250Eにおいて行われる並替暗号コード送信段階では、並替暗号コードQ′「BEDAC」とともに第1の暗号化テーブルT1が、第1の情報処理装置100Eに送信されるが、第2の暗号化テーブルT2の送信は省略される。
このように、第2の暗号化テーブルT2の送信を省略したため、第1の情報処理装置100E側の処理も若干変わってくる。すなわち、並替暗号コード受信部170Eでは、並替暗号コードQ′「BEDAC」とともに第1の暗号化テーブルT1の受信が行われるが、第2の暗号化テーブルT2は受信されない。また、テーブル復号部180Eでは、第1の暗号化テーブルT1を復号し、第1の並び替えテーブルT1を復元する処理が行われるが、第2の暗号化テーブルT2の復号は行われない。
結局、第1の情報処理装置100E側には、第2の並び替えテーブルT2の情報が伝わらないので、第2の並び替えテーブルT2に基づく並び替え作業を行うことはできない。図8に示す実施例Aでは、この第2の並び替えテーブルT2に基づく並び替え作業を行うために、照合用並替暗号コード生成部140が設けられていたが、図12に示す実施例Eでは、この構成要素140に相当するものは省略されている。その結果、照合用暗号コード生成部130によって生成された照合用暗号コードQ「CEBAD」が、そのままの状態で照合判定部150Eに与えられることになる。
これは、照合判定部150Eが、実施例Aの照合判定部150と同じ方法では照合判定を実行できないことを意味する。図示の具体例の場合も、照合用暗号コード生成部130から与えられる照合用暗号コードQ「CEBAD」と、並替暗号コード受信部170Eから与えられる並替暗号コードQ′「BEDAC」とは一致していない。
しかしながら、照合用暗号コードQ「CEBAD」を、第2の並び替えテーブルT2に基づいて並び替えれば、並替暗号コードQ′「BEDAC」が得られるのであるから、並び順を無視して、構成要素となるメンバーが対応しているか否かを照合すれば、両者は対応していることになる。すなわち、上例の場合、いずれのコードも、構成要素となるメンバーは、「A」,「B」,「C」,「D」,「E」の5つのアルファベットであり、構成要素は並び順を無視すれば相互に対応していることになる。
そこで、この実施例Eの場合、照合判定部150Eは、並替暗号コード受信部170Eが受信した並替暗号コードQ′「BEDAC」に含まれている構成要素(A〜Eの5文字)と、照合用暗号コード生成部130が生成した照合用暗号コードQ「CEBAD」に含まれている構成要素(A〜Eの5文字)と、が対応するか否かを照合し、対応する場合に、第2の情報処理装置200Eを正当性が確認された装置と判定する照合判定段階を行う。
このように、実施例Eでは、第1の情報処理装置100E側で行う照合判定の基準が、これまで述べてきた実施例A〜Dに比べて緩和されている。すなわち、照合対象となる2組のコードの並び順まで含めた完全一致を判定する代わりに、並び順は不問として構成要素の1対1対応を判定することになる。このため、この実施例Eは、実施例A〜Dに比べて認証の厳格性は若干低下することになるが、第2の情報処理装置200E側では、第2の並び替えテーブルT2を送信するための処理を省略することができ、第1の情報処理装置100E側では、第2の並び替えテーブルT2に関する受信処理や並び替え処理を省略することができるので、処理を簡素化できるメリットが得られる。なお、実施例では、説明の便宜上、5桁のランダムコードRを用いた単純な例を示したが、実際には、格段に多い桁数のランダムコードRを用いるのが一般的であり、並び順を不問として構成要素の1対1対応を判定する方法を採っても、正しくないコードが偶然に一致してしまう確率は極めて低く、実用上は、この実施例Eを採用しても支障は生じない。
<3−6.実施例F:復号による簡易照合>
続いて、図13を参照しながら、本発明の第1の実施形態の実施例Fを説明する。この実施例Fでは、第1の情報処理装置100Fが第2の情報処理装置200Fの正当性を確認する処理が行われることになる。実施例Fは、実施例Eと同様に、実施例Aにおける照合プロセスを一部簡略化したものであり、基本的な構成は、実施例Aとほぼ同じである。そこで、以下、実施例Aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200Fについては、構成要素210,220,230,240,270は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素250,260の代わりに、並替暗号コード送信部250F,テーブル暗号化部260Fが設けられている点である。
一方、第1の情報処理装置100Fについては、構成要素110,160は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素120に相当する構成要素が省略されている点と、構成要素130,140,150,170,180の代わりに、照合用並替コード生成部130F,照合用暗号コード生成部140F,照合判定部150F,並替暗号コード受信部170E,テーブル復号部180Eが設けられている点である。そこで、以下、これらの相違点について説明する。なお、実施例Fの構成要素のうち、実施例Aの構成要素と異なるものについては、符号末尾に「F」を付して示してある。
この実施例Fの根本的な特徴は、実施例Aにおける第2の情報処理装置200から第1の情報処理装置100への第1の暗号化テーブルT1の送信を省略し、第1の情報処理装置100側での第1の並び替え方法X1による並び替え作業を省略する点にある。すなわち、前述した実施例Eでは、第2の暗号化テーブルT2の送信を省略していたのに対して、ここで述べる実施例Fでは、第1の暗号化テーブルT1の送信を省略している点が異なっている。
このため、第2の情報処理装置200F側では、並替テーブル生成部270において2組のテーブルT1,T2を生成し、並替コード生成部220における並び替え作業および並替暗号コード生成部240における並び替え作業が行われる点は、実施例Aと同じであるが、テーブル暗号化部260Fにおいて行われるテーブル暗号化段階では、第2の並び替えテーブルT2を暗号化し、第2の暗号化テーブルT2を生成する処理が行われるものの、第1の並び替えテーブルT1の暗号化は省略される。また、並替暗号コード送信部250Fにおいて行われる並替暗号コード送信段階では、並替暗号コードQ′「BEDAC」とともに第2の暗号化テーブルT2が、第1の情報処理装置100Fに送信されるが、第1の暗号化テーブルT1の送信は省略される。
このように、第1の暗号化テーブルT1の送信を省略したため、第1の情報処理装置100F側の処理も若干変わってくる。すなわち、並替暗号コード受信部170Fでは、並替暗号コードQ′「BEDAC」とともに第2の暗号化テーブルT2の受信が行われるが、第1の暗号化テーブルT1は受信されない。また、テーブル復号部180Fでは、第2の暗号化テーブルT2を復号し、第2の並び替えテーブルT2を復元する処理が行われるが、第1の暗号化テーブルT1の復号は行われない。
結局、第1の情報処理装置100F側には、第1の並び替えテーブルT1の情報が伝わらないので、第1の並び替えテーブルT1に基づく並び替え作業を行うことはできない。すなわち、第1の情報処理装置100F側では、ランダムコード発生部110が発生させたランダムコードR「12345」に対する並び替え作業を行うことができないので、第2の情報処理装置200F側で行われた暗号化処理に対応する処理を行うことができないことになる。そこで、第1の情報処理装置100F側で行う照合判定作業は、暗号化処理ではなく復号処理を前提としたものにならざるを得ない。
このような観点から、この実施例Fでは、前述した実施例Cに類似した処理(復号による照合処理)を行うことになる。その基本概念は、図10に示す実施例Cにおいて、照合用ランダムコード生成部120Cを省略し、照合用並替コード生成部130Cによって生成された照合用並替コードR′「35214」を照合判定部150Cに直接与え、照合判定部150Cにおいて、2組のコードの並び順まで含めた完全一致を判定する代わりに、並び順は不問として構成要素の1対1対応を判定するように改変することにある。
具体的には、照合用暗号コード生成部140Fにおいて、第2の並び替えテーブルT2を逆転させたテーブルT2バーに基づいて、並替暗号コード受信部170Fが受信した並替暗号コードQ′「BEDAC」の構成要素を並び替えて照合用暗号コードQ「CEBAD」を生成する照合用暗号コード生成段階が行われる。続いて、照合用並替コード生成部130Fにおいて、暗号コード生成部230の暗号化処理に利用された暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく復号演算を行い、照合用暗号コードQ「CEBAD」を復号して照合用並替コードR′「35214」を生成する照合用並替コード生成段階が行われる。
上述したとおり、第1の情報処理装置100F側には、第1の並び替えテーブルT1に関する情報は伝えられていないので、照合用並替コード生成部130Fによって生成された照合用並替コードR′「35214」に対する並び替えを行うことはできない。そのため、この照合用並替コードR′「35214」は、そのままの状態で照合判定部150Fに与えられることになる。
これは、照合判定部150Fが、実施例Cの照合判定部150Cと同じ方法では照合判定を実行できないことを意味する。図示の具体例の場合も、照合用並替コード生成部130Fから与えられる照合用並替コードR′「35214」と、ランダムコード発生部110から与えられるランダムコードR「12345」とは一致していない。
しかしながら、ランダムコードR「12345」を、第1の並び替えテーブルT1に基づいて並び替えれば、照合用並替コードR′「35214」が得られるのであるから、並び順を無視して、構成要素となるメンバーが対応しているか否かを照合すれば、両者は対応していることになる。すなわち、上例の場合、いずれのコードも、構成要素となるメンバーは、「1」,「2」,「3」,「4」,「5」の5つの数字であり、構成要素は相互に対応していることになる。
そこで、この実施例Fの場合、照合判定部150Fは、ランダムコード発生部110が発生させたランダムコードR「12345」に含まれている構成要素と、照合用並替コード生成部130Fが生成した照合用並替コードR′「35214」に含まれている構成要素と、が対応するか否かを照合し、対応する場合に、第2の情報処理装置を正当性が確認された装置と判定する照合判定段階を行う。
このように、実施例Fでは、実施例Eと同様に、第1の情報処理装置100F側で行う照合判定の基準が、これまで述べてきた実施例A〜Dに比べて緩和されているので認証の厳格性は若干低下することになるが、第2の情報処理装置200F側では、第1の並び替えテーブルT1を送信するための処理を省略することができ、第1の情報処理装置100F側では、第1の並び替えテーブルT1に関する受信処理や並び替え処理を省略することができるので、処理を簡素化できるメリットが得られる。
<3−7.実施例G:一方向性関数の利用>
ここでは、図14を参照しながら、本発明の第1の実施形態の実施例Gを説明する。この実施例Gでは、第1の情報処理装置100Gが第2の情報処理装置200Gの正当性を確認する処理が行われることになる。実施例Gは、前述した実施例Aにおけるプロセスを若干変更したものであり、基本的な構成は、実施例Aとほぼ同じである。そこで、以下、実施例Aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200Gについては、構成要素210,230は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素220,240,250,260,270の代わりに、並替コード生成部220G,一方向性関数値生成部240G,関数値送信部250G、テーブル暗号化部260G,並替テーブル生成部270Gが設けられている点である。
一方、第1の情報処理装置100Gについては、構成要素110,130,160は、実施例Aにおいて同一符号を付した構成要素と全く同じである。実施例Aとの相違点は、構成要素120,140,150,170,180の代わりに、照合用並替コード生成部120G,照合用一方向性関数値生成部140G,照合判定部150G,関数値受信部170G,テーブル復号部180Gが設けられている点である。そこで、以下、これらの相違点について説明する。なお、実施例Gの構成要素のうち、実施例Aの構成要素と異なるものについては、符号末尾に「G」を付して示してある。
この実施例Gの根本的な特徴は、実施例Aにおける第1の並び替えテーブルT1に相当する並び替えは行うものの、第2の並び替えテーブルT2に相当する並び替えは行わず、その代わりに一方向性関数を作用させる演算を行う点にある。そこで、この実施例Gでは、実施例Aにおける「第1の並び替えテーブルT1」および「第1の並び替え方法X1」に対応する用語として、単に、「並び替えテーブルT」および「並び替え方法X」という文言を用いることにする。
なお、実施例Gにおける並替コード生成部220Gは、実際には、実施例Aにおける並替コード生成部220と全く同じ構成要素であり、実施例Gにおける照合用並替コード生成部120Gは、実際には、実施例Aにおける照合用並替コード生成部120と全く同じ構成要素である。それにもかかわらず、実施例Gにおいて、これらの構成要素について末尾に符号Gを付加して区別したのは、上述したように、実施例Aにおける「第1の並び替えテーブルT1」および「第1の並び替え方法X1」を、実施例Gでは単に「並び替えテーブルT」および「並び替え方法X」と呼ぶことにしたためである。
すなわち、並替コード生成部220Gは、並び替えテーブルTに基づいて、ランダムコードR「12345」の構成要素を並び替えて並替コードR′「35214」を生成する並替コード生成段階を行う構成要素であり、照合用並替コード生成部120Gは、ランダムコード発生部110が発生させたランダムコードR「12345」の構成要素を、並び替えテーブルTに基づいて並び替えて照合用並替コードR′「35214」を生成する照合用並替コード生成段階を行う構成要素である。実質的には、これらの各構成要素は、実施例Aにおける並替コード生成部220および照合用並替コード生成部120と同じ構成要素であるが、上述したように「並び替えテーブル」および「並び替え方法」に関する用語を使い分けるようにしたため、便宜上、末尾に符号Gを付加して区別している。
このように、実施例Gでは、単一の並び替えテーブルTしか用いられないので、並替テーブル生成部270Gは、単一の並び替えテーブルTを生成すれば足り、テーブル暗号化部260Gは、この単一の並び替えテーブルTに対する暗号化を行って、単一の暗号化テーブルTを生成すれば足りる。
実施例Gと実施例Aとの本質的な相違は、暗号コード生成部230が、並替コードR′「35214」に対する暗号化処理を行って暗号コードQ「CEBAD」を生成した後、この暗号コードQ「CEBAD」に対して並び替えを行う代わりに、一方向性関数を作用させる演算を行う点である。
そのため、一方向性関数値生成部240Gにおいて、暗号コードQ「CEBAD」に対して一方向性関数を作用させて所定の関数値Hを生成する一方向性関数値生成段階が行われる。ここで一方向性関数とは、元のデータに対して何らかの処理を施すことにより新たなデータに一義的に変換することが可能な関数であって、しかも新たなデータから元のデータを復元する逆変換を行うことができないような関数を指す。これまで述べてきた暗号化処理は、可逆的な変換処理であり、その逆の変換処理が復号処理に相当する。これに対して、一方向性関数値生成部240Gが行う変換処理は、一方向性関数を作用させる処理であり、非可逆的な変換処理ということになる。
このような一方向性関数の代表は、HASH関数であり、以下、一方向性関数値生成部240GがHASH関数を作用させる変換処理を行い、HASH関数値Hが得られた場合を例にとった説明を行うことにする。HASH関数を作用させることにより得られる関数値は、元のデータに比べて情報量が低減される。そこで、図示の例の場合、便宜上、「CEBAD」なる5文字のデータからなる暗号コードQに対してHASH関数を作用させることにより得られた関数値Hの具体的な値を「h」で表すことにする。結局、一方向性関数値生成部240Gは、暗号コードQ「CEBAD」に対してHASH関数を作用させ、関数値H(h)を生成する演算処理を行うことになる。
関数値送信部250Gは、一方向性関数値生成部240Gによって生成された関数値H(h)とともに、テーブル暗号化部260Gで暗号化された暗号化テーブルTを、第1の情報処理装置100Gに送信する関数値送信段階を行う構成要素である。
こうして、第2の情報処理装置200Gから送信されてきた関数値H(h)および暗号化テーブルTは、関数値受信部170Gによって受信される。受信された暗号化テーブルTはテーブル復号部180Gに与えられ、受信された関数値H(h)は照合判定部150Gに与えられる。テーブル復号部180Gは、与えられた暗号化テーブルTを復号し、並び替えテーブルTを復元するテーブル復号段階を行う。
一方、照合用並替コード生成部120Gは、ランダムコード発生部110が発生させたランダムコードR「12345」の構成要素を、復元された並び替えテーブルTに基づいて並び替えて照合用並替コードR′「35214」を生成する照合用並替コード生成段階を行う。また、照合用暗号コード生成部130は、暗号コード生成部230の暗号化処理に用いられた暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく暗号化演算によって、照合用並替コードR′「35214」を暗号化して照合用暗号コードQ「CEBAD」を生成する照合用暗号コード生成段階を行う。
続いて、照合用一方向性関数値生成部140Gにおいて、照合用暗号コードQ「CEBAD」に対して、一方向性関数値生成部240Gで用いられた一方向性関数と同じ一方向性関数(ここに示す例の場合、HASH関数)を作用させて、照合用関数値H(h)を生成する照合用一方向性関数値生成段階が行われる。そして最後に、照合判定部150Gにおいて、関数値受信部170Gが受信した関数値H(h)と、照合用一方向性関数値生成部140Gで生成された照合用関数値H(h)と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200Gを正当性が確認された装置と判定する照合判定段階が行われる。
このように、実施例Gでは、第1の情報処理装置100G側で行う照合が、一方向性関数値の一致確認というプロセスで行われるため、認証の厳格性は若干低下することになるが、第1の情報処理装置100Gおよび第2の情報処理装置200Gの双方において、単一の並び替えテーブルTに関する処理を行えばよいため、処理を簡素化できるメリットが得られる。
<<< §4. 本発明の第2の実施形態に係る認証方法の基本概念 >>>
これまで、§2,§3において、本発明の第1の実施形態を説明した。ここでは、図15を参照しながら、本発明の第2の実施形態に係る認証方法の基本概念を説明する。具体的には、第1の情報処理装置100′(たとえば、サーバ装置)が第2の情報処理装置200′(たとえば、クライアント装置)の正当性を確認する処理を例にとって、データの流れに即した処理手順を述べることにする。
本発明の第1の実施形態と第2の実施形態との大きな相違点は、前者では、暗号化処理の前もしくは後においてデータに対する並び替えが行われるのに対して、後者では、暗号化処理の前もしくは後においてデータに対する修正が行われる点であり、両者の実質的な相違点は、この点だけである。そこで以下、第1の実施形態と比較しながら、第2の実施形態についての説明を行うことにする。
図15に示す第2の実施形態では、認証処理に関与する構成要素として、第1の情報処理装置100′には、ランダムコード発生部110、照合用修正コード生成部120′、照合用暗号コード生成部130′、照合用修正暗号コード生成部140′、照合判定部150′、ランダムコード送信部160、修正暗号コード受信部170′が設けられており、第2の情報処理装置200′には、ランダムコード受信部210、修正コード生成部220′、暗号コード生成部230′、修正暗号コード生成部240′、修正暗号コード送信部250′が設けられている。
この図15に示す第2の実施形態に係る個々の構成要素を、図5に示す第1の実施形態に係る個々の構成要素と比較すると、符号に「′」が付されていないランダムコード発生部110、ランダムコード送信部160、ランダムコード受信部210については、何ら違いはない。
また、暗号コード生成部230と230′とについては、本質的な相違はなく、照合用暗号コード生成部130と130′とについても、本質的な相違はない。いずれも、与えられたコードに対して、所定の暗号アルゴリズムAに基づく暗号化演算を行い、暗号コードを生成する機能をもった構成要素である。ただ、図5に示す暗号コード生成部230および照合用暗号コード生成部130が、並替コードR′「35214」を暗号化して暗号コードQ「CEBAD」を生成する処理を行うのに対して、図15に示す暗号コード生成部230′および照合用暗号コード生成部130′は、並替コードR′「35214」の代わりに、修正コードR''「45678」を暗号化して暗号コードQ「DEFGH」を生成する処理を行うことになるので、図15では、便宜上、符号に「′」を付して区別してある。別言すれば、両者は、与えられるコードが異なるだけであり、実質的な処理機能は全く同じものである。
これに対して、図5に示す各構成要素120,140,220,240と、図15に示す各構成要素120′,140′,220′,240′とは、その処理機能が異なっている。すなわち、前者は「並替コード」もしくは「並替暗号コード」という文言が用いられているとおり、並び替え処理を行う構成要素であるのに対して、後者は「修正コード」もしくは「修正暗号コード」という文言が用いられているとおり、修正処理を行う構成要素である。以下、図15に示す修正コード生成部220′と図5に示す並替コード生成部220とを例にとって、両者の相違を説明する。
§2で述べたとおり、図5に示す並替コード生成部220は、与えられたランダムコードRの構成要素を並び替え、並替コードR′を生成する処理を行う。具体的には、図示の例の場合、図6(a) に示す第1の並び替え方法X1に基づいて、5つの数字を羅列してなるランダムコードR「12345」が、「35214」という順序に並び替えられ、並替コードR′が生成されている。
これに対して、図15に示す修正コード生成部220′は、与えられたランダムコードRの構成要素となる個々の数字に対して、ランダムに発生された第1の修正数U1を用いた第1の修正演算Y1を行って修正コードR''を生成する処理を行う。図15におけるブロック220′内の丸Y1は、修正演算Y1が行われることを示すものである(以下同様)。具体的には、図示の例の場合、図16(a) に示すように、第1の修正数U1=+3に設定し、この第1の修正数U1を用いた加算からなる第1の修正演算Y1を実行することにより、元になるランダムコードR「12345」に基づいて、「45678」という5つの数字からなる修正コードR''が生成されている。図15に示す照合用修正コード生成部120′の機能も全く同じであり、ランダムコードR「12345」に基づいて、照合用修正コードR''「45678」が生成される。
図16(a) に示す第1の修正演算Y1は、第1の修正数U1=+3に設定し、元のコードを構成する個々の数字に対して、それぞれ第1の修正数U1を加算することにより修正コードを得る演算である。したがって、図示の例のように、元のコードが「12345」なる5つの数字によって構成される場合、これら5つの数字にそれぞれ「+3」を加算して、「45678」なる5つの数字によって構成される修正コードが生成されることになる。いわば、元のコードに3ずつ下駄を履かせる修正が行われたことになる。もちろん、修正数として負の数字を設定することも可能であるし、修正演算の内容として減算を設定することも可能である。
このように、修正演算は、所定の修正数を用いた算術演算であるため、演算対象は基本的には数字ということになるが、文字の場合も、特定の数字に対応づけられていれば、修正演算の対象とすることができる。図16(b) は、文字列を対象とする修正演算の一例を示している。すなわち、図16(b) に示す第2の修正演算Y2は、本来、第2の修正数U2=+6に設定し、元のコードを構成する個々の数字に対して、それぞれ第2の修正数U2を加算することにより修正コードを得る演算であるが、図には、当該修正演算を文字列に適用した例が示されている。
具体的には、この例の場合、アルファベットA〜Zの26文字に対して、それぞれ1〜26の数字を対応づけ、個々の文字をそれぞれ対応する数字として取り扱うことにより、数字と同様の修正演算を施している。すなわち、元のコード「DEFGH」をそれぞれ対応する数字「4,5,6,7,8」として取扱い、これら対応する数字に対して第2の修正数U2=+6を加算して「10,11,12,13,14」なる結果を得た後、これを対応するアルファベットに置き換えることにより「JKLMN」なる修正コードを得ている。
図15に示す例の場合、暗号コード生成部230′は、図2に示す暗号アルゴリズムに基づいて、与えられた修正コードR''「45678」を暗号化して、アルファベットからなる暗号コードQ「DEFGH」を生成する処理を行う。そして、修正暗号コード生成部240′は、この暗号コードQ「DEFGH」に対して、図16(b) に示すように、第2の修正数U2=+6に設定して、第2の修正演算Y2を行うことになる。この場合、与えられた暗号コードQ「DEFGH」は、対応する数字として取り扱われ、上述した加算処理を行うことにより、修正暗号コードQ''「JKLMN」が得られる。図15に示す照合用修正暗号コード生成部140′の機能も全く同じであり、照合用暗号コードQ「DEFGH」に基づいて、照合用修正暗号コードQ''「JKLMN」が生成される。
要するに、第1の情報処理装置100′および第2の情報処理装置200′として、それぞれ特定の数字に対応づけられた文字を取り扱う装置を用いるようにすれば、ランダムコードRもしくは暗号コードQとして文字を含むコードを発生させた場合でも、個々の文字をそれぞれ対応する数字として取り扱う処理を行うようにすれば、文字列からなるコードに対しても上述した修正演算を行うことが可能になる。
なお、実用上は、ランダムコードRの構成要素となる個々の数字および暗号コードQの構成要素となる個々の数字が、N〜M(但し、N<M)の範囲内の数値となるようにし、第1の修正演算Y1および第2の修正演算Y2を行う際に、演算後の数値VがV<Nとなる場合には(M−N+1)を加算する補正を行い、演算後の数値VがV>Mとなる場合には(M−N+1)を減算する補正を行い、修正演算後の数値がN〜Mの範囲内の数値となるようにするのが好ましい。
たとえば、ランダムコードRの構成要素となる個々の数字および暗号コードQの構成要素となる個々の数字をそれぞれ1バイトの数字とした場合、1つの数字は0〜255の範囲内の数値となる(上述した式において、N=0、M=255になる)。この場合、修正演算後の数値Vも、同じく0〜255の範囲内の1バイトの数値に収まるようにした方が、演算を簡素化することができる。そこで、第1の修正演算Y1および第2の修正演算Y2を行う際に、演算後の数値VがV<0となる場合には256を加算する補正を行い、演算後の数値VがV>255となる場合には256を減算する補正を行い、修正演算後の数値が0〜255の範囲内の数値となるようにすればよい(実際には、256による除算の余りを求めるようにすればよい)。
また、ランダムコードRの構成要素および暗号コードQの構成要素として、たとえば、1〜26の数字に対応づけられたアルファベットを用いる場合、個々のアルファベットに対応づけられた特定の数値は1〜26の範囲内の数値となる(上述した式において、N=1、M=26になる)。この場合、修正演算後の数値Vも、同じく1〜26の範囲内の1バイトの数値に収まるようにすれば、対応するアルファベットを用いた文字表現が可能になる。そこで、第1の修正演算Y1および第2の修正演算Y2を行う際に、演算後の数値VがV<1となる場合には26を加算する補正を行い、演算後の数値VがV>26となる場合に26を減算する補正を行い、修正演算後の数値が1〜26の範囲内の数値となるようにすればよい。
このように、第2の実施形態に係る認証方法では、暗号化処理の前後において、データに対する並び替えを行う代わりに、データに対する値の修正が行われることになるが、基本的な認証処理の手順は、これまで述べてきた第1の実施形態とほぼ同じである。
すなわち、まず、ランダムコード発生部110で発生させたランダムコードR「12345」をランダムコード送信部160から送信し、ランダムコード受信部210によってこれを受信する。そして、修正コード生成部220′において、ランダムコードR「12345」に対する第1の修正演算Y1を行って、修正コードR''「45678」を生成し、暗号コード生成部230′において、これを暗号化して、暗号コードQ「DEFGH」を得る。更に、修正暗号コード生成部240′において、暗号コードQ「DEFGH」に対する第2の修正演算Y2を行って、修正暗号コードQ''「JKLMN」を生成し、修正暗号コード送信部250′において、この修正暗号コードQ''「JKLMN」を、各修正演算Y1,Y2を示す修正情報とともに、第1の情報処理装置100′に送信する。
一方、修正暗号コード受信部170′が、修正暗号コードQ''「JKLMN」と各修正演算Y1,Y2を示す修正情報とを受信すると、照合用修正コード生成部120′において、ランダムコードR「12345」に対する第1の修正演算Y1を行って、修正コードR''「45678」を生成し、照合用暗号コード生成部130′において、これをアルゴリズムAによって暗号化して、照合用暗号コードQ「DEFGH」を生成する処理が行われる。更に、照合用修正暗号コード生成部140′において、暗号コードQ「DEFGH」に対する第2の修正演算Y2を行って、修正暗号コードQ''「JKLMN」を生成する処理が行われる。そして最後に、照合判定部150′において、修正暗号コード受信部170′が受信した修正暗号コードQ''「JKLMN」と、照合用修正暗号コード生成部140′が生成した照合用修正暗号コードQ''「JKLMN」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200′を正当性が確認された装置と判定する処理を行うことになる。
なお、修正コード生成部220′が実行する第1の修正演算Y1や、修正暗号コード生成部240′が実行する第2の修正演算Y2は、認証処理が行われるたびにランダムに定義するようにする。すなわち、ランダムコード受信部210が新たなランダムコードRを受信するたびに、修正コード生成部220′および修正暗号コード生成部240′は、新たに定義された修正演算Y1およびY2に基づいて、毎回、異なる修正演算を行う。なお、実用上は、図16に例示するように、修正演算の内容自体は、たとえば「加算」というように固定しておき、第1の修正数U1および第2の修正数U2を、乱数を用いてランダムに生成するようにすれば十分である。
結局、この図15に示す認証方法を採用した場合、第1の情報処理装置100′から第2の情報処理装置200′に対して、チャレンジとしてランダムコードR「12345」が与えられると、第2の情報処理装置200′内では、ランダムコードR「12345」→修正コードR''「45678」→暗号コードQ「DEFGH」→修正暗号コードQ''「JKLMN」に変換された後、この修正暗号コードQ''「JKLMN」がレスポンスとして返信されることになる。
このように、図15に示す第2の実施形態に係る認証方法を採用すれば、図5に示す第1の実施形態に係る認証方法を採用した場合と同様に、通信傍受によって得られる情報とサイドチャネル解析によって得られる情報との間には、直接的な関連がないため、両者を組み合わせたとしても、暗号アルゴリズムAを推定することは困難である。
すなわち、図15に示す認証方法を採用した場合、通信傍受によって得られる情報は、図17に示すとおり、ランダムコードR「12345」によるチャレンジに対して、修正暗号コードQ''「JKLMN」というレスポンスが得られるという事実である。しかしながら、このとき、暗号コード生成部230′の内部で行われている暗号化処理の演算は、ランダムコードR「12345」を修正暗号コードQ''「JKLMN」に変換する演算ではなく、修正コードR''「45678」を暗号コードQ「DEFGH」に変換する演算であり、サイドチャネル解析によって得られる情報は、図17に示すとおり、修正コードR''「45678」を暗号コードQ「DEFGH」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報ということになる。よって、この第2の実施形態を採用した場合も、通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐え得る認証方法が実現できる。
また、本発明を導入するにあたっては、暗号化処理の前後に、比較的単純なデータ処理
(図示の例の場合は、単なる加算処理)を行うプロセスを追加するだけでよいので、非常に効率的な処理により上記攻撃への対抗策を用意することができ、導入コストを抑制させることができる。
このように、本発明の第2の実施形態に係る情報処理装置の認証方法では、第1の情報処理装置100′が第2の情報処理装置200′を正当性が確認された装置として認証するために、まず、第1の情報処理装置100′側において、乱数を利用して、数字(上述したように、特定の数字に対応づけられた文字でもよい)を羅列したランダムコードRを発生させ、これを第2の情報処理装置200′に送信する段階(ランダムコード発生部110およびランダムコード送信部160による処理)が行われる。
続いて、第2の情報処理装置200′側において、送信されてきたランダムコードRを受信し、その構成要素となる個々の数字に対して、ランダムに発生した第1の修正数U1を用いた第1の修正演算Y1を行って修正コードR''を生成する段階(ランダムコード受信部210および修正コード生成部220′による処理)と、この修正コードR''を所定の暗号アルゴリズムにAに基づく暗号化演算によって暗号化し、暗号コードQを生成する段階(暗号コード生成部230′による処理)と、この暗号コードQの構成要素となる個々の数字に対して、ランダムに発生した第2の修正数U2を用いた第2の修正演算Y2を行って修正暗号コードQ''を生成する段階(修正暗号コード生成部240′による処理)と、修正暗号コードQ''とともに、第1の修正演算Y1および第2の修正演算Y2を示す修正情報を、第1の情報処理装置100′に送信する段階(修正暗号コード送信部250′による処理)と、が行われる。
そして、第1の情報処理装置100′側において、修正暗号コードQ''とともに、修正情報を受信し(修正暗号コード受信部170′による処理)、受信した修正暗号コードQ''の正当性を、受信した修正情報に基づく修正演算処理(照合用修正コード生成部120′および照合用修正暗号コード生成部140′による処理)および暗号コード生成部230′による暗号化処理と同じ暗号アルゴリズムAに基づく暗号化演算(照合用暗号コード生成部130′による処理)によって確認する段階が行われる。
なお、第2の情報処理装置200′から第1の情報処理装置100′への修正情報(第1の修正演算Y1および第2の修正演算Y2を示す情報)の送信は、実際には暗号化した状態で行うのが好ましい。すなわち、第2の情報処理装置200′側で修正情報の暗号化処理を行い、暗号化された状態の修正情報が修正暗号コード送信部250′から修正暗号コード受信部170′へと送信されるようにし、これを第1の情報処理装置100′側で復号して元に戻すようにすれば、通信傍受が行われても修正情報が露見するのを防ぐことができる。
また、図15に示す例では、第1の情報処理装置100′側において、第2の情報処理装置200′側で行われた暗号化演算と同じ暗号化演算を行い、照合判定部150′が双方の処理結果として得られた修正暗号コードQ''の一致確認を行うことにより認証を行っているが、本発明は、必ずしもこのような手順で一致確認を行う例に限定されるものではない。たとえば、第1の情報処理装置100′側において、修正暗号コードQ''に基づく復号演算(暗号コード生成部230′による暗号化処理と同じ暗号アルゴリズムAに基づく復号演算)を実行することにより照合を行ってもかまわない。
更に、図15に示す例では、第2の情報処理装置200′側において、第1の修正演算Y1に基づくランダムコードRに対する修正処理と、第2の修正演算Y2に基づく暗号コードQに対する修正処理と、を行っているため、これに応じて、第1の情報処理装置100′側においても、第1の修正演算Y1に基づくランダムコードRに対する修正処理と、第2の修正演算Y2に基づく暗号コードQに対する修正処理と、を行っている。しかしながら、本発明は、必ずしもこのような手順で一致確認を行う例に限定されるものではなく、たとえば、第1の情報処理装置100′側において、一方の修正処理を省略することも可能である。この場合、修正暗号コード送信部250′は、修正暗号コードQ''とともに、第1の修正演算Y1および第2の修正演算Y2の双方を示す修正情報を送信する必要はなく、いずれか一方を示す修正情報を送信すれば足りる。
このように、ここでは図15に示す基本的な実施例に基づいて本発明の第2の実施形態の基本概念を説明したが、実際には、細かな部分を変更した様々なバリエーションが考えられる。そこで、以下の§5では、このようなバリエーションに係る実施例をいくつか述べることにする。
<<< §5. 第2の実施形態の具体的な実施例 >>>
本発明の第2の実施形態の特徴は、図15の例を用いてその基本概念を説明したように、認証を行う際に、図16に例示するような修正演算をランダムに定義し、暗号化処理を行う際に修正処理を行う点にある。以下、その具体的な実施例をいくつか説明する。なお、ここで述べる第2の実施形態に係る実施例a〜gは、§3で述べた第1の実施形態に係る実施例A〜Gにそれぞれ対応するものである。よって、以下の説明では、必要に応じて実施例A〜Gと対比させながら、各実施例a〜gの特徴を述べることにする。
<5−1.実施例a:暗号化による照合その1>
図18は、第2の実施形態の実施例aを示すブロック図である。この実施例aは、§3−1で述べた第1の実施形態の実施例Aに対応するものであり、ここでは、第1の情報処理装置100aが第2の情報処理装置200aの正当性を確認する処理が行われることになる。
図示のとおり、この実施例aの場合、認証処理に関与する構成要素として、第1の情報処理装置100aには、ランダムコード発生部110、照合用修正コード生成部120a、照合用暗号コード生成部130a、照合用修正暗号コード生成部140a、照合判定部150a、ランダムコード送信部160、修正暗号コード受信部170a、修正数復号部180aが設けられている。一方、第2の情報処理装置200aには、ランダムコード受信部210、修正コード生成部220a、暗号コード生成部230a、修正暗号コード生成部240a、修正暗号コード送信部250a、修正数暗号化部260a、修正数生成部270aが設けられている。
ここで、ランダムコード発生部110、ランダムコード送信部160、ランダムコード受信部210は、図8に示す実施例Aの同符号の構成要素と全く同じものである。一方、数字の末尾にaを付した符号で示されている他の構成要素は、図8に示す実施例Aにおける同数字の符号で示されている構成要素に対応するものであり、それぞれ対応する構成要素に準じた機能を有している。
図8に示す実施例Aと図18に示す実施例aとの大きな相違点は、前者における構成要素120,220,140,240が、与えられたコードに対する並び替えを行って並替コードR′もしくは並替暗号コードQ′を生成するのに対して、後者における構成要素120a,220a,140a,240aが、与えられたコードに対する修正演算を行って修正コードR''もしくは修正暗号コードQ''を生成する点である。
そのため、構成要素130a,230aは、修正コードR''に対する暗号化処理を行うことになる。また、修正数生成部270aは、ランダムコード受信部210が新たなランダムコードRを受信するたびに、修正演算に利用するランダムな数値である第1の修正数U1および第2の修正数U2を乱数に基づいて生成する。第1の修正数U1は、修正コード生成部220aにおける第1の修正演算Y1に利用され、第2の修正数U2は、修正暗号コード生成部240aにおける第2の修正演算Y2に利用される。
一方、修正数暗号化部260aは、これらを暗号化して、第1の暗号化修正数U1および第2の暗号化修正数U2を生成し、修正暗号コード送信部250aは、修正暗号コード生成部240aによって生成された修正暗号コードQ''とともに、第1の暗号化修正数U1および第2の暗号化修正数U2を第1の情報処理装置100aに送信する。
修正暗号コード受信部170aは、こうして送信されてきた修正暗号コードQ''および暗号化修正数U1,U2を受信する。受信した修正暗号コードQ''は、照合判定部150aに与えられ、受信した暗号化修正数U1,U2は、修正数復号部180aに与えられる。修正数復号部180aは、暗号化修正数U1,U2をそれぞれ復号し、元の修正数U1,U2を復元する処理を行う。
照合用修正コード生成部120aは、こうして復元された第1の修正数U1を用いた第1の修正演算Y1に基づいてランダムコードRを修正し、修正コードR''を生成する処理を行う。同様に、照合用修正暗号コード生成部140aは、こうして復元された第2の修正数U2を用いた第2の修正演算Y2に基づいて照合用暗号コードQを修正し、修正暗号コードQ''を生成する処理を行う。各修正演算の内容として、たとえば「加算」を行うことに定めておけば、修正数が定まれば具体的な修正演算も一義的に定まることになる。
なお、修正数U1,U2の暗号化および復号には、公開鍵暗号方式を利用するのが好ましい。具体的には、修正数暗号化部260aが、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて修正数U1,U2の暗号化を行って暗号化修正数U1,U2を生成するようにし、修正数復号部180aが、上記一対の鍵のうちの他方の鍵を用いて暗号化修正数U1,U2に対する復号を行って元の修正数U1,U2を生成するようにすればよい。
たとえば、第1の情報処理装置100aがサーバ装置、第2の情報処理装置200aがクライアント装置の場合、修正数暗号化部260aは、サーバ装置100aを管理する者の公開鍵を用いて暗号化を行い、修正数復号部180aは、サーバ装置100aを管理する者の秘密鍵を用いて復号を行うことができる。
上述したとおり、修正数U1,U2は、図示する認証処理を行うたびに、第2の情報処理装置200a側で乱数を利用して新たに生成されるランダムな数値であるため、これを第1の情報処理装置100a側に送信する必要がある。ここに示す実施例aでは、修正数U1,U2を暗号化して、暗号化修正数U1,U2の形で送信することができるので、通信傍受が行われても、修正数U1,U2が直接露見することはない。したがって、不正な攻撃に対する防備をより高めることができる。
なお、図16には、第1の修正数U1および第2の修正数U2として、それぞれ異なる数値を生成した例を示したが、修正数U1,U2は、必ずしも異なる数値である必要はなく、同一の数値を用いるようにしてもかまわない。ただ、それぞれ異なる数値を用意した方が、不正な攻撃に対する防備を高める上では効果的であるので、実用上は、図16に示す例のように、第1の修正数U1および第2の修正数U2として、それぞれ異なる数値をランダムに生成するのが好ましい。
続いて、図18を参照しながら、実施例aにおける認証方法の具体的な処理内容、すなわち、第1の情報処理装置100aが第2の情報処理装置200aを正当性が確認された装置として認証するための具体的手順を、データの流れを追って順に説明する。
まず、ランダムコード発生部110において、乱数を利用して、構成要素となる数字(特定の数字に対応づけられた文字でもよい)を羅列したランダムコードRを発生させるランダムコード発生段階が行われる。図示の例は、5つの数字を羅列したランダムコードR「12345」が発生された例である。実用上は1バイトの数字をn個羅列したnバイトのランダムコードRを生成すればよい。そして、ランダムコード送信部160において、このランダムコードR「12345」を第2の情報処理装置200aに送信するランダムコード送信段階が行われる。
続いて、ランダムコード受信部210において、送信されてきたランダムコードR「12345」を受信するランダムコード受信段階が行われ、修正数生成部270aにおいて、乱数を利用して、第1の修正数U1および第2の修正数U2(図16に示す例の場合、U1=+3,U2=+6)を生成する修正数生成段階が行われる。
そして、修正コード生成部220aにおいて、ランダムコードR「12345」の構成要素となる個々の数字に対して、第1の修正数U1に基づく第1の修正演算Y1(図16に示す例の場合、修正数+3を加算する演算)を実行することにより、修正コードR''「45678」を生成する修正コード生成段階が行われ、暗号コード生成部230aにおいて、所定の暗号アルゴリズムAに基づく暗号化演算によって、修正コードR''「45678」を暗号化して暗号コードQ「DEFGH」を生成する暗号コード生成段階が行われ、更に、修正暗号コード生成部240aにおいて、暗号コードQ「DEFGH」の構成要素となる個々の数字に対して、第2の修正数U2に基づく第2の修正演算Y2(図16に示す例の場合、修正数+6を加算する演算)を実行することにより、修正暗号コードQ''「JKLMN」を生成する修正暗号コード生成段階が行われる。
また、修正数暗号化部260aでは、第1の修正数U1および第2の修正数U2をそれぞれ暗号化し、第1の暗号化修正数U1および第2の暗号化修正数U2を生成する修正数暗号化段階が行われる。そして、修正暗号コード送信部250aにおいて、修正暗号コードQ''「JKLMN」とともに、第1の暗号化修正数U1および第2の暗号化修正数U2を、第1の情報処理装置100aに送信する修正暗号コード送信段階が行われる。
一方、修正暗号コード受信部170aでは、送信を受けた修正暗号コードQ''「JKLMN」、ならびに、第1の暗号化修正数U1および第2の暗号化修正数U2を受信する修正暗号コード受信段階が行われ、修正数復号部180aでは、第1の暗号化修正数U1および第2の暗号化修正数U2をそれぞれ復号し、第1の修正数U1および第2の修正数U2を復元する修正数復号段階が行われる。
そして、照合用修正コード生成部120aにおいて、ランダムコード発生部110が発生させたランダムコードR「12345」の構成要素となる個々の数字に対して、復元された第1の修正数U1を用いた第1の修正演算Y1を行って照合用修正コードR''「45678」を生成する照合用修正コード生成段階が行われ、照合用暗号コード生成部130aにおいて、暗号コード生成部230aが採用している暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく暗号化演算によって、照合用修正コードR''「45678」を暗号化して照合用暗号コードQ「DEFGH」を生成する照合用暗号コード生成段階が行われ、更に、照合用修正暗号コード生成部140aにおいて、照合用暗号コードQ「DEFGH」の構成要素となる個々の数字に対して、復元された第2の修正数U2を用いた第2の修正演算Y2を行って、照合用修正暗号コードQ''「JKLMN」を生成する照合用修正暗号コード生成段階が行われる。
そして、最後に、照合判定部150aにおいて、修正暗号コード受信部170aが受信した修正暗号コードQ''「JKLMN」と、照合用修正暗号コード生成部140aが生成した照合用修正暗号コードQ''「JKLMN」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200aを正当性が確認された装置と判定する照合判定段階が行われる。
結局、この図18に示す実施例aに係る認証方法を採用した場合、第1の情報処理装置100aから第2の情報処理装置200aに対して、チャレンジとしてランダムコードR「12345」が与えられると、修正コード生成部220aにおいて、このランダムコードR「12345」は、第1の修正数U1を用いた第1の修正演算Y1によって修正コードR''「45678」に変換される。そして、暗号コード生成部230aは、この修正コードR''「45678」に対して暗号アルゴリズムAに基づく暗号化処理を行って、暗号コードQ「DEFGH」を生成する。更に、修正暗号コード生成部240aにおいて、この暗号コードQ「DEFGH」は、第2の修正数U2を用いた第2の修正演算Y2によって修正暗号コードQ''「JKLMN」に変換された後、この修正暗号コードQ''「JKLMN」がレスポンスとして返信されることになる。
このとき、第1の情報処理装置100aには、このレスポンスとともに、修正数U1,U2が暗号化された状態で送信される。しかも、照合用暗号コード生成部130aは、暗号コード生成部230aと同じ暗号アルゴリズムAを用いた暗号化処理を実行する機能を有している。したがって、第1の情報処理装置100a側においても、第2の情報処理装置200a側において実行された手順と同様の手順を実行して、ランダムコードR「12345」→修正コードR''「45678」→暗号コードQ「DEFGH」→修正暗号コードQ''「JKLMN」という変遷を辿って、修正暗号コードQ''「JKLMN」を得ることができ、最終的に、照合判定部150aにおいて、修正暗号コードQ''「JKLMN」の一致確認を行うことにより、第2の情報処理装置200aの正当性が確認されることになる。
この実施例aに示す認証方法が、通信傍受およびサイドチャネル解析を組み合わせた攻撃に対しても十分な防備機能を果たすことは、第1の実施形態と全く同じである。すなわち、図18に示す認証方法を採用した場合、通信傍受によって得られる情報は、ランダムコードR「12345」によるチャレンジに対して、修正暗号コードQ''「JKLMN」というレスポンスが得られるという事実である。
ところが、このとき、暗号コード生成部230aの内部で行われている暗号化処理の演算は、ランダムコードR「12345」を修正暗号コードQ''「JKLMN」に変換する演算ではなく、修正コードR''「45678」を暗号コードQ「DEFGH」に変換する演算であり、サイドチャネル解析によって得られる情報は、修正コードR''「45678」を暗号コードQ「DEFGH」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報ということになる。
このように、通信傍受によりチャレンジ「12345」とレスポンス「JKLMN」とが特定されたとしても、実際に行われている暗号化処理の演算は、別なコード「45678」を「DEFGH」に変換する演算であるため、両者を組み合わせた解析を行ったとしても、暗号アルゴリズムAを推定することは困難になる。
<5−2.実施例b:暗号化による照合その2>
続いて、図19を参照しながら、本発明の第2の実施形態の実施例bを説明する。この実施例bは、§3−2で述べた第1の実施形態の実施例Bに対応するものであり、ここでは、第1の情報処理装置100bが第2の情報処理装置200bの正当性を確認する処理が行われることになる。実施例bは、前述した実施例aにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例aとほぼ同じである。そこで、以下、実施例aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200bについては、図18の実施例aに示す第2の情報処理装置200aの構成と全く同じであるため、ここでは説明を省略する。なお、図19では、実施例Aの各構成要素と区別する便宜上、構成要素220b〜270bの符号末尾に「b」を付加して示してあるが、これらの各構成要素は、図18に示す実施例aの各構成要素220a〜270aと全く同じものである。
一方、第1の情報処理装置100bについては、構成要素110,120b,160,170b,180bは、図18に示す実施例aにおける構成要素110,120a,160,170a,180aと全く同じである。実施例aとの相違点は、構成要素130a,140a,150aの代わりに、照合用暗号コード第1生成部130b,照合用暗号コード第2生成部140b,照合判定部150bが設けられている点である。そこで、以下、これら3つの構成要素の機能について説明する。
はじめに、照合用暗号コード第1生成部130bは、実際には、実施例aにおける照合用暗号コード生成部130aと全く同じ機能をもった構成要素であり、暗号コード生成部230bにおいて実行される暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく暗号化演算によって、照合用修正コードR''「45678」を暗号化して照合用暗号コードQ「DEFGH」を生成する照合用暗号コード第1生成段階を実行する。ここで、構成要素130bの名称に「第1」を挿入しているのは、構成要素140bとの混同を避けるためである。
一方、照合用暗号コード第2生成部140bは、修正暗号コード受信部170bが受信した修正暗号コードQ''「JKLMN」の構成要素となる個々の数字に対して、第2の修正数U2を用いた第2の修正演算Y2とは逆の演算を行って照合用暗号コードQ「DEFGH」を生成する照合用暗号コード第2生成段階を行う構成要素である。照合用暗号コード第1生成部130bも照合用暗号コード第2生成部140bも、照合用暗号コードQ「DEFGH」を生成する機能をもった構成要素であるが、前者が、照合用修正コードR''「45678」に対する暗号化処理によって照合用暗号コードQ「DEFGH」を生成するのに対して、後者は、修正暗号コードQ''「JKLMN」に対する修正演算によって照合用暗号コードQ「DEFGH」を生成することになる。
ここで、第2の修正数U2を用いた第2の修正演算Y2とは逆の演算とは、修正暗号コード生成部240bで行われた修正演算Y2とは逆の演算であり、修正暗号コード生成部240bにおいて、図16(b) に示す「+6を加算する演算」(修正数U2=+6とする加算演算)が行われた場合であれば、その逆の演算は、「修正数U2=+6とする減算演算」ということになる。具体的には、図16(b) に示されている矢印の向きを逆転させて、下段のコード「JKLMN」から上段のコード「DEFGH」を生成する演算(対応する数字について+6を減じる演算)が行われることになる。なお、本願の図では、任意の修正演算Yを逆転させた演算を、符号Yの上部にバーを付した符号で示し、明細書中では、修正演算Yバーと表記する。
このように、照合用暗号コード第2生成部140bは、与えられた修正暗号コードQ''「JKLMN」の構成要素となる個々の数字(文字に対応する数字)に対して、「+6を減じる演算」を行い、照合用暗号コードQ「DEFGH」に変換する処理を行うことになるが、当該処理は、修正演算Y2バーに基づく修正処理ということになる。このような処理を行う理由は、修正暗号コードQ''「JKLMN」を、元の並び順をもった暗号コードQ「DEFGH」の状態に戻し、その状態での一致確認を行うためである。
すなわち、照合判定部150bは、照合用暗号コード第1生成部130b生成した照合用暗号コードQ「DEFGH」と、照合用暗号コード第2生成部140bが生成した照合用暗号コードQ「DEFGH」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200bを正当性が確認された装置と判定する照合判定段階を実行することになる。
要するに、実施例aの場合は、暗号コードQ「DEFGH」に対して修正演算を行うことによって得られる修正暗号コードQ''「JKLMN」の状態で一致判定を行っていたのに対して、実施例bの場合は、修正暗号コードQ''「JKLMN」を修正演算前の状態である暗号コードQ「DEFGH」に戻し、暗号コードQ「DEFGH」の状態で一致判定を行うことになる。したがって、実施例a,bに本質的な相違はなく、実施例bについても実施例aと同じ作用効果が得られる。
<5−3.実施例c:復号による照合その1>
続いて、図20を参照しながら、本発明の第2の実施形態の実施例cを説明する。この実施例cは、§3−3で述べた第1の実施形態の実施例Cに対応するものであり、ここでは、第1の情報処理装置100cが第2の情報処理装置200cの正当性を確認する処理が行われることになる。実施例cは、前述した実施例aにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例aとほぼ同じである。そこで、以下、実施例aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200cについては、図18の実施例aに示す第2の情報処理装置200aの構成と全く同じであるため、ここでは説明を省略する。なお、図20では、実施例Aの各構成要素と区別する便宜上、構成要素220c〜270cの符号末尾に「c」を付加して示してあるが、これらの各構成要素は、図18に示す実施例aの各構成要素220a〜270aと全く同じものである。
一方、第1の情報処理装置100cについては、構成要素110,160,170c,180cは、それぞれ実施例aにおける構成要素110,160,170a,180aと全く同じである。実施例aとの相違点は、構成要素120a,130a,140a,150aの代わりに、照合用ランダムコード生成部120c,照合用修正コード生成部130c,照合用暗号コード生成部140c,照合判定部150cが設けられている点である。そこで、以下、これら4つの構成要素の機能について説明する。
はじめに、照合用暗号コード生成部140cは、修正暗号コード受信部170cが受信した修正暗号コードQ''「JKLMN」の構成要素となる個々の数字に対して、第2の修正数U2を用いた第2の修正演算Y2とは逆の修正演算Y2バーを行って照合用暗号コードQ「DEFGH」を生成する照合用暗号コード生成段階を行う構成要素である。この照合用暗号コード生成部140cの機能は、実施例bの照合用暗号コード第2生成部140bの機能と全く同じであり、詳しい説明は省略する。
次に、照合用修正コード生成部130cは、暗号コード生成部230cが暗号化処理を行う際に利用した暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく復号演算によって、照合用暗号コードQ「DEFGH」を復号して照合用修正コードR''「45678」を生成する照合用修正コード生成段階を行う構成要素である。暗号コード生成部230cは、暗号アルゴリズムAに基づく暗号化演算により、修正コードR''「45678」に対する暗号化を行い、暗号コードQ「DEFGH」を生成する処理を行ったが、照合用修正コード生成部130cは、これと全く逆の処理により、暗号コードQ「DEFGH」を復号して元の修正コードR''「45678」に戻す処理を行うことになる。
一方、照合用ランダムコード生成部120cは、照合用修正コードR''「45678」の構成要素となる個々の数字に対して、第1の修正数U1を用いた第1の修正演算Y1とは逆の修正演算Y1バーを行って照合用ランダムコードR「12345」を生成する照合用ランダムコード生成段階を行う構成要素である。ここで、第1の修正演算Y1とは逆の修正演算Y1バーとは、図16(a) に示す修正演算における矢印の向きを逆転させて、下段のコード「45678」から上段のコード「12345」を生成する演算(+3を減じる演算)ということになる。
そして、照合判定部150cは、ランダムコード発生部110が発生させたランダムコードR「12345」と、照合用ランダムコード生成部120cが生成した照合用ランダムコードR「12345」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200cを正当性が確認された装置と判定する照合判定段階を行う構成要素である。
結局、この実施例cでは、第2の情報処理装置200cにおいて、ランダムコードR「12345」→修正コードR''「45678」→暗号コードQ「DEFGH」→修正暗号コードQ''「JKLMN」という暗号化処理を伴う変遷を辿って、修正暗号コードQ''「JKLMN」を得る点は、これまで述べてきた実施例aと全く同じであるが、第1の情報処理装置100cにおける認証プロセスでは、逆に、修正暗号コードQ''「JKLMN」→暗号コードQ「DEFGH」→修正コードR''「45678」→ランダムコードR「12345」という復号処理を伴う変遷を辿ってランダムコードR「12345」を得て、これが元のランダムコードR「12345」に一致するか否かを確認することにより、第2の情報処理装置200cの正当性が確認されることになる。
要するに、実施例aの場合は、第1の情報処理装置100aにおいて、暗号化を経た照合が行われていたのに対し、実施例cの場合は、第1の情報処理装置100cにおいて、復号を経た照合が行われることになる。したがって、実施例a,cに本質的な相違はなく、実施例cについても実施例aと同じ作用効果が得られる。
<5−4.実施例d:復号による照合その2>
続いて、図21を参照しながら、本発明の第2の実施形態の実施例dを説明する。この実施例dは、§3−4で述べた第1の実施形態の実施例Dに対応するものであり、ここでは、第1の情報処理装置100dが第2の情報処理装置200dの正当性を確認する処理が行われることになる。実施例dは、前述した実施例aにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例aとほぼ同じである。そこで、以下、実施例aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200dについては、図18の実施例aに示す第2の情報処理装置200aの構成と全く同じであるため、ここでは説明を省略する。なお、図21では、実施例Aの各構成要素と区別する便宜上、構成要素220d〜270dの符号末尾に「d」を付加して示してあるが、これらの各構成要素は、図18に示す実施例aの各構成要素220a〜270aと全く同じものである。
一方、第1の情報処理装置100dについては、構成要素110,160,170d,180dは、それぞれ図18の実施例aにおける構成要素110,160,170a,180aと全く同じである。実施例aとの相違点は、構成要素120a,130a,140a,150aの代わりに、照合用修正コード第2生成部120d,照合用修正コード第1生成部130d,照合用暗号コード生成部140d,照合判定部150dが設けられている点である。そこで、以下、これら4つの構成要素の機能について説明する。
はじめに、照合用暗号コード生成部140dは、修正暗号コード受信部170dが受信した修正暗号コードQ''「JKLMN」の構成要素となる個々の数字に対して、第2の修正数U2を用いた第2の修正演算Y2とは逆の修正演算Y2バーを行って照合用暗号コードQ「DEFGH」を生成する照合用暗号コード生成段階を行う構成要素である。この照合用暗号コード生成部140dの機能は、実施例bの照合用暗号コード第2生成部140bの機能と全く同じであり、詳しい説明は省略する。
次に、照合用修正コード第1生成部130dは、暗号コード生成部230dが暗号化処理を行う際に利用した暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく復号演算によって、照合用暗号コードQ「DEFGH」を復号して照合用修正コードR''「45678」を生成する照合用修正コード第1生成段階を行う構成要素である。暗号コード生成部230dは、暗号アルゴリズムAに基づく暗号化演算により、修正コードR''「45678」に対する暗号化を行い、暗号コードQ「DEFGH」を生成する処理を行ったが、照合用修正コード第1生成部130dは、これと全く逆の処理により、暗号コードQ「DEFGH」を復号して元の修正コードR''「45678」に戻す処理を行うことになる。
この照合用修正コード第1生成部130dは、実際には、実施例cにおける照合用修正コード生成部130cと全く同じ機能をもった構成要素であるが、照合用修正コード第2生成部120dとの混同を避けるため、ここでは、構成要素130dについては名称に「第1」を挿入し、構成要素120dについては名称に「第2」を挿入して、それぞれ照合用修正コード第1生成部130dおよび照合用修正コード第2生成部120dと呼ぶことにする。
そして、照合用修正コード第2生成部120dは、ランダムコード発生部110で発生させたランダムコードR「12345」の構成要素となる個々の数字に対して、第1の修正数U1を用いた第1の修正演算Y1を行って照合用修正コードR''「45678」を生成する照合用修正コード第2生成段階を実行する構成要素である。この照合用修正コード第2生成部120dは、実際には、実施例aにおける照合用修正コード生成部120aと全く同じ機能をもった構成要素であるが、上述したように、照合用修正コード第1生成部130dとの混同を避けるため、ここでは、照合用修正コード第2生成部120dと呼んでいる。
そして、照合判定部150dは、照合用修正コード第1生成部130dが生成した照合用修正コードR''「45678」と、照合用修正コード第2生成部120dが生成した照合用修正コードR''「45678」と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200dを正当性が確認された装置と判定する照合判定段階を行う構成要素である。
結局、この実施例dでは、第2の情報処理装置200dにおいて、ランダムコードR「12345」→修正コードR''「45678」→暗号コードQ「DEFGH」→修正暗号コードQ''「JKLMN」という暗号化処理を伴う変遷を辿って、修正暗号コードQ''「JKLMN」を得る点は、これまで述べてきた実施例aと全く同じであるが、第1の情報処理装置100dにおける認証プロセスでは、逆に、修正暗号コードQ''「JKLMN」→暗号コードQ「DEFGH」→修正コードR''「45678」という復号処理を伴う変遷を辿って修正コードR''「45678」を得るとともに、元のランダムコードR「12345」→修正コードR''「45678」という修正処理を行い、得られた2通りの修正コードR''「45678」が一致するか否かを確認することにより、第2の情報処理装置200dの正当性が確認されることになる。したがって、実施例a,dに本質的な相違はなく、実施例dについても実施例aと同じ作用効果が得られる。
<5−5.実施例e:暗号化による簡易照合>
続いて、図22を参照しながら、本発明の第2の実施形態の実施例eを説明する。この実施例eは、§3−5で述べた第1の実施形態の実施例Eに対応するものであり、ここでは、第1の情報処理装置100eが第2の情報処理装置200eの正当性を確認する処理が行われることになる。実施例eは、前述した実施例aにおける照合プロセスを一部簡略化したものであり、基本的な構成は、実施例aとほぼ同じである。そこで、以下、実施例aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200eについては、構成要素210,220e,230e,240e,270eは、それぞれ図18の実施例aにおける構成要素210,220a,230a,240a,270aと全く同じである。実施例aとの相違点は、構成要素250a,260aの代わりに、修正暗号コード送信部250e,修正数暗号化部260eが設けられている点である。
一方、第1の情報処理装置100eについては、構成要素110,120e,130e,160は、それぞれ図18の実施例aにおける構成要素110,120a,130a,160と全く同じである。実施例aとの相違点は、構成要素140aに相当する構成要素が省略されている点と、構成要素150a,170a,180aの代わりに、照合判定部150e,修正暗号コード受信部170e,修正数復号部180eが設けられている点である。そこで、以下、これらの相違点について説明する。
この実施例eの根本的な特徴は、実施例aにおける第2の情報処理装置200aから第1の情報処理装置100aへの第2の暗号化修正数U2の送信を省略し、第1の情報処理装置100e側での第2の修正演算Y2による修正処理を省略する点にある。
したがって、第2の情報処理装置200e側では、修正数生成部270eにおいて2組の修正数U1,U2を生成し、修正コード生成部220eにおける修正処理および修正暗号コード生成部240eにおける修正処理が行われる点は、実施例eと同じであるが、修正数暗号化部260eにおいて行われる修正数暗号化段階では、第1の修正数U1を暗号化し、第1の暗号化修正数U1を生成する処理が行われるものの、第2の修正数U2の暗号化は省略される。また、修正暗号コード送信部250eにおいて行われる修正暗号コード送信段階では、修正暗号コードQ''「JKLMN」とともに第1の暗号化修正数U1が、第1の情報処理装置100eに送信されるが、第2の暗号化修正数U2の送信は省略される。
このように、第2の暗号化修正数U2の送信を省略したため、第1の情報処理装置100e側の処理も若干変わってくる。すなわち、修正暗号コード受信部170eでは、修正暗号コードQ''「JKLMN」とともに第1の暗号化修正数U1の受信が行われるが、第2の暗号化修正数U2は受信されない。また、修正数復号部180eでは、第1の暗号化修正数U1を復号し、第1の修正数U1を復元する処理が行われるが、第2の暗号化修正数U2の復号は行われない。
結局、第1の情報処理装置100e側には、第2の修正数U2の情報が伝わらないので、第2の修正数U2を用いる第2の修正演算Y2を行うことはできない。図18に示す実施例aでは、この第2の修正数U2に基づく第2の修正演算Y2を行うために、照合用修正暗号コード生成部140aが設けられていたが、図22に示す実施例eでは、この構成要素140aに相当するものは省略されている。その結果、照合用暗号コード生成部130eによって生成された照合用暗号コードQ「DEFGH」が、そのままの状態で照合判定部150eに与えられることになる。
これは、照合判定部150eが、実施例aの照合判定部150aと同じ方法では照合判定を実行できないことを意味する。図示の具体例の場合も、照合用暗号コード生成部130eから与えられる照合用暗号コードQ「DEFGH」と、修正暗号コード受信部170eから与えられる修正暗号コードQ''「JKLMN」とは一致していない。
しかしながら、照合用暗号コードQ「DEFGH」を、第2の修正数U2を用いた第2の修正演算Y2によって修正すれば、修正暗号コードQ''「JKLMN」が得られるのであるから、修正演算の内容(たとえば、図16に示す具体例の場合は、修正数を加算する演算)を予め定めておけば、修正数自体が未知であっても、2つのコードQ「DEFGH」およびQ''「JKLMN」が、修正演算の前後の数値として矛盾のない対応関係を有するか否かを判定することは可能である。
たとえば、上例の場合、コードQ「DEFGH」を構成する個々の文字「D,E,F,G,H」は、それぞれ対応する数字(アルファベットの並び順を示す数字)に置き換えると「4,5,6,7,8」なる数列になり、コードQ''「JKLMN」を構成する個々の文字「J,K,L,M,N」は、それぞれ対応する数字に置き換えると「10,11,12,13,14」なる数列になる。そこで、先頭から順に対応する位置にある構成要素を組み合わせてゆくと、5組の構成要素対「4と10」,「5と11」,「6と12」,「7と13」,「8と14」が得られる。これら個々の構成要素対について差Δを求めると、いずれも差Δ=6になる。
これは、第2の情報処理装置200eの修正暗号コード生成部240eにおいて、第2の修正数U2=+6とする加算演算が行われたためである。この実施例eでは、第1の情報処理装置100e側に第2の修正数U2は伝達されないが、上例のように、照合判定部150eにおいて、2つのコードQ「DEFGH」およびQ''「JKLMN」の対応する位置にある構成要素対についてそれぞれ差Δを求めれば、当該差Δは、修正暗号コード生成部240eにおいて実行された第2の修正演算Y2(加算演算)に用いられた第2の修正数U2ということになる。
このように、第2の修正演算Y2を、何らかの修正数U2を個々の構成要素に加える加算もしくは減算演算とした場合、修正数U2がどのような値をとったとしても、上述の方法で求めた差Δはすべて等しくなるはずである。換言すれば、すべての構成要素対について求めた差Δがすべて等しくなれば、2つのコードQ,Q''は、修正演算の前後の数値として矛盾のない対応関係を有することになるが、1つでも異なった差Δが得られた場合には、対応関係に矛盾が生じていることになる。
そこで、この実施例eの場合、照合判定部150eは、修正暗号コード受信部170eが受信した修正暗号コードQ''「JKLMN」に含まれている構成要素と、照合用暗号コード生成部130eが生成した照合用暗号コードQ「DEFGH」に含まれている構成要素と、が第2の修正演算Y2による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、第2の情報処理装置200eを正当性が確認された装置と判定する照合判定段階を行う。
具体的には、照合判定部150eは、上述したように、2つのコードQ,Q''の各構成要素対について、先頭から順にそれぞれ差Δを求める演算を行ってゆき、求めた差Δが直前の構成要素対について求めた差Δと一致するか否かを確認する処理を順次行ってゆけばよい。
このように、実施例eでは、第1の情報処理装置100e側で行う照合判定の基準が、これまで述べてきた実施例a〜dに比べて緩和されている。すなわち、照合対象となる2組のコードが一致するか否かを判定する代わりに、所定の修正演算前後の数値として矛盾のない対応関係を有するか否かを判定することになる。このため、この実施例eは、実施例a〜dに比べて認証の厳格性は若干低下することになるが、第2の情報処理装置200e側では、第2の修正数U2を送信するための処理を省略することができ、第1の情報処理装置100e側では、第2の修正数U2に関する受信処理や修正処理を省略することができるので、処理を簡素化できるメリットが得られる。
<5−6.実施例f:復号による簡易照合>
続いて、図23を参照しながら、本発明の第2の実施形態の実施例fを説明する。この実施例fは、§3−6で述べた第1の実施形態の実施例Fに対応するものであり、ここでは、第1の情報処理装置100fが第2の情報処理装置200fの正当性を確認する処理が行われることになる。実施例fは、実施例eと同様に、実施例aにおける照合プロセスを一部簡略化したものであり、基本的な構成は、実施例aとほぼ同じである。そこで、以下、実施例aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200fについては、構成要素210,220f,230f,240f,270fは、それぞれ図18の実施例aにおける構成要素210,220a,230a,240a,270aと全く同じである。実施例aとの相違点は、構成要素250a,260aの代わりに、修正暗号コード送信部250f,修正数暗号化部260fが設けられている点である。
一方、第1の情報処理装置100fについては、構成要素110,160は、それぞれ図18の実施例aにおける構成要素110,160と全く同じである。実施例aとの相違点は、構成要素120aに相当する構成要素が省略されている点と、構成要素130a,140a,150a,170a,180aの代わりに、照合用修正コード生成部130f,照合用暗号コード生成部140f,照合判定部150f,修正暗号コード受信部170f,修正数復号部180fが設けられている点である。そこで、以下、これらの相違点について説明する。
この実施例fの根本的な特徴は、実施例aにおける第2の情報処理装置200aから第1の情報処理装置100aへの第1の暗号化修正数U1の送信を省略し、第1の情報処理装置100f側での第1の修正数U1に基づく第1の修正演算Y1を省略する点にある。すなわち、前述した実施例eでは、第2の暗号化修正数U2の送信を省略していたのに対して、ここで述べる実施例fでは、第1の暗号化修正数U1の送信を省略している点が異なっている。
このため、第2の情報処理装置200f側では、修正数生成部270fにおいて2組の修正数U1,U2を生成し、修正コード生成部220fにおける第1の修正演算Y1および修正暗号コード生成部240fにおける第2の修正演算Y2が行われる点は、実施例aと同じであるが、修正数暗号化部260fにおいて行われる修正数暗号化段階では、第2の修正数U2を暗号化し、第2の暗号化修正数U2を生成する処理が行われるものの、第1の修正数U1の暗号化は省略される。また、修正暗号コード送信部250fにおいて行われる修正暗号コード送信段階では、修正暗号コードQ''「JKLMN」とともに第2の暗号化修正数U2が、第1の情報処理装置100fに送信されるが、第1の暗号化修正数U1の送信は省略される。
このように、第1の暗号化修正数U1の送信を省略したため、第1の情報処理装置100f側の処理も若干変わってくる。すなわち、修正暗号コード受信部170fでは、修正暗号コードQ''「JKLMN」とともに第2の暗号化修正数U2の受信が行われるが、第1の暗号化修正数U1は受信されない。また、修正数復号部180fでは、第2の暗号化修正数U2を復号し、第2の修正数U2を復元する処理が行われるが、第1の暗号化修正数U1の復号は行われない。
結局、第1の情報処理装置100f側には、第1の修正数U1の情報が伝わらないので、第1の修正数U1に基づく第1の修正演算Y1を行うことはできない。すなわち、第1の情報処理装置100f側では、ランダムコード発生部110が発生させたランダムコードR「12345」に対する修正演算を行うことができないので、第2の情報処理装置200f側で行われた暗号化処理に対応する処理を行うことができないことになる。そこで、第1の情報処理装置100f側で行う照合判定作業は、暗号化処理ではなく復号処理を前提としたものにならざるを得ない。
このような観点から、この実施例fでは、前述した実施例cに類似した処理(復号による照合処理)を行うことになる。その基本概念は、図20に示す実施例cにおいて、照合用ランダムコード生成部120cを省略し、照合用修正コード生成部130cによって生成された照合用修正コードR''「45678」を照合判定部150cに直接与え、照合判定部150cにおいて、2組のコードの一致を判定する代わりに、これら2組のコードが、修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを判定するように改変することにある。
具体的には、照合用暗号コード生成部140fにおいて、修正暗号コード受信部170fが受信した修正暗号コードQ''「JKLMN」の構成要素となる個々の数字(この例の場合は、文字に対応する数字)に対して、第2の修正数U2を用いた第2の修正演算Y2とは逆の修正演算Y2バーを行って照合用暗号コードQ「DEFGH」を生成する照合用暗号コード生成段階が行われる。続いて、照合用修正コード生成部130fにおいて、暗号コード生成部230fの暗号化処理に利用された暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく復号演算を行い、照合用暗号コードQ「DEFGH」を復号して照合用修正コードR''「45678」を生成する照合用修正コード生成段階が行われる。
上述したとおり、第1の情報処理装置100f側には、第1の修正数U1に関する情報は伝えられていないので、照合用修正コード生成部130fによって生成された照合用修正コードR''「45678」に対する修正演算(第1の修正演算Y1とは逆の修正演算Y1バー)を行うことはできない。そのため、この照合用修正コードR''「45678」は、そのままの状態で照合判定部150fに与えられることになる。
これは、照合判定部150fが、実施例cの照合判定部150cと同じ方法では照合判定を実行できないことを意味する。図示の具体例の場合も、照合用修正コード生成部130fから与えられる照合用修正コードR''「45678」と、ランダムコード発生部110から与えられるランダムコードR「12345」とは一致していない。
しかしながら、上述した実施例eにおける照合判定の手法と同様に、ランダムコードR「12345」を、第1の修正数U1を用いた第1の修正演算Y1によって修正すれば、照合用修正コードR''「45678」が得られるのであるから、修正演算の内容を予め定めておけば、修正数自体が未知であっても、2つのコードR「12345」およびR''「45678」が、修正演算の前後の数値として矛盾のない対応関係を有するか否かを判定することは可能である。
そこで、この実施例fの場合、照合判定部150fは、ランダムコード発生部110が発生させたランダムコードR「12345」に含まれている構成要素と、照合用修正コード生成部130fが生成した照合用修正コードR''「45678」に含まれている構成要素と、が第1の修正演算Y1による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、第2の情報処理装置200fを正当性が確認された装置と判定する照合判定段階を行う。
このように、実施例fでは、実施例eと同様に、第1の情報処理装置100f側で行う照合判定の基準が、これまで述べてきた実施例a〜dに比べて緩和されているので認証の厳格性は若干低下することになるが、第2の情報処理装置200f側では、第1の修正数U1を送信するための処理を省略することができ、第1の情報処理装置100f側では、第1の修正数U1に関する受信処理や並び替え処理を省略することができるので、処理を簡素化できるメリットが得られる。
<5−7.実施例g:一方向性関数の利用>
最後に、図24を参照しながら、本発明の第2の実施形態の実施例gを説明する。この実施例gは、§3−7で述べた第1の実施形態の実施例Gに対応するものであり、ここでは、第1の情報処理装置100gが第2の情報処理装置200gの正当性を確認する処理が行われることになる。実施例gは、前述した実施例aにおけるプロセスを若干変更したものであり、基本的な構成は、実施例aとほぼ同じである。そこで、以下、実施例aとの相違点についての説明のみを行う。
まず、第2の情報処理装置200gについては、構成要素210,230gは、図18の実施例aにおける構成要素210,230aと全く同じである。実施例aとの相違点は、構成要素220a,240a,250a,260a,270aの代わりに、修正コード生成部220g,一方向性関数値生成部240g,関数値送信部250g、修正数暗号化部260g,修正数生成部270gが設けられている点である。
一方、第1の情報処理装置100gについては、構成要素110,130g,160は、実施例aにおける構成要素110,130a,160と全く同じである。実施例aとの相違点は、構成要素120a,140a,150a,170a,180aの代わりに、照合用修正コード生成部120g,照合用一方向性関数値生成部140g,照合判定部150g,関数値受信部170g,修正数復号部180gが設けられている点である。そこで、以下、これらの相違点について説明する。
この実施例gの根本的な特徴は、実施例Gと同様に一方向性関数を利用する点である。すなわち、実施例aにおける第1の修正演算Y1は行うものの、第2の修正演算Y2は行わず、その代わりに一方向性関数を作用させる演算が行われる。そこで、この実施例gでは、実施例aにおける「第1の修正数U1」および「第1の修正演算Y1」に対応する用語として、単に、「修正数U」および「修正演算U」という文言を用いることにする。このように用語に若干の相違があるものの、実施例gにおける修正コード生成部220gは、実際には、実施例aにおける修正コード生成部220aと全く同じ構成要素であり、実施例gにおける照合用修正コード生成部120gは、実際には、実施例aにおける照合用修正コード生成部120aと全く同じ構成要素である。
すなわち、修正コード生成部220gは、ランダムコードR「12345」の構成要素となる個々の数字に対して、修正数Uを用いた修正演算Yを行って修正コードR''「45678」を生成する修正コード生成段階を行う構成要素であり、照合用修正コード生成部120gは、ランダムコード発生部110が発生させたランダムコードR「12345」の構成要素となる個々の数字に対して、修正数Uを用いた修正演算Yを行って修正コードR''「45678」を生成する照会用修正コード生成段階を行う構成要素である。
このように、実施例gでは、単一の修正数Uしか用いられないので、修正数生成部270gは、単一の修正数Uを生成すれば足り、修正数暗号化部260gは、この単一の修正数Uに対する暗号化を行って、単一の暗号化修正数Uを生成すれば足りる。
実施例gと実施例aとの本質的な相違は、暗号コード生成部230aが、修正コードR''「45678」に対する暗号化処理を行って暗号コードQ「DEFGH」を生成した後、この暗号コードQ「DEFGH」に対して修正演算を行う代わりに、一方向性関数を作用させる演算を行う点である。
そのため、一方向性関数値生成部240gにおいて、暗号コードQ「DEFGH」に対して一方向性関数を作用させて所定の関数値Hを生成する一方向性関数値生成段階が行われる。この一方向性関数の性質については、既に§3−7で説明したとおりであり、ここでも代表的な一方向性関数として、HASH関数を用いた例を述べることにする。図示の例の場合も、便宜上、「DEFGH」なる5文字のデータからなる暗号コードQに対してHASH関数を作用させることにより得られた関数値Hの具体的な値を「h」で表すことにする。この例の場合、一方向性関数値生成部240gは、暗号コードQ「DEFGH」に対してHASH関数を作用させ、関数値H(h)を生成する演算処理を行うことになる。
関数値送信部250gは、一方向性関数値生成部240gによって生成された関数値H(h)とともに、修正数暗号化部260gで暗号化された暗号化修正数Uを、第1の情報処理装置100gに送信する関数値送信段階を行う構成要素である。
こうして、第2の情報処理装置200gから送信されてきた関数値H(h)および暗号化修正数Uは、関数値受信部170gによって受信される。受信された暗号化修正数Uは修正数復号部180gに与えられ、受信された関数値H(h)は照合判定部150gに与えられる。修正数復号部180gは、与えられた暗号化修正数Uを復号し、修正数Uを復元する修正数復号段階を行う。
一方、照合用修正コード生成部120gは、ランダムコード発生部110が発生させたランダムコードR「12345」の構成要素となる個々の数字に対して、修正数Uを用いた修正演算Yを行って照合用修正コードR''「45678」を生成する照合用修正コード生成段階を行う。また、照合用暗号コード生成部130gは、暗号コード生成部230gの暗号化処理に用いられた暗号アルゴリズムAと同じ暗号アルゴリズムAに基づく暗号化演算によって、照合用修正コードR''「45678」を暗号化して照合用暗号コードQ「DEFGH」を生成する照合用暗号コード生成段階を行う。
続いて、照合用一方向性関数値生成部140gにおいて、照合用暗号コードQ「DEFGH」に対して、一方向性関数値生成部240gで用いられた一方向性関数と同じ一方向性関数(ここに示す例の場合、HASH関数)を作用させて、照合用関数値H(h)を生成する照合用一方向性関数値生成段階が行われる。そして最後に、照合判定部150gにおいて、関数値受信部170gが受信した関数値H(h)と、照合用一方向性関数値生成部140gで生成された照合用関数値H(h)と、が一致するか否かを照合し、一致した場合に、第2の情報処理装置200gを正当性が確認された装置と判定する照合判定段階が行われる。
このように、実施例gでは、第1の情報処理装置100g側で行う照合が、一方向性関数値の一致確認というプロセスで行われるため、認証の厳格性は若干低下することになるが、第1の情報処理装置100gおよび第2の情報処理装置200gの双方において、単一の修正数Uに関する処理を行えばよいため、処理を簡素化できるメリットが得られる。
<<< §6. 本発明の変形例 >>>
これまで本発明に係る第1の実施形態および第2の実施形態を、それぞれいくつかの実施例に基づいて説明したが、もちろん、本発明はこれらの実施例に限定されるものではない。ここでは、これまで述べてきた種々に実施例に対する変形例をいくつか述べておく。
(1) 修正演算のバリエーション
§4,§5で述べた第2の実施形態において実行する修正演算として、図16には、任意の修正数Uを加算もしくは減算する例を示したが、修正演算としては、加減算以外にも様々な算術演算を設定することも可能である。たとえば、元のコードの各構成要素となる数字に修正数Uを乗ずる乗算、修正数Uを除する除算、構成ビットを修正数Uだけシフトするシフト演算、修正数Uとの間でのビットごとの論理演算(AND演算、OR演算、XOR演算)などを行うようにしてもよい。
ただ、このような修正演算の目的は、図17に示すように、通信傍受によって察知されてしまうチャレンジ・レスポンスのコードと、サイドチャネル解析の対象となる暗号化処理の前後のコードとが異なるようにするためであるので、敢えて複雑な演算を行う必要はない。したがって、実用上は、図16に例示したように、第1の修正数U1および第2の修正数U2として、乱数を利用して生成した正もしくは負の数を用い、第1の修正演算Y1として、個々の数字に対して第1の修正数U1を加算もしくは減算する演算を行い、第2の修正演算Y2として、個々の数字に対して第2の修正数U2を加算もしくは減算する演算を行うようにすれば十分である。
(2) 個別の修正数を用いる変形例
これまで述べた修正演算は、複数n個の数字(もしくは、数字に対応する文字)を構成要素として含むコードについて、これらn個の構成要素に対して共通の修正数Uを生成し、当該共通の修正数Uを加算もしくは減算する例であるが、修正数Uは、必ずしもn個の構成要素に対して共通にする必要はなく、それぞれ別個の修正数を用いるようにしてもかまわない。この場合、複数n個の数字(もしくは、数字に対応する文字)を構成要素として含むコードについて、これらn個の構成要素のそれぞれについて別個に修正数を生成し、第1の修正数U1もしくは第2の修正数U2を、n個の修正数の数列によって構成すればよい。結局、n個の構成要素からなるコードに対してn個の修正数の数列を用いて修正演算が行われることになる。
たとえば、図16(a) に示す例の場合、5個の構成要素(n=5)からなる元のコード「12345」について、共通の修正数U1=+3を生成し、各構成要素に+3を加算することにより、修正コード「45678」を得る修正演算が示されているが、修正数U1として、たとえば、「33221」のような5つの数字からなる数列を生成し、5個の構成要素に対してそれぞれ数列の対応位置にある数字を加算すれば、「78899」という5個の構成要素からなる修正コードを得ることができる。もちろん、この場合、第2の情報処理装置から第1の情報処理装置に対して、「33221」という数列からなる修正数U1が暗号化された状態で送信されることになる。
(3) 2組の情報処理装置における相互認証
これまで述べてきた実施例では、第1の情報処理装置(サーバ装置)が第2の情報処理装置(クライアント装置)を正当性が確認された装置として認証する認証方法を説明した。すなわち、第1の情報処理装置で乱数を用いてランダムコードRを生成し、これをチャレンジとして第2の情報処理装置に送信し、第2の情報処理装置において、このチャレンジに基づいて所定の処理を行ってレスポンスを生成し、これを第1の情報処理装置に返信し、第1の情報処理装置が当該レスポンスに基づき、第2の情報処理装置が正当な装置であるか否かを判断している。
そこで、第1の情報処理装置が行う各処理段階と、第2の情報処理装置が行う各処理段階と、を入れ替えた処理を更に行うようにすれば、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証するとともに、第2の情報処理装置が第1の情報処理装置を正当性が確認された装置として認証する相互認証の処理を行うことも可能である。
具体的には、これまで述べてきた実施例において、第1の情報処理装置の各構成要素を第2の情報処理装置にも設けるようにし、第2の情報処理装置の各構成要素を第1の情報処理装置にも設けるようにし、それぞれが相手方に対する認証処理を行うようにすればよい。
(4) 半導体集積回路もしくはプログラムの提供
これまで、本発明に係る認証方法を実行する機能をもった第1の情報処理装置および第2の情報処理装置の基本構成を、ブロック図を利用しながら説明してきたが、実際には、これらの情報処理装置は、当該ブロック図に対応する専用の処理機能をもった半導体集積回路もしくは専用のプログラムを組み込んだコンピュータによって実現することができる。したがって、実用上、本発明の成果物は、半導体集積回路からなる情報処理装置というハードウエア製品として、あるいは、コンピュータ用のプログラムというソフトウエア製品として、市場に提供されることになる。
10:第1の情報処理装置(サーバ装置)
11:ランダムコード発生部
13:照合用暗号コード生成部
15:照合判定部
16:ランダムコード送信部
17:暗号コード受信部
20:第2の情報処理装置(クライアント装置)
21:ランダムコード受信部
23:暗号コード生成部
25:暗号コード送信部
100,100′:第1の情報処理装置(サーバ装置)
100A〜100G:第1の情報処理装置(サーバ装置)
100a〜100g:第1の情報処理装置(サーバ装置)
110:ランダムコード発生部
120:照合用並替コード生成部
120′:照合用修正コード生成部
120C:照合用ランダムコード生成部
120D:照合用並替コード第2生成部
120G:照合用並替コード生成部
120a:照合用修正コード生成部
120b:照合用修正コード生成部
120c:照合用ランダムコード生成部
120d:照合用修正コード第2生成部
120e:照合用修正コード生成部
120g:照合用修正コード生成部
130:照合用暗号コード生成部
130′:照合用暗号コード生成部
130B:照合用暗号コード第1生成部
130C:照合用並替コード生成部
130D:照合用並替コード第1生成部
130F:照合用並替コード生成部
130a:照合用暗号コード生成部
130b:照合用暗号コード第1生成部
130c:照合用修正コード生成部
130d:照合用修正コード第1生成部
130e:照合用暗号コード生成部
130f:照合用修正コード生成部
130g:照合用暗号コード生成部
140:照合用並替暗号コード生成部
140′:照合用修正暗号コード生成部
140B:照合用暗号コード第2生成部
140C:照合用暗号コード生成部
140D:照合用暗号コード生成部
140F:照合用暗号コード生成部
140G:照合用一方向性関数値生成部
140a:照合用修正暗号コード生成部
140b:照合用暗号コード第2生成部
140c:照合用暗号コード生成部
140d:照合用暗号コード生成部
140f:照合用暗号コード生成部
140g:照合用一方向性関数値生成部
150:照合判定部
150′:照合判定部
150B:照合判定部
150C:照合判定部
150D:照合判定部
150E:照合判定部
150F:照合判定部
150G:照合判定部
150a:照合判定部
150b:照合判定部
150c:照合判定部
150d:照合判定部
150e:照合判定部
150f:照合判定部
150g:照合判定部
160:ランダムコード送信部
170:並替暗号コード受信部
170′:修正暗号コード受信部
170E:並替暗号コード受信部
170F:並替暗号コード受信部
170G:関数値受信部
170a:修正暗号コード受信部
170b:修正暗号コード受信部
170c:修正暗号コード受信部
170d:修正暗号コード受信部
170e:修正暗号コード受信部
170f:修正暗号コード受信部
170g:関数値受信部
180:テーブル復号部
180E:テーブル復号部
180F:テーブル復号部
180G:テーブル復号部
180a:修正数復号部
180b:修正数復号部
180c:修正数復号部
180d:修正数復号部
180e:修正数復号部
180f:修正数復号部
180g:修正数復号部
200,200′:第2の情報処理装置(クライアント装置)
200A〜200G:第2の情報処理装置(クライアント装置)
200a〜200g:第2の情報処理装置(クライアント装置)
210:ランダムコード受信部
220:並替コード生成部
220′:修正コード生成部
220G:並替コード生成部
220a:修正コード生成部
220b:修正コード生成部
220c:修正コード生成部
220d:修正コード生成部
220e:修正コード生成部
220f:修正コード生成部
220g:修正コード生成部
230:暗号コード生成部
230′:暗号コード生成部
230a:暗号コード生成部
230b:暗号コード生成部
230c:暗号コード生成部
230d:暗号コード生成部
230e:暗号コード生成部
230f:暗号コード生成部
230g:暗号コード生成部
240:並替暗号コード生成部
240′:修正暗号コード生成部
240G:一方向性関数値生成部
240a:修正暗号コード生成部
240b:修正暗号コード生成部
240c:修正暗号コード生成部
240d:修正暗号コード生成部
240e:修正暗号コード生成部
240f:修正暗号コード生成部
240g:一方向性関数値生成部
250:並替暗号コード送信部
250′:修正暗号コード送信部
250E:並替暗号コード送信部
250F:並替暗号コード送信部
250G:関数値送信部
250a:修正暗号コード送信部
250b:修正暗号コード送信部
250c:修正暗号コード送信部
250d:修正暗号コード送信部
250e:修正暗号コード送信部
250f:修正暗号コード送信部
250g:関数値送信部
260:テーブル暗号化部
260E:テーブル暗号化部
260F:テーブル暗号化部
260G:テーブル暗号化部
260a:修正数暗号化部
260b:修正数暗号化部
260c:修正数暗号化部
260d:修正数暗号化部
260e:修正数暗号化部
260f:修正数暗号化部
260g:修正数暗号化部
270:並替テーブル生成部
270G:並替テーブル生成部
270a:修正数生成部
270b:修正数生成部
270c:修正数生成部
270d:修正数生成部
270e:修正数生成部
270f:修正数生成部
270g:修正数生成部
A:暗号アルゴリズム
H:一方向性関数値
m1〜m5:コードの各構成要素
Q:暗号コード/照合用暗号コード
Q′:並替暗号コード
Q'':修正暗号コード
R:ランダムコード
R′:並替コード
R'':修正コード
T:並び替えテーブル
:暗号化テーブル
T1:第1の並び替えテーブル
T1:第1の暗号化テーブル
T2:第2の並び替えテーブル
T2:第2の暗号化テーブル
U:修正数
:暗号化修正数
U1:第1の修正数
U1:第1の暗号化修正数
U2:第2の修正数
U2:第2の暗号化修正数
X:並び替え方法
X1:第1の並び替え方法
X2:第2の並び替え方法
Y:修正演算
Y1:第1の修正演算
Y2:第2の修正演算

Claims (33)

  1. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、文字もしくは数字を羅列したランダムコードを発生させ、これを前記第2の情報処理装置に送信する段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信し、その構成要素をランダムな第1の並び替え方法で並び替えて並替コードを生成する段階と、
    前記第2の情報処理装置が、前記並替コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素をランダムな第2の並び替え方法で並び替えて並替暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに、前記第1の並び替え方法および前記第2の並び替え方法を示す並替情報を、前記第1の情報処理装置に送信する段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記並替情報を受信し、受信した前記並替暗号コードの正当性を、受信した前記並替情報に基づく並び替え処理および前記暗号アルゴリズムに基づく暗号化演算もしくは復号演算により確認する段階と、
    を有する情報処理装置の認証方法。
  2. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、文字もしくは数字を羅列したランダムコードを発生させ、これを前記第2の情報処理装置に送信する段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信し、その構成要素をランダムな第1の並び替え方法で並び替えて並替コードを生成する段階と、
    前記第2の情報処理装置が、前記並替コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素をランダムな第2の並び替え方法で並び替えて並替暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに、前記第1の並び替え方法を示す並替情報を、前記第1の情報処理装置に送信する段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記並替情報を受信し、前記ランダムコードに対して、受信した前記並替情報に基づく並び替え処理および前記暗号アルゴリズムに基づく暗号化演算を行い、この暗号化演算の結果と受信した前記並替暗号コードとについて、並び順を無視して、構成要素が対応しているか否かを照合することにより、受信した前記並替暗号コードの正当性を確認する段階と、
    を有する情報処理装置の認証方法。
  3. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、文字もしくは数字を羅列したランダムコードを発生させ、これを前記第2の情報処理装置に送信する段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信し、その構成要素をランダムな第1の並び替え方法で並び替えて並替コードを生成する段階と、
    前記第2の情報処理装置が、前記並替コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素をランダムな第2の並び替え方法で並び替えて並替暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに、前記第2の並び替え方法を示す並替情報を、前記第1の情報処理装置に送信する段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記並替情報を受信し、受信した前記並替暗号コードに対して、受信した前記並替情報に基づく並び替え処理および前記暗号アルゴリズムに基づく復号演算を行い、この復号演算の結果と前記ランダムコードとについて、並び順を無視して、構成要素が対応しているか否かを照合することにより、受信した前記並替暗号コードの正当性を確認する段階と、
    を有する情報処理装置の認証方法。
  4. 請求項1〜3のいずれかに記載の情報処理装置の認証方法において、
    第2の情報処理装置から第1の情報処理装置への並替情報の送信を暗号化した状態で行うことを特徴とする情報処理装置の認証方法。
  5. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記第2の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルおよび前記第2の並び替えテーブルをそれぞれ暗号化し、第1の暗号化テーブルおよび第2の暗号化テーブルを生成するテーブル暗号化段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルを、前記第1の情報処理装置に送信する並替暗号コード送信段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルを受信する並替暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルをそれぞれ復号し、前記第1の並び替えテーブルおよび前記第2の並び替えテーブルを復元するテーブル復号段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素を、前記第1の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記第2の並び替えテーブルに基づいて、前記照合用暗号コードの構成要素を並び替えて照合用並替暗号コードを生成する照合用並替暗号コード生成段階と、
    前記第1の情報処理装置が、前記並替暗号コード受信段階で受信した並替暗号コードと、前記照合用並替暗号コード生成段階で生成された照合用並替暗号コードと、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  6. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記第2の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルおよび前記第2の並び替えテーブルをそれぞれ暗号化し、第1の暗号化テーブルおよび第2の暗号化テーブルを生成するテーブル暗号化段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルを、前記第1の情報処理装置に送信する並替暗号コード送信段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルを受信する並替暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルをそれぞれ復号し、前記第1の並び替えテーブルおよび前記第2の並び替えテーブルを復元するテーブル復号段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素を、前記第1の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード第1生成段階と、
    前記第1の情報処理装置が、前記第2の並び替えテーブルを逆転させたテーブルに基づいて、前記並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード第2生成段階と、
    前記第1の情報処理装置が、前記照合用暗号コード第1生成段階で生成した照合用暗号コードと、前記照合用暗号コード第2生成段階で生成した照合用暗号コードと、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  7. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記第2の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルおよび前記第2の並び替えテーブルをそれぞれ暗号化し、第1の暗号化テーブルおよび第2の暗号化テーブルを生成するテーブル暗号化段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルを、前記第1の情報処理装置に送信する並替暗号コード送信段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルを受信する並替暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルをそれぞれ復号し、前記第1の並び替えテーブルおよび前記第2の並び替えテーブルを復元するテーブル復号段階と、
    前記第1の情報処理装置が、前記第2の並び替えテーブルを逆転させたテーブルに基づいて、前記並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード生成段階と、
    前記第1の情報処理装置が、前記第1の並び替えテーブルを逆転させたテーブルに基づいて、前記照合用並替コードの構成要素を並び替えて照合用ランダムコードを生成する照合用ランダムコード生成段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードと、前記照合用ランダムコード生成段階で生成された照合用ランダムコードと、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  8. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記第2の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルおよび前記第2の並び替えテーブルをそれぞれ暗号化し、第1の暗号化テーブルおよび第2の暗号化テーブルを生成するテーブル暗号化段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルを、前記第1の情報処理装置に送信する並替暗号コード送信段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルを受信する並替暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化テーブルおよび前記第2の暗号化テーブルをそれぞれ復号し、前記第1の並び替えテーブルおよび前記第2の並び替えテーブルを復元するテーブル復号段階と、
    前記第1の情報処理装置が、前記第2の並び替えテーブルを逆転させたテーブルに基づいて、前記並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード第1生成段階と、
    前記第1の情報処理装置が、前記第1の並び替えテーブルに基づいて、前記ランダムコード発生段階で発生させたランダムコードの構成要素を並び替えて照合用並替コードを生成する照合用並替コード第2生成段階と、
    前記第1の情報処理装置が、前記照合用並替コード第1生成段階で生成した照合用並替コードと、前記照合用並替コード第2生成段階で生成した照合用並替コードと、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  9. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記第2の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルを暗号化し、第1の暗号化テーブルを生成するテーブル暗号化段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに前記第1の暗号化テーブルを、前記第1の情報処理装置に送信する並替暗号コード送信段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記第1の暗号化テーブルを受信する並替暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化テーブルを復号し、前記第1の並び替えテーブルを復元するテーブル復号段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素を、前記第1の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記並替暗号コード受信段階で受信した並替暗号コードに含まれている構成要素と、前記照合用暗号コード生成段階で生成された照合用暗号コードに含まれている構成要素と、が対応するか否かを照合し、対応する場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  10. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の並び替えテーブルおよび第2の並び替えテーブルを生成する並替テーブル生成段階と、
    前記第2の情報処理装置が、前記第1の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記第2の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
    前記第2の情報処理装置が、前記第2の並び替えテーブルを暗号化し、第2の暗号化テーブルを生成するテーブル暗号化段階と、
    前記第2の情報処理装置が、前記並替暗号コードとともに前記第2の暗号化テーブルを、前記第1の情報処理装置に送信する並替暗号コード送信段階と、
    前記第1の情報処理装置が、前記並替暗号コードとともに、前記第2の暗号化テーブルを受信する並替暗号コード受信段階と、
    前記第1の情報処理装置が、前記第2の暗号化テーブルを復号し、前記第2の並び替えテーブルを復元するテーブル復号段階と、
    前記第1の情報処理装置が、前記第2の並び替えテーブルを逆転させたテーブルに基づいて、前記並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード生成段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードに含まれている構成要素と、前記照合用並替コード生成段階で生成された照合用並替コードに含まれている構成要素と、が対応するか否かを照合し、対応する場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  11. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して並び替えテーブルを生成する並替テーブル生成段階と、
    前記第2の情報処理装置が、前記並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記暗号コードに対して一方向性関数を作用させて所定の関数値を生成する一方向性関数値生成段階と、
    前記第2の情報処理装置が、前記並び替えテーブルを暗号化し、暗号化テーブルを生成するテーブル暗号化段階と、
    前記第2の情報処理装置が、前記関数値とともに前記暗号化テーブルを、前記第1の情報処理装置に送信する関数値送信段階と、
    前記第1の情報処理装置が、前記関数値とともに、前記暗号化テーブルを受信する関数値受信段階と、
    前記第1の情報処理装置が、前記暗号化テーブルを復号し、前記並び替えテーブルを復元するテーブル復号段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素を、前記並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記照合用暗号コードに対して前記一方向性関数を作用させて照合用関数値を生成する照合用一方向性関数値生成段階と、
    前記第1の情報処理装置が、前記関数値受信段階で受信した関数値と、前記照合用一方向性関数値生成段階で生成された照合用関数値と、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  12. 請求項5〜10のいずれかに記載の情報処理装置の認証方法において、
    第1の並び替えテーブルおよび第2の並び替えテーブルとして、同一のテーブルを用いることを特徴とする情報処理装置の認証方法。
  13. 請求項5〜12のいずれかに記載の情報処理装置の認証方法において、
    第2の情報処理装置が、テーブル暗号化段階において、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて並び替えテーブルの暗号化を行い、
    第1の情報処理装置が、テーブル復号段階において、前記一対の鍵のうちの他方の鍵を用いて並び替えテーブルの復号を行うことを特徴とする情報処理装置の認証方法。
  14. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、数字を羅列したランダムコードを発生させ、これを前記第2の情報処理装置に送信する段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信し、その構成要素となる個々の数字に対して、ランダムに発生した第1の修正数を用いた第1の修正演算を行って修正コードを生成する段階と、
    前記第2の情報処理装置が、前記修正コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、ランダムに発生した第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに、前記第1の修正演算および前記第2の修正演算を示す修正情報を、前記第1の情報処理装置に送信する段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記修正情報を受信し、受信した前記修正暗号コードの正当性を、受信した前記修正情報に基づく修正演算および前記暗号アルゴリズムに基づく暗号化演算もしくは復号演算により確認する段階と、
    を有することを特徴とする情報処理装置の認証方法。
  15. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、数字を羅列したランダムコードを発生させ、これを前記第2の情報処理装置に送信する段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信し、その構成要素となる個々の数字に対して、ランダムに発生した第1の修正数を用いた第1の修正演算を行って修正コードを生成する段階と、
    前記第2の情報処理装置が、前記修正コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、ランダムに発生した第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに、前記第1の修正演算を示す修正情報を、前記第1の情報処理装置に送信する段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記修正情報を受信し、前記ランダムコードに対して、受信した前記修正情報に基づく修正演算および前記暗号アルゴリズムに基づく暗号化演算を行い、この暗号化演算の結果と受信した前記修正暗号コードとについて、前記第2の修正演算の前後の数値として矛盾のない対応関係を有するか否かを判定することにより、受信した前記修正暗号コードの正当性を確認する段階と、
    を有することを特徴とする情報処理装置の認証方法。
  16. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、数字を羅列したランダムコードを発生させ、これを前記第2の情報処理装置に送信する段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信し、その構成要素となる個々の数字に対して、ランダムに発生した第1の修正数を用いた第1の修正演算を行って修正コードを生成する段階と、
    前記第2の情報処理装置が、前記修正コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、ランダムに発生した第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに、前記第2の修正演算を示す修正情報を、前記第1の情報処理装置に送信する段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記修正情報を受信し、受信した前記修正暗号コードに対して、受信した前記修正情報に基づく修正処理および前記暗号アルゴリズムに基づく復号演算を行い、この復号演算の結果と前記ランダムコードとについて、前記第1の修正演算の前後の数値として矛盾のない対応関係を有するか否かを判定することにより、受信した前記修正暗号コードの正当性を確認する段階と、
    を有することを特徴とする情報処理装置の認証方法。
  17. 請求項14〜16のいずれかに記載の情報処理装置の認証方法において、
    第2の情報処理装置から第1の情報処理装置への修正情報の送信を暗号化した状態で行うことを特徴とする情報処理装置の認証方法。
  18. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
    前記第2の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の修正数および前記第2の修正数をそれぞれ暗号化し、第1の暗号化修正数および第2の暗号化修正数を生成する修正数暗号化段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数および前記第2の暗号化修正数を、前記第1の情報処理装置に送信する修正暗号コード送信段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数および前記第2の暗号化修正数を受信する修正暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化修正数および前記第2の暗号化修正数をそれぞれ復号し、前記第1の修正数および前記第2の修正数を復元する修正数復号段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた前記第1の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記照合用暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた前記第2の修正演算を行って照合用修正暗号コードを生成する照合用修正暗号コード生成段階と、
    前記第1の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードと、前記照合用修正暗号コード生成段階で生成された照合用修正暗号コードと、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  19. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
    前記第2の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の修正数および前記第2の修正数をそれぞれ暗号化し、第1の暗号化修正数および第2の暗号化修正数を生成する修正数暗号化段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数および前記第2の暗号化修正数を、前記第1の情報処理装置に送信する修正暗号コード送信段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数および前記第2の暗号化修正数を受信する修正暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化修正数および前記第2の暗号化修正数をそれぞれ復号し、前記第1の修正数および前記第2の修正数を復元する修正数復号段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた前記第1の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード第1生成段階と、
    前記第1の情報処理装置が、前記修正暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた前記第2の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード第2生成段階と、
    前記第1の情報処理装置が、前記照合用暗号コード第1生成段階で生成した照合用暗号コードと、前記照合用暗号コード第2生成段階で生成した照合用暗号コードと、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  20. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
    前記第2の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の修正数および前記第2の修正数をそれぞれ暗号化し、第1の暗号化修正数および第2の暗号化修正数を生成する修正数暗号化段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数および前記第2の暗号化修正数を、前記第1の情報処理装置に送信する修正暗号コード送信段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数および前記第2の暗号化修正数を受信する修正暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化修正数および前記第2の暗号化修正数をそれぞれ復号し、前記第1の修正数および前記第2の修正数を復元する修正数復号段階と、
    前記第1の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた前記第2の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード生成段階と、
    前記第1の情報処理装置が、前記照合用修正コードの構成要素となる個々の数字に対して、前記第1の修正数を用いた前記第1の修正演算とは逆の演算を行って照合用ランダムコードを生成する照合用ランダムコード生成段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードと、前記照合用ランダムコード生成段階で生成された照合用ランダムコードと、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  21. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
    前記第2の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の修正数および前記第2の修正数をそれぞれ暗号化し、第1の暗号化修正数および第2の暗号化修正数を生成する修正数暗号化段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数および前記第2の暗号化修正数を、前記第1の情報処理装置に送信する修正暗号コード送信段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数および前記第2の暗号化修正数を受信する修正暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化修正数および前記第2の暗号化修正数をそれぞれ復号し、前記第1の修正数および前記第2の修正数を復元する修正数復号段階と、
    前記第1の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた前記第2の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード第1生成段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた前記第1の修正演算を行って照合用修正コードを生成する照合用修正コード第2生成段階と、
    前記第1の情報処理装置が、前記照合用修正コード第1生成段階で生成した照合用修正コードと、前記照合用修正コード第2生成段階で生成した照合用修正コードと、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  22. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
    前記第2の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
    前記第2の情報処理装置が、前記第1の修正数を暗号化し、第1の暗号化修正数を生成する修正数暗号化段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数を、前記第1の情報処理装置に送信する修正暗号コード送信段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記第1の暗号化修正数を受信する修正暗号コード受信段階と、
    前記第1の情報処理装置が、前記第1の暗号化修正数を復号し、前記第1の修正数を復元する修正数復号段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた前記第1の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードに含まれている構成要素と、前記照合用暗号コード生成段階で生成された照合用暗号コードに含まれている構成要素と、が前記第2の修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  23. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して第1の修正数および第2の修正数を生成する修正数生成段階と、
    前記第2の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第1の修正数を用いた第1の修正演算を行って修正コードを生成する修正コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた第2の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
    前記第2の情報処理装置が、前記第2の修正数を暗号化し、第2の暗号化修正数を生成する修正数暗号化段階と、
    前記第2の情報処理装置が、前記修正暗号コードとともに前記第2の暗号化修正数を、前記第1の情報処理装置に送信する修正暗号コード送信段階と、
    前記第1の情報処理装置が、前記修正暗号コードとともに、前記第2の暗号化修正数を受信する修正暗号コード受信段階と、
    前記第1の情報処理装置が、前記第2の暗号化修正数を復号し、前記第2の修正数を復元する修正数復号段階と、
    前記第1の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、前記第2の修正数を用いた前記第2の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード生成段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードに含まれている構成要素と、前記照合用修正コード生成段階で生成された照合用修正コードに含まれている構成要素と、が前記第1の修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  24. 第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証する認証方法であって、
    前記第1の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
    前記第1の情報処理装置が、前記ランダムコードを前記第2の情報処理装置に送信するランダムコード送信段階と、
    前記第2の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
    前記第2の情報処理装置が、乱数を利用して修正数を生成する修正数生成段階と、
    前記第2の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記修正数を用いた修正演算を行って修正コードを生成する修正コード生成段階と、
    前記第2の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
    前記第2の情報処理装置が、前記暗号コードに対して一方向性関数を作用させて所定の関数値を生成する一方向性関数値生成段階と、
    前記第2の情報処理装置が、前記修正数を暗号化し、暗号化修正数を生成する修正数暗号化段階と、
    前記第2の情報処理装置が、前記関数値とともに前記暗号化修正数を、前記第1の情報処理装置に送信する関数値送信段階と、
    前記第1の情報処理装置が、前記関数値とともに、前記暗号化修正数を受信する関数値受信段階と、
    前記第1の情報処理装置が、前記暗号化修正数を復号し、前記修正数を復元する修正数復号段階と、
    前記第1の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素となる個々の数字に対して、前記修正数を用いた前記修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
    前記第1の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
    前記第1の情報処理装置が、前記照合用暗号コードに対して前記一方向性関数を作用させて照合用関数値を生成する照合用一方向性関数値生成段階と、
    前記第1の情報処理装置が、前記関数値受信段階で受信した関数値と、前記照合用一方向性関数値生成段階で生成された照合用関数値と、が一致するか否かを照合し、一致した場合に、前記第2の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
    を有することを特徴とする情報処理装置の認証方法。
  25. 請求項18〜23のいずれかに記載の情報処理装置の認証方法において、
    第1の修正数および第2の修正数として、同一の修正数を用いることを特徴とする情報処理装置の認証方法。
  26. 請求項18〜25のいずれかに記載の情報処理装置の認証方法において、
    第2の情報処理装置が、修正数暗号化段階において、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて修正数の暗号化を行い、
    第1の情報処理装置が、修正数復号段階において、前記一対の鍵のうちの他方の鍵を用いて修正数の復号を行うことを特徴とする情報処理装置の認証方法。
  27. 請求項18〜26のいずれかに記載の情報処理装置の認証方法において、
    修正数として、乱数を利用して生成した正もしくは負の数を用い、修正演算として、個々の数字に対して前記修正数を加算もしくは減算する演算を行うことを特徴とする情報処理装置の認証方法。
  28. 請求項27に記載の情報処理装置の認証方法において、
    ランダムコードの構成要素となる個々の数字および暗号コードの構成要素となる個々の数字が、N〜M(但し、N<M)の範囲内の数値となるようにし、修正演算を行う際に、演算後の数値VがV<Nとなる場合には(M−N+1)を加算する補正を行い、演算後の数値VがV>Mとなる場合には(M−N+1)を減算する補正を行い、修正演算後の数値がN〜Mの範囲内の数値となるようにすることを特徴とする情報処理装置の認証方法。
  29. 請求項18〜28のいずれかに記載の情報処理装置の認証方法において、
    複数n個の数字を構成要素として含むコードについて、これらn個の構成要素のそれぞれについて別個に修正数を生成し、n個の修正数の数列を用いて修正演算を行うことを特徴とする情報処理装置の認証方法。
  30. 請求項14〜29のいずれかに記載の情報処理装置の認証方法において、
    第1の情報処理装置および第2の情報処理装置として、それぞれ特定の数字に対応づけられた文字を取り扱う装置を用い、ランダムコードもしくは暗号コードとして文字を含むコードを発生させ、個々の文字をそれぞれ対応する数字として取り扱う処理を行うことを特徴とする情報処理装置の認証方法。
  31. 請求項1〜30のいずれかに記載の情報処理装置の認証方法において、
    第1の情報処理装置が行う各処理段階と、第2の情報処理装置が行う各処理段階と、を入れ替えた処理を更に行うことにより、第1の情報処理装置が第2の情報処理装置を正当性が確認された装置として認証するとともに、第2の情報処理装置が第1の情報処理装置を正当性が確認された装置として認証する処理を行うことを特徴とする情報処理装置の認証方法。
  32. 請求項1〜30のいずれかに記載の情報処理装置の認証方法における第1の情報処理装置または第2の情報処理装置が行う各段階を実行する機能をもった情報処理装置。
  33. 請求項1〜30のいずれかに記載の情報処理装置の認証方法における第1の情報処理装置または第2の情報処理装置が行う各段階をコンピュータに実行させるプログラム。
JP2014032583A 2014-02-24 2014-02-24 情報処理装置の認証方法 Active JP6264935B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014032583A JP6264935B2 (ja) 2014-02-24 2014-02-24 情報処理装置の認証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014032583A JP6264935B2 (ja) 2014-02-24 2014-02-24 情報処理装置の認証方法

Publications (2)

Publication Number Publication Date
JP2015159394A JP2015159394A (ja) 2015-09-03
JP6264935B2 true JP6264935B2 (ja) 2018-01-24

Family

ID=54183104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014032583A Active JP6264935B2 (ja) 2014-02-24 2014-02-24 情報処理装置の認証方法

Country Status (1)

Country Link
JP (1) JP6264935B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
WO2001031422A2 (en) * 1999-10-25 2001-05-03 Cyphermanx Consultants Limited Method for protection against analysis of unintended side-channel signals
JP3967252B2 (ja) * 2002-11-06 2007-08-29 三菱電機株式会社 暗号通信システム及び暗号通信装置
JP4611642B2 (ja) * 2004-01-16 2011-01-12 三菱電機株式会社 認証システム
JP5548218B2 (ja) * 2009-03-06 2014-07-16 イントリンシツク・イー・デー・ベー・ベー 物理的システムに依存する暗号鍵を確立するためのシステム
JP5206992B2 (ja) * 2009-12-25 2013-06-12 日本電気株式会社 認証システム、認証装置、端末装置、認証方法、及びプログラム
US20120284506A1 (en) * 2010-04-30 2012-11-08 T-Central, Inc. Methods and apparatus for preventing crimeware attacks

Also Published As

Publication number Publication date
JP2015159394A (ja) 2015-09-03

Similar Documents

Publication Publication Date Title
US9819657B2 (en) Protection of memory interface
US9497021B2 (en) Device for generating a message authentication code for authenticating a message
CN110663215B (zh) 在白盒场景中的椭圆曲线点乘设备和方法
CN103684772B (zh) 动态缺失加密***
RU2696334C1 (ru) Устройство и способ вычисления блочного шифра
TWI688250B (zh) 資料加解密的方法及裝置
JP2014017556A5 (ja)
US9847879B2 (en) Protection against passive sniffing
CN101753308B (zh) 一种完整性认证方法
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
CN111066077B (zh) 加密装置、加密方法、解密装置以及解密方法
Reyad et al. Key-based enhancement of data encryption standard for text security
CN105450419A (zh) 提高生物识别安全性的方法、装置和***
CN114844630A (zh) 一种基于随机加密的物联网终端认证方法及***
CN110889695A (zh) 基于安全多方计算保存和恢复隐私数据的方法和装置
JP6264935B2 (ja) 情報処理装置の認証方法
US10200348B2 (en) Method to detect an OTA (over the air) standard message affected by an error
CN100544248C (zh) 密钥数据收发方法
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
CN103634113A (zh) 一种带用户/设备身份认证的加解密方法及装置
Shenets et al. X-PACE: modified password authenticated connection establishment protocol
JP5466032B2 (ja) 認証システム、認証方法およびプログラム
Samoilenko et al. HTTP data ciphering algorithm
Saini et al. Random shift and OTP based encryption and decryption
Lahraoui et al. Securing Data Exchange with Elliptic Curve Cryptography: A Novel Hash-Based Method for Message Mapping and Integrity Assurance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171211

R150 Certificate of patent or registration of utility model

Ref document number: 6264935

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150