(57)【特許請求の範囲】
【請求項１】
互いに共通する複数の暗号鍵を保持する、認証対象装置と、当該認証対象装置を認証する認証要求装置と、を含む認証システムであって、
前記認証要求装置は、
前記複数の暗号鍵の一つを用いて認証用コードを暗号化して、第１暗号化コードを生成する第１暗号化コード生成手段と、
前記認証用コードの入れ替えを指示する場合に、前記認証用コードのうち、互いに異なる部分を少なくとも一対、入替対象部分として選択する入替対象部分選択手段と、
前記第１暗号化コード、前記認証用コードの入れ替えを行うか否かを指示する指示情報、及び当該指示情報により前記認証用コードの入れ替えを指示する場合における、前記入替対象部分を特定する入替対象部分特定情報を、前記認証対象装置に対して送信する送信手段と、
前記認証用コードの入れ替えを指示する場合に、前記認証用コードの前記入替対象部分を入れ替えて、比較対象コードを生成する入替手段と、
を含み、
前記認証対象装置は、
前記第１暗号化コードの生成に用いられた暗号鍵を用いて前記送信された第１暗号化コードを復号化して、前記認証用コードを復元する認証用コード復号化手段と、
前記送信された指示情報により前記認証用コードの入れ替えが指示される場合に、前記送信された入替対象部分特定情報に基づいて、前記復元された認証用コードの前記入替対象部分を入れ替えて、入替認証用コードを生成する入替手段と、
前記複数の暗号鍵のうち、前記第１暗号化コードの生成に用いられた暗号鍵と異なる暗号鍵を用いて前記復元された認証用コード又は前記入替認証用コードを暗号化して、第２暗号化コードを生成する第２暗号化コード生成手段と、
前記第２暗号化コードを前記認証要求装置に対して送信する送信手段と、
を含み、
前記認証要求装置は、前記第２暗号化コードの生成に用いられた暗号鍵を用いて前記送信された第２暗号化コードを復号化して、当該復号されたコードを前記認証用コード又は前記比較対象コードと比較することにより、前記認証対象装置を認証する
ことを特徴とする認証システム。
【請求項２】
請求項１記載の認証システムであって、
前記入替対象部分選択手段は、前記暗号鍵の一つの入れ替えを指示する場合に、当該暗号鍵のうち、互いに異なる部分を少なくとも一対、当該暗号鍵の入替対象部分として選択し、
前記第１暗号化コード生成手段は、前記暗号鍵の入れ替えを指示する場合に、前記選択された入替対象部分を入れ替えた入替暗号鍵を用いて認証用コードを暗号化して、第１暗号化コードを生成し、
前記送信手段は、前記暗号鍵の入れ替えを行うか否かを指示する指示情報、及び当該指示情報により前記暗号鍵の入れ替えを指示する場合における、前記暗号鍵の入替対象部分を特定する入替対象部分特定情報を、前記認証対象装置に対してさらに送信し、
前記入替手段は、前記送信された指示情報により前記暗号鍵の入れ替えが指示される場合に、前記送信された前記暗号鍵の入替対象部分特定情報に基づいて、前記暗号鍵を入れ替えて入替暗号鍵を生成し、
前記認証用コード復号化手段は、前記送信された指示情報により前記暗号鍵の入れ替えが指示される場合に、前記生成した入替暗号鍵を用いて前記送信された第１暗号化コードを復号化して、前記認証用コードを復元する、
ことを特徴とする認証システム。
【請求項３】
認証要求装置と共通する複数の暗号鍵を保持し、当該認証要求装置による認証の対象となる認証対象装置であって、
前記複数の暗号鍵の一つを用いて認証用コードを暗号化して得られる第１暗号化コードを、前記認証要求装置より受信する第１暗号化コード受信手段と、
前記認証用コードの入れ替えを行うか否かを指示する指示情報、及び当該指示情報により前記認証用コードの入れ替えが指示される場合における、前記認証用コードのうち、互いに異なる部分を少なくとも一対、入替対象部分として特定する入替対象部分特定情報を、前記認証要求装置より受信する入替対象部分受信手段と、
前記第１暗号化コードの生成に用いられた暗号鍵を用いて前記受信した第１暗号化コードを復号化して、前記認証用コードを復元する認証用コード復号化手段と、
前記受信した指示情報により前記認証用コードの入れ替えが指示される場合に、前記受信した入替対象部分特定情報に基づいて、前記復元された認証用コードの前記入替対象部分を入れ替えて、入替認証用コードを生成する入替手段と、
前記複数の暗号鍵のうち、前記第１暗号化コードの生成に用いられた暗号鍵と異なる暗号鍵を用いて前記復元された認証用コード又は前記入替認証用コードを暗号化して、第２暗号化コードを生成する第２暗号化コード生成手段と、
前記第２暗号化コードを前記認証要求装置に対して送信する第２暗号化コード送信手段と、
を含み、
前記第２暗号化コードは、前記認証要求装置による認証処理に供される
ことを特徴とする認証対象装置。
【請求項４】
認証要求装置と共通する少なくとも一つの暗号鍵を保持し、当該認証要求装置による認証の対象となる認証対象装置であって、
前記暗号鍵の一つの入れ替えを行うか否かを指示する指示情報、及び当該指示情報により当該暗号鍵の入れ替えを指示する場合における、当該暗号鍵のうち、互いに異なる部分を少なくとも一対、入替対象部分として特定する入替対象部分特定情報を、前記認証要求装置より受信する入替対象部分受信手段と、
前記暗号鍵又は前記暗号鍵の前記入替対象部分を入れ替えた入替暗号鍵を用いて認証用コードを暗号化して得られる第１暗号化コードを、前記認証要求装置より受信する第１暗号化コード受信手段と、
前記受信した指示情報により前記暗号鍵の入れ替えが指示される場合に、前記受信した入替対象部分特定情報に基づいて、前記暗号鍵の前記入替対象部分を入れ替えて、入替暗号鍵を生成する入替手段と、
前記暗号鍵又は前記入替暗号鍵を用いて前記受信した第１暗号化コードを復号化して、前記認証用コードを復元する認証用コード復号化手段と、
前記少なくとも一つの暗号鍵のいずれかであって、前記第１暗号化コードの生成に用いられた暗号鍵と同じ、又は異なる暗号鍵を用いて、前記復元した認証用コードを暗号化して、第２暗号化コードを生成する第２暗号化コード生成手段と、
前記第２暗号化コードを前記認証要求装置に対して送信する第２暗号化コード送信手段と、
を含み、
前記第２暗号化コードは、前記認証要求装置による認証処理に供される
ことを特徴とする認証対象装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証対象装置と当該認証対象装置を認証する認証要求装置とが、互いに共通する暗号鍵を用いて認証を行う認証システム及びこれに含まれる認証対象装置に関する。
【背景技術】
【０００２】
近年、家庭用ゲーム機を含む様々な家電製品が高機能化しており、家電製品の本体に、周辺機器を接続して機能を拡張できるようになっているものも増えている。こうした製品においては、利用者が誤って他社製品を接続してしまうなどのトラブルを避けるため、周辺機器が正規品（純正品）であるか否かを判断したい場合があると考えられる。
【０００３】
そこで一般に、コンピュータシステムにおいて用いられている認証処理を、家電製品の本体と周辺機器との間で行い、正規品であるか否かの確認に応用することも考えられる。例えば、一般的なチャレンジ−レスポンス型の認証処理の例が、特許文献１に開示されている。このような認証処理を実現するアルゴリズムの例としては、家電製品本体などの認証を要求する認証要求装置と、周辺機器などの認証の対象となる認証対象装置のそれぞれが、互いに共通する暗号鍵（共通鍵）を保持する共通鍵暗号アルゴリズムがある。
【特許文献１】特開平１１‐１６３８５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来例の技術においては、認証要求装置と認証対象装置との間で、認証が行われるたびに特定の暗号鍵を用いて暗号化されたデータが送受信される。しかしながら、同じ暗号鍵を用いて暗号化されたデータが何度も傍受されると、暗号化されたデータが解読されて暗号鍵が第三者に漏洩する危険性が高くなる。
【０００５】
このような危険性を低減するために、暗号鍵を多数用意し、認証を行うごとに異なる暗号鍵を用いる方法がある。しかしながら、例えば周辺機器などはハードウェア上の制約から十分なメモリ容量を確保できない場合があり、このような場合多数の暗号鍵を保持することは難しい。
【０００６】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、共通鍵暗号アルゴリズムを用いて認証を行う場合に、少ない数の暗号鍵で、セキュリティを向上できる認証対象装置を提供することにある。また、本発明の別の目的は、送受信ごとに暗号化される対象となるデータを変化させることにより、認証処理の詳細を解析されにくくしてセキュリティを向上できる認証システム及びこれに含まれる認証対象装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明に係る認証システムは、互いに共通する少なくとも一つの暗号鍵を保持する、認証対象装置と、当該認証対象装置を認証する認証要求装置と、を含む認証システムであって、前記認証要求装置は、前記暗号鍵を用いて認証用コードを暗号化して、第１暗号化コードを生成する第１暗号化コード生成手段と、前記認証用コードのうち、互いに異なる部分を少なくとも一対、入替対象部分として選択する入替対象部分選択手段と、前記第１暗号化コード及び前記入替対象部分を特定する入替対象部分特定情報を、前記認証対象装置に対して送信する送信手段と、前記認証用コードの前記入替対象部分を入れ替えて、比較対象コードを生成する入替手段と、を含み、前記認証対象装置は、前記暗号鍵を用いて前記送信された第１暗号化コードを復号化して、前記認証用コードを復元する認証用コード復号化手段と、前記送信された入替対象部分特定情報に基づいて、前記復元された認証用コードの前記入替対象部分を入れ替えて、入替認証用コードを生成する入替手段と、前記暗号鍵を用いて前記入替認証用コードを暗号化して、第２暗号化コードを生成する第２暗号化コード生成手段と、前記第２暗号化コードを前記認証要求装置に対して送信する送信手段と、を含み、前記認証要求装置は、前記暗号鍵を用いて前記送信された第２暗号化コードを復号化して前記入替認証用コードを復元し、前記比較対象コードと比較することにより、前記認証対象装置を認証することを特徴とする。
【０００８】
上記構成によれば、認証処理の途中で認証用コードの入れ替えを行うことで、送受信ごとに暗号化される対象となるデータを変化させることができる。これにより、少ない数の暗号鍵しか保持していない場合であっても送受信される暗号化コードを変化させて認証処理の詳細を解析されにくくすることができ、セキュリティを向上できる。
【０００９】
また、本発明に係る認証対象装置は、認証要求装置と共通する少なくとも一つの暗号鍵を保持し、当該認証要求装置による認証の対象となる認証対象装置であって、前記暗号鍵を用いて認証用コードを暗号化して得られる第１暗号化コードを、前記認証要求装置より受信する第１暗号化コード受信手段と、前記認証用コードのうち、互いに異なる部分を少なくとも一対、入替対象部分として特定する入替対象部分特定情報を、前記認証要求装置より受信する入替対象部分受信手段と、前記暗号鍵を用いて前記受信した第１暗号化コードを復号化して、前記認証用コードを復元する認証用コード復号化手段と、前記受信した入替対象部分特定情報に基づいて、前記復元された認証用コードの前記入替対象部分を入れ替えて、入替認証用コードを生成する入替手段と、前記暗号鍵を用いて前記入替認証用コードを暗号化して、第２暗号化コードを生成する第２暗号化コード生成手段と、前記第２暗号化コードを前記認証要求装置に対して送信する第２暗号化コード送信手段と、を含み、前記第２暗号化コードは、前記認証要求装置による認証処理に供されることを特徴とする。
【００１０】
また、本発明に係る別の認証対象装置は、認証要求装置と共通する少なくとも一つの暗号鍵を保持し、当該認証要求装置による認証の対象となる認証対象装置であって、前記暗号鍵のうち、互いに異なる部分を少なくとも一対、入替対象部分として特定する入替対象部分特定情報を、前記認証要求装置より受信する入替対象部分受信手段と、前記暗号鍵の前記入替対象部分を入れ替えた入替暗号鍵を用いて認証用コードを暗号化して得られる第１暗号化コードを、前記認証要求装置より受信する第１暗号化コード受信手段と、前記受信した入替対象部分特定情報に基づいて、前記暗号鍵の前記入替対象部分を入れ替えて、入替暗号鍵を生成する入替手段と、前記入替暗号鍵を用いて前記受信した第１暗号化コードを復号化して、前記認証用コードを復元する認証用コード復号化手段と、前記復元した認証用コードを暗号化して、第２暗号化コードを生成する第２暗号化コード生成手段と、前記第２暗号化コードを前記認証要求装置に対して送信する第２暗号化コード送信手段と、を含み、前記第２暗号化コードは、前記認証要求装置による認証処理に供されることを特徴とする。
【００１１】
上記構成によれば、認証処理において暗号鍵の入れ替えを行うことで、暗号化及び復号化に用いる暗号鍵を変化させることができる。これにより、少ない数の暗号鍵しか保持していない場合であっても送受信される暗号化コードを変化させて認証処理の詳細を解析されにくくすることができ、セキュリティを向上できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について、図面を参照しながら説明する。本発明の一実施形態に係る認証システム１は、図１に示すように、認証対象装置１０と、認証要求装置２０と、を含んで構成されている。
【００１３】
認証対象装置１０は、認証要求装置２０による認証の対象となる周辺機器などの装置であって、制御部１１、記憶部１２及び通信部１３を含んで構成されている。
【００１４】
制御部１１は、ＣＰＵ等であり、記憶部１２に格納されているプログラムに従って動作する。この制御部１１は、認証対象装置としての機能を実現する処理を行う。具体的に制御部１１は、認証要求装置２０から送信されるデータを受け入れて、当該受け入れたデータに含まれる制御命令に基づいて暗号化や復号化などの各種処理を実行する。本実施の形態において制御部１１が実行する処理については、後に詳しく述べる。
【００１５】
記憶部１２は、フラッシュＲＯＭ（Read Only Memory）や、ＲＡＭ（Random Access Memory）などの記憶素子を含んで構成される。この記憶部１２は、制御部１１によって実行されるプログラムや認証処理に用いられる暗号鍵のデータが格納されている。また、この記憶部１２は、制御部１１の処理の過程で必要となる種々のデータを格納するワークメモリとしても動作する。
【００１６】
通信部１３は、例えばシリアル通信ポートを含んでなり、認証要求装置２０と接続される。また、通信部１３は、データを一時的に記憶する入力レジスタと出力レジスタの二つのレジスタを含んでいる。この通信部１３は、制御部１１が出力レジスタに対して出力した情報を認証要求装置２０に対して送信する。また、通信部１３は、認証要求装置２０から受信した情報を入力レジスタに書き込む。入力レジスタに書き込まれた情報は、制御部１１により読み出される。
【００１７】
認証要求装置２０は、認証対象装置１０の認証を行う電気機器本体などの装置であって、制御部２１、記憶部２２及び通信部２３を含んで構成されている。
【００１８】
制御部２１は、ＣＰＵ等であり、記憶部２２に格納されているプログラムに従って動作する。この制御部２１は、認証要求装置としての機能を実現する処理を行う。具体的に制御部１１は、認証用コードを生成し、暗号化して暗号化コードとして認証対象装置１０に対して出力する。また、認証対象装置１０から送信されるデータを受け入れて、暗号化コードを取得し、この暗号化コードを復号化して得られたデータを検証することで、認証対象装置１０を認証する認証処理を実行する。本実施の形態において制御部２１が実行する認証処理については、後に詳しく述べる。
【００１９】
記憶部２２は、フラッシュＲＯＭ（Read Only Memory）や、ＲＡＭ（Random Access Memory）などの記憶素子と、ハードディスクドライブ等のディスクデバイスとの少なくとも一方を含んで構成される。この記憶部２２は、制御部２１によって実行されるプログラムや認証処理に用いられる暗号鍵のデータが格納されている。また、この記憶部２２は、制御部２１の処理の過程で必要となる種々のデータを格納するワークメモリとしても動作する。
【００２０】
通信部２３は、例えばシリアル通信ポートであって、認証対象装置１０の通信部１３に接続される。通信部２３は、制御部２１から入力される指示に従って認証対象装置１０に対して情報を送信する。また、この通信部２３は、認証対象装置１０から受信した情報を制御部２１に対して出力する。
【００２１】
ここで認証対象装置１０の制御部１１が実現する機能について説明する。なお、本実施の形態では、認証対象装置１０の記憶部１２は、予め複数の暗号鍵k0，k1，…を格納している。また、暗号鍵には、順に暗号鍵を特定するための鍵番号として０，１，…が対応づけられているものとする。
【００２２】
制御部１１は、機能的には、図２に例示するように、制御命令処理部３１と、入替処理部３２と、暗号処理部３３とを含んで構成される。
【００２３】
制御命令処理部３１は、通信部１３が認証要求装置２０から受信した認証処理に関する各種の制御情報を含んだ制御命令を、入力レジスタから読み出すことで取得する。
【００２４】
制御命令に含まれる制御情報としては、例えば以下のようなものがある。
（１）暗号鍵及び認証用コードのそれぞれに対して、入れ替えを行うか否かを指示する入替処理指示情報
（２）暗号化、復号化のいずれかの処理を行うか、又はいずれの処理も行わないかを指示する暗号処理指示情報
（３）処理の対象となる対象データを読み出す箇所を特定する入力箇所特定情報
（４）対象データに対して所定の処理が実行された結果を書き込む箇所を特定する出力箇所特定情報
（５）暗号化又は復号化の処理に用いる暗号鍵を特定する暗号鍵特定情報
（６）暗号鍵及び認証用コードのうち、入替処理指示情報により入替対象として指定されたデータのそれぞれに対して、入替対象部分を特定する入替対象部分特定情報
【００２５】
制御命令を取得した制御命令処理部３１は、制御命令に含まれる制御情報に基づいて、各種の処理を実行する。具体的には、まず処理対象となる対象データを読み出す箇所を入力箇所特定情報に基づいて特定する。読み出し箇所としては、通信部１３の入力レジスタ又は記憶部１２内の所定のワークメモリ領域がある。読み出し箇所として入力レジスタが指定された場合には、制御命令処理部３１は認証要求装置２０から通信部１３を介して送信された対象データを、入力レジスタから読み出すことで取得する。
【００２６】
続いて、制御命令処理部３１は、入替処理指示情報及び暗号処理指示情報に基づいて、所定の順序で、入替処理部３２に対して対象データ及び／又は暗号鍵の入替対象部分を入れ替える入替処理を実行させたり、暗号処理部３３に対して対象データの暗号化又は復号化を実行させたりする。
【００２７】
具体例として、暗号処理指示情報として暗号化を行う指示情報が含まれている場合、制御部１１は、入替処理指示情報の内容に応じて、対象データの入替処理と暗号鍵特定情報で特定される暗号鍵の入替処理を行ったうえで、対象データの暗号化を行う。また、暗号処理指示情報として復号化を行う指示情報が含まれている場合、制御部１１は、入替処理指示情報の内容に応じて暗号鍵特定情報で特定される暗号鍵の入替処理を行ったうえで、対象データの復号化を行い、さらに入替処理指示情報の内容に応じて復号化された対象データの入替処理を行う。
【００２８】
さらに、制御命令処理部３１は、対象データに対して入替処理や暗号化、復号化などの処理がなされた結果得られるデータを、出力箇所特定情報に基づいて特定した書き込み箇所に出力データとして書き込む。書き込み箇所としては、通信部１３の出力レジスタ又は記憶部１２内の所定のワークメモリ領域がある。なお、出力レジスタに書き込まれたデータは通信部１３により認証要求装置２０に対して送信される。
【００２９】
入替処理部３２は、制御命令処理部３１が取得した制御命令に含まれる制御情報に基づいて、対象データ及び／又は暗号鍵の入替対象部分を入れ替える処理を行う。入替対象となる入替対象データの種類（対象データ又は暗号鍵）は、制御命令に含まれる入替処理指示情報により指定される。また、暗号鍵が入替対象として指定された場合には、記憶部１２に保持された暗号鍵のうち、制御命令に含まれる暗号鍵特定情報によって特定される暗号鍵が、入替対象データとなる。
【００３０】
また、入替処理部３２は、入替対象データのうち、入れ替える部分を、制御命令に含まれる入替対象部分特定情報に基づいて特定する。入替対象部分特定情報は、具体的には、例えば入替対象データのうち２箇所の指定部分を指定する二つの数値を含む情報である。この場合、入替処理部３２は、入替対象部分特定情報により特定される２箇所の指定部分を互いに入れ替える。例えば入替対象データが１２８ビットであり、これを８ビット単位で分割した１６個のブロックが入替処理の単位であるとする。この場合、入替対象部分特定情報には０から１５までで互いに異なる二つの数値が含まれ、この数値によって特定される二つのブロックを入替対象部分として特定する。一例として、入替対象部分特定情報が３と５という二つの数値からなる場合、入替処理部３２は、入替対象データに含まれる１６個のブロックのうち、０から数えて３番目のブロックと、５番目のブロックとを入れ替える。
【００３１】
また、入替対象部分特定情報は、入替対象データのうち１箇所の指定部分を指定する一つの数値を含む情報であってもよい。この場合、入替処理部３２は、入替対象部分特定情報により指定される指定部分と、当該指定部分に対応して決定する対応部分とを入替対象部分として特定し、これら二つの部分を入れ替える。具体例として、前述した１６個のブロックからなる１２８ビットの入替対象データの例の場合、入替対象部分特定情報には０から１５までのいずれかの一つの数値が含まれる。入替処理部３２は、この数値に応じて対応する０から１５までのいずれかの数値を決定し、決定した数値によって指定される部分を対応部分とする。一例として、入替対象部分特定情報に含まれる値が６（0110b）である場合、入替処理部３２は、当該数値に対して４ビットのビット反転処理を行うことで、対応部分を指定する９（1001b）という数値を得る。そして、０から数えて６番目のブロック（指定部分）と、９番目のブロック（対応部分）とを入替対象部分として特定し、入れ替える。このように一つの入替対象部分を指定する入替対象部分特定情報に基づいて２箇所の入替対象部分を特定することで、入替対象部分特定情報に含めるデータを少なくすることができ、認証対象装置１０と認証要求装置２０との間で送受信するデータ量を減らすことができる。
【００３２】
入替処理部３２は、所定のワークメモリ領域に記憶された対象データに対して入れ替えを行った場合、当該ワークメモリ領域に入れ替え後の対象データを上書きしてもよい。また、フラッシュＲＯＭなどの上書きできない記憶領域に記憶された暗号鍵に対して入れ替えを行った場合には、入れ替え後の暗号鍵を所定のワークメモリ領域に書き込むこととする。
【００３３】
暗号処理部３３は、制御命令処理部３１が取得した制御命令に含まれる制御情報に基づいて、対象データに対して暗号化又は復号化の処理を行う。暗号化及び復号化のアルゴリズムとしては、例えばＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）など、任意の共通鍵暗号アルゴリズムを用いることができる。
【００３４】
なお、対象データに対して入替処理部３２が入替処理を行っていれば、暗号処理部３３は入れ替えがなされた対象データに対して暗号化を行う。また、暗号処理部３３は、各処理に使用する暗号鍵として、記憶部１２に格納されている暗号鍵のうち、制御命令に含まれる暗号鍵特定情報によって特定される暗号鍵を用いて暗号化又は復号化を行う。この場合に、当該特定される暗号鍵に対して入替処理部３２が入替処理を行っていれば、暗号処理部３３は入れ替えがなされた暗号鍵を用いて暗号化又は復号化を行う。
【００３５】
次に、認証要求装置２０の制御部２１が実現する機能について説明する。なお、本実施の形態では、認証要求装置２０の記憶部２２は、認証対象装置１０と同じ複数の暗号鍵k0，k1，…を格納している。
【００３６】
この制御部２１は、機能的には、図３に例示するように、認証処理部４１と、入替処理部４２と、暗号処理部４３とを含んで構成される。
【００３７】
認証処理部４１は、認証要求装置２０の電源が投入されたタイミングや、認証要求装置２０に対して認証対象装置１０が接続されたタイミング、前回の認証処理から所定の時間が経過したタイミングなど、所定のタイミングで認証処理を実行する。
【００３８】
具体例として、認証処理部４１はまず認証に用いる認証用コードを生成する。また、認証処理において暗号鍵や認証用コードの入れ替えを行う場合、入替対象部分特定情報をランダム値として生成する。そして、入替処理部４２に対して認証用コードなどの処理の対象となる対象データや暗号鍵の入れ替えを実行させたり、暗号処理部４２に対して対象データの暗号化や復号化を実行させたりする。
【００３９】
また、認証処理部４１は、暗号化された認証用コードとともに、認証対象装置１０に対して制御命令を出力することにより、認証対象装置１０に認証用コードを送信する。また、認証対象装置１０に対して制御命令を出力することにより、認証対象装置１０に送信した認証用コード又はこれに対して入替処理がなされた結果得られる入替認証用コードなどのデータを暗号化して送信させる。受信したデータを復号化して得られたデータを認証要求装置２０が保持するデータと比較することによって、認証対象装置１０の認証を行う。認証処理部４１が行う処理の詳細については、後に詳しく説明する。
【００４０】
入替処理部４２は、認証処理部４１の要求に基づいて、認証対象装置１０の入替処理部３２と同様に対象データや暗号鍵の入替対象部分を入れ替える入替処理を行う。また、暗号処理部４３は、認証処理部４１の要求に基づいて、認証対象装置１０の暗号処理部３３と同様の暗号化アルゴリズムを用いて、対象データの暗号化又は復号化の処理を実行する。
【００４１】
次に、以上説明した各部が連携して認証対象装置１０の認証を行う認証処理のいくつかの例について、説明する。
【００４２】
まず、認証用コードの入れ替えを伴う認証処理の例について、図４のフロー図に基づいて説明する。
【００４３】
認証要求装置２０の認証処理部４１は、最初に認証用コードＲを生成する（Ｓ１）。ここでは具体例として、認証用コードＲは１２８ビットのランダム値であるとする。また、以下では一例として認証用コードＲの値が0x00112233445566778899AABBCCDDEEFFの場合について説明する。
【００４４】
次に、認証処理部４１は、認証用コードＲの入れ替えに用いる入替対象部分特定情報を生成する（Ｓ２）。ここでは具体例として、入替対象部分特定情報は、１２８ビットの認証用コードを８ビットの大きさのブロック１６個に分割した場合に、入替対象部分として一つのブロックを指定する一つの値であり、ランダムに決定された０から１５までのいずれかの数値であることとする。また、以下では一例として入替対象部分特定情報が0x06の場合について説明する。
【００４５】
続いて、認証処理部４１は、認証対象装置１０に対する制御命令を生成する（Ｓ３）。ここで、認証処理部４１が生成する制御命令は、以下のような制御情報を含んでいるものとする。
（１）入替処理指示情報として、認証用コードのみの入れ替えの実行を指示する情報
（２）暗号処理指示情報として、復号化の処理の実行を指示する情報
（３）入力箇所特定情報として、入力レジスタを表す情報
（４）出力箇所特定情報として、所定のワークメモリ領域Ｍを表す情報
（５）暗号鍵特定情報として、暗号鍵k0の鍵番号「０」
（６）認証用コードに対する入替対象部分特定情報として、「0x06」
【００４６】
次に、認証処理部４１の要求に基づいて、暗号処理部４３が、暗号鍵k0を用いて認証用コードＲを暗号化して、暗号化コードを生成する（Ｓ４）。ここで対象となるデータｄを暗号鍵ｋで暗号化することを、ENC(d,k)と表記することとすると、生成される暗号化コードは、ENC(R,k0)となる。
【００４７】
続いて、認証処理部４１は、Ｓ３の処理で生成した制御命令と、Ｓ４の処理で暗号処理部４３が生成した暗号化コードENC(R,k0)とを、通信部２３を介して認証対象装置１０に対して出力する（Ｓ５）。
【００４８】
Ｓ５の処理による送信後、入替処理部４２が、認証処理部４１の要求に基づいて、認証用コードＲの入れ替えを行う（Ｓ６）。ここで、入替対象部分特定情報は「0x06」であり、これにより指定される指定部分に対応するもう一つの入替対象部分（対応部分）は、例えば４ビットのビット反転処理により0x09で指定される部分に決定される。ここで、対象となるデータｄに対して入替対象部分特定情報ｓで特定される入替対象部分を入れ替えたデータをSHF(d,s)と表記することとすると、入れ替え後の認証用コードは、SHF(R,0x06)である。ここでは、SHF(R,0x06)の値は0x00112233445599778866AABBCCDDEEFFとなる。
【００４９】
一方、認証対象装置１０の制御命令処理部３１は、Ｓ５の処理により認証要求装置２０より送信された制御命令及び暗号化コードENC(R,k0)を、通信部１３の入力レジスタから読み出す。
【００５０】
認証要求装置２０より送信された制御命令に含まれる暗号処理指示情報が復号化を指示する情報である場合、認証対象装置１０は、認証用コードの入替処理の前に復号化処理を実行する。そこで、まず暗号処理部３３が、制御命令処理部３１の要求に基づいて、暗号化コードの復号化を行い、認証用コードを復元する（Ｓ７）。このとき、復号の対象となる対象データは、入力箇所特定情報により特定される入力レジスタから読み出された、暗号化コードENC(R,k0)である。また、暗号処理部３３は、暗号鍵特定情報により特定される暗号鍵k0を用いて復号化を行う。これにより、暗号化する前の認証用コードＲが得られる。
【００５１】
続いて、制御命令処理部３１の要求に基づいて、入替処理部３２が、Ｓ７の処理で復号化された認証用コードＲの入れ替えを行い、入替認証用コードを生成する（Ｓ８）。ここでは、入替対象部分特定情報が「0x06」であることから、認証要求装置２０の入替処理部４２と同様に、１６個のブロックのうち０番目から数えて６番目のブロックと９番目のブロックを入れ替える。これにより、入替認証用コードとして、Ｓ６の処理により得られたデータと同じSHF(R,0x06)が得られる。
【００５２】
制御命令処理部３１は、これら一連の処理により得られた入替認証用コードSHF(R,0x06)を、出力箇所特定情報により特定されるワークメモリ領域Ｍに書き込む（Ｓ９）。これにより、認証対象装置１０は、Ｓ５の処理で送信された制御命令に対する処理を終了し、正常終了した旨の応答を認証要求装置２０に対して出力する（Ｓ１０）。
【００５３】
Ｓ１０の処理による正常終了した旨の応答を受け入れた認証要求装置２０の認証処理部４１は、続いて以下の処理を実行する。
【００５４】
まず、認証処理部４１は、１２８ビットのランダム値ｑを生成する（Ｓ１１）。なお、生成されたランダム値ｑは、ダミーデータとして使用されるものであって、認証処理に必須のものではない。
【００５５】
次に、認証処理部４１は、Ｓ２の処理と同様にして、新たな入替対象部分特定情報を生成する（Ｓ１２）。以下では一例として、入替対象部分特定情報が0x02の場合について説明する。
【００５６】
続いて、認証処理部４１は、認証対象装置１０に対する新たな制御命令を生成する（Ｓ１３）。ここでは具体例として、以下のような制御情報を含んだ制御命令を生成することとする。
（１）入替処理指示情報として、認証用コードのみの入れ替えの実行を指示する情報
（２）暗号処理指示情報として、暗号化の処理の実行を指示する情報
（３）入力箇所特定情報として、ワークメモリ領域Ｍを表す情報
（４）出力箇所特定情報として、出力レジスタを表す情報
（５）暗号鍵特定情報として、暗号鍵k1の鍵番号「１」
（６）認証用コードに対する入替対象部分特定情報として、「0x02」
【００５７】
ここで、認証処理部４１の要求に基づいて、暗号処理部４３がＳ１１で生成したランダム値ｑを暗号化してもよい。これにより、前述したＳ１からＳ６までの処理と、Ｓ１１から後述するＳ１５までの処理の流れを一致させることができ、共通したプログラムルーチンにより認証処理部４１が実行する機能の一部を実現できる。しかしながら、ランダム値ｑはダミーデータとして用いられるものなので、暗号化処理は必須ではない。
【００５８】
続いて、認証処理部４１は、Ｓ１３の処理で生成した制御命令と、ダミーデータとしてのＳ１１の処理で生成したランダム値ｑ（又は暗号化されたランダム値ｑ）とを、通信部２３を介して認証対象装置１０に対して出力する（Ｓ１４）。なお、制御命令に含まれる入力箇所特定情報により特定される読み出し箇所が入力レジスタではなくワークメモリ領域であるため、Ｓ１４の処理で送信するランダム値ｑ（又は暗号化されたランダム値ｑ）は認証対象装置１０において使用されない。しかし、このような場合にも、ダミーデータを制御命令と併せて送信することで、通信内容から処理内容を推測されにくくすることができ、より通信の傍受に強い認証処理を行うことができる。
【００５９】
Ｓ１４の処理による送信後、入替処理部４２は、認証処理部４１の要求に基づいて、Ｓ６の処理で得られた入れ替え後の認証用コードSHF(R,0x06)に対して、さらに入れ替えを行う（Ｓ１５）。ここで、入替対象部分特定情報はＳ１３で生成された「0x02」であり、これにより指定される指定部分に対応するもう一つの入替対象部分（対応部分）は、４ビットのビット反転処理により0x0dで指定される部分に決定される。入替処理により生成される、比較対象として用いられる入れ替え後の認証用コード（比較対象コード）は、SHF(SHF(R,0x06),0x02)となる。ここでは、SHF(SHF(R,0x06),0x02)の値は0x0011DD33445599778866AABBCC22EEFFである。
【００６０】
一方、認証対象装置１０の制御命令処理部３１は、Ｓ１４の処理により認証要求装置２０より送信された制御命令を、通信部１３の入力レジスタから読み出す。
【００６１】
制御命令に含まれる暗号処理指示情報が暗号化を指示する情報である場合、認証対象装置１０は、暗号化処理の前に入替処理を実行する。そこで、まず入替処理部３２が、制御命令処理部３１の要求に基づいて、対象データに対して入れ替えを行い、入替認証用コードを更新する（Ｓ１６）。ここで、入れ替えの対象となる対象データは、入力箇所特定情報により特定される読み出し箇所であるワークメモリ領域Ｍに、Ｓ１０の処理により格納された入替認証用コードSHF(R,0x06)である。ここでは、入替対象部分特定情報が「0x02」であることから、Ｓ１５の処理結果と同じく更新後の入替認証用コードとしてSHF(SHF(R,0x06),0x02)が得られる。
【００６２】
続いて、制御命令処理部３１の要求に基づいて、暗号処理部３３が、Ｓ１６の処理の結果得られた入替認証用コードに対して暗号化を行い、新たな暗号化コードを生成する（Ｓ１７）。このとき、暗号処理部３３は、暗号鍵特定情報により特定される暗号鍵k1を用いて暗号化を行う。これにより、暗号化コードENC(SHF(SHF(R,0x06),0x02),k1)が得られる。
【００６３】
制御命令処理部３１は、これら一連の処理により得られた暗号化コードを、出力箇所特定情報により特定される書き込み箇所である出力レジスタに書き込む（Ｓ１８）。これにより、暗号化コードENC(SHF(SHF(R,0x06),0x02),k1)は認証要求装置２０に対して送信される。
【００６４】
認証対象装置１０より送信された暗号化コードを受信した認証要求装置２０は、以下のようにして最終的に認証対象装置１０を認証するか否かの判定処理を行う。まず、認証処理部４１の要求に基づいて、暗号処理部４３が、暗号鍵k1を用いてＳ１８の処理により送信された暗号化コードを復号化する（Ｓ１９）。これにより、入替認証用コードSHF(SHF(R,0x06),0x02)が得られる。
【００６５】
続いて、認証処理部４１は、Ｓ１９の処理により復号化された入替認証用コードを、Ｓ１５の処理の結果得られた比較対象コードと比較することで、認証対象装置１０の認証の成否を判定する（Ｓ２０）。
【００６６】
認証対象装置１０において、正常に入替処理及び認証要求装置２０と共通する暗号鍵による暗号化、復号化の処理が行われていれば、Ｓ２０の処理により比較される二つのコードはともにSHF(SHF(R,0x06),0x02)となり、一致する。この場合、認証成功と判定し、認証要求装置２０は認証対象装置１０の機能を有効にするなどの処理を行う。一方、認証対象装置１０より取得した入替認証用コードと認証要求装置２０内で生成した比較対象コードとが一致しない場合、認証失敗と判定し、認証要求装置２０は認証対象装置１０の機能の少なくとも一部を無効にするなど、判定結果に応じた処理を行う。
【００６７】
なお、以上説明した処理においては、Ｓ３及びＳ１３で生成する二つの制御命令の双方に認証用コードの入れ替えを指示する入替処理指示情報を含めることとし、入替処理部３２及び４２はともに認証用コードに対して合計２回の入替処理を行っている。しかし、入替処理についてはどちらか１回だけ行うこととしてもよい。この場合、二つの制御命令のうちいずれか一方の制御命令に含まれる入替処理指示情報として、入替処理を行わないことを指示する情報を用いることで、入替処理を伴わずに暗号化コードの送信又は受信の処理を行うことができる。
【００６８】
また、入替処理部３２及び４２は、入替処理を３回以上行うこととしてもよい。この場合、例えば認証処理部４１は、Ｓ１０とＳ１１の処理の間に、さらに以下のような処理を行う。すなわち、暗号化、復号化のいずれも行わないよう指示する暗号処理指示情報と、認証用コードに対する入替処理を指示する入替処理指示情報とを含む制御命令を認証対象装置１０に対して出力する。これにより、認証対象装置１０は、暗号化及び復号化の処理は実行せずに、単に自分自身が保持している入替認証用コードに対して、さらに入替処理を行う。一方で、認証要求装置２０は、自分自身が保持している入れ替え後の認証用コードに対しても、同様の入替処理を行う。この処理を所定回数繰り返すことにより、認証に用いる認証用コードを何度も入れ替えて、最初に送信した際に暗号化コードを生成する元になったデータと異なったデータに認証用コードを更新することができる。
【００６９】
また、以上説明した認証処理の後に、再び認証処理部４１が認証を行う場合、Ｓ１の処理において、認証用コードをランダム値として生成する処理に代えて、例えば前回のＳ２０の処理で比較対象となった、最初の認証用コードＲに対して複数回の入替処理がなされた入替認証用コードを用いることとしてもよい。これにより、ランダム値を生成する処理を行わずに、最初の認証処理における認証用コードとは異なる認証用コードを用いて認証処理を行うことができる。このような方法によれば、認証処理を繰り返すたびに認証用コードは入替処理により最初の値から乖離していくこととなり、例えば複数回の認証処理における一連の送受信データを傍受されたとしても、認証処理の詳細について解析されにくくなる。
【００７０】
次に、暗号鍵の入れ替えを伴う認証処理の例について、図５のフロー図に基づいて説明する。
【００７１】
認証要求装置２０の認証処理部４１は、まず認証用コードＲを生成する（Ｓ２１）。ここでは前述の例と同様に、認証用コードＲは１２８ビットのランダム値であるとする。
【００７２】
次に、認証処理部４１は、暗号鍵の入れ替えに用いる入替対象部分特定情報を生成する（Ｓ２２）。認証用コードの場合と同様に、入替対象部分特定情報は、１２８ビットの暗号鍵を８ビットの大きさのブロック１６個に分割した場合に、入替対象部分として一つのブロックを指定する一つの値であり、ランダムに決定された０から１５までのいずれかの数値であることとする。なお、以下では具体例として入替対象部分特定情報が0x00の場合について説明する。
【００７３】
続いて、認証処理部４１の要求に基づいて、入替処理部４２が、Ｓ３２の処理により生成された入替対象部分特定情報を用いて暗号鍵の入れ替えを行う（Ｓ２３）。なお、ここでは入替対象となる暗号鍵として暗号鍵k0を用いることとする。これにより、入替処理部４２は入替暗号鍵SHF(k0,0x00)を生成する。
【００７４】
次に、認証処理部４１は、認証対象装置１０に対する制御命令を生成する（Ｓ２４）。ここでは具体例として、以下のような制御情報を含んだ制御命令を生成する。
（１）入替処理指示情報として、暗号鍵のみの入れ替えの実行を指示する情報
（２）暗号処理指示情報として、復号化の処理の実行を指示する情報
（３）入力箇所特定情報として、入力レジスタを表す情報
（４）出力箇所特定情報として、ワークメモリ領域Ｍを表す情報
（５）暗号鍵特定情報として、暗号鍵k0の鍵番号「０」
（６）認証用コードに対する入替対象部分特定情報として、「0x00」
【００７５】
次に、認証処理部４１の要求に基づいて、暗号処理部４３が、Ｓ２３の処理で生成した入替暗号鍵SHF(k0,0x00)を用いて認証用コードＲを暗号化して、暗号化コードを生成する（Ｓ２５）。生成される暗号化コードは、ENC(R,SHF(k0,0x00))となる。
【００７６】
続いて、認証処理部４１は、Ｓ２４の処理で生成した制御命令と、Ｓ２５の処理で暗号処理部４３が生成した暗号化コードENC(R,SHF(k0,0x00))とを、通信部２３を介して認証対象装置１０に対して出力する（Ｓ２６）。
【００７７】
認証対象装置１０の制御命令処理部３１は、Ｓ２６の処理により認証要求装置２０より送信された制御命令及び暗号化コードENC(R,SHF(k0,0x00))を、通信部１３の入力レジスタから読み出す。
【００７８】
認証要求装置２０より送信された制御命令に含まれる入替処理指示情報が暗号鍵の入れ替えを指示する情報である場合、認証対象装置１０は、暗号化又は復号化の処理の前に暗号鍵の入替処理を実行する。そこで、まず入替処理部３２が、制御命令処理部３１の要求に基づいて、暗号鍵の入れ替えを行い、入替暗号鍵を生成する（Ｓ２７）。このとき、入替処理の対象となる入替対象データは、制御命令に含まれる暗号鍵特定情報で特定される暗号鍵k0である。これにより、入替処理部３２は、Ｓ２３で認証要求装置２０が生成したのと同じ入替暗号鍵SHF(k0,0x00)を生成する。
【００７９】
次に、暗号処理部３３が、制御命令処理部３１の要求に基づいて、暗号化コードの復号化を行い、認証用コードを復元する（Ｓ２８）。このとき、復号の対象となる対象データは、入力箇所特定情報により特定される入力レジスタから読み出された、暗号化コードENC(R,SHF(k0,0x00))である。また、暗号処理部３３は、Ｓ２７の処理で生成された入替暗号鍵SHF(k0,0x00)を用いて復号化を行う。これにより、暗号化する前の認証用コードＲが得られる。
【００８０】
制御命令処理部３１は、これら一連の処理により得られた認証用コードＲを、出力箇所特定情報により特定されるワークメモリ領域Ｍに書き込む（Ｓ２９）。これにより、認証対象装置１０は、Ｓ２６の処理で送信された制御命令に対する処理を終了し、正常終了した旨の応答を認証要求装置２０に対して出力する（Ｓ３０）。
【００８１】
Ｓ３０の処理による正常終了した旨の応答を受け入れた認証要求装置２０の認証処理部４１は、続いて以下の処理を実行する。
【００８２】
まず、認証処理部４１は、１２８ビットのランダム値ｑを生成する（Ｓ３１）。なお、生成されたランダム値ｑは、前述した認証用コードの入れ替えを伴う認証処理の例と同様に、ダミーデータである。
【００８３】
次に、認証処理部４１は、新たな入替対象部分特定情報を生成する（Ｓ３２）。以下では一例として、入替対象部分特定情報が0x05の場合について説明する。
【００８４】
続いて、認証処理部４１の要求に基づいて、入替処理部４２が、Ｓ３２の処理により生成された入替対象部分特定情報を用いて暗号鍵の入れ替えを行う（Ｓ３３）。なお、ここでは入替対象となる暗号鍵として暗号鍵k1を用いることとする。これにより、入替処理部４２は入替暗号鍵SHF(k1,0x05)を生成する。
【００８５】
さらに、認証処理部４１は、認証対象装置１０に対する新たな制御命令を生成する（Ｓ３４）。ここでは具体例として、以下のような制御情報を含んだ制御命令を生成することとする。
（１）入替処理指示情報として、暗号鍵のみの入れ替えの実行を指示する情報
（２）暗号処理指示情報として、暗号化の処理の実行を指示する情報
（３）入力箇所特定情報として、ワークメモリ領域Ｍを表す情報
（４）出力箇所特定情報として、出力レジスタを表す情報
（５）暗号鍵特定情報として、暗号鍵k1の鍵番号「１」
（６）認証用コードに対する入替対象部分特定情報として、「0x05」
【００８６】
ここで、前述した認証用コードの入れ替えを伴う認証処理の例と同様に、暗号処理部４３がＳ３１で生成したランダム値ｑを暗号化してもよい。続いて、認証処理部４１は、Ｓ３４の処理で生成した制御命令と、ダミーデータとしてのＳ３１の処理で生成したランダム値ｑ（又は暗号化されたランダム値ｑ）とを、通信部２３を介して認証対象装置１０に対して出力する（Ｓ３５）。
【００８７】
認証対象装置１０の制御命令処理部３１は、Ｓ３５の処理により認証要求装置２０より送信された制御命令を、通信部１３の入力レジスタから読み出す。
【００８８】
制御命令に含まれる入替処理指示情報が暗号鍵の入れ替えを指示する情報であるので、Ｓ２７の処理と同様に認証対象装置１０は暗号化処理の前に入替処理を実行する。そこで、まず入替処理部３２が、制御命令処理部３１の要求に基づいて、暗号鍵に対して入れ替えを行い、入替暗号鍵を生成する（Ｓ３６）。ここで、入れ替えの対象となる暗号鍵は、暗号鍵特定情報により特定される暗号鍵k1である。また、入替対象部分特定情報が0x05なので、入替処理部３２はＳ３３の処理結果と同じく入替暗号鍵としてSHF(k1,0x05)を生成する。
【００８９】
続いて、制御命令処理部３１の要求に基づいて、暗号処理部３３が、対象データに対して暗号化を行い、暗号化コードを生成する（Ｓ３７）。ここで、暗号化の対象となる対象データは、入力箇所特定情報により特定される読み出し箇所であるワークメモリ領域Ｍに、Ｓ２９の処理により格納された認証用コードＲである。このとき暗号処理部３３は、Ｓ３６の処理により生成された入替暗号鍵SHF(k1,0x05)を用いて暗号化を行う。これにより、暗号化コードENC(R,SHF(k1,0x05))が得られる。
【００９０】
制御命令処理部３１は、これら一連の処理により得られた暗号化コードを、出力箇所特定情報により特定される書き込み箇所である出力レジスタに書き込む（Ｓ３８）。これにより、暗号化コードENC(R,SHF(k1,0x05))は認証要求装置２０に対して送信される。
【００９１】
認証対象装置１０より送信された暗号化コードを受信した認証要求装置２０は、以下のようにして最終的に認証対象装置１０を認証するか否かの判定処理を行う。まず、認証処理部４１の要求に基づいて、暗号処理部４３が、Ｓ３８の処理により送信された暗号化コードを復号化する（Ｓ３９）。このとき、暗号処理部４３はＳ３３の処理により生成された入替暗号鍵SHF(k1,0x05)を用いて復号化を行う。これにより、認証用コードＲが得られる。
【００９２】
続いて、認証処理部４１は、Ｓ３９の処理により復号化された認証用コードを、Ｓ２１の処理で最初に生成した認証用コードＲと比較することで、認証対象装置１０の認証の成否を判定する（Ｓ４０）。認証対象装置１０において、正常に処理が行われていれば、Ｓ４０の処理により比較される二つのコードはともにＲであり、一致するので、認証成功と判定する。一方、認証対象装置１０より取得した認証用コードと認証要求装置２０内で生成した認証用コードとが一致しない場合、認証失敗と判定する。
【００９３】
なお、以上説明した処理においては、Ｓ２４及びＳ３４で生成する二つの制御命令の双方に暗号鍵の入れ替えを指示する入替処理指示情報を含めることとしたが、入替処理はどちらか１回だけ行うこととしてもよい。また、入替処理部３２及び４２は、それぞれ暗号鍵の入替処理を３回以上行うこととしてもよい。この場合、認証要求装置２０は、前述した認証用コードの入れ替えを伴う認証処理の場合と同様に、暗号化又は復号化のいずれも行わないよう指示する暗号処理指示情報と、暗号鍵の入替処理を指示する入替処理指示情報とを含む制御命令を認証対象装置１０に対して出力するとともに、自分自身が保持する暗号鍵に対しても同様の入替処理を行う。この処理を所定回数繰り返すことで、さらに最初に保持しているものと異なった暗号鍵を用いて暗号化及び復号化の処理を行うことができる。
【００９４】
また、以上説明した認証処理の後に、再び認証処理部４１が認証を行う場合、既に入替処理がなされた入替暗号鍵を用いて認証処理を行うこととしてもよい。この場合、認証要求装置２０は前回のＳ２３やＳ３３の処理などにより生成した入替暗号鍵を用いて、認証処理を行う。また、この場合次の認証処理においてさらに暗号鍵の入れ替えを伴う認証処理を行ってもよい。また、認証対象装置１０は、前回のＳ２７やＳ３６の処理などにより生成した入替暗号鍵を所定のワークメモリ領域などに保持しておき、これらの入替暗号鍵を用いて認証要求装置２０からの制御命令に基づく暗号化や復号化の処理などを行う。これにより、認証処理を繰り返すたびに暗号鍵は入替処理により最初の暗号鍵から乖離していくこととなり、同じ暗号鍵を繰り返し使用する場合に比較して暗号鍵の解析がされにくくなる。
【００９５】
さらに、認証要求装置２０は、以上説明した認証用コードの入替処理と、暗号鍵の入替処理とを組み合わせて用いてもよい。この場合、認証要求装置２０が生成する制御命令に認証用コードと暗号鍵の双方に対する入れ替えを指示する入替処理指示情報を含めることにより、入替処理がなされた暗号鍵を用いて暗号化や復号化を行うとともに、認証処理の途中で認証用コードを入れ替えることができる。これにより、通信データが傍受されたとしてもより認証処理の詳細なプロセスが解析されにくくなり、セキュリティを向上できる。
【００９６】
続いて、暗号鍵の入れ替えを伴う認証処理のもう一つの例について、図６のフロー図に基づいて説明する。
【００９７】
認証要求装置２０の認証処理部４１は、まず認証用コードＲを生成する（Ｓ４１）。ここでは前述の例と同様に、認証用コードＲは１２８ビットのランダム値であるとする。
【００９８】
次に、認証処理部４１は、暗号鍵の入れ替えに用いる入替対象部分特定情報を生成する（Ｓ４２）。前述の例と同様に、入替対象部分特定情報は、１２８ビットの暗号鍵を８ビットの大きさのブロック１６個に分割した場合に、入替対象部分として一つのブロックを指定する一つの値であり、ランダムに決定された０から１５までのいずれかの数値であることとする。なお、以下では具体例として入替対象部分特定情報が0x07の場合について説明する。
【００９９】
次に、認証処理部４１は、認証対象装置１０に対する制御命令を生成する（Ｓ４３）。ここでは具体例として、以下のような制御情報を含んだ制御命令を生成する。
（１）入替処理指示情報として、暗号鍵のみの入れ替えの実行を指示する情報
（２）暗号処理指示情報として、復号化の処理の実行を指示する情報
（３）入力箇所特定情報として、入力レジスタを表す情報
（４）出力箇所特定情報として、ワークメモリ領域Ｍを表す情報
（５）暗号鍵特定情報として、暗号鍵k0の鍵番号「０」
（６）認証用コードに対する入替対象部分特定情報として、「0x07」
【０１００】
次に、認証処理部４１の要求に基づいて、暗号処理部４３が、暗号鍵k0を用いて認証用コードＲを暗号化して、暗号化コードを生成する（Ｓ４４）。生成される暗号化コードは、ENC(R,k0)となる。
【０１０１】
続いて、認証処理部４１は、Ｓ４３の処理で生成した制御命令と、Ｓ４４の処理で暗号処理部４３が生成した暗号化コードENC(R,k0)とを、通信部２３を介して認証対象装置１０に対して出力する（Ｓ４５）。
【０１０２】
さらに、認証処理部４１の要求に基づいて、入替処理部４２が、Ｓ４２の処理により生成された入替対象部分特定情報を用いて暗号鍵の入れ替えを行う（Ｓ４６）。ここで入替対象となる暗号鍵は、Ｓ４３の処理により生成された制御命令に含まれる暗号鍵特定情報により特定される暗号鍵k0である。これにより、入替処理部４２は入替暗号鍵SHF(k0,0x07)を生成する。
【０１０３】
続いて、認証処理部４１の要求に基づいて、暗号処理部４３が、Ｓ４５の処理により認証対象装置１０に対して送信した暗号化コードENC(R,k0)の復号化処理を行う（Ｓ４７）。ただし、このとき暗号鍵として、Ｓ４６の処理で生成された入替暗号鍵SHF(k0,0x07)を用いる。本実施の形態において暗号処理部４３は、共通の暗号鍵を用いて暗号化及び復号化を行う共通鍵暗号アルゴリズムを用いている。そのため、暗号鍵k0で暗号化された暗号化コードを入替暗号鍵SHF(k0,0x07)で復号化しても、元の認証用コードＲは復元されず、別の128ビットの比較対象コードＲ′が得られる。
【０１０４】
一方、認証対象装置１０の制御命令処理部３１は、Ｓ４５の処理により認証要求装置２０より送信された制御命令及び暗号化コードENC(R,k0)を、通信部１３の入力レジスタから読み出す。
【０１０５】
ここで、前述した暗号鍵の入れ替えを伴う認証処理の第１の例の場合と同様に、まず入替処理部３２が、制御命令処理部３１の要求に基づいて、暗号鍵の入れ替えを行い、入替暗号鍵を生成する（Ｓ４８）。このとき、入替処理の対象となる入替対象データは、制御命令に含まれる暗号鍵特定情報で特定される暗号鍵k0である。これにより、入替処理部３２は、Ｓ４６で認証要求装置２０が生成したのと同じ入替暗号鍵SHF(k0,0x07)を生成する。
【０１０６】
次に、暗号処理部３３が、制御命令処理部３１の要求に基づいて、暗号化コードの復号化処理を行う（Ｓ４９）。このとき、復号の対象となる対象データは、入力箇所特定情報により特定される入力レジスタから読み出された、暗号化コードENC(R,k0)である。また、暗号処理部３３は、Ｓ４８の処理で生成された入替暗号鍵SHF(k0,0x07)を用いて復号化処理を行い、処理結果コードＲ″を得る。ここでも暗号化に用いられた暗号鍵k0と復号化に用いる暗号鍵は一致しないため、復号化処理の結果として得られる処理結果コードＲ″は暗号化の元になった認証用コードＲとは異なり、Ｓ４７の処理により認証要求装置２０で生成された比較対象コードＲ′と一致する。
【０１０７】
制御命令処理部３１は、これら一連の処理により得られた処理結果コードＲ″を、出力箇所特定情報により特定されるワークメモリ領域Ｍに書き込む（Ｓ５０）。これにより、認証対象装置１０は、Ｓ４６の処理で送信された制御命令に対する処理を終了し、正常終了した旨の応答を認証要求装置２０に対して出力する（Ｓ５１）。
【０１０８】
続いて、認証要求装置２０及び認証対象装置１０は、暗号化コード応答通信を行う（Ｓ５２）。具体的には、認証処理部４１が認証対象装置１０に対して出力した制御命令に基づいて、認証対象装置１０がＳ５０の処理によりワークメモリ領域Ｍに書き込まれた処理結果コードＲ″を暗号化して得られる暗号化コードを認証要求装置２０に対して出力する。そして、認証要求装置２０は、認証対象装置１０から送信された暗号化コードを復号化して、処理結果コードＲ″を復元する。特に暗号鍵の入れ替えを伴う暗号化コード応答通信は、前述した暗号鍵の入れ替えを伴う認証処理の第１の例の場合におけるＳ３１からＳ３９までの処理と同様の処理となる。
【０１０９】
そして、認証要求装置２０の認証処理部４１は、Ｓ５２の処理で復元した処理結果コードＲ″を、Ｓ４７の処理で生成した比較対象コードＲ′と比較することで、認証対象装置１０の認証を行う（Ｓ５３）。認証対象装置１０において、正常に処理が行われていれば、Ｓ５３の処理により比較される処理結果コードＲ″と比較対象コードＲ′は一致するので、認証成功と判定する。一方、認証対象装置１０より取得した処理結果コードＲ″と認証要求装置２０内で生成した比較対象コードＲ′とが一致しない場合、認証失敗と判定する。
【０１１０】
以上説明した認証処理の例によれば、認証要求装置２０から認証対象装置１０に対して送信される暗号化コードの暗号化前のデータである認証用コードＲと、認証対象装置１０から認証要求装置２０に対して送信される暗号化コードの暗号化前のデータである処理結果コードＲ″とは、一見して関連性のないと思われる全く異なるデータとなる。そのため、認証処理において送受信される通信が傍受されたとしても、認証処理の詳細を解析されにくくでき、セキュリティを向上できる。
【０１１１】
なお、以上説明した本実施の形態に係る認証システム１においては、認証要求装置２０と認証対象装置１０とは複数の共通する暗号鍵を保持することとしたが、それぞれの装置が保持する暗号鍵は一つであってもよい。この場合でも、暗号鍵の入れ替えを行うことにより、認証要求装置２０から認証対象装置１０に対して送信する暗号化コードに用いる暗号鍵と、認証対象装置１０から認証要求装置２０に対して送信する暗号化コードに用いる暗号鍵とを、異なるものにすることができる。
【０１１２】
また、認証システム１は、認証処理に使用する暗号鍵として、最初から保持している暗号鍵に代えて、認証要求装置２０がランダム値として生成したセッションキーを用いてもよい。この場合、認証要求装置２０は、最初に共通して保持している暗号鍵を用いてセッションキーを暗号化して認証対象装置１０に対して送信する。そして、認証対象装置１０は、最初から保持している暗号鍵を用いて送信されたデータを復号化してセッションキーを復元し、所定のワークメモリ領域に保持する。これにより、認証システム１は、以降共通して保持するセッションキーを用いて認証処理を行うことができる。この場合であっても、認証システム１は認証処理を繰り返し行う場合に、例えばセッションキーに対して入替処理を行って認証処理を行うことにより、何度もセッションキーを生成して配信する場合に比較して簡易な処理で、毎回異なる暗号鍵を用いた認証処理を行うことができる。
【０１１３】
また、以上の説明においては認証要求装置２０と認証対象装置１０とは一対一の関係にあるものとしたが、本発明の実施の形態はこれらのものに限られない。例えば、認証要求装置２０はさらに別の上位認証要求装置に接続されていてもよい。一例として、認証要求装置２０は、上位認証要求装置の指示に基づいて、認証対象装置１０の認証を行うとともに、上位認証要求装置は同様の認証処理により認証要求装置２０の認証を行う。この場合、認証要求装置２０は、上位認証要求装置に対しては本発明の実施形態における認証対象装置として機能する。さらに、例えば認証要求装置２０と認証対象装置１０との間で認証に用いられる暗号鍵が外部に漏洩した場合などにおいて、上位認証要求装置は以降の認証処理のために新たな暗号鍵を暗号化して配信することとしてもよい。これにより、暗号鍵の一部が外部に漏洩しても、新たに配信された暗号鍵を用いてこれまでと同様のセキュリティレベルで認証処理を行うことができる。
【０１１４】
また、上位認証要求装置は、認証要求装置２０の認証を行うとともに、認証要求装置２０を介して認証対象装置１０に対して認証を行うこととしてもよい。この場合、認証要求装置２０は、上位認証対象装置から認証対象装置１０に対して送信される制御命令及び暗号化コードや、認証対象装置１０から上位認証対象装置に対して送信される暗号化コードなどを中継する中継装置として機能する。
【０１１５】
以上説明した本実施の形態によれば、認証用コードや暗号鍵の入れ替えを行うことで、送受信ごとに暗号化される対象となるデータや暗号化に用いる暗号鍵を変化させることができる。これにより、少ない数の暗号鍵しか保持していない場合であっても送受信される暗号化コードを変化させて認証処理の詳細を解析されにくくすることができ、セキュリティを向上できる。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施の形態に係る認証システムの概略の構成を表すブロック図である。
【図２】認証対象装置１０の機能の一例を表す機能ブロック図である。
【図３】認証要求装置２０の機能の一例を表す機能ブロック図である。
【図４】本発明の実施の形態に係る認証システムによる認証処理の一例を表すフロー図である。
【図５】本発明の実施の形態に係る認証システムによる認証処理の別の一例を表すフロー図である。
【図６】本発明の実施の形態に係る認証システムによる認証処理の別の一例を表すフロー図である。
【符号の説明】
【０１１７】
１  認証システム、１０  認証対象装置、１１，２１  制御部、１２，２２  記憶部、１３，２３  通信部、２０  認証要求装置、３１  制御命令処理部、３２，４２  入替処理部、３３，４３  暗号処理部、４１  認証処理部。
【図１】
0004763447.tif 000002
【図２】
0004763447.tif 000003
【図３】
0004763447.tif 000004
【図４】
0004763447.tif 000005
【図５】
0004763447.tif 000006
【図６】
0004763447.tif 000007