(57)【要約】【課題】より安全性の高い通信環境を提供する。【解決手段】  通信装置１０および通信装置２０に記憶されている固定の設定共通キーｋｅｙと、任意のタイミングで通信装置１０および通信装置２０で同一の値となる可変の変動共通キーＴとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定して、そのポートまたはプロトコルを用いて通信を行う。さらに、設定共通キーｋｅｙまたは変動共通キーＴの少なくともいずれか一方を使って、通信データの暗号処理を行う。本発明は、例えば、ｗｗｗサーバや、ｗｗｗクライアントなどに適用することができる。【選択図】図１
2006191263.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して他の通信装置との間で通信を行う通信装置において、
前記他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーを記憶する設定共通キー記憶手段と、
所定のタイミングで前記他の通信装置が取得する可変のキーと同一のキーである変動共通キーを取得する変動共通キー取得手段と、
前記設定共通キーと前記変動共通キーとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定する決定手段と、
前記決定手段において決定されたポートまたはプロトコルを使用して通信を行う通信手段と
を備えることを特徴とする通信装置。
【請求項２】
前記設定共通キーまたは前記変動共通キーの少なくともいずれか一方を使って、前記通信手段により通信する通信データの暗号処理を行う暗号処理手段をさらに備える
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記決定手段は、前記設定共通キーまたは前記変動共通キーの少なくともいずれか一方を使って、複数のポートまたはプロトコルを決定し、
前記通信手段は、前記複数のポートまたはプロトコルのうちの１つのポートまたはプロトコルを使用して通信を行う
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
前記決定手段は、前記設定共通キーと前記変動共通キーとを使って、あらかじめ決められた算術式を演算することにより、ポートまたはプロトコルの少なくともいずれか一方を決定する
ことを特徴とする請求項１に記載の通信装置。
【請求項５】
ネットワークを介して他の通信装置との間で通信を行う通信方法において、
前記他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーを設定共通キー記憶手段から取得する設定共通キー取得ステップと、
所定のタイミングで前記他の通信装置が取得する可変のキーと同一のキーである変動共通キーを取得する変動共通キー取得ステップと、
前記設定共通キーと前記変動共通キーとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定する決定ステップと、
前記決定ステップにおいて決定されたポートまたはプロトコルを使用して通信を行う通信ステップと
を含むことを特徴とする通信方法。
【請求項６】
ネットワークを介して他の通信装置との間で通信を行うコンピュータに実行させるプログラムにおいて、
前記他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーを設定共通キー記憶手段から取得する設定共通キー取得ステップと、
所定のタイミングで前記他の通信装置が取得する可変のキーと同一のキーである変動共通キーを取得する変動共通キー取得ステップと、
前記設定共通キーと前記変動共通キーとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定する決定ステップと、
前記決定ステップにおいて決定されたポートまたはプロトコルを使用して通信を行う通信ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置および方法、並びにプログラムに関し、特に、特定のキーを使って通信に使用するポートやプロトコルを決定することにより、安全な通信を行うことができるようにする通信装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、インターネット等のネットワークを介してコンピュータ同士がデータ通信を行う通信システムでは、共通のプロトコルを利用し、送信側のコンピュータが、受信側のコンピュータにおいて開いているポートへ、データを送信することによって通信が行われる。
【０００３】
このような通信システムにおいて、受信側のコンピュータがデータ通信する時にポートを動的に変更するシステム（例えば、特許文献１参照）や、受信側のコンピュータが通信ポートの番号を一定の時間間隔で生成して送信側のコンピュータに通知した後に通信を行うシステム（例えば、特許文献２参照）などが開示されている。
【０００４】
また、様々な通信装置との通信を実現可能とするために複数のプロトコルの中から１つのプロトコルを動的に決定して通信する通信方法（例えば、特許文献３参照）や、転送の信頼性と速度を両立させるために複数のプロトコルを組み合わせて通信する通信方法（例えば、特許文献４参照）が開示されている。
【特許文献１】特開２００２−２３６６２７号公報
【特許文献２】特許第２８０２０８８号公報
【特許文献３】特開平１０−７９７７１号公報
【特許文献４】特許平１１−３２０７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常の通信システムでは、受信側のコンピュータは常に特定のポートおよびプロトコルで接続を待つ待ち受け状態となっており、外部からポートスキャン等を受けることにより、その特定のポートやプロトコルが部外者に知られてしまう可能性がある。この部外者に悪意がある場合には、特定のポートやプロトコルが時間をかけて解析されてしまい、不正アクセスを受ける可能性があるという問題があった。また、その特定のポートを塞がれ、通信が阻害されるという問題もあった。
【０００６】
そこで、上述したような、動的にポートやプロトコルを変更（決定）することで、安全性の高い通信環境を提供する方法が提案されているが、より安全性の高い通信環境の提供が要請されている。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、より安全性の高い通信環境を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の通信装置は、他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーを記憶する設定共通キー記憶手段と、所定のタイミングで他の通信装置が取得する可変のキーと同一のキーである変動共通キーを取得する変動共通キー取得手段と、設定共通キーと変動共通キーとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定する決定手段と、決定手段において決定されたポートまたはプロトコルを使用して通信を行う通信手段とを備えることを特徴とする。
【０００９】
設定共通キーまたは変動共通キーの少なくともいずれか一方を使って、通信手段により通信する通信データの暗号処理を行う暗号処理手段をさらに備えることができる。
【００１０】
決定手段は、設定共通キーまたは変動共通キーの少なくともいずれか一方を使って、複数のポートまたはプロトコルを決定し、通信手段は、複数のポートまたはプロトコルのうちの１つのポートまたはプロトコルを使用して通信を行うことができる。
【００１１】
決定手段は、設定共通キーと変動共通キーとを使って、あらかじめ決められた算術式を演算することにより、ポートまたはプロトコルの少なくともいずれか一方を決定することができる。
【００１２】
本発明の通信方法は、他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーを設定共通キー記憶手段から取得する設定共通キー取得ステップと、所定のタイミングで他の通信装置が取得する可変のキーと同一のキーである変動共通キーを取得する変動共通キー取得ステップと、設定共通キーと変動共通キーとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定する決定ステップと、決定ステップにおいて決定されたポートまたはプロトコルを使用して通信を行う通信ステップとを含むことを特徴とする。
【００１３】
本発明のプログラムは、他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーを設定共通キー記憶手段から取得する設定共通キー取得ステップと、所定のタイミングで他の通信装置が取得する可変のキーと同一のキーである変動共通キーを取得する変動共通キー取得ステップと、設定共通キーと変動共通キーとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定する決定ステップと、決定ステップにおいて決定されたポートまたはプロトコルを使用して通信を行う通信ステップとを含むことを特徴とする。
【００１４】
本発明の通信装置および方法、並びにプログラムにおいては、他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーと、所定のタイミングで他の通信装置が取得する可変のキーと同一のキーである変動共通キーとを使って、ポートまたはプロトコルの少なくともいずれか一方が決定され、そのポートまたはプロトコルを使用して通信が行われる。
【発明の効果】
【００１５】
本発明によれば、より安全に通信を行うことができる。
【発明を実施するための最良の形態】
【００１６】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００１７】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
【００１８】
請求項１に記載の通信装置（例えば、図１の通信装置１０や、通信装置２０）は、他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーを記憶する設定共通キー記憶手段（例えば、図１の設定共通キー記憶部１１や、設定共通キー記憶デ―タベース部２１）と、所定のタイミングで他の通信装置が取得する可変のキーと同一のキーである変動共通キーを取得する変動共通キー取得手段（例えば、図１の変動共通キー取得部１２や、変動共通キー取得部２２）と、設定共通キーと変動共通キーとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定する決定手段（例えば、決定部１３や、決定部２３）と、決定手段において決定されたポートまたはプロトコルを使用して通信を行う通信手段（例えば、通信部１４や、通信部２４）とを備える。
【００１９】
請求項２に記載の通信装置は、設定共通キーまたは変動共通キーの少なくともいずれか一方を使って、通信手段により通信する通信データの暗号処理を行う暗号処理手段（例えば、図６の暗号処理部３１）をさらに備えることができる。
【００２０】
請求項５に記載の通信方法は、他の通信装置に記憶されている固定のキーと同一のキーである設定共通キーを設定共通キー記憶手段から取得する設定共通キー取得ステップ（例えば、図２のステップＳ１１や、図３のステップＳ２１）と、所定のタイミングで他の通信装置が取得する可変のキーと同一のキーである変動共通キーを取得する変動共通キー取得ステップ（例えば、図２のステップＳ１２や、図３のステップＳ２２）と、設定共通キーと変動共通キーとを使って、通信に使用するポートまたはプロトコルの少なくともいずれか一方を決定する決定ステップ（例えば、図２のステップＳ１３や、図３のステップＳ２３）と、決定ステップにおいて決定されたポートまたはプロトコルを使用して通信を行う通信ステップ（例えば、図２のステップＳ１４や、図３のステップＳ２４）とを含む。
【００２１】
なお、本発明のプログラムの請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係は、上述した本発明の通信方法のものと同様であるので、その記載は省略する。
【００２２】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２３】
図１は、本発明を適用した通信システムの一実施の形態の構成例を示すブロック図である。
【００２４】
図１において、ネットワーク１はインターネットやＬＡＮ（Local Area Network）等で、ネットワーク１にはタイムサーバ２、通信装置１０、および通信装置２０が接続されている。タイムサーバ２は、例えば、ＮＴＰ（Network Time Protocol）によりネットワーク１を介して、世界で統一された時刻（の情報）を通信装置１０および２０に提供する。タイムサーバ２と通信装置１０または２０とそれぞれが、ＮＴＰによる通信を行うことにより、通信装置１０および２０の内部時計（図示せず）が計時する時刻は、同一時刻になっている。
【００２５】
通信装置１０は、設定共通キー記憶部１１、変動共通キー取得部１２、決定部１３、および通信部１４を備えて構成されている。
【００２６】
設定共通キー記憶部１１は、通信装置２０（の後述する設定共通キー記憶データベース部２１）に記憶されている固定のキーと同一のキーである設定共通キーｋｅｙを記憶している。
【００２７】
変動共通キー取得部１２は、所定のタイミングで通信装置２０が取得する可変のキーと同一のキーである変動共通キーＴを取得し、決定部１３に供給する。
【００２８】
決定部１３は、設定共通キー記憶部１１に記憶された設定共通キーｋｅｙと、変動共通キー取得部１２から供給される変動共通キーＴとを使って、通信に使用するポートを決定する。即ち、例えば、いま、通信装置１０が、ネットワーク１を介して通信装置２０にアクセスしようとしていることとすると、決定部１３は、設定共通キーｋｅｙと変動共通キーＴとから、アクセスしようとする通信装置２０のポートである宛先ポートを決定する。
【００２９】
通信部１４は、決定部１３において決定されたポートを使用し、ネットワーク１を介して通信を行う。即ち、通信部１４は、ネットワーク１を介して、決定部１３で決定された、通信装置２０の宛先ポート宛に、パケットを送信する。また、通信部１４は、通信装置２０からネットワーク１を介して送信されてくるパケットを受信する。
【００３０】
通信装置２０は、設定共通キー記憶データベース部２１、変動共通キー取得部２２、決定部２３、および通信部２４を備えて構成されている。
【００３１】
設定共通キー記憶データベース部２１には、通信装置１０の設定共通キー記憶部１１に記憶されている設定共通キーｋｅｙと同一の設定共通キーｋｅｙが記憶されている。
【００３２】
変動共通キー取得部２２は、所定のタイミングで通信装置１０が取得する変動共通キーＴと同一のキーである変動共通キーＴを取得し、決定部２３に供給する。
【００３３】
決定部２３は、設定共通キー記憶データベース部２１に記憶された設定共通キーｋｅｙと、変動共通キー取得部２２から供給される変動共通キーＴとを使って、通信に使用するポートを決定する。即ち、例えば、いま、通信装置１０が、ネットワーク１を介して通信装置２０にアクセスしようとしていることとすると、決定部２３は、設定共通キーｋｅｙと変動共通キーＴとから、通信装置１０からのアクセスを待ち受けする通信装置２０のポートである受信ポートを決定する。
【００３４】
通信部２４は、決定部２３において決定されたポートを使用し、ネットワーク１を介して通信を行う。即ち、通信部２４は、ネットワーク１を介して、通信装置１０から送信されてくるパケットを、決定部２３で決定された受信ポートで待ち受けて受信する。また、通信部２４は、ネットワーク１を介して通信装置１０にパケットを送信する。
【００３５】
なお、通信装置１０と通信装置２０とがネットワーク１を介して通信する際に、通信装置１０の通信部１４がパケットを送信する宛先となる通信装置２０のポート（宛先ポート）と、通信装置２０の通信部２４が通信装置１０から送信されてくるパケットを待ち受けするポート（受信ポート）とは、後述するように同一の設定共通キーｋｅｙおよび変動共通キーＴを使って決定されるので、どちらも通信装置２０の同一のポートになり、これにより、通信装置２０は、通信装置１０から送信されてくる宛先ポート宛のパケットを、その宛先ポートと同一の受信ポートで受信することができる。
【００３６】
また、通信装置１０の通信部１４が、通信装置２０とのパケットの送受信に使用するポートは、例えば、通信装置１０のアプリケーションによって決定される。
【００３７】
ここで、設定共通キーｋｅｙは、例えば、通信装置１０および２０の利用者間で決められる（設定される）固定のキー（値）である。設定共通キーｋｅｙとしては、例えば、通信装置１０の装置情報（例えば、ＭＡＣ（Media Access Control）アドレス）や、通信装置１０の利用者の個人情報（例えば、ユーザＩＤ（Identification））、あるいは装置情報や個人情報に関連したキー（値）などを採用することができる。
【００３８】
変動共通キーＴは、例えば、通信装置１０および２０の内部時計の時刻によって決められる、その時刻によって変動するキー（値）である。上述したように、通信装置１０および２０の内部時計が計時する時刻は同一であるので、通信装置１０および２０の変動共通キーＴは常に同一のキー（値）となる。
【００３９】
図２は、通信装置１０が、通信装置２０にパケットを送信するときの宛先となる宛先ポートを決定して、通信装置２０との通信を開始する通信開始処理を説明するフローチャートを示している。なお、ここでは、通信装置１０を送信側（例えば、ｗｗｗ（World Wide Web）クライアントなどのように、通信を要求する側）とするとともに、通信装置２０を受信側（例えば、ｗｗｗサーバなどのように通信の要求を待ち受けする側）として、通信装置１０と通信装置２０とが、例えば、ＴＣＰ（Transmission Control Protocol）による通信を行うものとする。
【００４０】
決定部１３は、ステップＳ１１において、設定共通キー記憶部１１に記憶されている設定共通キーｋｅｙを読み出すことにより取得し、ステップＳ１２に進む。ステップＳ１２では、変動共通キー取得部１２が、通信装置１０の内部時計の時刻から変動共通キーＴを生成することにより取得し、決定部１３に供給する。即ち、変動共通キー取得部１２は、例えば、時刻のうちの年、月、日、時、分（さらには、秒）を、その順で並べた値を生成し、この値を変動共通キーＴとして取得し、決定部１３に変動共通キーＴを供給する。
【００４１】
ステップＳ１２の処理後、ステップＳ１３に進み、決定部１３は、設定共通キー記憶部１１から取得した設定共通キーｋｅｙと、変動共通キー取得部１２から供給された変動共通キーＴとを使って、通信装置２０にパケットを送信するときの宛先となる宛先ポートのポート番号Ｘを決定する。即ち、決定部１３は、例えば、式（１）をＴＣＰのポートとして使用することができる範囲のポートのうちの、宛先ポートとなるポートのポート番号Ｘを算出する算術式として用い、ポート番号Ｘを算出し、そのポート番号Ｘのポートを宛先ポートとして決定する。
【００４２】
Ｘ＝（（Ｔ＋ｋｅｙ）％（６５５３５−４９１５２））＋４９１５２
・・・（１）
【００４３】
ここで、式（１）において、％は、モジュロ演算子を表し、Ａ％Ｂは、ＡをＢで除算したときの剰余を表す。
【００４４】
式（１）によれば、例えば、設定共通キーｋｅｙが、利用者の個人情報を表す６桁の数値「○○△△××」で、変動共通キーＴが、西暦ＹＹＹＹ年ＭＭ月ＤＤ日ｈｈ時ｍｍ分ｓｓ秒から生成された数値「ＹＹＹＹＭＭＤＤｈｈｍｍｓｓ」であった場合、それぞれの数値を加算した数値が用いられ、４９１５２〜６５５３５の間の数値が宛先ポートのポート番号Ｘとして算出される。通信装置１０および２０には、このような宛先（受信）ポートのポート番号Ｘを算出する算術式として、同一の算術式が、あらかじめ登録されている。
【００４５】
ステップＳ１３でのポート番号Ｘの宛先ポートの決定後、ステップＳ１４に進み、通信部１４は、通信装置２０のポートのうちの直前のステップＳ１３で決定されたポート番号Ｘのポート（宛先ポート）宛にパケットを送信する（通信開始を要求する）。通信装置２０は、後述するように、ポート番号Ｘのポートで、通信装置１０からのパケットを待ち受けており、従って、通信装置１０の通信部１４が、通信装置２０のポート番号Ｘのポート（宛先ポート）宛に送信してくるパケットを受信することができる。これにより、通信装置１０と通信装置２０とは、通信を開始することができる。
【００４６】
次に、図３のフローチャートを参照して、通信装置２０が行う通信開始処理を説明する。
【００４７】
ステップＳ２１において、決定部２３は、設定共通キー記憶データベース部２１に記憶されている通信装置１０の設定共通キーｋｅｙを読み出すことにより取得し、ステップＳ２２に進む。ステップＳ２２では、変動共通キー取得部２２が、通信装置２０の内部時計の時刻から変動共通キーＴを生成することにより取得し、決定部２３に供給する。
【００４８】
ここで、変動共通キー取得部２２は、通信装置１０の変動共通キー取得部１２と同一の方法によって変動共通キーＴを生成する。従って、変動共通キーＴは、時刻（タイミング）によって変化する可変のキーであるが、任意のタイミングにおいて変動共通キー取得部１２と変動共通キー取得部２２とが生成する変動共通キーＴは、同一である。
【００４９】
ステップＳ２２の処理後、ステップＳ２３に進み、決定部２３は、設定共通キー記憶データベース部２１から取得した設定共通キーｋｅｙと、変動共通キー取得部２２から取得した変動共通キーＴとを使って、式（１）を演算することにより、ポート番号Ｘを算出し、そのポート番号Ｘのポートを、通信装置１０から送信されてくるパケットを待ち受け（受信）する受信ポートとして決定する。
【００５０】
通信装置１０と通信装置２０とのそれぞれが任意のタイミングで生成する変動共通キーＴは同一であり、通信装置１０と通信装置２０とのそれぞれの設定共通キーｋｅｙも同一である。さらに、通信装置１０および２０は、いずれも、同一の式（１）を演算することにより、ポート番号Ｘを算出する。従って、通信装置２０は、通信装置１０が通信を開始する直前に決定する宛先ポートのポート番号Ｘと同一のポート番号Ｘのポートを、受信ポートとして決定することができる。
【００５１】
ステップＳ２４において、通信部２４は、ポート番号Ｘのポート（受信ポート）で通信装置１０からパケットが送信されてくるのを待機し（待ち受け）、通信装置１０からポート番号Ｘのポート（宛先ポート）宛にパケットが送信されてくると、そのパケットをポート番号Ｘのポート（受信ポート）で受信し、これにより通信装置１０との通信を開始することができる。
【００５２】
上述したように、通信装置１０と通信装置２０との間で通信が開始された後、通信装置２０は、ポート番号Ｘのポートを使用して通信装置１０とのネゴシエーションを行い、ネゴシエーションが正常に終了すると、通信の開始（およびネゴシエーション）時に使用したポート番号Ｘのポートをそのまま使用して通信を続行する。あるいは、通信装置２０は、ネゴシエーション後に、その後の通信に使用するポート（ポート番号Ｘのポートと異なるポート）を決定し、そのポートに移行して通信装置１０との通信を続行する。
【００５３】
このように、通信装置１０および２０において、それぞれでしか知り得ない固定の設定共通キーｋｅｙと、任意のタイミングで同一の値となる可変の変動共通キーＴとの両方を用い、特定の算術式によって、時刻が変わるたびに異なる通信装置２０の受信（宛先）ポートを決定して通信を開始するので、設定共通キーｋｅｙ、変動共通キーＴ、およびポート番号Ｘを算出する算術式のうちのいずれか一つでも違っていたら、通信を開始することはできない。従って、ポートスキャンなどによって通信装置２０が送信されてくるパケットを待ち受けしているポート（受信ポート）を特定され難くすることができ、より安全に通信を行う（開始する）ことができる。
【００５４】
なお、通信装置１０がパケットの送受信に使用する（通信部１４の）ポートは、上述したように、通信装置１０のアプリケーションが決定する。通信装置１０がパケットの送受信に使用するポート（のポート番号）は、通信装置１０が通信装置２０に送信するパケットに含められ、通信装置２０は、通信装置１０からのパケットを受信することにより、通信装置１０がパケットの送受信に使用するポート（のポート番号）を認識し、そのポート宛に、通信装置１０へのパケットを送信する。
【００５５】
但し、通信装置１０がパケットの送受信に使用するポートも、上述したように、設定共通キーｋｅｙおよび変動共通キーＴを用いて決定することが可能である。この場合、通信装置１０と通信装置２０とのそれぞれにおいて、それぞれが通信に使用するポート（宛先ポート、受信ポート）として同一のポートを決定する（求める）ことができればよく、通信装置１０がパケットの送受信に使用するポートと、通信装置２０がパケットの送受信に使用するポートとが同一である必要はない。即ち、通信装置１０で決定される宛先ポートと通信装置２０で決定される受信ポートとが同一であり、かつ、通信装置１０で決定される受信ポートと通信装置２０で決定される宛先ポートとが同一であればよい。
【００５６】
次に、通信装置１０および２０において、ある時刻ｎで得られる変動共通キーＴnを用いて算出されるポート番号をＸnと表すこととすると、式（１）と等価な式（２）を演算することによって、通信装置１０は、時刻ｎにおいて、ポート番号Ｘnのポートを宛先ポートとして決定（ステップＳ１３）し、通信装置２０は、時刻ｎにおいて、ポート番号Ｘnのポートを受信ポートとして決定（ステップＳ２３）する。
【００５７】
Ｘn＝（（Ｔn＋ｋｅｙ）％（６５５３５−４９１５２））＋４９１５２
・・・（２）
【００５８】
通信装置１０の通信部１４は、ステップＳ１４において、通信装置２０のＴＣＰのポート番号Ｘnのポート宛へパケットを送信する。一方、通信装置２０の通信部２４は、ステップＳ２４において、ポート番号Ｘnのポートで、通信装置１０からのパケットを待ち受けているので、通信装置１０と通信装置２０とは通信する（通信を開始する）ことができる。
【００５９】
ここで、通信装置２０において、時刻ｎで通信に使われるべきポート番号Ｘnのポート（受信ポート）が、すでに他のアプリケーションによって使用されていた場合には、ポート番号Ｘnのポートを受信ポートとして通信装置１０からのパケットを待ち受けすることができない。
【００６０】
このような場合を考慮して、決定部１３および２３では、バックアップ用のポートを用意することができる。例えば、時刻ｎの直後の時刻ｎ＋１において求められるポート番号Ｘn+1のポートをバックアップ用のポートとすることができる。このポート番号Ｘn+1は、式（２）における時刻に対応する変数ｎをｎ＋１に置換することにより得られる式（３）を演算することにより求められる。
【００６１】
Ｘn+1＝（（Ｔn+1＋ｋｅｙ）％（６５５３５−４９１５２））＋４９１５２
・・・（３）
【００６２】
通信装置２０の通信部２４は、ポート番号Ｘn+1のポートとポート番号Ｘnのポートとのそれぞれを受信ポートとして通信を待機する（パケットの待ち受けをする）。また、通信装置１０は、ポート番号Ｘnのポート、ポート番号Ｘn+1のポート宛の順番で通信装置２０にパケットを送信することを試みる。これにより、通信装置２０で、時刻ｎにおいてポート番号Ｘnのポートが他のアプリケーションで使用されていたとしても、通信装置１０はポート番号Ｘn+1のポート宛にパケットを送信し、通信装置２０はポート番号Ｘn+1のポートで待ち受けするので、通信を開始することができる。
【００６３】
次に、図２と図３とでは、通信装置１０と２０とのそれぞれが、設定共通キーｋｅｙおよび変動共通キーＴから、時刻によって変動する通信装置２０のポート（通信に使用するポート）を決定し、通信装置１０において、そのポート宛にパケットを送信するとともに、通信装置２０において、そのポートでパケットを待ち受けすることにより、ＴＣＰによる通信を行うこととしたが、通信装置２０のポートを変動させるのではなく、その他、例えば、複数のプロトコルを用意しておき、通信装置１０と２０とのそれぞれが、設定共通キーｋｅｙおよび変動共通キーＴから、時刻によって変動するプロトコルを決定し、そのプロトコル（通信に使用するプロトコル）による通信を行うことができる。
【００６４】
そこで、図４は、通信装置１０が通信に使用するプロトコルを決定して、通信装置２０との通信を開始する通信開始処理を説明するフローチャートを示している。
【００６５】
決定部１３は、ステップＳ３１とステップＳ３２とにおいて、図２のステップＳ１１とステップＳ１２とにおける場合と同様にして、設定共通キーｋｅｙと変動共通キーＴとを、それぞれ得る。そして、決定部１３は、ステップＳ３３において設定共通キーｋｅｙと変動共通キーＴとを使って、通信に使用するプロトコルを決定する。
【００６６】
例えば、通信に使用するプロトコルとして、ＴＣＰとＵＤＰ（User Datagram Protocol）とが用意されている場合には、決定部１３は、設定共通キーｋｅｙと変動共通キーＴとの加算値ｋｅｙ＋Ｔが偶数の時には、ＴＣＰとＵＤＰとのうちの一方である、例えば、ＴＣＰの使用を決定し、加算値ｋｅｙ＋Ｔが奇数の時には、他方である、ＵＤＰの使用を決定する。
【００６７】
なお、ＴＣＰやＵＤＰ以外のプロトコルを使用してもよく、また、プロトコルは、規格化または標準化されている以外のものでもあってもよい。さらに、通信に使用するプロトコルは、通信装置１０と通信装置２０との２台の装置間で共通な算術式から算出することもできる。例えば、通信装置１０と通信装置２０とにおいて、５０種類のプロトコルを使用することができる場合には、式（４）などを用いて１〜５０の値を算出して、通信に使用するプロトコルＰを決定することができる。
【００６８】
Ｐ＝（（Ｔ＋ｋｅｙ）％５０）＋１
・・・（４）
【００６９】
ステップＳ３３でのプロトコルの決定後、ステップＳ３４に進み、通信部１４は直前のステップＳ３３で決定されたプロトコルを使用して通信装置２０の、例えば、固定のポート（あらかじめ決まっているポート）宛にパケット（データ）を送信する。
【００７０】
次に、図５は、通信装置２０が通信に使用するプロトコルを決定して、通信装置１０との通信を開始する通信開始処理を説明するフローチャートを示している。
【００７１】
決定部２３は、ステップＳ４１とステップＳ４２とにおいて、図３のステップＳ２１とステップＳ２２とにおける場合と同様にして、設定共通キーｋｅｙと変動共通キーＴとを、それぞれ得る。そして、決定部２３は、ステップＳ４３において、図４のステップＳ３３における場合と同様にして、通信に使用するプロトコルを決定する。
【００７２】
従って、通信装置２０は、通信装置１０が通信を開始する直前に決定するプロトコルと同一のプロトコルを決定することができる。そして、ステップＳ４４において、通信部２４は、通信装置１０から、直前のステップＳ４３で決定されたプロトコルを使用して固定のポート宛のパケットが送信されてくるのを待ち受け、通信装置１０からのパケットが送信されてくると、そのパケットを受信し、通信装置１０との通信を開始する。
【００７３】
このように、通信装置１０および２０において、それぞれでしか知り得ない固定の設定共通キーｋｅｙと、任意のタイミングで同一の値となる可変の変動共通キーＴとの両方を使用して、時刻が変わるたびに異なるプロトコルを決定して通信を開始するので、通信に使用するプロトコルを特定され難くすることができ、より安全に通信を行う（開始する）ことができる。
【００７４】
なお、通信の開始後は、通信装置１０と通信装置２０とでは、図２および図３における場合と同様に、その後の通信に使用するポートまたはプロトコルを、通信の開始時のままにして、あるいは変更（決定）して、その後の通信を行うことができる。
【００７５】
次に、図６は、通信装置１０の他の構成例を示すブロック図を示しており、図１の通信装置１０と対応する部分には、対応する符号が付してある。
【００７６】
図６の通信装置１０には、暗号処理部３１が、さらに設けられている。暗号処理部３１は、設定共通キー記憶部１１から設定共通キーｋｅｙを取得するとともに、変動共通キー取得部１２から変動共通キーＴを取得し、その設定共通キーｋｅｙと変動共通キーＴとを用いて暗号化方式（アルゴリズム）および暗号キーを決定する。そして、暗号処理部３１は、通信装置２０との間で通信する通信データ（パケットに配置されるデータ）に対し、決定した暗号キーを用い、決定した暗号化方式による暗号処理を施す。即ち、暗号処理部３１は、通信装置２０に送信する際に通信データを暗号化して通信部１４に供給し、また通信装置２０から送信され、通信部１４で受信された通信データの暗号を復号する。
【００７７】
このように、設定共通キーｋｅｙおよび変動共通キーＴを用いて通信データの暗号処理（暗号化、復号）を行うことにより、より安全に通信することができる。ここで、通信装置１０において、図６で説明したように暗号処理を行う場合には、通信装置２０にも、暗号処理部３１と同様のブロックを設け、暗号処理を行うようにする必要がある。
【００７８】
なお、上述した構成例では、通信装置１０と通信装置２０との２台の装置間で、タイムサーバ２を利用して内部時計の同期を取る（同一の時刻を計時する）ようにしたが、通信装置１０と通信装置２０とでは、タイムサーバ２を使用せずに（その他の手段によって）、内部時計の同期を取るようにしてもよい。また、変動共通キーＴとしては、時刻の他に、例えばワンタイムパスワードを使用してもよく、その他、任意の時刻に同一となる可変の値を使用することができる。また、ポート番号Ｘを算出する算術式は、通信装置１０と通信装置２０との２台の装置間で同一であれば、どれだけ複雑な式であってもよい。
【００７９】
また、通信装置２０は、通信装置１０以外の通信装置との通信、即ち、複数の通信装置との通信を行うようにすることができる。この場合、通信装置２０の設定共通キー記憶データベース部２１には、通信相手となりうる複数の通信装置の設定共通キーｋｅｙが記憶される。そして、決定部２３は、設定共通キー記憶データベース部２１から、複数の通信装置それぞれの設定共通キーｋｅｙを読み出して取得し、図３や図５で説明した通信開始処理を、複数の通信装置それぞれについて並列して行う。この場合、通信装置２０との通信は、設定共通キー記憶データベース部２１に設定共通キーｋｅｙが記憶されている通信装置のみが行うことができる。
【００８０】
なお、通信装置２０の設定共通キー記憶データベース部２１に記憶させる、複数の通信装置のそれぞれの設定共通キーｋｅｙは、互いに異なっている必要はなく、偶然一致していてもよい。また、共通のグループとされる複数の通信装置が、同一の設定共通キーｋｅｙを使用してもよい。
【００８１】
さらに、図２および図３では、動的にポートを決定して、固定のプロトコルを使用して通信を行い、図４および図５では、動的にプロトコルを決定して、固定のポートを使用して通信を行うようにしたが、通信装置１０および２０では、設定共通キーｋｅｙと変動共通キーＴとを使用して、ポートおよびプロトコルの両方を動的に決定し、そのポートおよびプロトコルを使用して通信を行うようにしてもよい。この場合、通信の安全性を、より強固に確保することができる。
【００８２】
また、変動共通キーＴ、ひいては、通信装置２０のポートや、通信装置１０および２０が通信に使用するプロトコルを動的に決定する間隔は、通信装置１０と通信装置２０との間で、ポートやプロトコルを変更するタイミングの同期が取れていれば、一定の間隔であってもよいし、不定の間隔であってもよい。但し、ポートやプロトコルを動的に決定する間隔は、通信装置１０から通信装置２０にパケットが送信されるときの遅延時間以上の時間とする必要がある。
【００８３】
さらに、決定部１３および決定部２３によるポートやプロトコルの決定は、設定共通キーｋｅｙと変動共通キーＴとの両方を用いて行うのではなく、設定共通キーｋｅｙのみを用いて行ってもよく、変動共通キーＴのみを用いて行ってもよい。また、暗号部３１が暗号処理（暗号化または復号）に用いる暗号キーや暗号化方式も、設定共通キーｋｅｙのみ、または変動共通キーＴのみを用いて決定してもよい。
【００８４】
さらに、パックアップ用のポートとしては、１つのポートではなく、２つ以上の数のポートを決定するようにしてもよい。即ち、例えば、ポート番号Ｘn+1のポートの他、時刻ｎの直前の時刻ｎ−１で求められるポート番号Ｘn-1のポートを、バックアップ用のポートとすることができる。さらに、バックアップ用のポートは、式（２）と等価な式（３）以外の式、即ち、式（２）とは異なる算術式によって算出するようにすることも可能である。
【００８５】
また、ポートやプロトコルは、算術式を演算することによって算出して決定する他、例えば、設定共通キーｋｅｙや変動共通キーＴを入力としてポート（ポート番号Ｘ）やプロトコル（の情報）を出力するテーブルを用いて決定することも可能である。
【００８６】
次に、上述した一連の処理は、専用のハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータやマイクロコンピュータ等にインストールされる。
【００８７】
そこで、図７は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【００８８】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やＲＯＭ１０３に予め記録しておくことができる。
【００８９】
あるいはまた、プログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto Optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体１１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。
【００９０】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部１０８で受信し、内蔵するハードディスク１０５にインストールすることができる。
【００９１】
コンピュータは、ＣＰＵ(Central Processing Unit)１０２を内蔵している。ＣＰＵ１０２には、バス１０１を介して、出力部１０６（例えば、液晶ディスプレイなど）、入力部１０７、通信部１０８（例えば、ネットワークインターフェースカードなど）、ドライブ１０９のインターフェースである入出力インターフェース１１０が接続されており、ＣＰＵ１０２は、入出力インターフェース１１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部１０７が操作等されることにより指令が入力されると、それにしたがって、ＲＯＭ(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、また、ＣＰＵ１０２は、ハードディスク１０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１０８で受信されてハードディスク１０５にインストールされたプログラム、またはドライブ１０９に装着されたリムーバブル記録媒体１１１から読み出されてハードディスク１０５にインストールされたプログラムを、ＲＡＭ(Random Access Memory)１０４にロードして実行する。これにより、ＣＰＵ１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。
【００９２】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【図面の簡単な説明】
【００９３】
【図１】本発明を適用した通信システムの一実施の形態の構成例を示すブロック図である。
【図２】通信装置１０の通信開始処理を説明するフローチャートである。
【図３】通信装置２０の通信開始処理を説明するフローチャートである。
【図４】通信装置１０の通信開始処理を説明するフローチャートである。
【図５】通信装置２０の通信開始処理を説明するフローチャートである。
【図６】通信装置１０の他の構成例を示すブロック図である。
【図７】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【００９４】
１  ネットワーク，  ２  タイムサーバ，  １０  通信装置，  １１  設定共通キー記憶部，  １２  変動共通キー取得部，  １３  決定部，  １４  通信部，  ２０  通信装置，  ２１  設定共通キー記憶データベース部，  ２２  変動共通キー取得部，  ２３  決定部，  ２４  通信部，  ３１  暗号処理部
【図１】
2006191263.tif 000003
【図２】
2006191263.tif 000004
【図３】
2006191263.tif 000005
【図４】
2006191263.tif 000006
【図５】
2006191263.tif 000007
【図６】
2006191263.tif 000008
【図７】
2006191263.tif 000009