"第1の通信装置と第2の通信装置とを備え、前記第1の通信装置と前記第2の通信装置との間で共通鍵暗号を用いた暗号化通信が可能にされた暗号化通信システムであって、前記第1の通信装置は、第1の乱数を生成する乱数生成手段と、通信相手先の認証用のキーワード情報を保持する情報記憶手段と、前記第1の乱数及び前記キーワード情報を、所定の変換規則によって第1の平文情報に変換する情報変換手段と、前記第1の平文情報を、複数の鍵から選択することによって得られた第1の秘密鍵によって暗号化して、第1の暗号化情報を生成する暗号化手段と、前記第1の暗号化情報を前記第2の通信装置に送信し、前記第2の通信装置から第2の暗号化情報を受信する通信手段と、前記第2の暗号化情報を前記複数の鍵から選択した第2の秘密鍵によって復号して、第2の平文情報を生成する復号手段と、前記第2の平文情報を、前記所定の変換規則に対応する所定の逆変換規則によって、第2の乱数及びキーワード情報に逆変換する情報逆変換手段と、前記情報逆変換手段によって得られた前記キーワード情報が、前記情報記憶手段によって保持された前記キーワード情報に一致した場合に、前記第1及び第2の乱数を用いて、前記第2の通信装置との暗号化通信用のセッション鍵を生成する鍵生成手段と、を有し、前記第2の通信装置は、第2の乱数を生成する乱数生成手段と、通信相手先の認証用のキーワード情報を保持する情報記憶手段と、前記第2の乱数及び前記キーワード情報を、所定の変換規則によって第2の平文情報に変換する情報変換手段と、前記第2の平文情報を、複数の鍵から選択することによって得られた第2の秘密鍵によって暗号化して、第2の暗号化情報を生成する暗号化手段と、前記第2の暗号化情報を前記第1の通信装置に送信し、前記第1の通信装置から第1の暗号化情報を受信する通信手段と、前記第1の暗号化情報を前記複数の鍵から選択した第1の秘密鍵によって復号して、第1の平文情報を生成する復号手段と、前記第1の平文情報を、前記所定の変換規則に対応する所定の逆変換規則によって、第1の乱数及びキーワード情報に逆変換する情報逆変換手段と、前記情報逆変換手段によって得られた前記キーワード情報が、前記情報記憶手段によって保持された前記キーワード情報に一致した場合に、前記第1及び第2の乱数を用いて、前記第1の通信装置との暗号化通信用のセッション鍵を生成する鍵生成手段と、を有することを特徴とする暗号化通信システム。前記第1の通信装置の前記情報記憶手段は、通信相手先の認証用のキーワード情報、及び複数の秘密鍵の組合せを保持し、前記第1の通信装置の前記暗号化手段は、前記第1の平文情報を、前記複数の秘密鍵の組合せから選択した第1の秘密鍵によって暗号化し、前記第1の通信装置の前記復号手段は、前記第2の暗号化情報を前記複数の秘密鍵の組合せから選択した第2の秘密鍵によって復号し、前記第2の通信装置の前記情報記憶手段は、通信相手先の認証用のキーワード情報、及び複数の秘密鍵の組合せを保持し、前記第2の通信装置の前記暗号化手段は、前記第2の平文情報を、前記複数の秘密鍵の組合せから選択した第2の秘密鍵によって暗号化し、前記第2の通信装置の前記復号手段は、前記第1の暗号化情報を前記複数の秘密鍵の組合せから選択した第1の秘密鍵によって復号する、ことを特徴とする請求項1記載の暗号化通信システム。前記第1の通信装置は、前記通信相手先の認証用のキーワード情報から所定の鍵生成規則によって生成可能な複数の鍵の中から秘密鍵を選択する鍵生成手段をさらに備え、前記第1の通信装置の前記暗号化手段は、前記第1の平文情報を、前記鍵生成手段によって選択された第1の秘密鍵によって暗号化し、前記第1の通信装置の前記復号手段は、前記第2の暗号化情報を前記鍵生成手段によって選択された第2の秘密鍵によって復号し、前記第2の通信装置は、前記通信相手先の認証用のキーワード情報から前記所定の鍵生成規則によって生成可能な複数の鍵の中から秘密鍵を選択する鍵生成手段をさらに備え、前記第2の通信装置の前記暗号化手段は、前記第2の平文情報を、前記鍵生成手段によって選択された第2の秘密鍵によって暗号化し、前記第2の通信装置の前記復号手段は、前記第1の暗号化情報を前記鍵生成手段によって選択された第1の秘密鍵によって復号する、ことを特徴とする請求項1記載の暗号化通信システム。第1の通信装置と第2の通信装置との間で共通鍵暗号を用いた暗号化通信を行う暗号化通信方法であって、前記第1及び第2の通信装置が、それぞれ、第1及び第2の乱数を生成する乱数生成ステップと、前記第1及び第2の通信装置が、通信相手先の認証用のキーワード情報を保持する情報記憶ステップと、前記第1の通信装置が、前記第1の乱数及び前記キーワード情報を、所定の変換規則によって第1の平文情報に変換する情報変換ステップと、前記第1の通信装置が、前記第1の平文情報を、複数の鍵から選択することによって得られた第1の秘密鍵によって暗号化して、第1の暗号化情報を生成する暗号化ステップと、前記第1の通信装置が、前記第1の暗号化情報を前記第2の通信装置に送信する通信ステップと、前記第2の通信装置が、前記第1の暗号化情報を複数の鍵から選択した第1の秘密鍵によって復号して、第1の平文情報を生成する復号ステップと、前記第2の通信装置が、前記第1の平文情報を、前記所定の変換規則に対応する所定の逆変換規則によって、第1の乱数及びキーワード情報に逆変換する情報逆変換ステップと、前記第2の通信装置が、前記情報逆変換ステップによって得られた前記キーワード情報が、前記情報記憶ステップによって保持された前記キーワード情報に一致した場合に、前記第1及び第2の乱数を用いて、前記第1の通信装置との暗号化通信用のセッション鍵を生成する鍵生成ステップと、前記第2の通信装置が、前記第2の乱数及び前記キーワード情報を、所定の変換規則によって第2の平文情報に変換する情報変換ステップと、前記第2の通信装置が、前記第2の平文情報を、複数の鍵から選択することによって得られた第2の秘密鍵によって暗号化して、第2の暗号化情報を生成する暗号化ステップと、前記第2の通信装置が、前記第2の暗号化情報を前記第1の通信装置に送信する通信ステップと、前記第1の通信装置が、前記第2の暗号化情報を複数の鍵から選択した第2の秘密鍵によって復号して、第2の平文情報を生成する復号ステップと、前記第1の通信装置が、前記第2の平文情報を、前記所定の変換規則に対応する所定の逆変換規則によって、第2の乱数及びキーワード情報に逆変換する情報逆変換ステップと、前記第1の通信装置が、前記情報逆変換ステップによって得られた前記キーワード情報が、前記情報記憶ステップによって保持された前記キーワード情報に一致した場合に、前記第1及び第2の乱数を用いて、前記第2の通信装置との暗号化通信用のセッション鍵を生成する鍵生成ステップと、を備えることを特徴とする暗号化通信方法。しかしながら、上記特許文献2,3に記載された共通鍵暗号化方法では、送信装置及び受信装置間で秘密鍵の共有を必要とするため、その秘密鍵を安全に共有するための処理が複雑化するという問題があった。そこで、本発明は、かかる課題に鑑みて為されたものであり、簡便な手順で秘密鍵の安全な共有を可能にする暗号化通信システム及び暗号化通信方法を提供することを目的とする。上記課題を解決するため、本発明の暗号化通信システムは、第1の通信装置と第2の通信装置とを備え、第1の通信装置と第2の通信装置との間で共通鍵暗号を用いた暗号化通信が可能にされた暗号化通信システムであって、第1の通信装置は、第1の乱数を生成する乱数生成手段と、通信相手先の認証用のキーワード情報を保持する情報記憶手段と、第1の乱数及びキーワード情報を、所定の変換規則によって第1の平文情報に変換する情報変換手段と、第1の平文情報を、複数の鍵から選択することによって得られた第1の秘密鍵によって暗号化して、第1の暗号化情報を生成する暗号化手段と、第1の暗号化情報を第2の通信装置に送信し、第2の通信装置から第2の暗号化情報を受信する通信手段と、第2の暗号化情報を複数の鍵から選択した第2の秘密鍵によって復号して、第2の平文情報を生成する復号手段と、第2の平文情報を、所定の変換規則に対応する所定の逆変換規則によって、第2の乱数及びキーワード情報に逆変換する情報逆変換手段と、情報逆変換手段によって得られたキーワード情報が、情報記憶手段によって保持されたキーワード情報に一致した場合に、第1及び第2の乱数を用いて、第2の通信装置との暗号化通信用のセッション鍵を生成する鍵生成手段と、を有し、第2の通信装置は、第2の乱数を生成する乱数生成手段と、通信相手先の認証用のキーワード情報を保持する情報記憶手段と、第2の乱数及びキーワード情報を、所定の変換規則によって第2の平文情報に変換する情報変換手段と、第2の平文情報を、複数の鍵から選択することによって得られた第2の秘密鍵によって暗号化して、第2の暗号化情報を生成する暗号化手段と、第2の暗号化情報を第1の通信装置に送信し、第1の通信装置から第1の暗号化情報を受信する通信手段と、第1の暗号化情報を複数の鍵から選択した第1の秘密鍵によって復号して、第1の平文情報を生成する復号手段と、第1の平文情報を、所定の変換規則に対応する所定の逆変換規則によって、第1の乱数及びキーワード情報に逆変換する情報逆変換手段と、情報逆変換手段によって得られたキーワード情報が、情報記憶手段によって保持されたキーワード情報に一致した場合に、第1及び第2の乱数を用いて、第1の通信装置との暗号化通信用のセッション鍵を生成する鍵生成手段と、を有する。或いは、本発明の暗号化通信方法は、第1の通信装置と第2の通信装置との間で共通鍵暗号を用いた暗号化通信を行う暗号化通信方法であって、第1及び第2の通信装置が、それぞれ、第1及び第2の乱数を生成する乱数生成ステップと、第1及び第2の通信装置が、通信相手先の認証用のキーワード情報を保持する情報記憶ステップと、第1の通信装置が、第1の乱数及びキーワード情報を、所定の変換規則によって第1の平文情報に変換する情報変換ステップと、第1の通信装置が、第1の平文情報を、複数の鍵から選択することによって得られた第1の秘密鍵によって暗号化して、第1の暗号化情報を生成する暗号化ステップと、第1の通信装置が、第1の暗号化情報を第2の通信装置に送信する通信ステップと、第2の通信装置が、第1の暗号化情報を複数の鍵から選択した第1の秘密鍵によって復号して、第1の平文情報を生成する復号ステップと、第2の通信装置が、第1の平文情報を、所定の変換規則に対応する所定の逆変換規則によって、第1の乱数及びキーワード情報に逆変換する情報逆変換ステップと、第2の通信装置が、情報逆変換手段によって得られたキーワード情報が、情報記憶手段によって保持されたキーワード情報に一致した場合に、第1及び第2の乱数を用いて、第1の通信装置との暗号化通信用のセッション鍵を生成する鍵生成ステップと、第2の通信装置が、第2の乱数及びキーワード情報を、所定の変換規則によって第2の平文情報に変換する情報変換ステップと、第2の通信装置が、第2の平文情報を、複数の鍵から選択することによって得られた第2の秘密鍵によって暗号化して、第2の暗号化情報を生成する暗号化ステップと、第2の通信装置が、第2の暗号化情報を第1の通信装置に送信する通信ステップと、第1の通信装置が、第2の暗号化情報を複数の鍵から選択した第2の秘密鍵によって復号して、第2の平文情報を生成する復号ステップと、第1の通信装置が、第2の平文情報を、所定の変換規則に対応する所定の逆変換規則によって、第2の乱数及びキーワード情報に逆変換する情報逆変換ステップと、第1の通信装置が、情報逆変換手段によって得られたキーワード情報が、情報記憶手段によって保持されたキーワード情報に一致した場合に、第1及び第2の乱数を用いて、第2の通信装置との暗号化通信用のセッション鍵を生成する鍵生成ステップと、を備える。本発明に係る暗号化通信システム、或いは暗号化通信方法によれば、第1の通信装置が、第1の乱数及びキーワード情報を第1の平文情報に変換した後に、第1の平文情報を複数の鍵の中から選択した第1の秘密鍵によって暗号化して第1の暗号化情報を生成し、その第1の暗号化情報を第2の通信装置に送信する。これに対して、第2の通信装置が、第1の暗号化情報を同じ複数の鍵の中から選択した第1の秘密鍵によって復号して第1の平文情報を生成した後に、第1の平文情報を逆変換して第1の乱数及びキーワード情報を取得し、キーワード情報があらかじめ保持しておいたキーワード情報と一致した際に、第1の乱数、及び自ら生成した第2の乱数を用いてセッション鍵を生成する。これにより、キーワード情報による第1の装置の認証と、セッション鍵生成用の第1の乱数の安全な受け渡しとが、キーワードの共有によって同時に可能にされる。また、第2の通信装置が、第2の乱数及びキーワード情報を第2の平文情報に変換した後に、第2の平文情報を複数の鍵の中から選択した第2の秘密鍵によって暗号化して第2の暗号化情報を生成し、その第2の暗号化情報を第1の通信装置に送信する。これに対して、第1の通信装置が、第2の暗号化情報を同じ複数の鍵の中から選択した第2の秘密鍵によって復号して第2の平文情報を生成した後に、第2の平文情報を逆変換して第2の乱数及びキーワード情報を取得し、キーワード情報があらかじめ保持しておいたキーワード情報と一致した際に、第2の乱数、及び自ら生成した第1の乱数を用いてセッション鍵を生成する。これにより、キーワード情報による第2の装置の認証と、セッション鍵生成用の第2の乱数の安全な受け渡しとが、キーワードの共有によって同時に可能にされる。その結果、通信路上の一往復の簡便な手順で、秘密鍵の安全な共有と相互認証とが実現される。本発明によれば、簡便な手順で秘密鍵の安全な共有を可能にする暗号化通信システム及び暗号化通信方法を提供することができる。以下、本発明の一実施形態に係る暗号化通信システム及び暗号化通信方法について図面を参照しながら説明する。[第1実施形態]図1に示すように、暗号化通信システム1は、情報通信装置であるホスト装置2及びクライアント装置3を備え、ホスト装置2とクライアント装置3とがLANLocalAreaNetworkやWANWideAreaNetwork等の通信ネットワークNWを介して互いに暗号化されたデータの送受信、すなわち暗号化通信が可能なように構成されている。このような暗号化通信システム1の例としては、コンピュータ端末とネットワークプリンタによって構成され、コンピュータ端末からネットワークプリンタに対してIDカード印刷用の個人情報、またはIDカード記録用の個人情報を送信するIDカード作成システムが挙げられる。まず、ホスト装置2の各構成要素の機能について詳細に説明する。ホスト装置2は、機能的な構成要素として、乱数生成器乱数生成手段21、情報変換部情報変換手段22、キーワード情報記憶部情報記憶手段23、暗号化部暗号化手段24、秘密鍵リスト情報記憶部情報記憶手段25、データ通信部通信手段26、復号部復号手段27、情報逆変換部情報逆変換手段28、及び鍵生成部鍵生成手段29を備えている。乱数生成器21は、ホスト装置2とクライアント装置3との間での暗号化通信に用いるセッション鍵秘密鍵の共有処理時に、第1の乱数r1を生成する。乱数生成器21は、生成した乱数r1を情報変換部22に渡す。情報変換部22は、乱数r1と、キーワード情報記憶部23から読み出したキーワード情報K0とを、所定の変換規則A1を用いて第1の平文情報P1に変換する。このキーワード情報K0は、クライアント装置3との間で互いの通信相手先の認証を行うための情報であり、予めキーワード情報記憶部23に保持されている。ここでいう所定の変換規則A1としては、例えば、乱数r1とキーワード情報K0とをこの順で連結したビット列に変換する規則や、乱数r1とキーワード情報K0とを1ビットずつ交互に連結したビット列に変換する規則等が挙げられる。情報変換部22は、変換した第1の平文情報P1を暗号化部24に引き渡す。暗号化部24は、第1の平文情報P1を、秘密鍵リスト情報記憶部25から読み出して選択した第1の秘密鍵を用いて、共通鍵暗号を用いて暗号化することによって、第1の暗号化情報E1を生成する。この秘密鍵リスト情報記憶部25には、クライアント装置3との間で共有された秘密鍵リストLが予め保持されており、秘密鍵リストLには、10~20個程度の複数の秘密鍵の組合せK1,K2,...,Knnは自然数が含まれている。すなわち、暗号化部24は、秘密鍵リストLからランダムに選択した第1の秘密鍵Kx1≦x≦nを用いて第1の平文情報P1を暗号化する。そして、暗号化部24は、暗号化した第1の暗号化情報E1をデータ通信部26に渡す。データ通信部26は、暗号化部24から渡された暗号化情報E1を、クライアント装置3に送信する。また、データ通信部26は、ホスト装置2とクライアント装置3との間でのセッション鍵の共有処理の最中に、クライアント装置3から第2の暗号化情報E2を受信し、受信した暗号化情報E2を復号部27に引き渡す。暗号化部24、データ通信部26、及び復号部27は、ホスト装置2とクライアント装置3との間でのセッション鍵の共有処理の終了後に、生成されたセッション鍵Ksを用いてクライアント装置3との間で共通鍵暗号を用いた暗号化通信を実行する。復号部27は、データ通信部26から渡された第2の暗号化情報E2を、秘密鍵リスト情報記憶部25に保持された秘密鍵リストLから選択した第2の秘密鍵Ky’1≦y’≦nを用いて、共通鍵暗号を用いて復号することによって、第2の平文情報P2’を生成する。この復号部27は、第2の平文情報P2’の生成を、後述する鍵生成部29による通信相手先であるクライアント装置3の認証が成功するまで、秘密鍵リストL中から第2の秘密鍵Ky’1≦y’≦nを選択し直しながら繰り返し行う。また、復号部27は、生成した第2の平文情報P2’を情報逆変換部28に引き渡す。情報逆変換部28は、第2の平文情報P2’を、所定の逆変換規則B2を用いて第2の乱数候補r2’とキーワード情報K0’とに逆変換する。この所定の逆変換規則B2は、後述するクライアント装置3の情報変換部32によって用いられる変換規則B1に対応するものである。例えば、変換規則B1が乱数r2とキーワード情報K0とを連結したビット列に変換する規則である場合は、逆変換規則B2は、第2の平文情報P2’を構成するビット列を分離して乱数候補r2’とキーワード情報K0’とに再生するような規則である。また、情報逆変換部28は、逆変換した乱数候補r2’とキーワード情報K0’とを鍵生成部29に引き渡す。鍵生成部29は、情報逆変換部28によって再生されたキーワード情報K0’が、予めキーワード情報記憶部23に保持されたキーワード情報K0に一致するか否かを判定することによって、クライアント装置3を認証する。そして、鍵生成部29は、キーワード情報K0’がキーワード情報K0に一致した場合、すなわち、正しい秘密鍵Kyで第2の暗号化情報E2が復号され、かつ、クライアント装置3の正当性の認証が成功した場合には、乱数生成器21によって生成された第1の乱数r1と、情報逆変換部28によって再生された第2の乱数候補r2’とを用いて、クライアント装置3との暗号化通信用のセッション鍵Ksを生成する。例えば、鍵生成部29は、第1の乱数r1と第2の乱数候補r2’とをXOR演算することによってセッション鍵Ksを生成してもよいし、第1の乱数r1と第2の乱数候補r2’とを1バイトずつ交互に連結することによってセッション鍵Ksを生成してもよい。また、鍵生成部29は、生成したセッション鍵Ksを暗号化部24及び復号部27に引き渡す。次に、クライアント装置3の各構成要素の機能について詳細に説明する。クライアント装置3は、機能的な構成要素として、乱数生成器乱数生成手段31、情報変換部情報変換手段32、キーワード情報記憶部情報記憶手段33、暗号化部暗号化手段34、秘密鍵リスト情報記憶部情報記憶手段35、データ通信部通信手段36、復号部復号手段37、情報逆変換部情報逆変換手段38、及び鍵生成部鍵生成手段39を備えている。乱数生成器31は、ホスト装置2とクライアント装置3との間での暗号化通信に用いるセッション鍵秘密鍵の共有処理時に、第2の乱数r2を生成する。乱数生成器31は、生成した乱数r2を情報変換部32に渡す。情報変換部32は、乱数r2と、キーワード情報記憶部33から読み出したキーワード情報K0とを、所定の変換規則B1を用いて第2の平文情報P2に変換する。このキーワード情報K0は、ホスト装置2のキーワード情報記憶部23に保持された情報と同一の通信相手先認証用の情報であり、予めキーワード情報記憶部33に保持されている。ここでいう所定の変換規則B1としては、例えば、乱数r2とキーワード情報K0とをこの順で連結したビット列に変換する規則や、乱数r2とキーワード情報K0とを1ビットずつ交互に連結したビット列に変換する規則等が挙げられる。情報変換部32は、変換した第2の平文情報P2を暗号化部34に引き渡す。暗号化部34は、第2の平文情報P2を、秘密鍵リスト情報記憶部35から読み出して選択した第2の秘密鍵を用いて、ホスト装置2と同一の共通鍵暗号方式を用いて暗号化することによって、第2の暗号化情報E2を生成する。この秘密鍵リスト情報記憶部35には、ホスト装置2との間で共有された秘密鍵リストLが予め保持されており、秘密鍵リストLには、10~20個程度の複数の秘密鍵の組合せK1,K2,...,Knnは自然数が含まれている。すなわち、暗号化部34は、秘密鍵リストLからランダムに選択した第2の秘密鍵Ky1≦y≦nを用いて第2の平文情報P2を暗号化する。そして、暗号化部34は、暗号化した第2の暗号化情報E2をデータ通信部36に渡す。データ通信部36は、暗号化部34から渡された暗号化情報E2を、ホスト装置2に送信する。また、データ通信部36は、ホスト装置2とクライアント装置3との間でのセッション鍵の共有処理の最中に、ホスト装置2から第1の暗号化情報E1を受信し、受信した暗号化情報E1を復号部37に引き渡す。暗号化部34、データ通信部36、及び復号部37は、ホスト装置2とクライアント装置3との間でのセッション鍵の共有処理の終了後に、生成されたセッション鍵Ksを用いてホスト装置2との間で共通鍵暗号を用いた暗号化通信を実行する。復号部37は、データ通信部36から渡された第1の暗号化情報E1を、秘密鍵リスト情報記憶部35に保持された秘密鍵リストLから選択した第1の秘密鍵Kx’1≦x’≦nを用いて、ホスト装置2と同一の共通鍵暗号方式を用いて復号することによって、第1の平文情報P1’を生成する。この復号部37は、第1の平文情報P1’の生成を、後述する鍵生成部39による通信相手先であるホスト装置2の認証が成功するまで、秘密鍵リストL中から第1の秘密鍵Kx’1≦x’≦nを選択し直しながら繰り返し行う。また、復号部37は、生成した第1の平文情報P1’を情報逆変換部38に引き渡す。情報逆変換部38は、第1の平文情報P1’を、所定の逆変換規則A2を用いて第1の乱数候補r1’とキーワード情報K0’とに逆変換する。この所定の逆変換規則A2は、ホスト装置2の情報変換部22によって用いられる変換規則A1に対応するものである。例えば、変換規則A1が乱数r1とキーワード情報K0とを連結したビット列に変換する規則である場合は、逆変換規則A2は、第1の平文情報P1’を構成するビット列を分離して乱数候補r1’とキーワード情報K0’とに再生するような規則である。また、情報逆変換部38は、逆変換した乱数候補r1’とキーワード情報K0’とを鍵生成部39に引き渡す。鍵生成部39は、情報逆変換部38によって再生されたキーワード情報K0’が、予めキーワード情報記憶部33に保持されたキーワード情報K0に一致するか否かを判定することによって、ホスト装置2を認証する。そして、鍵生成部39は、キーワード情報K0’がキーワード情報K0に一致した場合、すなわち、正しい秘密鍵Kxで第1の暗号化情報E1が復号され、かつ、ホスト装置2の正当性の認証が成功した場合には、乱数生成器31によって生成された第2の乱数r2と、情報逆変換部38によって再生された第1の乱数候補r1’とを用いて、ホスト端末2との暗号化通信用のセッション鍵Ksを生成する。例えば、鍵生成部39は、第1の乱数候補r1’と第2の乱数r2とをXOR演算することによってセッション鍵Ksを生成してもよいし、第1の乱数候補r1’と第2の乱数r2とを1バイトずつ交互に連結することによってセッション鍵Ksを生成してもよい。ただし、このセッション鍵Ksの生成アルゴリズムは、ホスト装置2の鍵生成部29の生成アルゴリズムと同一になるように予め組み込まれる。また、鍵生成部39は、生成したセッション鍵Ksを暗号化部34及び復号部37に引き渡す。以下、暗号化通信システム1によるセッション鍵の共有処理時の動作について説明するとともに、本実施形態にかかる暗号化通信方法について詳述する。図2~5は、暗号化通信システム1におけるセッション鍵共有処理時の動作を示すフローチャートである。ここで、暗号化通信が実行される前には、ホスト装置2とクライアント装置3との間で、秘密鍵リストL及びキーワード情報K0とが、ファームウェアに組み込む、或いは、初期設定時に記憶させるなどの通信手段を用いない方法で予め共有化されている。さらに、ホスト装置2で用いられる変換規則A1及び逆変換規則B2と、クライアント装置3で用いられる変換規則B1及び逆変換規則A2とが、それぞれ、互いに対応する規則となるように予め設定されている。まず、図2を参照して、暗号化通信の開始を契機に、ホスト装置2の乱数生成器21によって第1の乱数r1が生成されるステップS101。次に、ホスト装置2の情報変換部22によって、乱数r1と、キーワード情報記憶部23から読み出したキーワード情報K0とが、所定の変換規則A1を用いて平文情報P1に変換されるステップS102。そして、ホスト装置2の暗号化部24によって秘密鍵リストLからランダムに秘密鍵Kxが選択されるステップS103。このとき、秘密鍵Kxは、乱数生成器21によって発生させた乱数r1又は別の乱数を使用したり、時刻情報などの再現性のない情報を使用して選択される。その後、ホスト装置2の暗号化部24によって、秘密鍵Kxを用いた共通鍵暗号方式によって、平文情報P1が暗号化情報E1に暗号化されるステップS104。そして、ホスト装置2のデータ通信部26によって、クライアント装置3に向けて、暗号化情報E1が送信されるステップS105。図3に移って、これに対して、クライアント装置3のデータ通信部36により、ホスト装置2から暗号化情報E1が受信されるステップS201。次に、クライアント装置3の復号部37により、秘密鍵リストLから最初の秘密鍵Kx’が選択されるステップS202。そして、復号部37により、最初の秘密鍵Kx’を用いた共通鍵暗号によって暗号化情報E1が復号され、平文情報P1’が生成されるステップS203。その後、クライアント装置3の情報逆変換部38により、所定の逆変換規則A2を用いて、平文情報P1’が乱数候補r1’とキーワード情報K0’とに逆変換されるステップS204。さらに、クライアント装置3の鍵生成部39により、得られたキーワード情報K0’が、キーワード情報記憶部33に保持されているキーワード情報K0に一致するか否かが判定されるステップS205。上記の判定の結果、キーワード情報が一致していない場合にはステップS205;NO、秘密鍵Kx’がホスト装置2で用いられた秘密鍵Kxと一致しないか、又はホスト装置2が不正な通信相手先であるかのいずれかであると判断される。そして、クライアント装置3の復号部37により、秘密鍵リストLから選択した秘密鍵Kx’が最後のものであるかが判定されるステップS206。判定の結果、秘密鍵Kx’が最後のものでない場合にはステップS206;NO、復号部37により次の秘密鍵Kx’が選択されてステップS207、ステップS203に処理が戻される。一方、秘密鍵Kx’が最後のものである場合にはステップS206;YES、クライアント装置3によってホスト装置2が不正な通信相手先であると判断されて、受信した暗号化情報E1が破棄された後、データ通信部36によって、ホスト装置2に本来返信されるべき暗号化情報E2と同じデータ長の乱数データが生成されてホスト装置2に返信されるステップS208。これにより、悪意のある第三者が通信路をモニタした際の挙動を、正常時と異常時とで同様な状態とすることができる。ステップS205における判定の結果、キーワード情報が一致している場合にはステップS205;YES、ホスト装置2が正当な通信相手先であると判断される。図4に移って、その後、鍵生成部39により、乱数候補r1’が第1の乱数r1として採用されるステップS301。次に、クライアント装置3の乱数生成器31によって第2の乱数r2が生成されるステップS302。さらに、鍵生成部39により、第1の乱数r1と第2の乱数r2とを用いて、セッション鍵Ksが生成されるステップS303。次に、クライアント装置3の情報変換部32によって、乱数r2と、キーワード情報記憶部33から読み出したキーワード情報K0とが、所定の変換規則B1を用いて平文情報P2に変換されるステップS304。そして、クライアント装置3の暗号化部34によって秘密鍵リストLからランダムに秘密鍵Kyが選択されるステップS305。このとき、秘密鍵Kyは、乱数生成器31によって発生させた乱数r2又は別の乱数を使用したり、時刻情報などの再現性のない情報を使用して選択される。その後、クライアント装置3の暗号化部34によって、秘密鍵Kyを用いた共通鍵暗号方式によって、平文情報P2が暗号化情報E2に暗号化されるステップS306。そして、クライアント装置3のデータ通信部36によって、ホスト装置2に向けて、暗号化情報E2が送信されるステップS307。図5に移って、これに対して、ホスト装置2のデータ通信部26により、クライアント装置3から暗号化情報E2が受信されるステップS401。次に、ホスト装置2の復号部27により、秘密鍵リストLから最初の秘密鍵Ky’が選択されるステップS402。そして、復号部27により、最初の秘密鍵Ky’を用いた共通鍵暗号によって暗号化情報E2が復号され、平文情報P2’が生成されるステップS403。その後、ホスト装置2の情報逆変換部28により、所定の逆変換規則B2を用いて、平文情報P2’が乱数候補r2’とキーワード情報K0’とに逆変換されるステップS404。さらに、ホスト装置2の鍵生成部29により、得られたキーワード情報K0’が、キーワード情報記憶部23に保持されているキーワード情報K0に一致するか否かが判定されるステップS405。上記の判定の結果、キーワード情報が一致していない場合にはステップS405;NO、秘密鍵Ky’がクライアント装置3で用いられた秘密鍵Kyと一致しないか、又はクライアント装置3が不正な通信相手先であるかのいずれかであると判断される。そして、ホスト装置2の復号部27により、秘密鍵リストLから選択した秘密鍵Ky’が最後のものであるかが判定されるステップS406。判定の結果、秘密鍵Ky’が最後のものでない場合にはステップS406;NO、復号部27により次の秘密鍵Ky’が選択されてステップS407、ステップS403に処理が戻される。一方、秘密鍵Ky’が最後のものである場合にはステップS406;YES、ホスト装置2によってクライアント装置3が不正な通信相手先であると判断されて、暗号化通信が中止される。ステップS405における判定の結果、キーワード情報が一致している場合にはステップS405;YES、クライアント装置3が正当な通信相手先であると判断される。その後、鍵生成部29により、乱数候補r2’が第2の乱数r2として採用されるステップS408。さらに、鍵生成部29により、乱数生成器21によって生成された第1の乱数r1と第2の乱数r2とを用いて、セッション鍵Ksが生成されるステップS409。このようにして生成及び共有化されたセッション鍵Ksは、ホスト装置2とクライアント装置3間での共通鍵暗号方式による以降の暗号化通信において用いられる。このセッション鍵Ksは、図2~図5に示した鍵交換処理が次に実行されるまで有効となる。以上説明した暗号化通信システム1及び暗号化通信方法によれば、ホスト装置2が、第1の乱数r1及びキーワード情報K0を第1の平文情報P1に変換した後に、第1の平文情報P1を秘密鍵リストLから選択した第1の秘密鍵Kxによって暗号化して暗号化情報E1を生成し、その暗号化情報E1をクライアント装置3に送信する。これに対して、クライアント装置3が、暗号化情報E1を秘密鍵リストLから選択した第1の秘密鍵Kx’によって復号して第1の平文情報P1’を生成した後に、第1の平文情報P1’を逆変換して第1の乱数候補r1’及びキーワード情報K0’を取得し、キーワード情報K0’があらかじめ保持しておいたキーワード情報K0と一致した際に、第1の乱数候補r1’、及び自ら生成した第2の乱数r2を用いてセッション鍵Ksを生成する。これにより、キーワード情報による通信相手先装置の認証と、セッション鍵生成用の乱数の安全な受け渡しとが、キーワード及び秘密鍵の組合せの共有によって同時に可能にされる。また、クライアント装置3が、第2の乱数r2及びキーワード情報K0を第2の平文情報P2に変換した後に、第2の平文情報P2を秘密鍵リストLから選択した第2の秘密鍵Kyによって暗号化して暗号化情報E2を生成し、その暗号化情報E2をホスト装置2に送信する。これに対して、ホスト装置2が、暗号化情報E2を秘密鍵リストLから選択した第2の秘密鍵Ky’によって復号して第2の平文情報P2’を生成した後に、第2の平文情報P2’を逆変換して第2の乱数候補r2’及びキーワード情報K0’を取得し、キーワード情報K0’があらかじめ保持しておいたキーワード情報K0と一致した際に、第2の乱数候補r2’、及び自ら生成した第1の乱数r1を用いてセッション鍵Ksを生成する。これにより、キーワード情報による通信相手先の認証と、セッション鍵生成用の第2の乱数の安全な受け渡しとが、キーワード及び秘密鍵の組合せの共有によって同時に可能にされる。その結果、通信路上のホスト装置とクライアント装置間の一往復の簡便な手順で、秘密鍵の安全な共有と相互認証とが実現される。すなわち、悪意のある第三者が通信路上でデータ通信を傍受しても、情報変換/情報逆変換用規則A1,A2,B1,B2、キーワード情報K0、秘密鍵リストL、及び暗号化/復号手順のすべてを知らなければセッション鍵Ksの生成用の情報を知ることはできない。また、セッション鍵Ksの生成アルゴリズムを知らなければその後の暗号化データを復号することもできない。同様に、第三者が通信相手先を装ってホスト装置2からの通信データを受信したとしても、情報変換/情報逆変換用規則A1,A2,B1,B2、キーワード情報K0、秘密鍵リストL、及び暗号化/復号手順のすべてを知らなければ、正当な応答データを返信することはできず、通信相手先になりすますことはできない。さらに、第三者がホスト装置2を装ってクライアント装置3に電文を送った場合、正当な電文で無い場合には乱数を生成して応答するため、その第三者は有意な情報を得ることはできない。また、仮に、キーワード情報K0、秘密鍵リストLが流出したとしても、情報変換/情報逆変換用規則A1,A2,B1,B2、及びセッション鍵Ksの生成アルゴリズムのすべてを知らなければ、セッション鍵Ksを生成して通信データを復号することもできない。[第2実施形態]次に、本発明の第2実施形態について説明する。図6に示す本発明の第2実施形態である暗号化通信システム101は、秘密鍵リスト情報記憶部25,35の代わりに鍵生成部125,135を備える点と、暗号化部124,134及び復号部127,137の機能とが、第1実施形態にかかる暗号化通信システム1と異なる。以下、暗号化通信システム101の暗号化通信システム1との相違点を中心に説明する。鍵生成部125は、乱数生成器121によって生成された第1の乱数r1と、キーワード情報記憶部123から読み出したキーワード情報K0とを参照して、所定の鍵生成規則A0を用いて第1の秘密鍵Kxを生成する。この鍵生成規則A0は、キーワード情報K0と乱数r1との組み合わせにより一意に複数のn種類の第1の鍵Kx1≦x≦nを生成可能な計算アルゴリズムである。例えば、キーワード情報K0をk個kは整数に分割して、それぞれの分割後データを第1の乱数r1に対応した順列で並べ替えて鍵を生成する方法や、キーワード情報K0に含まれるビット列等のデータ列を第1の乱数r1に対応してシフトするなどの計算アルゴリズムが挙げられる。すなわち、鍵生成部125は、キーワード情報K0から鍵生成規則A0で生成可能なn種類の鍵Kx1≦x≦nの中から、第1の乱数r1に応じた第1の鍵Kxを選択する。また、鍵生成部125は、繰り返しインクリメントされるパラメータIIは整数を用いて、キーワード情報K0から所定の鍵生成規則A0を用いて生成可能なn種類の鍵Ky1≦y≦nの中から、パラメータIに応じた第2の鍵Ky’を選択する。そして、鍵生成部125は、選択した鍵を第2の鍵Ky’として生成する。ここで、鍵生成部125は、最初に選択した第1の鍵Kx又は第2の鍵Ky’が、暗号化部124又は復号部127が必要とする秘密鍵のデータ長と異なる場合には、第1の鍵Kxの又は第2の鍵Ky’のデータ長を適正なデータ長に調整する機能も有してもよい。例えば、鍵生成部125は、鍵生成規則A0を繰り返して生成された鍵を単純に連結する、或いは、鍵生成規則A0で生成された鍵の前、後、又は前後に予め決めたデータ列を付加して調整する等の調整処理を行う。さらに、鍵生成部125は、n種類の鍵Kx1≦x≦nの中から、第1の乱数r1とは異なり、新たに乱数生成器121で生成された乱数を用いて第1の鍵Kxを選択してもよいし、時刻情報などの再現性の低い情報を基に第1の鍵Kxを選択してもよい。暗号化部124は、鍵生成部125によって生成された第1の秘密鍵Kxを用いて、第1の平文情報P1を暗号化することによって、第1の暗号化情報E1を生成する。復号部127は、第2の暗号化情報E2を、鍵生成部125によって生成された第2の秘密鍵Ky’を用いて復号することによって、第2の平文情報P2’を生成する。なお、復号部127は、鍵生成部129によるクライアント装置103の認証が成功するまで、パラメータIをインクリメントして選択された第2の秘密鍵Ky’を繰り返し用いて、第2の平文情報P2’を生成する。鍵生成部135は、乱数生成器131によって生成された第2の乱数r2と、キーワード情報記憶部133から読み出したキーワード情報K0とを参照して、所定の鍵生成規則A0を用いて第2の秘密鍵Kyを生成する。この鍵生成規則A0は、ホスト装置102の鍵生成部125が用いるのと同一の計算アルゴリズムである。すなわち、鍵生成部135は、キーワード情報K0から鍵生成規則A0で生成可能なn種類の鍵Ky1≦y≦nの中から、第2の乱数r2に応じた第2の鍵Kyを選択する。また、鍵生成部135は、繰り返しインクリメントされるパラメータIIは整数を用いて、キーワード情報K0から所定の鍵生成規則A0を用いて生成可能なn種類の鍵Kx1≦x≦nの中から、パラメータIに応じた第1の鍵Kx’を選択する。そして、鍵生成部135は、選択した鍵を第1の鍵Kx’として生成する。ここで、鍵生成部135は、最初に選択した第2の鍵Ky又は第1の鍵Kx’が、暗号化部134又は復号部137が必要とする秘密鍵のデータ長と異なる場合には、第2の鍵Ky又は第1の鍵Kx’のデータ長を適正なデータ長に調整する機能も有してもよい。例えば、鍵生成部135は、鍵生成規則A0を繰り返して生成された鍵を単純に連結する、或いは、鍵生成規則A0で生成された鍵の前、後、又は前後に予め決めたデータ列を付加して調整する等の調整処理を行う。さらに、鍵生成部135は、n種類の鍵Ky1≦y≦nの中から、第2の乱数r2とは異なり、新たに乱数生成器131で生成された乱数を用いて第2の鍵Kyを選択してもよいし、時刻情報などの再現性の低い情報を基に第2の鍵Kyを選択してもよい。暗号化部134は、鍵生成部135によって生成された第2の秘密鍵Kyを用いて、第2の平文情報P2を暗号化することによって、第2の暗号化情報E2を生成する。復号部137は、第1の暗号化情報E1を、鍵生成部135によって生成された第1の秘密鍵Kx’を用いて復号することによって、第1の平文情報P1’を生成する。なお、復号部137は、鍵生成部139によるホスト装置102の認証が成功するまで、パラメータIをインクリメントして選択された第1の秘密鍵Kx’を繰り返し用いて、第1の平文情報P1’を生成する。次に、暗号化通信システム101によるセッション鍵の共有処理時の動作について、暗号化通信システム1との相違点を中心に説明する。図7~10は、暗号化通信システム101におけるセッション鍵共有処理時の動作を示すフローチャートである。ここで、暗号化通信が実行される前には、ホスト装置102とクライアント装置103との間で、キーワード情報K0及び鍵生成規則A0がファームウェアに組み込む、或いは、初期設定時に記憶させるなどの通信手段を用いない方法で予め共有化されている。さらに、ホスト装置102で用いられる変換規則A1及び逆変換規則B2と、クライアント装置103で用いられる変換規則B1及び逆変換規則A2とが、それぞれ、互いに対応する規則となるように予め設定されている。まず、図7を参照して、暗号化通信システム1と同様にして、暗号化通信の開始を契機に第1の乱数r1及び平文情報P1の生成が行われるステップS501~S502。次に、ホスト装置102の鍵生成部125によって、第1の乱数r1とキーワード情報K0とを参照して、所定の鍵生成規則A0を用いて第1の秘密鍵Kxが生成されるステップS503。その後、暗号化通信システム1と同様にして、暗号化情報E1の生成及び送信が行われるステップS504~S505。図8に移って、これに対して、クライアント装置103のデータ通信部136により、ホスト装置102から暗号化情報E1が受信されるステップS601。そして、クライアント装置103の鍵生成部135により、パラメータIが初期値ゼロに設定されるステップS602。次に、鍵生成部135により、パラメータIとキーワード情報K0を参照して、所定の鍵生成規則A0を用いて第1の鍵Kx’が生成される。ステップS603。そして、暗号化通信システム1と同様にして、平文情報P1’の生成、平文情報P1’から乱数候補r1’及びキーワード情報K0’への逆変換、及びキーワード情報K0’のキーワード情報K0との一致判定が行われるステップS604~S606。上記一致判定の結果、キーワード情報が一致していない場合にはステップS606;NO、秘密鍵Kx’がホスト装置102で用いられた秘密鍵Kxと一致しないか、又はホスト装置102が不正な通信相手先であるかのいずれかであると判断される。そして、クライアント装置103の鍵生成部135により、パラメータIが鍵生成規則A0により生成可能な鍵数n-1に達しているか否かが判定されるステップS607。判定の結果、パラメータIがn-1に達していない場合にはステップS607;NO、鍵生成部135によりパラメータIがインクリメントされてステップS608、ステップS603に処理が戻されてパラメータIに対応する次の秘密鍵Kx’に関する一致判定が繰り返される。一方、パラメータIがn-1に達している場合にはステップS607;YES、暗号化通信システム1と同様にして、クライアント装置103によってホスト装置102が不正な通信相手先であると判断されて、本来返信されるべき暗号化情報E2と同じデータ長の乱数データが生成されてホスト装置102に返信されるステップS609。ステップS606における判定の結果、キーワード情報が一致している場合にはステップS606;YES、ホスト装置102が正当な通信相手先であると判断される。図9に移って、その後、暗号化通信システム1と同様にして、乱数候補r1’が第1の乱数r1として採用された後、第2の乱数r2の生成、セッション鍵Ksの生成、及び平文情報P2の生成が実行されるステップS701~S704。そして、クライアント装置103の鍵生成部135によって第2の乱数r2とキーワード情報K0とを参照して、所定の鍵生成規則A0を用いて第2の秘密鍵Kyが生成されるステップS705。その後、暗号化通信システム1と同様にして、秘密鍵Kyを用いて平文情報P2が暗号化情報E2に暗号化された後ステップS706、ホスト装置2に向けて暗号化情報E2が送信されるステップS707。図10に移って、これに対して、ホスト装置102のデータ通信部126により、クライアント装置103から暗号化情報E2が受信されるステップS801。そして、ホスト装置102の鍵生成部125により、パラメータIが初期値ゼロに設定されるステップS802。次に、鍵生成部125により、パラメータIとキーワード情報K0を参照して、所定の鍵生成規則A0を用いて第2の鍵Ky’が生成される。ステップS803。そして、暗号化通信システム1と同様にして、平文情報P2’の生成、平文情報P2’から乱数候補r2’及びキーワード情報K0’への逆変換、及びキーワード情報K0’のキーワード情報K0との一致判定が行われるステップS804~S806。上記一致判定の結果、キーワード情報が一致していない場合にはステップS806;NO、秘密鍵Ky’がクライアント装置103で用いられた秘密鍵Kyと一致しないか、又はクライアント装置103が不正な通信相手先であるかのいずれかであると判断される。そして、ホスト装置102の鍵生成部125により、パラメータIが鍵生成規則A0により生成可能な鍵数n-1に達しているか否かが判定されるステップS807。判定の結果、パラメータIがn-1に達していない場合にはステップS807;NO、鍵生成部125によりパラメータIがインクリメントされてステップS808、ステップS803に処理が戻されてパラメータIに対応する次の秘密鍵Ky’に関する一致判定が繰り返される。一方、パラメータIがn-1に達している場合にはステップS807;YES、暗号化通信システム1と同様にして、ホスト装置102によってクライアント装置103が不正な通信相手先であると判断されて、暗号化通信が中止される。ステップS806における判定の結果、キーワード情報が一致している場合にはステップS806;YES、クライアント装置103が正当な通信相手先であると判断される。その後、鍵生成部129により、乱数候補r2’が第2の乱数r2として採用されるステップS809。さらに、鍵生成部129により、乱数生成器121によって生成された第1の乱数r1と第2の乱数r2とを用いて、セッション鍵Ksが生成されるステップS810。以上説明した暗号化通信システム101及びそれを用いた暗号化通信方法によっても、通信路上のホスト装置とクライアント装置間の一往復の簡便な手順で、秘密鍵の安全な共有と相互認証とが実現される。すなわち、悪意のある第三者が通信路上でデータ通信を傍受しても、鍵生成規則A0、情報変換/情報逆変換用規則A1,A2,B1,B2、キーワード情報K0、及び暗号化/復号手順のすべてを知らなければセッション鍵Ksの生成用の情報を知ることはできない。また、セッション鍵Ksの生成アルゴリズムを知らなければその後の暗号化データを復号することもできない。同様に、第三者が通信相手先を装ってホスト装置102からの通信データを受信したとしても、鍵生成規則A0、情報変換/情報逆変換用規則A1,A2,B1,B2、キーワード情報K0、及び暗号化/復号手順のすべてを知らなければ、正当な応答データを返信することはできず、通信相手先になりすますことはできない。さらに、第三者がホスト装置102を装ってクライアント装置103に電文を送った場合、正当な電文で無い場合には乱数を生成して応答するため、その第三者は有意な情報を得ることはできない。また、仮に、キーワード情報K0が流出したとしても、鍵生成規則A0、情報変換/情報逆変換用規則A1,A2,B1,B2、及びセッション鍵Ksの生成アルゴリズムのすべてを知らなければ、セッション鍵Ksを生成して通信データを復号することもできない。以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限られるものではない。例えば、上記実施形態の暗号化通信システム1としては、ホスト装置2及びクライアント装置3を含むIDカード作成システムを想定していたが、本発明は2つの通信装置間で暗号化通信が実行可能な通信システムに広く適用することができる。また、鍵生成部29,39,129,139は、生成したセッション鍵Ksのデータ長が暗号化部24,34,124,134及び復号部27,37,127,137の必要とする秘密鍵のデータ長と異なる場合には、セッション鍵Ksのデータ長を適正なデータ長に調整する機能も有してもよい。例えば、セッション鍵Ksを単純に連結する、或いは、セッション鍵Ksの前、後、又は前後に予め決めたデータ列を付加して調整する等の調整処理が挙げられる。"