(57)【要約】クライアント（１）とサーバ（２）は、それぞれパターンテーブル（１１，２１）を有し、クライアント（１）は、公開鍵をパターンテーブル（１１）から読み出してデータ（Ｄ１）を暗号化し、暗号文（Ｄ２）を作成する。その後、暗号化に使用した公開鍵に対応するパターン番号（Ｄ３）を暗号文（Ｄ２）に付加してサーバ（２）に送信する。サーバ（２）は、暗号文（Ｄ２）に付加されたパターン番号（Ｄ３）をもとにパターンテーブル（２１）を検索し、暗号化に使用された公開鍵と秘密鍵の組み合わせを特定する。このパターン番号（Ｄ１）によって特定された秘密鍵を用いて暗号文（Ｄ２）を復号することで、元のデータ（Ｄ１）を読み出す。
2004105310.tif 000002
【特許請求の範囲】
【請求項１】
データを暗号化して送信する暗号化装置であって、
自局に固有に割り当てられた暗号方式を記憶する記憶手段と、
前記記憶手段が記憶した暗号方式を用いて前記データを暗号化し、暗号文を作成する暗号文作成手段と、
を備えたことを特徴とする暗号化装置。
【請求項２】
前記暗号文作成手段が用いた暗号方式を指定するパターン情報を前記暗号文に付加するパターン情報付加手段をさらに備え、前記記憶手段は、複数の暗号方式を記憶し、前記暗号文作成手段は、該複数の暗号方式から前記データの暗号化に使用する暗号方式を選択することを特徴とする請求の範囲第１項に記載の暗号化装置。
【請求項３】
前記暗号方式は公開鍵暗号に用いる公開鍵であり、前記暗号文作成手段は、該公開鍵を用いて前記データを暗号化することを特徴とする請求の範囲第１項または第２項に記載の暗号化装置。
【請求項４】
暗号文を受信して元のデータに復号する復号化装置であって、
該受信した暗号文から、暗号化に用いられた暗号方式を特定する暗号方式特定手段と、
前記暗号方式特定手段によって特定した暗号方式を用いて前記暗号文を復号する復号手段と、
を備えたことを特徴とする復号化装置。
【請求項５】
前記暗号方式は公開鍵暗号に用いる公開鍵と秘密鍵との組み合わせであり、前記復号手段は、前記暗号方式特定手段が特定した公開鍵暗号に対応する秘密鍵を用いて前記データを復号することを特徴とする請求の範囲第４項に記載の復号化装置。
【請求項６】
データを暗号化して送信する暗号化方法であって、
自局に固有に割り当てられた暗号方式を記憶する記憶工程と、
前記記憶工程によって記憶した暗号方式を用いて前記データを暗号化し、暗号文を作成する暗号文作成工程と、
を含んだことを特徴とする暗号化方法。
【請求項７】
前記暗号文作成工程が用いた暗号方式を指定するパターン情報を前記暗号文に付加するパターン情報付加工程をさらに含み、前記記憶工程は、複数の暗号方式を記憶し、前記暗号文作成工程は、該複数の暗号方式から前記データの暗号化に使用する暗号方式を選択することを特徴とする請求の範囲第６項に記載の暗号化方法。
【請求項８】
前記暗号方式は公開鍵暗号に用いる公開鍵であり、前記暗号文作成工程は、該公開鍵を用いて前記データを暗号化することを特徴とする請求の範囲第６項または第７項に記載の暗号化方法。
【請求項９】
暗号文を受信して元のデータに復号する復号化方法であって、
該受信した暗号文から、暗号化に用いられた暗号方式を特定する暗号方式特定工程と、
前記暗号方式特定工程によって特定した暗号方式を用いて前記暗号文を復号する復号工程と、
を含んだことを特徴とする復号化方法。
【請求項１０】
前記暗号方式は公開鍵暗号に用いる公開鍵と秘密鍵との組み合わせであり、前記復号工程は、前記暗号方式特定工程が特定した公開鍵暗号に対応する秘密鍵を用いて前記データを復号することを特徴とする請求の範囲第９項に記載の復号化方法。
【請求項１１】
データを暗号化して送信する暗号化方法をコンピュータに実行させる暗号化プログラムであって、
自局に固有に割り当てられた暗号方式を記憶する記憶手順と、
前記記憶手順によって記憶した暗号方式を用いて前記データを暗号化し、暗号文を作成する暗号文作成手順と、
をコンピュータに実行させることを特徴とする暗号化プログラム。
【請求項１２】
前記暗号文作成手順が用いた暗号方式を指定するパターン情報を前記暗号文に付加するパターン情報付加手順をさらに含み、前記記憶手順は、複数の暗号方式を記憶し、前記暗号文作成手順は、該複数の暗号方式から前記データの暗号化に使用する暗号方式を選択することを特徴とする請求の範囲第１１項に記載の暗号化プログラム。
【請求項１３】
前記暗号方式は公開鍵暗号に用いる公開鍵であり、前記暗号文作成手順は、該公開鍵を用いて前記データを暗号化することを特徴とする請求の範囲第１１項または第１２項に記載の暗号化プログラム。
【請求項１４】
暗号文を受信して元のデータに復号する復号化方法をコンピュータに実行させる復号化プログラムであって、
該受信した暗号文から、暗号化に用いられた暗号方式を特定する暗号方式特定手順と、
前記暗号方式特定手順によって特定した暗号方式を用いて前記暗号文を復号する復号手順と、
をコンピュータに実行させることを特徴とする復号化プログラム。
【請求項１５】
前記暗号方式は公開鍵暗号に用いる公開鍵と秘密鍵との組み合わせであり、前記復号手順は、前記暗号方式特定手順が特定した公開鍵暗号に対応する秘密鍵を用いて前記データを復号することを特徴とする請求の範囲第１４項に記載の復号化プログラム。
【発明の詳細な説明】
【技術分野】  この発明は、データ通信等においてデータを暗号化・復号化する暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラムおよび復号化プログラムに関し、特に通信の安全性を向上し、処理負荷を軽減した暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラムおよび復号化プログラムに関する。
【背景技術】  近年、インターネットなどのネットワーク技術の発達に伴い、各種重要な情報がネットワークを介して送受信されている。このようなオープンネットワークを介して情報を送受信する場合、送受信されるデータの改竄や盗聴、なりすましを防止するためのセキュリティ技術が重要となる。
そこで、現在、暗号を利用したセキュアな通信技術が考案されている。例えば、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）は、クライアント−サーバ間の通信をソケットレベルで暗号化する通信プロトコルであり、公開鍵暗号や共通鍵暗号、ディジタル証明書を組み合わせることで、データの改竄や盗聴、なりすましを防止している（非特許文献１参照。）。
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｖｅｒｉｓｉｇｎ．ｃｏ．ｊｐ／ｒｅｐｏｓｉｔｏｒｙ／ｆａｑ／ＳＳＬ／
このＳＳＬを用いてサーバがクライアントを認証する場合、まず、公開鍵暗号を用いて共通鍵を共有し、この共有鍵を使用した共通鍵暗号によって通信をおこなっていた。
しかしながら、このような従来の認証では、目的とするデータ通信（共通鍵暗号による通信）の前に共通鍵を共有するための通信（公開鍵暗号による通信）が必要であるために、認証に要する時間や処理負荷、通信負荷が増大するという問題点があった。さらには通信回数が増加することにより、改竄、盗聴、なりすましの機会が増えるというセキュリティ上の問題があった。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、通信の安全性を向上し、処理負荷を軽減した暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラムおよび復号化プログラムを提供することを目的とする。
【発明の開示】
上述した課題を解決し、目的を達成するため、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、データを暗号化して送信する場合に、自局に固有に割り当てられた暗号方式を記憶し、記憶した暗号方式を用いてデータを暗号化することで暗号文を作成することを特徴とする。
この発明によれば、自局に固有に割り当てられた暗号方式を利用することで、使用している暗号方式を秘匿して暗号通信を行うことができ、通信の安全性を向上して暗号化・復号化の処理負荷を軽減することができる。
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、暗号文作成時に用いた暗号方式を指定するパターン情報を暗号文に付加して送信することを特徴とする。
この発明によれば、暗号化に使用した暗号方式を、パターン情報によって送信先に通知することができるので、簡易な構成で通信の安全性を向上して暗号化・復号化の処理負荷を軽減することができる。
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、複数の暗号方式を記憶し、この複数の暗号方式からデータの暗号化に使用する暗号方式を選択することを特徴とする。
この発明によれば、通信ごとに使用する暗号方式を変更することができるので、通信の安全性をさらに向上することができる。
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、複数の暗号方式を記憶し、この複数の暗号方式からデータの暗号化に使用する暗号方式を選択するとともに、暗号文作成時に用いた暗号方式を指定するパターン情報を暗号文に付加して送信することを特徴とする。
この発明によれば、通信ごとに使用する暗号方式を変更することができ、暗号文化に使用した暗号方式を、パターン情報によって送信先に通知することができるので、簡易な構成で通信の安全性をさらに向上することができる。
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、暗号方式として公開鍵暗号を用いてデータを暗号化することを特徴とする。
この発明によれば、公開鍵を秘匿して暗号通信を行うことで、少ない桁数の鍵で強固な暗号通信を実現し、暗号化・復号化の処理負荷を軽減することができる。
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、ＲＳＡ（Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｌｅｍａｎ）暗号を用いることを特徴とする。
この発明によれば、ＲＳＡ暗号において、公開鍵を秘匿して通信を行うことで、少ない桁数の鍵で強固な暗号通信を実現し、暗号化・復号化の処理負荷を軽減することができる。
また、本発明に係る復号化装置、復号化方法および復号化プログラムは、暗号文を受信して元のデータに復号する場合に、受信した暗号文から、暗号化に用いられた暗号方式を特定し、特定した暗号方式を用いて暗号文を復号することを特徴とする。
この発明によれば、暗号文から暗号化に用いられた暗号方式を特定することで、使用している暗号方式を秘匿して暗号通信を行うことができ、通信の安全性を向上して暗号化・復号化の処理負荷を軽減することができる。
また、本発明に係る復号化装置、復号化方法および復号化プログラムは、受信した暗号文に付加されたパターン情報を取り出し、このパターン情報から暗号方式の特定を行うことを特徴とする。
この発明によれば、暗号化に使用された暗号方式を、暗号文に付加されたパターン情報から特定することができるので、簡易な構成で通信の安全性を向上して暗号化・復号化の処理負荷を軽減することができる。
また、本発明に係る復号化装置、復号化方法および復号化プログラムは、暗号文の送信元を特定し、この特定された送信元から暗号方式の特定を行うことを特徴とする。
この発明によれば、暗号化に使用された暗号方式を、暗号文の送信元から特定することができるので、通信の安全性をさらに向上することができる。
また、本発明に係る復号化装置、復号化方法および復号化プログラムは、公開鍵暗号に用いる公開鍵と秘密鍵との組み合わせを暗号方式として用い、特定した公開鍵に対応する秘密鍵を用いてデータを復号することを特徴とする。
この発明によれば、公開鍵を秘匿して暗号通信を行うことで、少ない桁数の鍵で強固な暗号通信を実現し、暗号化・復号化の処理負荷を軽減することができる。
また、本発明に係る復号化装置、復号化方法および復号化プログラムは、ＲＳＡ暗号を用いることを特徴とする。
この発明によれば、ＲＳＡ暗号において、公開鍵を秘匿して通信を行うことで、少ない桁数の鍵で強固な暗号通信を実現し、暗号化・復号化の処理負荷を軽減することができる。
【図面の簡単な説明】  第１図は、本発明における暗号通信の概念を説明する説明図であり、第２図は、本発明の実施の形態１における暗号通信システムの概要構成を説明する概要構成図であり、第３図は、パターンテーブルの具体例について説明する説明図であり、第４図は、クライアントの処理動作を説明するフローチャートであり、第５図は、サーバ２の処理動作を説明するフローチャートであり、第６図は、文字列を暗号化して通信する場合におけるパターンテーブルについて説明する図であり、第７図は、文字列の暗号化の具体例を示す図であり、第８図は、本発明の実施の形態２にかかる暗号通信システムの概要構成を説明する概要構成図であり、第９図は、クライアント５０の処理動作を説明するフローチャートであり、第１０図は、サーバ６０の処理動作を説明するフローチャートであり、第１１図は、クライアントとパターンとの対応関係を説明する説明図であり、第１２図は、クライアント認証キー、パターン番号、公開鍵および秘密鍵の対応を説明する図であり、第１３図は、パターンの更新方法の一例を説明する図であり、第１４図は、サーバにおけるパターンテーブルの復元処理の一例を示す図である。
【発明を実施するための最良の形態】  以下に添付図面を参照して、この発明に係る暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラムおよび復号化プログラムの好適な実施の形態を詳細に説明する。
（実施の形態１）
まず、本発明における暗号通信の概念について説明する。第１図は、本発明における暗号通信の概念を説明する説明図である。同図に示すように、クライアント１およびサーバ２は、それぞれパターンテーブル１１，２１を有する。サーバ２が有するパターンテーブル２１は、ＲＳＡ暗号に用いる公開鍵と秘密鍵のセットを記憶し、公開鍵と秘密鍵のセットにパターン番号を割り当てている。また、クライアント１が有するパターンテーブル１１は、パターン番号と公開鍵とを記憶している。
クライアント１は、データＤ１を送信する場合に、パターンテーブル１１から使用する公開鍵を選択し、選択した公開鍵を用いてデータＤ１を暗号化することで暗号文Ｄ２を作成する。さらに、クライアント１は、使用した公開鍵に対応するパターン番号Ｄ３を暗号文Ｄ２に付加してサーバ２に送信する。
一方、サーバ２は、暗号文Ｄ２およびパターン番号Ｄ３を受信した場合に、受信したパターン番号Ｄ３をもとにパターンテーブル２１を検索し、暗号化に使用された公開鍵を特定する。その後、特定した公開鍵に対応する秘密鍵によって暗号文Ｄ２を復号してデータＤ１を取り出す。
ここで、公開鍵と秘密鍵を用いたＲＳＡ暗号について説明する。ＲＳＡ暗号は、素数ではない大きな自然数の素因数分解が困難であることに基づいている。具体的には、任意の大きな２つの素数ｐ，ｑを選び、その積をｎとする（ｎ＝ｐｑ）。オイラーの定理から導いたオイラー関数φ（ｎ）は次のように定義される。
φ（ｎ）＝（ｐ−１）（ｑ−１）
このφ（ｎ）と互いに素となる数ｋを選ぶ。このｎとｋが公開鍵となる。つぎに、
１＝ｈｋ×ｍｏｄφ（ｎ）
を満たす整数ｈを計算する。このｈが秘密鍵となる。平文をＭ、暗号文をＣとすると、Ｍ＜ｎであれば、以下の関係が成立する。
Ｃ＝ＭＫｍｏｄｎ
Ｍ＝Ｃｈｍｏｄｎ
この関係を用いることで、秘密鍵ｈが分からなければ、公開鍵ｋ，ｎが分かったとしても公開鍵から秘密鍵を算出するには膨大な計算が要求されることとなる。特に、桁数の鍵を大きくすることで、秘密鍵の算出はさらに困難なものとなる。
一般に用いられるＲＳＡ暗号はこの特性を利用し、公開鍵を誰でも入手可能にしておき、秘密鍵を秘匿することで通信のセキュリティを保っている。しかし、上述のように、公開鍵からの秘密鍵の算出は、困難ではあるが不可能ではない。そこで、公開鍵が誰でも入手できる状態であるならば、通信の安全性は鍵の桁数によって定まるので、十分な桁数の鍵を用いることが必要である。
一方、本発明における暗号通信では、公開鍵はクライアントに対してのみ公開され、他の端末に対しては秘匿される。さらに、クライアントがどの公開鍵を用いて暗号化したかは、パターン番号によって示される。すなわち、データ通信において公開鍵が晒されることがないので、少ない桁数で強固な暗号通信を実現することができる。
換言するならば、ＲＳＡ暗号方式を利用する便宜上、公開鍵、秘密鍵との言葉を使用するが、本発明における公開鍵は、共通鍵暗号における共通鍵と同様に他の端末に対して秘匿されるものである。
つぎに、本実施の形態における暗号通信システムの具体的な構成について説明する。第２図は、本実施の形態における暗号通信システムの概要構成を説明する概要構成図である。同図に示すように、クライアント１はネットワーク３を介してサーバ２に接続される。また、クライアント１と同様の構成を有するクライアント４や、その他の図示しないクライアントがネットワーク３を介してサーバ３に接続される。
クライアント１は、送信データ作成部１３、暗号文作成部１２およびパターンテーブル１１を有する。送信データ作成部１３は、サーバ２に送信する元データを作成する処理部であり、例えばクライアント１とサーバ２との間で認証を行う場合であれば、認証要求データを作成する。
暗号文作成部１２は、送信データ作成部１３が作成したデータを暗号化する処理部であり、その内部にパターン選択部１２ａ、暗号化処理部１２ｂ、パターン番号付加部１２ｃを有する。パターン選択部１２ａは、パターンテーブル１１から暗号化に用いる公開鍵を選択し、暗号化処理部１２ｂは、送信データ作成部１３が作成したデータを、パターン選択部１２ａによって選択された公開鍵を用いて暗号化した暗号文を作成する。さらにパターン番号付加部１２ｃは、使用した公開鍵に対応するパターン番号を付加する処理をおこなう。
一方、サーバ２は、データ受信部２３、復号部２２、パターンテーブル２１を有する。データ受信部２３は、クライアントから暗号文を受信する処理部であり、受信した暗号文を復号部２２に送信する。復号部２２は、データ受信部２３が受信した暗号文を復号化する処理部であり、その内部にパターン認識部２２ａ、秘密鍵選択部２２ｂ、復号処理部２２ｃを有する。パターン認識部２２ａは、暗号文に付加されたパターン番号を読み出す。秘密鍵選択部２２ｂは、パターン認識部２２ａが読み出したパターン番号を用いて暗号化に使用された公開鍵を特定し、対応する秘密鍵を選択する。復号処理部２２ｃは、この秘密鍵選択部２２ｂによって選択された秘密鍵を用いて暗号文を復号する処理をおこなう。
つぎに、パターンテーブル１１，２１についてさらに説明する。パターンテーブルは、公開鍵と暗号鍵のセットにパターン番号を対応させたテーブルである。具体的には、上述した「ｋ」と「ｎ」の組み合わせを公開鍵をとして記憶し、「ｈ」を秘密鍵として記憶している。また、パターンテーブルは公開鍵および暗号鍵に変えて、暗号化・復号化に用いるパラメータ、すなわち上述の「ｐ」、「ｑ」、「ｋ」のセットを記憶するようにしてもよい
第３図は、パターンテーブルの具体例について説明する説明図である。第３図（ａ）に示したパターンテーブル３１は、公開鍵として公開指数「ｋ」および係数「ｎ」を、秘密鍵として「ｈ」を記憶している。たとえば、パターン番号「１０１」によって示されるパターンでは、公開指数が「５」、係数が「９１」、秘密鍵が「２９」である。また、パターン番号「１０２」によって示されるパターンでは、公開指数が「５」、係数が「１４５」、秘密鍵が「４５」である。同様に、パターン番号「１０３」は公開指数が「７」、係数が「１１９」、秘密鍵が「５５」の組み合わせを示し、パターン番号「１０４」は公開指数が「３」、係数が「１１１１」、秘密鍵が「４６７」の組み合わせを示す。
一方、第３図（ｂ）に示したパターンテーブル３２は、パターン番号に対してパラメータ「ｐ」、「ｑ」、「ｋ」の組み合わせを対応させて記憶している。たとえば、パターン番号「００１」によって示されるパターンでは、「ｐ＝７，ｑ＝１３，ｋ＝５」である。また、パターン番号「００２」によって示されるパターンでは、「ｐ＝２９，ｑ＝５，ｋ＝５」である。同様に、パターン番号「００３」によって示されるパターンでは、「ｐ＝７，ｑ＝１７，ｋ＝７」であり、パターン番号「００４」によって示されるパターンでは、「ｐ＝１０１，ｑ＝１１，ｋ＝３」である。
サーバ２は、各クライアントが使用する全てのパターンについて、このパターン番号、公開鍵、秘密鍵の組み合わせ、もしくはパターン番号とパラメータの組み合わせを記憶する。一方、各クライアントは、このパターンテーブルの一部、すなわち自局が使用するパターンのみを記憶する。また、各クライアントは秘密鍵を記憶する必要は無く、パターン番号と公開鍵の組み合わせをパターンテーブルとして記憶すればよい。
このように、各クライアントに自局が使用するパターンのみを記憶させ、さらに秘密鍵をクライアント側に記憶させないようにすることで、暗号通信の強度を高めることができる。
つぎに、この第３図に示したパターンテーブルを参照し、暗号文作成の具体例を説明する。例えば、パターンテーブル３１に示したパターン１０４を使用し、文字「ａ」の暗号化を行う場合、「ａ」のコードは「０ｘ６１」であり、このコードを１０進数に変換すると「９７」である。この文字「ａ」を示すデータ「９７」を平文Ｍとし、パターン１０４である「ｋ＝３，ｎ＝１１１１」を使用すると、ＭＫｍｏｄｎ＝Ｃから
（９７）３ｍｏｄ（１１１１）＝５４２
となり、暗号文は「５４２」となる。
また、パターンテーブル３２に示したパターン００２を使用し、文字「ａ」の暗号化を行う場合、「ａ」のコードを１０進数に変換した「９７」を平文Ｍとし、パターン００２である「ｐ＝２９，ｑ＝５，ｋ＝５」を使用すると、ＭＫｍｏｄ（ｐｑ）＝Ｃから
（９７）５ｍｏｄ（２９×５）＝３７
となり、暗号文は「３７」となる。
このように、所定のパターンを用いて暗号化した後、使用したパターンの番号を付加して送信することで、サーバ側ではパターン番号をもとに復号に使用する秘密鍵を特定することができる。
つぎに、第２図に示したクライアント１の具体的な処理動作について説明する。第４図は、クライアント１の処理動作を説明するフローチャートである。同図に示すように、クライアント１は、送信データ作成部１３が送信データを作成したならば（ステップＳ１０１）、パターン選択部１２ａが使用するパターンを選択する（ステップＳ１０２）。つづいて、暗号化処理部１２ｂは、選択したパターンに対応する秘密鍵を読み出し（ステップＳ１０３）、送信データを暗号化する（ステップＳ１０４）。その後、パターン番号付加部１２ｃは、暗号化したデータに使用したパターン番号を付加して（ステップＳ１０５）、暗号化したデータ（暗号文）を送信する（ステップＳ１０６）。
つづいて、第２図に示したサーバ２の具体的な処理動作について説明する。第５図は、サーバ２の処理動作を説明するフローチャートである。同図に示すように、サーバ２は、データ受信部２３がクライアントからデータを受信したならば（ステップＳ２０１）、パターン認識部２２ａが受信したデータからパターン番号を取得する（ステップＳ２０２）。さらに、秘密鍵選択部２２ｂがパターン番号から暗号化に使用された公開鍵と秘密鍵とのセットを特定し、対応する秘密鍵を読み出す（ステップＳ２０３）。その後、復号処理部２２ｃは、読み出した秘密鍵を用いて暗号文を復号し、元のデータを取り出して（ステップＳ２０４）処理を終了する。
上述してきたように、本実施の形態１では、公開鍵と秘密鍵のセットに対してパターン番号を設定してパターンテーブルを作成してクライアントとサーバの間で共有し、クライアントがデータを暗号化する際に使用した公開鍵に対応するパターン番号を暗号文に付加して送信することで、通信ネットワークに公開鍵を晒すことなく公開鍵暗号方式を利用した通信を行うことができる。
また、公開鍵を秘匿することで少ない桁数で強固な暗号通信を実現することができるので、暗号化・復号化にかかる処理負荷を軽減することができる。特に、クライアント−サーバ間の認証に用いた場合、クライアントから直接に認証要求を送信することができるので、通信回数を抑え、セキュリティの向上と認証にかかる時間の短縮を実現できる。
ところで、以上の説明では一文字のデータを暗号化して送信する場合について説明したが、このように一文字ずつ暗号化して送信する場合に限らず、文字列を暗号化して送信する場合についても本発明を利用することができる。
文字列を暗号化して送信する場合、文字間を区分するために、一文字あたりの桁数を定めるようにすればよい。第６図は、文字列を暗号化して通信する場合におけるパターンテーブルについて説明する図である。同図に示すように、第６図（ａ）に示したパターンテーブル４１は、第３図に示したパターンテーブル３１に桁数のデータを追加したテーブルであり、第６図（ｂ）に示したパターンテーブル４２は、第３図に示したパターンテーブル３２に桁数のデータを追加したテーブルである。
文字列を暗号化する場合、文字列に含まれるそれぞれの文字を暗号化した後、パターンテーブルに指定された桁数に揃える。第７図に文字列の暗号化の具体例を示す。第７図（ａ）に示した元のデータＤ１は、「１２３４５６７８９ＡＢ」である。この「１」をパターン００２で暗号化すると「２４」、桁数を３に合わせると「０２４」となる。また、「２」をパターン００２で暗号化すると「６０」、桁数を３に合わせると「０６０」となる。この様にデータＤ１に含まれる文字を順次暗号化し、それぞれの桁数を３に調整することで、暗号文Ｄ２を作成することができる。暗号文を送信する場合には、暗号文Ｄ２の末尾に使用したパターンを示すパターン番号「００２」を付加すればよい。
また、サーバ２における復号化では、暗号文末尾のパターン番号を識別し、そのパターンに定められた桁数を知ることができるので、この桁数を元に暗号文を文字単位に分割して復号することができる。
このように文字列を暗号化して通信することにより、クライアント−サーバ間の通信回数をさらに抑制し、通信回線の負荷を軽減するとともにセキュリティ強度を高めることができる。
また、暗号強度をさらに高めるためには、通信ごとに異なるパターンを用いることが望ましい。このためにはクライアント側のパターンテーブルに複数のパターンを記憶させておき、通信ごとに異なるパターンを選択すればよい。サーバ側は、暗号文に付加されたパターン番号によって復号に用いるべき秘密鍵を特定することができるので、クライアントが毎回異なる公開鍵を用いたとしても暗号文を正確に復号することができる。
（実施の形態２）
ところで、上述した実施の形態１では、暗号文にパターン番号を付加することで暗号化に用いたパターンをサーバ側に伝えるようにしているが、本実施の形態２では、クライアントを識別して復号化に使用するパターンを特定する暗号通信システムについて説明する。
第８図は、本実施の形態２にかかる暗号通信システムの概要構成を説明する概要構成図である。同図に示すようにクライアント５０はネットワーク３を介してサーバ６０に接続されている。また、実施の形態１に示した暗号通信システムと同様に、クライアント４や図示しないクライアントがネットワーク３を介してサーバ６０に接続されている。
クライアント５０は、送信データ作成部１３、暗号文作成部５２およびパターンテーブル５１を有する。送信データ作成部１３は、サーバに送信するデータを作成する処理部である。また、パターンテーブル５１は、公開鍵にパターン番号を対応させたパターンテーブルを記憶している。
暗号文作成部５２は、暗号化処理部５２ａを有する。この暗号文作成部５２は、パターンテーブル５１に記憶した公開鍵を用いて暗号文を作成し、サーバ６０に送信する。ここで、クライアント５０は、暗号化に用いた公開鍵を示すパターン番号を付加しない。
一方、サーバ６０は、データ受信部２３、復号部６２およびパターンテーブル６１を有する。データ受信部２３は、ネットワーク３を介して暗号文を受信して復号部６２に送信する。パターンテーブル６１は、公開鍵と秘密鍵のセットにパターン番号を付与して記憶するとともに、各クライアントを特定する情報、例えばＩＰアドレスとパターン番号を対応付けて記憶している。
復号部６２は、その内部にクライアント認識部６２ａ、パターン特定部６２ｂ、秘密鍵選択部６２ｃおよび復号処理部６２ｄを有する。クライアント認識部６２ａは、暗号文を受信した場合に、ＩＰアドレスなどを参照して送信元のクライアントの認識をおこなう。また、パターン認識部６２ｂは、クライアント認識部６２ａによる認識結果をもとに、暗号化に使用されたパターンを特定する。また、秘密鍵選択部６２ｃは、パターン特定部６２ｂが特定したパターンをもとに秘密鍵を選択する。復号処理部６２ｄはこの秘密鍵を用いて暗号文を復号する。
すなわち、この実施の形態２に示した暗号通信システムでは、クライアントが記憶しているパターンをサーバ側に登録しておき、サーバはＩＰアドレスやＭＡＣアドレスなどを用いてクライアントを識別し、クライアントが使用する可能性のあるパターンから復号に用いる秘密鍵を選択するようにしている。
そのため、クライアントは暗号文にパターン番号を付加する必要がなく、ネットワーク上には暗号文のみが流れることとなるため、さらに強固なセキュリティを実現することができる。
つぎに、第８図に示したクライアント５０の具体的な処理動作について説明する。第９図は、クライアント５０の処理動作を説明するフローチャートである。同図に示すように、クライアント５０は、送信データ作成部１３が送信データを作成したならば（ステップＳ３０１）、パターンテーブル５１から使用する暗号鍵を読み出す（ステップＳ３０２）。つづいて、暗号化処理部５２ａは、読み出した公開鍵を用いて送信データを暗号化し（ステップＳ３０３）、暗号化したデータ（暗号文）を送信する（ステップＳ３０４）。
つづいて、第８図に示したサーバ６０の具体的な処理動作について説明する。第１０図は、サーバ６０の処理動作を説明するフローチャートである。同図に示すように、サーバ６０は、データ受信部２３がクライアントからデータを受信したならば（ステップＳ４０１）、クライアント認識部６２ａがＩＰアドレスなどからクライアントの識別をおこなう（ステップＳ４０２）。さらに、パターン特定部６２ｂは、識別したクライアントが使用するパターンを特定する（ステップＳ４０３）。つづいて、秘密鍵選択部６２ｃが特定したパターンに対応する秘密鍵を読み出す（ステップＳ４０４）。その後、復号処理部６２ｄは、読み出した秘密鍵を用いて暗号文を復号し、元のデータを取り出して（ステップＳ４０５）処理を終了する。
ここで、サーバ６０がパターンテーブル６１に記憶する、クライアントとパターンとの関係を説明する。第１１図は、クライアントとパターンとの対応関係を説明する説明図である。第１１図（ａ）に示したテーブル７１は、クライアントとパターンとの関係を示す。同図に示すクライアント認証キーは、例えばＩＰアドレスやＭＡＣアドレスなどのクライアントの特定に使用可能な任意の情報である。テーブル７１では、クライアント認証キー「Ａ」に対してパターン番号「１０１」、「００２」が対応している。すなわち、クライアント認証キー「Ａ」によって特定されるクライアントから受信した暗号文は、パターン１０１もしくはパターン００２を使用して暗号化されていることとなる。また、クライアント認証キー「Ｂ」に対してはパターン番号「００１」が対応し、クライアント認証キー「Ｃ」に対してはパターン番号「１０２」が対応する。すなわち、クライアント認証キー「Ｂ」によって特定されるクライアントから受信した暗号文は、パターン００１によって暗号化されており、クライアント認証キー「Ｃ」によって特定されるクライアントから受信した暗号文は、パターン１０２によって暗号化されていることとなる。
また、第１１図（ｂ）に示したテーブル７２は、各クライアントが記憶しているパターン数を示す。具体的には、クライアント認証キー「Ａ」によって特定されるクライアントは、４つのパターンを記憶しており、クライアント認証キー「Ｂ」によって特定されるクライアントは、１つのパターンを記憶している。また、クライアント認証キー「Ｃ」によって特定されるクライアントは、５つのパターンを記憶しており、クライアント認証キー「Ｄ」によって特定されるクライアントは、８つのパターンを記憶している。
なお、クライアントとパターンとの対応関係は、公開鍵や秘密鍵との対応関係と合わせて記憶しても良い。第１２図は、クライアント認証キー、パターン番号、公開鍵および秘密鍵をそれぞれ対応付けて記憶するパターンテーブルである。
上述してきたように、本実施の形態２では、公開鍵と秘密鍵のセットに対してパターン番号を設定してパターンテーブルを作成してクライアントとサーバの間で共有するとともに、クライアントが記憶しているパターンをサーバ側に登録しているので、サーバはＩＰアドレスやＭＡＣアドレスなどを用いてクライアントを識別し、クライアントが使用する可能性のあるパターンから復号に用いる秘密鍵を選択して復号化することができる。
ところで、通信の安全性をさらに向上するためには、クライアントが使用するパターンは、適宜更新可能とすることが望ましい。本発明におけるパターンの更新方法の一例を、第１３図を参照して説明する。同図に示すように、まず、クライアントがパターン更新要求を暗号化して送信したならば（ステップＳ５０１）、サーバは、このパターン更新要求を受信し、復号化してパターン更新要求を取り出す（ステップＳ６０１）。つぎに、サーバは、パターンテーブル６１を参照し、クライアントが使用していたパターン数およびパターン番号を特定する（ステップＳ６０２）。その後、サーバは、新規のパターンを作成し（ステップＳ６０３）、新規パターンテーブルをクライアントの既存のパターンで暗号化して送信する（ステップＳ６０４）。
クライアントは、このデータを受信し、復号化して新規のパターンテーブルを取り出す（ステップＳ５０２）。その後、クライアントは、必要な全てのデータを受信したか否かを判定する（ステップＳ５０４）。全てのデータを受信していれば（ステップＳ５０４，Ｙｅｓ）、クライアントは、受信したデータ同一内容のデータをサーバに送信する（ステップＳ５０６）。一方、全てのデータを受信していなければ（ステップＳ５０４，Ｎｏ）、クライアントは、自局の既存のパターンで現在のパターンテーブルを暗号化してサーバ１に送信する（ステップＳ５０５）。
サーバは、クライアントが送信したデータを受信する（ステップＳ６０５）。この受信したデータが送信したデータと同一であるならば（ステップＳ６０６，Ｙｅｓ）、サーバは、パターンテーブルを更新し（ステップＳ６０８）、更新成功をクライアントに通知する（ステップＳ６０９）。また、受信したデータが送信したデータと異なる場合（ステップＳ６０６，Ｎｏ）、サーバは、更新失敗をクライアントに通知して（ステップＳ６０７）、処理を終了する。
一方、クライアントは、更新結果を受信し（ステップＳ５０７）、更新か成功していたならば（ステップＳ５０８，Ｙｅｓ）。パターンテーブルの更新を実行する（ステップＳ５０９）。このパターンテーブルの更新終了後、もしくは更新が失敗した場合（ステップＳ５０８，Ｎｏ）、クライアントは処理を終了する。
さらに、パターンテーブルの更新が失敗した場合には、パターンテーブルの復元を行い、既存のパターンテーブルによる暗号通信を確保することが望ましい。第１４図は、サーバにおけるパターンテーブルの復元処理の一例を示す図である。同図に示すように、サーバは、クライアントからパターンテーブルの復元要求を受信したならば（ステップＳ７０１）、受信したデータにパターン番号が付加されているか否かを判定する（ステップＳ７０２）。
受信したデータにパターン番号が付加されているならば（ステップＳ７０２，Ｙｅｓ）、サーバは、受信したデータからパターン番号を取得する（ステップＳ７０３）。また、サーバは、ＩＰアドレスなどに基づいてクライアントを特定するとともに、パターンテーブルからパターン番号を特定する（ステップＳ７０４）。その後、サーバは、受信したパターン番号と、パターンテーブルから読み出したパターン番号とを比較し（ステップＳ７０５）、パターン番号が一致したならば（ステップＳ７０６，Ｙｅｓ）、パターンテーブルの更新成功をクライアントに通知して処理を終了する。
一方、パターン番号が一致しないならば（ステップＳ７０５，Ｎｏ）、サーバは、旧いパターンテーブルからパターン番号を読み出し（ステップＳ７０７）、データに付加されていたパターン番号と比較する（ステップＳ７０８）。データに付加されていたパターン番号が旧いパターン番号と一致したならば（ステップＳ７０８，Ｙｅｓ）、サーバは、パターンテーブルを復元し（ステップＳ７１６）、パターンテーブルの復元完了をクライアントに通知して（ステップＳ７１７）、処理を終了する。また、データに付加されていたパターン番号が旧いパターン番号と一致しないならば（ステップＳ７０８，Ｎｏ）、サーバはクライアントにエラーメッセージを通知し（ステップＳ７０９）、処理を終了する。
なお、受信したデータにパターン番号が付加されていないならば（ステップＳ７０２，Ｎｏ）、サーバは、受信したデータのＩＰアドレスなどを用いてクライアントを特定し（ステップＳ７１０）、パターンテーブルからパターン番号を取得する（ステップＳ７１２）。つづいて、サーバは、取得したパターン番号に対応する秘密鍵で受信したデータの復号をおこない、復号が成功したならば（ステップＳ７１３，Ｙｅｓ）、パターンテーブルの更新成功をクライアントに通知して処理を終了する（ステップＳ７１８）。
一方、復号に失敗したならば（ステップＳ７１３，Ｎｏ）、サーバは、旧いパターンテーブルからパターン番号を取得し（ステップＳ７１４）、復号を実行する（ステップＳ７１５）。旧いパターン番号を用いた復号に成功したならば（ステップＳ７１５，Ｙｅｓ）、サーバはパターンテーブルを復元し（ステップＳ７１６）、パターンテーブルの復元完了をクライアントに通知して（ステップＳ７１７）、処理を終了する。また、旧いパターン番号を用いた復号に失敗したならば（ステップＳ７１５，Ｎｏ）、サーバは、クライアントにエラーメッセージを通知して（ステップＳ７０９）処理を終了する。
このように、クライアントからの更新要求に基づいて、クライアントとサーバの間で共有するパターンテーブルを更新することにより、必要に応じて使用するパターンテーブルを変更し、通信の安全性を向上することができる。
なお、パターンテーブルの更新は、実施の形態２に限らず、実施の形態１に示した暗号通信システムにおいても有効であることはいうまでもない。
また、実施の形態１および実施の形態２では、ＲＳＡ暗号を利用する場合について説明したが、本発明の利用はこれに限定されるものではなく、任意の暗号方式を用いて実施することが可能である。
【産業上の利用可能性】  以上のように、本発明にかかる暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラムおよび復号化プログラムは、暗号通信における通信の安全性向上および処理負荷軽減に対して有用である。
【図１】
2004105310.tif 000003
【図２】
2004105310.tif 000004
【図３】
2004105310.tif 000005
【図４】
2004105310.tif 000006
【図５】
2004105310.tif 000007
【図６】
2004105310.tif 000008
【図７】
2004105310.tif 000009
【図８】
2004105310.tif 000010
【図９】
2004105310.tif 000011
【図１０】
2004105310.tif 000012
【図１１】
2004105310.tif 000013
【図１２】
2004105310.tif 000014
【図１３】
2004105310.tif 000015
【図１４】
2004105310.tif 000016
【手続補正書】
【提出日】平成17年11月2日(2005.11.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを暗号化して送信する暗号化装置であって、
自局に固有に割り当てられた暗号方式を記憶する記憶手段と、
前記記憶手段が記憶した暗号方式を用いて前記データを暗号化し、暗号文を作成する暗号文作成手段と、
前記暗号文作成手段が用いた暗号方式を指定するパターン情報を前記暗号文に付加するパターン情報付加手段と、
を備え、前記記憶手段は、複数の暗号方式を記憶し、前記暗号文作成手段は、該複数の暗号方式から前記データの暗号化に使用する暗号方式を選択することを特徴とする暗号化装置。
【請求項２】
前記暗号方式は公開鍵暗号に用いる公開鍵であり、前記暗号文作成手段は、該公開鍵を用いて前記データを暗号化することを特徴とする請求項１に記載の暗号化装置。
【請求項３】
データを暗号化して送信する暗号化方法であって、
自局に固有に割り当てられた暗号方式を記憶する記憶工程と、
前記記憶工程によって記憶した暗号方式を用いて前記データを暗号化し、暗号文を作成する暗号文作成工程と、
前記暗号文作成工程が用いた暗号方式を指定するパターン情報を前記暗号文に付加するパターン情報付加工程と、
を含み、前記記憶工程は、複数の暗号方式を記憶し、前記暗号文作成工程は、該複数の暗号方式から前記データの暗号化に使用する暗号方式を選択することを特徴とする暗号化方法。
【請求項４】
前記暗号方式は公開鍵暗号に用いる公開鍵であり、前記暗号文作成工程は、該公開鍵を用いて前記データを暗号化することを特徴とする請求項３に記載の暗号化方法。
【請求項５】
データを暗号化して送信する暗号化方法をコンピュータに実行させる暗号化プログラムであって、
自局に固有に割り当てられた暗号方式を記憶する記憶手順と、
前記記憶手順によって記憶した暗号方式を用いて前記データを暗号化し、暗号文を作成する暗号文作成手順と、
前記暗号文作成手順が用いた暗号方式を指定するパターン情報を前記暗号文に付加するパターン情報付加手順と、
をコンピュータに実行させ、前記記憶手順は、複数の暗号方式を記憶し、前記暗号文作成手順は、該複数の暗号方式から前記データの暗号化に使用する暗号方式を選択することを特徴とする暗号化プログラム。
【請求項６】
前記暗号方式は公開鍵暗号に用いる公開鍵であり、前記暗号文作成手順は、該公開鍵を用いて前記データを暗号化することを特徴とする請項５に記載の暗号化プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】    明細書
【技術分野】
【０００１】
この発明は、データ通信等においてデータを暗号化する暗号化装置、暗号化方法および暗号化プログラムに関し、特に通信の安全性を向上し、処理負荷を軽減した暗号化装置、暗号化方法および暗号化プログラムに関する。
【背景技術】
【０００２】
近年、インターネットなどのネットワーク技術の発達に伴い、各種重要な情報がネットワークを介して送受信されている。このようなオープンネットワークを介して情報を送受信する場合、送受信されるデータの改竄や盗聴、なりすましを防止するためのセキュリティ技術が重要となる。
【０００３】
そこで、現在、暗号を利用したセキュアな通信技術が考案されている。例えば、ＳＳＬ(Secure Sockets Layer)は、クライアント−サーバ間の通信をソケットレベルで暗号化する通信プロトコルであり、公開鍵暗号や共通鍵暗号、ディジタル証明書を組み合わせることで、データの改竄や盗聴、なりすましを防止している（非特許文献１参照。）。
【０００４】
【非特許文献１】  http://www.verisign.co.jp/repository/faq/SSL/
【０００５】
このＳＳＬを用いてサーバがクライアントを認証する場合、まず、公開鍵暗号を用いて共通鍵を共有し、この共有鍵を使用した共通鍵暗号によって通信をおこなっていた。
【０００６】
しかしながら、このような従来の認証では、目的とするデータ通信（共通鍵暗号による通信）の前に共通鍵を共有するための通信（公開鍵暗号による通信）が必要であるために、認証に要する時間や処理負荷、通信負荷が増大するという問題点があった。さらには通信回数が増加することにより、改竄、盗聴、なりすましの機会が増えるというセキュリティ上の問題があった。
【０００７】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、通信の安全性を向上し、処理負荷を軽減した暗号化装置、暗号化方法および暗号化プログラムを提供することを目的とする。
【発明の開示】
【０００８】
上述した課題を解決し、目的を達成するため、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、データを暗号化して送信する場合に、自局に固有に割り当てられた暗号方式を記憶し、記憶した暗号方式を用いてデータを暗号化することで暗号文を作成することを特徴とする。
【０００９】
この発明によれば、自局に固有に割り当てられた暗号方式を利用することで、使用している暗号方式を秘匿して暗号通信を行うことができ、通信の安全性を向上して暗号化・復号化の処理負荷を軽減することができる。
【００１０】
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、暗号文作成時に用いた暗号方式を指定するパターン情報を暗号文に付加して送信することを特徴とする。
【００１１】
この発明によれば、暗号化に使用した暗号方式を、パターン情報によって送信先に通知することができるので、簡易な構成で通信の安全性を向上して暗号化・復号化の処理負荷を軽減することができる。
【００１２】
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、複数の暗号方式を記憶し、この複数の暗号方式からデータの暗号化に使用する暗号方式を選択することを特徴とする。
【００１３】
この発明によれば、通信ごとに使用する暗号方式を変更することができるので、通信の安全性をさらに向上することができる。
【００１４】
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、複数の暗号方式を記憶し、この複数の暗号方式からデータの暗号化に使用する暗号方式を選択するとともに、暗号文作成時に用いた暗号方式を指定するパターン情報を暗号文に付加して送信することを特徴とする。
【００１５】
この発明によれば、通信ごとに使用する暗号方式を変更することができ、暗号文化に使用した暗号方式を、パターン情報によって送信先に通知することができるので、簡易な構成で通信の安全性をさらに向上することができる。
【００１６】
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、暗号方式として公開鍵暗号を用いてデータを暗号化することを特徴とする。
【００１７】
この発明によれば、公開鍵を秘匿して暗号通信を行うことで、少ない桁数の鍵で強固な暗号通信を実現し、暗号化・復号化の処理負荷を軽減することができる。
【００１８】
また、本発明に係る暗号化装置、暗号化方法および暗号化プログラムは、ＲＳＡ(Rivest-Shamir-Adleman)暗号を用いることを特徴とする。
【００１９】
この発明によれば、ＲＳＡ暗号において、公開鍵を秘匿して通信を行うことで、少ない桁数の鍵で強固な暗号通信を実現し、暗号化・復号化の処理負荷を軽減することができる。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明に係る暗号化装置、暗号化方法、および暗号化プログラムの好適な実施の形態を詳細に説明する。
【００２１】
（実施の形態１）
まず、本発明における暗号通信の概念について説明する。第１図は、本発明における暗号通信の概念を説明する説明図である。同図に示すように、クライアント１およびサーバ２は、それぞれパターンテーブル１１，２１を有する。サーバ２が有するパターンテーブル２１は、ＲＳＡ暗号に用いる公開鍵と秘密鍵のセットを記憶し、公開鍵と秘密鍵のセットにパターン番号を割り当てている。また、クライアント１が有するパターンテーブル１１は、パターン番号と公開鍵とを記憶している。
【００２２】
クライアント１は、データＤ１を送信する場合に、パターンテーブル１１から使用する公開鍵を選択し、選択した公開鍵を用いてデータＤ１を暗号化することで暗号文Ｄ２を作成する。さらに、クライアント１は、使用した公開鍵に対応するパターン番号Ｄ３を暗号文Ｄ２に付加してサーバ２に送信する。
【００２３】
一方、サーバ２は、暗号文Ｄ２およびパターン番号Ｄ３を受信した場合に、受信したパターン番号Ｄ３をもとにパターンテーブル２１を検索し、暗号化に使用された公開鍵を特定する。その後、特定した公開鍵に対応する秘密鍵によって暗号文Ｄ２を復号してデータＤ１を取り出す。
【００２４】
ここで、公開鍵と秘密鍵を用いたＲＳＡ暗号について説明する。ＲＳＡ暗号は、素数ではない大きな自然数の素因数分解が困難であることに基づいている。具体的には、任意の大きな２つの素数ｐ，ｑを選び、その積をｎとする（ｎ＝ｐｑ）。オイラーの定理から導いたオイラー関数φ（ｎ）は次のように定義される。
φ（ｎ）＝（ｐ−１）（ｑ−１）
このφ（ｎ）と互いに素となる数ｋを選ぶ。このｎとｋが公開鍵となる。つぎに、
１＝ｈｋ×ｍｏｄφ（ｎ）
を満たす整数ｈを計算する。このｈが秘密鍵となる。平文をＭ、暗号文をＣとすると、Ｍ＜ｎであれば、以下の関係が成立する。
Ｃ＝ＭKｍｏｄｎ
Ｍ＝Ｃhｍｏｄｎ
この関係を用いることで、秘密鍵ｈが分からなければ、公開鍵ｋ，ｎが分かったとしても公開鍵から秘密鍵を算出するには膨大な計算が要求されることとなる。特に、桁数の鍵を大きくすることで、秘密鍵の算出はさらに困難なものとなる。
【００２５】
一般に用いられるＲＳＡ暗号はこの特性を利用し、公開鍵を誰でも入手可能にしておき、秘密鍵を秘匿することで通信のセキュリティを保っている。しかし、上述のように、公開鍵からの秘密鍵の算出は、困難ではあるが不可能ではない。そこで、公開鍵が誰でも入手できる状態であるならば、通信の安全性は鍵の桁数によって定まるので、十分な桁数の鍵を用いることが必要である。
【００２６】
一方、本発明における暗号通信では、公開鍵はクライアントに対してのみ公開され、他の端末に対しては秘匿される。さらに、クライアントがどの公開鍵を用いて暗号化したかは、パターン番号によって示される。すなわち、データ通信において公開鍵が晒されることがないので、少ない桁数で強固な暗号通信を実現することができる。
【００２７】
換言するならば、ＲＳＡ暗号方式を利用する便宜上、公開鍵、秘密鍵との言葉を使用するが、本発明における公開鍵は、共通鍵暗号における共通鍵と同様に他の端末に対して秘匿されるものである。
【００２８】
つぎに、本実施の形態における暗号通信システムの具体的な構成について説明する。第２図は、本実施の形態における暗号通信システムの概要構成を説明する概要構成図である。同図に示すように、クライアント１はネットワーク３を介してサーバ２に接続される。また、クライアント１と同様の構成を有するクライアント４や、その他の図示しないクライアントがネットワーク３を介してサーバ３に接続される。
【００２９】
クライアント１は、送信データ作成部１３、暗号文作成部１２およびパターンテーブル１１を有する。送信データ作成部１３は、サーバ２に送信する元データを作成する処理部であり、例えばクライアント１とサーバ２との間で認証を行う場合であれば、認証要求データを作成する。
【００３０】
暗号文作成部１２は、送信データ作成部１３が作成したデータを暗号化する処理部であり、その内部にパターン選択部１２ａ、暗号化処理部１２ｂ、パターン番号付加部１２ｃを有する。パターン選択部１２ａは、パターンテーブル１１から暗号化に用いる公開鍵を選択し、暗号化処理部１２ｂは、送信データ作成部１３が作成したデータを、パターン選択部１２ａによって選択された公開鍵を用いて暗号化した暗号文を作成する。さらにパターン番号付加部１２ｃは、使用した公開鍵に対応するパターン番号を付加する処理をおこなう。
【００３１】
一方、サーバ２は、データ受信部２３、復号部２２、パターンテーブル２１を有する。データ受信部２３は、クライアントから暗号文を受信する処理部であり、受信した暗号文を復号部２２に送信する。復号部２２は、データ受信部２３が受信した暗号文を復号化する処理部であり、その内部にパターン認識部２２ａ、秘密鍵選択部２２ｂ、復号処理部２２ｃを有する。パターン認識部２２ａは、暗号文に付加されたパターン番号を読み出す。秘密鍵選択部２２ｂは、パターン認識部２２ａが読み出したパターン番号を用いて暗号化に使用された公開鍵を特定し、対応する秘密鍵を選択する。復号処理部２２ｃは、この秘密鍵選択部２２ｂによって選択された秘密鍵を用いて暗号文を復号する処理をおこなう。
【００３２】
つぎに、パターンテーブル１１，２１についてさらに説明する。パターンテーブルは、公開鍵と暗号鍵のセットにパターン番号を対応させたテーブルである。具体的には、上述した「ｋ」と「ｎ」の組み合わせを公開鍵をとして記憶し、「ｈ」を秘密鍵として記憶している。また、パターンテーブルは公開鍵および暗号鍵に変えて、暗号化・復号化に用いるパラメータ、すなわち上述の「ｐ」、「ｑ」、「ｋ」のセットを記憶するようにしてもよい
【００３３】
第３図は、パターンテーブルの具体例について説明する説明図である。第３図（ａ）に示したパターンテーブル３１は、公開鍵として公開指数「ｋ」および係数「ｎ」を、秘密鍵として「ｈ」を記憶している。たとえば、パターン番号「１０１」によって示されるパターンでは、公開指数が「５」、係数が「９１」、秘密鍵が「２９」である。また、パターン番号「１０２」によって示されるパターンでは、公開指数が「５」、係数が「１４５」、秘密鍵が「４５」である。同様に、パターン番号「１０３」は公開指数が「７」、係数が「１１９」、秘密鍵が「５５」の組み合わせを示し、パターン番号「１０４」は公開指数が「３」、係数が「１１１１」、秘密鍵が「４６７」の組み合わせを示す。
【００３４】
一方、第３図（ｂ）に示したパターンテーブル３２は、パターン番号に対してパラメータ「ｐ」、「ｑ」、「ｋ」の組み合わせを対応させて記憶している。たとえば、パターン番号「００１」によって示されるパターンでは、「ｐ＝７，ｑ＝１３，ｋ＝５」である。また、パターン番号「００２」によって示されるパターンでは、「ｐ＝２９，ｑ＝５，ｋ＝５」である。同様に、パターン番号「００３」によって示されるパターンでは、「ｐ＝７，ｑ＝１７，ｋ＝７」であり、パターン番号「００４」によって示されるパターンでは、「ｐ＝１０１，ｑ＝１１，ｋ＝３」である。
【００３５】
サーバ２は、各クライアントが使用する全てのパターンについて、このパターン番号、公開鍵、秘密鍵の組み合わせ、もしくはパターン番号とパラメータの組み合わせを記憶する。一方、各クライアントは、このパターンテーブルの一部、すなわち自局が使用するパターンのみを記憶する。また、各クライアントは秘密鍵を記憶する必要は無く、パターン番号と公開鍵の組み合わせをパターンテーブルとして記憶すればよい。
【００３６】
このように、各クライアントに自局が使用するパターンのみを記憶させ、さらに秘密鍵をクライアント側に記憶させないようにすることで、暗号通信の強度を高めることができる。
【００３７】
つぎに、この第３図に示したパターンテーブルを参照し、暗号文作成の具体例を説明する。例えば、パターンテーブル３１に示したパターン１０４を使用し、文字「ａ」の暗号化を行う場合、「ａ」のコードは「０ｘ６１」であり、このコードを１０進数に変換すると「９７」である。この文字「ａ」を示すデータ「９７」を平文Ｍとし、パターン１０４である「ｋ＝３，ｎ＝１１１１」を使用すると、ＭKｍｏｄｎ＝Ｃから
（９７）3ｍｏｄ（１１１１）＝５４２
となり、暗号文は「５４２」となる。
【００３８】
また、パターンテーブル３２に示したパターン００２を使用し、文字「ａ」の暗号化を行う場合、「ａ」のコードを１０進数に変換した「９７」を平文Ｍとし、パターン００２である「ｐ＝２９，ｑ＝５，ｋ＝５」を使用すると、ＭKｍｏｄ（ｐｑ）＝Ｃから
（９７）5ｍｏｄ（２９×５）＝３７
となり、暗号文は「３７」となる。
【００３９】
このように、所定のパターンを用いて暗号化した後、使用したパターンの番号を付加して送信することで、サーバ側ではパターン番号をもとに復号に使用する秘密鍵を特定することができる。
【００４０】
つぎに、第２図に示したクライアント１の具体的な処理動作について説明する。第４図は、クライアント１の処理動作を説明するフローチャートである。同図に示すように、クライアント１は、送信データ作成部１３が送信データを作成したならば（ステップＳ１０１）、パターン選択部１２ａが使用するパターンを選択する（ステップＳ１０２）。つづいて、暗号化処理部１２ｂは、選択したパターンに対応する秘密鍵を読み出し（ステップＳ１０３）、送信データを暗号化する（ステップＳ１０４）。その後、パターン番号付加部１２ｃは、暗号化したデータに使用したパターン番号を付加して（ステップＳ１０５）、暗号化したデータ（暗号文）を送信する（ステップＳ１０６）。
【００４１】
つづいて、第２図に示したサーバ２の具体的な処理動作について説明する。第５図は、サーバ２の処理動作を説明するフローチャートである。同図に示すように、サーバ２は、データ受信部２３がクライアントからデータを受信したならば（ステップＳ２０１）、パターン認識部２２ａが受信したデータからパターン番号を取得する（ステップＳ２０２）。さらに、秘密鍵選択部２２ｂがパターン番号から暗号化に使用された公開鍵と秘密鍵とのセットを特定し、対応する秘密鍵を読み出す（ステップＳ２０３）。その後、復号処理部２２ｃは、読み出した秘密鍵を用いて暗号文を復号し、元のデータを取り出して（ステップＳ２０４）処理を終了する。
【００４２】
上述してきたように、本実施の形態１では、公開鍵と秘密鍵のセットに対してパターン番号を設定してパターンテーブルを作成してクライアントとサーバの間で共有し、クライアントがデータを暗号化する際に使用した公開鍵に対応するパターン番号を暗号文に付加して送信することで、通信ネットワークに公開鍵を晒すことなく公開鍵暗号方式を利用した通信を行うことができる。
【００４３】
また、公開鍵を秘匿することで少ない桁数で強固な暗号通信を実現することができるので、暗号化・復号化にかかる処理負荷を軽減することができる。特に、クライアント−サーバ間の認証に用いた場合、クライアントから直接に認証要求を送信することができるので、通信回数を抑え、セキュリティの向上と認証にかかる時間の短縮を実現できる。
【００４４】
ところで、以上の説明では一文字のデータを暗号化して送信する場合について説明したが、このように一文字ずつ暗号化して送信する場合に限らず、文字列を暗号化して送信する場合についても本発明を利用することができる。
【００４５】
文字列を暗号化して送信する場合、文字間を区分するために、一文字あたりの桁数を定めるようにすればよい。第６図は、文字列を暗号化して通信する場合におけるパターンテーブルについて説明する図である。同図に示すように、第６図（ａ）に示したパターンテーブル４１は、第３図に示したパターンテーブル３１に桁数のデータを追加したテーブルであり、第６図（ｂ）に示したパターンテーブル４２は、第３図に示したパターンテーブル３２に桁数のデータを追加したテーブルである。
【００４６】
文字列を暗号化する場合、文字列に含まれるそれぞれの文字を暗号化した後、パターンテーブルに指定された桁数に揃える。第７図に文字列の暗号化の具体例を示す。第７図（ａ）に示した元のデータＤ１は、「１２３４５６７８９ＡＢ」である。この「１」をパターン００２で暗号化すると「２４」、桁数を３に合わせると「０２４」となる。また、「２」をパターン００２で暗号化すると「６０」、桁数を３に合わせると「０６０」となる。この様にデータＤ１に含まれる文字を順次暗号化し、それぞれの桁数を３に調整することで、暗号文Ｄ２を作成することができる。暗号文を送信する場合には、暗号文Ｄ２の末尾に使用したパターンを示すパターン番号「００２」を付加すればよい。
【００４７】
また、サーバ２における復号化では、暗号文末尾のパターン番号を識別し、そのパターンに定められた桁数を知ることができるので、この桁数を元に暗号文を文字単位に分割して復号することができる。
【００４８】
このように文字列を暗号化して通信することにより、クライアント−サーバ間の通信回数をさらに抑制し、通信回線の負荷を軽減するとともにセキュリティ強度を高めることができる。
【００４９】
また、暗号強度をさらに高めるためには、通信ごとに異なるパターンを用いることが望ましい。このためにはクライアント側のパターンテーブルに複数のパターンを記憶させておき、通信ごとに異なるパターンを選択すればよい。サーバ側は、暗号文に付加されたパターン番号によって復号に用いるべき秘密鍵を特定することができるので、クライアントが毎回異なる公開鍵を用いたとしても暗号文を正確に復号することができる。
【００５０】
（実施の形態２）
ところで、上述した実施の形態１では、暗号文にパターン番号を付加することで暗号化に用いたパターンをサーバ側に伝えるようにしているが、本実施の形態２では、クライアントを識別して復号化に使用するパターンを特定する暗号通信システムについて説明する。
【００５１】
第８図は、本実施の形態２にかかる暗号通信システムの概要構成を説明する概要構成図である。同図に示すようにクライアント５０はネットワーク３を介してサーバ６０に接続されている。また、実施の形態１に示した暗号通信システムと同様に、クライアント４や図示しないクライアントがネットワーク３を介してサーバ６０に接続されている。
【００５２】
クライアント５０は、送信データ作成部１３、暗号文作成部５２およびパターンテーブル５１を有する。送信データ作成部１３は、サーバに送信するデータを作成する処理部である。また、パターンテーブル５１は、公開鍵にパターン番号を対応させたパターンテーブルを記憶している。
【００５３】
暗号文作成部５２は、暗号化処理部５２ａを有する。この暗号文作成部５２は、パターンテーブル５１に記憶した公開鍵を用いて暗号文を作成し、サーバ６０に送信する。ここで、クライアント５０は、暗号化に用いた公開鍵を示すパターン番号を付加しない。
【００５４】
一方、サーバ６０は、データ受信部２３、復号部６２およびパターンテーブル６１を有する。データ受信部２３は、ネットワーク３を介して暗号文を受信して復号部６２に送信する。パターンテーブル６１は、公開鍵と秘密鍵のセットにパターン番号を付与して記憶するとともに、各クライアントを特定する情報、例えばＩＰアドレスとパターン番号を対応付けて記憶している。
【００５５】
復号部６２は、その内部にクライアント認識部６２ａ、パターン特定部６２ｂ、秘密鍵選択部６２ｃおよび復号処理部６２ｄを有する。クライアント認識部６２ａは、暗号文を受信した場合に、ＩＰアドレスなどを参照して送信元のクライアントの認識をおこなう。また、パターン認識部６２ｂは、クライアント認識部６２ａによる認識結果をもとに、暗号化に使用されたパターンを特定する。また、秘密鍵選択部６２ｃは、パターン特定部６２ｂが特定したパターンをもとに秘密鍵を選択する。復号処理部６２ｄはこの秘密鍵を用いて暗号文を復号する。
【００５６】
すなわち、この実施の形態２に示した暗号通信システムでは、クライアントが記憶しているパターンをサーバ側に登録しておき、サーバはＩＰアドレスやＭＡＣアドレスなどを用いてクライアントを識別し、クライアントが使用する可能性のあるパターンから復号に用いる秘密鍵を選択するようにしている。
【００５７】
そのため、クライアントは暗号文にパターン番号を付加する必要がなく、ネットワーク上には暗号文のみが流れることとなるため、さらに強固なセキュリティを実現することができる。
【００５８】
つぎに、第８図に示したクライアント５０の具体的な処理動作について説明する。第９図は、クライアント５０の処理動作を説明するフローチャートである。同図に示すように、クライアント５０は、送信データ作成部１３が送信データを作成したならば（ステップＳ３０１）、パターンテーブル５１から使用する暗号鍵を読み出す（ステップＳ３０２）。つづいて、暗号化処理部５２ａは、読み出した公開鍵を用いて送信データを暗号化し（ステップＳ３０３）、暗号化したデータ（暗号文）を送信する（ステップＳ３０４）。
【００５９】
つづいて、第８図に示したサーバ６０の具体的な処理動作について説明する。第１０図は、サーバ６０の処理動作を説明するフローチャートである。同図に示すように、サーバ６０は、データ受信部２３がクライアントからデータを受信したならば（ステップＳ４０１）、クライアント認識部６２ａがＩＰアドレスなどからクライアントの識別をおこなう（ステップＳ４０２）。さらに、パターン特定部６２ｂは、識別したクライアントが使用するパターンを特定する（ステップＳ４０３）。つづいて、秘密鍵選択部６２ｃが特定したパターンに対応する秘密鍵を読み出す（ステップＳ４０４）。その後、復号処理部６２ｄは、読み出した秘密鍵を用いて暗号文を復号し、元のデータを取り出して（ステップＳ４０５）処理を終了する。
【００６０】
ここで、サーバ６０がパターンテーブル６１に記憶する、クライアントとパターンとの関係を説明する。第１１図は、クライアントとパターンとの対応関係を説明する説明図である。第１１図（ａ）に示したテーブル７１は、クライアントとパターンとの関係を示す。同図に示すクライアント認証キーは、例えばＩＰアドレスやＭＡＣアドレスなどのクライアントの特定に使用可能な任意の情報である。テーブル７１では、クライアント認証キー「Ａ」に対してパターン番号「１０１」、「００２」が対応している。すなわち、クライアント認証キー「Ａ」によって特定されるクライアントから受信した暗号文は、パターン１０１もしくはパターン００２を使用して暗号化されていることとなる。また、クライアント認証キー「Ｂ」に対してはパターン番号「００１」が対応し、クライアント認証キー「Ｃ」に対してはパターン番号「１０２」が対応する。すなわち、クライアント認証キー「Ｂ」によって特定されるクライアントから受信した暗号文は、パターン００１によって暗号化されており、クライアント認証キー「Ｃ」によって特定されるクライアントから受信した暗号文は、パターン１０２によって暗号化されていることとなる。
【００６１】
また、第１１図（ｂ）に示したテーブル７２は、各クライアントが記憶しているパターン数を示す。具体的には、クライアント認証キー「Ａ」によって特定されるクライアントは、４つのパターンを記憶しており、クライアント認証キー「Ｂ」によって特定されるクライアントは、１つのパターンを記憶している。また、クライアント認証キー「Ｃ」によって特定されるクライアントは、５つのパターンを記憶しており、クライアント認証キー「Ｄ」によって特定されるクライアントは、８つのパターンを記憶している。
【００６２】
なお、クライアントとパターンとの対応関係は、公開鍵や秘密鍵との対応関係と合わせて記憶しても良い。第１２図は、クライアント認証キー、パターン番号、公開鍵および秘密鍵をそれぞれ対応付けて記憶するパターンテーブルである。
【００６３】
上述してきたように、本実施の形態２では、公開鍵と秘密鍵のセットに対してパターン番号を設定してパターンテーブルを作成してクライアントとサーバの間で共有するとともに、クライアントが記憶しているパターンをサーバ側に登録しているので、サーバはＩＰアドレスやＭＡＣアドレスなどを用いてクライアントを識別し、クライアントが使用する可能性のあるパターンから復号に用いる秘密鍵を選択して復号化することができる。
【００６４】
ところで、通信の安全性をさらに向上するためには、クライアントが使用するパターンは、適宜更新可能とすることが望ましい。本発明におけるパターンの更新方法の一例を、第１３図を参照して説明する。同図に示すように、まず、クライアントがパターン更新要求を暗号化して送信したならば（ステップＳ５０１）、サーバは、このパターン更新要求を受信し、復号化してパターン更新要求を取り出す（ステップＳ６０１）。つぎに、サーバは、パターンテーブル６１を参照し、クライアントが使用していたパターン数およびパターン番号を特定する（ステップＳ６０２）。その後、サーバは、新規のパターンを作成し（ステップＳ６０３）、新規パターンテーブルをクライアントの既存のパターンで暗号化して送信する（ステップＳ６０４）。
【００６５】
クライアントは、このデータを受信し、復号化して新規のパターンテーブルを取り出す（ステップＳ５０２）。その後、クライアントは、必要な全てのデータを受信したか否かを判定する（ステップＳ５０４）。全てのデータを受信していれば（ステップＳ５０４，Ｙｅｓ）、クライアントは、受信したデータ同一内容のデータをサーバに送信する（ステップＳ５０６）。一方、全てのデータを受信していなければ（ステップＳ５０４，Ｎｏ）、クライアントは、自局の既存のパターンで現在のパターンテーブルを暗号化してサーバ１に送信する（ステップＳ５０５）。
【００６６】
サーバは、クライアントが送信したデータを受信する（ステップＳ６０５）。この受信したデータが送信したデータと同一であるならば（ステップＳ６０６，Ｙｅｓ）、サーバは、パターンテーブルを更新し（ステップＳ６０８）、更新成功をクライアントに通知する（ステップＳ６０９）。また、受信したデータが送信したデータと異なる場合（ステップＳ６０６，Ｎｏ）、サーバは、更新失敗をクライアントに通知して（ステップＳ６０７）、処理を終了する。
【００６７】
一方、クライアントは、更新結果を受信し（ステップＳ５０７）、更新か成功していたならば（ステップＳ５０８，Ｙｅｓ）。パターンテーブルの更新を実行する（ステップＳ５０９）。このパターンテーブルの更新終了後、もしくは更新が失敗した場合（ステップＳ５０８，Ｎｏ）、クライアントは処理を終了する。
【００６８】
さらに、パターンテーブルの更新が失敗した場合には、パターンテーブルの復元を行い、既存のパターンテーブルによる暗号通信を確保することが望ましい。第１４図は、サーバにおけるパターンテーブルの復元処理の一例を示す図である。同図に示すように、サーバは、クライアントからパターンテーブルの復元要求を受信したならば（ステップＳ７０１）、受信したデータにパターン番号が付加されているか否かを判定する（ステップＳ７０２）。
【００６９】
受信したデータにパターン番号が付加されているならば（ステップＳ７０２，Ｙｅｓ）、サーバは、受信したデータからパターン番号を取得する（ステップＳ７０３）。また、サーバは、ＩＰアドレスなどに基づいてクライアントを特定するとともに、パターンテーブルからパターン番号を特定する（ステップＳ７０４）。その後、サーバは、受信したパターン番号と、パターンテーブルから読み出したパターン番号とを比較し（ステップＳ７０５）、パターン番号が一致したならば（ステップＳ７０６，Ｙｅｓ）、パターンテーブルの更新成功をクライアントに通知して処理を終了する。
【００７０】
一方、パターン番号が一致しないならば（ステップＳ７０５，Ｎｏ）、サーバは、旧いパターンテーブルからパターン番号を読み出し（ステップＳ７０７）、データに付加されていたパターン番号と比較する（ステップＳ７０８）。データに付加されていたパターン番号が旧いパターン番号と一致したならば（ステップＳ７０８，Ｙｅｓ）、サーバは、パターンテーブルを復元し（ステップＳ７１６）、パターンテーブルの復元完了をクライアントに通知して（ステップＳ７１７）、処理を終了する。また、データに付加されていたパターン番号が旧いパターン番号と一致しないならば（ステップＳ７０８，Ｎｏ）、サーバはクライアントにエラーメッセージを通知し（ステップＳ７０９）、処理を終了する。
【００７１】
なお、受信したデータにパターン番号が付加されていないならば（ステップＳ７０２，Ｎｏ）、サーバは、受信したデータのＩＰアドレスなどを用いてクライアントを特定し（ステップＳ７１０）、パターンテーブルからパターン番号を取得する（ステップＳ７１２）。つづいて、サーバは、取得したパターン番号に対応する秘密鍵で受信したデータの復号をおこない、復号が成功したならば（ステップＳ７１３，Ｙｅｓ）、パターンテーブルの更新成功をクライアントに通知して処理を終了する（ステップＳ７１８）。
【００７２】
一方、復号に失敗したならば（ステップＳ７１３，Ｎｏ）、サーバは、旧いパターンテーブルからパターン番号を取得し（ステップＳ７１４）、復号を実行する（ステップＳ７１５）。旧いパターン番号を用いた復号に成功したならば（ステップＳ７１５，Ｙｅｓ）、サーバはパターンテーブルを復元し（ステップＳ７１６）、パターンテーブルの復元完了をクライアントに通知して（ステップＳ７１７）、処理を終了する。また、旧いパターン番号を用いた復号に失敗したならば（ステップＳ７１５，Ｎｏ）、サーバは、クライアントにエラーメッセージを通知して（ステップＳ７０９）処理を終了する。
【００７３】
このように、クライアントからの更新要求に基づいて、クライアントとサーバの間で共有するパターンテーブルを更新することにより、必要に応じて使用するパターンテーブルを変更し、通信の安全性を向上することができる。
【００７４】
なお、パターンテーブルの更新は、実施の形態２に限らず、実施の形態１に示した暗号通信システムにおいても有効であることはいうまでもない。
【００７５】
また、実施の形態１および実施の形態２では、ＲＳＡ暗号を利用する場合について説明したが、本発明の利用はこれに限定されるものではなく、任意の暗号方式を用いて実施することが可能である。
【産業上の利用可能性】
【００７６】
以上のように、本発明にかかる暗号化装置、暗号化方法、および暗号化プログラムは、暗号通信における通信の安全性向上および処理負荷軽減に対して有用である。
【図面の簡単な説明】
【図１】
第１図は、本発明における暗号通信の概念を説明する説明図である。
【図２】
第２図は、本発明の実施の形態１における暗号通信システムの概要構成を説明する概要構成図である。
【図３】
第３図は、パターンテーブルの具体例について説明する説明図である。
【図４】
第４図は、クライアントの処理動作を説明するフローチャートである。
【図５】
第５図は、サーバ２の処理動作を説明するフローチャートである。
【図６】
第６図は、文字列を暗号化して通信する場合におけるパターンテーブルについて説明する図である。
【図７】
第７図は、文字列の暗号化の具体例を示す図である。
【図８】
第８図は、本発明の実施の形態２にかかる暗号通信システムの概要構成を説明する概要構成図である。
【図９】
第９図は、クライアント５０の処理動作を説明するフローチャートである。
【図１０】
第１０図は、サーバ６０の処理動作を説明するフローチャートである。
【図１１】
第１１図は、クライアントとパターンとの対応関係を説明する説明図である。
【図１２】
第１２図は、クライアント認証キー、パターン番号、公開鍵および秘密鍵の対応を説明する図である。
【図１３】
第１３図は、パターンの更新方法の一例を説明する図である。
【図１４】
第１４図は、サーバにおけるパターンテーブルの復元処理の一例を示す図である。
【国際調査報告】
2004105310.tif 000017
2004105310.tif 000018
2004105310.tif 000019
2004105310.tif 000020