(57)【要約】【課題】通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐え得る認証を行う。【解決手段】情報処理装置１００が情報処理装置２００の正当性を認証するために、ランダムコードＲ「例：１２３４５」を発生して装置２００に送信する。装置２００は、受信したランダムコードＲを方法Ｘ１で並べ替えて並替コードＲ′「例：３５２１４」を生成し、これを所定のアルゴリズムＡで暗号化して暗号コードＱ「例：ＣＥＢＡＤ」を生成する。更に、これを方法Ｘ２で並べ替えて並替暗号コードＱ′「例：ＢＥＤＡＣ」を生成し、方法Ｘ１，Ｘ２の情報とともに装置１００に返信する。装置１００は、受信した方法Ｘ１，Ｘ２の情報に基づいて、ランダムコードＲに対して同様の処理を行い、得られた照合用並替暗号コードＱ′と受信した並替暗号コードＱ′とを照合し、両者が一致した場合に、装置２００を正当な装置と判定する。【選択図】図５
2015159394.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、文字もしくは数字を羅列したランダムコードを発生させ、これを前記第２の情報処理装置に送信する段階と、
前記第２の情報処理装置が、前記ランダムコードを受信し、その構成要素をランダムな第１の並び替え方法で並び替えて並替コードを生成する段階と、
前記第２の情報処理装置が、前記並替コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
前記第２の情報処理装置が、前記暗号コードの構成要素をランダムな第２の並び替え方法で並び替えて並替暗号コードを生成する段階と、
前記第２の情報処理装置が、前記並替暗号コードとともに、前記第１の並び替え方法および前記第２の並び替え方法のいずれか一方もしくは双方を示す並替情報を、前記第１の情報処理装置に送信する段階と、
前記第１の情報処理装置が、前記並替暗号コードとともに、前記並替情報を受信し、受信した前記並替暗号コードの正当性を、受信した前記並替情報に基づく並び替え処理および前記暗号アルゴリズムに基づく暗号化演算もしくは復号演算により確認する段階と、
を有する情報処理装置の認証方法。
【請求項２】
請求項１に記載の情報処理装置の認証方法において、
第２の情報処理装置から第１の情報処理装置への並替情報の送信を暗号化した状態で行うことを特徴とする情報処理装置の認証方法。
【請求項３】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記第２の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルおよび前記第２の並び替えテーブルをそれぞれ暗号化し、第１の暗号化テーブルおよび第２の暗号化テーブルを生成するテーブル暗号化段階と、
前記第２の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルを、前記第１の情報処理装置に送信する並替暗号コード送信段階と、
前記第１の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルを受信する並替暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルをそれぞれ復号し、前記第１の並び替えテーブルおよび前記第２の並び替えテーブルを復元するテーブル復号段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素を、前記第１の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記第２の並び替えテーブルに基づいて、前記照合用暗号コードの構成要素を並び替えて照合用並替暗号コードを生成する照合用並替暗号コード生成段階と、
前記第１の情報処理装置が、前記並替暗号コード受信段階で受信した並替暗号コードと、前記照合用並替暗号コード生成段階で生成された照合用並替暗号コードと、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項４】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記第２の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルおよび前記第２の並び替えテーブルをそれぞれ暗号化し、第１の暗号化テーブルおよび第２の暗号化テーブルを生成するテーブル暗号化段階と、
前記第２の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルを、前記第１の情報処理装置に送信する並替暗号コード送信段階と、
前記第１の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルを受信する並替暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルをそれぞれ復号し、前記第１の並び替えテーブルおよび前記第２の並び替えテーブルを復元するテーブル復号段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素を、前記第１の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード第１生成段階と、
前記第１の情報処理装置が、前記第２の並び替えテーブルを逆転させたテーブルに基づいて、前記並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード第２生成段階と、
前記第１の情報処理装置が、前記照合用暗号コード第１生成段階で生成した照合用暗号コードと、前記照合用暗号コード第２生成段階で生成した照合用暗号コードと、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項５】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記第２の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルおよび前記第２の並び替えテーブルをそれぞれ暗号化し、第１の暗号化テーブルおよび第２の暗号化テーブルを生成するテーブル暗号化段階と、
前記第２の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルを、前記第１の情報処理装置に送信する並替暗号コード送信段階と、
前記第１の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルを受信する並替暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルをそれぞれ復号し、前記第１の並び替えテーブルおよび前記第２の並び替えテーブルを復元するテーブル復号段階と、
前記第１の情報処理装置が、前記第２の並び替えテーブルを逆転させたテーブルに基づいて、前記並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード生成段階と、
前記第１の情報処理装置が、前記第１の並び替えテーブルを逆転させたテーブルに基づいて、前記照合用並替コードの構成要素を並び替えて照合用ランダムコードを生成する照合用ランダムコード生成段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードと、前記照合用ランダムコード生成段階で生成された照合用ランダムコードと、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項６】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記第２の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルおよび前記第２の並び替えテーブルをそれぞれ暗号化し、第１の暗号化テーブルおよび第２の暗号化テーブルを生成するテーブル暗号化段階と、
前記第２の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルを、前記第１の情報処理装置に送信する並替暗号コード送信段階と、
前記第１の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルを受信する並替暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化テーブルおよび前記第２の暗号化テーブルをそれぞれ復号し、前記第１の並び替えテーブルおよび前記第２の並び替えテーブルを復元するテーブル復号段階と、
前記第１の情報処理装置が、前記第２の並び替えテーブルを逆転させたテーブルに基づいて、前記並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード第１生成段階と、
前記第１の情報処理装置が、前記第１の並び替えテーブルに基づいて、前記ランダムコード発生段階で発生させたランダムコードの構成要素を並び替えて照合用並替コードを生成する照合用並替コード第２生成段階と、
前記第１の情報処理装置が、前記照合用並替コード第１生成段階で生成した照合用並替コードと、前記照合用並替コード第２生成段階で生成した照合用並替コードと、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項７】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記第２の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルを暗号化し、第１の暗号化テーブルを生成するテーブル暗号化段階と、
前記第２の情報処理装置が、前記並替暗号コードとともに前記第１の暗号化テーブルを、前記第１の情報処理装置に送信する並替暗号コード送信段階と、
前記第１の情報処理装置が、前記並替暗号コードとともに、前記第１の暗号化テーブルを受信する並替暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化テーブルを復号し、前記第１の並び替えテーブルを復元するテーブル復号段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素を、前記第１の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記並替暗号コード受信段階で受信した並替暗号コードに含まれている構成要素と、前記照合用暗号コード生成段階で生成された照合用暗号コードに含まれている構成要素と、が対応するか否かを照合し、対応する場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項８】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
前記第２の情報処理装置が、前記第１の並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記第２の並び替えテーブルに基づいて、前記暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
前記第２の情報処理装置が、前記第２の並び替えテーブルを暗号化し、第２の暗号化テーブルを生成するテーブル暗号化段階と、
前記第２の情報処理装置が、前記並替暗号コードとともに前記第２の暗号化テーブルを、前記第１の情報処理装置に送信する並替暗号コード送信段階と、
前記第１の情報処理装置が、前記並替暗号コードとともに、前記第２の暗号化テーブルを受信する並替暗号コード受信段階と、
前記第１の情報処理装置が、前記第２の暗号化テーブルを復号し、前記第２の並び替えテーブルを復元するテーブル復号段階と、
前記第１の情報処理装置が、前記第２の並び替えテーブルを逆転させたテーブルに基づいて、前記並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード生成段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードに含まれている構成要素と、前記照合用並替コード生成段階で生成された照合用並替コードに含まれている構成要素と、が対応するか否かを照合し、対応する場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項９】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して並び替えテーブルを生成する並替テーブル生成段階と、
前記第２の情報処理装置が、前記並び替えテーブルに基づいて、前記ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記暗号コードに対して一方向性関数を作用させて所定の関数値を生成する一方向性関数値生成段階と、
前記第２の情報処理装置が、前記並び替えテーブルを暗号化し、暗号化テーブルを生成するテーブル暗号化段階と、
前記第２の情報処理装置が、前記関数値とともに前記暗号化テーブルを、前記第１の情報処理装置に送信する関数値送信段階と、
前記第１の情報処理装置が、前記関数値とともに、前記暗号化テーブルを受信する関数値受信段階と、
前記第１の情報処理装置が、前記暗号化テーブルを復号し、前記並び替えテーブルを復元するテーブル復号段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素を、前記並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記照合用暗号コードに対して前記一方向性関数を作用させて照合用関数値を生成する照合用一方向性関数値生成段階と、
前記第１の情報処理装置が、前記関数値受信段階で受信した関数値と、前記照合用一方向性関数値生成段階で生成された照合用関数値と、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項１０】
請求項３〜８のいずれかに記載の情報処理装置の認証方法において、
第１の並び替えテーブルおよび第２の並び替えテーブルとして、同一のテーブルを用いることを特徴とする情報処理装置の認証方法。
【請求項１１】
請求項３〜１０のいずれかに記載の情報処理装置の認証方法において、
第２の情報処理装置が、テーブル暗号化段階において、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて並び替えテーブルの暗号化を行い、
第１の情報処理装置が、テーブル復号段階において、前記一対の鍵のうちの他方の鍵を用いて並び替えテーブルの復号を行うことを特徴とする情報処理装置の認証方法。
【請求項１２】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、数字を羅列したランダムコードを発生させ、これを前記第２の情報処理装置に送信する段階と、
前記第２の情報処理装置が、前記ランダムコードを受信し、その構成要素となる個々の数字に対して、ランダムに発生した第１の修正数を用いた第１の修正演算を行って修正コードを生成する段階と、
前記第２の情報処理装置が、前記修正コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
前記第２の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、ランダムに発生した第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する段階と、
前記第２の情報処理装置が、前記修正暗号コードとともに、前記第１の修正演算および前記第２の修正演算のいずれか一方もしくは双方を示す修正情報を、前記第１の情報処理装置に送信する段階と、
前記第１の情報処理装置が、前記修正暗号コードとともに、前記修正情報を受信し、受信した前記修正暗号コードの正当性を、受信した前記修正情報に基づく修正演算および前記暗号アルゴリズムに基づく暗号化演算もしくは復号演算により確認する段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項１３】
請求項１２に記載の情報処理装置の認証方法において、
第２の情報処理装置から第１の情報処理装置への修正情報の送信を暗号化した状態で行うことを特徴とする情報処理装置の認証方法。
【請求項１４】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
前記第２の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の修正数および前記第２の修正数をそれぞれ暗号化し、第１の暗号化修正数および第２の暗号化修正数を生成する修正数暗号化段階と、
前記第２の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数および前記第２の暗号化修正数を、前記第１の情報処理装置に送信する修正暗号コード送信段階と、
前記第１の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数および前記第２の暗号化修正数を受信する修正暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化修正数および前記第２の暗号化修正数をそれぞれ復号し、前記第１の修正数および前記第２の修正数を復元する修正数復号段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた前記第１の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記照合用暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた前記第２の修正演算を行って照合用修正暗号コードを生成する照合用修正暗号コード生成段階と、
前記第１の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードと、前記照合用修正暗号コード生成段階で生成された照合用修正暗号コードと、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項１５】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
前記第２の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の修正数および前記第２の修正数をそれぞれ暗号化し、第１の暗号化修正数および第２の暗号化修正数を生成する修正数暗号化段階と、
前記第２の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数および前記第２の暗号化修正数を、前記第１の情報処理装置に送信する修正暗号コード送信段階と、
前記第１の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数および前記第２の暗号化修正数を受信する修正暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化修正数および前記第２の暗号化修正数をそれぞれ復号し、前記第１の修正数および前記第２の修正数を復元する修正数復号段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた前記第１の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード第１生成段階と、
前記第１の情報処理装置が、前記修正暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた前記第２の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード第２生成段階と、
前記第１の情報処理装置が、前記照合用暗号コード第１生成段階で生成した照合用暗号コードと、前記照合用暗号コード第２生成段階で生成した照合用暗号コードと、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項１６】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
前記第２の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の修正数および前記第２の修正数をそれぞれ暗号化し、第１の暗号化修正数および第２の暗号化修正数を生成する修正数暗号化段階と、
前記第２の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数および前記第２の暗号化修正数を、前記第１の情報処理装置に送信する修正暗号コード送信段階と、
前記第１の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数および前記第２の暗号化修正数を受信する修正暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化修正数および前記第２の暗号化修正数をそれぞれ復号し、前記第１の修正数および前記第２の修正数を復元する修正数復号段階と、
前記第１の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた前記第２の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード生成段階と、
前記第１の情報処理装置が、前記照合用修正コードの構成要素となる個々の数字に対して、前記第１の修正数を用いた前記第１の修正演算とは逆の演算を行って照合用ランダムコードを生成する照合用ランダムコード生成段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードと、前記照合用ランダムコード生成段階で生成された照合用ランダムコードと、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項１７】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
前記第２の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の修正数および前記第２の修正数をそれぞれ暗号化し、第１の暗号化修正数および第２の暗号化修正数を生成する修正数暗号化段階と、
前記第２の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数および前記第２の暗号化修正数を、前記第１の情報処理装置に送信する修正暗号コード送信段階と、
前記第１の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数および前記第２の暗号化修正数を受信する修正暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化修正数および前記第２の暗号化修正数をそれぞれ復号し、前記第１の修正数および前記第２の修正数を復元する修正数復号段階と、
前記第１の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた前記第２の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード第１生成段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた前記第１の修正演算を行って照合用修正コードを生成する照合用修正コード第２生成段階と、
前記第１の情報処理装置が、前記照合用修正コード第１生成段階で生成した照合用修正コードと、前記照合用修正コード第２生成段階で生成した照合用修正コードと、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項１８】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
前記第２の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
前記第２の情報処理装置が、前記第１の修正数を暗号化し、第１の暗号化修正数を生成する修正数暗号化段階と、
前記第２の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数を、前記第１の情報処理装置に送信する修正暗号コード送信段階と、
前記第１の情報処理装置が、前記修正暗号コードとともに、前記第１の暗号化修正数を受信する修正暗号コード受信段階と、
前記第１の情報処理装置が、前記第１の暗号化修正数を復号し、前記第１の修正数を復元する修正数復号段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた前記第１の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードに含まれている構成要素と、前記照合用暗号コード生成段階で生成された照合用暗号コードに含まれている構成要素と、が前記第２の修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項１９】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
前記第２の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
前記第２の情報処理装置が、前記第２の修正数を暗号化し、第２の暗号化修正数を生成する修正数暗号化段階と、
前記第２の情報処理装置が、前記修正暗号コードとともに前記第２の暗号化修正数を、前記第１の情報処理装置に送信する修正暗号コード送信段階と、
前記第１の情報処理装置が、前記修正暗号コードとともに、前記第２の暗号化修正数を受信する修正暗号コード受信段階と、
前記第１の情報処理装置が、前記第２の暗号化修正数を復号し、前記第２の修正数を復元する修正数復号段階と、
前記第１の情報処理装置が、前記修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、前記第２の修正数を用いた前記第２の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく復号演算によって、前記照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード生成段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させたランダムコードに含まれている構成要素と、前記照合用修正コード生成段階で生成された照合用修正コードに含まれている構成要素と、が前記第１の修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項２０】
第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する認証方法であって、
前記第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
前記第１の情報処理装置が、前記ランダムコードを前記第２の情報処理装置に送信するランダムコード送信段階と、
前記第２の情報処理装置が、前記ランダムコードを受信するランダムコード受信段階と、
前記第２の情報処理装置が、乱数を利用して修正数を生成する修正数生成段階と、
前記第２の情報処理装置が、受信した前記ランダムコードの構成要素となる個々の数字に対して、前記修正数を用いた修正演算を行って修正コードを生成する修正コード生成段階と、
前記第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、前記修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
前記第２の情報処理装置が、前記暗号コードに対して一方向性関数を作用させて所定の関数値を生成する一方向性関数値生成段階と、
前記第２の情報処理装置が、前記修正数を暗号化し、暗号化修正数を生成する修正数暗号化段階と、
前記第２の情報処理装置が、前記関数値とともに前記暗号化修正数を、前記第１の情報処理装置に送信する関数値送信段階と、
前記第１の情報処理装置が、前記関数値とともに、前記暗号化修正数を受信する関数値受信段階と、
前記第１の情報処理装置が、前記暗号化修正数を復号し、前記修正数を復元する修正数復号段階と、
前記第１の情報処理装置が、前記ランダムコード発生段階で発生させた前記ランダムコードの構成要素となる個々の数字に対して、前記修正数を用いた前記修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
前記第１の情報処理装置が、前記暗号アルゴリズムに基づく暗号化演算によって、前記照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
前記第１の情報処理装置が、前記照合用暗号コードに対して前記一方向性関数を作用させて照合用関数値を生成する照合用一方向性関数値生成段階と、
前記第１の情報処理装置が、前記関数値受信段階で受信した関数値と、前記照合用一方向性関数値生成段階で生成された照合用関数値と、が一致するか否かを照合し、一致した場合に、前記第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を有することを特徴とする情報処理装置の認証方法。
【請求項２１】
請求項１４〜１９のいずれかに記載の情報処理装置の認証方法において、
第１の修正数および第２の修正数として、同一の修正数を用いることを特徴とする情報処理装置の認証方法。
【請求項２２】
請求項１４〜２１のいずれかに記載の情報処理装置の認証方法において、
第２の情報処理装置が、修正数暗号化段階において、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて修正数の暗号化を行い、
第１の情報処理装置が、修正数復号段階において、前記一対の鍵のうちの他方の鍵を用いて修正数の復号を行うことを特徴とする情報処理装置の認証方法。
【請求項２３】
請求項１４〜２２のいずれかに記載の情報処理装置の認証方法において、
修正数として、乱数を利用して生成した正もしくは負の数を用い、修正演算として、個々の数字に対して前記修正数を加算もしくは減算する演算を行うことを特徴とする情報処理装置の認証方法。
【請求項２４】
請求項２３に記載の情報処理装置の認証方法において、
ランダムコードの構成要素となる個々の数字および暗号コードの構成要素となる個々の数字が、Ｎ〜Ｍ（但し、Ｎ＜Ｍ）の範囲内の数値となるようにし、修正演算を行う際に、演算後の数値ＶがＶ＜Ｎとなる場合には（Ｍ−Ｎ＋１）を加算する補正を行い、演算後の数値ＶがＶ＞Ｍとなる場合には（Ｍ−Ｎ＋１）を減算する補正を行い、修正演算後の数値がＮ〜Ｍの範囲内の数値となるようにすることを特徴とする情報処理装置の認証方法。
【請求項２５】
請求項１４〜２４のいずれかに記載の情報処理装置の認証方法において、
複数ｎ個の数字を構成要素として含むコードについて、これらｎ個の構成要素のそれぞれについて別個に修正数を生成し、ｎ個の修正数の数列を用いて修正演算を行うことを特徴とする情報処理装置の認証方法。
【請求項２６】
請求項１２〜２５のいずれかに記載の情報処理装置の認証方法において、
第１の情報処理装置および第２の情報処理装置として、それぞれ特定の数字に対応づけられた文字を取り扱う装置を用い、ランダムコードもしくは暗号コードとして文字を含むコードを発生させ、個々の文字をそれぞれ対応する数字として取り扱う処理を行うことを特徴とする情報処理装置の認証方法。
【請求項２７】
請求項１〜２６のいずれかに記載の情報処理装置の認証方法において、
第１の情報処理装置が行う各処理段階と、第２の情報処理装置が行う各処理段階と、を入れ替えた処理を更に行うことにより、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証するとともに、第２の情報処理装置が第１の情報処理装置を正当性が確認された装置として認証する処理を行うことを特徴とする情報処理装置の認証方法。
【請求項２８】
請求項１〜２６のいずれかに記載の情報処理装置の認証方法における第１の情報処理装置または第２の情報処理装置が行う各段階を実行する機能をもった情報処理装置。
【請求項２９】
請求項１〜２６のいずれかに記載の情報処理装置の認証方法における第１の情報処理装置または第２の情報処理装置が行う各段階をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の認証方法に関し、特に、ランダムコードの暗号化を伴う処理により、一方の情報処理装置が他方の情報処理装置を正当な装置として認証する技術に関する。
【背景技術】
【０００２】
一対の情報処理装置が相互に通信を開始する場合、事前に相手方装置の正当性を確認する認証処理が不可欠である。このような認証処理として、現在最も普及している方法は、ランダムコードの暗号化を伴う処理を行うチャレンジレスポンス方式の認証方法である。
【０００３】
この認証方法によって、第１の情報処理装置が第２の情報処理装置の正当性を確認する場合、まず、第１の情報処理装置が「チャレンジ」と呼ばれるランダムコードを発生させ、これを第２の情報処理装置に送信する。第２の情報処理装置は、この「チャレンジ」を所定の暗号アルゴリズム（通常、特定の暗号鍵を用いた数学的な演算アルゴリズムが用いられる。当該演算アルゴリズム自体は必ずしも秘密である必要はないが、暗号鍵は秘密にされる。）を用いて暗号化し、「レスポンス」と呼ばれる認証トークンの形で第１の情報処理装置に返信する。一方、第１の情報処理装置においても、「チャレンジ」を同一の暗号アルゴリズムを用いて暗号化し、その結果が、返信されてきた「レスポンス」に一致するか否かを判定する。両者が一致すれば、第２の情報処理装置を正当な装置として認証することができる。たとえば、下記の特許文献１および特許文献２には、このようなチャレンジレスポンス方式の認証方法が開示されている。
【０００４】
上記認証方法を採れば、暗号鍵の秘匿性が維持されている限り、不正な装置を正規の装置になりすませる不正な認証行為を防ぐことができる。一般に、情報処理装置間の通信経路が盗聴され、両者間でやりとりされる「チャレンジ」および「レスポンス」が傍受されたとしても、暗号アルゴリズムが数学的に強固なものであれば、それだけで暗号アルゴリズムが露見する可能性は低い。実際、現在利用されている暗号アルゴリズムを、情報処理装置間の通信傍受で得た「チャレンジ」および「レスポンス」のみから解析することは極めて困難である。
【０００５】
しかしながら、近年は、サイドチャネル解析と呼ばれている暗号解析技術を用いた攻撃（サイドチャネル攻撃）が問題になってきている。サイドチャネル解析は、暗号化処理を実行中の情報処理装置についての消費電力、演算処理時間、発生する電磁波などをモニタして暗号アルゴリズムを推定する解析方法である。このサイドチャネル解析の手法を、通信傍受で得た「チャレンジ」および「レスポンス」の情報に組み合わせると暗号アルゴリズムの推定が容易になるため、たとえ数学的に強固な暗号アルゴリズムを採用していても、不正な認証行為が行われる可能性が危惧されている。
【０００６】
そこで、たとえば、下記の特許文献３には、鍵処理のための処理時間を工夫して中継端末に対する攻撃を防ぐ手法が開示されている。また、サイドチャネル攻撃への対応策として、特許文献４には、物理的現象に基づいて暗号鍵を生成する手法が開示されており、特許文献５には、暗号鍵の再利用を制限しながら、内部を秘密状態に保つ機能をもった装置で暗号化を行う手法が開示されている。更に、特許文献６には、回路レベルでサイドチャネル攻撃に対抗する技術が開示されており、特許文献７には、複数の暗号鍵をランダムに採用することによりサイドチャネル攻撃に対抗する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】ＷＯ２００５／０５７４４７号公報
【特許文献２】特開２０００−１８３８６９号公報
【特許文献３】特開２００６−１９７４５８号公報
【特許文献４】特表２０１２−５１９９８７号公報
【特許文献５】特表２０１３−５１３３１２号公報
【特許文献６】ＷＯ２０１２／０１４２９１号公報
【特許文献７】ＷＯ２０１２／１３１９２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、認証機能を備えた情報処理装置へのサイドチャネル攻撃に対する対策として、様々な方法が提案されている。しかしながら、従来提案されている対抗策は、ハードウエア的に専用の設備を設ける必要があったり、ソフトウエア的に複雑な処理を行う必要があったりするため、構成が複雑になり、必ずしも効率的な対抗策にはなっていない。そのため、導入するにはそれなりのコストがかかり、製品価格を高騰させる要因になるという問題がある。
【０００９】
そこで本発明は、通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐えることができ、かつ、効率的な処理が可能な情報処理装置の認証方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
(1)   第１の実施形態に係る基本発明（図５参照）
本発明の第１の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、文字もしくは数字を羅列したランダムコードを発生させ、これを第２の情報処理装置に送信する段階と、
第２の情報処理装置が、ランダムコードを受信し、その構成要素をランダムな第１の並び替え方法で並び替えて並替コードを生成する段階と、
第２の情報処理装置が、並替コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
第２の情報処理装置が、暗号コードの構成要素をランダムな第２の並び替え方法で並び替えて並替暗号コードを生成する段階と、
第２の情報処理装置が、並替暗号コードとともに、第１の並び替え方法および第２の並び替え方法のいずれか一方もしくは双方を示す並替情報を、第１の情報処理装置に送信する段階と、
第１の情報処理装置が、並替暗号コードとともに、並替情報を受信し、受信した並替暗号コードの正当性を、受信した並替情報に基づく並び替え処理および上記暗号アルゴリズムに基づく暗号化演算もしくは復号演算により確認する段階と、
を行うようにしたものである。
【００１１】
(2)   第１の実施形態に係る基本発明のバリエーション（並替情報の暗号化）
本発明の第２の態様は、上述した第１の態様に係る情報処理装置の認証方法において、
第２の情報処理装置から第１の情報処理装置への並替情報の送信を暗号化した状態で行うようにしたものである。
【００１２】
(3)   実施例Ａに係る発明（図８参照）
本発明の第３の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
第２の情報処理装置が、第１の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、第２の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第２の情報処理装置が、第１の並び替えテーブルおよび第２の並び替えテーブルをそれぞれ暗号化し、第１の暗号化テーブルおよび第２の暗号化テーブルを生成するテーブル暗号化段階と、
第２の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルおよび第２の暗号化テーブルを、第１の情報処理装置に送信する並替暗号コード送信段階と、
第１の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルおよび第２の暗号化テーブルを受信する並替暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化テーブルおよび第２の暗号化テーブルをそれぞれ復号し、第１の並び替えテーブルおよび第２の並び替えテーブルを復元するテーブル復号段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素を、第１の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、第２の並び替えテーブルに基づいて、照合用暗号コードの構成要素を並び替えて照合用並替暗号コードを生成する照合用並替暗号コード生成段階と、
第１の情報処理装置が、並替暗号コード受信段階で受信した並替暗号コードと、照合用並替暗号コード生成段階で生成された照合用並替暗号コードと、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００１３】
(4)   実施例Ｂに係る発明（図９参照）
本発明の第４の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
第２の情報処理装置が、第１の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、第２の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第２の情報処理装置が、第１の並び替えテーブルおよび第２の並び替えテーブルをそれぞれ暗号化し、第１の暗号化テーブルおよび第２の暗号化テーブルを生成するテーブル暗号化段階と、
第２の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルおよび第２の暗号化テーブルを、第１の情報処理装置に送信する並替暗号コード送信段階と、
第１の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルおよび第２の暗号化テーブルを受信する並替暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化テーブルおよび第２の暗号化テーブルをそれぞれ復号し、第１の並び替えテーブルおよび第２の並び替えテーブルを復元するテーブル復号段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素を、第１の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード第１生成段階と、
第１の情報処理装置が、第２の並び替えテーブルを逆転させたテーブルに基づいて、並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード第２生成段階と、
第１の情報処理装置が、照合用暗号コード第１生成段階で生成した照合用暗号コードと、照合用暗号コード第２生成段階で生成した照合用暗号コードと、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００１４】
(5)   実施例Ｃに係る発明（図１０参照）
本発明の第５の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
第２の情報処理装置が、第１の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、第２の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第２の情報処理装置が、第１の並び替えテーブルおよび第２の並び替えテーブルをそれぞれ暗号化し、第１の暗号化テーブルおよび第２の暗号化テーブルを生成するテーブル暗号化段階と、
第２の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルおよび第２の暗号化テーブルを、第１の情報処理装置に送信する並替暗号コード送信段階と、
第１の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルおよび第２の暗号化テーブルを受信する並替暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化テーブルおよび第２の暗号化テーブルをそれぞれ復号し、第１の並び替えテーブルおよび第２の並び替えテーブルを復元するテーブル復号段階と、
第１の情報処理装置が、第２の並び替えテーブルを逆転させたテーブルに基づいて、並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード生成段階と、
第１の情報処理装置が、第１の並び替えテーブルを逆転させたテーブルに基づいて、照合用並替コードの構成要素を並び替えて照合用ランダムコードを生成する照合用ランダムコード生成段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードと、照合用ランダムコード生成段階で生成された照合用ランダムコードと、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００１５】
(6)   実施例Ｄに係る発明（図１１参照）
本発明の第６の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
第２の情報処理装置が、第１の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、第２の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第２の情報処理装置が、第１の並び替えテーブルおよび第２の並び替えテーブルをそれぞれ暗号化し、第１の暗号化テーブルおよび第２の暗号化テーブルを生成するテーブル暗号化段階と、
第２の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルおよび第２の暗号化テーブルを、第１の情報処理装置に送信する並替暗号コード送信段階と、
第１の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルおよび第２の暗号化テーブルを受信する並替暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化テーブルおよび第２の暗号化テーブルをそれぞれ復号し、第１の並び替えテーブルおよび第２の並び替えテーブルを復元するテーブル復号段階と、
第１の情報処理装置が、第２の並び替えテーブルを逆転させたテーブルに基づいて、並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード第１生成段階と、
第１の情報処理装置が、第１の並び替えテーブルに基づいて、ランダムコード発生段階で発生させたランダムコードの構成要素を並び替えて照合用並替コードを生成する照合用並替コード第２生成段階と、
第１の情報処理装置が、照合用並替コード第１生成段階で生成した照合用並替コードと、照合用並替コード第２生成段階で生成した照合用並替コードと、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００１６】
(7)   実施例Ｅに係る発明（図１２参照）
本発明の第７の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
第２の情報処理装置が、第１の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、第２の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第２の情報処理装置が、第１の並び替えテーブルを暗号化し、第１の暗号化テーブルを生成するテーブル暗号化段階と、
第２の情報処理装置が、並替暗号コードとともに第１の暗号化テーブルを、第１の情報処理装置に送信する並替暗号コード送信段階と、
第１の情報処理装置が、並替暗号コードとともに、第１の暗号化テーブルを受信する並替暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化テーブルを復号し、第１の並び替えテーブルを復元するテーブル復号段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素を、第１の並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、並替暗号コード受信段階で受信した並替暗号コードに含まれている構成要素と、照合用暗号コード生成段階で生成された照合用暗号コードに含まれている構成要素と、が対応するか否かを照合し、対応する場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００１７】
(8)   実施例Ｆに係る発明（図１３参照）
本発明の第８の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の並び替えテーブルおよび第２の並び替えテーブルを生成する並替テーブル生成段階と、
第２の情報処理装置が、第１の並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、第２の並び替えテーブルに基づいて、暗号コードの構成要素を並び替えて並替暗号コードを生成する並替暗号コード生成段階と、
第２の情報処理装置が、第２の並び替えテーブルを暗号化し、第２の暗号化テーブルを生成するテーブル暗号化段階と、
第２の情報処理装置が、並替暗号コードとともに第２の暗号化テーブルを、第１の情報処理装置に送信する並替暗号コード送信段階と、
第１の情報処理装置が、並替暗号コードとともに、第２の暗号化テーブルを受信する並替暗号コード受信段階と、
第１の情報処理装置が、第２の暗号化テーブルを復号し、第２の並び替えテーブルを復元するテーブル復号段階と、
第１の情報処理装置が、第２の並び替えテーブルを逆転させたテーブルに基づいて、並替暗号コード受信段階で受信した並替暗号コードの構成要素を並び替えて照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用並替コードを生成する照合用並替コード生成段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードに含まれている構成要素と、照合用並替コード生成段階で生成された照合用並替コードに含まれている構成要素と、が対応するか否かを照合し、対応する場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００１８】
(9)   実施例Ｇに係る発明（図１４参照）
本発明の第９の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して並び替えテーブルを生成する並替テーブル生成段階と、
第２の情報処理装置が、並び替えテーブルに基づいて、ランダムコードの構成要素を並び替えて並替コードを生成する並替コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、並替コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、暗号コードに対して一方向性関数を作用させて所定の関数値を生成する一方向性関数値生成段階と、
第２の情報処理装置が、並び替えテーブルを暗号化し、暗号化テーブルを生成するテーブル暗号化段階と、
第２の情報処理装置が、上記関数値とともに暗号化テーブルを、第１の情報処理装置に送信する関数値送信段階と、
第１の情報処理装置が、上記関数値とともに、暗号化テーブルを受信する関数値受信段階と、
第１の情報処理装置が、暗号化テーブルを復号し、並び替えテーブルを復元するテーブル復号段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素を、並び替えテーブルに基づいて並び替えて照合用並替コードを生成する照合用並替コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用並替コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、照合用暗号コードに対して上記一方向性関数を作用させて照合用関数値を生成する照合用一方向性関数値生成段階と、
第１の情報処理装置が、関数値受信段階で受信した関数値と、照合用一方向性関数値生成段階で生成された照合用関数値と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００１９】
(10)  実施例Ａ〜Ｆのバリエーション（同一の並び替えテーブル）
本発明の第１０の態様は、上述した第３〜第８の態様に係る情報処理装置の認証方法において、
第１の並び替えテーブルおよび第２の並び替えテーブルとして、同一のテーブルを用いるようにしたものである。
【００２０】
(11)  実施例Ａ〜Ｇのバリエーション（公開鍵暗号方式）
本発明の第１１の態様は、上述した第３〜第１０の態様に係る情報処理装置の認証方法において、
第２の情報処理装置が、テーブル暗号化段階において、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて並び替えテーブルの暗号化を行い、
第１の情報処理装置が、テーブル復号段階において、この一対の鍵のうちの他方の鍵を用いて並び替えテーブルの復号を行うようにしたものである。
【００２１】
(12)  第２の実施形態に係る基本発明（図１５参照）
本発明の第１２の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、数字を羅列したランダムコードを発生させ、これを第２の情報処理装置に送信する段階と、
第２の情報処理装置が、ランダムコードを受信し、その構成要素となる個々の数字に対して、ランダムに発生した第１の修正数を用いた第１の修正演算を行って修正コードを生成する段階と、
第２の情報処理装置が、修正コードを所定の暗号アルゴリズムに基づく暗号化演算によって暗号化し、暗号コードを生成する段階と、
第２の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、ランダムに発生した第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する段階と、
第２の情報処理装置が、修正暗号コードとともに、第１の修正演算および第２の修正演算のいずれか一方もしくは双方を示す修正情報を、第１の情報処理装置に送信する段階と、
第１の情報処理装置が、修正暗号コードとともに、修正情報を受信し、受信した修正暗号コードの正当性を、受信した修正情報に基づく修正演算および上記暗号アルゴリズムに基づく暗号化演算もしくは復号演算により確認する段階と、
を行うようにしたものである。
【００２２】
(13)   第２の実施形態に係る基本発明のバリエーション（修正情報の暗号化）
本発明の第１３の態様は、上述した第１２の態様に係る情報処理装置の認証方法において、
第２の情報処理装置から第１の情報処理装置への修正情報の送信を暗号化した状態で行うようにしたものである。
【００２３】
(14)  実施例ａに係る発明（図１８参照）
本発明の第１４の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
第２の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第２の情報処理装置が、第１の修正数および第２の修正数をそれぞれ暗号化し、第１の暗号化修正数および第２の暗号化修正数を生成する修正数暗号化段階と、
第２の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数および第２の暗号化修正数を、第１の情報処理装置に送信する修正暗号コード送信段階と、
第１の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数および第２の暗号化修正数を受信する修正暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化修正数および第２の暗号化修正数をそれぞれ復号し、第１の修正数および第２の修正数を復元する修正数復号段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、照合用暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算を行って照合用修正暗号コードを生成する照合用修正暗号コード生成段階と、
第１の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードと、照合用修正暗号コード生成段階で生成された照合用修正暗号コードと、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
行うようにしたものである。
【００２４】
(15)  実施例ｂに係る発明（図１９参照）
本発明の第１５の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
第２の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第２の情報処理装置が、第１の修正数および第２の修正数をそれぞれ暗号化し、第１の暗号化修正数および第２の暗号化修正数を生成する修正数暗号化段階と、
第２の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数および第２の暗号化修正数を、第１の情報処理装置に送信する修正暗号コード送信段階と、
第１の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数および第２の暗号化修正数を受信する修正暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化修正数および第２の暗号化修正数をそれぞれ復号し、第１の修正数および第２の修正数を復元する修正数復号段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード第１生成段階と、
第１の情報処理装置が、修正暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード第２生成段階と、
第１の情報処理装置が、照合用暗号コード第１生成段階で生成した照合用暗号コードと、照合用暗号コード第２生成段階で生成した照合用暗号コードと、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００２５】
(16)  実施例ｃに係る発明（図２０参照）
本発明の第１６の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
第２の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第２の情報処理装置が、第１の修正数および第２の修正数をそれぞれ暗号化し、第１の暗号化修正数および第２の暗号化修正数を生成する修正数暗号化段階と、
第２の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数および第２の暗号化修正数を、第１の情報処理装置に送信する修正暗号コード送信段階と、
第１の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数および第２の暗号化修正数を受信する修正暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化修正数および第２の暗号化修正数をそれぞれ復号し、第１の修正数および第２の修正数を復元する修正数復号段階と、
第１の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード生成段階と、
第１の情報処理装置が、照合用修正コードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算とは逆の演算を行って照合用ランダムコードを生成する照合用ランダムコード生成段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードと、照合用ランダムコード生成段階で生成された照合用ランダムコードと、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００２６】
(17)  実施例ｄに係る発明（図２１参照）
本発明の第１７の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
第２の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第２の情報処理装置が、第１の修正数および第２の修正数をそれぞれ暗号化し、第１の暗号化修正数および第２の暗号化修正数を生成する修正数暗号化段階と、
第２の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数および第２の暗号化修正数を、第１の情報処理装置に送信する修正暗号コード送信段階と、
第１の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数および第２の暗号化修正数を受信する修正暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化修正数および第２の暗号化修正数をそれぞれ復号し、第１の修正数および第２の修正数を復元する修正数復号段階と、
第１の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード第１生成段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って照合用修正コードを生成する照合用修正コード第２生成段階と、
第１の情報処理装置が、照合用修正コード第１生成段階で生成した照合用修正コードと、照合用修正コード第２生成段階で生成した照合用修正コードと、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００２７】
(18)  実施例ｅに係る発明（図２２参照）
本発明の第１８の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
第２の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第２の情報処理装置が、第１の修正数を暗号化し、第１の暗号化修正数を生成する修正数暗号化段階と、
第２の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数を、第１の情報処理装置に送信する修正暗号コード送信段階と、
第１の情報処理装置が、修正暗号コードとともに、第１の暗号化修正数を受信する修正暗号コード受信段階と、
第１の情報処理装置が、第１の暗号化修正数を復号し、第１の修正数を復元する修正数復号段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードに含まれている構成要素と、照合用暗号コード生成段階で生成された照合用暗号コードに含まれている構成要素と、が第２の修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００２８】
(19)  実施例ｆに係る発明（図２３参照）
本発明の第１９の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して第１の修正数および第２の修正数を生成する修正数生成段階と、
第２の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、第１の修正数を用いた第１の修正演算を行って修正コードを生成する修正コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算を行って修正暗号コードを生成する修正暗号コード生成段階と、
第２の情報処理装置が、第２の修正数を暗号化し、第２の暗号化修正数を生成する修正数暗号化段階と、
第２の情報処理装置が、修正暗号コードとともに第２の暗号化修正数を、第１の情報処理装置に送信する修正暗号コード送信段階と、
第１の情報処理装置が、修正暗号コードとともに、第２の暗号化修正数を受信する修正暗号コード受信段階と、
第１の情報処理装置が、第２の暗号化修正数を復号し、第２の修正数を復元する修正数復号段階と、
第１の情報処理装置が、修正暗号コード受信段階で受信した修正暗号コードの構成要素となる個々の数字に対して、第２の修正数を用いた第２の修正演算とは逆の演算を行って照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく復号演算によって、照合用暗号コードを復号して照合用修正コードを生成する照合用修正コード生成段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードに含まれている構成要素と、照合用修正コード生成段階で生成された照合用修正コードに含まれている構成要素と、が第１の修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００２９】
(20)  実施例ｇに係る発明（図２４参照）
本発明の第２０の態様は、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証する情報処理装置の認証方法において、
第１の情報処理装置が、乱数を利用して、構成要素となる数字を羅列したランダムコードを発生させるランダムコード発生段階と、
第１の情報処理装置が、ランダムコードを第２の情報処理装置に送信するランダムコード送信段階と、
第２の情報処理装置が、ランダムコードを受信するランダムコード受信段階と、
第２の情報処理装置が、乱数を利用して修正数を生成する修正数生成段階と、
第２の情報処理装置が、受信したランダムコードの構成要素となる個々の数字に対して、上記修正数を用いた修正演算を行って修正コードを生成する修正コード生成段階と、
第２の情報処理装置が、所定の暗号アルゴリズムに基づく暗号化演算によって、修正コードを暗号化して暗号コードを生成する暗号コード生成段階と、
第２の情報処理装置が、暗号コードに対して一方向性関数を作用させて所定の関数値を生成する一方向性関数値生成段階と、
第２の情報処理装置が、上記修正数を暗号化し、暗号化修正数を生成する修正数暗号化段階と、
第２の情報処理装置が、上記関数値とともに暗号化修正数を、第１の情報処理装置に送信する関数値送信段階と、
第１の情報処理装置が、上記関数値とともに、暗号化修正数を受信する関数値受信段階と、
第１の情報処理装置が、暗号化修正数を復号し、修正数を復元する修正数復号段階と、
第１の情報処理装置が、ランダムコード発生段階で発生させたランダムコードの構成要素となる個々の数字に対して、上記修正数を用いた修正演算を行って照合用修正コードを生成する照合用修正コード生成段階と、
第１の情報処理装置が、上記暗号アルゴリズムに基づく暗号化演算によって、照合用修正コードを暗号化して照合用暗号コードを生成する照合用暗号コード生成段階と、
第１の情報処理装置が、照合用暗号コードに対して上記一方向性関数を作用させて照合用関数値を生成する照合用一方向性関数値生成段階と、
第１の情報処理装置が、関数値受信段階で受信した関数値と、照合用一方向性関数値生成段階で生成された照合用関数値と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階と、
を行うようにしたものである。
【００３０】
(21)  実施例ａ〜ｆのバリエーション（同一の修正数）
本発明の第２１の態様は、上述した第１４〜第１９の態様に係る情報処理装置の認証方法において、
第１の修正数および第２の修正数として、同一の修正数を用いるようにしたものである。
【００３１】
(22)  実施例ａ〜ｇのバリエーション（公開鍵暗号方式）
本発明の第２２の態様は、上述した第１４〜第２１の態様に係る情報処理装置の認証方法において、
第２の情報処理装置が、修正数暗号化段階において、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて修正数の暗号化を行い、
第１の情報処理装置が、修正数復号段階において、この一対の鍵のうちの他方の鍵を用いて修正数の復号を行うようにしたものである。
【００３２】
(23)  実施例ａ〜ｇのバリエーション（修正数の加減算）
本発明の第２３の態様は、上述した第１４〜第２２の態様に係る情報処理装置の認証方法において、
修正数として、乱数を利用して生成した正もしくは負の数を用い、修正演算として、個々の数字に対してこの修正数を加算もしくは減算する演算を行うようにしたものである。
【００３３】
(24)  実施例ａ〜ｇのバリエーション（数値範囲の制限）
本発明の第２４の態様は、上述した第２３の態様に係る情報処理装置の認証方法において、
ランダムコードの構成要素となる個々の数字および暗号コードの構成要素となる個々の数字が、Ｎ〜Ｍ（但し、Ｎ＜Ｍ）の範囲内の数値となるようにし、修正演算を行う際に、演算後の数値ＶがＶ＜Ｎとなる場合には（Ｍ−Ｎ＋１）を加算する補正を行い、演算後の数値ＶがＶ＞Ｍとなる場合には（Ｍ−Ｎ＋１）を減算する補正を行い、修正演算後の数値がＮ〜Ｍの範囲内の数値となるようにしたものである。
【００３４】
(25)  実施例ａ〜ｇのバリエーション（構成要素ごとの個別修正）
本発明の第２５の態様は、上述した第１４〜第２４の態様に係る情報処理装置の認証方法において、
複数ｎ個の数字を構成要素として含むコードについて、これらｎ個の構成要素のそれぞれについて別個に修正数を生成し、ｎ個の修正数の数列を用いて修正演算を行うことを特徴とする情報処理装置の認証方法。
【００３５】
(26)  第２の実施形態に係る基本発明のバリエーション（文字を含むコード）
本発明の第２６の態様は、上述した第１２〜第２５の態様に係る情報処理装置の認証方法において、
第１の情報処理装置および第２の情報処理装置として、それぞれ特定の数字に対応づけられた文字を取り扱う装置を用い、ランダムコードもしくは暗号コードとして文字を含むコードを発生させ、個々の文字をそれぞれ対応する数字として取り扱う処理を行うようにしたものである。
【００３６】
(27)  本発明全体についてのバリエーション（相互認証）
本発明の第２７の態様は、上述した第１〜第２６の態様に係る情報処理装置の認証方法において、
第１の情報処理装置が行う各処理段階と、第２の情報処理装置が行う各処理段階と、を入れ替えた処理を更に行うことにより、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証するとともに、第２の情報処理装置が第１の情報処理装置を正当性が確認された装置として認証する処理を行うようにしたものである。
【００３７】
(28)  本発明全体についてのバリエーション（情報処理装置）
本発明の第２８の態様は、上述した第１〜第２６の態様に係る情報処理装置の認証方法における第１の情報処理装置または第２の情報処理装置が行う各段階を実行する機能をもった装置を提供するようにしたものである。
【００３８】
(29)  本発明全体についてのバリエーション（プログラム）
本発明の第２９の態様は、上述した第１〜第２６の態様に係る情報処理装置の認証方法における第１の情報処理装置または第２の情報処理装置が行う各段階をコンピュータに実行させるプログラムを提供するようにしたものである。
【発明の効果】
【００３９】
本発明に係る情報処理装置の認証方法によれば、第１の情報処理装置から送信されてきたランダムコード（チャレンジ）を第２の情報処理装置で暗号化する際に、暗号化処理の前後に、コードの並び替え処理、修正処理、もしくは一方向性関数の作用処理を施すようにしたため、通信経路を介して送受されるチャレンジおよびレスポンスと、暗号化処理の対象となる平文および暗号文とが、相互に異なるデータになる。すなわち、通信傍受で得たチャレンジおよびレスポンスと、サイドチャネル解析の対象となる暗号化処理で用いる平文および暗号文とが直接的には対応しないことになる。したがって、通信傍受とサイドチャネル解析とを組み合わせた攻撃が行われても、採用している暗号アルゴリズムを容易には推定することができなくなり、そのような組み合わせ攻撃にも十分に耐え得る認証方法を提供することができる。また、本発明を導入するにあたっては、暗号化処理の前後に、コードの並び替え処理、修正処理、もしくは一方向性関数の作用処理を施すだけでよいので、非常に効率的な処理により目的を達成することができ、導入コストを抑制させることができる。
【図面の簡単な説明】
【００４０】
【図１】一般的なチャレンジレスポンス方式の認証方法を示すブロック図である。
【図２】本願の説明で便宜的に利用する具体的な暗号アルゴリズムＡの一例を示す図である。
【図３】図１に示す認証方法に、図２に示す暗号アルゴリズムＡを用いた場合の具体的なデータの変遷を示すブロック図である。
【図４】図３に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。
【図５】本発明の第１の実施形態に係る認証方法の基本概念を示すブロック図である。
【図６】図５の実施形態で用いられている具体的な並び替え方法を示す図である。
【図７】図５に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。
【図８】図５に示す第１の実施形態の具体的実施例Ａを示すブロック図である。
【図９】図５に示す第１の実施形態の具体的実施例Ｂを示すブロック図である。
【図１０】図５に示す第１の実施形態の具体的実施例Ｃを示すブロック図である。
【図１１】図５に示す第１の実施形態の具体的実施例Ｄを示すブロック図である。
【図１２】図５に示す第１の実施形態の具体的実施例Ｅを示すブロック図である。
【図１３】図５に示す第１の実施形態の具体的実施例Ｆを示すブロック図である。
【図１４】図５に示す第１の実施形態の具体的実施例Ｇを示すブロック図である。
【図１５】本発明の第２の実施形態に係る認証方法の基本概念を示すブロック図である。
【図１６】図１５の実施形態で用いられている具体的な修正演算を示す図である。
【図１７】図１５に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。
【図１８】図１５に示す第２の実施形態の具体的実施例ａを示すブロック図である。
【図１９】図１５に示す第２の実施形態の具体的実施例ｂを示すブロック図である。
【図２０】図１５に示す第２の実施形態の具体的実施例ｃを示すブロック図である。
【図２１】図１５に示す第２の実施形態の具体的実施例ｄを示すブロック図である。
【図２２】図１５に示す第２の実施形態の具体的実施例ｅを示すブロック図である。
【図２３】図１５に示す第２の実施形態の具体的実施例ｆを示すブロック図である。
【図２４】図１５に示す第２の実施形態の具体的実施例ｇを示すブロック図である。
【発明を実施するための形態】
【００４１】
以下、本発明を図示する実施形態に基づいて説明する。
【００４２】
＜＜＜  §１．  一般的なチャレンジレスポンス方式の認証方法  ＞＞＞
はじめに、説明の便宜上、従来から広く利用されている一般的なチャレンジレスポンス方式の認証方法の基本原理を簡単に説明しておく。ここでは、図１に示すように、第１の情報処理装置１０（たとえば、サーバ装置）が第２の情報処理装置２０（たとえば、クライアント装置）の正当性を確認する処理を例にとって、具体的なデータの流れに即した手順を述べる。
【００４３】
図示の例の場合、認証処理に関与する構成要素として、第１の情報処理装置１０には、ランダムコード発生部１１、照合用暗号コード生成部１３、照合判定部１５、ランダムコード送信部１６、暗号コード受信部１７が設けられており、第２の情報処理装置２０には、ランダムコード受信部２１、暗号コード生成部２３、暗号コード送信部２５が設けられている。
【００４４】
もちろん、実際には、各情報処理装置１０，２０には、それぞれ本来の機能を実行するために必要な様々な構成要素が組み込まれているが、ここでは認証処理に関与する構成要素のみを図示し、これら図示された構成要素についてのみの説明を行うことにする。§２以下に述べる本発明の各実施形態の説明においても同様である。
【００４５】
また、本願では、各情報処理装置の個々の構成要素を「○○部」と称するブロックで示し、当該「○○部」が実行する処理を「○○処理」もしくは「○○段階」と呼ぶことにする。たとえば、図１に示す例の場合、ランダムコード発生部１１が実行する処理は「ランダムコード発生処理」もしくは「ランダムコード発生段階」であり、ランダムコード送信部１６が実行する処理は「ランダムコード送信処理」もしくは「ランダムコード送信段階」ということになる。実際には、これらの各構成要素は専用のプログラムが組み込まれたコンピュータもしくは半導体集積回路の個々の機能として実現されることになり、各処理や各段階は、コンピュータもしくは半導体集積回路によって実行されることになる。
【００４６】
さて、第１の情報処理装置１０が、第２の情報処理装置２０を正当性が確認された装置として認証するには、まず、ランダムコード発生部１１によって、文字もしくは数字を羅列したランダムコードＲを発生させる処理が行われる。ランダムコード発生部１１には、乱数を発生させる機能が備わっており、この機能を利用して、複数の文字もしくは数字からなるランダムコードＲが生成される。たとえば、それぞれ１バイトからなる数字を１構成要素として、ｎ個の構成要素を羅列したｎバイトからなるランダムコードＲを生成すればよい。このランダムコード発生段階の処理は、第２の情報処理装置２０に対する認証が必要になったときに毎回行われるが、ランダムコードＲは乱数に基づいて生成されたランダムなコードであるため、毎回、その内容は異なっている。
【００４７】
こうして発生されたランダムコードＲは、ランダムコード送信部１６によって、第２の情報処理装置２０に対して送信される。こうして送信されるランダムコードＲは、一般に「チャレンジ」と呼ばれるデータである。なお、コンピュータで取り扱われるデータは、いずれもバイナリデジタルデータであるが、本願では、実施例の説明の便宜上、ランダムコードＲおよびこれに派生して生じる各種コードを文字もしくは数字を羅列したコードと把握して、以下の説明を行うことにする。
【００４８】
一方、第２の情報処理装置２０では、「チャレンジ」として送信されてきたランダムコードＲが、ランダムコード受信部２１によって受信され、暗号コード生成部２３に引き渡される。暗号コード生成部２３は、与えられたランダムコードＲを所定の暗号アルゴリズムＡに基づいて暗号化し、暗号コードＱを生成する処理を行い、これを暗号コード送信部２５に与える。暗号コード送信部２５は、この暗号コードＱを第１の情報処理装置１０に対して送信する。こうして送信される暗号コードＱは、一般に「レスポンス」（認証トークン）と呼ばれるデータである。
【００４９】
続いて、第１の情報処理装置１０では、「レスポンス」として送信されてきた暗号コードＱが、暗号コード受信部１７によって受信される。また、ランダムコード発生部１１によって発生されたランダムコードＲは、照合用暗号コード生成部１３に引き渡される。照合用暗号コード生成部１３は、第２の情報処理装置２０内の暗号コード生成部２３と同じ機能をもった構成要素であり、与えられたランダムコードＲを暗号アルゴリズムＡに基づいて暗号化し、照合用暗号コードＱを生成する処理を行う。
【００５０】
第１の情報処理装置１０内の照合用暗号コード生成部１３で利用される暗号アルゴリズムＡは、第２の情報処理装置２０内の暗号コード生成部２３で利用される暗号アルゴリズムＡと全く同じアルゴリズムである。図では、この点を明確に示すため、これら各ブロック１３，２３内に丸Ａの記号を記載してある。したがって、本来、照合用暗号コード生成部１３で生成された照合用暗号コードＱは、暗号コード生成部２３で生成された暗号コードＱと一致するはずである。照合判定部１５は、両者が一致するか否かの照合を行い、一致した場合に、第２の情報処理装置２０を正当性が確認された装置と判定する照合判定処理を行う。
【００５１】
要するに、第１の情報処理装置１０で発生させたランダムコードＲをチャレンジ（平文）として第２の情報処理装置２００に与え、第２の情報処理装置２００で暗号化し、得られた暗号コードＱをレスポンス（暗号文）として返信させ、第１の情報処理装置１０において、当該レスポンス（暗号文）が当該チャレンジ（平文）に応じた正しいものであるか否かを判定することにより、第２の情報処理装置２００の正当性確認を行うことになる。
【００５２】
このようなチャレンジレスポンス方式の認証方法を採れば、暗号アルゴリズムＡの秘匿性が維持されている限り、不正な装置を正規の装置になりすませる不正な認証行為を防ぐことができる。たとえば、第３の情報処理装置３０を、第２の情報処理装置２０に見せかけて不正行為を行うことを企てても、暗号コード生成部２３で採用されている暗号アルゴリズムＡの実体が把握できなければ、与えられたチャレンジＲに対して正しいレスポンスＱを返信することができないので、第１の情報処理装置１０によって第３の情報処理装置３０は、正規の装置として認証されないことになる。
【００５３】
暗号アルゴリズムＡとしては、通常、固有の秘密鍵を用いる複雑な数学的演算処理が利用される。本発明における「暗号アルゴリズム」という用語は、このような数学的演算処理の手順そのものだけでなく、当該演算に用いられる固有の秘密鍵をも含めた概念を意味するものである。したがって、数学的演算処理の手順自体が漏洩したとしても、当該演算に用いられる固有の秘密鍵が秘匿状態であれば、本発明における「暗号アルゴリズム」の秘匿性は維持できることになる。
【００５４】
このように、一般的なチャレンジレスポンス方式の認証方法では、通常、固有の秘密鍵（暗号鍵）を用いる複雑な数学的演算処理からなる暗号アルゴリズムが利用されることになる。ただ、以下の各例では、説明の便宜上、図２に示すような極めて単純な暗号アルゴリズムＡが採用された例に基づいて、具体的なデータの変遷例を示すことにする。図２に示す暗号アルゴリズムＡは、１０種類の数字（１〜９，０）と１０種類のアルファベット（Ａ〜Ｊ）とを１対１に対応させた表を用いて暗号化処理および復号処理を行う例である。
【００５５】
たとえば、「１２３４５」という５つの数字を羅列した平文データが与えられた場合に、図２に示す暗号アルゴリズムＡを用いて暗号化処理を行えば、「ＡＢＣＤＥ」という５つのアルファベットを羅列した暗号データが得られることになる。逆に、「ＡＢＣＤＥ」という暗号データが与えられた場合に、この暗号アルゴリズムＡを用いて復号処理を行えば、「１２３４５」という元の平文データが得られる。なお、平文データ／暗号データの区別や、暗号化処理／復号処理の区別は、人間の都合に応じて定められるものであり、それぞれ呼び方を逆にしてもかまわない。
【００５６】
要するに暗号アルゴリズムＡは、与えられた第１の状態のデータを、一義的に第２の状態のデータに可逆的に変換するための論理的なアルゴリズムであればよい。可逆的な変換アルゴリズムであるから、当然、第２の状態のデータを一義的に第１の状態のデータに戻すことが可能である。上述したとおり、図２に例示するような極めて単純な暗号アルゴリズムＡは、実用上、利用されることはないが、本願では、説明の便宜上、このような単純な暗号アルゴリズムＡを利用した例を以下に述べることにする。
【００５７】
図３は、図１に示す認証方法に、図２に示す暗号アルゴリズムＡを用いた場合の具体的なデータの変遷を示すブロック図である。この図３には、ランダムコード発生部１１によって、「１２３４５」なる５つの数字を羅列したランダムコードＲが発生された場合の例が示されている。図面上では、この具体的なコードを括弧書きで示すことにする。こうして発生されたランダムコードＲ「１２３４５」は、ランダムコード送信部１６によって「チャレンジ」として送信され、ランダムコード受信部２１によって受信される。
【００５８】
続いて、暗号コード生成部２３が、このランダムコードＲ「１２３４５」に対して、図２に示す暗号アルゴリズムＡを用いた暗号化処理を行い、暗号コードＱ「ＡＢＣＤＥ」を生成する。この暗号コードＱ「ＡＢＣＤＥ」は、暗号コード送信部２５から「レスポンス」として返信され、暗号コード受信部１７によって受信される。
【００５９】
一方、ランダムコード発生部１１によって発生されたランダムコードＲ「１２３４５」は、照合用暗号コード生成部１３によって暗号化される。照合用暗号コード生成部１３は、暗号コード生成部２３と全く同じ暗号アルゴリズムＡを用いた暗号化処理を行うため、ランダムコードＲ「１２３４５」は、やはり暗号コードＱ「ＡＢＣＤＥ」に変換される。最後に、照合判定部１５において、照合用暗号コード生成部１３で生成された照合用暗号コードＱ「ＡＢＣＤＥ」と、暗号コード受信部１７によって受信された暗号コードＱ「ＡＢＣＤＥ」と、が一致するか否かの判定が行われ、一致した場合に、第２の情報処理装置２０が正規の装置として認証される。図示の例の場合、両暗号コードはいずれも「ＡＢＣＤＥ」であり、第２の情報処理装置２０は正規の装置として認証されることになる。
【００６０】
このようなチャレンジレスポンス方式の認証方法は、暗号アルゴリズムＡの秘匿性が維持されている限り有効な認証方法として機能する。上例は、ランダムコード発生部１１によって発生されたランダムコードＲが「１２３４５」である例になっているが、ランダムコードＲは乱数に基づいて認証を行うたびに発生されるランダムなコードであるため、毎回異なっている。たとえば、２回目の認証時には、「６７８９０」のようなランダムコードＲが「チャレンジ」として発生されることになり、これに対して「ＦＧＨＩＪ」なる暗号コードＱが「レスポンス」として返信されることになる。したがって、暗号アルゴリズムＡが秘匿されている限り、正しい「レスポンス」を生成することはできず、不正な方法で認証が行われることを防ぐことができる。
【００６１】
しかしながら、暗号アルゴリズムＡの内容が推定されてしまうと、当該暗号アルゴリズムＡに基づく暗号化処理機能をもたせた任意の情報処理装置を、正規の装置として認証させる不正行為が可能になる。
【００６２】
暗号アルゴリズムＡを解析する方法としては、古くから、情報処理装置１０，２０間の通信を傍受する方法が知られている。図示の例の場合、両者間の通信路を流れる情報を盗聴すれば、ランダムコードＲ「１２３４５」によるチャレンジに対して、暗号コードＱ「ＡＢＣＤＥ」というレスポンスが得られることが認識できる。同様に、別な認証時には、ランダムコードＲ「６７８９０」によるチャレンジに対して、暗号コードＱ「ＦＧＨＩＪ」というレスポンスが得られることが認識できる。
【００６３】
もちろん、第２の情報処理装置２０を入手した者であれば、任意のコードをチャレンジとして与えたときに、どのようなレスポンスが返されるかを系統的に調べることも可能である。本願における「通信傍受」とは、このように第２の情報処理装置２０を入手した者が、意図的に特定のチャレンジを与えて、どのようなレスポンスが返されるかを調べる行為も含めた概念である。
【００６４】
このような通信傍受により得られたチャレンジ・レスポンスの組み合わせは、第２の情報処理装置２０内で実行されている暗号化処理で用いられている暗号アルゴリズムＡ（図２に示すアルゴリズム）を推定するヒントを与えることになる。図２に例示するような単純なアルゴリズムＡであれば、チャレンジ・レスポンスの組み合わせをいくつか収集することにより解析が可能であり、通信傍受により容易に推定することができる。
【００６５】
ただ、前述したとおり、実用上は、固有の秘密鍵を用いる複雑な数学的演算処理からなる暗号アルゴリズムが利用されており、その防備は数学的にはかなり強固である。したがって、現在一般に利用されている暗号アルゴリズムを、通信傍受の方法のみによって推定することは極めて困難と言うことができ、それだけで暗号アルゴリズムが露見する可能性は低い。ところが、近年、問題視されているサイドチャネル解析を組み合わせると、暗号アルゴリズムの推定が容易になることが懸念されている。
【００６６】
図３に示す例の場合、サイドチャネル解析は、暗号アルゴリズムＡに基づいて暗号化処理を実行中の第２の情報処理装置２０について、消費電力、演算処理時間、発生する電磁波などをモニタすることによって行われる。たとえば、第２の情報処理装置２０に様々な測定装置を取り付けた状態で暗号化処理を実行させれば、特定のチャレンジに対して特定のレスポンスを生成する際に、装置内部でどのような演算処理が行われているのかを推定する重要な手がかりが得られることになる。
【００６７】
図４は、図３に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。図示の例の場合、まず、通信傍受により、ランダムコードＲ「１２３４５」によるチャレンジに対して、暗号コードＱ「ＡＢＣＤＥ」というレスポンスが得られる事実が認識できる。このとき、暗号コード生成部２３の内部では、暗号アルゴリズムＡに基づく暗号化処理の演算が実行されていることになる。したがって、同時にサイトチャネル解析を行えば、暗号コード生成部２３がコード「１２３４５」をコード「ＡＢＣＤＥ」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報が得られることになる。
【００６８】
このように、通信傍受によって得られた情報に、サイドチャネル解析によって得られた情報を組み合わせると、暗号アルゴリズムＡの推定が容易になることは否めない。このため、たとえ数学的に強固な暗号アルゴリズムを採用しても、不正な攻撃にさらされる危険性が指摘されている。本発明は、このような問題を解決する一手法を提案するものであり、通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐え得る情報処理装置の認証方法を提供することを目的とする。
【００６９】
＜＜＜  §２．  本発明の第１の実施形態に係る認証方法の基本概念  ＞＞＞
ここでは、図５を参照しながら、本発明の第１の実施形態に係る認証方法の基本概念を説明する。具体的には、第１の情報処理装置１００（たとえば、サーバ装置）が第２の情報処理装置２００（たとえば、クライアント装置）の正当性を確認する処理を例にとって、データの流れに即した処理手順を述べることにする。
【００７０】
図示の例の場合、認証処理に関与する構成要素として、第１の情報処理装置１００には、ランダムコード発生部１１０、照合用並替コード生成部１２０、照合用暗号コード生成部１３０、照合用並替暗号コード生成部１４０、照合判定部１５０、ランダムコード送信部１６０、並替暗号コード受信部１７０が設けられており、第２の情報処理装置２００には、ランダムコード受信部２１０、並替コード生成部２２０、暗号コード生成部２３０、並替暗号コード生成部２４０、並替暗号コード送信部２５０が設けられている。
【００７１】
この図５に示す第１の情報処理装置１００（本発明の装置）を、図３に示す第１の情報処理装置１０（従来の装置）と対比すると、ランダムコード発生部１１０はランダムコード発生部１１に対応し、照合用暗号コード生成部１３０は、照合用暗号コード生成部１３に対応し、照合判定部１５０は照合判定部１５に対応し、ランダムコード送信部１６０はランダムコード送信部１６に対応し、並替暗号コード受信部１７０は暗号コード受信部１７に対応する。これらの各対応する構成要素の機能は基本的にほぼ同じものである。
【００７２】
したがって、図５に示す第１の情報処理装置１００（本発明の装置）の大きな特徴は、図３に示す第１の情報処理装置１０（従来の装置）に、更に、照合用並替コード生成部１２０および照合用並替暗号コード生成部１４０を付加したものということになる。これら新たな構成要素１２０，１４０の役割は、照合用暗号コード生成部１３０における暗号化処理の前後の段階において、データの並び替えを行うことにある。
【００７３】
一方、図５に示す第２の情報処理装置２００（本発明の装置）を、図３に示す第２の情報処理装置２０（従来の装置）と対比すると、ランダムコード受信部２１０はランダムコード受信部２１に対応し、暗号コード生成部２３０は暗号コード生成部２３に対応し、並替暗号コード送信部２５０は暗号コード送信部２５に対応する。これらの各対応する構成要素の機能は基本的にほぼ同じものである。
【００７４】
したがって、図５に示す第２の情報処理装置２００（本発明の装置）の大きな特徴は、図３に示す第２の情報処理装置２０（従来の装置）に、更に、並替コード生成部２２０および並替暗号コード生成部２４０を付加したものということになる。これら新たな構成要素２２０，２４０の役割は、暗号コード生成部２３０における暗号化処理の前後の段階において、データの並び替えを行うことにある。
【００７５】
より具体的に説明すれば、第１の情報処理装置１００内の照合用並替コード生成部１２０および第２の情報処理装置２００内の並替コード生成部２２０は、いずれも与えられたランダムコードＲの構成要素を並び替えて並替コードＲ′を生成する機能を果たす。具体的には、図示の例の場合、第１の並び替え方法Ｘ１に基づいて、５つの数字を羅列してなるランダムコードＲ「１２３４５」が、「３５２１４」という順序に並び替えられ、並替コードＲ′が生成されている。図５におけるブロック２２０内の丸Ｘ１は、方法Ｘ１によって並び替えが行われることを示すものである（以下同様）。
【００７６】
図６(a) は、この第１の並び替え方法Ｘ１を定義する第１の並び替えテーブルＴ１を示す図である。このテーブルＴ１は、５つの構成要素ｍ１〜ｍ５からなる任意のコードに対する並び替えを定義するためのものであり、具体的には、構成要素ｍ１，ｍ２，ｍ３，ｍ４，ｍ５をこの順番に羅列してなるコードについて、各構成要素が、ｍ３，ｍ５，ｍ２，ｍ１，ｍ４の順番に並ぶような並び替え方法を定義するものである。図５に示す例の場合、照合用並替コード生成部１２０および並替コード生成部２２０において、ランダムコードＲ「１２３４５」の各構成要素が、この第１の並び替えテーブルＴ１に基づいて並び替えられ、並替コードＲ′「３５２１４」が生成されている。
【００７７】
結局、照合用暗号コード生成部１３０および暗号コード生成部２３０には、ランダムコードＲ「１２３４５」の代わりに並替コードＲ′「３５２１４」が与えられることになる。したがって、暗号化処理は、この並替コードＲ′「３５２１４」に対して行われる。前述のとおり、ここでは説明の便宜上、暗号化処理が、図２に示すような単純な暗号アルゴリズムＡに基づいて行われることにしている。したがって、並替コードＲ′「３５２１４」に対する暗号化処理を行うことにより、暗号コードＱ「ＣＥＢＡＤ」が生成されることになる。
【００７８】
一方、第１の情報処理装置１００内の照合用並替暗号コード生成部１４０および第２の情報処理装置２００内の並替暗号コード生成部２４０は、いずれも与えられた暗号コードＱの構成要素を並び替えて並替暗号コードＱ′を生成する機能を果たす。具体的には、図示の例の場合、第２の並び替え方法Ｘ２に基づいて、５つのアルファベットを羅列してなる暗号コードＱ「ＣＥＢＡＤ」が、「ＢＥＤＡＣ」という順序に並び替えられ、並替暗号コードＱ′が生成されている。
【００７９】
図６(b) は、この第２の並び替え方法Ｘ２を定義する第２の並び替えテーブルＴ２を示す図である。このテーブルＴ２は、やはり５つの構成要素ｍ１〜ｍ５からなる任意のコードに対する並び替えを定義するためのものであり、具体的には、構成要素ｍ１，ｍ２，ｍ３，ｍ４，ｍ５をこの順番に羅列してなるコードについて、各構成要素が、ｍ３，ｍ２，ｍ５，ｍ４，ｍ１の順番に並ぶような並び替え方法を定義するものである。図５に示す例の場合、照合用並替暗号コード生成部１４０および並替暗号コード生成部２４０において、暗号コード「ＣＥＢＡＤ」の各構成要素が、この第２の並び替えテーブルＴ２に基づいて並び替えられ、並替暗号コードＱ′「ＢＥＤＡＣ」が生成されている。
【００８０】
こうして、並替暗号コード送信部２５０から並替暗号コード受信部１７０に対しては、並替暗号コードＱ′「ＢＥＤＡＣ」が返信されることになる。照合判定部１５０は、並替暗号コード受信部１７０が受信した並替暗号コードＱ′「ＢＥＤＡＣ」と、照合用並替暗号コード生成部１４０が生成した並替暗号コードＱ′「ＢＥＤＡＣ」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００を正当性が確認された装置と判定する処理を行うことになる。
【００８１】
なお、並替コード生成部２２０が実行する並び替え処理に利用される第１の並び替え方法Ｘ１や、並替暗号コード生成部２４０が実行する並び替え処理に利用される第２の並び替え方法Ｘ２は、認証処理が行われるたびにランダムに定義するようにする。すなわち、ランダムコード受信部２１０が新たなランダムコードＲを受信するたびに、並替コード生成部２２０および並替暗号コード生成部２４０は、ランダムに定義された新たな並び替え方法Ｘ１およびＸ２を用いて、毎回、異なる並び替え方法に基づく並び替えが行われるようにする。
【００８２】
一方、照合用並替コード生成部１２０が利用する並び替え方法Ｘ１は、そのときに並替コード生成部２２０で利用された並び替え方法Ｘ１と同一である必要があり、照合用並替暗号コード生成部１４０が利用する並び替え方法Ｘ２は、そのときに並替暗号コード生成部２４０で利用された並び替え方法Ｘ２と同一である必要がある。そこで、並替暗号コード送信部２５０は、並替暗号コードＱ′とともに、並替コード生成部２２０が利用した第１の並び替え方法Ｘ１と並替暗号コード生成部２４０が利用した第２の並び替え方法Ｘ２とを示す並替情報を、並替暗号コード受信部１７０に対して送信する。
【００８３】
並替暗号コード受信部１７０は、受信した並替暗号コードＱ′を照合判定部１５０に引き渡すとともに、受信した並替情報（すなわち、第１の並び替え方法Ｘ１および第２の並び替え方法Ｘ２）を照合用並替コード生成部１２０および照合用並替暗号コード生成部１４０に引き渡す処理を行う。これにより、照合用並替コード生成部１２０は第１の並び替え方法Ｘ１に基づく並び替え処理を行うことができ、照合用並替暗号コード生成部１４０は第２の並び替え方法Ｘ２に基づく並び替え処理を行うことができる。
【００８４】
要するに、この図５に示す認証方法を採用した場合、第１の情報処理装置１００から第２の情報処理装置２００に対して、チャレンジとしてランダムコードＲ「１２３４５」が与えられると、並替コード生成部２２０において、このランダムコードＲ「１２３４５」は、第１の並び替え方法Ｘ１に基づいて並び替えられ、並替コードＲ′「３５２１４」に変換される。そして、暗号コード生成部２３０は、この並替コードＲ′「３５２１４」に対して暗号アルゴリズムＡに基づく暗号化処理を行って、暗号コードＱ「ＣＥＢＡＤ」を生成する。更に、並替暗号コード生成部２４０において、この暗号コードＱ「ＣＥＢＡＤ」は、第２の並び替え方法Ｘ２に基づいて並び替えられ、並替暗号コードＱ′「ＢＥＤＡＣ」に変換された後、この並替暗号コードＱ′「ＢＥＤＡＣ」がレスポンスとして返信されることになる。
【００８５】
図７は、図５に示す認証方法に対する通信傍受およびサイドチャネル解析を組み合わせた攻撃を示す図である。もちろん、この図５に示す認証方法を採用した場合も、通信傍受やサイドチャネル解析は可能である。しかしながら、通信傍受によって得られる情報とサイドチャネル解析によって得られる情報との間には、直接的な関連がないため、両者を組み合わせたとしても、暗号アルゴリズムＡを推定することは困難である。
【００８６】
すなわち、図５に示す認証方法を採用した場合、通信傍受によって得られる情報は、図７に示すとおり、ランダムコードＲ「１２３４５」によるチャレンジに対して、並替暗号コードＱ′「ＢＥＤＡＣ」というレスポンスが得られるという事実である。しかしながら、このとき、暗号コード生成部２３０の内部で行われている暗号化処理の演算は、ランダムコードＲ「１２３４５」を並替暗号コードＱ′「ＢＥＤＡＣ」に変換する演算ではなく、並替コードＲ′「３５２１４」を暗号コードＱ「ＣＥＢＡＤ」に変換する演算であり、サイドチャネル解析によって得られる情報は、図７に示すとおり、並替コードＲ′「３５２１４」を暗号コードＱ「ＣＥＢＡＤ」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報ということになる。
【００８７】
別言すれば、暗号コード生成部２３０が採用している暗号アルゴリズムＡを解析しようとして、通信傍受によりチャレンジ「１２３４５」とレスポンス「ＢＥＤＡＣ」とが特定されたとしても、実際に行われている暗号化処理の演算は、別なコード「３５２１４」を「ＣＥＢＡＤ」に変換する演算であるため、両者を組み合わせた解析を行ったとしても、暗号アルゴリズムＡを推定することは困難になる。これが本発明の基本的な技術思想であり、通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐え得る認証方法が実現できる基本原理である。また、本発明を導入するにあたっては、暗号化処理の前後に、比較的単純なデータ処理（図５の例の場合、並べ替え処理）を行うプロセスを追加するだけでよいので、非常に効率的な処理により上記攻撃への対抗策を用意することができ、導入コストを抑制させることができる。
【００８８】
結局、本発明の第１の実施形態に係る情報処理装置の認証方法を総括すると、次のようなプロセスが行われることになる。すなわち、第１の情報処理装置１００が第２の情報処理装置２００を正当性が確認された装置として認証するために、まず、第１の情報処理装置１００側において、乱数を利用して、文字もしくは数字を羅列したランダムコードＲを発生させ、これを第２の情報処理装置２００に送信する段階（ランダムコード発生部１１０およびランダムコード送信部１６０による処理）が行われる。
【００８９】
続いて、第２の情報処理装置２００側において、送信されてきたランダムコードＲを受信し、その構成要素をランダムな第１の並び替え方法Ｘ１で並び替えて並替コードＲ′を生成する段階（ランダムコード受信部２１０および並替コード生成部２２０による処理）と、この並替コードＲ′を所定の暗号アルゴリズムにＡに基づく暗号化演算によって暗号化し、暗号コードＱを生成する段階（暗号コード生成部２３０による処理）と、この暗号コードＱの構成要素をランダムな第２の並び替え方法Ｘ２で並び替えて並替暗号コードＱ′を生成する段階（並替暗号コード生成部２４０による処理）と、並替暗号コードＱ′とともに、第１の並び替え方法Ｘ１および第２の並び替え方法Ｘ２を示す並替情報を、第１の情報処理装置１００に送信する段階（並替暗号コード送信部２５０による処理）と、が行われる。
【００９０】
そして、第１の情報処理装置１００側において、並替暗号コードＱ′とともに、並替情報を受信し（並替暗号コード受信部１７０による処理）、受信した並替暗号コードＱ′の正当性を、受信した並替情報に基づく並び替え処理（照合用並替コード生成部１２０および照合用並替暗号コード生成部１４０による処理）および暗号コード生成部２３０による暗号化処理と同じ暗号アルゴリズムＡに基づく暗号化演算（照合用暗号コード生成部１３０による処理）によって確認する段階が行われる。
【００９１】
なお、第２の情報処理装置２００から第１の情報処理装置１００への並替情報（第１の並び替え方法Ｘ１および第２の並び替え方法Ｘ２を示す情報）の送信は、実際には暗号化した状態で行うのが好ましい。すなわち、第２の情報処理装置２００側で並替情報の暗号化処理を行い、暗号化された状態の並替情報が並替暗号コード送信部２５０から並替暗号コード受信部１７０へと送信されるようにし、これを第１の情報処理装置１００側で復号して元に戻すようにすれば、通信傍受が行われても並替情報が露見するのを防ぐことができる。
【００９２】
また、図５に示す例では、第１の情報処理装置１００側において、第２の情報処理装置２００側で行われた暗号化演算と同じ暗号化演算を行い、照合判定部１５０が双方の処理結果として得られた並替暗号コードＱ′の一致確認を行うことにより認証を行っているが、本発明は、必ずしもこのような手順で一致確認を行う例に限定されるものではない。たとえば、第１の情報処理装置１００側において、並替暗号コードＱ′に基づく復号演算（暗号コード生成部２３０による暗号化処理と同じ暗号アルゴリズムＡに基づく復号演算）を実行することにより照合を行ってもかまわない。
【００９３】
更に、図５に示す例では、第２の情報処理装置２００側において、並び替え方法Ｘ１に基づくランダムコードＲに対する並び替えと、並び替え方法Ｘ２に基づく暗号コードＱに対する並び替えと、を行っているため、これに応じて、第１の情報処理装置１００側においても、並び替え方法Ｘ１に基づくランダムコードＲに対する並び替えと、並び替え方法Ｘ２に基づく暗号コードＱに対する並び替えと、を行っている。しかしながら、本発明は、必ずしもこのような手順で一致確認を行う例に限定されるものではなく、たとえば、第１の情報処理装置１００側において、一方の並び替え処理を省略することも可能である。この場合、並替暗号コード送信部２５０は、並替暗号コードＱ′とともに、第１の並び替え方法および第２の並び替え方法の双方を示す並替情報を送信する必要はなく、いずれか一方を示す並替情報を送信すれば足りる。
【００９４】
このように、ここでは図５に示す基本的な実施例に基づいて本発明の第１の実施形態の基本概念を説明したが、実際には、細かな部分を変更した様々なバリエーションが考えられる。そこで、以下の§３では、このようなバリエーションに係る実施例をいくつか述べることにする。
【００９５】
＜＜＜  §３．  第１の実施形態の具体的な実施例  ＞＞＞
本発明の第１の実施形態の特徴は、図５の例を用いてその基本概念を説明したように、認証を行う際に、図６に例示するような並び替え方法をランダムに定義し、暗号化処理を行う際に並び替え処理を行う点にある。以下、その具体的な実施例をいくつか説明する。
【００９６】
＜３−１．実施例Ａ：暗号化による照合その１＞
図８は、図５に示す第１の実施形態の実施例Ａを示すブロック図である。ここでは、この図８を参照しながら、実施例Ａに係る認証方法の基本概念を説明する。この実施例Ａでは、第１の情報処理装置１００Ａが第２の情報処理装置２００Ａの正当性を確認する処理が行われることになる。
【００９７】
図示のとおり、この実施例の場合、認証処理に関与する構成要素として、第１の情報処理装置１００Ａには、ランダムコード発生部１１０、照合用並替コード生成部１２０、照合用暗号コード生成部１３０、照合用並替暗号コード生成部１４０、照合判定部１５０、ランダムコード送信部１６０、並替暗号コード受信部１７０、テーブル復号部１８０が設けられている。ここで、構成要素１１０〜１７０は、図５に示す基本的実施例の構成要素１１０〜１７０と同一の構成要素である。また、構成要素１８０は、この実施例Ａにおいて新たに導入された構成要素であり、暗号化された状態で送信されてきた並び替えテーブルを復号する処理を行う構成要素である。
【００９８】
一方、第２の情報処理装置２００Ａには、ランダムコード受信部２１０、並替コード生成部２２０、暗号コード生成部２３０、並替暗号コード生成部２４０、並替暗号コード送信部２５０、テーブル暗号化部２６０、並替テーブル生成部２７０が設けられている。ここで、構成要素２１０〜２５０は、図５に示す基本的実施例の構成要素２１０〜２５０と同一の構成要素である。また、構成要素２６０，２７０は、この実施例Ａにおいて新たに導入された構成要素であり、コードの並び替え方法Ｘ１，Ｘ２を定義するために並び替えテーブルＴ１，Ｔ２を生成し、これを暗号化する処理を行う構成要素である。
【００９９】
結局、この図８に示す実施例Ａでは、図５に示す基本的実施例における第２の情報処理装置２００内に、乱数を利用して第１の並び替えテーブルＴ１および第２の並び替えテーブルＴ２を生成する並替テーブル生成部２７０と、これら第１の並び替えテーブルＴ１および第２の並び替えテーブルＴ２をそれぞれ暗号化し、第１の暗号化テーブルＴ１＊および第２の暗号化テーブルＴ２＊を生成するテーブル暗号化部２６０と、が追加されることになる。
【０１００】
並替テーブル生成部２７０は、ランダムコード受信部２１０が新たなランダムコードＲを受信するたびに、第１の並び替えテーブルＴ１および第２の並び替えテーブルＴ２を生成する処理を行う。そして、並替コード生成部２２０は、こうして生成された第１の並び替えテーブルＴ１によって定義される第１の並び替え方法Ｘ１（たとえば、図６(a) に示す方法）に基づいてランダムコードＲの構成要素を並び替えて並替コードＲ′を生成する処理を行う。同様に、並替暗号コード生成部２４０は、こうして生成された第２の並び替えテーブルＴ２によって定義される第２の並び替え方法Ｘ２（たとえば、図６(b) に示す方法）に基づいて暗号コードＱの構成要素を並び替えて並替暗号コードＱ′を生成する処理を行う。
【０１０１】
並び替えテーブルの具体的な形態は、図６(a) ，(b) に例示するように、ランダムコードＲや暗号コードＱの構成要素（個々の文字もしくは数字）の並び順を特定の並び替え方法に基づいて変更することを定義できるものであれば、どのような形態のものであってもかまわない。図示の例の場合、ランダムコードＲおよび暗号コードＱは、いずれも５つの構成要素によって構成されているため、並び替えテーブルＴ１，Ｔ２は、５つの構成要素についての並び替えを定義するテーブルになっているが、もちろん、並び替えテーブルは、ランダムコードＲおよび暗号コードＱの構成要素の数に応じたテーブルにしておくようにする。
【０１０２】
こうして生成された並び替えテーブルＴ１，Ｔ２は、テーブル暗号化部２６０において暗号化され、暗号テーブルＴ１＊，Ｔ２＊となる。したがって、並替暗号コード送信部２５０は、並替暗号コードＱ′とともに暗号テーブルＴ１＊，Ｔ２＊を第１の情報処理装置１００Ａに対して送信することになる。
【０１０３】
並替暗号コード受信部１７０は、こうして送信されてきた並替暗号コードＱ′および暗号テーブルＴ１＊，Ｔ２＊を受信する。受信した並替暗号コードＱ′は、照合判定部１５０に与えられ、受信した暗号テーブルＴ１＊，Ｔ２＊は、テーブル復号部１８０に与えられる。テーブル復号部１８０は、暗号テーブルＴ１＊，Ｔ２＊をそれぞれ復号し、元の並び替えテーブルＴ１，Ｔ２を復元する処理を行う。
【０１０４】
照合用並替コード生成部１２０は、こうして復元された第１の並び替えテーブルＴ１によって定義される第１の並び替え方法Ｘ１に基づいてランダムコードＲの構成要素を並び替えて並替コードＲ′を生成する処理を行う。同様に、照合用並替暗号コード生成部１４０は、こうして復元された第２の並び替えテーブルＴ２によって定義される第２の並び替え方法Ｘ２に基づいて暗号コードＱの構成要素を並び替えて並替暗号コードＱ′を生成する処理を行う。
【０１０５】
なお、並び替えテーブルＴ１，Ｔ２の暗号化および復号には、公開鍵暗号方式を利用するのが好ましい。具体的には、テーブル暗号化部２６０が、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて並び替えテーブルＴ１，Ｔ２の暗号化を行って暗号テーブルＴ１＊，Ｔ２＊を生成するようにし、テーブル復号部１８０が、上記一対の鍵のうちの他方の鍵を用いて暗号テーブルＴ１＊，Ｔ２＊に対する復号を行って元の並び替えテーブルＴ１，Ｔ２を生成するようにすればよい。
【０１０６】
たとえば、第１の情報処理装置１００Ａがサーバ装置、第２の情報処理装置２００Ａがクライアント装置の場合、テーブル暗号化部２６０は、サーバ装置１００Ａを管理する者の公開鍵を用いて暗号化を行い、テーブル復号部１８０は、サーバ装置１００Ａを管理する者の秘密鍵を用いて復号を行うことができる。
【０１０７】
上述したとおり、並び替えテーブルＴ１，Ｔ２は、図示する認証処理を行うたびに、第２の情報処理装置２００Ａ側で乱数を利用して新たに生成されるランダムなテーブルであるため、これを第１の情報処理装置１００Ａ側に送信する必要がある。ここに示す実施例Ａでは、並び替えテーブルＴ１，Ｔ２を暗号化して、暗号テーブルＴ１＊，Ｔ２＊の形で送信することができるので、通信傍受が行われても、並び替えテーブルＴ１，Ｔ２が直接露見することはない。したがって、不正な攻撃に対する防備をより高めることができる。
【０１０８】
なお、図６には、第１の並び替えテーブルＴ１および第２の並び替えテーブルＴ２として、それぞれ異なるテーブルを生成する例を示したが、テーブルＴ１，Ｔ２は、必ずしも異なるテーブルである必要はなく、同一のテーブルを用いるようにしてもかまわない。ただ、それぞれ異なるテーブルを用意した方が、不正な攻撃に対する防備を高める上では効果的であるので、実用上は、図６に示す例のように、第１の並び替えテーブルＴ１および第２の並び替えテーブルＴ２として、それぞれ異なるテーブルを生成するのが好ましい。
【０１０９】
続いて、図８を参照しながら、実施例Ａにおける認証方法の具体的な処理内容、すなわち、第１の情報処理装置１００Ａが第２の情報処理装置２００Ａを正当性が確認された装置として認証するための具体的手順を、データの流れを追って順に説明する。
【０１１０】
まず、ランダムコード発生部１１０において、乱数を利用して、構成要素となる文字もしくは数字を羅列したランダムコードＲを発生させるランダムコード発生段階が行われる。図示の例は、５つの数字を羅列したランダムコードＲ「１２３４５」が発生された例である。実用上は、１バイトで表現される数字をｎ個羅列したランダムコードＲを発生させるのが好ましい。そして、ランダムコード送信部１６０において、このランダムコードＲ「１２３４５」を第２の情報処理装置２００Ａに送信するランダムコード送信段階が行われる。
【０１１１】
続いて、ランダムコード受信部２１０において、送信されてきたランダムコードＲ「１２３４５」を受信するランダムコード受信段階が行われ、並替テーブル生成部２７０において、乱数を利用して、図６に例示するような第１の並び替えテーブルＴ１および第２の並び替えテーブルＴ２を生成する並替テーブル生成段階が行われる。
【０１１２】
そして、並替コード生成部２２０において、第１の並び替えテーブルＴ１に基づいて（第１の並び替え方法Ｘ１に基づいて）、ランダムコードＲ「１２３４５」の構成要素を並び替えて並替コードＲ′「３５２１４」を生成する並替コード生成段階が行われ、暗号コード生成部２３０において、所定の暗号アルゴリズムＡに基づく暗号化演算によって、並替コードＲ′「３５２１４」を暗号化して暗号コードＱ「ＣＥＢＡＤ」を生成する暗号コード生成段階が行われ、更に、並替暗号コード生成部２４０において、第２の並び替えテーブルＴ２に基づいて、暗号コードＱ「ＣＥＢＡＤ」の構成要素を並び替えて並替暗号コードＱ′「ＢＥＤＡＣ」を生成する並替暗号コード生成段階が行われる。
【０１１３】
また、テーブル暗号化部２６０では、第１の並び替えテーブルＴ１および第２の並び替えテーブルＴ２をそれぞれ暗号化し、第１の暗号化テーブルＴ１＊および第２の暗号化テーブルＴ２＊を生成するテーブル暗号化段階が行われる。そして、並替暗号コード送信部２５０において、並替暗号コードＱ′「ＢＥＤＡＣ」とともに、第１の暗号化テーブルＴ１＊および第２の暗号化テーブルＴ２＊を、第１の情報処理装置１００Ａに送信する並替暗号コード送信段階が行われる。
【０１１４】
一方、並替暗号コード受信部１７０では、送信を受けた並替暗号コードＱ′「ＢＥＤＡＣ」、ならびに、第１の暗号化テーブルＴ１＊および第２の暗号化テーブルＴ２＊を受信する並替暗号コード受信段階が行われ、テーブル復号部１８０では、第１の暗号化テーブルＴ１＊および第２の暗号化テーブルＴ２＊をそれぞれ復号し、第１の並び替えテーブルＴ１および第２の並び替えテーブルＴ２を復元するテーブル復号段階が行われる。
【０１１５】
そして、照合用並替コード生成部１２０において、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」の構成要素を、復元された第１の並び替えテーブルＴ１に基づいて並び替えて照合用並替コードＲ′「３５２１４」を生成する照合用並替コード生成段階が行われ、照合用暗号コード生成部１３０において、暗号コード生成部２３０が採用している暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく暗号化演算によって、照合用並替コードＲ′「３５２１４」を暗号化して照合用暗号コードＱ「ＣＥＢＡＤ」を生成する照合用暗号コード生成段階が行われ、更に、照合用並替暗号コード生成部１４０において、復元された第２の並び替えテーブルＴ２に基づいて、照合用暗号コードＱ「ＣＥＢＡＤ」の構成要素を並び替えて照合用並替暗号コードＱ′「ＢＥＤＡＣ」を生成する照合用並替暗号コード生成段階が行われる。
【０１１６】
そして、最後に、照合判定部１５０において、並替暗号コード受信部１７０が受信した並替暗号コードＱ′「ＢＥＤＡＣ」と、照合用並替暗号コード生成部１４０が生成した照合用並替暗号コードＱ′「ＢＥＤＡＣ」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００Ａを正当性が確認された装置と判定する照合判定段階が行われる。
【０１１７】
結局、この図８に示す実施例Ａに係る認証方法を採用した場合、第１の情報処理装置１００Ａから第２の情報処理装置２００Ａに対して、チャレンジとしてランダムコードＲ「１２３４５」が与えられると、並替コード生成部２２０において、このランダムコードＲ「１２３４５」は、第１の並び替えテーブルＴ１に基づいて並び替えられ、並替コードＲ′「３５２１４」に変換される。そして、暗号コード生成部２３０は、この並替コードＲ′「３５２１４」に対して暗号アルゴリズムＡに基づく暗号化処理を行って、暗号コードＱ「ＣＥＢＡＤ」を生成する。更に、並替暗号コード生成部２４０において、この暗号コードＱ「ＣＥＢＡＤ」は、第２の並び替えテーブルＴ２に基づいて並び替えられ、並替暗号コードＱ′「ＢＥＤＡＣ」に変換された後、この並替暗号コードＱ′「ＢＥＤＡＣ」がレスポンスとして返信されることになる。
【０１１８】
このとき、第１の情報処理装置１００Ａには、このレスポンスとともに、並び替えテーブルＴ１，Ｔ２が暗号化された状態で送信される。しかも、照合用暗号コード生成部１３０は、暗号コード生成部２３０と同じ暗号アルゴリズムＡを用いた暗号化処理を実行する機能を有している。したがって、第１の情報処理装置１００Ａ側においても、第２の情報処理装置２００Ａ側において実行された手順と同様の手順を実行して、ランダムコードＲ「１２３４５」→並替コードＲ′「３５２１４」→暗号コードＱ「ＣＥＢＡＤ」→並替暗号コードＱ′「ＢＥＤＡＣ」という変遷を辿って、並替暗号コードＱ′「ＢＥＤＡＣ」を得ることができ、最終的に、照合判定部１５０において、並替暗号コードＱ′「ＢＥＤＡＣ」の一致確認を行うことにより、第２の情報処理装置２００Ａの正当性が確認されることになる。
【０１１９】
この実施例Ａに示す認証方法が、通信傍受およびサイドチャネル解析を組み合わせた攻撃に対しても十分な防備機能を果たすことは、図７を用いて説明したとおりである。すなわち、図８に示す認証方法を採用した場合、通信傍受によって得られる情報は、図７に示すとおり、ランダムコードＲ「１２３４５」によるチャレンジに対して、並替暗号コードＱ′「ＢＥＤＡＣ」というレスポンスが得られるという事実である。
【０１２０】
ところが、このとき、暗号コード生成部２３０の内部で行われている暗号化処理の演算は、ランダムコードＲ「１２３４５」を並替暗号コードＱ′「ＢＥＤＡＣ」に変換する演算ではなく、並替コードＲ′「３５２１４」を暗号コードＱ「ＣＥＢＡＤ」に変換する演算であり、サイドチャネル解析によって得られる情報は、図７に示すとおり、並替コードＲ′「３５２１４」を暗号コードＱ「ＣＥＢＡＤ」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報ということになる。
【０１２１】
このように、通信傍受によりチャレンジ「１２３４５」とレスポンス「ＢＥＤＡＣ」とが特定されたとしても、実際に行われている暗号化処理の演算は、別なコード「３５２１４」を「ＣＥＢＡＤ」に変換する演算であるため、両者を組み合わせた解析を行ったとしても、暗号アルゴリズムＡを推定することは困難になる。
【０１２２】
＜３−２．実施例Ｂ：暗号化による照合その２＞
続いて、図９を参照しながら、本発明の第１の実施形態の実施例Ｂを説明する。この実施例Ｂでは、第１の情報処理装置１００Ｂが第２の情報処理装置２００Ｂの正当性を確認する処理が行われることになる。実施例Ｂは、前述した実施例Ａにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例Ａとほぼ同じである。そこで、以下、実施例Ａとの相違点についての説明のみを行う。
【０１２３】
まず、第２の情報処理装置２００Ｂについては、実施例Ａに示す第２の情報処理装置２００Ａの構成と全く同じであるため、ここでは説明を省略する。また、第１の情報処理装置１００Ｂについては、構成要素１１０，１２０，１６０，１７０，１８０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素１３０，１４０，１５０の代わりに、照合用暗号コード第１生成部１３０Ｂ，照合用暗号コード第２生成部１４０Ｂ，照合判定部１５０Ｂが設けられている点である。そこで、以下、これら３つの構成要素の機能について説明する。なお、実施例Ｂの構成要素のうち、実施例Ａの構成要素と異なるものについては、符号末尾に「Ｂ」を付して示してある。
【０１２４】
はじめに、照合用暗号コード第１生成部１３０Ｂは、実際には、実施例Ａにおける照合用暗号コード生成部１３０と全く同じ機能をもった構成要素であり、暗号コード生成部２３０において実行される暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく暗号化演算によって、照合用並替コードＲ′「３５２１４」を暗号化して照合用暗号コードＱ「ＣＥＢＡＤ」を生成する照合用暗号コード第１生成段階を実行する。したがって、図９においても、「照合用暗号コード第１生成部１３０Ｂ」と呼ばずに「照合用暗号コード生成部１３０」と呼んでもよいが、ここでは、構成要素１４０Ｂとの混同を避けるため、名称に「第１」を挿入しているため、符号も「１３０」ではなく新たな符号「１３０Ｂ」を付している。
【０１２５】
一方、照合用暗号コード第２生成部１４０Ｂは、第２の並び替えテーブルＴ２を逆転させたテーブルに基づいて、並替暗号コード受信部１７０が受信した並替暗号コードＱ′「ＢＥＤＡＣ」の構成要素を並び替えて、照合用暗号コードＱ「ＣＥＢＡＤ」を生成する照合用暗号コード第２生成段階を行う構成要素である。照合用暗号コード第１生成部１３０Ｂも照合用暗号コード第２生成部１４０Ｂも、照合用暗号コードＱ「ＣＥＢＡＤ」を生成する機能をもった構成要素であるが、前者が、照合用並替コードＲ′「３５２１４」に対する暗号化処理によって照合用暗号コードＱ「ＣＥＢＡＤ」を生成するのに対して、後者は、並替暗号コードＱ′「ＢＥＤＡＣ」に対する並び替え処理によって照合用暗号コードＱ「ＣＥＢＡＤ」を生成することになる。
【０１２６】
ここで、第２の並び替えテーブルＴ２を逆転させたテーブルとは、図６(b) に示すテーブルＴ２とは逆の並び替えを示すテーブル、すなわち、図の矢印の向きを逆転させて、下段の並び順から上段の並び順に変換する並び替え方法を示すテーブルを意味する。なお、本願の図では、任意の並び替えテーブルＴを逆転させたテーブルを、符号Ｔの上部にバーを付した符号で示し、任意の並び替え方法Ｘを逆転させた並び替え方法を、符号Ｘの上部にバーを付した符号で示すことにする。また、明細書中では、それぞれテーブルＴバー、並び替え方法Ｘバーと表記する。
【０１２７】
上述したように、照合用暗号コード第２生成部１４０Ｂは、与えられた並替暗号コードＱ′「ＢＥＤＡＣ」を、照合用暗号コードＱ「ＣＥＢＡＤ」に変換する処理を行うが、当該処理は、逆転テーブルＴ２バーによって示された並び替え方法Ｘ２バーに基づく並び替え処理ということになる。
【０１２８】
なお、実際には、各並べ替えテーブルＴは可換性を有するテーブルであり、テーブルＴと逆転テーブルＴバーとは本質的には同じ情報をもったテーブルということができ、テーブルに記述された並び替え操作を作用させる方向が異なっているだけである。したがって、図では、照合用暗号コード第２生成部１４０Ｂが、逆転テーブルＴ２バーに基づいて並べ替え処理を行うような記載がなされているが、実用上は、テーブル復号部１８０からは第２の並び替えテーブルＴ２をそのまま与え、照合用暗号コード第２生成部１４０Ｂでは、このテーブルＴ２を逆方向に作用させた並び替えを行うようにすればよい。以下の各実施例においても同様である。
【０１２９】
結局、この実施例Ｂにおける照合用暗号コード第２生成部１４０Ｂは、並替暗号コード生成部２４０とは逆の並び替え処理を行い、並替暗号コードＱ′「ＢＥＤＡＣ」を、照合用暗号コードＱ「ＣＥＢＡＤ」に変換していることになる。別言すれば、この実施例Ｂでは、照合判定を行う際に、並替暗号コード生成部２４０による並び替え処理によって得られた並替暗号コードＱ′「ＢＥＤＡＣ」を、元の並び順をもった暗号コードＱ「ＣＥＢＡＤ」の状態に戻し、その状態での一致確認を行うことにより照合を行うことになる。
【０１３０】
すなわち、照合判定部１５０Ｂは、照合用暗号コード第１生成部１３０Ｂが生成した照合用暗号コードＱ「ＣＥＢＡＤ」と、照合用暗号コード第２生成部１４０Ｂが生成した照合用暗号コードＱ「ＣＥＢＡＤ」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００Ｂを正当性が確認された装置と判定する照合判定段階を実行することになる。
【０１３１】
要するに、実施例Ａの場合は、暗号コードＱ「ＣＥＢＡＤ」に対して並び替えを行うことによって得られる並替暗号コードＱ′「ＢＥＤＡＣ」の状態で一致判定を行っていたのに対して、実施例Ｂの場合は、並替暗号コードＱ′「ＢＥＤＡＣ」を並び替え前の状態である暗号コードＱ「ＣＥＢＡＤ」に戻し、暗号コードＱ「ＣＥＢＡＤ」の状態で一致判定を行うことになる。したがって、実施例Ａ，Ｂに本質的な相違はなく、実施例Ｂについても実施例Ａと同じ作用効果が得られる。
【０１３２】
＜３−３．実施例Ｃ：復号による照合その１＞
ここでは、図１０を参照しながら、本発明の第１の実施形態の実施例Ｃを説明する。この実施例Ｃでは、第１の情報処理装置１００Ｃが第２の情報処理装置２００Ｃの正当性を確認する処理が行われることになる。実施例Ｃは、前述した実施例Ａにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例Ａとほぼ同じである。そこで、以下、実施例Ａとの相違点についての説明のみを行う。
【０１３３】
まず、第２の情報処理装置２００Ｃについては、実施例Ａに示す第２の情報処理装置２００Ａの構成と全く同じであるため、ここでは説明を省略する。また、第１の情報処理装置１００Ｃについては、構成要素１１０，１６０，１７０，１８０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素１２０，１３０，１４０，１５０の代わりに、照合用ランダムコード生成部１２０Ｃ，照合用並替コード生成部１３０Ｃ，照合用暗号コード生成部１４０Ｃ，照合判定部１５０Ｃが設けられている点である。そこで、以下、これら４つの構成要素の機能について説明する。なお、実施例Ｃの構成要素のうち、実施例Ａの構成要素と異なるものについては、符号末尾に「Ｃ」を付して示してある。
【０１３４】
はじめに、照合用暗号コード生成部１４０Ｃは、第２の並び替えテーブルＴ２を逆転させたテーブルＴ２バーに基づいて、並替暗号コード受信部１７０が受信した並替暗号コードＱ′「ＢＥＤＡＣ」の構成要素を並び替えて照合用暗号コードＱ「ＣＥＢＡＤ」を生成する照合用暗号コード生成段階を行う構成要素である。この照合用暗号コード生成部１４０Ｃの機能は、実施例Ｂの照合用暗号コード第２生成部１４０Ｂの機能と全く同じであり、詳しい説明は省略する。
【０１３５】
次に、照合用並替コード生成部１３０Ｃは、暗号コード生成部２３０が暗号化処理を行う際に利用した暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく復号演算によって、照合用暗号コードＱ「ＣＥＢＡＤ」を復号して照合用並替コードＲ′「３５２１４」を生成する照合用並替コード生成段階を行う構成要素である。暗号コード生成部２３０は、暗号アルゴリズムＡに基づく暗号化演算により、並替コードＲ′「３５２１４」に対する暗号化を行い、暗号コードＱ「ＣＥＢＡＤ」を生成する処理を行ったが、照合用並替コード生成部１３０Ｃは、これと全く逆の処理により、暗号コードＱ「ＣＥＢＡＤ」を復号して元の並替コードＲ′「３５２１４」に戻す処理を行うことになる。
【０１３６】
一方、照合用ランダムコード生成部１２０Ｃは、第１の並び替えテーブルＴ１を逆転させたテーブルＴ１バーに基づいて、照合用並替コードＲ′「３５２１４」の構成要素を並び替えて照合用ランダムコードＲ「１２３４５」を生成する照合用ランダムコード生成段階を行う構成要素である。ここで、第１の並び替えテーブルＴ１を逆転させたテーブルＴ１バーとは、図６(a) に示すテーブルＴ１とは逆の並び替えを示すテーブル、すなわち、図の矢印の向きを逆転させて、下段の並び順から上段の並び順に変換する並び替え方法を示すテーブルを意味する。
【０１３７】
なお、前述したとおり、図では、照合用ランダムコード生成部１２０Ｃや照合用暗号コード生成部１４０Ｃが、逆転テーブルＴ１バーやＴ２バーに基づいて並べ替え処理を行うような記載がなされているが、実用上は、テーブル復号部１８０から与えられたテーブルＴ１，Ｔ２を逆方向に作用させた並び替えを行うようにすればよい。
【０１３８】
そして、照合判定部１５０Ｃは、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」と、照合用ランダムコード生成部１２０Ｃが生成した照合用ランダムコードＲ「１２３４５」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００Ｃを正当性が確認された装置と判定する照合判定段階を行う構成要素である。
【０１３９】
結局、この実施例Ｃでは、第２の情報処理装置２００Ｃにおいて、ランダムコードＲ「１２３４５」→並替コードＲ′「３５２１４」→暗号コードＱ「ＣＥＢＡＤ」→並替暗号コードＱ′「ＢＥＤＡＣ」という暗号化処理を伴う変遷を辿って、並替暗号コードＱ′「ＢＥＤＡＣ」を得る点は、これまで述べてきた実施例Ａと全く同じであるが、第１の情報処理装置１００Ｃにおける認証プロセスでは、逆に、並替暗号コードＱ′「ＢＥＤＡＣ」→暗号コードＱ「ＣＥＢＡＤ」→並替コードＲ′「３５２１４」→ランダムコードＲ「１２３４５」という復号処理を伴う変遷を辿ってランダムコードＲ「１２３４５」を得て、これが元のランダムコードＲ「１２３４５」に一致するか否かを確認することにより、第２の情報処理装置２００Ｃの正当性が確認されることになる。
【０１４０】
要するに、実施例Ａの場合は、第１の情報処理装置１００において、暗号化を経た照合が行われていたのに対し、実施例Ｃの場合は、第１の情報処理装置１００Ｃにおいて、復号を経た照合が行われることになる。したがって、実施例Ａ，Ｃに本質的な相違はなく、実施例Ｃについても実施例Ａと同じ作用効果が得られる。
【０１４１】
＜３−４．実施例Ｄ：復号による照合その２＞
ここでは、図１１を参照しながら、本発明の第１の実施形態の実施例Ｄを説明する。この実施例Ｄでは、第１の情報処理装置１００Ｄが第２の情報処理装置２００Ｄの正当性を確認する処理が行われることになる。実施例Ｄは、前述した実施例Ａにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例Ａとほぼ同じである。そこで、以下、実施例Ａとの相違点についての説明のみを行う。
【０１４２】
まず、第２の情報処理装置２００Ｄについては、実施例Ａに示す第２の情報処理装置２００Ａの構成と全く同じであるため、ここでは説明を省略する。また、第１の情報処理装置１００Ｄについては、構成要素１１０，１６０，１７０，１８０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素１２０，１３０，１４０，１５０の代わりに、照合用並替コード第２生成部１２０Ｄ，照合用並替コード第１生成部１３０Ｄ，照合用暗号コード生成部１４０Ｄ，照合判定部１５０Ｄが設けられている点である。そこで、以下、これら４つの構成要素の機能について説明する。なお、実施例Ｄの構成要素のうち、実施例Ａの構成要素と異なるものについては、符号末尾に「Ｄ」を付して示してある。
【０１４３】
はじめに、照合用暗号コード生成部１４０Ｄは、第２の並び替えテーブルＴ２を逆転させたテーブルＴ２バーに基づいて、並替暗号コード受信部１７０が受信した並替暗号コードＱ′「ＢＥＤＡＣ」の構成要素を並び替えて照合用暗号コードＱ「ＣＥＢＡＤ」を生成する照合用暗号コード生成段階を行う構成要素である。この照合用暗号コード生成部１４０Ｄの機能は、実施例Ｂの照合用暗号コード第２生成部１４０Ｂの機能と全く同じであり、詳しい説明は省略する。
【０１４４】
次に、照合用並替コード第１生成部１３０Ｄは、暗号コード生成部２３０が暗号化処理を行う際に利用した暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく復号演算によって、照合用暗号コードＱ「ＣＥＢＡＤ」を復号して照合用並替コードＲ′「３５２１４」を生成する照合用並替コード第１生成段階を行う構成要素である。暗号コード生成部２３０は、暗号アルゴリズムＡに基づく暗号化演算により、並替コードＲ′「３５２１４」に対する暗号化を行い、暗号コードＱ「ＣＥＢＡＤ」を生成する処理を行ったが、照合用並替コード第１生成部１３０Ｄは、これと全く逆の処理により、暗号コードＱ「ＣＥＢＡＤ」を復号して元の並替コードＲ′「３５２１４」に戻す処理を行うことになる。
【０１４５】
この照合用並替コード第１生成部１３０Ｄは、実際には、実施例Ｃにおける照合用並替コード生成部１３０Ｃと全く同じ機能をもった構成要素であるが、照合用並替コード第２生成部１２０Ｄとの混同を避けるため、ここでは、構成要素１３０Ｄについては名称に「第１」を挿入し、構成要素１２０Ｄについては名称に「第２」を挿入して、それぞれ照合用並替コード第１生成部１３０Ｄおよび照合用並替コード第２生成部１２０Ｄと呼ぶことにする。
【０１４６】
この照合用並替コード第２生成部１２０Ｄは、第１の並び替えテーブルＴ１に基づいて、ランダムコード発生部１１０で発生させたランダムコードＲ「１２３４５」の構成要素を並び替えて、照合用並替コードＲ′「３５２１４」を生成する照合用並替コード第２生成段階を実行する構成要素である。この照合用並替コード第２生成部１２０Ｄは、実際には、実施例Ａにおける照合用並替コード生成部１２０と全く同じ機能をもった構成要素であるが、上述したように、照合用並替コード第１生成部１３０Ｄとの混同を避けるため、ここでは、照合用並替コード第２生成部１２０Ｄと呼んでいる。
【０１４７】
そして、照合判定部１５０Ｄは、照合用並替コード第１生成部１３０Ｄが生成した照合用並替コードＲ′「３５２１４」と、照合用並替コード第２生成部１２０Ｄが生成した照合用並替コードＲ′「３５２１４」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００Ｄを正当性が確認された装置と判定する照合判定段階を行う構成要素である。
【０１４８】
結局、この実施例Ｃでは、第２の情報処理装置２００Ｄにおいて、ランダムコードＲ「１２３４５」→並替コードＲ′「３５２１４」→暗号コードＱ「ＣＥＢＡＤ」→並替暗号コードＱ′「ＢＥＤＡＣ」という暗号化処理を伴う変遷を辿って、並替暗号コードＱ′「ＢＥＤＡＣ」を得る点は、これまで述べてきた実施例Ａと全く同じであるが、第１の情報処理装置１００Ｄにおける認証プロセスでは、逆に、並替暗号コードＱ′「ＢＥＤＡＣ」→暗号コードＱ「ＣＥＢＡＤ」→並替コードＲ′「３５２１４」という復号処理を伴う変遷を辿って並替コードＲ′「３５２１４」を得るとともに、元のランダムコードＲ「１２３４５」→並替コードＲ′「３５２１４」という並べ替えを行い、得られた２通りの並替コードＲ′「３５２１４」が一致するか否かを確認することにより、第２の情報処理装置２００Ｄの正当性が確認されることになる。したがって、実施例Ａ，Ｄに本質的な相違はなく、実施例Ｄについても実施例Ａと同じ作用効果が得られる。
【０１４９】
＜３−５．実施例Ｅ：暗号化による簡易照合＞
次に、図１２を参照しながら、本発明の第１の実施形態の実施例Ｅを説明する。この実施例Ｅでは、第１の情報処理装置１００Ｅが第２の情報処理装置２００Ｅの正当性を確認する処理が行われることになる。実施例Ｅは、前述した実施例Ａにおける照合プロセスを一部簡略化したものであり、基本的な構成は、実施例Ａとほぼ同じである。そこで、以下、実施例Ａとの相違点についての説明のみを行う。
【０１５０】
まず、第２の情報処理装置２００Ｅについては、構成要素２１０，２２０，２３０，２４０，２７０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素２５０，２６０の代わりに、並替暗号コード送信部２５０Ｅ，テーブル暗号化部２６０Ｅが設けられている点である。
【０１５１】
一方、第１の情報処理装置１００Ｅについては、構成要素１１０，１２０，１３０，１６０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素１４０に相当する構成要素が省略されている点と、構成要素１５０，１７０，１８０の代わりに、照合判定部１５０Ｅ，並替暗号コード受信部１７０Ｅ，テーブル復号部１８０Ｅが設けられている点である。そこで、以下、これらの相違点について説明する。なお、実施例Ｅの構成要素のうち、実施例Ａの構成要素と異なるものについては、符号末尾に「Ｅ」を付して示してある。
【０１５２】
この実施例Ｅの根本的な特徴は、実施例Ａにおける第２の情報処理装置２００から第１の情報処理装置１００への第２の暗号化テーブルＴ２＊の送信を省略し、第１の情報処理装置１００側での第２の並び替え方法Ｘ２による並び替え作業を省略する点にある。
【０１５３】
したがって、第２の情報処理装置２００Ｅ側では、並替テーブル生成部２７０において２組のテーブルＴ１，Ｔ２を生成し、並替コード生成部２２０における並び替え作業および並替暗号コード生成部２４０における並び替え作業が行われる点は、実施例Ａと同じであるが、テーブル暗号化部２６０Ｅにおいて行われるテーブル暗号化段階では、第１の並び替えテーブルＴ１を暗号化し、第１の暗号化テーブルＴ１＊を生成する処理が行われるものの、第２の並び替えテーブルＴ２の暗号化は省略される。また、並替暗号コード送信部２５０Ｅにおいて行われる並替暗号コード送信段階では、並替暗号コードＱ′「ＢＥＤＡＣ」とともに第１の暗号化テーブルＴ１＊が、第１の情報処理装置１００Ｅに送信されるが、第２の暗号化テーブルＴ２＊の送信は省略される。
【０１５４】
このように、第２の暗号化テーブルＴ２＊の送信を省略したため、第１の情報処理装置１００Ｅ側の処理も若干変わってくる。すなわち、並替暗号コード受信部１７０Ｅでは、並替暗号コードＱ′「ＢＥＤＡＣ」とともに第１の暗号化テーブルＴ１＊の受信が行われるが、第２の暗号化テーブルＴ２＊は受信されない。また、テーブル復号部１８０Ｅでは、第１の暗号化テーブルＴ１＊を復号し、第１の並び替えテーブルＴ１を復元する処理が行われるが、第２の暗号化テーブルＴ２＊の復号は行われない。
【０１５５】
結局、第１の情報処理装置１００Ｅ側には、第２の並び替えテーブルＴ２の情報が伝わらないので、第２の並び替えテーブルＴ２に基づく並び替え作業を行うことはできない。図８に示す実施例Ａでは、この第２の並び替えテーブルＴ２に基づく並び替え作業を行うために、照合用並替暗号コード生成部１４０が設けられていたが、図１２に示す実施例Ｅでは、この構成要素１４０に相当するものは省略されている。その結果、照合用暗号コード生成部１３０によって生成された照合用暗号コードＱ「ＣＥＢＡＤ」が、そのままの状態で照合判定部１５０Ｅに与えられることになる。
【０１５６】
これは、照合判定部１５０Ｅが、実施例Ａの照合判定部１５０と同じ方法では照合判定を実行できないことを意味する。図示の具体例の場合も、照合用暗号コード生成部１３０から与えられる照合用暗号コードＱ「ＣＥＢＡＤ」と、並替暗号コード受信部１７０Ｅから与えられる並替暗号コードＱ′「ＢＥＤＡＣ」とは一致していない。
【０１５７】
しかしながら、照合用暗号コードＱ「ＣＥＢＡＤ」を、第２の並び替えテーブルＴ２に基づいて並び替えれば、並替暗号コードＱ′「ＢＥＤＡＣ」が得られるのであるから、並び順を無視して、構成要素となるメンバーが対応しているか否かを照合すれば、両者は対応していることになる。すなわち、上例の場合、いずれのコードも、構成要素となるメンバーは、「Ａ」，「Ｂ」，「Ｃ」，「Ｄ」，「Ｅ」の５つのアルファベットであり、構成要素は並び順を無視すれば相互に対応していることになる。
【０１５８】
そこで、この実施例Ｅの場合、照合判定部１５０Ｅは、並替暗号コード受信部１７０Ｅが受信した並替暗号コードＱ′「ＢＥＤＡＣ」に含まれている構成要素（Ａ〜Ｅの５文字）と、照合用暗号コード生成部１３０が生成した照合用暗号コードＱ「ＣＥＢＡＤ」に含まれている構成要素（Ａ〜Ｅの５文字）と、が対応するか否かを照合し、対応する場合に、第２の情報処理装置２００Ｅを正当性が確認された装置と判定する照合判定段階を行う。
【０１５９】
このように、実施例Ｅでは、第１の情報処理装置１００Ｅ側で行う照合判定の基準が、これまで述べてきた実施例Ａ〜Ｄに比べて緩和されている。すなわち、照合対象となる２組のコードの並び順まで含めた完全一致を判定する代わりに、並び順は不問として構成要素の１対１対応を判定することになる。このため、この実施例Ｅは、実施例Ａ〜Ｄに比べて認証の厳格性は若干低下することになるが、第２の情報処理装置２００Ｅ側では、第２の並び替えテーブルＴ２を送信するための処理を省略することができ、第１の情報処理装置１００Ｅ側では、第２の並び替えテーブルＴ２に関する受信処理や並び替え処理を省略することができるので、処理を簡素化できるメリットが得られる。なお、実施例では、説明の便宜上、５桁のランダムコードＲを用いた単純な例を示したが、実際には、格段に多い桁数のランダムコードＲを用いるのが一般的であり、並び順を不問として構成要素の１対１対応を判定する方法を採っても、正しくないコードが偶然に一致してしまう確率は極めて低く、実用上は、この実施例Ｅを採用しても支障は生じない。
【０１６０】
＜３−６．実施例Ｆ：復号による簡易照合＞
続いて、図１３を参照しながら、本発明の第１の実施形態の実施例Ｆを説明する。この実施例Ｆでは、第１の情報処理装置１００Ｆが第２の情報処理装置２００Ｆの正当性を確認する処理が行われることになる。実施例Ｆは、実施例Ｅと同様に、実施例Ａにおける照合プロセスを一部簡略化したものであり、基本的な構成は、実施例Ａとほぼ同じである。そこで、以下、実施例Ａとの相違点についての説明のみを行う。
【０１６１】
まず、第２の情報処理装置２００Ｆについては、構成要素２１０，２２０，２３０，２４０，２７０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素２５０，２６０の代わりに、並替暗号コード送信部２５０Ｆ，テーブル暗号化部２６０Ｆが設けられている点である。
【０１６２】
一方、第１の情報処理装置１００Ｆについては、構成要素１１０，１６０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素１２０に相当する構成要素が省略されている点と、構成要素１３０，１４０，１５０，１７０，１８０の代わりに、照合用並替コード生成部１３０Ｆ，照合用暗号コード生成部１４０Ｆ，照合判定部１５０Ｆ，並替暗号コード受信部１７０Ｅ，テーブル復号部１８０Ｅが設けられている点である。そこで、以下、これらの相違点について説明する。なお、実施例Ｆの構成要素のうち、実施例Ａの構成要素と異なるものについては、符号末尾に「Ｆ」を付して示してある。
【０１６３】
この実施例Ｆの根本的な特徴は、実施例Ａにおける第２の情報処理装置２００から第１の情報処理装置１００への第１の暗号化テーブルＴ１＊の送信を省略し、第１の情報処理装置１００側での第１の並び替え方法Ｘ１による並び替え作業を省略する点にある。すなわち、前述した実施例Ｅでは、第２の暗号化テーブルＴ２＊の送信を省略していたのに対して、ここで述べる実施例Ｆでは、第１の暗号化テーブルＴ１＊の送信を省略している点が異なっている。
【０１６４】
このため、第２の情報処理装置２００Ｆ側では、並替テーブル生成部２７０において２組のテーブルＴ１，Ｔ２を生成し、並替コード生成部２２０における並び替え作業および並替暗号コード生成部２４０における並び替え作業が行われる点は、実施例Ａと同じであるが、テーブル暗号化部２６０Ｆにおいて行われるテーブル暗号化段階では、第２の並び替えテーブルＴ２を暗号化し、第２の暗号化テーブルＴ２＊を生成する処理が行われるものの、第１の並び替えテーブルＴ１の暗号化は省略される。また、並替暗号コード送信部２５０Ｆにおいて行われる並替暗号コード送信段階では、並替暗号コードＱ′「ＢＥＤＡＣ」とともに第２の暗号化テーブルＴ２＊が、第１の情報処理装置１００Ｆに送信されるが、第１の暗号化テーブルＴ１＊の送信は省略される。
【０１６５】
このように、第１の暗号化テーブルＴ１＊の送信を省略したため、第１の情報処理装置１００Ｆ側の処理も若干変わってくる。すなわち、並替暗号コード受信部１７０Ｆでは、並替暗号コードＱ′「ＢＥＤＡＣ」とともに第２の暗号化テーブルＴ２＊の受信が行われるが、第１の暗号化テーブルＴ１＊は受信されない。また、テーブル復号部１８０Ｆでは、第２の暗号化テーブルＴ２＊を復号し、第２の並び替えテーブルＴ２を復元する処理が行われるが、第１の暗号化テーブルＴ１＊の復号は行われない。
【０１６６】
結局、第１の情報処理装置１００Ｆ側には、第１の並び替えテーブルＴ１の情報が伝わらないので、第１の並び替えテーブルＴ１に基づく並び替え作業を行うことはできない。すなわち、第１の情報処理装置１００Ｆ側では、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」に対する並び替え作業を行うことができないので、第２の情報処理装置２００Ｆ側で行われた暗号化処理に対応する処理を行うことができないことになる。そこで、第１の情報処理装置１００Ｆ側で行う照合判定作業は、暗号化処理ではなく復号処理を前提としたものにならざるを得ない。
【０１６７】
このような観点から、この実施例Ｆでは、前述した実施例Ｃに類似した処理（復号による照合処理）を行うことになる。その基本概念は、図１０に示す実施例Ｃにおいて、照合用ランダムコード生成部１２０Ｃを省略し、照合用並替コード生成部１３０Ｃによって生成された照合用並替コードＲ′「３５２１４」を照合判定部１５０Ｃに直接与え、照合判定部１５０Ｃにおいて、２組のコードの並び順まで含めた完全一致を判定する代わりに、並び順は不問として構成要素の１対１対応を判定するように改変することにある。
【０１６８】
具体的には、照合用暗号コード生成部１４０Ｆにおいて、第２の並び替えテーブルＴ２を逆転させたテーブルＴ２バーに基づいて、並替暗号コード受信部１７０Ｆが受信した並替暗号コードＱ′「ＢＥＤＡＣ」の構成要素を並び替えて照合用暗号コードＱ「ＣＥＢＡＤ」を生成する照合用暗号コード生成段階が行われる。続いて、照合用並替コード生成部１３０Ｆにおいて、暗号コード生成部２３０の暗号化処理に利用された暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく復号演算を行い、照合用暗号コードＱ「ＣＥＢＡＤ」を復号して照合用並替コードＲ′「３５２１４」を生成する照合用並替コード生成段階が行われる。
【０１６９】
上述したとおり、第１の情報処理装置１００Ｆ側には、第１の並び替えテーブルＴ１に関する情報は伝えられていないので、照合用並替コード生成部１３０Ｆによって生成された照合用並替コードＲ′「３５２１４」に対する並び替えを行うことはできない。そのため、この照合用並替コードＲ′「３５２１４」は、そのままの状態で照合判定部１５０Ｆに与えられることになる。
【０１７０】
これは、照合判定部１５０Ｆが、実施例Ｃの照合判定部１５０Ｃと同じ方法では照合判定を実行できないことを意味する。図示の具体例の場合も、照合用並替コード生成部１３０Ｆから与えられる照合用並替コードＲ′「３５２１４」と、ランダムコード発生部１１０から与えられるランダムコードＲ「１２３４５」とは一致していない。
【０１７１】
しかしながら、ランダムコードＲ「１２３４５」を、第１の並び替えテーブルＴ１に基づいて並び替えれば、照合用並替コードＲ′「３５２１４」が得られるのであるから、並び順を無視して、構成要素となるメンバーが対応しているか否かを照合すれば、両者は対応していることになる。すなわち、上例の場合、いずれのコードも、構成要素となるメンバーは、「１」，「２」，「３」，「４」，「５」の５つの数字であり、構成要素は相互に対応していることになる。
【０１７２】
そこで、この実施例Ｆの場合、照合判定部１５０Ｆは、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」に含まれている構成要素と、照合用並替コード生成部１３０Ｆが生成した照合用並替コードＲ′「３５２１４」に含まれている構成要素と、が対応するか否かを照合し、対応する場合に、第２の情報処理装置を正当性が確認された装置と判定する照合判定段階を行う。
【０１７３】
このように、実施例Ｆでは、実施例Ｅと同様に、第１の情報処理装置１００Ｅ側で行う照合判定の基準が、これまで述べてきた実施例Ａ〜Ｄに比べて緩和されているので認証の厳格性は若干低下することになるが、第２の情報処理装置２００Ｆ側では、第１の並び替えテーブルＴ１を送信するための処理を省略することができ、第１の情報処理装置１００Ｆ側では、第１の並び替えテーブルＴ１に関する受信処理や並び替え処理を省略することができるので、処理を簡素化できるメリットが得られる。
【０１７４】
＜３−７．実施例Ｇ：一方向性関数の利用＞
ここでは、図１４を参照しながら、本発明の第１の実施形態の実施例Ｇを説明する。この実施例Ｇでは、第１の情報処理装置１００Ｇが第２の情報処理装置２００Ｇの正当性を確認する処理が行われることになる。実施例Ｇは、前述した実施例Ａにおけるプロセスを若干変更したものであり、基本的な構成は、実施例Ａとほぼ同じである。そこで、以下、実施例Ａとの相違点についての説明のみを行う。
【０１７５】
まず、第２の情報処理装置２００Ｇについては、構成要素２１０，２３０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素２２０，２４０，２５０，２６０，２７０の代わりに、並替コード生成部２２０Ｇ，一方向性関数値生成部２４０Ｇ，関数値送信部２５０Ｇ、テーブル暗号化部２６０Ｇ，並替テーブル生成部２７０Ｇが設けられている点である。
【０１７６】
一方、第１の情報処理装置１００Ｇについては、構成要素１１０，１３０，１６０は、実施例Ａにおいて同一符号を付した構成要素と全く同じである。実施例Ａとの相違点は、構成要素１２０，１４０，１５０，１７０，１８０の代わりに、照合用並替コード生成部１２０Ｇ，照合用一方向性関数値生成部１４０Ｇ，照合判定部１５０Ｇ，関数値受信部１７０Ｇ，テーブル復号部１８０Ｇが設けられている点である。そこで、以下、これらの相違点について説明する。なお、実施例Ｇの構成要素のうち、実施例Ａの構成要素と異なるものについては、符号末尾に「Ｇ」を付して示してある。
【０１７７】
この実施例Ｇの根本的な特徴は、実施例Ａにおける第１の並び替えテーブルＴ１に相当する並び替えは行うものの、第２の並び替えテーブルＴ２に相当する並び替えは行わず、その代わりに一方向性関数を作用させる演算を行う点にある。そこで、この実施例Ｇでは、実施例Ａにおける「第１の並び替えテーブルＴ１」および「第１の並び替え方法Ｘ１」に対応する用語として、単に、「並び替えテーブルＴ」および「並び替え方法Ｘ」という文言を用いることにする。
【０１７８】
なお、実施例Ｇにおける並替コード生成部２２０Ｇは、実際には、実施例Ａにおける並替コード生成部２２０と全く同じ構成要素であり、実施例Ｇにおける照合用並替コード生成部１２０Ｇは、実際には、実施例Ａにおける照合用並替コード生成部１２０と全く同じ構成要素である。それにもかかわらず、実施例Ｇにおいて、これらの構成要素について末尾に符号Ｇを付加して区別したのは、上述したように、実施例Ａにおける「第１の並び替えテーブルＴ１」および「第１の並び替え方法Ｘ１」を、実施例Ｇでは単に「並び替えテーブルＴ」および「並び替え方法Ｘ」と呼ぶことにしたためである。
【０１７９】
すなわち、並替コード生成部２２０Ｇは、並び替えテーブルＴに基づいて、ランダムコードＲ「１２３４５」の構成要素を並び替えて並替コードＲ′「３５２１４」を生成する並替コード生成段階を行う構成要素であり、照合用並替コード生成部１２０Ｇは、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」の構成要素を、並び替えテーブルＴに基づいて並び替えて照合用並替コードＲ′「３５２１４」を生成する照合用並替コード生成段階を行う構成要素である。実質的には、これらの各構成要素は、実施例Ａにおける並替コード生成部２２０および照合用並替コード生成部１２０と同じ構成要素であるが、上述したように「並び替えテーブル」および「並び替え方法」に関する用語を使い分けるようにしたため、便宜上、末尾に符号Ｇを付加して区別している。
【０１８０】
このように、実施例Ｇでは、単一の並び替えテーブルＴしか用いられないので、並替テーブル生成部２７０Ｇは、単一の並び替えテーブルＴを生成すれば足り、テーブル暗号化部２６０Ｇは、この単一の並び替えテーブルＴに対する暗号化を行って、単一の暗号化テーブルＴ＊を生成すれば足りる。
【０１８１】
実施例Ｇと実施例Ａとの本質的な相違は、暗号コード生成部２３０が、並替コードＲ′「３５２１４」に対する暗号化処理を行って暗号コードＱ「ＣＥＢＡＤ」を生成した後、この暗号コードＱ「ＣＥＢＡＤ」に対して並び替えを行う代わりに、一方向性関数を作用させる演算を行う点である。
【０１８２】
そのため、一方向性関数値生成部２４０Ｇにおいて、暗号コードＱ「ＣＥＢＡＤ」に対して一方向性関数を作用させて所定の関数値Ｈを生成する一方向性関数値生成段階が行われる。ここで一方向性関数とは、元のデータに対して何らかの処理を施すことにより新たなデータに一義的に変換することが可能な関数であって、しかも新たなデータから元のデータを復元する逆変換を行うことができないような関数を指す。これまで述べてきた暗号化処理は、可逆的な変換処理であり、その逆の変換処理が復号処理に相当する。これに対して、一方向性関数値生成部２４０Ｇが行う変換処理は、一方向性関数を作用させる処理であり、非可逆的な変換処理ということになる。
【０１８３】
このような一方向性関数の代表は、ＨＡＳＨ関数であり、以下、一方向性関数値生成部２４０ＧがＨＡＳＨ関数を作用させる変換処理を行い、ＨＡＳＨ関数値Ｈが得られた場合を例にとった説明を行うことにする。ＨＡＳＨ関数を作用させることにより得られる関数値は、元のデータに比べて情報量が低減される。そこで、図示の例の場合、便宜上、「ＣＥＢＡＤ」なる５文字のデータからなる暗号コードＱに対してＨＡＳＨ関数を作用させることにより得られた関数値Ｈの具体的な値を「ｈ」で表すことにする。結局、一方向性関数値生成部２４０Ｇは、暗号コードＱ「ＣＥＢＡＤ」に対してＨＡＳＨ関数を作用させ、関数値Ｈ（ｈ）を生成する演算処理を行うことになる。
【０１８４】
関数値送信部２５０Ｇは、一方向性関数値生成部２４０Ｇによって生成された関数値Ｈ（ｈ）とともに、テーブル暗号化部２６０Ｇで暗号化された暗号化テーブルＴ＊を、第１の情報処理装置１００Ｇに送信する関数値送信段階を行う構成要素である。
【０１８５】
こうして、第２の情報処理装置２００Ｇから送信されてきた関数値Ｈ（ｈ）および暗号化テーブルＴ＊は、関数値受信部１７０Ｇによって受信される。受信された暗号化テーブルＴ＊はテーブル復号部１８０Ｇに与えられ、受信された関数値Ｈ（ｈ）は照合判定部１５０Ｇに与えられる。テーブル復号部１８０Ｇは、与えられた暗号化テーブルＴ＊を復号し、並び替えテーブルＴを復元するテーブル復号段階を行う。
【０１８６】
一方、照合用並替コード生成部１２０Ｇは、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」の構成要素を、復元された並び替えテーブルＴに基づいて並び替えて照合用並替コードＲ′「３５２１４」を生成する照合用並替コード生成段階を行う。また、照合用暗号コード生成部１３０は、暗号コード生成部２３０の暗号化処理に用いられた暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく暗号化演算によって、照合用並替コードＲ′「３５２１４」を暗号化して照合用暗号コードＱ「ＣＥＢＡＤ」を生成する照合用暗号コード生成段階を行う。
【０１８７】
続いて、照合用一方向性関数値生成部１４０Ｇにおいて、照合用暗号コードＱ「ＣＥＢＡＤ」に対して、一方向性関数値生成部２４０Ｇで用いられた一方向性関数と同じ一方向性関数（ここに示す例の場合、ＨＡＳＨ関数）を作用させて、照合用関数値Ｈ（ｈ）を生成する照合用一方向性関数値生成段階が行われる。そして最後に、照合判定部１５０Ｇにおいて、関数値受信部１７０Ｇが受信した関数値Ｈ（ｈ）と、照合用一方向性関数値生成部１４０Ｇで生成された照合用関数値Ｈ（ｈ）と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００Ｇを正当性が確認された装置と判定する照合判定段階が行われる。
【０１８８】
このように、実施例Ｇでは、第１の情報処理装置１００Ｇ側で行う照合が、一方向性関数値の一致確認というプロセスで行われるため、認証の厳格性は若干低下することになるが、第１の情報処理装置１００Ｇおよび第２の情報処理装置２００Ｇの双方において、単一の並び替えテーブルＴに関する処理を行えばよいため、処理を簡素化できるメリットが得られる。
【０１８９】
＜＜＜  §４．  本発明の第２の実施形態に係る認証方法の基本概念  ＞＞＞
これまで、§２，§３において、本発明の第１の実施形態を説明した。ここでは、図１５を参照しながら、本発明の第２の実施形態に係る認証方法の基本概念を説明する。具体的には、第１の情報処理装置１００′（たとえば、サーバ装置）が第２の情報処理装置２００′（たとえば、クライアント装置）の正当性を確認する処理を例にとって、データの流れに即した処理手順を述べることにする。
【０１９０】
本発明の第１の実施形態と第２の実施形態との大きな相違点は、前者では、暗号化処理の前もしくは後においてデータに対する並び替えが行われるのに対して、後者では、暗号化処理の前もしくは後においてデータに対する修正が行われる点であり、両者の実質的な相違点は、この点だけである。そこで以下、第１の実施形態と比較しながら、第２の実施形態についての説明を行うことにする。
【０１９１】
図１５に示す第２の実施形態では、認証処理に関与する構成要素として、第１の情報処理装置１００′には、ランダムコード発生部１１０、照合用修正コード生成部１２０′、照合用暗号コード生成部１３０′、照合用修正暗号コード生成部１４０′、照合判定部１５０′、ランダムコード送信部１６０、修正暗号コード受信部１７０′が設けられており、第２の情報処理装置２００′には、ランダムコード受信部２１０、修正コード生成部２２０′、暗号コード生成部２３０′、修正暗号コード生成部２４０′、修正暗号コード送信部２５０′が設けられている。
【０１９２】
この図１５に示す第２の実施形態に係る個々の構成要素を、図５に示す第１の実施形態に係る個々の構成要素と比較すると、符号に「′」が付されていないランダムコード発生部１１０、ランダムコード送信部１６０、ランダムコード受信部２１０については、何ら違いはない。
【０１９３】
また、暗号コード生成部２３０と２３０′とについては、本質的な相違はなく、照合用暗号コード生成部１３０と１３０′とについても、本質的な相違はない。いずれも、与えられたコードに対して、所定の暗号アルゴリズムＡに基づく暗号化演算を行い、暗号コードを生成する機能をもった構成要素である。ただ、図５に示す暗号コード生成部２３０および照合用暗号コード生成部１３０が、並替コードＲ′「３５２１４」を暗号化して暗号コードＱ「ＣＥＢＡＤ」を生成する処理を行うのに対して、図１５に示す暗号コード生成部２３０′および照合用暗号コード生成部１３０′は、並替コードＲ′「３５２１４」の代わりに、修正コードＲ''「４５６７８」を暗号化して暗号コードＱ「ＤＥＦＧＨ」を生成する処理を行うことになるので、図１５では、便宜上、符号に「′」を付して区別してある。別言すれば、両者は、与えられるコードが異なるだけであり、実質的な処理機能は全く同じものである。
【０１９４】
これに対して、図５に示す各構成要素１２０，１４０，２２０，２４０と、図１５に示す各構成要素１２０′，１４０′，２２０′，２４０′とは、その処理機能が異なっている。すなわち、前者は「並替コード」もしくは「並替暗号コード」という文言が用いられているとおり、並び替え処理を行う構成要素であるのに対して、後者は「修正コード」もしくは「修正暗号コード」という文言が用いられているとおり、修正処理を行う構成要素である。以下、図１５に示す修正コード生成部２２０′と図５に示す並替コード生成部２２０とを例にとって、両者の相違を説明する。
【０１９５】
§２で述べたとおり、図５に示す並替コード生成部２２０は、与えられたランダムコードＲの構成要素を並び替え、並替コードＲ′を生成する処理を行う。具体的には、図示の例の場合、図６(a) に示す第１の並び替え方法Ｘ１に基づいて、５つの数字を羅列してなるランダムコードＲ「１２３４５」が、「３５２１４」という順序に並び替えられ、並替コードＲ′が生成されている。
【０１９６】
これに対して、図１５に示す修正コード生成部２２０′は、与えられたランダムコードＲの構成要素となる個々の数字に対して、ランダムに発生された第１の修正数Ｕ１を用いた第１の修正演算Ｙ１を行って修正コードＲ''を生成する処理を行う。図１５におけるブロック２２０′内の丸Ｙ１は、修正演算Ｙ１が行われることを示すものである（以下同様）。具体的には、図示の例の場合、図１６(a) に示すように、第１の修正数Ｕ１＝＋３に設定し、この第１の修正数Ｕ１を用いた加算からなる第１の修正演算Ｙ１を実行することにより、元になるランダムコードＲ「１２３４５」に基づいて、「４５６７８」という５つの数字からなる修正コードＲ''が生成されている。図１５に示す照合用修正コード生成部１２０′の機能も全く同じであり、ランダムコードＲ「１２３４５」に基づいて、照合用修正コードＲ''「４５６７８」が生成される。
【０１９７】
図１６(a) に示す第１の修正演算Ｙ１は、第１の修正数Ｕ１＝＋３に設定し、元のコードを構成する個々の数字に対して、それぞれ第１の修正数Ｕ１を加算することにより修正コードを得る演算である。したがって、図示の例のように、元のコードが「１２３４５」なる５つの数字によって構成される場合、これら５つの数字にそれぞれ「＋３」を加算して、「４５６７８」なる５つの数字によって構成される修正コードが生成されることになる。いわば、元のコードに３ずつ下駄を履かせる修正が行われたことになる。もちろん、修正数として負の数字を設定することも可能であるし、修正演算の内容として減算を設定することも可能である。
【０１９８】
このように、修正演算は、所定の修正数を用いた算術演算であるため、演算対象は基本的には数字ということになるが、文字の場合も、特定の数字に対応づけられていれば、修正演算の対象とすることができる。図１６(b) は、文字列を対象とする修正演算の一例を示している。すなわち、図１６(b) に示す第２の修正演算Ｙ２は、本来、第２の修正数Ｕ２＝＋６に設定し、元のコードを構成する個々の数字に対して、それぞれ第２の修正数Ｕ２を加算することにより修正コードを得る演算であるが、図には、当該修正演算を文字列に適用した例が示されている。
【０１９９】
具体的には、この例の場合、アルファベットＡ〜Ｚの２６文字に対して、それぞれ１〜２６の数字を対応づけ、個々の文字をそれぞれ対応する数字として取り扱うことにより、数字と同様の修正演算を施している。すなわち、元のコード「ＤＥＦＧＨ」をそれぞれ対応する数字「４，５，６，７，８」として取扱い、これら対応する数字に対して第２の修正数Ｕ２＝＋６を加算して「１０，１１，１２，１３，１４」なる結果を得た後、これを対応するアルファベットに置き換えることにより「ＪＫＬＭＮ」なる修正コードを得ている。
【０２００】
図１５に示す例の場合、暗号コード生成部２３０′は、図２に示す暗号アルゴリズムに基づいて、与えられた修正コードＲ''「４５６７８」を暗号化して、アルファベットからなる暗号コードＱ「ＤＥＦＧＨ」を生成する処理を行う。そして、修正暗号コード生成部２４０′は、この暗号コードＱ「ＤＥＦＧＨ」に対して、図１６(b) に示すように、第２の修正数Ｕ２＝＋６に設定して、第２の修正演算Ｙ２を行うことになる。この場合、与えられた暗号コードＱ「ＤＥＦＧＨ」は、対応する数字として取り扱われ、上述した加算処理を行うことにより、修正暗号コードＱ''「ＪＫＬＭＮ」が得られる。図１５に示す照合用修正暗号コード生成部１４０′の機能も全く同じであり、照合用暗号コードＱ「ＤＥＦＧＨ」に基づいて、照合用修正暗号コードＱ''「ＪＫＬＭＮ」が生成される。
【０２０１】
要するに、第１の情報処理装置１００′および第２の情報処理装置２００′として、それぞれ特定の数字に対応づけられた文字を取り扱う装置を用いるようにすれば、ランダムコードＲもしくは暗号コードＱとして文字を含むコードを発生させた場合でも、個々の文字をそれぞれ対応する数字として取り扱う処理を行うようにすれば、文字列からなるコードに対しても上述した修正演算を行うことが可能になる。
【０２０２】
なお、実用上は、ランダムコードＲの構成要素となる個々の数字および暗号コードＱの構成要素となる個々の数字が、Ｎ〜Ｍ（但し、Ｎ＜Ｍ）の範囲内の数値となるようにし、第１の修正演算Ｙ１および第２の修正演算Ｙ２を行う際に、演算後の数値ＶがＶ＜Ｎとなる場合には（Ｍ−Ｎ＋１）を加算する補正を行い、演算後の数値ＶがＶ＞Ｍとなる場合には（Ｍ−Ｎ＋１）を減算する補正を行い、修正演算後の数値がＮ〜Ｍの範囲内の数値となるようにするのが好ましい。
【０２０３】
たとえば、ランダムコードＲの構成要素となる個々の数字および暗号コードＱの構成要素となる個々の数字をそれぞれ１バイトの数字とした場合、１つの数字は０〜２５５の範囲内の数値となる（上述した式において、Ｎ＝０、Ｍ＝２５５になる）。この場合、修正演算後の数値Ｖも、同じく０〜２５５の範囲内の１バイトの数値に収まるようにした方が、演算を簡素化することができる。そこで、第１の修正演算Ｙ１および第２の修正演算Ｙ２を行う際に、演算後の数値ＶがＶ＜０となる場合には２５６を加算する補正を行い、演算後の数値ＶがＶ＞２５５となる場合には２５６を減算する補正を行い、修正演算後の数値が０〜２５５の範囲内の数値となるようにすればよい（実際には、２５６による除算の余りを求めるようにすればよい）。
【０２０４】
また、ランダムコードＲの構成要素および暗号コードＱの構成要素として、たとえば、１〜２６の数字に対応づけられたアルファベットを用いる場合、個々のアルファベットに対応づけられた特定の数値は１〜２６の範囲内の数値となる（上述した式において、Ｎ＝１、Ｍ＝２６になる）。この場合、修正演算後の数値Ｖも、同じく１〜２６の範囲内の１バイトの数値に収まるようにすれば、対応するアルファベットを用いた文字表現が可能になる。そこで、第１の修正演算Ｙ１および第２の修正演算Ｙ２を行う際に、演算後の数値ＶがＶ＜１となる場合には２６を加算する補正を行い、演算後の数値ＶがＶ＞２６となる場合に２６を減算する補正を行い、修正演算後の数値が１〜２６の範囲内の数値となるようにすればよい。
【０２０５】
このように、第２の実施形態に係る認証方法では、暗号化処理の前後において、データに対する並び替えを行う代わりに、データに対する値の修正が行われることになるが、基本的な認証処理の手順は、これまで述べてきた第１の実施形態とほぼ同じである。
【０２０６】
すなわち、まず、ランダムコード発生部１１０で発生させたランダムコードＲ「１２３４５」をランダムコード送信部１６０から送信し、ランダムコード受信部２１０によってこれを受信する。そして、修正コード生成部２２０′において、ランダムコードＲ「１２３４５」に対する第１の修正演算Ｙ１を行って、修正コードＲ''「４５６７８」を生成し、暗号コード生成部２３０′において、これを暗号化して、暗号コードＱ「ＤＥＦＧＨ」を得る。更に、修正暗号コード生成部２４０′において、暗号コードＱ「ＤＥＦＧＨ」に対する第２の修正演算Ｙ２を行って、修正暗号コードＱ''「ＪＫＬＭＮ」を生成し、修正暗号コード送信部２５０′において、この修正暗号コードＱ''「ＪＫＬＭＮ」を、各修正演算Ｙ１，Ｙ２を示す修正情報とともに、第１の情報処理装置１００′に送信する。
【０２０７】
一方、修正暗号コード受信部１７０′が、修正暗号コードＱ''「ＪＫＬＭＮ」と各修正演算Ｙ１，Ｙ２を示す修正情報とを受信すると、照合用修正コード生成部１２０′において、ランダムコードＲ「１２３４５」に対する第１の修正演算Ｙ１を行って、修正コードＲ''「４５６７８」を生成し、照合用暗号コード生成部１３０′において、これをアルゴリズムＡによって暗号化して、照合用暗号コードＱ「ＤＥＦＧＨ」を生成する処理が行われる。更に、照合用修正暗号コード生成部１４０′において、暗号コードＱ「ＤＥＦＧＨ」に対する第２の修正演算Ｙ２を行って、修正暗号コードＱ''「ＪＫＬＭＮ」を生成する処理が行われる。そして最後に、照合判定部１５０′において、修正暗号コード受信部１７０′が受信した修正暗号コードＱ''「ＪＫＬＭＮ」と、照合用修正暗号コード生成部１４０′が生成した照合用修正暗号コードＱ''「ＪＫＬＭＮ」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００′を正当性が確認された装置と判定する処理を行うことになる。
【０２０８】
なお、修正コード生成部２２０′が実行する第１の修正演算Ｙ１や、修正暗号コード生成部２４０′が実行する第２の修正演算Ｙ２は、認証処理が行われるたびにランダムに定義するようにする。すなわち、ランダムコード受信部２１０が新たなランダムコードＲを受信するたびに、修正コード生成部２２０′および修正暗号コード生成部２４０′は、新たに定義された修正演算Ｙ１およびＹ２に基づいて、毎回、異なる修正演算を行う。なお、実用上は、図１６に例示するように、修正演算の内容自体は、たとえば「加算」というように固定しておき、第１の修正数Ｕ１および第２の修正数Ｕ２を、乱数を用いてランダムに生成するようにすれば十分である。
【０２０９】
結局、この図１５に示す認証方法を採用した場合、第１の情報処理装置１００′から第２の情報処理装置２００′に対して、チャレンジとしてランダムコードＲ「１２３４５」が与えられると、第２の情報処理装置２００′内では、ランダムコードＲ「１２３４５」→修正コードＲ''「４５６７８」→暗号コードＱ「ＤＥＦＧＨ」→修正暗号コードＱ''「ＪＫＬＭＮ」に変換された後、この修正暗号コードＱ''「ＪＫＬＭＮ」がレスポンスとして返信されることになる。
【０２１０】
このように、図１５に示す第２の実施形態に係る認証方法を採用すれば、図５に示す第１の実施形態に係る認証方法を採用した場合と同様に、通信傍受によって得られる情報とサイドチャネル解析によって得られる情報との間には、直接的な関連がないため、両者を組み合わせたとしても、暗号アルゴリズムＡを推定することは困難である。
【０２１１】
すなわち、図１５に示す認証方法を採用した場合、通信傍受によって得られる情報は、図１７に示すとおり、ランダムコードＲ「１２３４５」によるチャレンジに対して、修正暗号コードＱ''「ＪＫＬＭＮ」というレスポンスが得られるという事実である。しかしながら、このとき、暗号コード生成部２３０′の内部で行われている暗号化処理の演算は、ランダムコードＲ「１２３４５」を修正暗号コードＱ''「ＪＫＬＭＮ」に変換する演算ではなく、修正コードＲ''「４５６７８」を暗号コードＱ「ＤＥＦＧＨ」に変換する演算であり、サイドチャネル解析によって得られる情報は、図１７に示すとおり、修正コードＲ''「４５６７８」を暗号コードＱ「ＤＥＦＧＨ」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報ということになる。よって、この第２の実施形態を採用した場合も、通信傍受とサイドチャネル解析とを組み合わせた攻撃にも十分に耐え得る認証方法が実現できる。
【０２１２】
また、本発明を導入するにあたっては、暗号化処理の前後に、比較的単純なデータ処理
（図示の例の場合は、単なる加算処理）を行うプロセスを追加するだけでよいので、非常に効率的な処理により上記攻撃への対抗策を用意することができ、導入コストを抑制させることができる。
【０２１３】
このように、本発明の第２の実施形態に係る情報処理装置の認証方法では、第１の情報処理装置１００′が第２の情報処理装置２００′を正当性が確認された装置として認証するために、まず、第１の情報処理装置１００′側において、乱数を利用して、数字（上述したように、特定の数字に対応づけられた文字でもよい）を羅列したランダムコードＲを発生させ、これを第２の情報処理装置２００′に送信する段階（ランダムコード発生部１１０およびランダムコード送信部１６０による処理）が行われる。
【０２１４】
続いて、第２の情報処理装置２００′側において、送信されてきたランダムコードＲを受信し、その構成要素となる個々の数字に対して、ランダムに発生した第１の修正数Ｕ１を用いた第１の修正演算Ｙ１を行って修正コードＲ''を生成する段階（ランダムコード受信部２１０および修正コード生成部２２０′による処理）と、この修正コードＲ''を所定の暗号アルゴリズムにＡに基づく暗号化演算によって暗号化し、暗号コードＱを生成する段階（暗号コード生成部２３０′による処理）と、この暗号コードＱの構成要素となる個々の数字に対して、ランダムに発生した第２の修正数Ｕ２を用いた第２の修正演算Ｙ２を行って修正暗号コードＱ''を生成する段階（修正暗号コード生成部２４０′による処理）と、修正暗号コードＱ''とともに、第１の修正演算Ｙ１および第２の修正演算Ｙ２を示す修正情報を、第１の情報処理装置１００′に送信する段階（修正暗号コード送信部２５０′による処理）と、が行われる。
【０２１５】
そして、第１の情報処理装置１００′側において、修正暗号コードＱ''とともに、修正情報を受信し（修正暗号コード受信部１７０′による処理）、受信した修正暗号コードＱ''の正当性を、受信した修正情報に基づく修正演算処理（照合用修正コード生成部１２０′および照合用修正暗号コード生成部１４０′による処理）および暗号コード生成部２３０′による暗号化処理と同じ暗号アルゴリズムＡに基づく暗号化演算（照合用暗号コード生成部１３０′による処理）によって確認する段階が行われる。
【０２１６】
なお、第２の情報処理装置２００′から第１の情報処理装置１００′への修正情報（第１の修正演算Ｙ１および第２の修正演算Ｙ２を示す情報）の送信は、実際には暗号化した状態で行うのが好ましい。すなわち、第２の情報処理装置２００′側で修正情報の暗号化処理を行い、暗号化された状態の修正情報が修正暗号コード送信部２５０′から修正暗号コード受信部１７０′へと送信されるようにし、これを第１の情報処理装置１００′側で復号して元に戻すようにすれば、通信傍受が行われても修正情報が露見するのを防ぐことができる。
【０２１７】
また、図１５に示す例では、第１の情報処理装置１００′側において、第２の情報処理装置２００′側で行われた暗号化演算と同じ暗号化演算を行い、照合判定部１５０′が双方の処理結果として得られた修正暗号コードＱ''の一致確認を行うことにより認証を行っているが、本発明は、必ずしもこのような手順で一致確認を行う例に限定されるものではない。たとえば、第１の情報処理装置１００′側において、修正暗号コードＱ''に基づく復号演算（暗号コード生成部２３０′による暗号化処理と同じ暗号アルゴリズムＡに基づく復号演算）を実行することにより照合を行ってもかまわない。
【０２１８】
更に、図１５に示す例では、第２の情報処理装置２００′側において、第１の修正演算Ｙ１に基づくランダムコードＲに対する修正処理と、第２の修正演算Ｙ２に基づく暗号コードＱに対する修正処理と、を行っているため、これに応じて、第１の情報処理装置１００′側においても、第１の修正演算Ｙ１に基づくランダムコードＲに対する修正処理と、第２の修正演算Ｙ２に基づく暗号コードＱに対する修正処理と、を行っている。しかしながら、本発明は、必ずしもこのような手順で一致確認を行う例に限定されるものではなく、たとえば、第１の情報処理装置１００′側において、一方の修正処理を省略することも可能である。この場合、修正暗号コード送信部２５０′は、修正暗号コードＱ''とともに、第１の修正演算Ｙ１および第２の修正演算Ｙ２の双方を示す修正情報を送信する必要はなく、いずれか一方を示す修正情報を送信すれば足りる。
【０２１９】
このように、ここでは図１５に示す基本的な実施例に基づいて本発明の第２の実施形態の基本概念を説明したが、実際には、細かな部分を変更した様々なバリエーションが考えられる。そこで、以下の§５では、このようなバリエーションに係る実施例をいくつか述べることにする。
【０２２０】
＜＜＜  §５．  第２の実施形態の具体的な実施例  ＞＞＞
本発明の第２の実施形態の特徴は、図１５の例を用いてその基本概念を説明したように、認証を行う際に、図１６に例示するような修正演算をランダムに定義し、暗号化処理を行う際に修正処理を行う点にある。以下、その具体的な実施例をいくつか説明する。なお、ここで述べる第２の実施形態に係る実施例ａ〜ｇは、§３で述べた第１の実施形態に係る実施例Ａ〜Ｇにそれぞれ対応するものである。よって、以下の説明では、必要に応じて実施例Ａ〜Ｇと対比させながら、各実施例ａ〜ｇの特徴を述べることにする。
【０２２１】
＜５−１．実施例ａ：暗号化による照合その１＞
図１８は、第２の実施形態の実施例ａを示すブロック図である。この実施例ａは、§３−１で述べた第１の実施形態の実施例Ａに対応するものであり、ここでは、第１の情報処理装置１００ａが第２の情報処理装置２００ａの正当性を確認する処理が行われることになる。
【０２２２】
図示のとおり、この実施例ａの場合、認証処理に関与する構成要素として、第１の情報処理装置１００ａには、ランダムコード発生部１１０、照合用修正コード生成部１２０ａ、照合用暗号コード生成部１３０ａ、照合用修正暗号コード生成部１４０ａ、照合判定部１５０ａ、ランダムコード送信部１６０、修正暗号コード受信部１７０ａ、修正数復号部１８０ａが設けられている。一方、第２の情報処理装置２００ａには、ランダムコード受信部２１０、修正コード生成部２２０ａ、暗号コード生成部２３０ａ、修正暗号コード生成部２４０ａ、修正暗号コード送信部２５０ａ、修正数暗号化部２６０ａ、修正数生成部２７０ａが設けられている。
【０２２３】
ここで、ランダムコード発生部１１０、ランダムコード送信部１６０、ランダムコード受信部２１０は、図８に示す実施例Ａの同符号の構成要素と全く同じものである。一方、数字の末尾にａを付した符号で示されている他の構成要素は、図８に示す実施例Ａにおける同数字の符号で示されている構成要素に対応するものであり、それぞれ対応する構成要素に準じた機能を有している。
【０２２４】
図８に示す実施例Ａと図１８に示す実施例ａとの大きな相違点は、前者における構成要素１２０，２２０，１４０，２４０が、与えられたコードに対する並び替えを行って並替コードＲ′もしくは並替暗号コードＱ′を生成するのに対して、後者における構成要素１２０ａ，２２０ａ，１４０ａ，２４０ａが、与えられたコードに対する修正演算を行って修正コードＲ''もしくは修正暗号コードＱ''を生成する点である。
【０２２５】
そのため、構成要素１３０ａ，２３０ａは、修正コードＲ''に対する暗号化処理を行うことになる。また、修正数生成部２７０ａは、ランダムコード受信部２１０が新たなランダムコードＲを受信するたびに、修正演算に利用するランダムな数値である第１の修正数Ｕ１および第２の修正数Ｕ２を乱数に基づいて生成する。第１の修正数Ｕ１は、修正コード生成部２２０ａにおける第１の修正演算Ｙ１に利用され、第２の修正数Ｕ２は、修正暗号コード生成部２４０ａにおける第２の修正演算Ｙ２に利用される。
【０２２６】
一方、修正数暗号化部２６０ａは、これらを暗号化して、第１の暗号化修正数Ｕ１＊および第２の暗号化修正数Ｕ２＊を生成し、修正暗号コード送信部２５０ａは、修正暗号コード生成部２４０ａによって生成された修正暗号コードＱ''とともに、第１の暗号化修正数Ｕ１＊および第２の暗号化修正数Ｕ２＊を第１の情報処理装置１００ａに送信する。
【０２２７】
修正暗号コード受信部１７０ａは、こうして送信されてきた修正暗号コードＱ''および暗号化修正数Ｕ１＊，Ｕ２＊を受信する。受信した修正暗号コードＱ''は、照合判定部１５０ａに与えられ、受信した暗号化修正数Ｕ１＊，Ｕ２＊は、修正数復号部１８０ａに与えられる。修正数復号部１８０ａは、暗号化修正数Ｕ１＊，Ｕ２＊をそれぞれ復号し、元の修正数Ｕ１，Ｕ２を復元する処理を行う。
【０２２８】
照合用修正コード生成部１２０ａは、こうして復元された第１の修正数Ｕ１を用いた第１の修正演算Ｙ１に基づいてランダムコードＲを修正し、修正コードＲ''を生成する処理を行う。同様に、照合用修正暗号コード生成部１４０ａは、こうして復元された第２の修正数Ｕ２を用いた第２の修正演算Ｙ２に基づいて照合用暗号コードＱを修正し、修正暗号コードＱ''を生成する処理を行う。各修正演算の内容として、たとえば「加算」を行うことに定めておけば、修正数が定まれば具体的な修正演算も一義的に定まることになる。
【０２２９】
なお、修正数Ｕ１，Ｕ２の暗号化および復号には、公開鍵暗号方式を利用するのが好ましい。具体的には、修正数暗号化部２６０ａが、公開鍵暗号方式に用いる一対の鍵のうちの一方の鍵を用いて修正数Ｕ１，Ｕ２の暗号化を行って暗号化修正数Ｕ１＊，Ｕ２＊を生成するようにし、修正数復号部１８０ａが、上記一対の鍵のうちの他方の鍵を用いて暗号化修正数Ｕ１＊，Ｕ２＊に対する復号を行って元の修正数Ｕ１，Ｕ２を生成するようにすればよい。
【０２３０】
たとえば、第１の情報処理装置１００ａがサーバ装置、第２の情報処理装置２００ａがクライアント装置の場合、修正数暗号化部２６０ａは、サーバ装置１００ａを管理する者の公開鍵を用いて暗号化を行い、修正数復号部１８０ａは、サーバ装置１００ａを管理する者の秘密鍵を用いて復号を行うことができる。
【０２３１】
上述したとおり、修正数Ｕ１，Ｕ２は、図示する認証処理を行うたびに、第２の情報処理装置２００ａ側で乱数を利用して新たに生成されるランダムな数値であるため、これを第１の情報処理装置１００ａ側に送信する必要がある。ここに示す実施例ａでは、修正数Ｕ１，Ｕ２を暗号化して、暗号化修正数Ｕ１＊，Ｕ２＊の形で送信することができるので、通信傍受が行われても、修正数Ｕ１，Ｕ２が直接露見することはない。したがって、不正な攻撃に対する防備をより高めることができる。
【０２３２】
なお、図１６には、第１の修正数Ｕ１および第２の修正数Ｕ２として、それぞれ異なる数値を生成した例を示したが、修正数Ｕ１，Ｕ２は、必ずしも異なる数値である必要はなく、同一の数値を用いるようにしてもかまわない。ただ、それぞれ異なる数値を用意した方が、不正な攻撃に対する防備を高める上では効果的であるので、実用上は、図１６に示す例のように、第１の修正数Ｕ１および第２の修正数Ｕ２として、それぞれ異なる数値をランダムに生成するのが好ましい。
【０２３３】
続いて、図１８を参照しながら、実施例ａにおける認証方法の具体的な処理内容、すなわち、第１の情報処理装置１００ａが第２の情報処理装置２００ａを正当性が確認された装置として認証するための具体的手順を、データの流れを追って順に説明する。
【０２３４】
まず、ランダムコード発生部１１０において、乱数を利用して、構成要素となる数字（特定の数字に対応づけられた文字でもよい）を羅列したランダムコードＲを発生させるランダムコード発生段階が行われる。図示の例は、５つの数字を羅列したランダムコードＲ「１２３４５」が発生された例である。実用上は１バイトの数字をｎ個羅列したｎバイトのランダムコードＲを生成すればよい。そして、ランダムコード送信部１６０において、このランダムコードＲ「１２３４５」を第２の情報処理装置２００ａに送信するランダムコード送信段階が行われる。
【０２３５】
続いて、ランダムコード受信部２１０において、送信されてきたランダムコードＲ「１２３４５」を受信するランダムコード受信段階が行われ、修正数生成部２７０ａにおいて、乱数を利用して、第１の修正数Ｕ１および第２の修正数Ｕ２（図１６に示す例の場合、Ｕ１＝＋３，Ｕ２＝＋６）を生成する修正数生成段階が行われる。
【０２３６】
そして、修正コード生成部２２０ａにおいて、ランダムコードＲ「１２３４５」の構成要素となる個々の数字に対して、第１の修正数Ｕ１に基づく第１の修正演算Ｙ１（図１６に示す例の場合、修正数＋３を加算する演算）を実行することにより、修正コードＲ''「４５６７８」を生成する修正コード生成段階が行われ、暗号コード生成部２３０ａにおいて、所定の暗号アルゴリズムＡに基づく暗号化演算によって、修正コードＲ''「４５６７８」を暗号化して暗号コードＱ「ＤＥＦＧＨ」を生成する暗号コード生成段階が行われ、更に、修正暗号コード生成部２４０ａにおいて、暗号コードＱ「ＤＥＦＧＨ」の構成要素となる個々の数字に対して、第２の修正数Ｕ２に基づく第２の修正演算Ｙ２（図１６に示す例の場合、修正数＋６を加算する演算）を実行することにより、修正暗号コードＱ''「ＪＫＬＭＮ」を生成する修正暗号コード生成段階が行われる。
【０２３７】
また、修正数暗号化部２６０ａでは、第１の修正数Ｕ１および第２の修正数Ｕ２をそれぞれ暗号化し、第１の暗号化修正数Ｕ１＊および第２の暗号化修正数Ｕ２＊を生成する修正数暗号化段階が行われる。そして、修正暗号コード送信部２５０ａにおいて、修正暗号コードＱ''「ＪＫＬＭＮ」とともに、第１の暗号化修正数Ｕ１＊および第２の暗号化修正数Ｕ２＊を、第１の情報処理装置１００ａに送信する修正暗号コード送信段階が行われる。
【０２３８】
一方、修正暗号コード受信部１７０ａでは、送信を受けた修正暗号コードＱ''「ＪＫＬＭＮ」、ならびに、第１の暗号化修正数Ｕ１＊および第２の暗号化修正数Ｕ２＊を受信する修正暗号コード受信段階が行われ、修正数復号部１８０ａでは、第１の暗号化修正数Ｕ１＊および第２の暗号化修正数Ｕ２＊をそれぞれ復号し、第１の修正数Ｕ１および第２の修正数Ｕ２を復元する修正数復号段階が行われる。
【０２３９】
そして、照合用修正コード生成部１２０ａにおいて、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」の構成要素となる個々の数字に対して、復元された第１の修正数Ｕ１を用いた第１の修正演算Ｙ１を行って照合用修正コードＲ''「４５６７８」を生成する照合用修正コード生成段階が行われ、照合用暗号コード生成部１３０ａにおいて、暗号コード生成部２３０ａが採用している暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく暗号化演算によって、照合用修正コードＲ''「４５６７８」を暗号化して照合用暗号コードＱ「ＤＥＦＧＨ」を生成する照合用暗号コード生成段階が行われ、更に、照合用修正暗号コード生成部１４０ａにおいて、照合用暗号コードＱ「ＤＥＦＧＨ」の構成要素となる個々の数字に対して、復元された第２の修正数Ｕ２を用いた第２の修正演算Ｙ２を行って、照合用修正暗号コードＱ''「ＪＫＬＭＮ」を生成する照合用修正暗号コード生成段階が行われる。
【０２４０】
そして、最後に、照合判定部１５０ａにおいて、修正暗号コード受信部１７０ａが受信した修正暗号コードＱ''「ＪＫＬＭＮ」と、照合用修正暗号コード生成部１４０ａが生成した照合用修正暗号コードＱ''「ＪＫＬＭＮ」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００ａを正当性が確認された装置と判定する照合判定段階が行われる。
【０２４１】
結局、この図１８に示す実施例ａに係る認証方法を採用した場合、第１の情報処理装置１００ａから第２の情報処理装置２００ａに対して、チャレンジとしてランダムコードＲ「１２３４５」が与えられると、修正コード生成部２２０ａにおいて、このランダムコードＲ「１２３４５」は、第１の修正数Ｕ１を用いた第１の修正演算Ｙ１によって修正コードＲ''「４５６７８」に変換される。そして、暗号コード生成部２３０ａは、この修正コードＲ''「４５６７８」に対して暗号アルゴリズムＡに基づく暗号化処理を行って、暗号コードＱ「ＤＥＦＧＨ」を生成する。更に、修正暗号コード生成部２４０ａにおいて、この暗号コードＱ「ＤＥＦＧＨ」は、第２の修正数Ｕ２を用いた第２の修正演算Ｙ２によって修正暗号コードＱ''「ＪＫＬＭＮ」に変換された後、この修正暗号コードＱ''「ＪＫＬＭＮ」がレスポンスとして返信されることになる。
【０２４２】
このとき、第１の情報処理装置１００ａには、このレスポンスとともに、修正数Ｕ１，Ｕ２が暗号化された状態で送信される。しかも、照合用暗号コード生成部１３０ａは、暗号コード生成部２３０ａと同じ暗号アルゴリズムＡを用いた暗号化処理を実行する機能を有している。したがって、第１の情報処理装置１００ａ側においても、第２の情報処理装置２００ａ側において実行された手順と同様の手順を実行して、ランダムコードＲ「１２３４５」→修正コードＲ''「４５６７８」→暗号コードＱ「ＤＥＦＧＨ」→修正暗号コードＱ''「ＪＫＬＭＮ」という変遷を辿って、修正暗号コードＱ''「ＪＫＬＭＮ」を得ることができ、最終的に、照合判定部１５０ａにおいて、修正暗号コードＱ''「ＪＫＬＭＮ」の一致確認を行うことにより、第２の情報処理装置２００ａの正当性が確認されることになる。
【０２４３】
この実施例ａに示す認証方法が、通信傍受およびサイドチャネル解析を組み合わせた攻撃に対しても十分な防備機能を果たすことは、第１の実施形態と全く同じである。すなわち、図１８に示す認証方法を採用した場合、通信傍受によって得られる情報は、ランダムコードＲ「１２３４５」によるチャレンジに対して、修正暗号コードＱ''「ＪＫＬＭＮ」というレスポンスが得られるという事実である。
【０２４４】
ところが、このとき、暗号コード生成部２３０ａの内部で行われている暗号化処理の演算は、ランダムコードＲ「１２３４５」を修正暗号コードＱ''「ＪＫＬＭＮ」に変換する演算ではなく、修正コードＲ''「４５６７８」を暗号コードＱ「ＤＥＦＧＨ」に変換する演算であり、サイドチャネル解析によって得られる情報は、修正コードＲ''「４５６７８」を暗号コードＱ「ＤＥＦＧＨ」に変換する演算を実行する際の消費電力、演算処理時間、発生する電磁波などの情報ということになる。
【０２４５】
このように、通信傍受によりチャレンジ「１２３４５」とレスポンス「ＪＫＬＭＮ」とが特定されたとしても、実際に行われている暗号化処理の演算は、別なコード「４５６７８」を「ＤＥＦＧＨ」に変換する演算であるため、両者を組み合わせた解析を行ったとしても、暗号アルゴリズムＡを推定することは困難になる。
【０２４６】
＜５−２．実施例ｂ：暗号化による照合その２＞
続いて、図１９を参照しながら、本発明の第２の実施形態の実施例ｂを説明する。この実施例ｂは、§３−２で述べた第１の実施形態の実施例Ｂに対応するものであり、ここでは、第１の情報処理装置１００ｂが第２の情報処理装置２００ｂの正当性を確認する処理が行われることになる。実施例ｂは、前述した実施例ａにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例ａとほぼ同じである。そこで、以下、実施例ａとの相違点についての説明のみを行う。
【０２４７】
まず、第２の情報処理装置２００ｂについては、図１８の実施例ａに示す第２の情報処理装置２００ａの構成と全く同じであるため、ここでは説明を省略する。なお、図１９では、実施例Ａの各構成要素と区別する便宜上、構成要素２２０ｂ〜２７０ｂの符号末尾に「ｂ」を付加して示してあるが、これらの各構成要素は、図１８に示す実施例ａの各構成要素２２０ａ〜２７０ａと全く同じものである。
【０２４８】
一方、第１の情報処理装置１００ｂについては、構成要素１１０，１２０ｂ，１６０，１７０ｂ，１８０ｂは、図１８に示す実施例ａにおける構成要素１１０，１２０ａ，１６０，１７０ａ，１８０ａと全く同じである。実施例ａとの相違点は、構成要素１３０ａ，１４０ａ，１５０ａの代わりに、照合用暗号コード第１生成部１３０ｂ，照合用暗号コード第２生成部１４０ｂ，照合判定部１５０ｂが設けられている点である。そこで、以下、これら３つの構成要素の機能について説明する。
【０２４９】
はじめに、照合用暗号コード第１生成部１３０ｂは、実際には、実施例ａにおける照合用暗号コード生成部１３０ａと全く同じ機能をもった構成要素であり、暗号コード生成部２３０ｂにおいて実行される暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく暗号化演算によって、照合用修正コードＲ''「４５６７８」を暗号化して照合用暗号コードＱ「ＤＥＦＧＨ」を生成する照合用暗号コード第１生成段階を実行する。ここで、構成要素１３０ｂの名称に「第１」を挿入しているのは、構成要素１４０ｂとの混同を避けるためである。
【０２５０】
一方、照合用暗号コード第２生成部１４０ｂは、修正暗号コード受信部１７０ｂが受信した修正暗号コードＱ''「ＪＫＬＭＮ」の構成要素となる個々の数字に対して、第２の修正数Ｕ２を用いた第２の修正演算Ｙ２とは逆の演算を行って照合用暗号コードＱ「ＤＥＦＧＨ」を生成する照合用暗号コード第２生成段階を行う構成要素である。照合用暗号コード第１生成部１３０ｂも照合用暗号コード第２生成部１４０ｂも、照合用暗号コードＱ「ＤＥＦＧＨ」を生成する機能をもった構成要素であるが、前者が、照合用修正コードＲ''「４５６７８」に対する暗号化処理によって照合用暗号コードＱ「ＤＥＦＧＨ」を生成するのに対して、後者は、修正暗号コードＱ''「ＪＫＬＭＮ」に対する修正演算によって照合用暗号コードＱ「ＤＥＦＧＨ」を生成することになる。
【０２５１】
ここで、第２の修正数Ｕ２を用いた第２の修正演算Ｙ２とは逆の演算とは、修正暗号コード生成部２４０ｂで行われた修正演算Ｙ２とは逆の演算であり、修正暗号コード生成部２４０ｂにおいて、図１６(b) に示す「＋６を加算する演算」（修正数Ｕ２＝＋６とする加算演算）が行われた場合であれば、その逆の演算は、「修正数Ｕ２＝＋６とする減算演算」ということになる。具体的には、図１６(b) に示されている矢印の向きを逆転させて、下段のコード「ＪＫＬＭＮ」から上段のコード「ＤＥＦＧＨ」を生成する演算（対応する数字について＋６を減じる演算）が行われることになる。なお、本願の図では、任意の修正演算Ｙを逆転させた演算を、符号Ｙの上部にバーを付した符号で示し、明細書中では、修正演算Ｙバーと表記する。
【０２５２】
このように、照合用暗号コード第２生成部１４０ｂは、与えられた修正暗号コードＱ''「ＪＫＬＭＮ」の構成要素となる個々の数字（文字に対応する数字）に対して、「＋６を減じる演算」を行い、照合用暗号コードＱ「ＤＥＦＧＨ」に変換する処理を行うことになるが、当該処理は、修正演算Ｙ２バーに基づく修正処理ということになる。このような処理を行う理由は、修正暗号コードＱ''「ＪＫＬＭＮ」を、元の並び順をもった暗号コードＱ「ＤＥＦＧＨ」の状態に戻し、その状態での一致確認を行うためである。
【０２５３】
すなわち、照合判定部１５０ｂは、照合用暗号コード第１生成部１３０ｂ生成した照合用暗号コードＱ「ＤＥＦＧＨ」と、照合用暗号コード第２生成部１４０ｂが生成した照合用暗号コードＱ「ＤＥＦＧＨ」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００ｂを正当性が確認された装置と判定する照合判定段階を実行することになる。
【０２５４】
要するに、実施例ａの場合は、暗号コードＱ「ＤＥＦＧＨ」に対して修正演算を行うことによって得られる修正暗号コードＱ''「ＪＫＬＭＮ」の状態で一致判定を行っていたのに対して、実施例ｂの場合は、修正暗号コードＱ''「ＪＫＬＭＮ」を修正演算前の状態である暗号コードＱ「ＤＥＦＧＨ」に戻し、暗号コードＱ「ＤＥＦＧＨ」の状態で一致判定を行うことになる。したがって、実施例ａ，ｂに本質的な相違はなく、実施例ｂについても実施例ａと同じ作用効果が得られる。
【０２５５】
＜５−３．実施例ｃ：復号による照合その１＞
続いて、図２０を参照しながら、本発明の第２の実施形態の実施例ｃを説明する。この実施例ｃは、§３−３で述べた第１の実施形態の実施例Ｃに対応するものであり、ここでは、第１の情報処理装置１００ｃが第２の情報処理装置２００ｃの正当性を確認する処理が行われることになる。実施例ｃは、前述した実施例ａにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例ａとほぼ同じである。そこで、以下、実施例ａとの相違点についての説明のみを行う。
【０２５６】
まず、第２の情報処理装置２００ｃについては、図１８の実施例ａに示す第２の情報処理装置２００ａの構成と全く同じであるため、ここでは説明を省略する。なお、図２０では、実施例Ａの各構成要素と区別する便宜上、構成要素２２０ｃ〜２７０ｃの符号末尾に「ｃ」を付加して示してあるが、これらの各構成要素は、図１８に示す実施例ａの各構成要素２２０ａ〜２７０ａと全く同じものである。
【０２５７】
一方、第１の情報処理装置１００ｃについては、構成要素１１０，１６０，１７０ｃ，１８０ｃは、それぞれ実施例ａにおける構成要素１１０，１６０，１７０ａ，１８０ａと全く同じである。実施例ａとの相違点は、構成要素１２０ａ，１３０ａ，１４０ａ，１５０ａの代わりに、照合用ランダムコード生成部１２０ｃ，照合用修正コード生成部１３０ｃ，照合用暗号コード生成部１４０ｃ，照合判定部１５０ｃが設けられている点である。そこで、以下、これら４つの構成要素の機能について説明する。
【０２５８】
はじめに、照合用暗号コード生成部１４０ｃは、修正暗号コード受信部１７０ｃが受信した修正暗号コードＱ''「ＪＫＬＭＮ」の構成要素となる個々の数字に対して、第２の修正数Ｕ２を用いた第２の修正演算Ｙ２とは逆の修正演算Ｙ２バーを行って照合用暗号コードＱ「ＤＥＦＧＨ」を生成する照合用暗号コード生成段階を行う構成要素である。この照合用暗号コード生成部１４０ｃの機能は、実施例ｂの照合用暗号コード第２生成部１４０ｂの機能と全く同じであり、詳しい説明は省略する。
【０２５９】
次に、照合用修正コード生成部１３０ｃは、暗号コード生成部２３０ｃが暗号化処理を行う際に利用した暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく復号演算によって、照合用暗号コードＱ「ＤＥＦＧＨ」を復号して照合用修正コードＲ''「４５６７８」を生成する照合用修正コード生成段階を行う構成要素である。暗号コード生成部２３０ｃは、暗号アルゴリズムＡに基づく暗号化演算により、修正コードＲ''「４５６７８」に対する暗号化を行い、暗号コードＱ「ＤＥＦＧＨ」を生成する処理を行ったが、照合用修正コード生成部１３０ｃは、これと全く逆の処理により、暗号コードＱ「ＤＥＦＧＨ」を復号して元の修正コードＲ''「４５６７８」に戻す処理を行うことになる。
【０２６０】
一方、照合用ランダムコード生成部１２０ｃは、照合用修正コードＲ''「４５６７８」の構成要素となる個々の数字に対して、第１の修正数Ｕ１を用いた第１の修正演算Ｙ１とは逆の修正演算Ｙ１バーを行って照合用ランダムコードＲ「１２３４５」を生成する照合用ランダムコード生成段階を行う構成要素である。ここで、第１の修正演算Ｙ１とは逆の修正演算Ｙ１バーとは、図１６(a) に示す修正演算における矢印の向きを逆転させて、下段のコード「４５６７８」から上段のコード「１２３４５」を生成する演算（＋３を減じる演算）ということになる。
【０２６１】
そして、照合判定部１５０ｃは、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」と、照合用ランダムコード生成部１２０ｃが生成した照合用ランダムコードＲ「１２３４５」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００ｃを正当性が確認された装置と判定する照合判定段階を行う構成要素である。
【０２６２】
結局、この実施例ｃでは、第２の情報処理装置２００ｃにおいて、ランダムコードＲ「１２３４５」→修正コードＲ''「４５６７８」→暗号コードＱ「ＤＥＦＧＨ」→修正暗号コードＱ''「ＪＫＬＭＮ」という暗号化処理を伴う変遷を辿って、修正暗号コードＱ''「ＪＫＬＭＮ」を得る点は、これまで述べてきた実施例ａと全く同じであるが、第１の情報処理装置１００ｃにおける認証プロセスでは、逆に、修正暗号コードＱ''「ＪＫＬＭＮ」→暗号コードＱ「ＤＥＦＧＨ」→修正コードＲ''「４５６７８」→ランダムコードＲ「１２３４５」という復号処理を伴う変遷を辿ってランダムコードＲ「１２３４５」を得て、これが元のランダムコードＲ「１２３４５」に一致するか否かを確認することにより、第２の情報処理装置２００ｃの正当性が確認されることになる。
【０２６３】
要するに、実施例ａの場合は、第１の情報処理装置１００ａにおいて、暗号化を経た照合が行われていたのに対し、実施例ｃの場合は、第１の情報処理装置１００ｃにおいて、復号を経た照合が行われることになる。したがって、実施例ａ，ｃに本質的な相違はなく、実施例ｃについても実施例ａと同じ作用効果が得られる。
【０２６４】
＜５−４．実施例ｄ：復号による照合その２＞
続いて、図２１を参照しながら、本発明の第２の実施形態の実施例ｄを説明する。この実施例ｄは、§３−４で述べた第１の実施形態の実施例Ｄに対応するものであり、ここでは、第１の情報処理装置１００ｄが第２の情報処理装置２００ｄの正当性を確認する処理が行われることになる。実施例ｄは、前述した実施例ａにおける照合プロセスを若干変更したものであり、基本的な構成は、実施例ａとほぼ同じである。そこで、以下、実施例ａとの相違点についての説明のみを行う。
【０２６５】
まず、第２の情報処理装置２００ｄについては、図１８の実施例ａに示す第２の情報処理装置２００ａの構成と全く同じであるため、ここでは説明を省略する。なお、図２１では、実施例Ａの各構成要素と区別する便宜上、構成要素２２０ｄ〜２７０ｄの符号末尾に「ｄ」を付加して示してあるが、これらの各構成要素は、図１８に示す実施例ａの各構成要素２２０ａ〜２７０ａと全く同じものである。
【０２６６】
一方、第１の情報処理装置１００ｄについては、構成要素１１０，１６０，１７０ｄ，１８０ｄは、それぞれ図１８の実施例ａにおける構成要素１１０，１６０，１７０ａ，１８０ａと全く同じである。実施例ａとの相違点は、構成要素１２０ａ，１３０ａ，１４０ａ，１５０ａの代わりに、照合用修正コード第２生成部１２０ｄ，照合用修正コード第１生成部１３０ｄ，照合用暗号コード生成部１４０ｄ，照合判定部１５０ｄが設けられている点である。そこで、以下、これら４つの構成要素の機能について説明する。
【０２６７】
はじめに、照合用暗号コード生成部１４０ｄは、修正暗号コード受信部１７０ｄが受信した修正暗号コードＱ''「ＪＫＬＭＮ」の構成要素となる個々の数字に対して、第２の修正数Ｕ２を用いた第２の修正演算Ｙ２とは逆の修正演算Ｙ２バーを行って照合用暗号コードＱ「ＤＥＦＧＨ」を生成する照合用暗号コード生成段階を行う構成要素である。この照合用暗号コード生成部１４０ｄの機能は、実施例ｂの照合用暗号コード第２生成部１４０ｂの機能と全く同じであり、詳しい説明は省略する。
【０２６８】
次に、照合用修正コード第１生成部１３０ｄは、暗号コード生成部２３０ｄが暗号化処理を行う際に利用した暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく復号演算によって、照合用暗号コードＱ「ＤＥＦＧＨ」を復号して照合用修正コードＲ''「４５６７８」を生成する照合用修正コード第１生成段階を行う構成要素である。暗号コード生成部２３０ｄは、暗号アルゴリズムＡに基づく暗号化演算により、修正コードＲ''「４５６７８」に対する暗号化を行い、暗号コードＱ「ＤＥＦＧＨ」を生成する処理を行ったが、照合用修正コード第１生成部１３０ｄは、これと全く逆の処理により、暗号コードＱ「ＤＥＦＧＨ」を復号して元の修正コードＲ''「４５６７８」に戻す処理を行うことになる。
【０２６９】
この照合用修正コード第１生成部１３０ｄは、実際には、実施例ｃにおける照合用修正コード生成部１３０ｃと全く同じ機能をもった構成要素であるが、照合用修正コード第２生成部１２０ｄとの混同を避けるため、ここでは、構成要素１３０ｄについては名称に「第１」を挿入し、構成要素１２０ｄについては名称に「第２」を挿入して、それぞれ照合用修正コード第１生成部１３０ｄおよび照合用修正コード第２生成部１２０ｄと呼ぶことにする。
【０２７０】
そして、照合用修正コード第２生成部１２０ｄは、ランダムコード発生部１１０で発生させたランダムコードＲ「１２３４５」の構成要素となる個々の数字に対して、第１の修正数Ｕ１を用いた第１の修正演算Ｙ１を行って照合用修正コードＲ''「４５６７８」を生成する照合用修正コード第２生成段階を実行する構成要素である。この照合用修正コード第２生成部１２０ｄは、実際には、実施例ａにおける照合用修正コード生成部１２０ａと全く同じ機能をもった構成要素であるが、上述したように、照合用修正コード第１生成部１３０ｄとの混同を避けるため、ここでは、照合用修正コード第２生成部１２０ｄと呼んでいる。
【０２７１】
そして、照合判定部１５０ｄは、照合用修正コード第１生成部１３０ｄが生成した照合用修正コードＲ''「４５６７８」と、照合用修正コード第２生成部１２０ｄが生成した照合用修正コードＲ''「４５６７８」と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００ｄを正当性が確認された装置と判定する照合判定段階を行う構成要素である。
【０２７２】
結局、この実施例ｄでは、第２の情報処理装置２００ｄにおいて、ランダムコードＲ「１２３４５」→修正コードＲ''「４５６７８」→暗号コードＱ「ＤＥＦＧＨ」→修正暗号コードＱ''「ＪＫＬＭＮ」という暗号化処理を伴う変遷を辿って、修正暗号コードＱ''「ＪＫＬＭＮ」を得る点は、これまで述べてきた実施例ａと全く同じであるが、第１の情報処理装置１００ｄにおける認証プロセスでは、逆に、修正暗号コードＱ''「ＪＫＬＭＮ」→暗号コードＱ「ＤＥＦＧＨ」→修正コードＲ''「４５６７８」という復号処理を伴う変遷を辿って修正コードＲ''「４５６７８」を得るとともに、元のランダムコードＲ「１２３４５」→修正コードＲ''「４５６７８」という修正処理を行い、得られた２通りの修正コードＲ''「４５６７８」が一致するか否かを確認することにより、第２の情報処理装置２００ｄの正当性が確認されることになる。したがって、実施例ａ，ｄに本質的な相違はなく、実施例ｄについても実施例ａと同じ作用効果が得られる。
【０２７３】
＜５−５．実施例ｅ：暗号化による簡易照合＞
続いて、図２２を参照しながら、本発明の第２の実施形態の実施例ｅを説明する。この実施例ｅは、§３−５で述べた第１の実施形態の実施例Ｅに対応するものであり、ここでは、第１の情報処理装置１００ｅが第２の情報処理装置２００ｅの正当性を確認する処理が行われることになる。実施例ｅは、前述した実施例ａにおける照合プロセスを一部簡略化したものであり、基本的な構成は、実施例ａとほぼ同じである。そこで、以下、実施例ａとの相違点についての説明のみを行う。
【０２７４】
まず、第２の情報処理装置２００ｅについては、構成要素２１０，２２０ｅ，２３０ｅ，２４０ｅ，２７０ｅは、それぞれ図１８の実施例ａにおける構成要素２１０，２２０ａ，２３０ａ，２４０ａ，２７０ａと全く同じである。実施例ａとの相違点は、構成要素２５０ａ，２６０ａの代わりに、修正暗号コード送信部２５０ｅ，修正数暗号化部２６０ｅが設けられている点である。
【０２７５】
一方、第１の情報処理装置１００ｅについては、構成要素１１０，１２０ｅ，１３０ｅ，１６０は、それぞれ図１８の実施例ａにおける構成要素１１０，１２０ａ，１３０ａ，１６０と全く同じである。実施例ａとの相違点は、構成要素１４０ａに相当する構成要素が省略されている点と、構成要素１５０ａ，１７０ａ，１８０ａの代わりに、照合判定部１５０ｅ，修正暗号コード受信部１７０ｅ，修正数復号部１８０ｅが設けられている点である。そこで、以下、これらの相違点について説明する。
【０２７６】
この実施例ｅの根本的な特徴は、実施例ａにおける第２の情報処理装置２００ａから第１の情報処理装置１００ａへの第２の暗号化修正数Ｕ２＊の送信を省略し、第１の情報処理装置１００ｅ側での第２の修正演算Ｙ２による修正処理を省略する点にある。
【０２７７】
したがって、第２の情報処理装置２００ｅ側では、修正数生成部２７０ｅにおいて２組の修正数Ｕ１，Ｕ２を生成し、修正コード生成部２２０ｅにおける修正処理および修正暗号コード生成部２４０ｅにおける修正処理が行われる点は、実施例ｅと同じであるが、修正数暗号化部２６０ｅにおいて行われる修正数暗号化段階では、第１の修正数Ｕ１を暗号化し、第１の暗号化修正数Ｕ１＊を生成する処理が行われるものの、第２の修正数Ｕ２の暗号化は省略される。また、修正暗号コード送信部２５０ｅにおいて行われる修正暗号コード送信段階では、修正暗号コードＱ''「ＪＫＬＭＮ」とともに第１の暗号化修正数Ｕ１＊が、第１の情報処理装置１００ｅに送信されるが、第２の暗号化修正数Ｕ２＊の送信は省略される。
【０２７８】
このように、第２の暗号化修正数Ｕ２＊の送信を省略したため、第１の情報処理装置１００ｅ側の処理も若干変わってくる。すなわち、修正暗号コード受信部１７０ｅでは、修正暗号コードＱ''「ＪＫＬＭＮ」とともに第１の暗号化修正数Ｕ１＊の受信が行われるが、第２の暗号化修正数Ｕ２＊は受信されない。また、修正数復号部１８０ｅでは、第１の暗号化修正数Ｕ１＊を復号し、第１の修正数Ｕ１を復元する処理が行われるが、第２の暗号化修正数Ｕ２＊の復号は行われない。
【０２７９】
結局、第１の情報処理装置１００ｅ側には、第２の修正数Ｕ２の情報が伝わらないので、第２の修正数Ｕ２を用いる第２の修正演算Ｙ２を行うことはできない。図１８に示す実施例ａでは、この第２の修正数Ｕ２に基づく第２の修正演算Ｙ２を行うために、照合用修正暗号コード生成部１４０ａが設けられていたが、図２２に示す実施例ｅでは、この構成要素１４０ａに相当するものは省略されている。その結果、照合用暗号コード生成部１３０ｅによって生成された照合用暗号コードＱ「ＤＥＦＧＨ」が、そのままの状態で照合判定部１５０ｅに与えられることになる。
【０２８０】
これは、照合判定部１５０ｅが、実施例ａの照合判定部１５０ａと同じ方法では照合判定を実行できないことを意味する。図示の具体例の場合も、照合用暗号コード生成部１３０ｅから与えられる照合用暗号コードＱ「ＤＥＦＧＨ」と、修正暗号コード受信部１７０ｅから与えられる修正暗号コードＱ''「ＪＫＬＭＮ」とは一致していない。
【０２８１】
しかしながら、照合用暗号コードＱ「ＤＥＦＧＨ」を、第２の修正数Ｕ２を用いた第２の修正演算Ｙ２によって修正すれば、修正暗号コードＱ''「ＪＫＬＭＮ」が得られるのであるから、修正演算の内容（たとえば、図１６に示す具体例の場合は、修正数を加算する演算）を予め定めておけば、修正数自体が未知であっても、２つのコードＱ「ＤＥＦＧＨ」およびＱ''「ＪＫＬＭＮ」が、修正演算の前後の数値として矛盾のない対応関係を有するか否かを判定することは可能である。
【０２８２】
たとえば、上例の場合、コードＱ「ＤＥＦＧＨ」を構成する個々の文字「Ｄ，Ｅ，Ｆ，Ｇ，Ｈ」は、それぞれ対応する数字（アルファベットの並び順を示す数字）に置き換えると「４，５，６，７，８」なる数列になり、コードＱ''「ＪＫＬＭＮ」を構成する個々の文字「Ｊ，Ｋ，Ｌ，Ｍ，Ｎ」は、それぞれ対応する数字に置き換えると「１０，１１，１２，１３，１４」なる数列になる。そこで、先頭から順に対応する位置にある構成要素を組み合わせてゆくと、５組の構成要素対「４と１０」，「５と１１」，「６と１２」，「７と１３」，「８と１４」が得られる。これら個々の構成要素対について差Δを求めると、いずれも差Δ＝６になる。
【０２８３】
これは、第２の情報処理装置２００ｅの修正暗号コード生成部２４０ｅにおいて、第２の修正数Ｕ２＝＋６とする加算演算が行われたためである。この実施例ｅでは、第１の情報処理装置１００ｅ側に第２の修正数Ｕ２は伝達されないが、上例のように、照合判定部１５０ｅにおいて、２つのコードＱ「ＤＥＦＧＨ」およびＱ''「ＪＫＬＭＮ」の対応する位置にある構成要素対についてそれぞれ差Δを求めれば、当該差Δは、修正暗号コード生成部２４０ｅにおいて実行された第２の修正演算Ｙ２（加算演算）に用いられた第２の修正数Ｕ２ということになる。
【０２８４】
このように、第２の修正演算Ｙ２を、何らかの修正数Ｕ２を個々の構成要素に加える加算もしくは減算演算とした場合、修正数Ｕ２がどのような値をとったとしても、上述の方法で求めた差Δはすべて等しくなるはずである。換言すれば、すべての構成要素対について求めた差Δがすべて等しくなれば、２つのコードＱ，Ｑ''は、修正演算の前後の数値として矛盾のない対応関係を有することになるが、１つでも異なった差Δが得られた場合には、対応関係に矛盾が生じていることになる。
【０２８５】
そこで、この実施例ｅの場合、照合判定部１５０ｅは、修正暗号コード受信部１７０ｅが受信した修正暗号コードＱ''「ＪＫＬＭＮ」に含まれている構成要素と、照合用暗号コード生成部１５０ｅが生成した照合用暗号コードＱ「ＤＥＦＧＨ」に含まれている構成要素と、が第２の修正演算Ｙ２による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、第２の情報処理装置２００ｅを正当性が確認された装置と判定する照合判定段階を行う。
【０２８６】
具体的には、照合判定部１５０ｅは、上述したように、２つのコードＱ，Ｑ''の各構成要素対について、先頭から順にそれぞれ差Δを求める演算を行ってゆき、求めた差Δが直前の構成要素対について求めた差Δと一致するか否かを確認する処理を順次行ってゆけばよい。
【０２８７】
このように、実施例ｅでは、第１の情報処理装置１００ｅ側で行う照合判定の基準が、これまで述べてきた実施例ａ〜ｄに比べて緩和されている。すなわち、照合対象となる２組のコードが一致するか否かを判定する代わりに、所定の修正演算前後の数値として矛盾のない対応関係を有するか否かを判定することになる。このため、この実施例ｅは、実施例ａ〜ｄに比べて認証の厳格性は若干低下することになるが、第２の情報処理装置２００ｅ側では、第２の修正数Ｕ２を送信するための処理を省略することができ、第１の情報処理装置１００ｅ側では、第２の修正数Ｕ２に関する受信処理や修正処理を省略することができるので、処理を簡素化できるメリットが得られる。
【０２８８】
＜５−６．実施例ｆ：復号による簡易照合＞
続いて、図２３を参照しながら、本発明の第２の実施形態の実施例ｆを説明する。この実施例ｆは、§３−６で述べた第１の実施形態の実施例Ｆに対応するものであり、ここでは、第１の情報処理装置１００ｆが第２の情報処理装置２００ｆの正当性を確認する処理が行われることになる。実施例ｆは、実施例ｅと同様に、実施例ａにおける照合プロセスを一部簡略化したものであり、基本的な構成は、実施例ａとほぼ同じである。そこで、以下、実施例ａとの相違点についての説明のみを行う。
【０２８９】
まず、第２の情報処理装置２００ｆについては、構成要素２１０，２２０ｆ，２３０ｆ，２４０ｆ，２７０ｆは、それぞれ図１８の実施例ａにおける構成要素２１０，２２０ａ，２３０ａ，２４０ａ，２７０ａと全く同じである。実施例ａとの相違点は、構成要素２５０ａ，２６０ａの代わりに、修正暗号コード送信部２５０ｆ，修正数暗号化部２６０ｆが設けられている点である。
【０２９０】
一方、第１の情報処理装置１００ｆについては、構成要素１１０，１６０は、それぞれ図１８の実施例ａにおける構成要素１１０，１６０と全く同じである。実施例ａとの相違点は、構成要素１２０ａに相当する構成要素が省略されている点と、構成要素１３０ａ，１４０ａ，１５０ａ，１７０ａ，１８０ａの代わりに、照合用修正コード生成部１３０ｆ，照合用暗号コード生成部１４０ｆ，照合判定部１５０ｆ，修正暗号コード受信部１７０ｆ，修正数復号部１８０ｆが設けられている点である。そこで、以下、これらの相違点について説明する。
【０２９１】
この実施例ｆの根本的な特徴は、実施例ａにおける第２の情報処理装置２００ａから第１の情報処理装置１００ａへの第１の暗号化修正数Ｕ１＊の送信を省略し、第１の情報処理装置１００ｆ側での第１の修正数Ｕ１に基づく第１の修正演算Ｙ１を省略する点にある。すなわち、前述した実施例ｅでは、第２の暗号化修正数Ｕ２＊の送信を省略していたのに対して、ここで述べる実施例ｆでは、第１の暗号化修正数Ｕ１＊の送信を省略している点が異なっている。
【０２９２】
このため、第２の情報処理装置２００ｆ側では、修正数生成部２７０ｆにおいて２組の修正数Ｕ１，Ｕ２を生成し、修正コード生成部２２０ｆにおける第１の修正演算Ｙ１および修正暗号コード生成部２４０ｆにおける第２の修正演算Ｙ２が行われる点は、実施例ａと同じであるが、修正数暗号化部２６０ｆにおいて行われる修正数暗号化段階では、第２の修正数Ｕ２を暗号化し、第２の暗号化修正数Ｕ２＊を生成する処理が行われるものの、第１の修正数Ｕ１の暗号化は省略される。また、修正暗号コード送信部２５０ｆにおいて行われる修正暗号コード送信段階では、修正暗号コードＱ''「ＪＫＬＭＮ」とともに第２の暗号化修正数Ｕ２＊が、第１の情報処理装置１００ｆに送信されるが、第１の暗号化修正数Ｕ１＊の送信は省略される。
【０２９３】
このように、第１の暗号化修正数Ｕ１＊の送信を省略したため、第１の情報処理装置１００ｆ側の処理も若干変わってくる。すなわち、修正暗号コード受信部１７０ｆでは、修正暗号コードＱ''「ＪＫＬＭＮ」とともに第２の暗号化修正数Ｕ２＊の受信が行われるが、第１の暗号化修正数Ｕ１＊は受信されない。また、修正数復号部１８０ｆでは、第２の暗号化修正数Ｕ２＊を復号し、第２の修正数Ｕ２を復元する処理が行われるが、第１の暗号化修正数Ｕ１＊の復号は行われない。
【０２９４】
結局、第１の情報処理装置１００ｆ側には、第１の修正数Ｕ１の情報が伝わらないので、第１の修正数Ｕ１に基づく第１の修正演算Ｙ１を行うことはできない。すなわち、第１の情報処理装置１００ｆ側では、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」に対する修正演算を行うことができないので、第２の情報処理装置２００ｆ側で行われた暗号化処理に対応する処理を行うことができないことになる。そこで、第１の情報処理装置１００ｆ側で行う照合判定作業は、暗号化処理ではなく復号処理を前提としたものにならざるを得ない。
【０２９５】
このような観点から、この実施例ｆでは、前述した実施例ｃに類似した処理（復号による照合処理）を行うことになる。その基本概念は、図２０に示す実施例ｃにおいて、照合用ランダムコード生成部１２０ｃを省略し、照合用修正コード生成部１３０ｃによって生成された照合用修正コードＲ''「４５６７８」を照合判定部１５０ｃに直接与え、照合判定部１５０ｃにおいて、２組のコードの一致を判定する代わりに、これら２組のコードが、修正演算による演算前後の数値として矛盾のない対応関係を有するか否かを判定するように改変することにある。
【０２９６】
具体的には、照合用暗号コード生成部１４０ｆにおいて、修正暗号コード受信部１７０ｆが受信した修正暗号コードＱ''「ＪＫＬＭＮ」の構成要素となる個々の数字（この例の場合は、文字に対応する数字）に対して、第２の修正数Ｕ２を用いた第２の修正演算Ｙ２とは逆の修正演算Ｙ２バーを行って照合用暗号コードＱ「ＤＥＦＧＨ」を生成する照合用暗号コード生成段階が行われる。続いて、照合用修正コード生成部１３０ｆにおいて、暗号コード生成部２３０ｆの暗号化処理に利用された暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく復号演算を行い、照合用暗号コードＱ「ＤＥＦＧＨ」を復号して照合用修正コードＲ''「４５６７８」を生成する照合用修正コード生成段階が行われる。
【０２９７】
上述したとおり、第１の情報処理装置１００ｆ側には、第１の修正数Ｕ１に関する情報は伝えられていないので、照合用修正コード生成部１３０ｆによって生成された照合用修正コードＲ''「４５６７８」に対する修正演算（第１の修正演算Ｙ１とは逆の修正演算Ｙ１バー）を行うことはできない。そのため、この照合用修正コードＲ''「４５６７８」は、そのままの状態で照合判定部１５０ｆに与えられることになる。
【０２９８】
これは、照合判定部１５０ｆが、実施例ｃの照合判定部１５０ｃと同じ方法では照合判定を実行できないことを意味する。図示の具体例の場合も、照合用修正コード生成部１３０ｆから与えられる照合用修正コードＲ''「４５６７８」と、ランダムコード発生部１１０から与えられるランダムコードＲ「１２３４５」とは一致していない。
【０２９９】
しかしながら、上述した実施例ｅにおける照合判定の手法と同様に、ランダムコードＲ「１２３４５」を、第１の修正数Ｕ１を用いた第１の修正演算Ｙ１によって修正すれば、照合用修正コードＲ''「４５６７８」が得られるのであるから、修正演算の内容を予め定めておけば、修正数自体が未知であっても、２つのコードＲ「１２３４５」およびＲ''「４５６７８」が、修正演算の前後の数値として矛盾のない対応関係を有するか否かを判定することは可能である。
【０３００】
そこで、この実施例ｆの場合、照合判定部１５０ｆは、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」に含まれている構成要素と、照合用修正コード生成部１３０ｆが生成した照合用修正コードＲ''「４５６７８」に含まれている構成要素と、が第１の修正演算Ｙ１による演算前後の数値として矛盾のない対応関係を有するか否かを照合し、矛盾のない対応関係を有する場合に、第２の情報処理装置２００ｆを正当性が確認された装置と判定する照合判定段階を行う。
【０３０１】
このように、実施例ｆでは、実施例ｅと同様に、第１の情報処理装置１００ｆ側で行う照合判定の基準が、これまで述べてきた実施例ａ〜ｄに比べて緩和されているので認証の厳格性は若干低下することになるが、第２の情報処理装置２００ｆ側では、第１の修正数Ｕ１を送信するための処理を省略することができ、第１の情報処理装置１００ｆ側では、第１の修正数Ｕ１に関する受信処理や並び替え処理を省略することができるので、処理を簡素化できるメリットが得られる。
【０３０２】
＜５−７．実施例ｇ：一方向性関数の利用＞
最後に、図２４を参照しながら、本発明の第２の実施形態の実施例ｇを説明する。この実施例ｇは、§３−７で述べた第１の実施形態の実施例Ｇに対応するものであり、ここでは、第１の情報処理装置１００ｇが第２の情報処理装置２００ｇの正当性を確認する処理が行われることになる。実施例ｇは、前述した実施例ａにおけるプロセスを若干変更したものであり、基本的な構成は、実施例ａとほぼ同じである。そこで、以下、実施例ａとの相違点についての説明のみを行う。
【０３０３】
まず、第２の情報処理装置２００ｇについては、構成要素２１０，２３０ｇは、図１８の実施例ａにおける構成要素２１０，２３０ａと全く同じである。実施例ａとの相違点は、構成要素２２０ａ，２４０ａ，２５０ａ，２６０ａ，２７０ａの代わりに、修正コード生成部２２０ｇ，一方向性関数値生成部２４０ｇ，関数値送信部２５０ｇ、修正数暗号化部２６０ｇ，修正数生成部２７０ｇが設けられている点である。
【０３０４】
一方、第１の情報処理装置１００ｇについては、構成要素１１０，１３０ｇ，１６０は、実施例ａにおける構成要素１１０，１３０ａ，１６０と全く同じである。実施例ａとの相違点は、構成要素１２０ａ，１４０ａ，１５０ａ，１７０ａ，１８０ａの代わりに、照合用修正コード生成部１２０ｇ，照合用一方向性関数値生成部１４０ｇ，照合判定部１５０ｇ，関数値受信部１７０ｇ，修正数復号部１８０ｇが設けられている点である。そこで、以下、これらの相違点について説明する。
【０３０５】
この実施例ｇの根本的な特徴は、実施例Ｇと同様に一方向性関数を利用する点である。すなわち、実施例ａにおける第１の修正演算Ｙ１は行うものの、第２の修正演算Ｙ２は行わず、その代わりに一方向性関数を作用させる演算が行われる。そこで、この実施例ｇでは、実施例ａにおける「第１の修正数Ｕ１」および「第１の修正演算Ｙ１」に対応する用語として、単に、「修正数Ｕ」および「修正演算Ｕ」という文言を用いることにする。このように用語に若干の相違があるものの、実施例ｇにおける修正コード生成部２２０ｇは、実際には、実施例ａにおける修正コード生成部２２０ａと全く同じ構成要素であり、実施例ｇにおける照合用修正コード生成部１２０ｇは、実際には、実施例ａにおける照合用修正コード生成部１２０ａと全く同じ構成要素である。
【０３０６】
すなわち、修正コード生成部２２０ｇは、ランダムコードＲ「１２３４５」の構成要素となる個々の数字に対して、修正数Ｕを用いた修正演算Ｙを行って修正コードＲ''「４５６７８」を生成する修正コード生成段階を行う構成要素であり、照合用修正コード生成部１２０ｇは、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」の構成要素となる個々の数字に対して、修正数Ｕを用いた修正演算Ｙを行って修正コードＲ''「４５６７８」を生成する照会用修正コード生成段階を行う構成要素である。
【０３０７】
このように、実施例ｇでは、単一の修正数Ｕしか用いられないので、修正数生成部２７０ｇは、単一の修正数Ｕを生成すれば足り、修正数暗号化部２６０ｇは、この単一の修正数Ｕに対する暗号化を行って、単一の暗号化修正数Ｕ＊を生成すれば足りる。
【０３０８】
実施例ｇと実施例ａとの本質的な相違は、暗号コード生成部２３０ａが、修正コードＲ''「４５６７８」に対する暗号化処理を行って暗号コードＱ「ＤＥＦＧＨ」を生成した後、この暗号コードＱ「ＤＥＦＧＨ」に対して修正演算を行う代わりに、一方向性関数を作用させる演算を行う点である。
【０３０９】
そのため、一方向性関数値生成部２４０ｇにおいて、暗号コードＱ「ＤＥＦＧＨ」に対して一方向性関数を作用させて所定の関数値Ｈを生成する一方向性関数値生成段階が行われる。この一方向性関数の性質については、既に§３−７で説明したとおりであり、ここでも代表的な一方向性関数として、ＨＡＳＨ関数を用いた例を述べることにする。図示の例の場合も、便宜上、「ＤＥＦＧＨ」なる５文字のデータからなる暗号コードＱに対してＨＡＳＨ関数を作用させることにより得られた関数値Ｈの具体的な値を「ｈ」で表すことにする。この例の場合、一方向性関数値生成部２４０ｇは、暗号コードＱ「ＤＥＦＧＨ」に対してＨＡＳＨ関数を作用させ、関数値Ｈ（ｈ）を生成する演算処理を行うことになる。
【０３１０】
関数値送信部２５０ｇは、一方向性関数値生成部２４０ｇによって生成された関数値Ｈ（ｈ）とともに、修正数暗号化部２６０ｇで暗号化された暗号化修正数Ｕ＊を、第１の情報処理装置１００ｇに送信する関数値送信段階を行う構成要素である。
【０３１１】
こうして、第２の情報処理装置２００ｇから送信されてきた関数値Ｈ（ｈ）および暗号化修正数Ｕ＊は、関数値受信部１７０ｇによって受信される。受信された暗号化修正数Ｕ＊は修正数復号部１８０ｇに与えられ、受信された関数値Ｈ（ｈ）は照合判定部１５０ｇに与えられる。修正数復号部１８０ｇは、与えられた暗号化修正数Ｕ＊を復号し、修正数Ｕを復元する修正数復号段階を行う。
【０３１２】
一方、照合用修正コード生成部１２０ｇは、ランダムコード発生部１１０が発生させたランダムコードＲ「１２３４５」の構成要素となる個々の数字に対して、修正数Ｕを用いた修正演算Ｙを行って照合用修正コードＲ''「４５６７８」を生成する照合用修正コード生成段階を行う。また、照合用暗号コード生成部１３０ｇは、暗号コード生成部２３０ｇの暗号化処理に用いられた暗号アルゴリズムＡと同じ暗号アルゴリズムＡに基づく暗号化演算によって、照合用修正コードＲ''「４５６７８」を暗号化して照合用暗号コードＱ「ＤＥＦＧＨ」を生成する照合用暗号コード生成段階を行う。
【０３１３】
続いて、照合用一方向性関数値生成部１４０ｇにおいて、照合用暗号コードＱ「ＤＥＦＧＨ」に対して、一方向性関数値生成部２４０ｇで用いられた一方向性関数と同じ一方向性関数（ここに示す例の場合、ＨＡＳＨ関数）を作用させて、照合用関数値Ｈ（ｈ）を生成する照合用一方向性関数値生成段階が行われる。そして最後に、照合判定部１５０ｇにおいて、関数値受信部１７０ｇが受信した関数値Ｈ（ｈ）と、照合用一方向性関数値生成部１４０ｇで生成された照合用関数値Ｈ（ｈ）と、が一致するか否かを照合し、一致した場合に、第２の情報処理装置２００ｇを正当性が確認された装置と判定する照合判定段階が行われる。
【０３１４】
このように、実施例ｇでは、第１の情報処理装置１００ｇ側で行う照合が、一方向性関数値の一致確認というプロセスで行われるため、認証の厳格性は若干低下することになるが、第１の情報処理装置１００ｇおよび第２の情報処理装置２００ｇの双方において、単一の修正数Ｕに関する処理を行えばよいため、処理を簡素化できるメリットが得られる。
【０３１５】
＜＜＜  §６．  本発明の変形例  ＞＞＞
これまで本発明に係る第１の実施形態および第２の実施形態を、それぞれいくつかの実施例に基づいて説明したが、もちろん、本発明はこれらの実施例に限定されるものではない。ここでは、これまで述べてきた種々に実施例に対する変形例をいくつか述べておく。
【０３１６】
(1)   修正演算のバリエーション
§４，§５で述べた第２の実施形態において実行する修正演算として、図１６には、任意の修正数Ｕを加算もしくは減算する例を示したが、修正演算としては、加減算以外にも様々な算術演算を設定することも可能である。たとえば、元のコードの各構成要素となる数字に修正数Ｕを乗ずる乗算、修正数Ｕを除する除算、構成ビットを修正数Ｕだけシフトするシフト演算、修正数Ｕとの間でのビットごとの論理演算（ＡＮＤ演算、ＯＲ演算、ＸＯＲ演算）などを行うようにしてもよい。
【０３１７】
ただ、このような修正演算の目的は、図１７に示すように、通信傍受によって察知されてしまうチャレンジ・レスポンスのコードと、サイドチャネル解析の対象となる暗号化処理の前後のコードとが異なるようにするためであるので、敢えて複雑な演算を行う必要はない。したがって、実用上は、図１６に例示したように、第１の修正数Ｕ１および第２の修正数Ｕ２として、乱数を利用して生成した正もしくは負の数を用い、第１の修正演算Ｙ１として、個々の数字に対して第１の修正数Ｕ１を加算もしくは減算する演算を行い、第２の修正演算Ｙ２として、個々の数字に対して第２の修正数Ｕ２を加算もしくは減算する演算を行うようにすれば十分である。
【０３１８】
(2)   個別の修正数を用いる変形例
これまで述べた修正演算は、複数ｎ個の数字（もしくは、数字に対応する文字）を構成要素として含むコードについて、これらｎ個の構成要素に対して共通の修正数Ｕを生成し、当該共通の修正数Ｕを加算もしくは減算する例であるが、修正数Ｕは、必ずしもｎ個の構成要素に対して共通にする必要はなく、それぞれ別個の修正数を用いるようにしてもかまわない。この場合、複数ｎ個の数字（もしくは、数字に対応する文字）を構成要素として含むコードについて、これらｎ個の構成要素のそれぞれについて別個に修正数を生成し、第１の修正数Ｕ１もしくは第２の修正数Ｕ２を、ｎ個の修正数の数列によって構成すればよい。結局、ｎ個の構成要素からなるコードに対してｎ個の修正数の数列を用いて修正演算が行われることになる。
【０３１９】
たとえば、図１６(a) に示す例の場合、５個の構成要素（ｎ＝５）からなる元のコード「１２３４５」について、共通の修正数Ｕ１＝＋３を生成し、各構成要素に＋３を加算することにより、修正コード「４５６７８」を得る修正演算が示されているが、修正数Ｕ１として、たとえば、「３３２２１」のような５つの数字からなる数列を生成し、５個の構成要素に対してそれぞれ数列の対応位置にある数字を加算すれば、「７８８９９」という５個の構成要素からなる修正コードを得ることができる。もちろん、この場合、第２の情報処理装置から第１の情報処理装置に対して、「３３２２１」という数列からなる修正数Ｕ１が暗号化された状態で送信されることになる。
【０３２０】
(3)   ２組の情報処理装置における相互認証
これまで述べてきた実施例では、第１の情報処理装置（サーバ装置）が第２の情報処理装置（クライアント装置）を正当性が確認された装置として認証する認証方法を説明した。すなわち、第１の情報処理装置で乱数を用いてランダムコードＲを生成し、これをチャレンジとして第２の情報処理装置に送信し、第２の情報処理装置において、このチャレンジに基づいて所定の処理を行ってレスポンスを生成し、これを第１の情報処理装置に返信し、第１の情報処理装置が当該レスポンスに基づき、第２の情報処理装置が正当な装置であるか否かを判断している。
【０３２１】
そこで、第１の情報処理装置が行う各処理段階と、第２の情報処理装置が行う各処理段階と、を入れ替えた処理を更に行うようにすれば、第１の情報処理装置が第２の情報処理装置を正当性が確認された装置として認証するとともに、第２の情報処理装置が第１の情報処理装置を正当性が確認された装置として認証する相互認証の処理を行うことも可能である。
【０３２２】
具体的には、これまで述べてきた実施例において、第１の情報処理装置の各構成要素を第２の情報処理装置にも設けるようにし、第２の情報処理装置の各構成要素を第１の情報処理装置にも設けるようにし、それぞれが相手方に対する認証処理を行うようにすればよい。
【０３２３】
(4)   半導体集積回路もしくはプログラムの提供
これまで、本発明に係る認証方法を実行する機能をもった第１の情報処理装置および第２の情報処理装置の基本構成を、ブロック図を利用しながら説明してきたが、実際には、これらの情報処理装置は、当該ブロック図に対応する専用の処理機能をもった半導体集積回路もしくは専用のプログラムを組み込んだコンピュータによって実現することができる。したがって、実用上、本発明の成果物は、半導体集積回路からなる情報処理装置というハードウエア製品として、あるいは、コンピュータ用のプログラムというソフトウエア製品として、市場に提供されることになる。
【符号の説明】
【０３２４】
１０：第１の情報処理装置（サーバ装置）
１１：ランダムコード発生部
１３：照合用暗号コード生成部
１５：照合判定部
１６：ランダムコード送信部
１７：暗号コード受信部
２０：第２の情報処理装置（クライアント装置）
２１：ランダムコード受信部
２３：暗号コード生成部
２５：暗号コード送信部
１００，１００′：第１の情報処理装置（サーバ装置）
１００Ａ〜１００Ｇ：第１の情報処理装置（サーバ装置）
１００ａ〜１００ｇ：第１の情報処理装置（サーバ装置）
１１０：ランダムコード発生部
１２０：照合用並替コード生成部
１２０′：照合用修正コード生成部
１２０Ｃ：照合用ランダムコード生成部
１２０Ｄ：照合用並替コード第２生成部
１２０Ｇ：照合用並替コード生成部
１２０ａ：照合用修正コード生成部
１２０ｂ：照合用修正コード生成部
１２０ｃ：照合用ランダムコード生成部
１２０ｄ：照合用修正コード第２生成部
１２０ｅ：照合用修正コード生成部
１２０ｇ：照合用修正コード生成部
１３０：照合用暗号コード生成部
１３０′：照合用暗号コード生成部
１３０Ｂ：照合用暗号コード第１生成部
１３０Ｃ：照合用並替コード生成部
１３０Ｄ：照合用並替コード第１生成部
１３０Ｆ：照合用並替コード生成部
１３０ａ：照合用暗号コード生成部
１３０ｂ：照合用暗号コード第１生成部
１３０ｃ：照合用修正コード生成部
１３０ｄ：照合用修正コード第１生成部
１３０ｅ：照合用暗号コード生成部
１３０ｆ：照合用修正コード生成部
１３０ｇ：照合用暗号コード生成部
１４０：照合用並替暗号コード生成部
１４０′：照合用修正暗号コード生成部
１４０Ｂ：照合用暗号コード第２生成部
１４０Ｃ：照合用暗号コード生成部
１４０Ｄ：照合用暗号コード生成部
１４０Ｆ：照合用暗号コード生成部
１４０Ｇ：照合用一方向性関数値生成部
１４０ａ：照合用修正暗号コード生成部
１４０ｂ：照合用暗号コード第２生成部
１４０ｃ：照合用暗号コード生成部
１４０ｄ：照合用暗号コード生成部
１４０ｆ：照合用暗号コード生成部
１４０ｇ：照合用一方向性関数値生成部
１５０：照合判定部
１５０′：照合判定部
１５０Ｂ：照合判定部
１５０Ｃ：照合判定部
１５０Ｄ：照合判定部
１５０Ｅ：照合判定部
１５０Ｆ：照合判定部
１５０Ｇ：照合判定部
１５０ａ：照合判定部
１５０ｂ：照合判定部
１５０ｃ：照合判定部
１５０ｄ：照合判定部
１５０ｅ：照合判定部
１５０ｆ：照合判定部
１５０ｇ：照合判定部
１６０：ランダムコード送信部
１７０：並替暗号コード受信部
１７０′：修正暗号コード受信部
１７０Ｅ：並替暗号コード受信部
１７０Ｆ：並替暗号コード受信部
１７０Ｇ：関数値受信部
１７０ａ：修正暗号コード受信部
１７０ｂ：修正暗号コード受信部
１７０ｃ：修正暗号コード受信部
１７０ｄ：修正暗号コード受信部
１７０ｅ：修正暗号コード受信部
１７０ｆ：修正暗号コード受信部
１７０ｇ：関数値受信部
１８０：テーブル復号部
１８０Ｅ：テーブル復号部
１８０Ｆ：テーブル復号部
１８０Ｇ：テーブル復号部
１８０ａ：修正数復号部
１８０ｂ：修正数復号部
１８０ｃ：修正数復号部
１８０ｄ：修正数復号部
１８０ｅ：修正数復号部
１８０ｆ：修正数復号部
１８０ｇ：修正数復号部
２００，２００′：第２の情報処理装置（クライアント装置）
２００Ａ〜２００Ｇ：第２の情報処理装置（クライアント装置）
２００ａ〜２００ｇ：第２の情報処理装置（クライアント装置）
２１０：ランダムコード受信部
２２０：並替コード生成部
２２０′：修正コード生成部
２２０Ｇ：並替コード生成部
２２０ａ：修正コード生成部
２２０ｂ：修正コード生成部
２２０ｃ：修正コード生成部
２２０ｄ：修正コード生成部
２２０ｅ：修正コード生成部
２２０ｆ：修正コード生成部
２２０ｇ：修正コード生成部
２３０：暗号コード生成部
２３０′：暗号コード生成部
２３０ａ：暗号コード生成部
２３０ｂ：暗号コード生成部
２３０ｃ：暗号コード生成部
２３０ｄ：暗号コード生成部
２３０ｅ：暗号コード生成部
２３０ｆ：暗号コード生成部
２３０ｇ：暗号コード生成部
２４０：並替暗号コード生成部
２４０′：修正暗号コード生成部
２４０Ｇ：一方向性関数値生成部
２４０ａ：修正暗号コード生成部
２４０ｂ：修正暗号コード生成部
２４０ｃ：修正暗号コード生成部
２４０ｄ：修正暗号コード生成部
２４０ｅ：修正暗号コード生成部
２４０ｆ：修正暗号コード生成部
２４０ｇ：一方向性関数値生成部
２５０：並替暗号コード送信部
２５０′：修正暗号コード送信部
２５０Ｅ：並替暗号コード送信部
２５０Ｆ：並替暗号コード送信部
２５０Ｇ：関数値送信部
２５０ａ：修正暗号コード送信部
２５０ｂ：修正暗号コード送信部
２５０ｃ：修正暗号コード送信部
２５０ｄ：修正暗号コード送信部
２５０ｅ：修正暗号コード送信部
２５０ｆ：修正暗号コード送信部
２５０ｇ：関数値送信部
２６０：テーブル暗号化部
２６０Ｅ：テーブル暗号化部
２６０Ｆ：テーブル暗号化部
２６０Ｇ：テーブル暗号化部
２６０ａ：修正数暗号化部
２６０ｂ：修正数暗号化部
２６０ｃ：修正数暗号化部
２６０ｄ：修正数暗号化部
２６０ｅ：修正数暗号化部
２６０ｆ：修正数暗号化部
２６０ｇ：修正数暗号化部
２７０：並替テーブル生成部
２７０Ｇ：並替テーブル生成部
２７０ａ：修正数生成部
２７０ｂ：修正数生成部
２７０ｃ：修正数生成部
２７０ｄ：修正数生成部
２７０ｅ：修正数生成部
２７０ｆ：修正数生成部
２７０ｇ：修正数生成部
Ａ：暗号アルゴリズム
Ｈ：一方向性関数値
ｍ１〜ｍ５：コードの各構成要素
Ｑ：暗号コード／照合用暗号コード
Ｑ′：並替暗号コード
Ｑ''：修正暗号コード
Ｒ：ランダムコード
Ｒ′：並替コード
Ｒ''：修正コード
Ｔ：並び替えテーブル
Ｔ＊：暗号化テーブル
Ｔ１：第１の並び替えテーブル
Ｔ１＊：第１の暗号化テーブル
Ｔ２：第２の並び替えテーブル
Ｔ２＊：第２の暗号化テーブル
Ｕ：修正数
Ｕ＊：暗号化修正数
Ｕ１：第１の修正数
Ｕ１＊：第１の暗号化修正数
Ｕ２：第２の修正数
Ｕ２＊：第２の暗号化修正数
Ｘ：並び替え方法
Ｘ１：第１の並び替え方法
Ｘ２：第２の並び替え方法
Ｙ：修正演算
Ｙ１：第１の修正演算
Ｙ２：第２の修正演算
【図１】
2015159394.tif 000003
【図２】
2015159394.tif 000004
【図３】
2015159394.tif 000005
【図４】
2015159394.tif 000006
【図５】
2015159394.tif 000007
【図６】
2015159394.tif 000008
【図７】
2015159394.tif 000009
【図８】
2015159394.tif 000010
【図９】
2015159394.tif 000011
【図１０】
2015159394.tif 000012
【図１１】
2015159394.tif 000013
【図１２】
2015159394.tif 000014
【図１３】
2015159394.tif 000015
【図１４】
2015159394.tif 000016
【図１５】
2015159394.tif 000017
【図１６】
2015159394.tif 000018
【図１７】
2015159394.tif 000019
【図１８】
2015159394.tif 000020
【図１９】
2015159394.tif 000021
【図２０】
2015159394.tif 000022
【図２１】
2015159394.tif 000023
【図２２】
2015159394.tif 000024
【図２３】
2015159394.tif 000025
【図２４】
2015159394.tif 000026