(57)【要約】【課題】簡便な手順で秘密鍵の安全な共有を可能にすること。【解決手段】暗号化通信システム１を構成するホスト装置２及びクライアント装置３は、乱数を生成する乱数生成器２１，３１と、キーワード情報及び秘密鍵リストを保持する情報記憶部２３，２５，３３，３５と、乱数及びキーワード情報を平文情報に変換する情報変換部２２，３２と、平文情報を秘密鍵リストから選択した秘密鍵によって暗号化する暗号化部２４，３４と、暗号化情報を送受信するするデータ通信部２６，３６と、暗号化情報を秘密鍵リストから選択した秘密鍵によって復号して平文情報を生成する復号部２７，３７と、平文情報を乱数及びキーワード情報に逆変換する情報逆変換部２８，３８と、キーワード情報が予め保持されたキーワード情報に一致した場合に、共有化された２つの乱数を用いてセッション鍵を生成する鍵生成部２９，３９とを有する。【選択図】図１
2012050075.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置と第２の通信装置とを備え、前記第１の通信装置と前記第２の通信装置との間で共通鍵暗号を用いた暗号化通信が可能にされた暗号化通信システムであって、
前記第１の通信装置は、
第１の乱数を生成する乱数生成手段と、
通信相手先の認証用のキーワード情報を保持する情報記憶手段と、
前記第１の乱数及び前記キーワード情報を、所定の変換規則によって第１の平文情報に変換する情報変換手段と、
前記第１の平文情報を、複数の鍵から選択することによって得られた第１の秘密鍵によって暗号化して、第１の暗号化情報を生成する暗号化手段と、
前記第１の暗号化情報を前記第２の通信装置に送信し、前記第２の通信装置から第２の暗号化情報を受信する通信手段と、
前記第２の暗号化情報を前記複数の鍵から選択した第２の秘密鍵によって復号して、第２の平文情報を生成する復号手段と、
前記第２の平文情報を、前記所定の変換規則に対応する所定の逆変換規則によって、第２の乱数及びキーワード情報に逆変換する情報逆変換手段と、
前記情報逆変換手段によって得られた前記キーワード情報が、前記情報記憶手段によって保持された前記キーワード情報に一致した場合に、前記第１及び第２の乱数を用いて、前記第２の通信装置との暗号化通信用のセッション鍵を生成する鍵生成手段と、を有し、
前記第２の通信装置は、
第２の乱数を生成する乱数生成手段と、
通信相手先の認証用のキーワード情報を保持する情報記憶手段と、
前記第２の乱数及び前記キーワード情報を、所定の変換規則によって第２の平文情報に変換する情報変換手段と、
前記第２の平文情報を、複数の鍵から選択することによって得られた第２の秘密鍵によって暗号化して、第２の暗号化情報を生成する暗号化手段と、
前記第２の暗号化情報を前記第１の通信装置に送信し、前記第１の通信装置から第１の暗号化情報を受信する通信手段と、
前記第１の暗号化情報を前記複数の鍵から選択した第１の秘密鍵によって復号して、第１の平文情報を生成する復号手段と、
前記第１の平文情報を、前記所定の変換規則に対応する所定の逆変換規則によって、第１の乱数及びキーワード情報に逆変換する情報逆変換手段と、
前記情報逆変換手段によって得られた前記キーワード情報が、前記情報記憶手段によって保持された前記キーワード情報に一致した場合に、前記第１及び第２の乱数を用いて、前記第１の通信装置との暗号化通信用のセッション鍵を生成する鍵生成手段と、を有する
ことを特徴とする暗号化通信システム。
【請求項２】
前記第１の通信装置の前記情報記憶手段は、通信相手先の認証用のキーワード情報、及び複数の秘密鍵の組合せを保持し、
前記第１の通信装置の前記暗号化手段は、前記第１の平文情報を、前記複数の秘密鍵の組合せから選択した第１の秘密鍵によって暗号化し、
前記第１の通信装置の前記復号手段は、前記第２の暗号化情報を前記複数の秘密鍵の組合せから選択した第２の秘密鍵によって復号し、
前記第２の通信装置の前記情報記憶手段は、通信相手先の認証用のキーワード情報、及び複数の秘密鍵の組合せを保持し、
前記第２の通信装置の前記暗号化手段は、前記第２の平文情報を、前記複数の秘密鍵の組合せから選択した第２の秘密鍵によって暗号化し、
前記第２の通信装置の前記復号手段は、前記第１の暗号化情報を前記複数の秘密鍵の組合せから選択した第１の秘密鍵によって復号する、
ことを特徴とする請求項１記載の暗号化通信システム。
【請求項３】
前記第１の通信装置は、前記通信相手先の認証用のキーワード情報から所定の鍵生成規則によって生成可能な複数の鍵の中から秘密鍵を選択する鍵生成手段をさらに備え、
前記第１の通信装置の前記暗号化手段は、前記第１の平文情報を、前記鍵生成手段によって選択された第１の秘密鍵によって暗号化し、
前記第１の通信装置の前記復号手段は、前記第２の暗号化情報を前記鍵生成手段によって選択された第２の秘密鍵によって復号し、
前記第２の通信装置は、前記通信相手先の認証用のキーワード情報から前記所定の鍵生成規則によって生成可能な複数の鍵の中から秘密鍵を選択する鍵生成手段をさらに備え、
前記第２の通信装置の前記暗号化手段は、前記第２の平文情報を、前記鍵生成手段によって選択された第２の秘密鍵によって暗号化し、
前記第２の通信装置の前記復号手段は、前記第１の暗号化情報を前記鍵生成手段によって選択された第１の秘密鍵によって復号する、
ことを特徴とする請求項１記載の暗号化通信システム。
【請求項４】
第１の通信装置と第２の通信装置との間で共通鍵暗号を用いた暗号化通信を行う暗号化通信方法であって、
前記第１及び第２の通信装置が、それぞれ、第１及び第２の乱数を生成する乱数生成ステップと、
前記第１及び第２の通信装置が、通信相手先の認証用のキーワード情報を保持する情報記憶ステップと、
前記第１の通信装置が、前記第１の乱数及び前記キーワード情報を、所定の変換規則によって第１の平文情報に変換する情報変換ステップと、
前記第１の通信装置が、前記第１の平文情報を、複数の鍵から選択することによって得られた第１の秘密鍵によって暗号化して、第１の暗号化情報を生成する暗号化ステップと、
前記第１の通信装置が、前記第１の暗号化情報を前記第２の通信装置に送信する通信ステップと、
前記第２の通信装置が、前記第１の暗号化情報を複数の鍵から選択した第１の秘密鍵によって復号して、第１の平文情報を生成する復号ステップと、
前記第２の通信装置が、前記第１の平文情報を、前記所定の変換規則に対応する所定の逆変換規則によって、第１の乱数及びキーワード情報に逆変換する情報逆変換ステップと、
前記第２の通信装置が、前記情報逆変換ステップによって得られた前記キーワード情報が、前記情報記憶ステップによって保持された前記キーワード情報に一致した場合に、前記第１及び第２の乱数を用いて、前記第１の通信装置との暗号化通信用のセッション鍵を生成する鍵生成ステップと、
前記第２の通信装置が、前記第２の乱数及び前記キーワード情報を、所定の変換規則によって第２の平文情報に変換する情報変換ステップと、
前記第２の通信装置が、前記第２の平文情報を、複数の鍵から選択することによって得られた第２の秘密鍵によって暗号化して、第２の暗号化情報を生成する暗号化ステップと、
前記第２の通信装置が、前記第２の暗号化情報を前記第１の通信装置に送信する通信ステップと、
前記第１の通信装置が、前記第２の暗号化情報を複数の鍵から選択した第２の秘密鍵によって復号して、第２の平文情報を生成する復号ステップと、
前記第１の通信装置が、前記第２の平文情報を、前記所定の変換規則に対応する所定の逆変換規則によって、第２の乱数及びキーワード情報に逆変換する情報逆変換ステップと、
前記第１の通信装置が、前記情報逆変換ステップによって得られた前記キーワード情報が、前記情報記憶ステップによって保持された前記キーワード情報に一致した場合に、前記第１及び第２の乱数を用いて、前記第２の通信装置との暗号化通信用のセッション鍵を生成する鍵生成ステップと、
を備えることを特徴とする暗号化通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化通信システム及び暗号化通信方法に関する。
【背景技術】
【０００２】
従来から、情報処理装置間でデータを送受信する際には、通信路上での第三者によるデータの傍受、あるいは受信装置になりすました第三者によるデータの受信及び読み取りを回避するために、装置間の認証及び通信データの暗号化が行われている。例えば、下記特許文献１には、ネットワークプリンタ等で公開鍵暗号方式を用いて第三者に対して印刷データの内容を秘匿する方法が開示されている。このような公開鍵暗号は秘密鍵の共有を必要としない点で利点があるが、鍵生成処理、あるいは暗号化／復号処理の計算量が多くなり、処理負荷が高くなる傾向にある。また、下記特許文献２，３には、暗号化／復号処理の計算量が比較的少ない暗号化方式である共通鍵暗号方式が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３０６２７３号公報
【特許文献２】特開２００６−１３５９３１号公報
【特許文献３】特開２００６−２７０３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献２，３に記載された共通鍵暗号化方法では、送信装置及び受信装置間で秘密鍵の共有を必要とするため、その秘密鍵を安全に共有するための処理が複雑化するという問題があった。
【０００５】
そこで、本発明は、かかる課題に鑑みて為されたものであり、簡便な手順で秘密鍵の安全な共有を可能にする暗号化通信システム及び暗号化通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の暗号化通信システムは、第１の通信装置と第２の通信装置とを備え、第１の通信装置と第２の通信装置との間で共通鍵暗号を用いた暗号化通信が可能にされた暗号化通信システムであって、第１の通信装置は、第１の乱数を生成する乱数生成手段と、通信相手先の認証用のキーワード情報を保持する情報記憶手段と、第１の乱数及びキーワード情報を、所定の変換規則によって第１の平文情報に変換する情報変換手段と、第１の平文情報を、複数の鍵から選択することによって得られた第１の秘密鍵によって暗号化して、第１の暗号化情報を生成する暗号化手段と、第１の暗号化情報を第２の通信装置に送信し、第２の通信装置から第２の暗号化情報を受信する通信手段と、第２の暗号化情報を複数の鍵から選択した第２の秘密鍵によって復号して、第２の平文情報を生成する復号手段と、第２の平文情報を、所定の変換規則に対応する所定の逆変換規則によって、第２の乱数及びキーワード情報に逆変換する情報逆変換手段と、情報逆変換手段によって得られたキーワード情報が、情報記憶手段によって保持されたキーワード情報に一致した場合に、第１及び第２の乱数を用いて、第２の通信装置との暗号化通信用のセッション鍵を生成する鍵生成手段と、を有し、第２の通信装置は、第２の乱数を生成する乱数生成手段と、通信相手先の認証用のキーワード情報を保持する情報記憶手段と、第２の乱数及びキーワード情報を、所定の変換規則によって第２の平文情報に変換する情報変換手段と、第２の平文情報を、複数の鍵から選択することによって得られた第２の秘密鍵によって暗号化して、第２の暗号化情報を生成する暗号化手段と、第２の暗号化情報を第１の通信装置に送信し、第１の通信装置から第１の暗号化情報を受信する通信手段と、第１の暗号化情報を複数の鍵から選択した第１の秘密鍵によって復号して、第１の平文情報を生成する復号手段と、第１の平文情報を、所定の変換規則に対応する所定の逆変換規則によって、第１の乱数及びキーワード情報に逆変換する情報逆変換手段と、情報逆変換手段によって得られたキーワード情報が、情報記憶手段によって保持されたキーワード情報に一致した場合に、第１及び第２の乱数を用いて、第１の通信装置との暗号化通信用のセッション鍵を生成する鍵生成手段と、を有する。
【０００７】
或いは、本発明の暗号化通信方法は、第１の通信装置と第２の通信装置との間で共通鍵暗号を用いた暗号化通信を行う暗号化通信方法であって、第１及び第２の通信装置が、それぞれ、第１及び第２の乱数を生成する乱数生成ステップと、第１及び第２の通信装置が、通信相手先の認証用のキーワード情報を保持する情報記憶ステップと、第１の通信装置が、第１の乱数及びキーワード情報を、所定の変換規則によって第１の平文情報に変換する情報変換ステップと、第１の通信装置が、第１の平文情報を、複数の鍵から選択することによって得られた第１の秘密鍵によって暗号化して、第１の暗号化情報を生成する暗号化ステップと、第１の通信装置が、第１の暗号化情報を第２の通信装置に送信する通信ステップと、第２の通信装置が、第１の暗号化情報を複数の鍵から選択した第１の秘密鍵によって復号して、第１の平文情報を生成する復号ステップと、第２の通信装置が、第１の平文情報を、所定の変換規則に対応する所定の逆変換規則によって、第１の乱数及びキーワード情報に逆変換する情報逆変換ステップと、第２の通信装置が、情報逆変換手段によって得られたキーワード情報が、情報記憶手段によって保持されたキーワード情報に一致した場合に、第１及び第２の乱数を用いて、第１の通信装置との暗号化通信用のセッション鍵を生成する鍵生成ステップと、第２の通信装置が、第２の乱数及びキーワード情報を、所定の変換規則によって第２の平文情報に変換する情報変換ステップと、第２の通信装置が、第２の平文情報を、複数の鍵から選択することによって得られた第２の秘密鍵によって暗号化して、第２の暗号化情報を生成する暗号化ステップと、第２の通信装置が、第２の暗号化情報を第１の通信装置に送信する通信ステップと、第１の通信装置が、第２の暗号化情報を複数の鍵から選択した第２の秘密鍵によって復号して、第２の平文情報を生成する復号ステップと、第１の通信装置が、第２の平文情報を、所定の変換規則に対応する所定の逆変換規則によって、第２の乱数及びキーワード情報に逆変換する情報逆変換ステップと、第１の通信装置が、情報逆変換手段によって得られたキーワード情報が、情報記憶手段によって保持されたキーワード情報に一致した場合に、第１及び第２の乱数を用いて、第２の通信装置との暗号化通信用のセッション鍵を生成する鍵生成ステップと、を備える。
【０００８】
本発明に係る暗号化通信システム、或いは暗号化通信方法によれば、第１の通信装置が、第１の乱数及びキーワード情報を第１の平文情報に変換した後に、第１の平文情報を複数の鍵の中から選択した第１の秘密鍵によって暗号化して第１の暗号化情報を生成し、その第１の暗号化情報を第２の通信装置に送信する。これに対して、第２の通信装置が、第１の暗号化情報を同じ複数の鍵の中から選択した第１の秘密鍵によって復号して第１の平文情報を生成した後に、第１の平文情報を逆変換して第１の乱数及びキーワード情報を取得し、キーワード情報があらかじめ保持しておいたキーワード情報と一致した際に、第１の乱数、及び自ら生成した第２の乱数を用いてセッション鍵を生成する。これにより、キーワード情報による第１の装置の認証と、セッション鍵生成用の第１の乱数の安全な受け渡しとが、キーワードの共有によって同時に可能にされる。また、第２の通信装置が、第２の乱数及びキーワード情報を第２の平文情報に変換した後に、第２の平文情報を複数の鍵の中から選択した第２の秘密鍵によって暗号化して第２の暗号化情報を生成し、その第２の暗号化情報を第１の通信装置に送信する。これに対して、第１の通信装置が、第２の暗号化情報を同じ複数の鍵の中から選択した第２の秘密鍵によって復号して第２の平文情報を生成した後に、第２の平文情報を逆変換して第２の乱数及びキーワード情報を取得し、キーワード情報があらかじめ保持しておいたキーワード情報と一致した際に、第２の乱数、及び自ら生成した第１の乱数を用いてセッション鍵を生成する。これにより、キーワード情報による第２の装置の認証と、セッション鍵生成用の第２の乱数の安全な受け渡しとが、キーワードの共有によって同時に可能にされる。その結果、通信路上の一往復の簡便な手順で、秘密鍵の安全な共有と相互認証とが実現される。
【発明の効果】
【０００９】
本発明によれば、簡便な手順で秘密鍵の安全な共有を可能にする暗号化通信システム及び暗号化通信方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態に係る暗号化通信システムの機能構成を示すブロック図である。
【図２】図１の暗号化通信システムのセッション鍵共有処理時の動作を示すフローチャートである。
【図３】図１の暗号化通信システムのセッション鍵共有処理時の動作を示すフローチャートである。
【図４】図１の暗号化通信システムのセッション鍵共有処理時の動作を示すフローチャートである。
【図５】図１の暗号化通信システムのセッション鍵共有処理時の動作を示すフローチャートである。
【図６】本発明の第２実施形態に係る暗号化通信システムの機能構成を示すブロック図である。
【図７】図６の暗号化通信システムのセッション鍵共有処理時の動作を示すフローチャートである。
【図８】図６の暗号化通信システムのセッション鍵共有処理時の動作を示すフローチャートである。
【図９】図６の暗号化通信システムのセッション鍵共有処理時の動作を示すフローチャートである。
【図１０】図６の暗号化通信システムのセッション鍵共有処理時の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態に係る暗号化通信システム及び暗号化通信方法について図面を参照しながら説明する。
【００１２】
［第１実施形態］
図１に示すように、暗号化通信システム１は、情報通信装置であるホスト装置２及びクライアント装置３を備え、ホスト装置２とクライアント装置３とがＬＡＮ（LocalArea Network）やＷＡＮ（Wide Area Network）等の通信ネットワークＮＷを介して互いに暗号化されたデータの送受信、すなわち暗号化通信が可能なように構成されている。このような暗号化通信システム１の例としては、コンピュータ端末とネットワークプリンタによって構成され、コンピュータ端末からネットワークプリンタに対してＩＤカード印刷用の個人情報、またはＩＤカード記録用の個人情報を送信するＩＤカード作成システムが挙げられる。
【００１３】
まず、ホスト装置２の各構成要素の機能について詳細に説明する。ホスト装置２は、機能的な構成要素として、乱数生成器（乱数生成手段）２１、情報変換部（情報変換手段）２２、キーワード情報記憶部（情報記憶手段）２３、暗号化部（暗号化手段）２４、秘密鍵リスト情報記憶部（情報記憶手段）２５、データ通信部（通信手段）２６、復号部（復号手段）２７、情報逆変換部（情報逆変換手段）２８、及び鍵生成部（鍵生成手段）２９を備えている。
【００１４】
乱数生成器２１は、ホスト装置２とクライアント装置３との間での暗号化通信に用いるセッション鍵（秘密鍵）の共有処理時に、第１の乱数ｒ１を生成する。乱数生成器２１は、生成した乱数ｒ１を情報変換部２２に渡す。
【００１５】
情報変換部２２は、乱数ｒ１と、キーワード情報記憶部２３から読み出したキーワード情報Ｋ０とを、所定の変換規則Ａ１を用いて第１の平文情報Ｐ１に変換する。このキーワード情報Ｋ０は、クライアント装置３との間で互いの通信相手先の認証を行うための情報であり、予めキーワード情報記憶部２３に保持されている。ここでいう「所定の変換規則Ａ１」としては、例えば、乱数ｒ１とキーワード情報Ｋ０とをこの順で連結したビット列に変換する規則や、乱数ｒ１とキーワード情報Ｋ０とを１ビットずつ交互に連結したビット列に変換する規則等が挙げられる。情報変換部２２は、変換した第１の平文情報Ｐ１を暗号化部２４に引き渡す。
【００１６】
暗号化部２４は、第１の平文情報Ｐ１を、秘密鍵リスト情報記憶部２５から読み出して選択した第１の秘密鍵を用いて、共通鍵暗号を用いて暗号化することによって、第１の暗号化情報Ｅ１を生成する。この秘密鍵リスト情報記憶部２５には、クライアント装置３との間で共有された秘密鍵リストＬが予め保持されており、秘密鍵リストＬには、１０〜２０個程度の複数の秘密鍵の組合せ（Ｋ１，Ｋ２，…，Ｋｎ）（ｎは自然数）が含まれている。すなわち、暗号化部２４は、秘密鍵リストＬからランダムに選択した第１の秘密鍵Ｋｘ（１≦ｘ≦ｎ）を用いて第１の平文情報Ｐ１を暗号化する。そして、暗号化部２４は、暗号化した第１の暗号化情報Ｅ１をデータ通信部２６に渡す。
【００１７】
データ通信部２６は、暗号化部２４から渡された暗号化情報Ｅ１を、クライアント装置３に送信する。また、データ通信部２６は、ホスト装置２とクライアント装置３との間でのセッション鍵の共有処理の最中に、クライアント装置３から第２の暗号化情報Ｅ２を受信し、受信した暗号化情報Ｅ２を復号部２７に引き渡す。暗号化部２４、データ通信部２６、及び復号部２７は、ホスト装置２とクライアント装置３との間でのセッション鍵の共有処理の終了後に、生成されたセッション鍵Ｋｓを用いてクライアント装置３との間で共通鍵暗号を用いた暗号化通信を実行する。
【００１８】
復号部２７は、データ通信部２６から渡された第２の暗号化情報Ｅ２を、秘密鍵リスト情報記憶部２５に保持された秘密鍵リストＬから選択した第２の秘密鍵Ｋｙ’（１≦ｙ’≦ｎ）を用いて、共通鍵暗号を用いて復号することによって、第２の平文情報Ｐ２’を生成する。この復号部２７は、第２の平文情報Ｐ２’の生成を、後述する鍵生成部２９による通信相手先であるクライアント装置３の認証が成功するまで、秘密鍵リストＬ中から第２の秘密鍵Ｋｙ’（１≦ｙ’≦ｎ）を選択し直しながら繰り返し行う。また、復号部２７は、生成した第２の平文情報Ｐ２’を情報逆変換部２８に引き渡す。
【００１９】
情報逆変換部２８は、第２の平文情報Ｐ２’を、所定の逆変換規則Ｂ２を用いて第２の乱数候補ｒ２’とキーワード情報Ｋ０’とに逆変換する。この所定の逆変換規則Ｂ２は、後述するクライアント装置３の情報変換部３２によって用いられる変換規則Ｂ１に対応するものである。例えば、変換規則Ｂ１が乱数ｒ２とキーワード情報Ｋ０とを連結したビット列に変換する規則である場合は、逆変換規則Ｂ２は、第２の平文情報Ｐ２’を構成するビット列を分離して乱数候補ｒ２’とキーワード情報Ｋ０’とに再生するような規則である。また、情報逆変換部２８は、逆変換した乱数候補ｒ２’とキーワード情報Ｋ０’とを鍵生成部２９に引き渡す。
【００２０】
鍵生成部２９は、情報逆変換部２８によって再生されたキーワード情報Ｋ０’が、予めキーワード情報記憶部２３に保持されたキーワード情報Ｋ０に一致するか否かを判定することによって、クライアント装置３を認証する。そして、鍵生成部２９は、キーワード情報Ｋ０’がキーワード情報Ｋ０に一致した場合、すなわち、正しい秘密鍵Ｋｙで第２の暗号化情報Ｅ２が復号され、かつ、クライアント装置３の正当性の認証が成功した場合には、乱数生成器２１によって生成された第１の乱数ｒ１と、情報逆変換部２８によって再生された第２の乱数候補ｒ２’とを用いて、クライアント装置３との暗号化通信用のセッション鍵Ｋｓを生成する。例えば、鍵生成部２９は、第１の乱数ｒ１と第２の乱数候補ｒ２’とをＸＯＲ演算することによってセッション鍵Ｋｓを生成してもよいし、第１の乱数ｒ１と第２の乱数候補ｒ２’とを１バイトずつ交互に連結することによってセッション鍵Ｋｓを生成してもよい。また、鍵生成部２９は、生成したセッション鍵Ｋｓを暗号化部２４及び復号部２７に引き渡す。
【００２１】
次に、クライアント装置３の各構成要素の機能について詳細に説明する。クライアント装置３は、機能的な構成要素として、乱数生成器（乱数生成手段）３１、情報変換部（情報変換手段）３２、キーワード情報記憶部（情報記憶手段）３３、暗号化部（暗号化手段）３４、秘密鍵リスト情報記憶部（情報記憶手段）３５、データ通信部（通信手段）３６、復号部（復号手段）３７、情報逆変換部（情報逆変換手段）３８、及び鍵生成部（鍵生成手段）３９を備えている。
【００２２】
乱数生成器３１は、ホスト装置２とクライアント装置３との間での暗号化通信に用いるセッション鍵（秘密鍵）の共有処理時に、第２の乱数ｒ２を生成する。乱数生成器３１は、生成した乱数ｒ２を情報変換部３２に渡す。
【００２３】
情報変換部３２は、乱数ｒ２と、キーワード情報記憶部３３から読み出したキーワード情報Ｋ０とを、所定の変換規則Ｂ１を用いて第２の平文情報Ｐ２に変換する。このキーワード情報Ｋ０は、ホスト装置２のキーワード情報記憶部２３に保持された情報と同一の通信相手先認証用の情報であり、予めキーワード情報記憶部３３に保持されている。ここでいう「所定の変換規則Ｂ１」としては、例えば、乱数ｒ２とキーワード情報Ｋ０とをこの順で連結したビット列に変換する規則や、乱数ｒ２とキーワード情報Ｋ０とを１ビットずつ交互に連結したビット列に変換する規則等が挙げられる。情報変換部３２は、変換した第２の平文情報Ｐ２を暗号化部３４に引き渡す。
【００２４】
暗号化部３４は、第２の平文情報Ｐ２を、秘密鍵リスト情報記憶部３５から読み出して選択した第２の秘密鍵を用いて、ホスト装置２と同一の共通鍵暗号方式を用いて暗号化することによって、第２の暗号化情報Ｅ２を生成する。この秘密鍵リスト情報記憶部３５には、ホスト装置２との間で共有された秘密鍵リストＬが予め保持されており、秘密鍵リストＬには、１０〜２０個程度の複数の秘密鍵の組合せ（Ｋ１，Ｋ２，…，Ｋｎ）（ｎは自然数）が含まれている。すなわち、暗号化部３４は、秘密鍵リストＬからランダムに選択した第２の秘密鍵Ｋｙ（１≦ｙ≦ｎ）を用いて第２の平文情報Ｐ２を暗号化する。そして、暗号化部３４は、暗号化した第２の暗号化情報Ｅ２をデータ通信部３６に渡す。
【００２５】
データ通信部３６は、暗号化部３４から渡された暗号化情報Ｅ２を、ホスト装置２に送信する。また、データ通信部３６は、ホスト装置２とクライアント装置３との間でのセッション鍵の共有処理の最中に、ホスト装置２から第１の暗号化情報Ｅ１を受信し、受信した暗号化情報Ｅ１を復号部３７に引き渡す。暗号化部３４、データ通信部３６、及び復号部３７は、ホスト装置２とクライアント装置３との間でのセッション鍵の共有処理の終了後に、生成されたセッション鍵Ｋｓを用いてホスト装置２との間で共通鍵暗号を用いた暗号化通信を実行する。
【００２６】
復号部３７は、データ通信部３６から渡された第１の暗号化情報Ｅ１を、秘密鍵リスト情報記憶部３５に保持された秘密鍵リストＬから選択した第１の秘密鍵Ｋｘ’（１≦ｘ’≦ｎ）を用いて、ホスト装置２と同一の共通鍵暗号方式を用いて復号することによって、第１の平文情報Ｐ１’を生成する。この復号部３７は、第１の平文情報Ｐ１’の生成を、後述する鍵生成部３９による通信相手先であるホスト装置２の認証が成功するまで、秘密鍵リストＬ中から第１の秘密鍵Ｋｘ’（１≦ｘ’≦ｎ）を選択し直しながら繰り返し行う。また、復号部３７は、生成した第１の平文情報Ｐ１’を情報逆変換部３８に引き渡す。
【００２７】
情報逆変換部３８は、第１の平文情報Ｐ１’を、所定の逆変換規則Ａ２を用いて第１の乱数候補ｒ１’とキーワード情報Ｋ０’とに逆変換する。この所定の逆変換規則Ａ２は、ホスト装置２の情報変換部２２によって用いられる変換規則Ａ１に対応するものである。例えば、変換規則Ａ１が乱数ｒ１とキーワード情報Ｋ０とを連結したビット列に変換する規則である場合は、逆変換規則Ａ２は、第１の平文情報Ｐ１’を構成するビット列を分離して乱数候補ｒ１’とキーワード情報Ｋ０’とに再生するような規則である。また、情報逆変換部３８は、逆変換した乱数候補ｒ１’とキーワード情報Ｋ０’とを鍵生成部３９に引き渡す。
【００２８】
鍵生成部３９は、情報逆変換部３８によって再生されたキーワード情報Ｋ０’が、予めキーワード情報記憶部３３に保持されたキーワード情報Ｋ０に一致するか否かを判定することによって、ホスト装置２を認証する。そして、鍵生成部３９は、キーワード情報Ｋ０’がキーワード情報Ｋ０に一致した場合、すなわち、正しい秘密鍵Ｋｘで第１の暗号化情報Ｅ１が復号され、かつ、ホスト装置２の正当性の認証が成功した場合には、乱数生成器３１によって生成された第２の乱数ｒ２と、情報逆変換部３８によって再生された第１の乱数候補ｒ１’とを用いて、ホスト端末２との暗号化通信用のセッション鍵Ｋｓを生成する。例えば、鍵生成部３９は、第１の乱数候補ｒ１’と第２の乱数ｒ２とをＸＯＲ演算することによってセッション鍵Ｋｓを生成してもよいし、第１の乱数候補ｒ１’と第２の乱数ｒ２とを１バイトずつ交互に連結することによってセッション鍵Ｋｓを生成してもよい。ただし、このセッション鍵Ｋｓの生成アルゴリズムは、ホスト装置２の鍵生成部２９の生成アルゴリズムと同一になるように予め組み込まれる。また、鍵生成部３９は、生成したセッション鍵Ｋｓを暗号化部３４及び復号部３７に引き渡す。
【００２９】
以下、暗号化通信システム１によるセッション鍵の共有処理時の動作について説明するとともに、本実施形態にかかる暗号化通信方法について詳述する。図２〜５は、暗号化通信システム１におけるセッション鍵共有処理時の動作を示すフローチャートである。ここで、暗号化通信が実行される前には、ホスト装置２とクライアント装置３との間で、秘密鍵リストＬ及びキーワード情報Ｋ０とが、ファームウェアに組み込む、或いは、初期設定時に記憶させるなどの通信手段を用いない方法で予め共有化されている。さらに、ホスト装置２で用いられる変換規則Ａ１及び逆変換規則Ｂ２と、クライアント装置３で用いられる変換規則Ｂ１及び逆変換規則Ａ２とが、それぞれ、互いに対応する規則となるように予め設定されている。
【００３０】
まず、図２を参照して、暗号化通信の開始を契機に、ホスト装置２の乱数生成器２１によって第１の乱数ｒ１が生成される（ステップＳ１０１）。次に、ホスト装置２の情報変換部２２によって、乱数ｒ１と、キーワード情報記憶部２３から読み出したキーワード情報Ｋ０とが、所定の変換規則Ａ１を用いて平文情報Ｐ１に変換される（ステップＳ１０２）。そして、ホスト装置２の暗号化部２４によって秘密鍵リストＬからランダムに秘密鍵Ｋｘが選択される（ステップＳ１０３）。このとき、秘密鍵Ｋｘは、乱数生成器２１によって発生させた乱数ｒ１又は別の乱数を使用したり、時刻情報などの再現性のない情報を使用して選択される。その後、ホスト装置２の暗号化部２４によって、秘密鍵Ｋｘを用いた共通鍵暗号方式によって、平文情報Ｐ１が暗号化情報Ｅ１に暗号化される（ステップＳ１０４）。そして、ホスト装置２のデータ通信部２６によって、クライアント装置３に向けて、暗号化情報Ｅ１が送信される（ステップＳ１０５）。
【００３１】
図３に移って、これに対して、クライアント装置３のデータ通信部３６により、ホスト装置２から暗号化情報Ｅ１が受信される（ステップＳ２０１）。次に、クライアント装置３の復号部３７により、秘密鍵リストＬから最初の秘密鍵Ｋｘ’が選択される（ステップＳ２０２）。そして、復号部３７により、最初の秘密鍵Ｋｘ’を用いた共通鍵暗号によって暗号化情報Ｅ１が復号され、平文情報Ｐ１’が生成される（ステップＳ２０３）。その後、クライアント装置３の情報逆変換部３８により、所定の逆変換規則Ａ２を用いて、平文情報Ｐ１’が乱数候補ｒ１’とキーワード情報Ｋ０’とに逆変換される（ステップＳ２０４）。さらに、クライアント装置３の鍵生成部３９により、得られたキーワード情報Ｋ０’が、キーワード情報記憶部３３に保持されているキーワード情報Ｋ０に一致するか否かが判定される（ステップＳ２０５）。
【００３２】
上記の判定の結果、キーワード情報が一致していない場合には（ステップＳ２０５；ＮＯ）、秘密鍵Ｋｘ’がホスト装置２で用いられた秘密鍵Ｋｘと一致しないか、又はホスト装置２が不正な通信相手先であるかのいずれかであると判断される。そして、クライアント装置３の復号部３７により、秘密鍵リストＬから選択した秘密鍵Ｋｘ’が最後のものであるかが判定される（ステップＳ２０６）。判定の結果、秘密鍵Ｋｘ’が最後のものでない場合には（ステップＳ２０６；ＮＯ）、復号部３７により次の秘密鍵Ｋｘ’が選択されて（ステップＳ２０７）、ステップＳ２０３に処理が戻される。一方、秘密鍵Ｋｘ’が最後のものである場合には（ステップＳ２０６；ＹＥＳ）、クライアント装置３によってホスト装置２が不正な通信相手先であると判断されて、受信した暗号化情報Ｅ１が破棄された後、データ通信部３６によって、ホスト装置２に本来返信されるべき暗号化情報Ｅ２と同じデータ長の乱数データが生成されてホスト装置２に返信される（ステップＳ２０８）。これにより、悪意のある第三者が通信路をモニタした際の挙動を、正常時と異常時とで同様な状態とすることができる。
【００３３】
ステップＳ２０５における判定の結果、キーワード情報が一致している場合には（ステップＳ２０５；ＹＥＳ）、ホスト装置２が正当な通信相手先であると判断される。図４に移って、その後、鍵生成部３９により、乱数候補ｒ１’が第１の乱数ｒ１として採用される（ステップＳ３０１）。次に、クライアント装置３の乱数生成器３１によって第２の乱数ｒ２が生成される（ステップＳ３０２）。さらに、鍵生成部３９により、第１の乱数ｒ１と第２の乱数ｒ２とを用いて、セッション鍵Ｋｓが生成される（ステップＳ３０３）。次に、クライアント装置３の情報変換部３２によって、乱数ｒ２と、キーワード情報記憶部３３から読み出したキーワード情報Ｋ０とが、所定の変換規則Ｂ１を用いて平文情報Ｐ２に変換される（ステップＳ３０４）。そして、クライアント装置３の暗号化部３４によって秘密鍵リストＬからランダムに秘密鍵Ｋｙが選択される（ステップＳ３０５）。このとき、秘密鍵Ｋｙは、乱数生成器３１によって発生させた乱数ｒ２又は別の乱数を使用したり、時刻情報などの再現性のない情報を使用して選択される。その後、クライアント装置３の暗号化部３４によって、秘密鍵Ｋｙを用いた共通鍵暗号方式によって、平文情報Ｐ２が暗号化情報Ｅ２に暗号化される（ステップＳ３０６）。そして、クライアント装置３のデータ通信部３６によって、ホスト装置２に向けて、暗号化情報Ｅ２が送信される（ステップＳ３０７）。
【００３４】
図５に移って、これに対して、ホスト装置２のデータ通信部２６により、クライアント装置３から暗号化情報Ｅ２が受信される（ステップＳ４０１）。次に、ホスト装置２の復号部２７により、秘密鍵リストＬから最初の秘密鍵Ｋｙ’が選択される（ステップＳ４０２）。そして、復号部２７により、最初の秘密鍵Ｋｙ’を用いた共通鍵暗号によって暗号化情報Ｅ２が復号され、平文情報Ｐ２’が生成される（ステップＳ４０３）。その後、ホスト装置２の情報逆変換部２８により、所定の逆変換規則Ｂ２を用いて、平文情報Ｐ２’が乱数候補ｒ２’とキーワード情報Ｋ０’とに逆変換される（ステップＳ４０４）。さらに、ホスト装置２の鍵生成部２９により、得られたキーワード情報Ｋ０’が、キーワード情報記憶部２３に保持されているキーワード情報Ｋ０に一致するか否かが判定される（ステップＳ４０５）。
【００３５】
上記の判定の結果、キーワード情報が一致していない場合には（ステップＳ４０５；ＮＯ）、秘密鍵Ｋｙ’がクライアント装置３で用いられた秘密鍵Ｋｙと一致しないか、又はクライアント装置３が不正な通信相手先であるかのいずれかであると判断される。そして、ホスト装置２の復号部２７により、秘密鍵リストＬから選択した秘密鍵Ｋｙ’が最後のものであるかが判定される（ステップＳ４０６）。判定の結果、秘密鍵Ｋｙ’が最後のものでない場合には（ステップＳ４０６；ＮＯ）、復号部２７により次の秘密鍵Ｋｙ’が選択されて（ステップＳ４０７）、ステップＳ４０３に処理が戻される。一方、秘密鍵Ｋｙ’が最後のものである場合には（ステップＳ４０６；ＹＥＳ）、ホスト装置２によってクライアント装置３が不正な通信相手先であると判断されて、暗号化通信が中止される。
【００３６】
ステップＳ４０５における判定の結果、キーワード情報が一致している場合には（ステップＳ４０５；ＹＥＳ）、クライアント装置３が正当な通信相手先であると判断される。その後、鍵生成部２９により、乱数候補ｒ２’が第２の乱数ｒ２として採用される（ステップＳ４０８）。さらに、鍵生成部２９により、乱数生成器２１によって生成された第１の乱数ｒ１と第２の乱数ｒ２とを用いて、セッション鍵Ｋｓが生成される（ステップＳ４０９）。
【００３７】
このようにして生成及び共有化されたセッション鍵Ｋｓは、ホスト装置２とクライアント装置３間での共通鍵暗号方式による以降の暗号化通信において用いられる。このセッション鍵Ｋｓは、図２〜図５に示した鍵交換処理が次に実行されるまで有効となる。
【００３８】
以上説明した暗号化通信システム１及び暗号化通信方法によれば、ホスト装置２が、第１の乱数ｒ１及びキーワード情報Ｋ０を第１の平文情報Ｐ１に変換した後に、第１の平文情報Ｐ１を秘密鍵リストＬから選択した第１の秘密鍵Ｋｘによって暗号化して暗号化情報Ｅ１を生成し、その暗号化情報Ｅ１をクライアント装置３に送信する。これに対して、クライアント装置３が、暗号化情報Ｅ１を秘密鍵リストＬから選択した第１の秘密鍵Ｋｘ’によって復号して第１の平文情報Ｐ１’を生成した後に、第１の平文情報Ｐ１’を逆変換して第１の乱数候補ｒ１’及びキーワード情報Ｋ０’を取得し、キーワード情報Ｋ０’があらかじめ保持しておいたキーワード情報Ｋ０と一致した際に、第１の乱数候補ｒ１’、及び自ら生成した第２の乱数ｒ２を用いてセッション鍵Ｋｓを生成する。これにより、キーワード情報による通信相手先装置の認証と、セッション鍵生成用の乱数の安全な受け渡しとが、キーワード及び秘密鍵の組合せの共有によって同時に可能にされる。
【００３９】
また、クライアント装置３が、第２の乱数ｒ２及びキーワード情報Ｋ０を第２の平文情報Ｐ２に変換した後に、第２の平文情報Ｐ２を秘密鍵リストＬから選択した第２の秘密鍵Ｋｙによって暗号化して暗号化情報Ｅ２を生成し、その暗号化情報Ｅ２をホスト装置２に送信する。これに対して、ホスト装置２が、暗号化情報Ｅ２を秘密鍵リストＬから選択した第２の秘密鍵Ｋｙ’によって復号して第２の平文情報Ｐ２’を生成した後に、第２の平文情報Ｐ２’を逆変換して第２の乱数候補ｒ２’及びキーワード情報Ｋ０’を取得し、キーワード情報Ｋ０’があらかじめ保持しておいたキーワード情報Ｋ０と一致した際に、第２の乱数候補ｒ２’、及び自ら生成した第１の乱数ｒ１を用いてセッション鍵Ｋｓを生成する。これにより、キーワード情報による通信相手先の認証と、セッション鍵生成用の第２の乱数の安全な受け渡しとが、キーワード及び秘密鍵の組合せの共有によって同時に可能にされる。
【００４０】
その結果、通信路上のホスト装置とクライアント装置間の一往復の簡便な手順で、秘密鍵の安全な共有と相互認証とが実現される。すなわち、悪意のある第三者が通信路上でデータ通信を傍受しても、情報変換／情報逆変換用規則Ａ１，Ａ２，Ｂ１，Ｂ２、キーワード情報Ｋ０、秘密鍵リストＬ、及び暗号化／復号手順のすべてを知らなければセッション鍵Ｋｓの生成用の情報を知ることはできない。また、セッション鍵Ｋｓの生成アルゴリズムを知らなければその後の暗号化データを復号することもできない。同様に、第三者が通信相手先を装ってホスト装置２からの通信データを受信したとしても、情報変換／情報逆変換用規則Ａ１，Ａ２，Ｂ１，Ｂ２、キーワード情報Ｋ０、秘密鍵リストＬ、及び暗号化／復号手順のすべてを知らなければ、正当な応答データを返信することはできず、通信相手先になりすますことはできない。さらに、第三者がホスト装置２を装ってクライアント装置３に電文を送った場合、正当な電文で無い場合には乱数を生成して応答するため、その第三者は有意な情報を得ることはできない。また、仮に、キーワード情報Ｋ０、秘密鍵リストＬが流出したとしても、情報変換／情報逆変換用規則Ａ１，Ａ２，Ｂ１，Ｂ２、及びセッション鍵Ｋｓの生成アルゴリズムのすべてを知らなければ、セッション鍵Ｋｓを生成して通信データを復号することもできない。
【００４１】
［第２実施形態］
次に、本発明の第２実施形態について説明する。図６に示す本発明の第２実施形態である暗号化通信システム１０１は、秘密鍵リスト情報記憶部２５，３５の代わりに鍵生成部１２５，１３５を備える点と、暗号化部１２４，１３４及び復号部１２７，１３７の機能とが、第１実施形態にかかる暗号化通信システム１と異なる。以下、暗号化通信システム１０１の暗号化通信システム１との相違点を中心に説明する。
【００４２】
鍵生成部１２５は、乱数生成器１２１によって生成された第１の乱数ｒ１と、キーワード情報記憶部１２３から読み出したキーワード情報Ｋ０とを参照して、所定の鍵生成規則Ａ０を用いて第１の秘密鍵Ｋｘを生成する。この鍵生成規則Ａ０は、キーワード情報Ｋ０と乱数ｒ１との組み合わせにより一意に複数のｎ種類の第１の鍵Ｋｘ（１≦ｘ≦ｎ）を生成可能な計算アルゴリズムである。例えば、キーワード情報Ｋ０をｋ個（ｋは整数）に分割して、それぞれの分割後データを第１の乱数ｒ１に対応した順列で並べ替えて鍵を生成する方法や、キーワード情報Ｋ０に含まれるビット列等のデータ列を第１の乱数ｒ１に対応してシフトするなどの計算アルゴリズムが挙げられる。すなわち、鍵生成部１２５は、キーワード情報Ｋ０から鍵生成規則Ａ０で生成可能なｎ種類の鍵Ｋｘ（１≦ｘ≦ｎ）の中から、第１の乱数ｒ１に応じた第１の鍵Ｋｘを選択する。
【００４３】
また、鍵生成部１２５は、繰り返しインクリメントされるパラメータＩ（Ｉは整数）を用いて、キーワード情報Ｋ０から所定の鍵生成規則Ａ０を用いて生成可能なｎ種類の鍵Ｋｙ（１≦ｙ≦ｎ）の中から、パラメータＩに応じた第２の鍵Ｋｙ’を選択する。そして、鍵生成部１２５は、選択した鍵を第２の鍵Ｋｙ’として生成する。
【００４４】
ここで、鍵生成部１２５は、最初に選択した第１の鍵Ｋｘ又は第２の鍵Ｋｙ’が、暗号化部１２４又は復号部１２７が必要とする秘密鍵のデータ長と異なる場合には、第１の鍵Ｋｘの又は第２の鍵Ｋｙ’のデータ長を適正なデータ長に調整する機能も有してもよい。例えば、鍵生成部１２５は、鍵生成規則Ａ０を繰り返して生成された鍵を単純に連結する、或いは、鍵生成規則Ａ０で生成された鍵の前、後、又は前後に予め決めたデータ列を付加して調整する等の調整処理を行う。さらに、鍵生成部１２５は、ｎ種類の鍵Ｋｘ（１≦ｘ≦ｎ）の中から、第１の乱数ｒ１とは異なり、新たに乱数生成器１２１で生成された乱数を用いて第１の鍵Ｋｘを選択してもよいし、時刻情報などの再現性の低い情報を基に第１の鍵Ｋｘを選択してもよい。
【００４５】
暗号化部１２４は、鍵生成部１２５によって生成された第１の秘密鍵Ｋｘを用いて、第１の平文情報Ｐ１を暗号化することによって、第１の暗号化情報Ｅ１を生成する。
【００４６】
復号部１２７は、第２の暗号化情報Ｅ２を、鍵生成部１２５によって生成された第２の秘密鍵Ｋｙ’を用いて復号することによって、第２の平文情報Ｐ２’を生成する。なお、復号部１２７は、鍵生成部１２９によるクライアント装置１０３の認証が成功するまで、パラメータＩをインクリメントして選択された第２の秘密鍵Ｋｙ’を繰り返し用いて、第２の平文情報Ｐ２’を生成する。
【００４７】
鍵生成部１３５は、乱数生成器１３１によって生成された第２の乱数ｒ２と、キーワード情報記憶部１３３から読み出したキーワード情報Ｋ０とを参照して、所定の鍵生成規則Ａ０を用いて第２の秘密鍵Ｋｙを生成する。この鍵生成規則Ａ０は、ホスト装置１０２の鍵生成部１２５が用いるのと同一の計算アルゴリズムである。すなわち、鍵生成部１３５は、キーワード情報Ｋ０から鍵生成規則Ａ０で生成可能なｎ種類の鍵Ｋｙ（１≦ｙ≦ｎ）の中から、第２の乱数ｒ２に応じた第２の鍵Ｋｙを選択する。
【００４８】
また、鍵生成部１３５は、繰り返しインクリメントされるパラメータＩ（Ｉは整数）を用いて、キーワード情報Ｋ０から所定の鍵生成規則Ａ０を用いて生成可能なｎ種類の鍵Ｋｘ（１≦ｘ≦ｎ）の中から、パラメータＩに応じた第１の鍵Ｋｘ’を選択する。そして、鍵生成部１３５は、選択した鍵を第１の鍵Ｋｘ’として生成する。
【００４９】
ここで、鍵生成部１３５は、最初に選択した第２の鍵Ｋｙ又は第１の鍵Ｋｘ’が、暗号化部１３４又は復号部１３７が必要とする秘密鍵のデータ長と異なる場合には、第２の鍵Ｋｙ又は第１の鍵Ｋｘ’のデータ長を適正なデータ長に調整する機能も有してもよい。例えば、鍵生成部１３５は、鍵生成規則Ａ０を繰り返して生成された鍵を単純に連結する、或いは、鍵生成規則Ａ０で生成された鍵の前、後、又は前後に予め決めたデータ列を付加して調整する等の調整処理を行う。さらに、鍵生成部１３５は、ｎ種類の鍵Ｋｙ（１≦ｙ≦ｎ）の中から、第２の乱数ｒ２とは異なり、新たに乱数生成器１３１で生成された乱数を用いて第２の鍵Ｋｙを選択してもよいし、時刻情報などの再現性の低い情報を基に第２の鍵Ｋｙを選択してもよい。
【００５０】
暗号化部１３４は、鍵生成部１３５によって生成された第２の秘密鍵Ｋｙを用いて、第２の平文情報Ｐ２を暗号化することによって、第２の暗号化情報Ｅ２を生成する。
【００５１】
復号部１３７は、第１の暗号化情報Ｅ１を、鍵生成部１３５によって生成された第１の秘密鍵Ｋｘ’を用いて復号することによって、第１の平文情報Ｐ１’を生成する。なお、復号部１３７は、鍵生成部１３９によるホスト装置１０２の認証が成功するまで、パラメータＩをインクリメントして選択された第１の秘密鍵Ｋｘ’を繰り返し用いて、第１の平文情報Ｐ１’を生成する。
【００５２】
次に、暗号化通信システム１０１によるセッション鍵の共有処理時の動作について、暗号化通信システム１との相違点を中心に説明する。図７〜１０は、暗号化通信システム１０１におけるセッション鍵共有処理時の動作を示すフローチャートである。ここで、暗号化通信が実行される前には、ホスト装置１０２とクライアント装置１０３との間で、キーワード情報Ｋ０及び鍵生成規則Ａ０がファームウェアに組み込む、或いは、初期設定時に記憶させるなどの通信手段を用いない方法で予め共有化されている。さらに、ホスト装置１０２で用いられる変換規則Ａ１及び逆変換規則Ｂ２と、クライアント装置１０３で用いられる変換規則Ｂ１及び逆変換規則Ａ２とが、それぞれ、互いに対応する規則となるように予め設定されている。
【００５３】
まず、図７を参照して、暗号化通信システム１と同様にして、暗号化通信の開始を契機に第１の乱数ｒ１及び平文情報Ｐ１の生成が行われる（ステップＳ５０１〜Ｓ５０２）。次に、ホスト装置１０２の鍵生成部１２５によって、第１の乱数ｒ１とキーワード情報Ｋ０とを参照して、所定の鍵生成規則Ａ０を用いて第１の秘密鍵Ｋｘが生成される（ステップＳ５０３）。その後、暗号化通信システム１と同様にして、暗号化情報Ｅ１の生成及び送信が行われる（ステップＳ５０４〜Ｓ５０５）。
【００５４】
図８に移って、これに対して、クライアント装置１０３のデータ通信部１３６により、ホスト装置１０２から暗号化情報Ｅ１が受信される（ステップＳ６０１）。そして、クライアント装置１０３の鍵生成部１３５により、パラメータＩが初期値ゼロに設定される（ステップＳ６０２）。次に、鍵生成部１３５により、パラメータＩとキーワード情報Ｋ０を参照して、所定の鍵生成規則Ａ０を用いて第１の鍵Ｋｘ’が生成される。（ステップＳ６０３）。そして、暗号化通信システム１と同様にして、平文情報Ｐ１’の生成、平文情報Ｐ１’から乱数候補ｒ１’及びキーワード情報Ｋ０’への逆変換、及びキーワード情報Ｋ０’のキーワード情報Ｋ０との一致判定が行われる（ステップＳ６０４〜Ｓ６０６）。
【００５５】
上記一致判定の結果、キーワード情報が一致していない場合には（ステップＳ６０６；ＮＯ）、秘密鍵Ｋｘ’がホスト装置１０２で用いられた秘密鍵Ｋｘと一致しないか、又はホスト装置１０２が不正な通信相手先であるかのいずれかであると判断される。そして、クライアント装置１０３の鍵生成部１３５により、パラメータＩが鍵生成規則Ａ０により生成可能な鍵数ｎ−１に達しているか否かが判定される（ステップＳ６０７）。判定の結果、パラメータＩがｎ−１に達していない場合には（ステップＳ６０７；ＮＯ）、鍵生成部１３５によりパラメータＩがインクリメントされて（ステップＳ６０８）、ステップＳ６０３に処理が戻されてパラメータIに対応する次の秘密鍵Ｋｘ’に関する一致判定が繰り返される。一方、パラメータＩがｎ−１に達している場合には（ステップＳ６０７；ＹＥＳ）、暗号化通信システム１と同様にして、クライアント装置１０３によってホスト装置１０２が不正な通信相手先であると判断されて、本来返信されるべき暗号化情報Ｅ２と同じデータ長の乱数データが生成されてホスト装置１０２に返信される（ステップＳ６０９）。
【００５６】
ステップＳ６０６における判定の結果、キーワード情報が一致している場合には（ステップＳ６０６；ＹＥＳ）、ホスト装置１０２が正当な通信相手先であると判断される。図９に移って、その後、暗号化通信システム１と同様にして、乱数候補ｒ１’が第１の乱数ｒ１として採用された後、第２の乱数ｒ２の生成、セッション鍵Ｋｓの生成、及び平文情報Ｐ２の生成が実行される（ステップＳ７０１〜Ｓ７０４）。そして、クライアント装置１０３の鍵生成部１３５によって第２の乱数ｒ２とキーワード情報Ｋ０とを参照して、所定の鍵生成規則Ａ０を用いて第２の秘密鍵Ｋｙが生成される（ステップＳ７０５）。その後、暗号化通信システム１と同様にして、秘密鍵Ｋｙを用いて平文情報Ｐ２が暗号化情報Ｅ２に暗号化された後（ステップＳ７０６）、ホスト装置２に向けて暗号化情報Ｅ２が送信される（ステップＳ７０７）。
【００５７】
図１０に移って、これに対して、ホスト装置１０２のデータ通信部１２６により、クライアント装置１０３から暗号化情報Ｅ２が受信される（ステップＳ８０１）。そして、ホスト装置１０２の鍵生成部１２５により、パラメータＩが初期値ゼロに設定される（ステップＳ８０２）。次に、鍵生成部１２５により、パラメータＩとキーワード情報Ｋ０を参照して、所定の鍵生成規則Ａ０を用いて第２の鍵Ｋｙ’が生成される。（ステップＳ８０３）。そして、暗号化通信システム１と同様にして、平文情報Ｐ２’の生成、平文情報Ｐ２’から乱数候補ｒ２’及びキーワード情報Ｋ０’への逆変換、及びキーワード情報Ｋ０’のキーワード情報Ｋ０との一致判定が行われる（ステップＳ８０４〜Ｓ８０６）。
【００５８】
上記一致判定の結果、キーワード情報が一致していない場合には（ステップＳ８０６；ＮＯ）、秘密鍵Ｋｙ’がクライアント装置１０３で用いられた秘密鍵Ｋｙと一致しないか、又はクライアント装置１０３が不正な通信相手先であるかのいずれかであると判断される。そして、ホスト装置１０２の鍵生成部１２５により、パラメータＩが鍵生成規則Ａ０により生成可能な鍵数ｎ−１に達しているか否かが判定される（ステップＳ８０７）。判定の結果、パラメータＩがｎ−１に達していない場合には（ステップＳ８０７；ＮＯ）、鍵生成部１２５によりパラメータＩがインクリメントされて（ステップＳ８０８）、ステップＳ８０３に処理が戻されてパラメータIに対応する次の秘密鍵Ｋｙ’に関する一致判定が繰り返される。一方、パラメータＩがｎ−１に達している場合には（ステップＳ８０７；ＹＥＳ）、暗号化通信システム１と同様にして、ホスト装置１０２によってクライアント装置１０３が不正な通信相手先であると判断されて、暗号化通信が中止される。
【００５９】
ステップＳ８０６における判定の結果、キーワード情報が一致している場合には（ステップＳ８０６；ＹＥＳ）、クライアント装置１０３が正当な通信相手先であると判断される。その後、鍵生成部１２９により、乱数候補ｒ２’が第２の乱数ｒ２として採用される（ステップＳ８０９）。さらに、鍵生成部１２９により、乱数生成器１２１によって生成された第１の乱数ｒ１と第２の乱数ｒ２とを用いて、セッション鍵Ｋｓが生成される（ステップＳ８１０）。
【００６０】
以上説明した暗号化通信システム１０１及びそれを用いた暗号化通信方法によっても、通信路上のホスト装置とクライアント装置間の一往復の簡便な手順で、秘密鍵の安全な共有と相互認証とが実現される。すなわち、悪意のある第三者が通信路上でデータ通信を傍受しても、鍵生成規則Ａ０、情報変換／情報逆変換用規則Ａ１，Ａ２，Ｂ１，Ｂ２、キーワード情報Ｋ０、及び暗号化／復号手順のすべてを知らなければセッション鍵Ｋｓの生成用の情報を知ることはできない。また、セッション鍵Ｋｓの生成アルゴリズムを知らなければその後の暗号化データを復号することもできない。同様に、第三者が通信相手先を装ってホスト装置１０２からの通信データを受信したとしても、鍵生成規則Ａ０、情報変換／情報逆変換用規則Ａ１，Ａ２，Ｂ１，Ｂ２、キーワード情報Ｋ０、及び暗号化／復号手順のすべてを知らなければ、正当な応答データを返信することはできず、通信相手先になりすますことはできない。さらに、第三者がホスト装置１０２を装ってクライアント装置１０３に電文を送った場合、正当な電文で無い場合には乱数を生成して応答するため、その第三者は有意な情報を得ることはできない。また、仮に、キーワード情報Ｋ０が流出したとしても、鍵生成規則Ａ０、情報変換／情報逆変換用規則Ａ１，Ａ２，Ｂ１，Ｂ２、及びセッション鍵Ｋｓの生成アルゴリズムのすべてを知らなければ、セッション鍵Ｋｓを生成して通信データを復号することもできない。
【００６１】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限られるものではない。例えば、上記実施形態の暗号化通信システム１としては、ホスト装置２及びクライアント装置３を含むＩＤカード作成システムを想定していたが、本発明は２つの通信装置間で暗号化通信が実行可能な通信システムに広く適用することができる。
【００６２】
また、鍵生成部２９，３９，１２９，１３９は、生成したセッション鍵Ｋｓのデータ長が暗号化部２４，３４，１２４，１３４及び復号部２７，３７，１２７，１３７の必要とする秘密鍵のデータ長と異なる場合には、セッション鍵Ｋｓのデータ長を適正なデータ長に調整する機能も有してもよい。例えば、セッション鍵Ｋｓを単純に連結する、或いは、セッション鍵Ｋｓの前、後、又は前後に予め決めたデータ列を付加して調整する等の調整処理が挙げられる。
【符号の説明】
【００６３】
１，１０１…暗号化通信システム、２，１０２…ホスト装置（通信装置）、３，１０３…クライアント装置（通信装置）、２１，３１，１２１，１３１…乱数生成器（乱数生成手段）、２２，３２，１２２，１３２…情報変換部（情報変換手段）、２３，３３，１２３，１３３…キーワード情報記憶部（情報記憶手段）、２４，３４，１２４，１３４…暗号化部（暗号化手段）、２５，３５…秘密鍵リスト情報記憶部（情報記憶手段）、１２５，１３５…鍵生成部（鍵生成手段）、２６，３６，１２６，１３６…データ通信部（通信手段）、２７，３７，１２７，１３７…復号部（復号手段）、２８，３８，１２８，１３８…情報逆変換部（情報逆変換手段）、２９，３９，１２９，１３９…鍵生成部（鍵生成手段）。
【図１】
2012050075.tif 000003
【図２】
2012050075.tif 000004
【図３】
2012050075.tif 000005
【図４】
2012050075.tif 000006
【図５】
2012050075.tif 000007
【図６】
2012050075.tif 000008
【図７】
2012050075.tif 000009
【図８】
2012050075.tif 000010
【図９】
2012050075.tif 000011
【図１０】
2012050075.tif 000012