JP2008104040A - 共通鍵生成装置および共通鍵生成方法 - Google Patents
共通鍵生成装置および共通鍵生成方法 Download PDFInfo
- Publication number
- JP2008104040A JP2008104040A JP2006285874A JP2006285874A JP2008104040A JP 2008104040 A JP2008104040 A JP 2008104040A JP 2006285874 A JP2006285874 A JP 2006285874A JP 2006285874 A JP2006285874 A JP 2006285874A JP 2008104040 A JP2008104040 A JP 2008104040A
- Authority
- JP
- Japan
- Prior art keywords
- common key
- key
- frame
- encrypted
- common
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】共通鍵暗号方式で用いられる共通鍵を生成する共通鍵生成装置であって、比較的簡易な構成により暗号の安全度を中程度に保つことができ、かつ、暗号化通信を行う相手の数の暗号鍵を管理する必要がない、共通鍵生成装置を提供する。
【解決手段】共通鍵生成装置1aおよび1bは、データ5a〜5cごとに異なる鍵素材k2a〜k2cに基づいて共通鍵ka〜kcを生成する。共通鍵生成装置1aおよび1bは、異なる値の鍵素材に対しては、事実上、異なる値の共通鍵を生成するように構成されている。暗号化データ6a〜6cは、共通鍵ka〜kcにより暗号化された部分とクリアテキストの部分を有す。後者の部分には共通鍵生成装置1aが用いた鍵素材k2a〜k2cが含まれ、それらは共通鍵生成装置1bにおいて共通鍵ka〜kcの生成に利用される。
【選択図】図1
【解決手段】共通鍵生成装置1aおよび1bは、データ5a〜5cごとに異なる鍵素材k2a〜k2cに基づいて共通鍵ka〜kcを生成する。共通鍵生成装置1aおよび1bは、異なる値の鍵素材に対しては、事実上、異なる値の共通鍵を生成するように構成されている。暗号化データ6a〜6cは、共通鍵ka〜kcにより暗号化された部分とクリアテキストの部分を有す。後者の部分には共通鍵生成装置1aが用いた鍵素材k2a〜k2cが含まれ、それらは共通鍵生成装置1bにおいて共通鍵ka〜kcの生成に利用される。
【選択図】図1
Description
本発明は、共通鍵暗号方式に用いられる共通鍵を生成する装置および方法に関する。
暗号方式には、暗号化と復号化に同じ鍵を用いる共通鍵暗号方式(秘密鍵暗号方式、または対称鍵暗号方式ということもある)と、暗号化と復号化に異なる鍵を用いる公開鍵暗号方式がある。公開鍵暗号方式に比べて、共通鍵暗号方式は暗号化や復号化を高速に行うことができるという利点があり、様々な用途で使われている。共通鍵暗号方式の代表的な規格にはDES(Data Encryption Standard)やAES(Advanced Encryption Standard)がある。なお、以下では共通鍵暗号方式における暗号化鍵と復号化鍵をまとめて共通鍵とよぶ。
しかし、共通鍵暗号方式では、第三者に共通鍵が漏洩すると暗号文が解読される危険性が高いので、第三者に対して共通鍵を秘密に保つことが重要である。具体的には下記(1)と(2)の観点を考慮する必要がある。
(1)暗号化通信を始める前に、メッセージの送信者と受信者(すなわち、暗号化する側と復号化する側)が共通鍵を共有する必要がある。共通鍵を共有する方法には、例えば、メッセージの送信者が共通鍵を生成して、通信路を介して受信者にその共通鍵を送信する方法がある。しかし、その場合、いかにして第三者には共通鍵の内容が分からないように共通鍵を送信するのかという問題が生じる。
(2)同じ一つの共通鍵を使って何度も暗号化通信を繰り返すと、第三者が暗号文を傍受して共通鍵を推測し、以降の暗号文を解読してしまうという危険性が増す。暗号文を傍受されても共通鍵が推測されにくいようにする必要がある。
上記(1)と(2)の問題に対しては、様々な方法が提案され実際に利用されている。
例えば、特許文献1に記載の暗号装置は、(2)で述べた危険性を減らすため、規則的なパターンが暗号文に周期的に現れるのを防いでいる。具体的には、複数のフレームからなる超フレームを暗号化する際、フレーム同期パターンを検出することにより超フレーム内でのフレーム番号を数え、フレーム番号ごとに異なる暗号鍵で当該フレームを暗号化する。そして、超フレーム同期パターンを除く超フレーム全体を別の暗号鍵で暗号化する。以上の構成によって、特許文献1に記載の暗号装置は、フレーム同期パターンが同じ暗号鍵で暗号化されるためにフレーム周期で規則的なパターンが暗号文に現れる、ということを防いでいる。
例えば、特許文献1に記載の暗号装置は、(2)で述べた危険性を減らすため、規則的なパターンが暗号文に周期的に現れるのを防いでいる。具体的には、複数のフレームからなる超フレームを暗号化する際、フレーム同期パターンを検出することにより超フレーム内でのフレーム番号を数え、フレーム番号ごとに異なる暗号鍵で当該フレームを暗号化する。そして、超フレーム同期パターンを除く超フレーム全体を別の暗号鍵で暗号化する。以上の構成によって、特許文献1に記載の暗号装置は、フレーム同期パターンが同じ暗号鍵で暗号化されるためにフレーム周期で規則的なパターンが暗号文に現れる、ということを防いでいる。
あるいは、一定期間が経過するたびに共通鍵を更新することにより、(2)で述べた危険性を減らすことができる。しかし、更新した新たな共通鍵を送信者と受信者が共有する際には、上記(1)の問題が再び生じる。
例えば、特定の一組の送信者と受信者の間でのみ暗号化通信を行う場合なら、送信者が共通鍵を生成し、共通鍵の内容を紙に書いてその紙を受信者に手渡しすることによって、上記(1)の問題を解決してもよい。ただしこの方法は、多くの相手と暗号化通信を行う場合には適さず、共通鍵を更新するたびに煩わしい手作業が必要となる、という欠点がある。
暗号化の対象がIP(Internet Protocol)パケットの場合は、非特許文献1のIPsec(Security Architecture for Internet Protocol)により上記(1)と(2)の問題をともに解決することができる。IPsecは、IPパケットを暗号化するための規格であり、共通鍵暗号方式を採用している。IPsecは複数のプロトコルと暗号化アルゴリズムの集まりであり、そのうちの一つが鍵交換プロトコルのIKE(Internet Key Exchange)である。
IKEによって、送信者と受信者は安全に(すなわち第三者に内容を知られることなく)通信路を介して共通鍵の生成に必要な情報を交換することができ、煩わしい手動の操作を必要とせずに(1)の問題を解決することができる。共通鍵を更新することは「リキー(rekey)」と呼ばれるが、一定期間ごとに(または通信量が所定のバイト数を超えるごとに)IKEを使って自動的にリキーを行うことにより、上記(2)の問題も解決することができる。
しかしながら、このように自動的かつ動的に鍵交換を行うシステムには、下記(3)〜(5)の問題がある。
(3)リキーを行っている最中には暗号化通信を行うことができない。
(3)リキーを行っている最中には暗号化通信を行うことができない。
(4)IKEは比較的複雑な仕組みなので、ルータなどの装置の実装が複雑であり、鍵交換の際に不具合が発生しやすい。
(5)送信者と受信者の一方の装置に故障が発生すると、新たに共通鍵を共有するステップから始めなくてはならない。そのための鍵交換において、(4)の理由から、他方の装置にも不具合が発生するかもしれない。
(5)送信者と受信者の一方の装置に故障が発生すると、新たに共通鍵を共有するステップから始めなくてはならない。そのための鍵交換において、(4)の理由から、他方の装置にも不具合が発生するかもしれない。
また、共通鍵暗号方式には下記(6)の問題もある。
(6)送信者と受信者の組ごとに異なる共通鍵が必要である。つまり、AとBの間で使われる共通鍵kABと、AとCの間で使われる共通鍵kACは、異なっていなくてはならない。もしkABとkACが等しいと、AとBの間の暗号化通信がCにより解読されてしまい、秘密を保てないからである。よって、N対Nの関係で暗号化通信を行う場合には、相手ごとに異なる共通鍵をそれぞれの装置が管理する必要がある。
(6)送信者と受信者の組ごとに異なる共通鍵が必要である。つまり、AとBの間で使われる共通鍵kABと、AとCの間で使われる共通鍵kACは、異なっていなくてはならない。もしkABとkACが等しいと、AとBの間の暗号化通信がCにより解読されてしまい、秘密を保てないからである。よって、N対Nの関係で暗号化通信を行う場合には、相手ごとに異なる共通鍵をそれぞれの装置が管理する必要がある。
このように複数の共通鍵を管理する構成は、例えば特許文献2に見られる。特許文献2は、受動光ネットワーク(PON;Passive Optical Network)システムにおいて、下り方向に送信されるイーサネットフレームを暗号化する技術を開示している(「イーサネット」および「Ethernet」は登録商標)。
下り方向とは親局から子局に向かう方向である。特許文献2のシステムでは、親局であるOLT(Optical Line Terminal;光加入者線終端装置)に子局であるONT(Optical Network Terminal;光網終端装置)が複数接続され、各ONTには複数の端末(パーソナルコンピュータ等)が接続されている。OLTはONTごとに異なる暗号鍵を保持している。下り方向のイーサネットフレームは、一つのOLTからそのOLTに接続された複数のONTへ同報されるが、その際にOLTは、フレームの宛先がどのONTに接続された端末なのかを判別し、当該ONTに対応する暗号鍵でそのイーサネットフレームを暗号化する。したがって、他のONTはそのイーサネットフレームを受信しても復号化することができず、内容を知ることができない。
上記(6)の問題は、単に管理すべき共通鍵の個数が多いというだけではない。例えば、上記(2)の危険性を減らすために、それら多くの共通鍵のそれぞれについて一定期間ごとにリキーを行うことが好ましいが、共通鍵の数が多いほど、上記(3)〜(5)の問題はより深刻となる。すなわち、スケーラビリティに制約がある。
なお、上記(6)の説明におけるA、B、Cは、一般にはネットワーク上の中継装置であって個々の端末ではない。例えば、IPsecによりIPパケットを暗号化する場合、暗号化を行うのはルータなどのネットワーク層の中継装置である。よって、正確には、上記(6)は、ルータ同士の組ごとに異なる共通鍵が必要だという意味である。
例えば、図28に示した構成のネットワークにおいてIPsecによる暗号化通信を行う場合、ルータ8aと8bはそれぞれ共通鍵kdを記憶しており、ルータ8aと8bの間のネットワーク3bでは、IPパケットが共通鍵kdによって暗号化された状態で送信される。図28において、ルータ8aにはネットワーク3aを介してPC(Personal Computer)4a〜4cが接続されており、ルータ8bにはネットワーク3cを介してPC4d〜4fが接続されている。
ここで、PC4aからPC4dにIPパケット250aを送信し、PC4bからPC4eにIPパケット250bを送信し、PC4cからPC4fにIPパケット250cを送信する場合、これら送信元も送信先も異なる三つのIPパケット250a〜250cのそれぞれは、同じ共通鍵kdにより暗号化されて暗号化IPパケット260a〜260cとなり、その後、共通鍵kdにより復号化されて復号化IPパケット280a〜280cとなる。すなわち、共通鍵kdはルータ8aと8bの組に対して一意に定められているため、送信元と送信先のPCの組み合わせによらず、常に同じ共通鍵kdが利用される。つまり、送信元と送信先のPCの組み合わせごとに異なる共通鍵で暗号化する場合に比べて、暗号化の粒度は粗い。
実開平5−85140号公報
RFC4301 Security Architecture for the Internet Protocol http://www.ietf.org/rfc/rfc4301.txt (閲覧確認:2006年10月6日)
特開2003−60633号公報
上記のことから、共通鍵暗号方式に関する一般的な傾向として次のことが言える。手動で共通鍵を設定し、同じ共通鍵を長期間にわたって使い続ける(共通鍵が固定的である)場合には、システムは比較的簡単で済むが、暗号の安全度が低い。一方、IKEを利用するなどして自動的かつ動的にリキーを行う場合には、複雑なシステムが必要であり複雑さに起因する問題も生じるが、暗号の安全度が高い。
しかし、暗号化通信を行う目的や用途によっては、システムの複雑さと暗号の安全度がともに中程度となるような方法が適切である。
また、上記(6)の問題に対して、暗号化通信を行う相手の数だけ共通鍵を管理する必要をなくせば、共通鍵暗号方式の適用範囲を広げることができる。
また、上記(6)の問題に対して、暗号化通信を行う相手の数だけ共通鍵を管理する必要をなくせば、共通鍵暗号方式の適用範囲を広げることができる。
本発明の目的は、共通鍵暗号方式で用いられる共通鍵を生成する共通鍵生成装置であって、比較的簡易な構成により暗号の安全度を中程度に保つことができ、かつ、暗号化通信を行う相手の数の暗号鍵を管理する必要がない共通鍵生成装置を提供することである。また、そのような共通鍵生成装置による共通鍵生成方法を提供することも本発明の目的である。
本発明による共通鍵生成装置は、共通鍵暗号方式に用いられる共通鍵を生成する共通鍵生成装置であって、クリアテキストの状態のヘッダ部と、ペイロード部とを有する入力データを受け付ける受付手段と、鍵素材を格納する鍵素材格納手段と、前記入力データの暗号化のために前記共通鍵を生成する第一の局面では、前記鍵素材を前記鍵素材格納手段から読み取り、前記鍵素材格納手段内の前記鍵素材を更新し、前記入力データの復号化のために前記共通鍵を生成する第二の局面では、前記ヘッダ部の所定の部分から前記鍵素材を読み取る、鍵素材読み取り手段と、前記鍵素材読み取り手段が読み取った前記鍵素材に基づいて前記共通鍵を生成する共通鍵生成手段と、を備えることを特徴とする。
本発明による共通鍵生成方法は、上記共通鍵生成装置によって実行される方法である。
通信路上の暗号化側と復号化側の双方に上記の共通鍵生成装置を備えて利用すると、鍵交換プロトコルによる鍵交換なしに、暗号化側と復号化側の双方が同じ値の共通鍵を生成する。すなわち、暗号化側で、ヘッダ部の所定の部分に鍵素材を含めたデータを生成すれば、復号化側に備えられた共通鍵生成装置は、上記第二の局面の動作により、暗号化に用いられたのと同じ値の共通鍵を生成する。また、暗号化側に備えられた共通鍵生成装置は上記第一の局面の動作により共通鍵を生成するので、暗号化のたびに、つまり入力データごとに、値が更新された鍵素材に基づいて共通鍵が生成される。
通信路上の暗号化側と復号化側の双方に上記の共通鍵生成装置を備えて利用すると、鍵交換プロトコルによる鍵交換なしに、暗号化側と復号化側の双方が同じ値の共通鍵を生成する。すなわち、暗号化側で、ヘッダ部の所定の部分に鍵素材を含めたデータを生成すれば、復号化側に備えられた共通鍵生成装置は、上記第二の局面の動作により、暗号化に用いられたのと同じ値の共通鍵を生成する。また、暗号化側に備えられた共通鍵生成装置は上記第一の局面の動作により共通鍵を生成するので、暗号化のたびに、つまり入力データごとに、値が更新された鍵素材に基づいて共通鍵が生成される。
鍵素材の値が異なれば共通鍵の値も実質的に異なるように上記共通鍵生成手段を適切に構成しておくことにより、暗号化のたびに実質的に異なる鍵を生成することが可能である。また、上記のとおり、通信路上の暗号化側と復号化側にそれぞれ備えられた共通鍵生成装置は同じ値の共通鍵を生成する。よって、本発明によれば、暗号化側の装置と復号化側の装置が鍵交換プロトコルにしたがって鍵交換を行い、リキーを行う必要なしに、実質的に入力データごとに異なる鍵を使ってデータの暗号化を行うことができる。その結果、暗号が解読される危険性を減らすこともできる。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、実質的に同一のものに対しては、同じ番号または添え字のみが異なる番号を付して説明を省略する。
本発明の共通鍵生成装置は、データを暗号化するために共通鍵を生成するのにも用いられ、データを復号化するために共通鍵を生成するのにも用いられる。よって、好ましい実施形態の一例は、本発明の共通鍵生成装置がネットワーク上の中継装置の一部として実装される実施形態であり、以下では主にそのような実施形態について述べる。
まず図1〜図2を参照して、本発明による共通鍵生成装置がネットワーク上の中継装置の一部として実装される実施形態について一般的な説明を行う。次に、図3を参照して本発明による共通鍵生成装置が共通鍵の生成に利用する情報を説明し、図4を参照して共通鍵生成装置の基本的な構成を説明し、図5を参照して図1のより好適な実施形態を説明する。その後、図6〜図17を参照して、OSI(Open Systems Interconnection)参照モデルにおけるデータリンク層(レイヤ2ともいう)の中継装置の一部として本発明による共通鍵生成装置が実装される実施形態について説明する。そして、図18〜図26を参照して、OSI参照モデルにおけるネットワーク層(レイヤ3ともいう)の中継装置の一部として本発明による共通鍵生成装置が実装される実施形態について説明する。
図1は、本発明の共通鍵生成装置を備えた中継装置を含むネットワーク上で行われる暗号化通信を示す模式図である。
図1において、中継装置2aおよび2bは、それぞれ共通鍵生成装置1aおよび1bを備え、ネットワーク3bを介して接続されている。また、中継装置2aにはネットワーク3aを介してPC4a〜4cが接続されており、中継装置2bにはネットワーク3bを介してPC4d〜4fが接続されている。例えばPC4aからPC4dにデータを送るとき、そのデータは、PC4a、中継装置2a、中継装置2b、PC4dを含む通信路を経由する。
図1において、中継装置2aおよび2bは、それぞれ共通鍵生成装置1aおよび1bを備え、ネットワーク3bを介して接続されている。また、中継装置2aにはネットワーク3aを介してPC4a〜4cが接続されており、中継装置2bにはネットワーク3bを介してPC4d〜4fが接続されている。例えばPC4aからPC4dにデータを送るとき、そのデータは、PC4a、中継装置2a、中継装置2b、PC4dを含む通信路を経由する。
詳しくは後述するが、中継装置2aおよび2bは、レイヤ2の中継装置でもよく、レイヤ3の中継装置でもよい。前者の場合、送受信されるデータ(5a〜5c、6a〜6c、7a〜7c)は例えばMAC(Media Access Control)フレームであり、後者の場合、送受信されるデータは例えばIPパケットである。
図1では、送信元のPC(4a〜4cのいずれか)からデータ5aが中継装置2aを経由して送信されるとき、中継装置2aに備えられた共通鍵生成装置1aが鍵素材k2aに基づいて共通鍵kaを生成する。そしてデータ5aは共通鍵kaにより暗号化されて暗号化データ6aとなる。なお、詳しくは後述するが、暗号化データ6aは、共通鍵kaにより暗号化された部分とクリアテキストの部分とを有し、鍵素材k2aをクリアテキストの部分に含む。暗号化データ6aはネットワーク3bを経由して中継装置2bで受信される。受信後、中継装置2bに備えられた共通鍵生成装置1bが鍵素材k2aに基づいて共通鍵kaを生成する。共通鍵生成装置1aと1bは同じアルゴリズムにより共通鍵を生成するため、同じ鍵素材k2aからは同じ共通鍵kaが生成される。そして、暗号化データ6aは共通鍵kaによって復号化されて復号化データ7aとなり、送信先のPC(4d〜4fのいずれか)に送信される。
同様にして、データ5bは、鍵素材k2bに基づいて生成される共通鍵kbによって暗号化されて暗号化データ6b(鍵素材k2bを含む)となり、暗号化データ6bは共通鍵kbによって復号化されて復号化データ7bとなる。また、データ5cも同様にして、鍵素材k2cに基づいて生成される共通鍵kcによって暗号化されて暗号化データ6c(鍵素材k2cを含む)となり、暗号化データ6cは共通鍵kcによって復号化されて復号化データ7cとなる。
ここで、鍵素材k2a〜k2cは互いに異なる値である。つまり、データ5a〜5cごとに異なる値の鍵素材k2a〜k2cが利用される。そして、異なる値の鍵素材k2a〜k2cからは異なる値の共通鍵ka〜kcが生成されるように共通鍵生成装置1aおよび1bが構成されている(詳細は後述)。なお、正確に言えば、その構成は、異なる値の二つの鍵素材から同じ値の共通鍵が生成される割合を、無視しても実際の運用に支障がない程度に低くする構成であればよい(つまり、理論上、異なる値の二つの鍵素材から同じ値の共通鍵が生成される可能性があってもかまわない)。そのように共通鍵生成装置1aおよび1bを構成すると、事実上、共通鍵ka〜kcは互いに異なる値となる。
なお、共通鍵生成装置1aと1bは、同じアルゴリズムで鍵素材から共通鍵を生成する。そのアルゴリズムを第三者に対して秘密にすれば、第三者が暗号化データ6a〜6cを傍受しても、そこに含まれる鍵素材k2a〜k2cから共通鍵ka〜kcを生成することは不可能である。あるいは、第三者には秘密の情報を共通鍵生成装置1aと1bが予め共有し、その情報と鍵素材k2a〜k2cの両方に基づいて共通鍵ka〜kcを生成してもよい。それにより、第三者が鍵素材k2a〜k2cから共通鍵ka〜kcを生成して暗号化データ6a〜6cを解読することを防げる。
いずれにしろ、事実上、共通鍵ka〜kcは互いに異なる値である。換言すれば、中継装置2aと2bの間の通信路において、暗号化のために使われる共通鍵は非常に頻繁に変更されている。共通鍵暗号方式において共通鍵を変更する頻度が高いことは、セキュリティレベルの向上に寄与する。また、上記の仕組みは、共通鍵生成装置1aと1bの間でIKEのような複雑なプロトコルによって情報を交換する必要がないという利点もある。さらに、データ5a〜5cごとに異なる値の鍵素材k2a〜k2cは、例えば、単純なカウンタの値でもよく、暗号化通信を行う送信元と送信先の組ごとに共通鍵を管理する必要もない。
図1では、共通鍵ka〜kcの値が互いに異なることを、共通鍵ka〜kcのハッチングの線の向きを変えることによって表している。また、暗号化データ6a〜6cが互いに異なる鍵によって暗号化されていることを、暗号化データ6a〜6cのハッチングの線の向きを変えることによって表している。
また、データ5a〜5cは、PC4a〜4cのいずれが送信元でもよく、PC4d〜4fのいずれが送信先でもよい。例えば、図2に示すように、データ5a〜5cの送信元と送信先が全て異なっていてもよく(場合(A))、送信元が全て同じで送信先が全て異なっていてもよく(場合(B))、送信元が全て異なっており送信先が全て同じでもよく(場合(C))、送信元と送信先が全て同じでもよい(場合(D))。
場合(A)〜(D)のいずれであっても、共通鍵ka、kb、kcは互いに異なる値であり、共通鍵生成装置1aと1bの双方が同じ値の共通鍵を生成する点は同じである。これは本発明の特徴であり、例えば従来のIPsecによる暗号化通信(図28)と全く異なる特徴である。図28では、ルータ8aと8bの組に対して共通鍵kdが定められており、リキーを行わない限り共通鍵kdの値は変わらない。そして、その同じ共通鍵kdが、異なる三つのIPパケット250a〜250cの暗号化および復号化に使われる。このことは、暗号化IPパケット260a〜260cの全てを同じパターンのハッチングとすることにより図にも表してある。
図3は、本発明による共通鍵生成装置(図1の共通鍵生成装置1aおよび1bに相当)が、このようにデータごとに異なる共通鍵を生成するために用いる情報を示す図である。図3において、実線は必須であることを示し、破線は、必須ではないが利用する方が好ましいことを示す。
本発明による共通鍵生成装置は、暗号化および復号化のための共通鍵kを生成する。共通鍵kを生成するのに必須の情報は、鍵素材k2である。一般に鍵素材とは鍵を生成するのに必要な情報を意味するが、ここでの鍵素材k2は、「暗号化の対象となるデータごとに実質的に異なる値である」という特定の条件を満たす情報である。
例えば、MACフレームを暗号化するための共通鍵を生成する実施形態においては、鍵素材k2として、MACフレームごとに異なる値をとるシーケンス番号を利用することができる。また、IPパケットを暗号化するための共通鍵を生成する実施形態においては、鍵素材k2として、IPパケットごとに異なる値をとるシーケンス番号を利用することができる。これらのシーケンス番号の詳細は後述する。
このように、暗号化の対象となるデータごとに実質的に異なる値である鍵素材k2に基づいて共通鍵kを生成することにより、共通鍵kは、暗号化の対象となるデータごとに実質的に異なる値となる。
なお、鍵素材k2として具体的にどのような情報を用いる場合であっても、鍵素材k2のビット長は有限である。よって、理論的には、異なるデータに対して同じ値の鍵素材k2を利用することもありうる。しかし、適切なビット長の鍵素材k2を用いることにより、異なるデータに対して同じ値の鍵素材k2が利用される頻度を、実用上無視しても問題がない程度にまで低くすることができる。よって、以下では、「鍵素材k2は、暗号化の対象となるデータごとに実質的に異なる値である」と見なして説明する。
上記のような鍵素材k2を用いて共通鍵kを生成することにより、例えば一定期間ごとにIKEによりリキーを行う従来の構成に比べて、共通鍵kが変化する頻度が非常に高まる。その結果、暗号化されたデータを第三者に傍受されても共通鍵kが推測されにくくなる。
さらに暗号の強度を高めるためには、共通鍵kの生成に、送信先・送信元情報k1およびマスター鍵k3をも用いることが望ましい。特に、送信先・送信元情報k1を用いることが望ましい。
ここで、送信先・送信元情報k1は、暗号化の対象となるデータ(MACフレームやIPパケットなど)の送信先および/または送信元に関する情報であり、例えば、送信先および/または送信元のアドレスの一部または全部である。また、マスター鍵k3は、共通鍵生成装置内に予め設定された情報であり、漏洩や改竄が行われないように、例えばセキュリティチップ内に記録されている。マスター鍵k3は、共通鍵生成装置の利用者が設定する情報である事前共有鍵k0に基づいて予め生成されてもよい。事前共有鍵k0もマスター鍵k3と同様にセキュリティチップ内に記録されている。
共通鍵kの生成に、鍵素材k2だけでなく送信先・送信元情報k1やマスター鍵k3も用いることが好ましい理由は次のとおりである。
例えば鍵素材k2としてシーケンス番号を利用する場合に、鍵素材k2だけから共通鍵kを生成すると、その生成アルゴリズムによっては、連続して生成される複数の共通鍵kに規則性が生じる可能性がある。そこで、送信先・送信元情報k1を利用して、共通鍵kのランダム性を高めることが望ましい。一般に通信は、いつ誰が誰に対して行うのかが不規則であり、予測困難である。したがって、共通鍵kを生成するのに、送信先・送信元情報k1のこの不規則性を利用することが望ましい。また、第三者には秘密にされている情報であるマスター鍵k3を利用することにより、さらに共通鍵kの推測のされにくさを高めることが可能となる。
例えば鍵素材k2としてシーケンス番号を利用する場合に、鍵素材k2だけから共通鍵kを生成すると、その生成アルゴリズムによっては、連続して生成される複数の共通鍵kに規則性が生じる可能性がある。そこで、送信先・送信元情報k1を利用して、共通鍵kのランダム性を高めることが望ましい。一般に通信は、いつ誰が誰に対して行うのかが不規則であり、予測困難である。したがって、共通鍵kを生成するのに、送信先・送信元情報k1のこの不規則性を利用することが望ましい。また、第三者には秘密にされている情報であるマスター鍵k3を利用することにより、さらに共通鍵kの推測のされにくさを高めることが可能となる。
図4は、本発明による共通鍵生成装置の基本的な機能ブロック構成図である。図4の共通鍵生成装置1は、受付部11と鍵素材格納部12と鍵素材読み取り部13と共通鍵生成部14とを備える。共通鍵生成装置1は、入力データが入力されると共通鍵kを生成する。
ところで、共通鍵kを生成するのは、平文のデータである入力データを暗号化するという局面(以下、「第一の局面」とよぶ)と、暗号文のデータである入力データを復号化するという局面(以下、「第二の局面」とよぶ)との、二つの局面においてである。いずれの局面であっても、入力データはヘッダ部とペイロード部を有する所定の形式のデータであるとする。
例えば、MACフレームやIPパケットはヘッダ部とペイロード部を有し、ヘッダ部には送信先や送信元の情報が含まれ、ペイロード部には送信対象のデータが含まれる。なお、入力データはさらにトレイラ部を有していてもよい。例えば、MACフレームは、トレイラ部としてFCS(Frame Check Sequence)を含む。また、第二の局面においても入力データのすべてが暗号化されているわけではなく、ヘッダ部は暗号化されていないクリアテキストの状態である。
受付部11は入力データを受け付ける。
鍵素材格納部12は鍵素材k2を格納している。例えば、上記のように鍵素材k2がシーケンス番号であるとき、鍵素材格納部12を実現するハードウェアはカウンタでもよい。
鍵素材格納部12は鍵素材k2を格納している。例えば、上記のように鍵素材k2がシーケンス番号であるとき、鍵素材格納部12を実現するハードウェアはカウンタでもよい。
鍵素材読み取り部13は、第一の局面と第二の局面で異なる動作をするが、いずれの局面でも、鍵素材読み取り部13が鍵素材k2を読み取る点は同じである。
第一の局面において、鍵素材読み取り部13は、鍵素材格納部12から鍵素材k2を読み取り、鍵素材格納部12内の鍵素材k2の値を更新する。例えば、鍵素材k2がシーケンス番号であり鍵素材格納部12がカウンタであるとき、鍵素材読み取り部13は鍵素材k2の値を読み取ってからカウンタをインクリメントする。
第一の局面において、鍵素材読み取り部13は、鍵素材格納部12から鍵素材k2を読み取り、鍵素材格納部12内の鍵素材k2の値を更新する。例えば、鍵素材k2がシーケンス番号であり鍵素材格納部12がカウンタであるとき、鍵素材読み取り部13は鍵素材k2の値を読み取ってからカウンタをインクリメントする。
第二の局面において、鍵素材読み取り部13は、受付部11で受け付けた入力データのヘッダ部の所定の部分から、鍵素材k2を読み取る。
共通鍵生成部14は、鍵素材読み取り部13が読み取った鍵素材k2に基づいて共通鍵kを生成する。実施形態により、図3に示した送信先・送信元情報k1やマスター鍵k3をさらに利用して共通鍵kを生成してもよい。
共通鍵生成部14は、鍵素材読み取り部13が読み取った鍵素材k2に基づいて共通鍵kを生成する。実施形態により、図3に示した送信先・送信元情報k1やマスター鍵k3をさらに利用して共通鍵kを生成してもよい。
ところで、上記では、第二の局面において入力データが鍵素材k2を含むことを前提条件としている。この前提条件について、図1、3、4をあわせて参照しながら説明する。
例えば、図4の共通鍵生成装置1は、図1の共通鍵生成装置1aや1bのように、中継装置2aや2bの一部として実装することも可能である。また、図1の共通鍵ka〜kcはいずれも図3の共通鍵kに対応し、図1の鍵素材k2a〜k2cはいずれも図3の鍵素材k2に対応する。
例えば、図4の共通鍵生成装置1は、図1の共通鍵生成装置1aや1bのように、中継装置2aや2bの一部として実装することも可能である。また、図1の共通鍵ka〜kcはいずれも図3の共通鍵kに対応し、図1の鍵素材k2a〜k2cはいずれも図3の鍵素材k2に対応する。
図1において、共通鍵生成装置1aに対する入力データは、例えばデータ5aであり、暗号化すべき平文データである。よって、共通鍵生成装置1a内の不図示の鍵素材読み取り手段は第一の局面における動作を行う。そして、共通鍵生成装置1a内の不図示の共通鍵生成手段が共通鍵kaを生成する。また、前述のとおり、データ5aは共通鍵kaにより暗号化されて暗号化データ6aとなるが、暗号化データ6aは鍵素材k2aを含む。
一方、図1の共通鍵生成装置1bに対する入力データは、例えば暗号化データ6aであり、復号化すべき暗号文データである。よって、共通鍵生成装置1b内の不図示の鍵素材読み取り手段は第二の局面における動作を行う。つまり、暗号化データ6aから鍵素材k2aを読み取る。
以上から分かるように、第一の局面において生成された共通鍵kを使って暗号化を行う際に、所定の部分に鍵素材k2を含む暗号化データ(図1の暗号化データ6a〜6cに相当)を生成することによって、第二の局面では入力データが鍵素材k2を含むことが保証される。本発明による共通鍵生成装置1は、鍵素材k2と共通鍵kがそのように利用される環境で使用される。図1は、そのような環境の例の一つである。
図5は、鍵素材k2以外のデータも用いる共通鍵生成装置を備えた中継装置を含むネットワーク上で行われる暗号化通信を示す模式図である。図5は図1とよく似ているので、相違点を中心に説明する。
図1は、図3に示したデータのうち鍵素材k2のみを用いて共通鍵kを生成する場合に対応する図である。一方、図5は、図3に示したデータのうち送信先・送信元情報k1、鍵素材k2、マスター鍵k3のすべてを用いて共通鍵kを生成する場合に対応する図である。よって、入力データ5a〜5cごとに異なる共通鍵ka〜kcが生成され、それら異なる共通鍵ka〜kcによって各入力データ5a〜5cが暗号化される点は、図1と図5で同様である。
図1と比較したときの図5の第一の特徴は、各入力データ5a〜5c、暗号化データ6a〜6c、復号化データ7a〜7cが送信先・送信元情報k1a〜k1cを含むことが明示されている点である。第二の特徴は、共通鍵生成装置1aおよび1bが同じ値のマスター鍵k3を格納している点である。第三の特徴は、共通鍵生成装置1aおよび1bがそれぞれ、送信先・送信元情報k1a〜k1cと、鍵素材k2a〜k2cと、マスター鍵k3とから共通鍵ka〜kcを生成する点である。
例えば、データ5a、暗号化データ6a、復号化データ7aはそれぞれ、送信先・送信元情報k1aを含む。そして、共通鍵生成装置1aおよび1bはそれぞれ、送信先・送信元情報k1aと鍵素材k2aとマスター鍵k3とから共通鍵kaを生成する。データ5aは共通鍵kaにより暗号化されて暗号化データ6aとなり、暗号化データ6aは共通鍵kaにより復号化されて復号化データ7aとなる。共通鍵生成装置1aおよび1bは、IKEのような鍵交換を行わなくても、予め同じ値のマスター鍵k3を格納さえしていれば、同じ共通鍵kaを生成することができる。
なお、図5では共通鍵生成装置1aおよび1bの内部にマスター鍵k3を図示したが、図3に示したとおりマスター鍵k3は事前共有鍵k0から生成される。したがって、共通鍵生成装置1aおよび1bが予め格納しておくのは、同じ値のマスター鍵k3でもよく、同じ値の事前共有鍵k0でもよい。後者の場合、共通鍵生成装置1aおよび1bは、共通鍵ka〜kcを生成するたびにマスター鍵k3を生成してもよい。あるいは、電源が投入されるたびにマスター鍵k3を生成し、電源がオンの状態の間は生成したマスター鍵k3を揮発性メモリ(不図示)またはTCG対応チップ105(後述)などに格納しておき、共通鍵ka〜kcを生成するたびにそこに格納されたマスター鍵k3を読み取るのでもよい。いずれの場合でも、共通鍵ka〜kcを生成するときには、共通鍵生成装置1aおよび1bがマスター鍵k3を記憶している。よって、図5では、共通鍵生成装置1aおよび1bの内部にマスター鍵k3を図示した。
次に、より具体的な例として、レイヤ2の通信を暗号化するのに本発明を利用する場合を、図6〜図17を参照しながら説明する。
図6は、本発明を適用したレイヤ2の中継装置の構成図である。図6の説明をする前に、まずレイヤ2通信の典型例について簡単に説明する。
図6は、本発明を適用したレイヤ2の中継装置の構成図である。図6の説明をする前に、まずレイヤ2通信の典型例について簡単に説明する。
レイヤ2通信の代表的なものにイーサネット通信があり、イーサネットの仕様はOSI参照モデルにおける物理層(レイヤ1)およびレイヤ2の仕様を規定している。また、イーサネットを標準化したIEEE(Institute of Electrical and Electronic Engineers)802.3規格では、レイヤ2がさらに二つの副層に分かれており、レイヤ1に近いほうがMAC(Media Access Control)副層、レイヤ3に近いほうがLLC(Logical Link Control)副層である。
レイヤ2通信において用いられるレイヤ2の中継装置(以後「L2中継装置」と略す。「L2」はレイヤ2を表す)は、L2スイッチとも呼ばれ、スイッチングハブはその代表例である。レイヤ2通信では、データは「フレーム」という単位で送受信される。フレームには、例えばDIXイーサネットのMACフレームやIEEE802.3のMACフレームなど、細かい点で異なる複数の形式があるが、本発明においてその違いは重要ではない。よって、以下では総称として「フレーム」という語を用いる。
ところで、従来のイーサネット通信では、フレームが暗号化されずに送受信されるだけなく、フレームの盗聴自体が容易だという問題がある。複数のプロトコルを組み合わせることによってフレームを暗号化して通信を行うことは可能だが、その場合、プロトコルスタックが複雑化するなど、いくつかの欠点がある。一方、従来のL2中継装置に本発明を適用した図6のL2中継装置101を使う場合は、簡素な構成でフレームを暗号化して通信を行うことができる。
図6において、L2中継装置101はフレームを中継するL2中継装置である。L2中継装置101が、外部とフレームを送受信するための複数の物理的なポートを備える点(図6の例では四つのポート103a〜103dがある)、およびフレームを中継するフレーム中継処理部102を備えるという点は、従来のL2中継装置と同様である。
L2中継装置101は、各ポート103a〜103dに対応した暗号処理モジュール104a〜104dをさらに備えている。暗号処理モジュール104a〜104dはそれぞれが一つのチップとして製造されてもよい。暗号処理モジュール104a〜104dはそれぞれ、対応するポート103a〜103dおよびフレーム中継処理部102と、GMII(Gigabit Medium Independent Interface)やMII(Medium Independent Interface)などの汎用のインターフェイスを介して接続されている。つまり、暗号処理モジュール104a〜104dの入力と出力はともにフレームである。GMIIやMIIはレイヤ1とMAC副層とのインターフェイスであり、イーサネットで一般的に使われている。
なお、詳しくは後述するが、暗号処理モジュール104a〜104dが行う暗号処理は、共通鍵kの生成と、暗号化処理および復号化処理である。以下では、「暗号化処理および復号化処理」の意味で「暗号処理」という語を用いる。また、図6の実施形態において、共通鍵kは、送信先・送信元情報k1と鍵素材k2とマスター鍵k3とを利用して生成される。具体的には、送信先・送信元情報k1としてMACヘッダ情報k1_fを利用し、鍵素材k2としてシーケンス番号k2_nを利用する。これらの情報の詳細および、暗号処理モジュール104a〜104dと図4の共通鍵生成装置1の対応関係は後述する。
また、L2中継装置101は、TCG(Trusted Computing Group)の仕様に準拠したセキュリティチップであるTCG対応チップ105を搭載している。TCG対応チップ105には、図3の事前共有鍵k0などが格納され、暗号処理モジュール104a〜104dにより利用される。TCG対応チップ105に格納されたデータは外部から不正に取り出すことができないため、TCG対応チップ105を使うと安全にデータを格納することができる。
また、L2中継装置101はCPU(Central Processing Unit)6を備える。CPU106は、例えば不図示のROM(Read Only Memory)に格納されたプログラムにしたがって動作し、不図示のRAM(Random Access Memory)をワーク用に用いる。後述するように、CPU106は、暗号処理モジュール104a〜104dに命令して暗号処理に必要なデータの生成を行わせたりする。
フレーム中継処理部102、暗号処理モジュール104a〜104d、TCG対応チップ105、CPU106、ROM、RAMは、内部バス107に接続されている。
L2中継装置101では、物理的なポート103a〜103dそれぞれに対応して暗号処理モジュール104a〜104dが配備され、フレーム中継処理部102によるフレーム中継処理とは切り離されて暗号処理が行われる。つまり、フレーム中継処理部102は暗号に関して何も考慮する必要がなく、まったく暗号処理を行わない従来の中継装置のフレーム中継処理部をそのままフレーム中継処理部102として利用することが可能である。
L2中継装置101では、物理的なポート103a〜103dそれぞれに対応して暗号処理モジュール104a〜104dが配備され、フレーム中継処理部102によるフレーム中継処理とは切り離されて暗号処理が行われる。つまり、フレーム中継処理部102は暗号に関して何も考慮する必要がなく、まったく暗号処理を行わない従来の中継装置のフレーム中継処理部をそのままフレーム中継処理部102として利用することが可能である。
なお、このように中継処理と暗号処理を切り離すために、フレーム中継処理部102と暗号処理モジュール104a〜4dのインターフェイスはGMIIやMII等のインターフェイスとなっている。まったく暗号処理を行わない従来の中継装置の場合、フレーム中継処理部はポートとGMIIやMII等のインターフェイスで接続され、そのインターフェイスを介してフレームの中継処理を行う。図6のフレーム中継処理部102も同様に、GMIIやMII等のインターフェイスを介してフレームの中継処理だけを行う。
また、L2中継装置101では、各ポート103a〜103dに対応して暗号処理モジュール104a〜104dを備えているため、一般的なオフィス環境でよく使われるN対Nのトポロジにおいてもイーサネット通信を暗号化することができる。なお、ここで「N対Nのトポロジ」とは、物理的なケーブル配線の意味ではなく、複数の中継装置が、それぞれ複数の中継装置との間で暗号化通信を行うことを意味している。この点については図9A、図9B、図12〜図14を参照して後述する。
図7は、図6と図4の関係を説明する機能ブロック構成図である。なお、f、k0、k1、k2、k3、kなる符号がついた矢印は、それぞれ、フレーム、事前共有鍵k0、送信先・送信元情報k1としてのMACヘッダ情報k1_f、鍵素材k2としてのシーケンス番号k2_n、マスター鍵k3、共通鍵kがその矢印の方向に送られることを表す。符号のない矢印は制御の流れを表す。符号「k1_f」や「k2_n」の指す具体的内容は後述する。
図6における暗号処理モジュール104a〜104dのそれぞれが、概ね図4の共通鍵生成装置1に対応する。すなわち、L2中継装置101は四つの共通鍵生成装置を含む。ただし、正確には、これら四つの共通鍵生成装置が一つのTCG対応チップ105を共用し、それぞれの共通鍵生成装置の一部として利用している。図7はその対応関係を説明する図である。なお、図6の例では、暗号処理モジュール104a〜104dが同じ構成であるため、図7では単に「104」という符号を用いている。また、その暗号処理モジュール104に対応するポートを単に「103」という符号で表す。
図7の共通鍵生成装置1cは、図4の共通鍵生成装置1と同様に、受付部11、鍵素材格納部12、鍵素材読み取り部13、共通鍵生成部14を含む。これら四つの構成要素は、具体的には暗号処理モジュール104内に実装されている。
上記のとおり、暗号処理モジュール104は、GMIIやMIIなどのインターフェイスにより、対応するポート103およびフレーム中継処理部102と接続されている。受付部11は、そのインターフェイス処理を行い、フレームのバッファリングを行う。つまり、受付部11はバッファメモリを備えている。なお、図7では、物理的には複数のインターフェイス(つまり、ポート103とのインターフェイスと、フレーム中継処理部102とのインターフェイス)を受付部11が備えている。
上述のとおり、暗号処理モジュール104は、共通鍵kの生成以外に、生成した共通鍵kを使った暗号処理も行うため、さらに、判定部15、暗号化部16、復号化部17、出力部19を有している。図7では、これら四つの構成要素も、共通鍵生成装置1cに含まれる。
判定部15は、第一の局面(暗号化のために共通鍵kを生成するべき局面)か、第二の局面(復号化のために共通鍵kを生成するべき局面)かを判定する。実施形態によっては、判定部15が、第三の局面(暗号化も復号化も行う必要がないため、共通鍵kを生成する必要がない局面)と判定することがあってもよい。そして、判定部15は、判定結果を鍵素材読み取り部13、共通鍵生成部14、暗号化部16、復号化部17、出力部19に適宜通知する。
暗号化部16は、判定部15が第一の局面と判定したとき、共通鍵生成部14が生成した共通鍵kを用いて、受付部11が受け付けたフレームの暗号化処理を行い、出力部19に出力する。復号化部17は、判定部15が第二の局面と判定したとき、共通鍵生成部14が生成した共通鍵kを用いて、受付部11が受け付けたフレームの復号化処理を行い、出力部19に出力する。
出力部19は、第一の局面において暗号化部16で暗号化されたフレーム、第二の局面において復号化部17で復号化されたフレーム、第三の局面において受付部11で受け付けたままの何も処理されていないフレーム、のいずれかが入力されると、それを共通鍵生成装置1cの外部(暗号処理モジュール104の外部)に出力する機能を有する。具体的には、出力部19は、GMIIやMIIなどのインターフェイスを介して、ポート103またはフレーム中継処理部102に、前述のいずれかのフレームを出力する。図7は機能ブロック構成図なので受付部11と出力部19を別のブロックにより示してあるが、例えばポート103との間の配線などのハードウェアは、受付部11と出力部19が共用してもよい。
図7の共通鍵生成装置1cは、図3の送信先・送信元情報k1およびマスター鍵k3をも利用して共通鍵kを生成する。つまり、共通鍵生成部14は、受付部11が受け付けたフレームから送信先・送信元情報k1を抽出し、マスター鍵格納部21からマスター鍵k3を読み出して利用する。また、本実施形態では、L2中継装置101の電源が入れられるたびに、四つの共通鍵生成装置1cそれぞれにおいてマスター鍵生成部20が、事前共有鍵格納部18に格納された事前共有鍵k0からマスター鍵k3を生成し、マスター鍵格納部21に格納する。事前共有鍵k0は、予め安全に(つまり不正に読み取られることがないように)共通鍵生成装置1c内に格納されていなくてはならない。図7では、TCG対応チップ105の一部を事前共有鍵格納部18として利用している。
つまり、図7において共通鍵生成装置1cは、一つの暗号処理モジュール104と、TCG対応チップ105の一部である事前共有鍵格納部18とからなる。なお、図6のように四つの暗号処理モジュール104a〜104dがある場合、TCG対応チップ105は四つの共通鍵生成装置1cにより共用されるが、TCG対応チップ105の異なる四つの領域がそれぞれ四つの共通鍵生成装置1cの構成要素として使われるのでもよく、TCG対応チップ105のある一つの領域が四つの共通鍵生成装置1cの構成要素として共用されるのでもよい。
図8は、図6のL2中継装置101の変形例を示す図である。図8と図6の違いは、図8では一部のポート(103a、103b)にのみ暗号処理モジュール104a、104bが備えられている点である。他のポート(103c〜103j)は、直接フレーム中継処理部102とGMIIやMII等のインターフェイスで接続されており、暗号処理モジュールを備えていない。つまり、L2中継装置101は、暗号化通信の必要性などに応じて、一部のポートのみに暗号処理モジュールを備えてもよく、全部のポートに暗号処理モジュールを備えてもよい。
なお、フレーム中継処理部102は、暗号処理モジュール104a、104bとの間のインターフェイスも、暗号処理モジュールを備えていないポート103c〜103jとの間のインターフェイスも同じインターフェイス(例えばGMIIやMII)である。よって、フレーム中継処理部102は、暗号処理モジュールを備えたポートとそうでないポートを区別することなく、フレームの中継に専念することができる。
なお、図8における暗号処理モジュール104a、104bも、図7に示した構成を有している。
図9Aは、共通鍵生成装置を含むレイヤ2の中継装置の利用例を示す図であり、VLAN110、120、130という三つのVLANを含むネットワーク構成を示している。
図9Aは、共通鍵生成装置を含むレイヤ2の中継装置の利用例を示す図であり、VLAN110、120、130という三つのVLANを含むネットワーク構成を示している。
図9Aにおいて、L2中継装置101a、101bは、図6または図8のL2中継装置101と同様の装置である。なお、本発明のL2中継装置101はレイヤ2のフレームを中継する機能を有するスイッチ装置なので、図9A以降では「L2SW」と表記することがある。L2中継装置101a、101bにはそれぞれ、VLAN110、120、130に属する端末(コンピュータ)が接続されている。つまり、L2中継装置101a、101bは端末と接続されているエッジスイッチである。
また、従来の中継装置であるコアL2/L3スイッチ141(レイヤ2またはレイヤ3の中継機能を有するが暗号処理に関する機能をもたない従来のスイッチ装置)には、L2中継装置101a、101b、およびファイヤウォール143が接続されている。つまり、コアL2/L3スイッチ141はスイッチ間で中継を行うコアスイッチである。ファイヤウォール143はルータ144に接続され、ルータ144はインターネット145に接続されている。
ところで、VLANの一つの使い方は、同一の物理的なネットワーク上に複数のシステムを重畳させることである。例えば、図9Aの例においては、L2中継装置101a、コアL2/L3スイッチ141、L2中継装置101bという装置およびこれらを接続するケーブルは物理的な存在である。そして、これらの物理的な存在が接続された物理的なネットワークを、VLAN110、120、130という三つの異なるVLANが共有している。つまり、同一の物理的なネットワーク上に複数のシステムが重畳している。
それら複数のシステムには、機密情報を主に扱うシステムと、秘匿する必要のないウェブ閲覧が中心のシステムとが含まれることがある。前者と後者では、通信の機密性に対する要件が異なって当然である。したがって、VLANを利用している場合には、物理ポートを単位として暗号処理を行うこと(例えば、L2中継装置101aからコアL2/L3スイッチ141へ送られるすべてのフレームを暗号処理モジュール104aで暗号化すること)は好ましくない。なぜなら、機密データを含まない通信まで暗号化するという無駄な処理が行われるからである。
例えば、ある企業には部署A、B、Cがあるとする。部署A、Bでは機密データを扱うために通信を暗号化する必要があり、かつ機密を守るためにインターネット145との通信を禁じているとする。また、部署Cでは機密データを扱っておらず、主に電子メールの送受信やウェブの閲覧(これらはインターネット145との通信をともなう)を行っているとする。この場合、各部署を別のVLANに分けて図9Aのような構成とすることがある。つまり、部署AがVLAN110に、部署BがVLAN120に、部署CがVLAN130に対応する。
本発明によれば、VLANごとに暗号化するか否かを選択し、不要な暗号処理を避けることができる。つまり、VLAN110、120を暗号化の対象とし、VLAN130は暗号化の対象外とすることができる。また、図9Aに示すように、本発明によるL2中継装置101a、101bと従来の中継装置であるコアL2/L3スイッチ141とを混在させてネットワークを構成することができる。このことを以下で説明する。
図9Bに抜粋して示したように、L2中継装置101aにはポート103a〜103dがあり、ポート103aはVLAN110に、ポート103bはVLAN120に、ポート103cはVLAN130に、それぞれ割り当てられている。この割り当ては、管理者により予め設定される。ポート103dはコアL2/L3スイッチ141と接続されたポートである。L2中継装置101aの内側では、ポート103dが暗号処理モジュール104aとGMIIやMII等のインターフェイスで接続されている。ポート103a〜103cおよび暗号処理モジュール104aは、それぞれフレーム中継処理部102aとGMIIやMII等のインターフェイスで接続されている。
同様に、L2中継装置101bはポート103e〜103hを備えており、ポート103eはVLAN110に、ポート103fはVLAN120に、ポート103gはVLAN130に、それぞれ割り当てられている。また、ポート103hはコアL2/L3スイッチ141と接続されたポートである。
なお、表示の便宜上、図9AではL2中継装置101a、101bを示す矩形の外側に暗号処理モジュール104a、104bを表示しているが、実際の構成は図6、図8、図9Bに示したようになっており、暗号処理モジュールは中継装置の内部にある。以降の図でも図9Aと同様の表現をすることがある。また、図9Bでは、L2中継装置101a、1bの構成要素のうち、TCG対応チップなどは省略している。
同一のVLAN内で図9Aの左から右へフレームを送信する場合、どのVLANの場合でも、フレームはL2中継装置101a、コアL2/L3スイッチ141、L2中継装置101bを経由する。図9Bを参照してより詳細に述べれば、いずれの場合も、フレーム中継処理部102a、暗号処理モジュール104a、ポート103d、コアL2/L3スイッチ141、ポート103h、暗号処理モジュール104b、フレーム中継処理部102bを経由する。フレームが経由する経路のうちVLANごとに異なるのは、図9Bにおいてフレーム中継処理部102aより左側の部分とフレーム中継処理部102bより右側の部分のみである。
また、図9Aおよび図9Bでは、上記のごとく、VLAN130に所属する端末はインターネット145との通信を行うと仮定している。このインターネット145との通信は、図9Aにおいて、二つの黒い矢印(L2中継装置101aから出発して、コアL2/L3スイッチ141、ファイヤウォール143、ルータ144を経由し、インターネット145へ向かう矢印、およびL2中継装置101bから出発して、コアL2/L3スイッチ141、ファイヤウォール143、ルータ144を経由してインターネット145へ向かう矢印)により示される。
このように、いずれのVLAN内で通信する場合でも、あるいはインターネット145等の外部のネットワークと通信する場合でも、フレームはポート103dとコアL2/L3スイッチ141の間、および/またはポート103hとコアL2/L3スイッチ141の間を経由する。つまり、ポート103dとコアL2/L3スイッチ141の間、およびポート103hとコアL2/L3スイッチ141の間の物理的な通信路(ケーブル)は、複数のVLANで共有される。このような通信路(142aおよび142b)は、VLANの規格であるIEEE802.1Qの名にちなんで「.1Qトランク」とよばれる。
また、ポート103aなどは一つのVLANに固定的に割り当てられているが、ポート103dやポート103hは複数のVLANで共有されている。ポート103dやポート103hは、「タグVLANポート(tagged VLAN port)」とよばれる。管理者はポート103dとポート103hをタグVLANポートとして予め設定する。タグVLANポートに対しては、対応するVLANを一意に決定することができないため、ポート103dとポート103hの間(より正確には、フレーム中継処理部102aとフレーム中継処理部102bの間)で送受信されるフレームには、VLANを識別する情報であるVLAN‐IDが付加されている(詳細は図10とあわせて後述する)。
上記のごとく、図9Aの例では、VLAN110とVLAN120が暗号化の対象であり、VLAN130は暗号化の対象外である。管理者は、どのVLANを暗号化の対象とするのかという設定を、L2中継装置101aに入力する。すると、図9Bには示されていないCPU(図6のCPU106に相当する)が、暗号処理モジュール104aに対して、入力された内容を設定するよう命令する。L2中継装置101bに関しても同様である。その結果、暗号処理モジュール104a、104bは、管理者が入力した設定にしたがって、暗号処理が必要なフレームに対してだけ暗号処理を行う。
例えば、図9Bの左から右へVLAN110内でフレームを送信する場合、ポート103aで受信されたフレーム(ポート103aに接続された端末から送信されたフレーム)は、フレーム中継処理部102aを経由して暗号処理モジュール104aに送信される。すると、図7に示した暗号処理モジュール104aの各構成要素は次のように動作する。
まず、受付部11がこのフレームを受信する。
判定部15は、このフレームをポート103dではなくフレーム中継処理部102aから受信したことと、フレームに含まれるVLAN‐IDと、上記の設定内容とに基づき、第一の局面(このフレームを暗号化するために共通鍵kを生成すべき局面)であると判定する。
判定部15は、このフレームをポート103dではなくフレーム中継処理部102aから受信したことと、フレームに含まれるVLAN‐IDと、上記の設定内容とに基づき、第一の局面(このフレームを暗号化するために共通鍵kを生成すべき局面)であると判定する。
そして、判定部15の判定にしたがって、鍵素材読み取り部13が鍵素材格納部12から鍵素材k2としてのシーケンス番号k2_sを読み取り、鍵素材格納部12に格納されている値を更新する。
共通鍵生成部14は、判定部15の判定にしたがって共通鍵kを生成するために、MACヘッダ情報k1_fとシーケンス番号k2_sとマスター鍵k3を取得する。MACヘッダ情報k1_fは、受付部11が受信したフレームから抽出される。シーケンス番号k2_sは鍵素材読み取り部13が読み取った値である。マスター鍵k3は、マスター鍵格納部21に格納されている。取得した三つのデータに基づき、共通鍵生成部14は共通鍵kを生成する。
暗号化部16は、判定部15の判定にしたがって、共通鍵生成部14から共通鍵kを受け取り、受付部11でバッファリングされているフレームを読み出して、共通鍵kにより暗号化する。
暗号化されたフレームは、出力部19を介して図9Bのポート103dに出力される。ここで図9Bに戻ると、暗号化されたフレームは、ポート103d、コアL2/L3スイッチ141、ポート103hを経由して、暗号処理モジュール104bに送信される。すると、図7に示した暗号処理モジュール104bの各構成要素は次のように動作する。
まず、受付部11がこのフレームを受信する。
判定部15は、このフレームをフレーム中継処理部102bではなくポート103hから受信したことと、フレームに含まれるVLAN‐IDと、上記の設定内容とに基づき、第二の局面(このフレームを復号化するために共通鍵kを生成すべき局面)であると判定する。あるいは、後述する暗号ヘッダ171をこのフレームが含むことから、このフレームが復号化の対象であると判定する。
判定部15は、このフレームをフレーム中継処理部102bではなくポート103hから受信したことと、フレームに含まれるVLAN‐IDと、上記の設定内容とに基づき、第二の局面(このフレームを復号化するために共通鍵kを生成すべき局面)であると判定する。あるいは、後述する暗号ヘッダ171をこのフレームが含むことから、このフレームが復号化の対象であると判定する。
そして、判定部15の判定にしたがって、鍵素材読み取り部13が、受信したフレームから鍵素材k2としてのシーケンス番号k2_rを読み取る。共通鍵生成部14の動作は、暗号処理モジュール104aの共通鍵生成部14の動作と同様である。
復号化部17は、判定部15の判定にしたがって、共通鍵生成部14から共通鍵kを受け取り、受付部11でバッファリングされているフレームを読み出して、共通鍵kにより復号化する。
復号化されたフレームは、出力部19を介して図9Bのフレーム中継処理部102bに出力され、ポート103eへ中継される。そしてポート103eから、ポート103eに接続された端末に送信される。
つまり、端末からポート103aを経由して暗号処理モジュール104aまでの経路、および暗号処理モジュール104bからポート103eを経由して端末までの経路では、フレームは平文の状態(暗号化されていない状態)で送信される。一方、暗号処理モジュール104aと暗号処理モジュール104bの間では、フレームは暗号化された状態で送信される。VLAN120内でフレームを送信する場合も同様である。
以後、平文の状態のフレームを「平文フレーム」、暗号化された状態のフレームを「暗号化フレーム」とよぶ。図9Bでは、平文フレームの送信を実線の矢印で示し、暗号化フレームの送信を破線の矢印で示している。
図9Bの左から右へVLAN130内でフレームを送信する場合、暗号処理モジュール104aは、フレームに含まれるVLAN‐IDと上記の設定内容とに基づき、このフレームが暗号化の対象外であるため暗号化処理が不要だと判断する。そして、平文フレームのままポート103dに送信する。つまり、暗号処理モジュール104a内において、図7の判定部15が第三の局面(暗号化処理が不要であり、共通鍵kを生成する必要がない局面)であると判定し、その判定にしたがって、受付部11にバッファリングされているフレームをそのまま、出力部19を介してポート103dに出力する。
また、暗号処理モジュール104bでは、フレームに含まれるVLAN‐IDと上記の設定内容とに基づき、このフレームが暗号化の対象外であるため復号化処理が不要だと判断する(あるいは、受信したフレームに暗号ヘッダ171が含まれないことから、復号化処理が不要だと判断する)。そして、受信した平文フレームをそのままフレーム中継処理部102bに送信する。つまり、暗号処理モジュール104b内において、図7の判定部15が第三の局面であると判定し、その判定にしたがって、受付部11にバッファリングされているフレームをそのまま、出力部19を介してフレーム中継処理部102bに出力する。
VLAN130に属するコンピュータがインターネット145にIPパケットを送信する場合、そのIPパケットに対応するフレームは、ポート103dまたはポート103hを経由する。例えばL2中継装置101a内では、VLAN130に対応するポート103cがフレーム中継処理部102aに接続され、フレーム中継処理部102aが暗号処理モジュール104aに接続され、暗号処理モジュール104aがポート103dに接続されているので、暗号処理が不要なフレームも必ず暗号処理モジュール104aを経由する。
しかし、VLAN130に対応するポート103cで受信したフレームをポート103dに中継する場合、暗号処理モジュール104aは、VLAN130内でフレームを送信する場合と同様に、暗号処理が不要だと判断し、平文フレームをそのままポート103dに送信する。このことは、図9Bにおいて、実線の矢印(平文フレームの送信を示す)が、L2中継装置101aからコアL2/L3スイッチ141を経由してファイヤウォール143に向かっていることに対応する。
上記のように図9Aでは、VLANごとに暗号化の対象とするか否かを設定している。つまり、例えばポート103dとコアL2/L3スイッチ141の間の.1Qトランク142aを経由するすべてのフレームを暗号化する場合と比べて、図9Aは暗号化の粒度がより細かい。粒度が細かいことは、機密データを含まない通信を無駄に暗号化するのを避けることができるため利点である。
このようにVLANごとに選択的に、暗号化対象とするか否かを暗号処理モジュール104a、104bに対して設定することができるため、L2中継装置101aと101bの間に従来の中継装置であるコアL2/L3スイッチ141を介在させ、コアL2/L3スイッチ141を直接ファイヤウォール143に接続することが可能である。
仮にVLANごとの設定ができないとすると、図9Aにおいて、VLAN130に属する端末がインターネット145と通信を行う際にも、フレームが暗号処理モジュール104aで暗号化されてしまう。よって、暗号化フレームを復号化してからファイヤウォール143の外に送信するためには、暗号処理モジュールを備えたL2中継装置101をコアL2/L3スイッチ141とファイヤウォール143との間に介在させる必要がある。
つまり、VLANごとの設定を可能とすることによって、必要な装置の数を減らすことができる。換言すれば、ネットワークを構成する際の制約を減らすことができる。つまり、様々な構成に対して本発明を適用することができる。
図10は、本発明で利用するフレームの形式を説明する図である。本発明ではフレームのうちデータ部のみを暗号化する。
図10の上段に示したフレーム150は、レイヤ2で送受信される通常のフレームである。フレーム150は、6バイトの送信先MACアドレス151、6バイトの送信元MACアドレス152、データ部153、4バイトのエラー検出用のFCS154からなる。
図10の上段に示したフレーム150は、レイヤ2で送受信される通常のフレームである。フレーム150は、6バイトの送信先MACアドレス151、6バイトの送信元MACアドレス152、データ部153、4バイトのエラー検出用のFCS154からなる。
DIXイーサネットのMACフレームの場合、データ部153の先頭は2バイトで表されるタイプであり、その後に46〜1500バイトのデータが続く。したがって、フレームは最大で1518バイトである(6+6+2+1500+4=1518)。IEEE802.3規格によるMACフレームの場合、データ部153の先頭は2バイトで表される長さ/タイプである。その後には、具体的なフレーム形式によって異なるが、3バイトのLLCヘッダや5バイトのSNAP(Sub Network Access Protocol)ヘッダが続き、その後にデータが続く。LLCヘッダやSNAPヘッダを含めて、データ部の長さは46〜1500バイトである。したがって、フレームの最大長は1518バイトである。
前述のとおり、共通鍵生成装置1への入力データはヘッダ部とペイロード部からなるという前提だが、入力データがフレーム150の場合、ヘッダ部は送信先MACアドレス151と送信元MACアドレス152からなり、ペイロード部はデータ部153である。
図10の中段に示したタグつきフレーム160は、フレーム150にVLANタグが挿入されたものである。タグつきフレーム160は、送信元MACアドレス152とデータ部153の間に、2バイトのTPID(Tag Protocol Identifier)161と2バイトのTCI(Tag Control Information)162が挿入されている他は、フレーム150と同様である。イーサネットの場合、VLANを示すTPID161の値は0x8100(16進数で8100の意)である。TCI162は、VLANを識別するための12ビットのVLAN‐IDを含む。TPID161やTCI162は、フレームの送信元の端末で付加される場合もあるが、一般的には中継装置で付加されることが多い。後者の場合、FCS154の再計算も中継装置で行われる。
図9AのようにVLANごとに暗号処理を行うか否かを設定する場合、TCI162に含まれるVLAN‐IDの値に基づいて、暗号処理モジュール104が暗号処理の要否を判定する。
共通鍵生成装置1への入力データがタグつきフレーム160の場合、ヘッダ部は送信先MACアドレス151からTCI162までの部分で、ペイロード部はデータ部153で、トレイラ部はFCS154である。
図10の下段に示した暗号化フレーム170は、タグつきフレーム160を暗号化して得られるフレームであり、本発明に独自のフィールドを含む。暗号化フレーム170をタグつきフレーム160と比較すると、TCI162の直後に暗号ヘッダ171が挿入される点、データ部153が暗号化されて暗号化データ部172となる点、暗号化データ部172の直後にICV(Integrity Check Value)173が挿入されている点で異なっている。暗号ヘッダ171は、復号化に必要な鍵素材k2を含む。ICV173は、送信先MACアドレス151から暗号化データ部172までの範囲に基づいて算出される一種のチェックサムである。なお、フレームを暗号化する際、暗号処理モジュール104は、FCS154の再計算も行う。
共通鍵生成装置1への入力データが暗号化フレーム170の場合、ヘッダ部は送信先MACアドレス151から暗号ヘッダ171までの部分で、ペイロード部は暗号化データ部172で、トレイラ部はICV173およびFCS154である。
暗号化フレーム170の第一の特徴は、データ部153のみが暗号化され、MACヘッダ(送信先MACアドレス151と送信元MACアドレス152からなる部分)は暗号化されない点である。第二の特徴は、暗号ヘッダ171がTCI162よりも後にある点である。
第一の特徴は、フレームが大きくなることや処理が複雑化することを避けられるという利点につながる。このことを以下で説明する。
MACヘッダを含めてフレームを暗号化する方式は、どの端末とどの端末が通信しているかという情報も隠すことができるため、機密度がより高い。例えば、中継装置であるスイッチXsに接続された端末Xtから、スイッチYsに接続された端末Ytにフレームを送信する場合、そのフレームの送信先MACアドレス151には端末YtのMACアドレスが書かれ、送信元MACアドレス152には端末XtのMACアドレスが書かれている。MACヘッダを含めてこのフレームを暗号化する場合、暗号化後のフレームは、先頭に別のMACヘッダが付加されてカプセル化されたフレームである。つまり、外側のフレームにおける送信先MACアドレス151としてスイッチYsのMACアドレスが書かれ、送信元MACアドレス152としてスイッチXsのMACアドレスが書かれる。
MACヘッダを含めてフレームを暗号化する方式は、どの端末とどの端末が通信しているかという情報も隠すことができるため、機密度がより高い。例えば、中継装置であるスイッチXsに接続された端末Xtから、スイッチYsに接続された端末Ytにフレームを送信する場合、そのフレームの送信先MACアドレス151には端末YtのMACアドレスが書かれ、送信元MACアドレス152には端末XtのMACアドレスが書かれている。MACヘッダを含めてこのフレームを暗号化する場合、暗号化後のフレームは、先頭に別のMACヘッダが付加されてカプセル化されたフレームである。つまり、外側のフレームにおける送信先MACアドレス151としてスイッチYsのMACアドレスが書かれ、送信元MACアドレス152としてスイッチXsのMACアドレスが書かれる。
このカプセル化されたフレームでは、端末Xtと端末Ytが通信しているという情報が暗号化されており、機密性が高い。しかし、付加したMACヘッダの分だけフレームが大きくなり、オーバーヘッドが生じる。また、このようにカプセル化するには、スイッチのフレーム中継処理部において、フレームごとに中継先のスイッチを判定し、それに応じたMACヘッダを付加しなくてはならない(この例では、スイッチXsが送信先の端末YtのMACアドレスからスイッチYsのMACアドレスを特定する必要がある)。よって、中継処理が複雑である。
一方、暗号化フレーム170では、送信先MACアドレス151と送信元MACアドレス152は暗号化されない。そのため、機密度という点では上記の方法に比べてやや劣る。しかしながら、フレームに別のMACヘッダを追加する必要がないのでフレームの大きさを抑えることができる。
また、フレーム中継処理部102は通常の中継処理を行うだけでよい(例えば、送信先の端末YtのMACアドレスからスイッチYsのMACアドレスを特定する必要がない)。よって、本発明では、図6や図8に示したごとく、暗号処理を行わない従来のスイッチ装置と同様のフレーム中継処理部102を利用することができる。そして、暗号化・復号化に関する機能は、ポートごとに必要に応じて設けられた暗号処理モジュール(104a等)にオフロードすることができる。
次に、暗号ヘッダ171がTCI162よりも後にあるという第二の特徴について説明する。第二の特徴は、本発明によるL2中継装置101と、暗号処理機能をもたない通常のレイヤ2中継装置を混在させてネットワークを構成することができるという利点につながる。
仮に、TPID161とTCI162をも含めて暗号化する方法を採用すると、MACヘッダの直後(つまり送信元MACアドレス152の直後)に暗号ヘッダ171を挿入し、その後に暗号化されたTPID161とTCI162を続けるのが自然である。しかしこの方法では暗号化されたフレームを復号化しないかぎり、暗号化前のオリジナルのタグつきフレーム160が所属するVLANを判別することができない。そのため、ネットワークの通信経路の途中に暗号処理機能をもたない通常のレイヤ2中継装置を混在させると、当該中継装置はそのフレームがどのVLANに対応するのか判断することができず、適切にフレームを中継することができない。よって、この方法を採用する場合、暗号処理機能をもたない通常のレイヤ2中継装置を混在させることができない。
一方、図10の暗号化フレーム170は、クリアテキストの状態のTPID161およびTCI162の後に、暗号ヘッダ171と暗号化データ部172が続いている。よって、暗号処理機能をもたない通常のレイヤ2中継装置でも、そのフレームがどのVLANに対応するのかを判断することができ、適切にフレームを中継することができる。この場合、その通常のレイヤ2中継装置にとっては、暗号化フレーム170は単なるタグつきフレームとして認識される。したがって、本発明によれば、通常のレイヤ2中継装置を混在させてネットワークを構成することができ、既存の装置を有効に利用することができる。また、共通鍵生成装置1を含むL2中継装置101を様々なネットワーク構成において利用することができる。
なお、図6や図8に示したL2中継装置101におけるフレーム中継処理部102も暗号処理機能をもたないことに注目すると、第二の特徴から得られる利点は、次のごとくである。すなわち、フレーム中継処理部102は、図10の暗号化フレーム170を単なるタグつきフレーム160と同様に認識し、暗号化について何ら考慮することなく中継処理を行うことができる。つまり、フレーム中継処理部102は、暗号処理機能をもたない従来のレイヤ2中継装置におけるフレーム中継処理部とまったく同様の処理を行うだけでよい。また、図8に示したように、暗号処理モジュールを全ポートに搭載する必要もない。
なお、VLANを使わない環境においては、タグつきフレーム160ではなくフレーム150を暗号化する。よって、その場合の暗号化フレームは、図10の暗号化フレーム170からTPID161とTCI162を除いた形式となる。
図11は、暗号ヘッダ171の詳細を示す図である。図11に示したとおり暗号ヘッダ171の長さは12バイトである。暗号ヘッダ171は図11に示すごとく、先頭から順に、2バイトのタイプ1711、1バイトのサブタイプ1712、1バイトの予約フィールド1713、8バイトのシーケンス番号1714からなる。
タイプ1711はフレームの種別を表すグローバルユニークな値を格納するフィールドである。タイプ1711をグローバルユニークな値とするためには、IEEEに値の割り当てを申請し、IEEEに値を割り当ててもらう必要がある。タイプ1711がグローバルユニークな値でなくてはならない理由は、以下の通りである。
図10と図11とから分かるとおり、VLANを使用する環境ではタイプ1711はTCI162の直後にあり、VLANを使用しない環境ではタイプ1711は送信元MACアドレス152の直後にある。したがって、フレーム150またはタグつきフレーム160におけるタイプ(データ部153の先頭にある)と、暗号化フレーム170におけるタイプ1711とは、同じ位置にある。よって、タイプ1711の値によって暗号ヘッダ171の有無を判別する必要がある。
ところで、フレーム150やタグつきフレーム160においてデータ部153の先頭にあるタイプは、上位層すなわちレイヤ3が使用しているプロトコルを識別するためのグローバルユニークな値である。例えば、0x0800はIPを表す。タイプの値が0x0800のとき、データ部153はIPの形式にしたがったデータである。
よって、タイプ1711にグローバルユニークな特定の値(仮にZとする)を割り当てることによって、暗号ヘッダ171の有無を判別することができるようになる。つまり、VLANを使用する環境ではTCI162の直後の2バイトの値がZなら暗号ヘッダ171があると判定することができ、VLANを使用しない環境では送信元MACアドレス152の直後の2バイトの値がZなら暗号ヘッダ171があると判定することができる。
このようにして暗号ヘッダ171の有無を判定可能とすることにより、例えば、図9Bにおいてポート103hからフレームを受信した暗号処理モジュール104bが、受信したのが暗号化フレームなのか平文フレームなのかを暗号ヘッダ171の有無に基づいて判断することができるようになる。
サブタイプ1712は、IEEEから割り当てられた一つの値(上記のZ)を様々な目的で利用するためのフィールドである。タイプ1711とサブタイプ1712は、上位層のデータが何を表しているのかを識別することができればよく、数値そのものに意味はない。例えば、「タイプ1711がZでサブタイプ1712の値が0x01のとき、イーサネットの暗号化通信を行っており、暗号ヘッダ171に暗号化データ部172が続くことを表す」などと決めることができる。
予約フィールド1713は将来の使用のために予約された1バイトである。使用例の一つを図17とあわせて後述する。
シーケンス番号1714は、鍵素材としてのシーケンス番号k2_rを格納するフィールドである。シーケンス番号1714のフィールド長は8バイト、すなわち64ビットなので、264個の番号が利用可能である。したがって、1Gbpsや10Gbpsといった高速回線であっても、同じシーケンス番号が使われるには極めて長い時間が必要である。
シーケンス番号1714は、鍵素材としてのシーケンス番号k2_rを格納するフィールドである。シーケンス番号1714のフィールド長は8バイト、すなわち64ビットなので、264個の番号が利用可能である。したがって、1Gbpsや10Gbpsといった高速回線であっても、同じシーケンス番号が使われるには極めて長い時間が必要である。
例えば、暗号処理モジュールが1秒あたり1G個のフレームを暗号化する場合、同じシーケンス番号に戻るのに
264/109=1.84×1010秒≒585年
かかる。よって、シーケンス番号1714は事実上ユニークと考えてよい。
264/109=1.84×1010秒≒585年
かかる。よって、シーケンス番号1714は事実上ユニークと考えてよい。
ただし、二つ以上の暗号処理モジュール104が偶然同じ値を用いることはあり得る。そこで、各暗号処理モジュール104におけるシーケンス番号の開始値(つまり鍵素材格納部12の初期値)をランダムに設定することにより、偶然二つ以上の暗号処理モジュールが同じ値を用いる確率を小さくすることが望ましい。
図12から図14は、共通鍵生成装置1を搭載したL2中継装置101を使ったネットワークの構成例を示す。L2中継装置101は、図6と図8に示したように、実施形態によってどのポートに暗号処理モジュール(104a等)を備えるかという点で様々に異なる。さらに、各暗号処理モジュールは、実施形態によって、フレームが送信される方向に応じて暗号化と復号化のどちらを行うのかという点で異なる。
これらの変化の組み合わせによって、L2中継装置101の価格や、レイヤ2の暗号化通信を実現するためのネットワーク構成の仕方が異なる。つまり、本発明は、利用者の都合に合わせて様々な形態で実施することができ、非常に柔軟である。
なお、図12から図14では、TCG対応チップ等の構成要素を省略している。また、平文フレームが実線の矢印に、暗号化フレームが破線の矢印に対応する。そして、暗号化通信が行われる範囲が網かけにより示されている。
図12のネットワーク構成では、一つのポートにしか暗号処理モジュールを備えていない安価なL2中継装置101a〜101eと従来のL2スイッチ141bのみを用いている。
図12では、四台のPC4a〜4dが、L2中継装置101a〜101dにそれぞれ接続されている。L2中継装置101a〜101dはいずれも、暗号処理を行わない従来のL2スイッチ141bに接続されている。そしてL2スイッチ141bはL2中継装置101eに接続されている。つまり、ケーブルの配線という物理的な意味での図12のトポロジは、1対Nのスター型のスイッチトポロジによく似たトポロジだが、暗号化通信を行うペアという論理的な意味でのトポロジは、N対Nの関係のトポロジである。つまり、L2中継装置101aと101bのペア、L2中継装置101aと101cのペア、L2中継装置101aと101dのペア、L2中継装置101bと101cのペア、L2中継装置101bと101dのペア、……などの組み合わせで暗号化通信を行うので、N対Nの関係である。
L2中継装置101a〜101dのそれぞれは、L2スイッチ141bと接続されたポートに対応して暗号処理モジュール104a〜104dが備えられているが、それ以外のポートには暗号処理モジュールは備えられていない。L2中継装置101eは、L2スイッチ141bと接続されたポートに対応して暗号処理モジュール104eが備えられているが、L2中継装置101eのそれ以外のポートには暗号処理モジュールは備えられていない。L2中継装置101eはファイヤウォール143とも接続されており、ファイヤウォール143はルータ144に接続されている。インターネット145など外部のネットワークとの通信は、ルータ144を介して行われる。
図12におけるL2中継装置101a〜101eはいずれも、一つのポートにのみ暗号処理モジュールを備えているため、安価に製造することができる。また、図12の暗号処理モジュール104a〜104eは、いずれも対応するポートへの送信時にフレームを暗号化し、対応するポートからの受信時にフレームを復号化する。
つまり、図7と対応させて説明すると、フレーム中継処理部102から受付部11がフレームを受信した場合には、判定部15が第一の局面(暗号化すべき局面)であると判定し、共通鍵生成部14が共通鍵kを生成し、暗号化部16がフレームを暗号化する。一方、対応するポート103から受付部11がフレームを受信した場合には、判定部15が第二の局面(復号化すべき局面)であると判定し、共通鍵生成部14が共通鍵kを生成し、復号化部17がフレームを復号化する。
このように構成した場合の通信の例を以下で説明する。なお、図12において、PC4aからPC4bに図10のフレーム150を送信する場合、フレーム150は暗号処理モジュール104aを経由する際に暗号化される。図12の例ではVLANを利用していないため、暗号化フレームは、図10の暗号化フレーム170からTPID161とTCI162を削除した形式である。
暗号化フレームは、L2中継装置101aからL2スイッチ141bに送信され、PC4bと接続されたL2中継装置101bへと中継される。暗号化フレームのMACヘッダは暗号化されていないため、L2スイッチ141bは何ら暗号に関する処理を行うことなく、通常のフレーム150と同様にして暗号化フレームを中継することができる。
この暗号化フレームはL2中継装置101bに受信され、L2中継装置101bに備えられた暗号処理モジュール104bを経由する際に復号化される。復号化されたフレームは、L2中継装置101b内のフレーム中継処理部により、PC4bに接続されたポートへと中継され、そのポートからPC4bへと送信される。
次に、図12において、PC4aからインターネット145にIPパケットを送信する例を説明する。このIPパケットに対応するフレームがPC4aからL2中継装置101aとL2スイッチ141bを経由してL2中継装置101eへ送信される。
PC4aからL2スイッチ141bまでの経路は上記の例とまったく同様である。L2スイッチ141bは、受信した暗号化フレームを通常のフレームと同様に中継して、L2中継装置101eへ送信する。L2中継装置101eには、L2スイッチ141bに接続されたポートに対応して暗号処理モジュール104eが備わっている。暗号化フレームは、その暗号処理モジュール104eを経由する際に復号化されて平文フレームとなり、不図示のフレーム中継処理部を経由してファイヤウォール143に送信される。
以上のように、図12の構成によれば、イーサネットでの通信を暗号化することができる。また、L2中継装置101eからファイヤウォール143へ送信されるフレームは復号化された平文フレームなので、既存のファイヤウォール143やルータ144の構成を変える必要もない。
なお、図12における暗号処理モジュール104a〜104eは、暗号化処理と復号化処理のいずれかを必ず行う構成であると仮定している。すなわち、判定部15(図7)は、第一の局面と第二の局面のいずれであるかを判定するが、それ以外の局面であると判定することはない。一方、図9Aおよび図9Bにおける暗号処理モジュール104a、104bは、前述のとおり、暗号処理の要否を判定し、VLAN130に対応するフレームに対しては何も処理しないよう構成されている。つまり、判定部15は第一、第二、第三の局面のいずれであるかを判定する。どちらの構成によっても本発明を実施することができるが、図12のように暗号処理の要否を判定しない実施形態の方が、処理が簡素で高速になり、ハードウェア化も容易である。
仮に、図12において、暗号処理モジュール104a〜104d(特にその中の判定部15)を、暗号処理の要否を判定するように構成すれば、インターネット145との通信において暗号処理モジュール104eで復号化処理を行う必要がないため、L2中継装置101eは不要である。ただし、その場合で、VLANを使用しないのであれば、例えば送信先MACアドレス151に基づいて暗号処理の要否を暗号処理モジュール104aなどが判定するといった動作が必要になる。
図13のネットワーク構成では、一つのポートにしか暗号処理モジュールを備えていない安価なL2中継装置101a〜101dと、複数のポートに暗号処理モジュールを備えた高価なL2中継装置101eを用いている。
図12と図13の大きな違いは、図12では必要だったL2スイッチ141bが図13では不要な点である。そのかわり図13では、複数のポートに暗号処理モジュールを備えた高価なL2中継装置101eが必要となっている。
図13のネットワーク構成も図12と同様に、ケーブルの配線という物理的な意味では1対Nのスター型のスイッチトポロジだが、暗号化通信を行うペアという論理的な意味でのトポロジはN対Nの関係のトポロジである。
図13において、四台のPC4a〜4dがL2中継装置101a〜101dにそれぞれ接続されている。L2中継装置101a〜101dはいずれも、L2中継装置101eに接続されている。L2中継装置101a〜101dのそれぞれは、L2中継装置101eと接続されたポートに対応して暗号処理モジュール104a〜104dが備えられているが、それ以外のポートには暗号処理モジュールは備えられていない。L2中継装置101eは複数のポートに暗号処理モジュールを備えている。具体的には図13に示すように、L2中継装置101a〜101dと接続された複数のポートに対応して、それぞれ暗号処理モジュール104e〜104nが備えられている。L2中継装置101eはファイヤウォール143とも接続されており、ファイヤウォール143はルータ144に接続されている。インターネット145など外部のネットワークとの通信は、ルータ144を介して行われる。
図13における暗号処理モジュール104a〜104nは、いずれも対応するポートへの送信時にフレームを暗号化し、対応するポートからの受信時にフレームを復号化する。
つまり、図7と対応させて説明すると、フレーム中継処理部102から受付部11がフレームを受信した場合には、判定部15が第一の局面(暗号化すべき局面)であると判定し、共通鍵生成部14が共通鍵kを生成し、暗号化部16がフレームを暗号化する。一方、対応するポート103から受付部11がフレームを受信した場合には、判定部15が第二の局面(復号化すべき局面)であると判定し、共通鍵生成部14が共通鍵kを生成し、復号化部17がフレームを復号化する。
つまり、図7と対応させて説明すると、フレーム中継処理部102から受付部11がフレームを受信した場合には、判定部15が第一の局面(暗号化すべき局面)であると判定し、共通鍵生成部14が共通鍵kを生成し、暗号化部16がフレームを暗号化する。一方、対応するポート103から受付部11がフレームを受信した場合には、判定部15が第二の局面(復号化すべき局面)であると判定し、共通鍵生成部14が共通鍵kを生成し、復号化部17がフレームを復号化する。
例えば、PC4aからPC4bにフレームを送信する場合について図13を参照して説明する。図13のL2中継装置101aは、図12のL2中継装置101aと同様の構成である。
まず、PC4aから図4のフレーム150が送信される。このフレーム150は、L2中継装置101aの暗号処理モジュール104aを経由する際に暗号化される。暗号化フレームは、L2中継装置101aからL2中継装置101eに送信され、暗号処理モジュール104eを経由する際に復号化される。復号化されたフレームは暗号処理モジュール104eから不図示のフレーム中継処理部を経由して暗号処理モジュール104fに中継され、暗号処理モジュール104fにおいて再度暗号化される。暗号化されたフレームは暗号処理モジュール104fに対応するポートからL2中継装置101bに送信される。L2中継装置101bで受信されたフレームは、暗号処理モジュール104bを経由する際に復号化され、PC4cに送信される。
次に、図13においてPC4aからインターネット145にIPパケットを送信する例を説明する。このIPパケットに対応するフレームがPC4aからL2中継装置101aを経由してL2中継装置101eへ送信される。
PC4aからL2中継装置101eまでの経路、およびフレームが暗号処理モジュール104eを経由する際に復号化される点は上記の例とまったく同様である。その後、復号化フレームは、不図示のフレーム中継処理部を介してファイヤウォール143に接続されたポート103に中継され、ファイヤウォール143に送信される。
図13に示した構成によれば、L2中継装置101eのように高価な装置が必要ではあるものの、図12よりも少ない装置でネットワークを構成し、イーサネットでの通信を暗号化することができる。また、L2中継装置101eからファイヤウォール143に送信されるのは復号化された平文フレームなので、既存のファイヤウォール143やルータ144の構成を変える必要がない。
図14のネットワーク構成では、一つのポートにしか暗号処理モジュールを備えていない安価なL2中継装置101a〜101eのみを用いている。図14は、L2中継装置101eの具体的な構成が図13のL2中継装置101eと異なるという以外は、図13と同様である。
図14の構成は、図12に比べて一つ装置の数が少なくて済み(L2スイッチ141bが不要)、図13に比べて安価な装置だけで済む(図13のL2中継装置101eは高価だが図14のL2中継装置101eは安価である)という利点がある。このような構成が可能となる理由は、図12や図13とは逆に、対応するポートへの送信時にフレームを復号化し、対応するポートからの受信時にフレームを暗号化する暗号処理モジュール104eを用いたためである。
つまり、図7と対応させて説明すると、暗号処理モジュール104eにおいては、フレーム中継処理部102から受付部11がフレームを受信した場合には、判定部15が第二の局面(復号化すべき局面)であると判定し、共通鍵生成部14が共通鍵kを生成し、復号化部17がフレームを復号化する。一方、対応するポート103から受付部11がフレームを受信した場合には、判定部15が第一の局面(暗号化すべき局面)であると判定し、共通鍵生成部14が共通鍵kを生成し、暗号化部16がフレームを暗号化する。
例えば、PC4aからPC4bにフレームを送信する場合について図14を参照して説明する。PC4aから送信されたフレーム150がL2中継装置101aの暗号処理モジュール104aで暗号化され、L2中継装置101eに送信されるまでは、図13の場合と同様である。
この暗号化フレームは、L2中継装置101eの内部において、暗号化された状態のまま中継され、L2中継装置101bへと送信される。そして、この暗号化フレームはL2中継装置101bで受信され、暗号処理モジュール104bを経由する際に復号化される。復号化されたフレームは、不図示のフレーム中継処理部により中継され、PC4bに送信される。図14と図13の違いは、図14ではPC4aからPC4bにフレームを送信する際にL2中継装置101eが何ら暗号に関する処理を行わない点である。
次に、図14においてPC4aからインターネット145にIPパケットを送信する例を説明する。このIPパケットに対応するフレームがPC4aからL2中継装置101aを経由してL2中継装置101eへ送信される。
PC4aからL2中継装置101eまでの経路は上記の例とまったく同様である。その後、L2中継装置101eが受信した暗号化フレームは、暗号化された状態のまま不図示のフレーム中継処理部を介して中継され、暗号処理モジュール104eを経由する。その際に、暗号処理モジュール104eが暗号化フレームを復号化し、復号化された平文フレームがファイヤウォール143に送信される。
図14に示した構成によれば、図12よりも少ない装置のみで、また、図13よりも安価な装置のみで、ネットワークを構成し、イーサネットでの通信を暗号化することができる。図14の構成は、図12に比べて装置の数が少ないので、コストパフォーマンスが優れているだけでなく、障害の発生率も低い。なぜなら、図12ではL2スイッチ141bの障害がネットワーク全体の障害を引き起こすが、図14の構成にはL2スイッチ141bが存在しないためである。また、図14のL2中継装置101eからファイヤウォール143に送信されるのは復号化された平文フレームなので、既存のファイヤウォール143やルータ144の構成を変える必要がない。
以上説明したように、暗号処理モジュールは、フレームの送受信の方向によって暗号化処理と復号化処理のいずれを行うか、という点では二種類のものがある。換言すれば、図7の共通鍵生成装置1cにおいて、判定部15がどのような条件にもとづいて第一の局面と第二の局面を判定するのかという点は、実施形態によって異なる。つまり、図7でポート103から受付部11がフレームを受信したときに、判定部15が第一の局面と判定するのか、第二の局面と判定するのかという点は、実施形態によって異なる。
また、図12から図14の例ではVLANの使用を考慮していないため、判定部15は必ず第一または第二の局面の一方であると判定する。しかし、VLANを利用する環境においては、第三の局面(暗号化も復号化も不要なので共通鍵kを生成する必要がない)であると判定することもある。したがって、判定部15がどのような条件に基づき判定するのかという点と、いくつの局面の中から一つを選択して判定するのかという点において、様々な実施形態がありうる。
個々の暗号処理モジュールが、フレームの送受信の方向によって暗号化処理と復号化処理のいずれを行うかという点は、任意に選択可能である。例えば、管理者がL2中継装置101に設定を入力し、CPU106がその内容を個々の暗号処理モジュール104に設定してもよい。よって、図12〜図14で説明したような様々な構成の中から、個々の実施形態に応じた適切な構成を利用者が選択し、その選択にあわせて暗号処理モジュール104の動作を設定することが可能である。
図15は、図3に示した共通鍵kの生成に利用される各種情報のより具体的な例を説明する図である。図15では、MACヘッダ情報k1_f、シーケンス番号k2_n、マスター鍵k3の三つの情報を利用して共通鍵kを生成することを示している。なお、図15の例は、図6から図14に示したL2中継装置101内の共通鍵生成装置に適用される。
図15には、図10と同様のフレーム150および暗号化フレーム170を示すとともに、L2中継装置101のうち、共通鍵kの生成に利用する情報に特に関係のある部分を抜粋して示してある。
図15において、事前共有鍵k0は、例えば管理者等によりL2中継装置101に事前に設定される。人間が設定しやすいように、8文字以内の英数字からなるパスワードを事前共有鍵k0として用いてもよい。
図5に関して説明したごとく、暗号化通信を行う二台の中継装置2a、2bにおいて、マスター鍵k3は同じ値でなくてはならないため、同じ値の事前共有鍵k0がこれら二台の中継装置2a、2bに設定されなくてはならない。もちろん、事前共有鍵k0からマスター鍵k3を生成するアルゴリズムも、これら二台の中継装置2a、2bで同じでなくてはならない。すなわち、個々の中継装置2a、2bの違いによらず、同じ事前共有鍵k0からは同じマスター鍵k3が一意に生成されなくてはならない。
設定された事前共有鍵k0は、図15に示すとおり、TCG対応チップ105に格納される。よって、事前共有鍵k0を外部から不正に読み取ることは不可能である。
なお、同じ値の事前共有鍵k0を設定すべき中継装置の組み合わせは、実施形態により異なる。ある実施形態では、事前共有鍵k0は、暗号化通信を行う範囲に含まれるすべてのL2中継装置101において同じ値が設定される。例えば、図9Aでは、L2中継装置101a、101bの双方に同じ値の事前共有鍵k0が設定され、図14では、L2中継装置101a〜101eのすべてに同じ値の事前共有鍵k0が設定される。
なお、同じ値の事前共有鍵k0を設定すべき中継装置の組み合わせは、実施形態により異なる。ある実施形態では、事前共有鍵k0は、暗号化通信を行う範囲に含まれるすべてのL2中継装置101において同じ値が設定される。例えば、図9Aでは、L2中継装置101a、101bの双方に同じ値の事前共有鍵k0が設定され、図14では、L2中継装置101a〜101eのすべてに同じ値の事前共有鍵k0が設定される。
VLANを利用する別の実施形態では、VLANごとに異なる事前共有鍵k0を設定してもよい。例えば、図9Aの例ではL2中継装置101a、101bの双方に対し、VLAN110用の事前共有鍵k0とVLAN120用の事前共有鍵k0’をそれぞれ設定してもよい。ただし、この場合も、L2中継装置101a、101bの双方で同じ値が設定されるという点は上記実施形態と共通である。
MACヘッダ情報k1_fは、送信先・送信元情報k1の具体例である。図15では、MACヘッダ情報k1_fは、送信先MACアドレス151および送信元MACアドレス152の双方からなる情報である。他の実施形態では、MACヘッダ情報k1_fは、送信先MACアドレス151と送信元MACアドレス152の少なくとも一方に基づく情報であってもよい。また、送信先MACアドレス151や送信元MACアドレス152の全部ではなく一部のみをMACヘッダ情報k1_fとして利用することも可能である。
図15や図10から分かるように、MACヘッダ情報k1_fは、暗号化の対象であるフレーム150またはタグつきフレーム160からも、復号化の対象である暗号化フレーム170からも、取得することができる。
シーケンス番号k2_sおよびk2_rは、鍵素材k2の具体例である。上述のように鍵素材k2は第一の局面と第二の局面で取得方法が異なるが、シーケンス番号k2_sが第一の局面に対応し、シーケンス番号k2_rが第二の局面に対応する。ただし、図1や図5から分かるように、シーケンス番号k2_sの値がシーケンス番号k2_rとして入力データ(フレーム150、タグつきフレーム160、暗号化フレーム170など)に含まれる。よって、シーケンス番号k2_sおよびk2_rの両方を指す場合は、総称として「k2_n」という符号を用いる。
シーケンス番号k2_sは、暗号処理モジュール104ごとに、つまり図7の共通鍵生成装置1cごとに管理される番号である。シーケンス番号k2_sは鍵素材格納部12に格納されており、判定部15が第一の局面であると判定するたびに、鍵素材読み取り部13により1ずつインクリメントされる。図11のシーケンス番号1714は、共通鍵生成装置1への入力データとしての暗号化フレーム170に書き込まれたシーケンス番号k2_rであり、データ長が8バイトである。
したがって、本実施形態における鍵素材格納部12は8バイトのカウンタである。なお、カウンタの初期値は、前述したごとく、暗号処理モジュール104によってランダムに異なる値が設定されていることが望ましい。
マスター鍵k3は、事前共有鍵k0に基づいて暗号処理モジュール104が生成する。マスター鍵k3は事前共有鍵k0よりも長いデータ長を持つことが望ましい。
マスター鍵k3の生成は、例えば次のように実行される。管理者が事前共有鍵k0をL2中継装置101に設定すると、CPU106が暗号処理モジュール104にマスター鍵k3の生成を命令し、暗号処理モジュール104内のマスター鍵生成部20はその命令にしたがってマスター鍵k3を生成してマスター鍵格納部21に格納する。あるいは、マスター鍵k3のもととなる候補値の配列であるマスター鍵配列Cを事前共有鍵k0に基づいて暗号処理モジュール104が生成してもよい。この場合、マスター鍵配列Cが暗号処理モジュール104の内部に格納され、その中からマスター鍵k3が選択される(詳細は後述する)。いずれにしても、マスター鍵k3は事前共有鍵k0に基づいて生成される。なお、事前共有鍵k0からマスター鍵k3を生成する方法には、後述するようにいくつかの方法がある。
マスター鍵k3の生成は、例えば次のように実行される。管理者が事前共有鍵k0をL2中継装置101に設定すると、CPU106が暗号処理モジュール104にマスター鍵k3の生成を命令し、暗号処理モジュール104内のマスター鍵生成部20はその命令にしたがってマスター鍵k3を生成してマスター鍵格納部21に格納する。あるいは、マスター鍵k3のもととなる候補値の配列であるマスター鍵配列Cを事前共有鍵k0に基づいて暗号処理モジュール104が生成してもよい。この場合、マスター鍵配列Cが暗号処理モジュール104の内部に格納され、その中からマスター鍵k3が選択される(詳細は後述する)。いずれにしても、マスター鍵k3は事前共有鍵k0に基づいて生成される。なお、事前共有鍵k0からマスター鍵k3を生成する方法には、後述するようにいくつかの方法がある。
図15の例では、共通鍵kが、MACヘッダ情報k1_fとシーケンス番号k2_nとマスター鍵k3とから生成される。これは、ある関数fを用いて、
k=f(k1_f,k2_s,k3)
=f(k1_f,k2_r,k3)
=f(k1_f,k2_n,k3) ……(1)
と表すことができる。式(1)に示したとおり、第一の局面(暗号化のために共通鍵kを生成する局面)と第二の局面(復号化のために共通鍵kを生成する局面)において、同じ関数fを用いる。
k=f(k1_f,k2_s,k3)
=f(k1_f,k2_r,k3)
=f(k1_f,k2_n,k3) ……(1)
と表すことができる。式(1)に示したとおり、第一の局面(暗号化のために共通鍵kを生成する局面)と第二の局面(復号化のために共通鍵kを生成する局面)において、同じ関数fを用いる。
また、マスター鍵k3は事前共有鍵k0に基づいて生成されるので、ある関数gとf2を用いて、
k=f(k1_f,k2_n,g(k0))
=f2(k1_f,k2_n,k0) ……(2)
と表すこともできる。つまり、図15の例は、「共通鍵kが、送信先・送信元情報k1と鍵素材k2と事前共有鍵k0に基づいて生成される」と表現することも可能である。なお、後述するように、関数fの具体的な内容は実施形態により様々に異なる。
k=f(k1_f,k2_n,g(k0))
=f2(k1_f,k2_n,k0) ……(2)
と表すこともできる。つまり、図15の例は、「共通鍵kが、送信先・送信元情報k1と鍵素材k2と事前共有鍵k0に基づいて生成される」と表現することも可能である。なお、後述するように、関数fの具体的な内容は実施形態により様々に異なる。
第一の局面(暗号化のために共通鍵kを生成する)における暗号処理モジュール104の動作は次のステップ(s1)〜(s7)のとおりである。
(s1)暗号化の対象となる平文フレームを、対応するポートまたはフレーム中継処理部102から暗号処理モジュール104が受信する。つまり、暗号処理モジュール104内の受付部11が入力データとして平文フレームを受け付ける。
(s2)判定部15が第一の局面であると判定し、鍵素材読み取り部13、共通鍵生成部14に第一の局面であるという判定結果を通知する。なお、図9A〜図9B、図12〜図14に関して説明したように、実施形態によってこの判定に利用される具体的な判定条件は異なる。ステップ(s1)においてフレームをどこから受信したか、受信したフレームが暗号ヘッダ171を含むか、VLANを利用している環境か、VLANを利用している場合TCI162の値は何か、などの情報を一つ以上組み合わせることにより、判定部15はこの判定を行う。
(s3)暗号処理モジュール104内の共通鍵生成部14が、そのフレームからMACヘッダ情報k1_fを読み取る。
(s4)暗号処理モジュール104内の鍵素材読み取り部13が、カウンタ(つまり鍵素材格納部12)から現在のシーケンス番号k2_sを読み取り、カウンタの値を1増やす。
(s5)暗号処理モジュール104内の共通鍵生成部14が、格納済みのマスター鍵k3を読み出す、または、事前共有鍵k0に基づいてマスター鍵k3を生成する。
(s6)暗号処理モジュール104内の共通鍵生成部14が、上記の関数fを用いて、
k=f(k1_f,k2_s,k3) なる共通鍵kを生成する。
(s7)暗号処理モジュール104内の暗号化部16が、共通鍵kを用いてフレームを暗号化し、(s4)で読み取った値を暗号ヘッダ171にシーケンス番号k2_rとして書き込む。
(s1)暗号化の対象となる平文フレームを、対応するポートまたはフレーム中継処理部102から暗号処理モジュール104が受信する。つまり、暗号処理モジュール104内の受付部11が入力データとして平文フレームを受け付ける。
(s2)判定部15が第一の局面であると判定し、鍵素材読み取り部13、共通鍵生成部14に第一の局面であるという判定結果を通知する。なお、図9A〜図9B、図12〜図14に関して説明したように、実施形態によってこの判定に利用される具体的な判定条件は異なる。ステップ(s1)においてフレームをどこから受信したか、受信したフレームが暗号ヘッダ171を含むか、VLANを利用している環境か、VLANを利用している場合TCI162の値は何か、などの情報を一つ以上組み合わせることにより、判定部15はこの判定を行う。
(s3)暗号処理モジュール104内の共通鍵生成部14が、そのフレームからMACヘッダ情報k1_fを読み取る。
(s4)暗号処理モジュール104内の鍵素材読み取り部13が、カウンタ(つまり鍵素材格納部12)から現在のシーケンス番号k2_sを読み取り、カウンタの値を1増やす。
(s5)暗号処理モジュール104内の共通鍵生成部14が、格納済みのマスター鍵k3を読み出す、または、事前共有鍵k0に基づいてマスター鍵k3を生成する。
(s6)暗号処理モジュール104内の共通鍵生成部14が、上記の関数fを用いて、
k=f(k1_f,k2_s,k3) なる共通鍵kを生成する。
(s7)暗号処理モジュール104内の暗号化部16が、共通鍵kを用いてフレームを暗号化し、(s4)で読み取った値を暗号ヘッダ171にシーケンス番号k2_rとして書き込む。
第二の局面(復号化のために共通鍵kを生成する)における暗号処理モジュール104の動作は次のステップ(r1)〜(r7)のとおりである。
(r1)復号化の対象となる暗号化フレームを、対応するポートまたはフレーム中継処理部102から暗号処理モジュール104が受信する。つまり、暗号処理モジュール104内の受付部11が入力データとして暗号化フレームを受け付ける。
(r2)判定部15が第二の局面であると判定する。判定部15は、鍵素材読み取り部13、共通鍵生成部14に第二の局面であるという判定結果を通知する。この判定に利用される具体的な判定条件が実施形態により異なる点は、ステップ(s2)に関して説明したとおりである。
(r3)暗号処理モジュール104内の共通鍵生成部14が、そのフレームからMACヘッダ情報k1_fを読み取る。
(r4)暗号処理モジュール104内の鍵素材読み取り部13が、そのフレームの暗号ヘッダ171内の所定の部分(シーケンス番号1714)からシーケンス番号k2_rを読み取る。
(r5)暗号処理モジュール104内の共通鍵生成部14が、格納済みのマスター鍵k3を読み出す、または、事前共有鍵k0に基づいてマスター鍵k3を生成する。
(r6)暗号処理モジュール104内の共通鍵生成部14が、上記の関数fを用いて、
k=f(k1_f,k2_r,k3) なる共通鍵kを生成する。なお、この関数fはステップ(s6)における関数fと同じ関数である。
(r7)暗号処理モジュール104内の復号化部17が、共通鍵kを用いてフレームを復号化する。
(r1)復号化の対象となる暗号化フレームを、対応するポートまたはフレーム中継処理部102から暗号処理モジュール104が受信する。つまり、暗号処理モジュール104内の受付部11が入力データとして暗号化フレームを受け付ける。
(r2)判定部15が第二の局面であると判定する。判定部15は、鍵素材読み取り部13、共通鍵生成部14に第二の局面であるという判定結果を通知する。この判定に利用される具体的な判定条件が実施形態により異なる点は、ステップ(s2)に関して説明したとおりである。
(r3)暗号処理モジュール104内の共通鍵生成部14が、そのフレームからMACヘッダ情報k1_fを読み取る。
(r4)暗号処理モジュール104内の鍵素材読み取り部13が、そのフレームの暗号ヘッダ171内の所定の部分(シーケンス番号1714)からシーケンス番号k2_rを読み取る。
(r5)暗号処理モジュール104内の共通鍵生成部14が、格納済みのマスター鍵k3を読み出す、または、事前共有鍵k0に基づいてマスター鍵k3を生成する。
(r6)暗号処理モジュール104内の共通鍵生成部14が、上記の関数fを用いて、
k=f(k1_f,k2_r,k3) なる共通鍵kを生成する。なお、この関数fはステップ(s6)における関数fと同じ関数である。
(r7)暗号処理モジュール104内の復号化部17が、共通鍵kを用いてフレームを復号化する。
例えば、図9Aでは、L2中継装置101a、101bの双方において同じ値のk0が設定されており、MACヘッダ情報k1_fはフレームの送信時と受信時で同じ内容であり、カウンタ(鍵素材格納部12)に格納されたシーケンス番号k2_sの値がシーケンス番号k2_rとして暗号化フレーム170に含まれる。よって、式(1)と(2)から、L2中継装置101a、101bの双方が同じ値の共通鍵kを生成することが分かる。
上記の関数fは、以下のような点を考慮して適切に定めるのが好ましい。
MACヘッダ情報k1_fは、フレームの送信元と送信先のペアごとに異なる。よって、異なるノード間の通信ではMACヘッダ情報k1_fが異なる。異なるMACヘッダ情報k1_fに対しては異なる共通鍵kが生成されるような関数fを利用すれば、異なるノード間の通信に対しては異なる共通鍵kが使われ、高いセキュリティレベルを実現することができる。
MACヘッダ情報k1_fは、フレームの送信元と送信先のペアごとに異なる。よって、異なるノード間の通信ではMACヘッダ情報k1_fが異なる。異なるMACヘッダ情報k1_fに対しては異なる共通鍵kが生成されるような関数fを利用すれば、異なるノード間の通信に対しては異なる共通鍵kが使われ、高いセキュリティレベルを実現することができる。
また、シーケンス番号k2_nは、判定部15が第一の局面であると判定して暗号処理モジュール104がフレームを暗号化するたびに1ずつ増加する番号であり、かつ、十分に長いデータ長を有する。よって、シーケンス番号k2_nは、同一ノード間の通信でもフレームごとに異なる値となる。よって、異なるシーケンス番号k2_nに対しては異なる共通鍵kが生成されるような関数fを利用すれば、フレームごとに異なる共通鍵kが使われ、高いセキュリティレベルを実現することができる。
以上のように共通鍵kを生成することにより、共通鍵kがMACヘッダ情報k1_fおよびシーケンス番号k2_nによって異なる値となる。よって、IKEなどにしたがって動的に鍵情報の交換を行ってリキーを行わなくても、事実上フレームごとに異なる共通鍵kが使われる。
本発明によれば、動的に鍵情報の交換を行わなくてもよいため、複雑なプロトコルを実装する必要がない。また、動的に鍵情報の交換を行う場合、一つの中継装置に障害があると全体に影響し、通信が切断されるが、本発明では他のL2中継装置101への影響はない。したがって、上記のように生成した共通鍵kを利用することは、セキュリティ、スケーラビリティ、信頼性のすべてを満足する効果をもつ。
以下では、共通鍵kの生成の具体的な方法について、いくつか説明する。
共通鍵kを生成する第一の方法は、関数fとしてハッシュ関数hを利用することである。つまり上記の式(1)に式(3)を適用する方法である。
共通鍵kを生成する第一の方法は、関数fとしてハッシュ関数hを利用することである。つまり上記の式(1)に式(3)を適用する方法である。
f(x1,x2,x3)≡h(x1+x2+x3) ……(3)
ここで、ハッシュ関数hとして、MD5(Message Digest Algorithm 5)やSHA‐1(Secure Hash Algorithm-1)等の汎用の高速ハッシュ関数を利用することができる。暗号化通信の送信側と受信側の暗号処理モジュール104同士が同じハッシュ関数を利用してさえいれば、ハッシュ関数hとして任意のハッシュ関数を用いることができる。
ここで、ハッシュ関数hとして、MD5(Message Digest Algorithm 5)やSHA‐1(Secure Hash Algorithm-1)等の汎用の高速ハッシュ関数を利用することができる。暗号化通信の送信側と受信側の暗号処理モジュール104同士が同じハッシュ関数を利用してさえいれば、ハッシュ関数hとして任意のハッシュ関数を用いることができる。
ハッシュ関数を利用することにより、異なる二つの(k1_f,k2_n,k3)の組から同じ共通鍵kが生成される確率を、無視しても問題がない程度まで低くすることができる。また、共通鍵kの値の分布が一様かつランダムになることが期待される。つまり、連続する二つのフレームに対する共通鍵kの値が大きく異なることが期待される。よって、暗号化フレームが傍受された場合でも、共通鍵kを推測することは非常に難しい。さらに、高速な演算が可能な汎用のハッシュ関数を利用することができるため、実装が容易である。
共通鍵kを生成する第二の方法は、配列を用いる方法である。図16はこの方法を説明する図であり、この方法では、上記のステップ(s5)、(s6)、(r5)、(r6)はそれぞれ以下のステップ(s5‐2)、(s6‐2)、(r5‐2)、(r6‐2)で置き換えられる。
(s5‐2)暗号処理モジュール104内の共通鍵生成部14が、ステップ(s4)で読み取ったシーケンス番号k2_sに基づいて、マスター鍵配列Cからマスター鍵k3を読み出す。
(s6‐2)暗号処理モジュール104内の共通鍵生成部14が、
k=k3 XOR (k1+k2_s)
なる共通鍵kを生成する(「XOR」は排他的論理和を表す演算子である)。
(r5‐2)暗号処理モジュール104内の共通鍵生成部14が、ステップ(r3)で読み取ったシーケンス番号k2_rに基づいて、マスター鍵配列Cからマスター鍵k3を読み出す。
(r6‐2)暗号処理モジュール104内の共通鍵生成部14が、
k=k3 XOR (k1+k2_r)
なる共通鍵kを生成する。
(s5‐2)暗号処理モジュール104内の共通鍵生成部14が、ステップ(s4)で読み取ったシーケンス番号k2_sに基づいて、マスター鍵配列Cからマスター鍵k3を読み出す。
(s6‐2)暗号処理モジュール104内の共通鍵生成部14が、
k=k3 XOR (k1+k2_s)
なる共通鍵kを生成する(「XOR」は排他的論理和を表す演算子である)。
(r5‐2)暗号処理モジュール104内の共通鍵生成部14が、ステップ(r3)で読み取ったシーケンス番号k2_rに基づいて、マスター鍵配列Cからマスター鍵k3を読み出す。
(r6‐2)暗号処理モジュール104内の共通鍵生成部14が、
k=k3 XOR (k1+k2_r)
なる共通鍵kを生成する。
つまり、この第二の方法では式(1)に次の式(4)を適用する。
f(x1,x2,x3)≡x3 XOR (x1+x2) ……(4)
図16を参照して上記のステップについて説明する。図15においては、事前共有鍵k0から一つのマスター鍵k3が生成されていたが、図16では事前共有鍵k0からM個の値が生成され、それらの値の配列をマスター鍵配列Cとして暗号処理モジュール104に格納しておく。例えば、マスター鍵格納部21にかえてマスター鍵配列格納部を設け、そこにマスター鍵配列Cを格納してもよい。
f(x1,x2,x3)≡x3 XOR (x1+x2) ……(4)
図16を参照して上記のステップについて説明する。図15においては、事前共有鍵k0から一つのマスター鍵k3が生成されていたが、図16では事前共有鍵k0からM個の値が生成され、それらの値の配列をマスター鍵配列Cとして暗号処理モジュール104に格納しておく。例えば、マスター鍵格納部21にかえてマスター鍵配列格納部を設け、そこにマスター鍵配列Cを格納してもよい。
以下、マスター鍵配列Cで添え字がjの値をC[j]と表し、各C[j]の値を候補値とよぶ。つまり、マスター鍵配列CはM個の候補値C[0]〜C[M−1]からなる配列であり、個々の候補値は下記の式(5)により表現することができる。
C[j]=g2(k0,j) (0≦j≦M−1) ……(5)
ステップ(s5‐2)では、例えば、シーケンス番号k2_sをMで割ったときの剰余jを算出し、C[j]の値をマスター鍵k3として読み出してもよい。ステップ(r5‐2)でも同様にして、マスター鍵k3を読み出すことができる。この場合、Mは実施形態によって予め決められた定数であることから、マスター鍵k3を次のように表すことができる(ここで「mod」は剰余を算出する演算子である)。
ステップ(s5‐2)では、例えば、シーケンス番号k2_sをMで割ったときの剰余jを算出し、C[j]の値をマスター鍵k3として読み出してもよい。ステップ(r5‐2)でも同様にして、マスター鍵k3を読み出すことができる。この場合、Mは実施形態によって予め決められた定数であることから、マスター鍵k3を次のように表すことができる(ここで「mod」は剰余を算出する演算子である)。
k3=C[j]
=C[k2_n mod M]
=g2(k0,k2_n mod M)
=g3(k0,k2_n) ……(6)
もちろん、実施形態によっては別の方法を使ってjを決定し、マスター鍵配列Cからマスター鍵k3(=C[j])を読み出してもよい。
=C[k2_n mod M]
=g2(k0,k2_n mod M)
=g3(k0,k2_n) ……(6)
もちろん、実施形態によっては別の方法を使ってjを決定し、マスター鍵配列Cからマスター鍵k3(=C[j])を読み出してもよい。
ステップ(s5‐2)や(r5‐2)では、マスター鍵k3がシーケンス番号k2_n(k2_sまたはk2_r)に基づいて算出されるため、連続した二つの暗号化フレームで異なるマスター鍵k3が用いられ、したがって、異なる共通鍵kが用いられる。また、暗号化フレームを傍受されたとしても共通鍵kが推測困難なようにするためには、マスター鍵配列Cを生成する際にC[i]とC[i+1]のビット列が類似しないような方法で生成し、かつMを適度に大きな値(例えば256)としておくことが望ましい。
この第二の方法では、関数fとして、ハッシュ関数よりもさらに高速に演算することが可能な、簡単な関数を利用している。すなわち、ステップ(s6‐2)および(r6‐2)に示したごとく、関数fの計算に必要なのは算術加算と排他的論理和の演算のみである。
したがって、この第二の方法は、共通鍵kの安全性と演算速度をともに考慮した方法であり、Gbps級の高速通信に好適である。
ところで、図9AのようにVLANを利用する環境においては、上記の第一および第二の方法を変形した方法を採用することも可能である。例えば、図9Aの例において、VLAN110とVLAN120で同じマスター鍵k3を利用してもよいが、異なるマスター鍵k3、k3’を利用してもよい。後者の場合、暗号化対象であるVLAN110、120にそれぞれ対応する事前共有鍵k0、k0’を管理者がL2中継装置101aに設定し、暗号処理モジュール104aは事前共有鍵k0からマスター鍵k3を生成するとともに事前共有鍵k0’からマスター鍵k3’を生成する。管理者は、L2中継装置101bにも同様に事前共有鍵k0、k0’を設定し、暗号処理モジュール104bにマスター鍵k3、k3’を生成させる。以上は第一の方法を変形した方法である。第二の方法も同様にして変形することができる。すなわち、暗号処理モジュール104a、104bはそれぞれ、VLAN110、120に対応する二つの事前共有鍵k0、k0’から二組のマスター鍵配列C、C’を生成する。そして、VLAN110に対応するフレームの暗号処理ではマスター鍵配列Cを使い、VLAN120に対応するフレームの暗号処理ではマスター鍵配列C’を使う。
ところで、図9AのようにVLANを利用する環境においては、上記の第一および第二の方法を変形した方法を採用することも可能である。例えば、図9Aの例において、VLAN110とVLAN120で同じマスター鍵k3を利用してもよいが、異なるマスター鍵k3、k3’を利用してもよい。後者の場合、暗号化対象であるVLAN110、120にそれぞれ対応する事前共有鍵k0、k0’を管理者がL2中継装置101aに設定し、暗号処理モジュール104aは事前共有鍵k0からマスター鍵k3を生成するとともに事前共有鍵k0’からマスター鍵k3’を生成する。管理者は、L2中継装置101bにも同様に事前共有鍵k0、k0’を設定し、暗号処理モジュール104bにマスター鍵k3、k3’を生成させる。以上は第一の方法を変形した方法である。第二の方法も同様にして変形することができる。すなわち、暗号処理モジュール104a、104bはそれぞれ、VLAN110、120に対応する二つの事前共有鍵k0、k0’から二組のマスター鍵配列C、C’を生成する。そして、VLAN110に対応するフレームの暗号処理ではマスター鍵配列Cを使い、VLAN120に対応するフレームの暗号処理ではマスター鍵配列C’を使う。
次に、事前共有鍵k0からマスター鍵k3を生成する方法についていくつか説明する。事前共有鍵k0からマスター鍵k3を生成する方法が異なれば、同じ事前共有鍵k0、MACヘッダ情報k1_f、シーケンス番号k2_nから異なる共通鍵kが生成される。
事前共有鍵k0からマスター鍵k3を生成する第一の方法は、ランダムなバイト列を生成する関数rを用いる方法である。関数rには引数としてシードが与えられる。関数rは同じシードに対しては同じ結果を返す関数である。
この第一の方法による実施形態では、L2中継装置101のファームウェアが一意な文字列(以下では「ファーム文字列」とよび、符号「fs」で表す)を定義しており、暗号処理モジュール104(より詳細には、その内部のマスター鍵生成部20)はファーム文字列fsを参照することができるようになっている。つまり、同じファームウェアが組み込まれた複数のL2中継装置101に備えられたすべての暗号処理モジュール104は、同じファーム文字列fsを参照することができる。ファーム文字列fsは、例えばファームウェアを設計してL2中継装置101に組み込んだ製造業者しか知らないものであって、L2中継装置101の利用者には秘密にされる。
また、本実施形態では、暗号化フレームの送信側と受信側で使われる暗号処理モジュール(例えば図9Aの104aと104b)が同じファームウェアを搭載しており、かつ同じ関数rを利用可能であるものとする。
関数rに与えるシードは、ファーム文字列fsと事前共有鍵k0に基づいて算出される。例えば、ファーム文字列fsと事前共有鍵k0を文字列として連結したものをシードとしてもよく、ファーム文字列fsと事前共有鍵k0のビット列から排他的論理和を演算してシードとしてもよい。つまり、以下の式(7)または(8)にしたがってマスター鍵k3を生成することが可能である(ここで「&」はビット列を連結する演算子を示す)。
k3=g(k0)=r(fs & k0) ……(7)
k3=g(k0)=r(fs XOR k0) ……(8)
例えば、算出すべきマスター鍵k3の長さをNバイトと定めたとする。このとき、関数rが長さNバイトの値を返す関数であれば、上記のようにしてファーム文字列fsと事前共有鍵k0に基づいて算出したシードを関数rの引数として与えれば、マスター鍵k3を得ることができる。
k3=g(k0)=r(fs XOR k0) ……(8)
例えば、算出すべきマスター鍵k3の長さをNバイトと定めたとする。このとき、関数rが長さNバイトの値を返す関数であれば、上記のようにしてファーム文字列fsと事前共有鍵k0に基づいて算出したシードを関数rの引数として与えれば、マスター鍵k3を得ることができる。
あるいは、関数rが長さ1バイトの値を返す関数として定義されている場合は、N個のランダムなバイト値を生成し、それらを連結してNバイトのマスター鍵k3を得てもよい。この場合、N個の異なる値(以下「インデックス値」とよぶ)を使ってN個のシードを生成し、それらN個のシードを使ってN個のランダムなバイト値を生成する。インデックス値は、例えば1からNの整数でもよく、別のものでもよい。例えば、インデックス値が1からNの整数のとき、j番目のシードは、ファーム文字列fsと事前共有鍵k0とjとに基づいて生成される(1≦j≦N)。例えば、シードを生成するための適当な関数sにより、マスター鍵k3は、式(9)のように表すことができる。
k3=r(s(fs,k0,1))&
r(s(fs,k0,2))&……&
r(s(fs,k0,N)) ……(9)
以上、いくつか変形例を交えながら説明したが、この第一の方法によれば、暗号化フレームの送信側と受信側で同じ事前共有鍵k0を設定すると、同じマスター鍵k3が生成される。マスター鍵k3の生成に使われるシードは、L2中継装置101の利用者に対して秘密にされるファーム文字列fsと、管理者しか知らない事前共有鍵k0とに基づいて算出される。よって、たとえ関数rとして汎用のライブラリ関数を利用したとしても、外部からマスター鍵k3を推測することは非常に困難であり、安全にマスター鍵k3を生成することができる。
r(s(fs,k0,2))&……&
r(s(fs,k0,N)) ……(9)
以上、いくつか変形例を交えながら説明したが、この第一の方法によれば、暗号化フレームの送信側と受信側で同じ事前共有鍵k0を設定すると、同じマスター鍵k3が生成される。マスター鍵k3の生成に使われるシードは、L2中継装置101の利用者に対して秘密にされるファーム文字列fsと、管理者しか知らない事前共有鍵k0とに基づいて算出される。よって、たとえ関数rとして汎用のライブラリ関数を利用したとしても、外部からマスター鍵k3を推測することは非常に困難であり、安全にマスター鍵k3を生成することができる。
事前共有鍵k0からマスター鍵k3を生成する第二の方法はハッシュ関数hを用いる方法である。ハッシュ関数hは、同じ引数に対しては常に同じハッシュ値を算出する関数である。
この第二の方法では、関数rのかわりにハッシュ関数hを用いる点以外は、第一の方法と同様である。第二の方法では、ハッシュ関数hの引数はファーム文字列fsと事前共有鍵k0に基づいて算出される値であり、その結果得られるハッシュ値がマスター鍵k3である。例えば、式(10)または(11)によってマスター鍵k3を生成してもよい。
k3=g(k0)=h(fs & k0) ……(10)
k3=g(k0)=h(fs XOR k0) ……(11)
第二の方法では、ハッシュ関数を使うのでマスター鍵k3のビット配列には規則性がない。また、マスター鍵k3はファーム文字列fsと事前共有鍵k0とに基づいて算出される。したがって、たとえハッシュ関数hとして汎用のライブラリ関数(例えばMD5やSHA‐1など)を利用したとしても、外部からマスター鍵k3を推測することは非常に困難であり、安全にマスター鍵k3を生成することができる。
k3=g(k0)=h(fs XOR k0) ……(11)
第二の方法では、ハッシュ関数を使うのでマスター鍵k3のビット配列には規則性がない。また、マスター鍵k3はファーム文字列fsと事前共有鍵k0とに基づいて算出される。したがって、たとえハッシュ関数hとして汎用のライブラリ関数(例えばMD5やSHA‐1など)を利用したとしても、外部からマスター鍵k3を推測することは非常に困難であり、安全にマスター鍵k3を生成することができる。
ところで、事前共有鍵k0からマスター鍵k3を生成する上記の第一および第二の方法は、変更を加えることによって、図10のようにマスター鍵配列Cを利用する実施形態にも適用することができる。
事前共有鍵k0からマスター鍵配列Cを生成する第一の方法は、事前共有鍵k0からマスター鍵k3を生成する第一の方法と類似の方法である。ただし、マスター鍵k3の長さをNバイトと定めた場合に、Nバイトの長さをもつ一つのマスター鍵k3を生成するのではなく、それぞれがNバイトの長さをもつM個の候補値を生成し、それらをC[0]〜C[M−1]として格納する点で異なる。
例えば、関数rが長さNバイトの値を返す関数として定義されている場合は、M個のランダムな値を生成して候補値として格納してもよい。この場合、上記式(5)は以下のように書き換えられる。
C[j]=g2(k0,j)
=r(s(fs,k0,j)) (0≦j≦M−1) ……(12)
あるいは、関数rが長さ1バイトの値を返す関数として定義されている場合は、N×M個のランダムなバイト値を生成し、N個ずつを連結してNバイトの長さをもつM個の候補値とし、それぞれをC[0]〜C[M−1]として格納してもよい。この場合、N×M個のインデックス値を使ってN×M個のシードを生成し、それらのシードを関数rの引数とする。例えば、インデックス値として1〜(N×M)の整数を使う場合、上記式(5)は以下のように書き換えられる。
=r(s(fs,k0,j)) (0≦j≦M−1) ……(12)
あるいは、関数rが長さ1バイトの値を返す関数として定義されている場合は、N×M個のランダムなバイト値を生成し、N個ずつを連結してNバイトの長さをもつM個の候補値とし、それぞれをC[0]〜C[M−1]として格納してもよい。この場合、N×M個のインデックス値を使ってN×M個のシードを生成し、それらのシードを関数rの引数とする。例えば、インデックス値として1〜(N×M)の整数を使う場合、上記式(5)は以下のように書き換えられる。
C[j]=g2(k0,j)
=r(s(fs,k0,N×j+1))&
r(s(fs,k0,N×j+2))&……&
r(s(fs,k0,N×j+N)) ……(13)
この方法によれば、関数rとして汎用のライブラリ関数を利用したとしても、外部からマスター鍵配列Cの内容を推測することは非常に困難である。したがって、マスター鍵配列Cの中から選択されるマスター鍵k3の安全性も保たれる。
=r(s(fs,k0,N×j+1))&
r(s(fs,k0,N×j+2))&……&
r(s(fs,k0,N×j+N)) ……(13)
この方法によれば、関数rとして汎用のライブラリ関数を利用したとしても、外部からマスター鍵配列Cの内容を推測することは非常に困難である。したがって、マスター鍵配列Cの中から選択されるマスター鍵k3の安全性も保たれる。
事前共有鍵k0からマスター鍵配列Cを生成する第二の方法は、事前共有鍵k0からマスター鍵k3を生成する第二の方法と類似の方法である。ただし、一つのマスター鍵k3を生成するのではなく、M個の候補値を生成し、それらをC[0]〜C[M−1]として格納する点で異なる。
この方法では、M個の候補値を生成するためにM個のインデックス値を使う。例えば、インデックス値が1からMの整数のとき、j番目の候補値、すなわちC[j−1]は、ファーム文字列fsと事前共有鍵k0とjとに基づいて算出した値をハッシュ関数hの引数として得たハッシュ値である(1≦j≦M)。例えば、式(5)を式(14)または(15)で置き換えてマスター鍵配列Cを生成してもよく、それ以外の方法でマスター鍵配列Cを生成してもよい。
C[j−1]=g2(k0,j−1)
=h(fs & k0 & (j−1)) ……(14)
C[j−1]=g2(k0,j−1)
=h(fs XOR k0 XOR (j−1)) ……(15)
この方法によれば、ハッシュ関数hとして汎用のライブラリ関数を利用したとしても、外部からマスター鍵配列Cの内容を推測することは非常に困難である。したがって、マスター鍵配列Cの中から選択されるマスター鍵k3の安全性も保たれる。また、ハッシュ関数を用いているため、C[0]〜C[M−1]に格納されたそれぞれの候補値はビット配置に規則性がない。したがって、暗号化フレームを傍受したとしてもマスター鍵k3を推測することは困難であり、マスター鍵k3の安全性が保たれている。
=h(fs & k0 & (j−1)) ……(14)
C[j−1]=g2(k0,j−1)
=h(fs XOR k0 XOR (j−1)) ……(15)
この方法によれば、ハッシュ関数hとして汎用のライブラリ関数を利用したとしても、外部からマスター鍵配列Cの内容を推測することは非常に困難である。したがって、マスター鍵配列Cの中から選択されるマスター鍵k3の安全性も保たれる。また、ハッシュ関数を用いているため、C[0]〜C[M−1]に格納されたそれぞれの候補値はビット配置に規則性がない。したがって、暗号化フレームを傍受したとしてもマスター鍵k3を推測することは困難であり、マスター鍵k3の安全性が保たれている。
次に、図17を参照しながら、フレームの分割と再構成について説明する。L2中継装置101は、好ましい実施形態において、暗号化フレーム170を分割し、分割された複数のフレームからもとの一つのフレームを再構成する機能を有している。以下では、この機能を「フラグメンテーション機能」とよび、分割された暗号化フレーム170を「フラグメントフレーム」とよぶ。図17はフラグメンテーション機能を実現するための暗号ヘッダ171の形式を説明する図である。
前述のとおり一般に、イーサネットの最大フレーム長は1518バイトという仕様であり、IEEE802.1Q(VLAN)タグフレームの最大フレーム長は1522バイトという仕様である。また、一般に、暗号化したデータは平文データよりもデータサイズが大きくなる。さらに、暗号化フレーム170は暗号ヘッダ171を含む。よって、フレーム150やタグつきフレーム160のデータ部153を暗号化した場合、暗号化フレーム170のサイズが、上記の最大フレーム長を超えることがありうる。
市販の多くのレイヤ2中継装置は、最大フレーム長を1518バイトや1522バイトよりも大きく設定することができる。よって、L2中継装置101と従来の中継装置とを混在させたネットワークにおいて、従来の中継装置の設定を変えることによって、1522バイトよりも長い暗号化フレーム170の送受信が可能となる。例えば図9Aにおいて、1522バイトよりも長い暗号化フレーム170をL2中継装置101aからL2中継装置101bへ送信する際に、コアL2/L3スイッチ141で最大フレーム長が適切に設定されていれば、この暗号化フレーム170はコアL2/L3スイッチ141を経由してL2中継装置101bに届く。
したがって、例えばある会社が自社のオフィス用のLANとして独自に構築したネットワークなど、中継装置の設定を任意に変えることができる場合には、L2中継装置101の利用が問題になることは少ない。しかし、通信キャリア事業者が提供するイーサネット網を利用している場合など、利用者が好きなように中継装置の設定を変えることができない場合もある。その場合、L2中継装置101を利用しようとすると、最大フレーム長の制限から、暗号化フレーム170が送信できなくなることがありうる。
そこで、L2中継装置101は、フラグメンテーション機能を有することが望ましい。図17の実施形態では、L2中継装置101がフラグメンテーション機能を具備しており、暗号ヘッダ171もそれに合わせた形式となっている。フラグメンテーション機能を備えたL2中継装置101を使えば、ネットワークの経路上に従来の中継装置がある場合でも、その中継装置で規定された最大フレーム長よりも長い暗号化フレーム170を送受信することができる。
フラグメンテーション機能を実現するために、具体的には暗号処理モジュール104は以下のことを行う。第一に、暗号化した結果サイズが増加した暗号化フレーム170を、複数のフラグメントフレームに分割する。第二に、受信したフレームがフラグメントフレームなのか、分割されていない暗号化フレーム170なのかを判定する。第三に、フラグメントフレームだと判定された場合には、すべてのフラグメントフレームを受信した後、一つの暗号化フレーム170に復元し、復元した暗号化フレーム170を復号化する。
図17と図11の暗号ヘッダ171を比較すると、図17では予約フィールド1713の値が0x01または0x02と指定されており、2バイトのID(Identification)715と2バイトのフラグメントオフセット716の二つのフィールドが追加されている点が相違点である。
本実施形態では、予約フィールド1713の値が0x01または0x02の場合は暗号ヘッダ171が図17のように16バイトに拡張されることを意味し、予約フィールド1713の値が0x00の場合は暗号ヘッダ171が図11のように12バイトであることを意味する。したがって、暗号処理モジュール104は、受信した暗号化フレームの予約フィールド1713の値によって暗号ヘッダ171の範囲を判定することができる。
分割されていない暗号化フレーム170において予約フィールド1713の値は0x00である。一つの暗号化フレーム170をn個のフラグメントフレームに分割した場合、予約フィールド1713の値は、1番目から(n−1)番目までのフラグメントフレームでは0x01であり、n番目のフラグメントフレームでは0x02である。
ID1715は、分割する前の暗号化フレーム170ごとに一つ割り当てられる識別番号を示すフィールドである。本実施形態においてはランダムな値を生成してID1715に利用する。一つの暗号化フレーム170をn個のフラグメントフレームに分割した場合、ID1715の値はそれらn個のフラグメントフレームで同一である。
フラグメントオフセット1716は、そのフラグメントフレームが先頭から何バイト目に位置するのかを示す値が入る。
次に、このような暗号ヘッダ171を使ってフラグメンテーション機能を実現するための暗号処理モジュール104の動作について説明する。
次に、このような暗号ヘッダ171を使ってフラグメンテーション機能を実現するための暗号処理モジュール104の動作について説明する。
暗号処理モジュール104は、暗号化を行う際に以下の動作を行う。まず、暗号化フレーム170のデータ長が最大フレーム長(通常のイーサネットでは1518バイト、VLAN環境においては1522バイト)を超えるか否かを判定する。最大フレーム長を超えていたら、暗号化フレーム170を複数のフラグメントフレームに分割する。その際、一つのランダムな値を生成し、その値をそれぞれのフラグメントフレームのID1715にコピーする。また、各フラグメントフレームに対して、フラグメントオフセット1716、ICV173、FCS154の値をそれぞれ計算する。
暗号処理モジュール104は、暗号ヘッダ171を含むフレームを受信したら、以下の動作を行う。まず、予約フィールド1713の値を調べる。この値が0x00の場合、分割されていない暗号化フレームを受信したと判断し、その暗号化フレームを復号化する。予約フィールド1713の値が0x01の場合、n個に分割されたフラグメントフレームのうち、1〜(n−1)番目のいずれかのフラグメントフレームを受信したと判断し、そのフラグメントフレームをの内容を一時的にバッファに格納する。予約フィールド1713の値が0x02の場合、n個に分割されたフラグメントフレームのうちn番目のフラグメントフレームを受信したと判断し、バッファに格納されている1〜(n−1)番目のフラグメントフレームとあわせてもとの暗号化フレームを再構成し、再構成した暗号化フレームを復号化する。なお、再構成に際しては、n個のフラグメントフレームでID1715が同じ値か否か、フラグメントオフセット1716の値と矛盾なく再構成可能か否かを確認しながら再構成を行う。また、通信路の状態によっては、すべてのフラグメントフレームを受信することができないかもしれないので、所定の時間以内にすべてのフラグメントフレームが揃って再構成を行うことができなければ、バッファをクリアする。
次に、IPsecに本発明を適用する場合について図18〜図27を参照しながら説明する。なお、共通鍵を生成する基本的な原理はレイヤ2の通信を暗号化する場合と同様なので、適宜説明を省略する。
図18は、本発明の共通鍵生成装置を備えた中継装置を含むネットワーク上で行われる暗号化通信およびIPパケットの形式を示す図である。図18では、IPsecによってIPパケットを暗号化するのに利用するために、本発明による共通鍵生成装置1a、1bが、レイヤ3の中継装置であるルータ201a、201bの一部として実装されている。本実施形態では、既存のIPsecの仕組みの多くの部分をそのまま利用している。
図18の説明をする前にIPとIPsecについて簡単に説明する。
IPはレイヤ3の代表的なプロトコルであり、トランスポート層(レイヤ4)のプロトコルであるTCP(Transmission Control Protocol)とあわせてインターネットで広く利用されている。IPなどのレイヤ3のプロトコルによるレイヤ3通信において用いられる中継装置には、L3(レイヤ3)スイッチやルータがある。レイヤ3通信では、データは「パケット」(データグラムともよばれる)という単位で送受信される。
IPはレイヤ3の代表的なプロトコルであり、トランスポート層(レイヤ4)のプロトコルであるTCP(Transmission Control Protocol)とあわせてインターネットで広く利用されている。IPなどのレイヤ3のプロトコルによるレイヤ3通信において用いられる中継装置には、L3(レイヤ3)スイッチやルータがある。レイヤ3通信では、データは「パケット」(データグラムともよばれる)という単位で送受信される。
なお、IPパケット250を物理媒体で送信するには、カプセル化してフレームにする必要がある。つまり、IPパケット250の先頭にフレームヘッダとして、図10の送信先MACアドレス151、送信元MACアドレス152、および、データ部153のうちの長さ/タイプを付加し(場合によってはLLCヘッダやSNAPヘッダも付加し)、IPパケット250の最後にフレームトレイラとして図10のFCS154を付加する必要がある。よって、フレーム150のデータ部153(正確には、そのうち長さ/タイプなどを除いた部分)の具体例は、例えばIPパケット250である。しかし図18〜図27ではレイヤ3通信に焦点を当てているので、カプセル化する前のIPパケット250に注目して説明する。
IPパケット250は、IPヘッダ251と、送信したいデータであるIPデータ252からなる。IPヘッダ251の形式は図23とあわせて後述する。
IPパケット250は、ルータ等が「ルーティング」とよばれる処理を行うことによってネットワーク内を転送され、送信元から送信先へ送信される。すなわち、ルーティング処理によって送信経路が決定され、その経路にしたがってIPパケットが送信される。
IPパケット250は、ルータ等が「ルーティング」とよばれる処理を行うことによってネットワーク内を転送され、送信元から送信先へ送信される。すなわち、ルーティング処理によって送信経路が決定され、その経路にしたがってIPパケットが送信される。
IPsecはIPパケット250を安全に送受信するための技術であり、暗号化、認証、完全性(インテグリティ、整合性ともよばれる)チェック、鍵交換などの諸機能を備えている。そのため、VPN(Virtual Private Network)などに利用されている。上述のとおりIPsecでは共通鍵暗号方式を採用しているので、暗号化側と復号化側が予め共通鍵を共有している必要がある。そのような共通鍵の共有を安全に実現するためのプロトコルが前述のIKEである。
一方で、IPsecの規格は複数のプロトコルの集まりであるから、IKEによる鍵交換とリキーを本発明の利用に置き換え、残りの仕組みは変えずにそのまま利用して、IPパケット250を安全に送受信することが可能である。図18〜図27はそのような実施形態を示している。図18〜図27は、鍵交換を行うことなく、IPパケット250ごとに実質的に異なる共通鍵を使って暗号化をする仕組みを説明する図である。
ところで、IPsecによる暗号化通信には、トンネルモードとトランスポートモードという二つのモードがあり、モードによって暗号化の対象範囲が異なる。トンネルモードは、元のIPパケット250のIPヘッダ251も含めて暗号化するので、ネットワーク間での暗号化通信に適し、VPNでよく利用されている。トランスポートモードは元のIPパケット250のIPデータ252のみを暗号化するので、端末間の暗号化通信に適する。
また、モードの違いは、IPsecに本発明を適用する際に、暗号化IPパケットのどの部分の情報を利用して共通鍵kの生成に利用するのかという点にも関連するが、詳しくは後述する。
ただし、いずれのモードにおいても、暗号化によって最終的に生成されるものはIPパケットの形式を備えている(以下「暗号化IPパケット」とよぶことにする)。つまり、モードによって暗号化の対象範囲が異なるが、その対象範囲を暗号化することにより得られるデータに適宜ヘッダ等を付加してESP(Encapsulating Security Payload;カプセル化セキュリティペイロード)パケット400とし(詳しくは後述)、そのESPパケット400の前にIPヘッダ(261または251)をつけて、最終的にはIPパケットの形式を備えるデータを生成する。つまり、暗号化IPパケット(260または270)においては、ESPパケット400がIPパケット250におけるIPデータ252に相当する。
また、いずれのモードであっても、例えばPC4aがPC4dにIPパケット250を送信する場合、PC4a、ネットワーク3a、ルータ201a、ネットワーク3b、ルータ201b、ネットワーク3c、PC4dからなる通信路によりIPパケット250が送信され、その通信路のうちルータ201aと201bの間で暗号化通信が行われる点は同じである。つまり、IPパケット250がその通信路上のルータ201aにおいて暗号化されて暗号化IPパケット(260または270)となり、それがルータ201bにおいて復号化されて復号化IPパケット280となる。
トンネルモードの暗号化IPパケット260は、具体的には、図18に示したように、新たなIPヘッダ261とESPパケット400からなる。ESPパケット400は、元のIPパケットの全体(IPヘッダ251とIPデータ252の両方)を暗号化し、その前にESPヘッダ262を付加し、後ろにESPトレイラ265と認証データ266を付加したものである。
図23に示すように、IPヘッダ251は、IPパケット250の送信先IPアドレス312と送信元IPアドレス311を含む。よって、トンネルモードでは送信先と受信先も秘密にされる。
例えば、図18でPC4aがPC4dにIPパケット250を送信する場合、IPヘッダ251はPC4aとPC4dのIPアドレスを含むが、暗号化IPパケット260内では暗号化されたIPヘッダ263となるため、PC4aとPC4dのIPアドレスは秘密にされる。一方、新たに先頭に付加されるIPヘッダ261は、送信先IPアドレスとしてルータ201bのIPアドレスを含み、送信元IPアドレスとしてルータ201aのIPアドレスを含む。このIPヘッダ261はクリアテキストの状態なので、暗号化IPパケット260を傍受すれば読み取れる。
トランスポートモードの暗号化IPパケット270では、元のIPパケット250のうちのIPヘッダ251を暗号化せずにそのまま用いており、そこに含まれる送信先IPアドレスと受信先IPアドレス(例えばPC4aとPC4dのIPアドレス)はクリアテキストの状態である。暗号化IPパケット270は、そのIPヘッダ251とESPパケット400からなり、ESPパケット400は、暗号化されたIPデータ264(IPデータ252を暗号化したもの)の前にESPヘッダ262を付加し、後ろにESPトレイラ265と認証データ266を付加したものである。
図4の説明において、共通鍵生成装置1への入力データはヘッダ部とペイロード部を有すると述べたが、図18との対応関係は次のとおりである。IPパケット250では、IPヘッダ251がヘッダ部に相当し、IPデータ252がペイロード部に相当する。トンネルモードの暗号化IPパケット260では、IPヘッダ261とESPヘッダ262がヘッダ部に相当し、暗号化されたIPヘッダ263と暗号化されたIPデータ264がペイロード部に相当する。トランスポートモードの暗号化IPパケット270では、IPヘッダ251とESPヘッダ262がヘッダ部に相当し、暗号化されたIPデータ264がペイロード部に相当する。
つまり、共通鍵生成装置1への入力データにおけるヘッダ部とペイロード部の区切りは、IPパケットとしての形式における区切りと必ずしも一致するわけではない。共通鍵生成装置1への入力データは、「送信対象の情報がペイロード部であり、送信のために必要な情報であってクリアテキストの状態の情報がヘッダ部である」という一般的な観点から見て、ヘッダ部とペイロード部を有するものであればよい。よって、暗号化IPパケット(260と270)では、暗号化された部分がペイロード部に相当し(暗号化される理由は送信対象の情報だからである)、ペイロード部よりも前にあってクリアテキストの状態の部分がヘッダ部に相当する。
また、図18でいずれのモードを使う場合でも、共通鍵kを生成するのに、図3における送信先・送信元情報k1と鍵素材k2とマスター鍵k3に相当する情報を利用している。それらの情報の詳細は後述するが、暗号化や復号化の対象であるIPパケットに含まれる情報と、共通鍵生成装置1aおよび1bが格納している情報(または格納している情報から生成する情報)とが、共通鍵kの生成に使われるという点は、図15や図16の例と共通である。
次に図19を参照して、本発明を適用したルータ201の構成を説明する。
ルータ201は、IPパケット(250、260、270)を送受信する複数のポート203a〜203dを有する。ルータ201はさらに、IPパケットを送受信するためのインターフェイスにより各ポート203a〜203dと接続されているパケット中継処理部202と、ルーティングテーブル204と、セキュリティポリシーデータベース205と、TCG対応チップ206と、CPU207とを有し、これらが内部バス208により接続されている。
ルータ201は、IPパケット(250、260、270)を送受信する複数のポート203a〜203dを有する。ルータ201はさらに、IPパケットを送受信するためのインターフェイスにより各ポート203a〜203dと接続されているパケット中継処理部202と、ルーティングテーブル204と、セキュリティポリシーデータベース205と、TCG対応チップ206と、CPU207とを有し、これらが内部バス208により接続されている。
パケット中継処理部202は、ポート203a〜203dのいずれかから受信したIPパケットの送信先を決定し、そのIPパケットを中継するためにポート203a〜203dのいずれかを介してそのパケットを送信する。例えば、図18において、PC4aからPC4dへ送信されるIPパケットを、ルータ201aはルータ201bに中継し、ルータ201bはPC4dに中継する。このように各ルータ201aと201bが適切な中継先を決定してIPパケットを中継するのがルーティング処理である。
そして、パケット中継処理部202がルーティング処理を行う際に参照するテーブルがルーティングテーブル204である。ルーティングテーブル204には、受信したIPパケットの宛先アドレスに基づいて、そのIPパケットの中継先を決定するための情報が格納されている。
また、ルータ201は、本発明によって共通鍵kを生成し、その共通鍵kをIPsecによる暗号化通信に利用するための装置であるから、パケット中継処理部202は共通鍵kを生成する機能とIPsecに関連する諸処理を行う機能とを有している。例えば、IPsecは、暗号化を行わずにAH(Authentication Header;認証ヘッダ)による認証機能のみを利用することも可能なように設計されており、また、アンチリプレイ機能(パケットを傍受して再生するリプレイ攻撃に対抗するため、同じパケットを受信したら破棄する機能)も提供している。本実施形態では、パケット中継処理部202は、これらのIPsecに関連する諸処理(以後「IPsec処理」とよぶ)も行う。
セキュリティポリシーデータベース205は、パケット中継処理部202が参照するデータベースであり、どのようなIPパケットに対してどのような処理を行うかを定めたセキュリティポリシーが格納されている。パケット中継処理部202は、セキュリティポリシーにもとづき、受信したIPパケットを破棄するか、IPsec処理を行わずに単純に中継するか、IPsec処理を行うか、を決定する。その結果、IPsec処理を行うことを決定すると、パケット中継処理部202は、共通鍵kの生成、暗号化または復号化、必要に応じたヘッダの付加等を行い、IPパケットの中継先を決定し、ポート203a〜203dのいずれかを介してIPパケットを送信する。
TCG対応チップ206とCPU207は、図6のTCG対応チップ105およびCPU106と同様である。
パケット中継処理部202は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって実現することができる。パケット中継処理部202を実現するハードウェアの一部としてCPU207を利用してもよい。また、ルーティングテーブル204およびセキュリティポリシーデータベース205を実現するハードウェアは、例えば、書き換え可能な不揮発性メモリや磁気ディスクである。
パケット中継処理部202は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって実現することができる。パケット中継処理部202を実現するハードウェアの一部としてCPU207を利用してもよい。また、ルーティングテーブル204およびセキュリティポリシーデータベース205を実現するハードウェアは、例えば、書き換え可能な不揮発性メモリや磁気ディスクである。
図20は、図19と図4の関係を説明する機能ブロック構成図である。図20の構成は図7と共通部分が多いので、適宜説明を省略する。矢印につけられた符号も図7と同様だが、違いは、図20では符号「f」のかわりに符号「p」を用いて、IPパケットがその矢印の方向に送られることを表す点である。なお、本実施形態では、後述するように、送信先・送信元情報k1および鍵素材k2に相当する具体的な情報が、モードによっても異なり、第一の局面か第二の局面かによっても異なる。図20では、そのような細かい違いによらない共通点を説明するために「k1」や「k2」などの総称的な符号を用いている。符号のない矢印は制御の流れを表す。
また、パケット中継処理部202がセキュリティポリシーデータベース205を参照した結果、IPパケットを破棄する場合やIPsec処理を行わない場合は、本発明とは直接関係がない。よって、図20には、IPsec処理を行う場合(つまり、暗号化または復号化を行うために共通鍵kを生成する必要がある場合)に関連する構成要素のみを示した。
図20の共通鍵生成装置1dは、図19におけるパケット中継処理部202とTCG対応チップ206の一部に対応する。共通鍵生成装置1dは、図4の共通鍵生成装置1と同様に、受付部11、鍵素材格納部12、鍵素材読み取り部13、共通鍵生成部14を含む。
図19のルータ201において、ルーティング処理およびIPsec処理を行うのはパケット中継処理部202である。パケット中継処理部202の中でも、セキュリティポリシーデータベース205を参照してIPsec処理の要否を判定し、その判定にしたがって暗号化または復号化を行うブロックを、図20ではIPsec処理部22として示してある。より詳細には、IPsec処理部22は判定部15、暗号化部16、復号化部17を備える。
上記のとおり、パケット中継処理部202は、IPパケットの送受信用インターフェイスにより複数のポート(図19ではポート203a〜203d、図20ではそのうちポート203aと203bのみを図示)と接続されている。受付部11はそのインターフェイス処理を行い、受信したIPパケット(暗号化されている場合と暗号化されていない場合の両方がある)をIPsec処理部22に送る。
IPsec処理部22において、判定部15がIPsec処理の要否を判定するが、この判定は、共通鍵kの生成の要否の判定でもある。図20では、次の四つの局面のいずれであるかという判定を判定部15が行う。
・第一の局面であり、暗号化のために共通鍵kを生成する必要がある。
・第二の局面であり、復号化のために共通鍵kを生成する必要がある。
・第三の局面であり、IPsec処理を行わずにIPパケットを中継すればよい。
・第二の局面であり、復号化のために共通鍵kを生成する必要がある。
・第三の局面であり、IPsec処理を行わずにIPパケットを中継すればよい。
・第四の局面であり、受信したIPパケットを破棄すべきである。
第一または第二の局面では、IPsec処理部22が鍵素材読み取り部13や共通鍵生成部14に指示を与えて共通鍵kを生成させる。その際、共通鍵kの生成に必要な送信先・送信元情報k1を共通鍵生成部14に与える。共通鍵kの生成に関する鍵素材格納部12、鍵素材読み取り部13、共通鍵生成部14の動作は図4や図7と同様であり、生成された共通鍵kは共通鍵生成部14からIPsec処理部22に送られる。
第一または第二の局面では、IPsec処理部22が鍵素材読み取り部13や共通鍵生成部14に指示を与えて共通鍵kを生成させる。その際、共通鍵kの生成に必要な送信先・送信元情報k1を共通鍵生成部14に与える。共通鍵kの生成に関する鍵素材格納部12、鍵素材読み取り部13、共通鍵生成部14の動作は図4や図7と同様であり、生成された共通鍵kは共通鍵生成部14からIPsec処理部22に送られる。
第一の局面では、受付部11を介して受信したIPパケットを、IPsec処理部22内の暗号化部16が、共通鍵kを使って暗号化し、出力部19を介して暗号化IPパケットをいずれかのポートに出力する。第二の局面では、受付部11を介して受信した暗号化IPパケットを、IPsec処理部22内の復号化部17が、共通鍵kを使って復号化し、出力部19を介して復号化IPパケットをいずれかのポートに出力する。なお、出力部19も受付部11と同様に、複数のポート(203a、203b)との間のインターフェイス処理を行う。
なお、図20では、TCG対応チップ206が事前共有鍵格納部18とマスター鍵格納部21とを含み、予め事前共有鍵格納部18に設定された事前共有鍵k0に基づいて、マスター鍵生成部20がマスター鍵k3を生成し、マスター鍵格納部21に格納しておく場合を示した。このようにして予め格納されたマスター鍵k3は、第一または第二の局面で、共通鍵生成部14により読み出される。また、事前共有鍵格納部18とマスター鍵格納部21はTCG対応チップ206内にあるので、事前共有鍵k0やマスター鍵k3が不正に読み取られることはない。
別の実施形態では、共通鍵kを生成するたびにマスター鍵k3を生成しても良く、その場合、IPsec処理部22からマスター鍵生成部20に、第一または第二の局面なのでマスター鍵k3を生成するように指示を与える必要がある(図20において、制御用の矢印をIPsec処理部22からマスター鍵生成部20に追加する必要がある)。
さらに別の実施形態では、図16のようにマスター鍵配列Cを利用してマスター鍵k3を生成してもよい。その場合、マスター鍵格納部21は、M個の候補値からなるマスター鍵配列Cを格納するマスター鍵配列格納部(不図示)に置き換えられる。そして、事前共有鍵k0の設定時やルータ201への電源投入時などに、マスター鍵配列生成部(不図示)がマスター鍵配列Cを生成してマスター鍵配列格納部(不図示)に格納する。第一または第二の局面では、IPsec処理部22がマスター鍵生成部20に命令を与えて、M個の候補値の中からマスター鍵k3を選択させ、共通鍵生成部14に出力させる。例えば、式(6)と同様の方法でマスター鍵k3を選択しても良く、その場合、IPsec処理部22が鍵素材読み取り部13に、鍵素材k2をマスター鍵生成部20へ出力させる制御を行う。
図21と図22はそれぞれ、暗号化されていないIPパケット250を受信したときと、暗号化IPパケット(260、270)を受信したときの、IPsec処理部22の動作を説明する図である。なお、受信したIPパケットの先頭のIPヘッダ(251、261)内のプロトコル309フィールドの値(図23とあわせて後述)を参照することにより、受信したのが暗号化されていない通常のIPパケット250なのか暗号化IPパケット(260、270)なのかを区別することができる。
図21において、ポート203a〜203dのいずれかを介してIPパケット250を受信すると、ステップS11でIPsec処理部22は、IPヘッダ251に含まれる送信元や送信先のIPアドレスなどに基づいて、セキュリティポリシーデータベース205を検索する。検索の結果得られたセキュリティポリシーに基づいて、IPsec処理部22は以下の三つのうちのいずれかの動作を行う。
・そのIPパケット250を破棄する。
・そのIPパケット250を暗号化せずにそのまま送信する。
・そのIPパケット250は暗号化対象であると決定し、ステップS12に進む。
・そのIPパケット250を暗号化せずにそのまま送信する。
・そのIPパケット250は暗号化対象であると決定し、ステップS12に進む。
ステップS12では共通鍵kが生成される。図20の構成の場合、ステップS12には、IPsec処理部22のほかに、鍵素材格納部12、鍵素材読み取り部13、マスター鍵格納部21、共通鍵生成部14が関わる。
共通鍵生成部14はステップS12で共通鍵kを生成すると、共通鍵kをIPsec処理部22に出力する。IPsec処理部22内の暗号化部16はその共通鍵kを使ってIPパケット250を暗号化する。トンネルモードとトランスポートモードのいずれであるかにより、暗号化を行う範囲やESPパケット400の形式が異なることは既に述べた。IPsec処理部22は、モードに応じた適切な暗号化IPパケット(260または270)を生成し、中継先を決定して、出力部19を介して適切なポート(203a〜203dのいずれか)から出力する。
図22において、ポート203a〜203dのいずれかを介して暗号化IPパケット(260または270)を受信すると、ステップS21でIPsec処理部22は、送信元や送信先のIPアドレスなどに基づいて、セキュリティポリシーデータベース205を検索する。検索に使う送信元や送信先のIPアドレスは、トンネルモードの場合はIPヘッダ261内のもの、トランスポートモードの場合はIPヘッダ251内のものである。検索の結果得られたセキュリティポリシーに基づいて、IPsec処理部22は以下の二つのうちのいずれかの動作を行う。
・その暗号化IPパケット(260または270)を破棄する。
・その暗号化IPパケット(260または270)は復号化対象であると決定し、ステップS22に進む。
・その暗号化IPパケット(260または270)は復号化対象であると決定し、ステップS22に進む。
ステップS22では共通鍵kが生成される。図20の構成の場合、ステップS22には、IPsec処理部22のほかに、鍵素材読み取り部13、マスター鍵格納部21、共通鍵生成部14が関わる。
共通鍵生成部14はステップS22で共通鍵kを生成すると、共通鍵kをIPsec処理部22に出力する。IPsec処理部22内の復号化部17はその共通鍵kを使って暗号化IPパケット(260または270)を復号化し、IPパケット250を生成する。そして中継先を決定して、出力部19を介して適切なポート(203a〜203dのいずれか)からIPパケット250を出力する。
図23〜図25は、共通鍵kの生成に用いられる情報の具体例を説明する図である。これらの図について説明してから、共通鍵kの具体的な生成方法を説明する。
図23はIPヘッダの形式を示す図である。次世代規格としてIPバージョン6(IPv6)も策定されているが、現在広く使われているのはIPバージョン4(IPv4)であるため、図23ではIPv4のヘッダを示した。なお、図23は表示の都合上、複数の行に分けて図示している。また、図18のIPヘッダ251とIPヘッダ261の双方とも、図23の形式である。
図23はIPヘッダの形式を示す図である。次世代規格としてIPバージョン6(IPv6)も策定されているが、現在広く使われているのはIPバージョン4(IPv4)であるため、図23ではIPv4のヘッダを示した。なお、図23は表示の都合上、複数の行に分けて図示している。また、図18のIPヘッダ251とIPヘッダ261の双方とも、図23の形式である。
図23に示すとおり、IPv4のヘッダは、4ビットのバージョン301、4ビットのIHL(Internet Header Length;ヘッダの長さ)302、8ビットのTOS(Type Of Service;サービスの種類)303、16ビットの全長304、16ビットのID305、3ビットのフラグ306、13ビットのフラグメントオフセット307、8ビットのTTL(Time To Live;生存時間)308、8ビットのプロトコル309、16ビットのヘッダチェックサム310、32ビットの送信元IPアドレス311、32ビットの送信先IPアドレス312、可変長のオプション313、可変長のパディング314、の各フィールドを含む。
プロトコル309は、IPデータ252内に含まれる上位層プロトコルを表す。例えば、6はTCPを表し、50はIPsec ESPを表し、51はIPsec AHを表す。よって、IPsecに対応したルータは、IPパケットを受信したときに、IPヘッダ中のプロトコル309の値によって、通常のIPパケット250なのか、暗号化IPパケット(260または270)なのかを判断することができる。
IPはフラグメンテーション機能を提供しており、ID305、フラグ306、フラグメントオフセット307の三つのフィールドがそのために使われる。これらのフィールドを使ったIPパケットの分割と再構成の仕組みは周知であり、上記のフレームのフラグメンテーション機能と類似であるため、フラグメンテーション機能についての説明は省略する。
ところで、IPヘッダ251と261は、図23に示すフィールドから構成される点では同じだが、内容が異なるフィールドがいくつかある。それらフィールドのうち、本発明と関連のあるものについて説明する。
IPヘッダ251と261で最も異なるのは、送信元IPアドレス311および送信先IPアドレス312である。例えば図18でPC4aがPC4dにIPパケット250を送信する場合、IPヘッダ251において、送信元IPアドレス311はPC4aのIPアドレスで送信先IPアドレス312はPC4dのIPアドレスである。一方、IPヘッダ261においては、送信元IPアドレス311はルータ201aのIPアドレスで送信先IPアドレス312はルータ201bのIPアドレスである。
さらにIPヘッダ251と261で異なるのは、ID305である。IPヘッダ251内のID305は、送信元ホストで値が設定され、IPパケット250がネットワークを中継されていく間その値が変わらない。例えば、送信元ホストが図18のPC4aの場合、PC4aが設定したID305の値は、IPパケット250がネットワーク3a、ルータ201a、ネットワーク3b、ルータ201b、ネットワーク3c、PC4dという通信路を中継されていく間、変わらない。もちろん、トンネルモードの場合は、その通信路の一部(ルータ201aからルータ201bの間)において、ID305は暗号化された状態でIPヘッダ263内に含まれて送信されるが、データが意味する内容自体は変わらない。
一方、IPヘッダ261は、トンネルモードの場合に、上記の例では図18のルータ201aによって付加される。そのIPヘッダ261内のID305の値は、もとのIPヘッダ251内のID305の値とは独立に、ルータ201aが割り当てる。その値は、トンネルモード暗号化IPパケット260がルータ201a、ネットワーク3b、ルータ201bという通信路を中継されていく間、変わらない。
つまり、トランスポートモードの場合、送信元から送信先までの通信路上において常に同じ値のID305を、(復号化等の処理を必要とせずに)参照することが可能である。一方、トンネルモードの場合、通信路上にあるルータ201bは、PC4aが設定したID305の値を、受信した暗号化IPパケット260から直接読み取ることはできない(暗号化されているため)。ルータ201bが受信した暗号化IPパケット260から直接読み取ることができるのは、ルータ201aにより設定されたIPヘッダ261内のID305である。
図24は、ESPパケット400の形式を示す図である。
ESPパケット400は、ESPヘッダ262、ESPペイロード403、ESPトレイラ265、認証データ266からなる。
ESPパケット400は、ESPヘッダ262、ESPペイロード403、ESPトレイラ265、認証データ266からなる。
ESPヘッダ262は、4バイトのSPI(Security Parameter Index)401、4バイトのシーケンス番号402からなる。IPsecでは、送信側と受信側で使用する暗号アルゴリズムなどについて予め合意を結ぶ。その合意はSA(Security Association)とよばれ、SAを識別するために個々のSAに割り当てられる値がSPIである。シーケンス番号402は、ESPパケット400の生成ごとにインクリメントされるカウンタの値が割り当てられる。アンチリプレイ機能が有効に設定されている場合、リプレイされたIPパケットを判別して破棄するためにシーケンス番号402が利用されるが、アンチリプレイ機能が無効の場合でも、シーケンス番号402にはカウンタ値が割り当てられる。
ESPペイロード403は、図中に「Payload Data」と示した可変長データの部分であり、暗号化されたIPパケットに対応する。トンネルモードの場合、ESPペイロード403は、元のIPパケットのIPヘッダ251とIPデータ252の双方を暗号化したものである。トランスポートモードの場合、ESPペイロード403は、元のIPパケットのIPデータ252を暗号化したものである。
ESPトレイラは、0〜255バイトのパディング404、1バイトのパディング長405、1バイトの次ヘッダ406からなる。次ヘッダ406は、上位層のプロトコルを表す。
認証データ266は、SPI401から次ヘッダ406までの部分に基づいて整合性チェックのために算出される値である。
図25は、マスター鍵k3の生成について説明する図である。図20では、TCG対応チップ206内の事前共有鍵格納部18に格納された事前共有鍵k0をマスター鍵生成部20が読み出してマスター鍵k3を生成し、そのマスター鍵k3をTCG対応チップ206内のマスター鍵格納部21に格納している。図25は、事前共有鍵k0に基づいてマスター鍵k3が生成されることと、その生成プロセスによらず、TCG対応チップ206内に事前共有鍵k0とマスター鍵k3の両方が格納されることに焦点を当てた図である。
図25は、マスター鍵k3の生成について説明する図である。図20では、TCG対応チップ206内の事前共有鍵格納部18に格納された事前共有鍵k0をマスター鍵生成部20が読み出してマスター鍵k3を生成し、そのマスター鍵k3をTCG対応チップ206内のマスター鍵格納部21に格納している。図25は、事前共有鍵k0に基づいてマスター鍵k3が生成されることと、その生成プロセスによらず、TCG対応チップ206内に事前共有鍵k0とマスター鍵k3の両方が格納されることに焦点を当てた図である。
図20に関して説明したように、事前に、あるいは共通鍵kを生成するたびに、事前共有鍵k0から一つのマスター鍵k3を生成してもよく、予めマスター鍵配列Cを生成しておいて共通鍵kを生成するたびにその中からマスター鍵k3を選択してもよい。
マスター鍵k3を生成する方法は、L2中継装置101に本発明を適用した場合と同様であり、上記の式(5)〜(15)に示した方法の中から任意の方法を採用することができる。なお、式(7)などのファーム文字列fsを利用する式も、ファーム文字列fsの定義を上記の説明とは別のものに変えることにより、図25に適用可能である。上記の説明では、ファーム文字列fsは、L2中継装置101のファームウェアにより定義される文字列であった。一方、図25では、「ファーム文字列fsとは、図25のルータ201のファームウェアが定義する一意な文字列である」と定義する。また、マスター鍵生成部20(図25には不図示、図20参照)がファーム文字列fsを参照することができるようにルータ201が構成されているものとする。このようにファーム文字列fsの定義を変えることにより、図25にも上記式(7)などを適用することができる。
次に、図3に示した各情報と図23〜図25との対応関係について図26Aと図26Bを参照して説明する。図26Aはトランスポートモードの場合、図26Bはトンネルモードの場合を示す図である。
なお、マスター鍵k3については図25で説明したとおりであり、モードによる違いはないので、以下では送信先・送信元情報k1と鍵素材k2についてのみ説明する。また、トランスポートモードの方が単純なので先に説明する。
トランスポートモードでは、図26Aに示すとおり、第一および第二の局面の双方で、送信先・送信元情報k1として、IPヘッダ251内の送信元IPアドレス311および送信先IPアドレス312からなる情報であるIPヘッダ情報k1_p1(図18)を利用する。トランスポートモードでは、第一の局面(暗号化のために共通鍵kを生成すべき局面)の入力データであるIPパケット250と、第二の局面(復号化のために共通鍵kを生成すべき局面)の入力データである暗号化IPパケット270は、ともにIPヘッダ251を含む。また、IPヘッダ251のうち、送信元IPアドレス311と送信先IPアドレス312は、通信路上での書き換え対象ではない。よって、第一および第二の局面の双方において、IPヘッダ251から同じ値のIPヘッダ情報k1_p1を得ることができる。
例えば、図18でPC4aがPC4dにIPパケット250を送信する場合、ルータ201aがIPパケット250を受信すると、共通鍵生成装置1aは第一の局面の動作をする。つまり、IPパケット250のIPヘッダ251を参照し、そこに含まれるPC4aとPC4dのIPアドレスからIPヘッダ情報k1_p1を取得する。
なお、IPヘッダ情報k1_p1は、二つのIPアドレスのうち少なくとも一方に基づいて取得することができる情報であれば何でもよい。例えば、二つのIPアドレスを表すビット列を連結してIPヘッダ情報k1_p1としてもよく、IPアドレスの一部のみを利用してもよい。
また、図18でPC4aがPC4dにIPパケット250を送信する例において、ルータ201bが暗号化IPパケット270を受信すると、共通鍵生成装置1bは第二の局面の動作をする。つまり、暗号化IPパケット270のIPヘッダ251を参照し、そこに含まれるPC4aとPC4dのIPアドレスからIPヘッダ情報k1_p1を取得する。共通鍵生成装置1aと1bは、同じ値のIPヘッダ情報k1_p1を取得することができる。
次に、トランスポートモードにおける鍵素材k2について説明する。第一の局面では共通鍵生成装置1dが備える鍵素材格納部12(図20)に格納されたシーケンス番号を利用し、第二の局面では入力データ(暗号化IPパケット270)中に含まれるシーケンス番号を利用する点は、図15や図16と同様である。異なるのは、さらに別の値も組み合わせて鍵素材k2として利用する点である。
図26Aに示したとおり、第一の局面における鍵素材k2は、符号「k2_s」により表されるが、具体的には式(16)により生成される。式(16)の関数cは任意のものでよいが、最も簡単な例は式(17)のとおりである。
k2=k2_s=c(k2_s2,k2_r1) ……(16)
c(x1,x2)≡x1 & x2 ……(17)
ここで符号「k2_s2」は鍵素材格納部12(カウンタ)に格納されたシーケンス番号を指し、符号「k2_r1」は、IPヘッダ251内のID305を指す(図18参照)。つまり、第一の局面において、鍵素材格納部12と入力データの双方から鍵素材読み取り部13がそれぞれ読み取った情報に基づいて、鍵素材k2が生成される。なお、IPsecに本発明を適用する場合、鍵素材格納部12は4バイトのカウンタであり、ESPパケット400の生成時には、そこに格納されたシーケンス番号をESPヘッダ262内のシーケンス番号402として利用する。
c(x1,x2)≡x1 & x2 ……(17)
ここで符号「k2_s2」は鍵素材格納部12(カウンタ)に格納されたシーケンス番号を指し、符号「k2_r1」は、IPヘッダ251内のID305を指す(図18参照)。つまり、第一の局面において、鍵素材格納部12と入力データの双方から鍵素材読み取り部13がそれぞれ読み取った情報に基づいて、鍵素材k2が生成される。なお、IPsecに本発明を適用する場合、鍵素材格納部12は4バイトのカウンタであり、ESPパケット400の生成時には、そこに格納されたシーケンス番号をESPヘッダ262内のシーケンス番号402として利用する。
同様に、第二の局面における鍵素材k2は、符号「k2_r」により表されるが、具体的には式(18)により生成される。
k2=k2_r=c(k2_r3,k2_r1) ……(18)
ここで符号「k2_r3」はESPヘッダ262内のシーケンス番号402の値を指す。
k2=k2_r=c(k2_r3,k2_r1) ……(18)
ここで符号「k2_r3」はESPヘッダ262内のシーケンス番号402の値を指す。
例えば、図18でPC4aがPC4dにIPパケット250を送信する場合、共通鍵生成装置1a内の不図示の鍵素材格納部12に格納されたシーケンス番号k2_s2が、暗号化IPパケット270のESPヘッダ262内のシーケンス番号402として設定される。そして、その暗号化IPパケット270を受信したルータ201bにおいて、共通鍵生成装置1bが備える鍵素材読み取り部13が、ESPヘッダ262内のシーケンス番号402フィールドから、シーケンス番号k2_r3を読み取る。鍵素材読み取り部13はまた、IPヘッダ251内のID305フィールドからID k2_r1を読み取り、式(18)により鍵素材k2を生成する。よって、共通鍵生成装置1aと1bの双方の鍵素材読み取り部13が、式(16)と(18)に示すように同じ関数cを用いることにより、同じ値の鍵素材k2を生成することができる。
次に、このように二つの情報から鍵素材k2を生成する理由を説明する。
図24に示すようにシーケンス番号402は32ビット(=4バイト)なので、232個の番号が利用可能である。フレームの暗号化を行う実施形態と同様に、ルータが1秒あたり1G個のIPパケット250を暗号化すると仮定すると、同じ番号に戻るのにかかる時間は
232/109≒4.3秒
である。図11のシーケンス番号1714の長さが8バイトであるのに比べ、4バイトは短く、その分、同じ番号に戻るのにかかる時間も短い。この時間が短い点は、あまり好ましくない特徴である。
図24に示すようにシーケンス番号402は32ビット(=4バイト)なので、232個の番号が利用可能である。フレームの暗号化を行う実施形態と同様に、ルータが1秒あたり1G個のIPパケット250を暗号化すると仮定すると、同じ番号に戻るのにかかる時間は
232/109≒4.3秒
である。図11のシーケンス番号1714の長さが8バイトであるのに比べ、4バイトは短く、その分、同じ番号に戻るのにかかる時間も短い。この時間が短い点は、あまり好ましくない特徴である。
しかしながら、実際には一つのIPパケット250は1KB程度の大きさのものが多く、1秒あたり1G個ものIPパケット250が暗号化されることは現実的にはない。例えば、1秒あたり1M個のIPパケット250を暗号化するという別の仮定で計算すれば、上記の時間は、
232/106≒4295秒≒1.2時間
となり、かなり長くなる。これでも図11のシーケンス番号1714に関して例示的に計算した時間(約585年)よりは短いが、連続するIPパケット250に対して異なる共通鍵kを生成するという点は、共通鍵生成部14を適当に構成することにより(周期とは関係なく)実現可能である。また、上記のようにIPヘッダ情報k1_p1をあわせて利用すれば、シーケンス番号(k2_s2、k2_r3)に周期性があっても、それと同じ周期で同じ共通鍵kが使われることはない。したがって、多くの利用形態において、4バイトのシーケンス番号(k2_s2、k2_r3)でも実用上は問題ない。
232/106≒4295秒≒1.2時間
となり、かなり長くなる。これでも図11のシーケンス番号1714に関して例示的に計算した時間(約585年)よりは短いが、連続するIPパケット250に対して異なる共通鍵kを生成するという点は、共通鍵生成部14を適当に構成することにより(周期とは関係なく)実現可能である。また、上記のようにIPヘッダ情報k1_p1をあわせて利用すれば、シーケンス番号(k2_s2、k2_r3)に周期性があっても、それと同じ周期で同じ共通鍵kが使われることはない。したがって、多くの利用形態において、4バイトのシーケンス番号(k2_s2、k2_r3)でも実用上は問題ない。
ただし、より強固なセキュリティが必要な場合もある。また、必要なセキュリティレベルは様々な要因を考慮して決定されるが、比較的簡単な方法でセキュリティレベルを上げられるなら、その方法を採用する場合もある。
そこで、広く普及しているESPパケット400の形式を変えることなく、簡単な方法でセキュリティレベルを上げるために、4バイトのシーケンス番号(k2_s2、k2_r3)に加えて、2バイトのID305を利用する。式(17)を式(16)および式(18)に適用すると、シーケンス番号(k2_s2またはk2_r3)とID k2_r1との連結により6バイト(=48ビット)の値が鍵素材k2として得られる。もちろん、式(17)以外の方法でも、4バイトのシーケンス番号と2バイトのIDから6バイトの鍵素材k2を生成することは可能である。例えば、シーケンス番号とIDをそれぞれ複数のブロックに分けて、それらブロックを所定の順番に並べ替えても、結果として6バイトの値を得ることができる。
このようにして生成された6バイトの鍵素材k2を使う場合、例えば、1秒あたり1M個のIPパケット250を暗号化するという上記と同じ仮定で計算すると、
248/106=2.81×108秒≒8.92年
となる。この時間は、実用上十分に長い周期であり、上記で計算した1.2時間に比べて遥かに長い。つまり、シーケンス番号(k2_s2またはk2_r3)に加えてID k2_r1を利用するという比較的簡単な方法により、セキュリティレベルが大きく向上している。
248/106=2.81×108秒≒8.92年
となる。この時間は、実用上十分に長い周期であり、上記で計算した1.2時間に比べて遥かに長い。つまり、シーケンス番号(k2_s2またはk2_r3)に加えてID k2_r1を利用するという比較的簡単な方法により、セキュリティレベルが大きく向上している。
以上の理由により、式(16)や(18)のように、二つの情報から鍵素材k2を生成している。
次に、トンネルモードの場合について図26Bを参照して説明する。トンネルモードでは、図26Bに示すとおり、第一および第二の局面の双方で、送信先・送信元情報k1として、暗号化IPパケット260の先頭に付加された(あるいはこれから付加される)IPヘッダ261内の送信元IPアドレス311および送信先IPアドレス312からなる情報であるIPヘッダ情報k1_p2を利用する。
次に、トンネルモードの場合について図26Bを参照して説明する。トンネルモードでは、図26Bに示すとおり、第一および第二の局面の双方で、送信先・送信元情報k1として、暗号化IPパケット260の先頭に付加された(あるいはこれから付加される)IPヘッダ261内の送信元IPアドレス311および送信先IPアドレス312からなる情報であるIPヘッダ情報k1_p2を利用する。
例えば、図18でPC4aがPC4dにIPパケット250を送信する場合、IPヘッダ261内の送信元IPアドレス311はルータ201aのIPアドレスであり、送信先IPアドレス312はルータ201bのIPアドレスである。つまり、IPヘッダ情報k1_p2は、送信元(PC4a)と送信先(PC4d)そのものから得られる情報ではない。第一の局面の動作を行う共通鍵生成装置1aは、入力データであるIPパケット250からではなく、暗号化IPパケット260の生成のためにこれからIPヘッダ261に設定する内容(ルータ201aと201bのIPアドレス)に基づき、IPヘッダ情報k1_p2を取得する。一方、第二の局面の動作を行う共通鍵生成装置1bは、入力データである暗号化IPパケット260のIPヘッダ261に基づいてIPヘッダ情報k1_p2を取得する。
なお、二つのIPアドレスからIPヘッダ情報k1_p2を取得する方法は任意であることは、トランスポートモードの場合と同様である。
このように、トンネルモードにおける動作はこれまで述べてきた他の例に比べて変則的だが、それには下記の理由がある。
このように、トンネルモードにおける動作はこれまで述べてきた他の例に比べて変則的だが、それには下記の理由がある。
もともと、共通鍵kの生成に送信先・送信元情報k1を利用するのは、共通鍵kをよりランダムにするのに送信先・送信元情報k1の利用が役立つからである。なぜ役立つかといえば、送信先と送信元の組み合わせ数は多く、どの送信先にどの送信元からいつ通信が行われるかが不規則なためである。したがって、送信先・送信元情報k1としては、送信先と送信元である端末(図18ではPC4a〜4f)のアドレスに基づいた情報が好適である。
しかし、トンネルモードでは暗号化IPパケット260を復号化しないかぎり、暗号化されたIPヘッダ263に暗号化された状態で含まれている送信元と送信先のIPアドレスは得られず、したがって、トランスポートモードと同様のIPヘッダ情報k1_p1は得られない。よって、暗号化IPパケット260を復号化するための共通鍵kの生成にはIPヘッダ情報k1_p1を利用することができない。そのため、トンネルモードではクリアテキストの状態であるIPヘッダ261内のIPヘッダ情報k1_p2を、トランスポートモードにおけるIPヘッダ情報k1_p1のかわりに、送信先・送信元情報k1として利用している。
次に、トンネルモードにおける鍵素材k2について説明する。図26Aと図26Bの比較から分かるとおり、トランスポートモードにおけるID k2_r1のかわりに、トンネルモードでは、IPヘッダ261内のID305フィールドの値であるID k2_r2を利用する。その他の点は、トランスポートモードと同様である。つまり、トンネルモードの場合、第一と第二の局面における鍵素材k2は、それぞれ式(19)と式(20)により表される。
k2=k2_s=c(k2_s2,k2_r2) ……(19)
k2=k2_r=c(k2_r3,k2_r2) ……(20)
ID k2_r1のかわりにID k2_r2を利用する理由は、IPヘッダ情報k1_p1のかわりにIPヘッダ情報k1_p2を利用する理由と同じである。つまり、図18でPC4aがPC4dにIPパケット250を送信する場合、共通鍵生成装置1bでは、暗号化IPパケット260を復号化しないかぎり、暗号化されたIPヘッダ263内に暗号化された状態で含まれているID305を得られないためである。
k2=k2_r=c(k2_r3,k2_r2) ……(20)
ID k2_r1のかわりにID k2_r2を利用する理由は、IPヘッダ情報k1_p1のかわりにIPヘッダ情報k1_p2を利用する理由と同じである。つまり、図18でPC4aがPC4dにIPパケット250を送信する場合、共通鍵生成装置1bでは、暗号化IPパケット260を復号化しないかぎり、暗号化されたIPヘッダ263内に暗号化された状態で含まれているID305を得られないためである。
図26Aおよび図26Bに示した情報を用いて共通鍵kを生成するには、前述の式(1)〜(4)において、符号「k1_f」を、符号「k1_p1」または「k1_p2」に置き換えた式にしたがって共通鍵生成部14が動作すればよい。また、マスター鍵配列Cを利用してマスター鍵k3を選択する実施形態の場合も、フレームの暗号化に本発明を利用する場合と同様の動作を共通鍵生成部14が行えばよい。その場合、式(1)は、トランスポートモードなら式(21)に、トンネルモードなら式(22)に、それぞれ書き換え可能なことは、上記の説明から明らかであろう。
k=f(k1_p1,k2,k3)
=k3 XOR (k1_p1+c(k2_s2,k2_r1))
=k3 XOR (k1_p1+c(k2_r3,k2_r1)) ……(21)
k=f(k1_p2,k2,k3)
=k3 XOR (k1_p2+c(k2_s2,k2_r2))
=k3 XOR (k1_p2+c(k2_r3,k2_r2)) ……(22)
図27は、本発明の共通鍵生成装置を備えたルータをブロードキャストに利用した例を示す図である。従来のIPsecは、共通鍵暗号方式であることから、送信先が複数であるマルチキャストには適していなかった。しかし、本発明をIPsecに適用すると(つまり本発明による共通鍵生成装置1を備えたルータを利用すると)、IPsecの仕組みを使って簡単にマルチキャストを行うことができる。
=k3 XOR (k1_p1+c(k2_s2,k2_r1))
=k3 XOR (k1_p1+c(k2_r3,k2_r1)) ……(21)
k=f(k1_p2,k2,k3)
=k3 XOR (k1_p2+c(k2_s2,k2_r2))
=k3 XOR (k1_p2+c(k2_r3,k2_r2)) ……(22)
図27は、本発明の共通鍵生成装置を備えたルータをブロードキャストに利用した例を示す図である。従来のIPsecは、共通鍵暗号方式であることから、送信先が複数であるマルチキャストには適していなかった。しかし、本発明をIPsecに適用すると(つまり本発明による共通鍵生成装置1を備えたルータを利用すると)、IPsecの仕組みを使って簡単にマルチキャストを行うことができる。
図27では、マルチキャストの送信元であるPC4aが、ネットワーク3aを介してルータ201aに接続されている。マルチキャストの送信先は、PC4b、4c、4dである。PC4bと4cはネットワーク3cを介してルータ201bに接続されており、PC4dとPC4eはネットワーク3dを介してルータ201cに接続されている。なお、ルータ201a、201b、201cはいずれも、本発明による共通鍵生成装置1を含み、同じ値のマスター鍵k3を記憶している。さらに、PC4fと4gがネットワーク3eを介して従来のルータ8に接続されている。ルータ201a、201b、201c、8は、互いにネットワーク3bを介して接続されている。
PC4aがIPパケットをマルチキャストにより、PC4b、4c、4dに送信する場合、このIPパケットは、ルータ201aで暗号化され、ネットワーク3bを通ってルータ201bと201cに中継される。つまり、暗号化されたIPパケットは、ルータ201aまたはネットワーク3b内に存在する不図示のルータにおいてコピーされ、ルータ201bと201cの双方に送信される。ルータ201bは、暗号化されたIPパケットを復号化してコピーし、PC4bと4cに送信する。ルータ201cは、暗号化されたIPパケットを復号化してPC4dに送信する。
ここで、ルータ201a、201b、201cはいずれも、本発明による共通鍵生成装置1を含み、同じ値のマスター鍵k3を記憶していることから、ルータ201a内の共通鍵生成装置1が、マルチキャストされるIPパケット用の共通鍵kaとして生成したのと同じ値の共通鍵kaが、ルータ201bと201cでも生成される。また、そのマルチキャストと並行して、例えばPC4eがマルチキャストとは無関係にPC4cにIPパケットを送信する場合、そのための共通鍵kbがルータ201cと201bでそれぞれ生成され、そのIPパケットはネットワーク3b内を暗号化された状態で送られる。
しかし、これらのルータ201a、201b、201cにおいて管理されるべきなのはマスター鍵k3(あるいは、その元となる事前共有鍵k0)のみである。例えばルータ201cにおいて、マルチキャスト用、ルータ201aとの通信用、ルータ201bとの通信用、などの複数の鍵を管理する必要はない。つまり、本発明をIPsecに適用すると、複雑な鍵の管理を不要としつつ、マルチキャストにも対応することができ、しかもIPパケットごとに異なる共通鍵により暗号化が行われる、という利点がある。
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
図10では、タイプ等も含めたデータ部153を暗号化の対象としている。しかし、タイプ、LLCヘッダ、SNAPヘッダまでをヘッダ部であると見なし、これらを暗号化の対象から除外してもよい。その場合、暗号化フレーム170における暗号ヘッダ171の位置は、図10と同様にTCI162の直後でもよく、TCI162の直後にタイプ等が続き、その後に暗号ヘッダ171が続き、その後に暗号化データ部が続くのでもよい。後者の場合は、暗号化の対象外となるヘッダ部分、暗号ヘッダ171、暗号化データ部という順になるという点で、図10と同様である。
図10では、タイプ等も含めたデータ部153を暗号化の対象としている。しかし、タイプ、LLCヘッダ、SNAPヘッダまでをヘッダ部であると見なし、これらを暗号化の対象から除外してもよい。その場合、暗号化フレーム170における暗号ヘッダ171の位置は、図10と同様にTCI162の直後でもよく、TCI162の直後にタイプ等が続き、その後に暗号ヘッダ171が続き、その後に暗号化データ部が続くのでもよい。後者の場合は、暗号化の対象外となるヘッダ部分、暗号ヘッダ171、暗号化データ部という順になるという点で、図10と同様である。
上記の実施形態では、k=f(k1,k2,k3)なる共通鍵kを生成している。しかし、共通鍵kを生成するのに必須なのは鍵素材k2のみである。よって、例えば、ハッシュ関数hを利用してk=h(k2)などの計算により共通鍵kを生成してもよい。
ただし、共通鍵kの強度という点からは送信先・送信元情報k1およびマスター鍵k3も利用することが望ましい。また、図16のように計算を単純化して処理を高速化するためにも、鍵素材k2以外の要素である送信先・送信元情報k1およびマスター鍵k3を利用することが望ましい。
また、IPsecに本発明を適用する場合、上記の実施形態ではIPヘッダ内のID305も共通鍵kの生成に利用していたが、利用しなくてもよい。逆に、SPI401などの他の情報(暗号化IPパケットにクリアテキストの状態で含まれ、通信路の途中で値が変更されない情報)をさらに利用してもよい。
また、関数fは上記で例示した以外の関数でもよいことは無論である。
図17では、フラグメントオフセット1716を利用する仕組みを採用しているが、図11とは異なる形式の暗号ヘッダ171を採用して、フラグメンテーション機能を実現してもよい。例えば、予約フィールド1713とフラグメントオフセット1716に基づいて再構成を行うかわりに、「全部でいくつのフラグメントフレームがあるか」という情報と「このフラグメントフレームは何番目のフラグメントフレームであるか」という情報を暗号ヘッダ171に記録し、それらの情報に基づいて再構成を行ってもよい。
図17では、フラグメントオフセット1716を利用する仕組みを採用しているが、図11とは異なる形式の暗号ヘッダ171を採用して、フラグメンテーション機能を実現してもよい。例えば、予約フィールド1713とフラグメントオフセット1716に基づいて再構成を行うかわりに、「全部でいくつのフラグメントフレームがあるか」という情報と「このフラグメントフレームは何番目のフラグメントフレームであるか」という情報を暗号ヘッダ171に記録し、それらの情報に基づいて再構成を行ってもよい。
上記では、レイヤ2またはレイヤ3の中継装置の一部として本発明による共通鍵生成装置を実装する例について説明した。それらの例では、図7や図20に示したように、共通鍵生成装置が内部に暗号化部16や復号化部17をも含む。しかし、本発明による共通鍵生成装置1は、必ずしも図7や図20に示したように判定部15、暗号化部16、復号化部17を構成要素として含まなくてもよい。
例えば、図20において、共通鍵生成装置1dを、受付部11、鍵素材格納部12、鍵素材読み取り部13、共通鍵生成部14のみからなるように構成してもよい。その場合、IPsec処理部22と共通鍵生成装置1dとは異なるハードウェア上に実装され、制御信号の送受信やデータの入出力のために、例えばバスにより接続される。
この構成において、IPsec処理部22は、IPsec処理が必要だと判定すると、前記接続を介して共通鍵生成装置1dに共通鍵kの生成を命令する。その際、共通鍵kの生成に必要な情報(例えば、どの局面であるかという情報や、送信先・送信元情報k1や、第二の局面の場合の鍵素材k2など)も、IPsec処理部22から共通鍵生成装置1dに送られる。共通鍵生成装置1dは命令にしたがって共通鍵kを生成し、前記接続を介して共通鍵kをIPsec処理部22に送信する。また、第一の局面の場合には、鍵素材k2の値もあわせてIPsec処理部22に送信する。IPsec処理部22は、受信した共通鍵k(および第一の局面の場合は鍵素材k2)を利用してIPパケットの暗号化または復号化を行う。
また、本発明をIPsecに適用する例として、IPv4上でのIPsecのみを上記では説明したが、IPv6上のIPsecであっても、同様に本発明を適用することができる。
また、鍵素材格納部12がカウンタである場合、鍵素材読み取り部13は第一の局面において1ずつ鍵素材格納部12をインクリメントするとして上記では説明したが、インクリメントのかわりにデクリメントでもよく、1ずつではなく所定の値であるdずつ鍵素材格納部12の値を変化させるのでもよい。
以上説明したことを概観すれば本発明は以下のような構成を備えるものである。
(付記1)
共通鍵暗号方式に用いられる共通鍵を生成する共通鍵生成装置であって、
クリアテキストの状態のヘッダ部と、ペイロード部とを有する入力データを受け付ける受付手段と、
鍵素材を格納する鍵素材格納手段と、
前記入力データの暗号化のために前記共通鍵を生成する第一の局面では、前記鍵素材を前記鍵素材格納手段から読み取り、前記鍵素材格納手段内の前記鍵素材を更新し、前記入力データの復号化のために前記共通鍵を生成する第二の局面では、前記ヘッダ部の所定の部分から前記鍵素材を読み取る、鍵素材読み取り手段と、
前記鍵素材読み取り手段が読み取った前記鍵素材に基づいて前記共通鍵を生成する共通鍵生成手段と、
を備えることを特徴とする共通鍵生成装置。
(付記2)
前記鍵素材が番号であり、
前記第一の局面では、前記鍵素材読み取り手段によって1ずつ加算または減算されることにより前記鍵素材が更新される、
ことを特徴とする付記1に記載の共通鍵生成装置。
(付記3)
前記入力データがデータリンク層のフレームであることを特徴とする付記1に記載の共通鍵生成装置。
(付記4)
前記フレームがVLANを識別するVLAN識別情報を含むとき、該VLAN識別情報に基づいて、前記第一の局面と、前記第二の局面と、前記フレームに対応して共通鍵を生成する必要がない第三の局面とを含む複数の局面のいずれに該当するかを判定する判定手段をさらに備える、
ことを特徴とする付記3に記載の共通鍵生成装置。
(付記5)
前記入力データがネットワーク層のパケットであることを特徴とする付記1に記載の共通鍵生成装置。
(付記6)
前記共通鍵は、IPsecのための共通鍵として利用されることを特徴とする付記5に記載の共通鍵生成装置。
(付記7)
前記第一の局面と前記第二の局面とを含む複数の局面のいずれに該当するかを判定する判定手段をさらに備えることを特徴とする付記1に記載の共通鍵生成装置。
(付記8)
前記受付手段が複数のインターフェイスを有し、
該複数のインターフェイスのうちのいずれを介して前記入力データを前記受付手段が受け付けたかに基づいて、前記判定手段が判定する、
ことを特徴とする付記7に記載の共通鍵生成装置。
(付記9)
前記第一の局面に、前記鍵素材を含む第二のヘッダ部と、前記入力データの前記ペイロード部を前記共通鍵により暗号化した第二のペイロード部とを有する暗号化出力データを生成する暗号化手段と、
前記第二の局面に、前記入力データの前記ペイロード部を前記共通鍵により復号化した第三のペイロード部を有する復号化出力データを生成する復号化手段と、
をさらに有することを特徴とする付記1に記載の共通鍵生成装置。
(付記10)
前記共通鍵生成手段がハッシュ関数を使って前記共通鍵を生成することを特徴とする付記1に記載の共通鍵生成装置。
(付記11)
通信路上に前記共通鍵生成装置が配置され、
前記入力データは、前記通信路を通って送信元から送信先へ送られるときに前記共通鍵生成装置を経由して、前記受付手段により受け付けられ、
前記共通鍵生成手段は、前記送信元または前記送信先の少なくとも一方のアドレスに基づいて前記共通鍵を生成する、
ことを特徴とする付記1に記載の共通鍵生成装置。
(付記12)
事前共有鍵として同一の値を設定された二つの前記共通鍵生成装置が通信路上に配置され、
前記入力データは、前記経路を、送信元、送信側の前記共通鍵生成装置、受信側の前記共通鍵生成装置、送信先の順に経由して送信され、
前記入力データは、二つの前記共通鍵生成装置を経由する際にそれぞれの前記受付手段で受け付けられ、
二つの前記共通鍵生成装置のそれぞれの前記共通鍵生成手段は、前記事前共有鍵に基づいて前記共通鍵を生成する、
ことを特徴とする付記1に記載の共通鍵生成装置。
(付記13)
前記共通鍵生成装置のファームウェアにより一意に規定される文字列と前記事前共有鍵とに基づいて算出した値を、同じシードからは同じ値を生成するランダム関数にシードとして与えてランダムな値を生成するランダム値生成手段をさらに備え、
前記共通鍵生成手段は、前記ランダムな値に基づいて前記共通鍵を生成する、
ことを特徴とする付記12に記載の共通鍵生成装置。
(付記14)
前記共通鍵生成装置のファームウェアにより一意に規定される文字列と前記事前共有鍵とに基づいて算出した値をハッシュ関数の引数としてハッシュ値を算出するハッシュ値算出手段をさらに備え、
前記共通鍵生成手段は、前記ハッシュ値に基づいて前記共通鍵を生成する、
ことを特徴とする付記12に記載の共通鍵生成装置。
(付記15)
Mを2以上の整数として、前記事前共有鍵に基づいてM個の値を候補値として生成する候補値生成手段と、
M個の前記候補値を格納する候補値格納手段とをさらに備え、
前記共通鍵生成手段は、前記鍵素材に基づいてM個の前記候補値のうちの一つを選択して前記候補値格納手段から読み取り、該候補値に基づいて前記共通鍵を生成する、
ことを特徴とする付記12に記載の共通鍵生成装置。
(付記16)
前記候補値生成手段は、M個の前記候補値を生成する際、M個の異なるインデックス値に対してそれぞれ、前記共通鍵生成装置のファームウェアにより一意に規定される文字列と前記事前共有鍵と当該インデックス値とに基づいてシードを算出し、同じシードからは同じ値を生成するランダム関数に該シードを与えてランダムな値を算出することによって、M個の前記候補値を生成する、
ことを特徴とする付記15に記載の共通鍵生成装置。
(付記17)
前記候補値生成手段は、M個の前記候補値を生成する際、M個の異なるインデックス値に対してそれぞれ、前記共通鍵生成装置のファームウェアにより一意に規定される文字列と前記事前共有鍵と当該インデックス値とに基づいて算出される値をハッシュ関数の引数として与えることによって、M個の前記候補値を算出する、
ことを特徴とする付記15に記載の共通鍵生成装置。
(付記18)
共通鍵暗号方式において使われる共通鍵を生成する共通鍵生成方法であって、
クリアテキストの状態のヘッダ部と、ペイロード部とを有する入力データを受け付ける受付ステップと、
前記入力データの暗号化のために前記共通鍵を生成する第一の局面では、鍵素材を格納する鍵素材格納手段から前記鍵素材を読み取り、前記鍵素材格納手段内の前記鍵素材を更新し、前記入力データの復号化のために前記共通鍵を生成する第二の局面では、前記ヘッダ部の所定の部分から前記鍵素材を読み取る鍵素材読み取りステップと、
読み取った前記鍵素材に基づいて前記共通鍵を生成する共通鍵生成ステップと、
を備えることを特徴とする共通鍵生成方法。
(付記1)
共通鍵暗号方式に用いられる共通鍵を生成する共通鍵生成装置であって、
クリアテキストの状態のヘッダ部と、ペイロード部とを有する入力データを受け付ける受付手段と、
鍵素材を格納する鍵素材格納手段と、
前記入力データの暗号化のために前記共通鍵を生成する第一の局面では、前記鍵素材を前記鍵素材格納手段から読み取り、前記鍵素材格納手段内の前記鍵素材を更新し、前記入力データの復号化のために前記共通鍵を生成する第二の局面では、前記ヘッダ部の所定の部分から前記鍵素材を読み取る、鍵素材読み取り手段と、
前記鍵素材読み取り手段が読み取った前記鍵素材に基づいて前記共通鍵を生成する共通鍵生成手段と、
を備えることを特徴とする共通鍵生成装置。
(付記2)
前記鍵素材が番号であり、
前記第一の局面では、前記鍵素材読み取り手段によって1ずつ加算または減算されることにより前記鍵素材が更新される、
ことを特徴とする付記1に記載の共通鍵生成装置。
(付記3)
前記入力データがデータリンク層のフレームであることを特徴とする付記1に記載の共通鍵生成装置。
(付記4)
前記フレームがVLANを識別するVLAN識別情報を含むとき、該VLAN識別情報に基づいて、前記第一の局面と、前記第二の局面と、前記フレームに対応して共通鍵を生成する必要がない第三の局面とを含む複数の局面のいずれに該当するかを判定する判定手段をさらに備える、
ことを特徴とする付記3に記載の共通鍵生成装置。
(付記5)
前記入力データがネットワーク層のパケットであることを特徴とする付記1に記載の共通鍵生成装置。
(付記6)
前記共通鍵は、IPsecのための共通鍵として利用されることを特徴とする付記5に記載の共通鍵生成装置。
(付記7)
前記第一の局面と前記第二の局面とを含む複数の局面のいずれに該当するかを判定する判定手段をさらに備えることを特徴とする付記1に記載の共通鍵生成装置。
(付記8)
前記受付手段が複数のインターフェイスを有し、
該複数のインターフェイスのうちのいずれを介して前記入力データを前記受付手段が受け付けたかに基づいて、前記判定手段が判定する、
ことを特徴とする付記7に記載の共通鍵生成装置。
(付記9)
前記第一の局面に、前記鍵素材を含む第二のヘッダ部と、前記入力データの前記ペイロード部を前記共通鍵により暗号化した第二のペイロード部とを有する暗号化出力データを生成する暗号化手段と、
前記第二の局面に、前記入力データの前記ペイロード部を前記共通鍵により復号化した第三のペイロード部を有する復号化出力データを生成する復号化手段と、
をさらに有することを特徴とする付記1に記載の共通鍵生成装置。
(付記10)
前記共通鍵生成手段がハッシュ関数を使って前記共通鍵を生成することを特徴とする付記1に記載の共通鍵生成装置。
(付記11)
通信路上に前記共通鍵生成装置が配置され、
前記入力データは、前記通信路を通って送信元から送信先へ送られるときに前記共通鍵生成装置を経由して、前記受付手段により受け付けられ、
前記共通鍵生成手段は、前記送信元または前記送信先の少なくとも一方のアドレスに基づいて前記共通鍵を生成する、
ことを特徴とする付記1に記載の共通鍵生成装置。
(付記12)
事前共有鍵として同一の値を設定された二つの前記共通鍵生成装置が通信路上に配置され、
前記入力データは、前記経路を、送信元、送信側の前記共通鍵生成装置、受信側の前記共通鍵生成装置、送信先の順に経由して送信され、
前記入力データは、二つの前記共通鍵生成装置を経由する際にそれぞれの前記受付手段で受け付けられ、
二つの前記共通鍵生成装置のそれぞれの前記共通鍵生成手段は、前記事前共有鍵に基づいて前記共通鍵を生成する、
ことを特徴とする付記1に記載の共通鍵生成装置。
(付記13)
前記共通鍵生成装置のファームウェアにより一意に規定される文字列と前記事前共有鍵とに基づいて算出した値を、同じシードからは同じ値を生成するランダム関数にシードとして与えてランダムな値を生成するランダム値生成手段をさらに備え、
前記共通鍵生成手段は、前記ランダムな値に基づいて前記共通鍵を生成する、
ことを特徴とする付記12に記載の共通鍵生成装置。
(付記14)
前記共通鍵生成装置のファームウェアにより一意に規定される文字列と前記事前共有鍵とに基づいて算出した値をハッシュ関数の引数としてハッシュ値を算出するハッシュ値算出手段をさらに備え、
前記共通鍵生成手段は、前記ハッシュ値に基づいて前記共通鍵を生成する、
ことを特徴とする付記12に記載の共通鍵生成装置。
(付記15)
Mを2以上の整数として、前記事前共有鍵に基づいてM個の値を候補値として生成する候補値生成手段と、
M個の前記候補値を格納する候補値格納手段とをさらに備え、
前記共通鍵生成手段は、前記鍵素材に基づいてM個の前記候補値のうちの一つを選択して前記候補値格納手段から読み取り、該候補値に基づいて前記共通鍵を生成する、
ことを特徴とする付記12に記載の共通鍵生成装置。
(付記16)
前記候補値生成手段は、M個の前記候補値を生成する際、M個の異なるインデックス値に対してそれぞれ、前記共通鍵生成装置のファームウェアにより一意に規定される文字列と前記事前共有鍵と当該インデックス値とに基づいてシードを算出し、同じシードからは同じ値を生成するランダム関数に該シードを与えてランダムな値を算出することによって、M個の前記候補値を生成する、
ことを特徴とする付記15に記載の共通鍵生成装置。
(付記17)
前記候補値生成手段は、M個の前記候補値を生成する際、M個の異なるインデックス値に対してそれぞれ、前記共通鍵生成装置のファームウェアにより一意に規定される文字列と前記事前共有鍵と当該インデックス値とに基づいて算出される値をハッシュ関数の引数として与えることによって、M個の前記候補値を算出する、
ことを特徴とする付記15に記載の共通鍵生成装置。
(付記18)
共通鍵暗号方式において使われる共通鍵を生成する共通鍵生成方法であって、
クリアテキストの状態のヘッダ部と、ペイロード部とを有する入力データを受け付ける受付ステップと、
前記入力データの暗号化のために前記共通鍵を生成する第一の局面では、鍵素材を格納する鍵素材格納手段から前記鍵素材を読み取り、前記鍵素材格納手段内の前記鍵素材を更新し、前記入力データの復号化のために前記共通鍵を生成する第二の局面では、前記ヘッダ部の所定の部分から前記鍵素材を読み取る鍵素材読み取りステップと、
読み取った前記鍵素材に基づいて前記共通鍵を生成する共通鍵生成ステップと、
を備えることを特徴とする共通鍵生成方法。
1、1a〜1d 共通鍵生成装置
2a、2b 中継装置
3a〜3e ネットワーク
4a〜4g PC
5a〜5c データ
6a〜6c 暗号化データ
7a〜7c 復号化データ
8、8a、8b ルータ
11 受付部
12 鍵素材格納部
13 鍵素材読み取り部
14 共通鍵生成部
15 判定部
16 暗号化部
17 復号化部
18 事前共有鍵格納部
19 出力部
20 マスター鍵生成部
21 マスター鍵格納部
22 IPsec処理部
101、101a〜101e L2中継装置
102、102a〜102e フレーム中継処理部
103、103a〜103o ポート
104a〜104n 暗号処理モジュール
105 TCG対応チップ
106 CPU
107 内部バス
110、120、130 VLAN
141 コアL2/L3スイッチ
141b L2スイッチ
142a、142b .1Qトランク
143 ファイヤウォール
144 ルータ
145 インターネット
150 フレーム
151 送信先MACアドレス
152 送信元MACアドレス
153 データ部
154 FCS
160 タグつきフレーム
161 TPID
162 TCI
170 暗号化フレーム
171 暗号ヘッダ
172 暗号化データ部
173 ICV
1711 タイプ
1712 サブタイプ
1713 予約フィールド
1714 シーケンス番号
1715 ID
1716 フラグメントオフセット
201、201a〜201c ルータ
202 パケット中継処理部
203a〜203d ポート
204 ルーティングテーブル
205 セキュリティポリシーデータベース
206 TCG対応チップ
207 CPU
208 内部バス
250、250a〜250c IPパケット
251 IPヘッダ
252 IPデータ
260、260a〜260c 暗号化IPパケット
261 IPヘッダ
262 ESPヘッダ
263 暗号化されたIPヘッダ
264 暗号化されたIPデータ
265 ESPトレイラ
266 認証データ
270 暗号化IPパケット
280、280a〜280c 復号化IPパケット
301 バージョン
302 IHL
303 TOS
304 全長
305 ID
306 フラグ
307 フラグメントオフセット
308 TTL
309 プロトコル
310 ヘッダチェックサム
311 送信元IPアドレス
312 送信先IPアドレス
313 オプション
314 パディング
400 ESPパケット
401 SPI
402 シーケンス番号
403 ESPペイロードデータ
404 パディング
405 パディング長
406 次ヘッダ
k、ka〜kd 共通鍵
k0 事前共有鍵
k1、k1a〜k1c 送信先・送信元情報
k1_f MACヘッダ情報
k1_p1、k1_p2 IPヘッダ情報
k2、k2a〜k2c 鍵素材
k2_s、k2_r、k2_n シーケンス番号
k2_r1、k2_r2 ID
k2_r3 シーケンス番号
k3 マスター鍵
C マスター鍵配列
f フレーム
p パケット
2a、2b 中継装置
3a〜3e ネットワーク
4a〜4g PC
5a〜5c データ
6a〜6c 暗号化データ
7a〜7c 復号化データ
8、8a、8b ルータ
11 受付部
12 鍵素材格納部
13 鍵素材読み取り部
14 共通鍵生成部
15 判定部
16 暗号化部
17 復号化部
18 事前共有鍵格納部
19 出力部
20 マスター鍵生成部
21 マスター鍵格納部
22 IPsec処理部
101、101a〜101e L2中継装置
102、102a〜102e フレーム中継処理部
103、103a〜103o ポート
104a〜104n 暗号処理モジュール
105 TCG対応チップ
106 CPU
107 内部バス
110、120、130 VLAN
141 コアL2/L3スイッチ
141b L2スイッチ
142a、142b .1Qトランク
143 ファイヤウォール
144 ルータ
145 インターネット
150 フレーム
151 送信先MACアドレス
152 送信元MACアドレス
153 データ部
154 FCS
160 タグつきフレーム
161 TPID
162 TCI
170 暗号化フレーム
171 暗号ヘッダ
172 暗号化データ部
173 ICV
1711 タイプ
1712 サブタイプ
1713 予約フィールド
1714 シーケンス番号
1715 ID
1716 フラグメントオフセット
201、201a〜201c ルータ
202 パケット中継処理部
203a〜203d ポート
204 ルーティングテーブル
205 セキュリティポリシーデータベース
206 TCG対応チップ
207 CPU
208 内部バス
250、250a〜250c IPパケット
251 IPヘッダ
252 IPデータ
260、260a〜260c 暗号化IPパケット
261 IPヘッダ
262 ESPヘッダ
263 暗号化されたIPヘッダ
264 暗号化されたIPデータ
265 ESPトレイラ
266 認証データ
270 暗号化IPパケット
280、280a〜280c 復号化IPパケット
301 バージョン
302 IHL
303 TOS
304 全長
305 ID
306 フラグ
307 フラグメントオフセット
308 TTL
309 プロトコル
310 ヘッダチェックサム
311 送信元IPアドレス
312 送信先IPアドレス
313 オプション
314 パディング
400 ESPパケット
401 SPI
402 シーケンス番号
403 ESPペイロードデータ
404 パディング
405 パディング長
406 次ヘッダ
k、ka〜kd 共通鍵
k0 事前共有鍵
k1、k1a〜k1c 送信先・送信元情報
k1_f MACヘッダ情報
k1_p1、k1_p2 IPヘッダ情報
k2、k2a〜k2c 鍵素材
k2_s、k2_r、k2_n シーケンス番号
k2_r1、k2_r2 ID
k2_r3 シーケンス番号
k3 マスター鍵
C マスター鍵配列
f フレーム
p パケット
Claims (5)
- 共通鍵暗号方式に用いられる共通鍵を生成する共通鍵生成装置であって、
クリアテキストの状態のヘッダ部と、ペイロード部とを有する入力データを受け付ける受付手段と、
鍵素材を格納する鍵素材格納手段と、
前記入力データの暗号化のために前記共通鍵を生成する第一の局面では、前記鍵素材を前記鍵素材格納手段から読み取り、前記鍵素材格納手段内の前記鍵素材を更新し、前記入力データの復号化のために前記共通鍵を生成する第二の局面では、前記ヘッダ部の所定の部分から前記鍵素材を読み取る、鍵素材読み取り手段と、
前記鍵素材読み取り手段が読み取った前記鍵素材に基づいて前記共通鍵を生成する共通鍵生成手段と、
を備えることを特徴とする共通鍵生成装置。 - 通信路上に前記共通鍵生成装置が配置され、
前記入力データは、前記通信路を通って送信元から送信先へ送られるときに前記共通鍵生成装置を経由して、前記受付手段により受け付けられ、
前記共通鍵生成手段は、前記送信元または前記送信先の少なくとも一方のアドレスに基づいて前記共通鍵を生成する、
ことを特徴とする請求項1に記載の共通鍵生成装置。 - 事前共有鍵として同一の値を設定された二つの前記共通鍵生成装置が通信路上に配置され、
前記入力データは、前記経路を、送信元、送信側の前記共通鍵生成装置、受信側の前記共通鍵生成装置、送信先の順に経由して送信され、
前記入力データは、二つの前記共通鍵生成装置を経由する際にそれぞれの前記受付手段で受け付けられ、
二つの前記共通鍵生成装置のそれぞれの前記共通鍵生成手段は、前記事前共有鍵に基づいて前記共通鍵を生成する、
ことを特徴とする請求項1に記載の共通鍵生成装置。 - Mを2以上の整数として、前記事前共有鍵に基づいてM個の値を候補値として生成する候補値生成手段と、
M個の前記候補値を格納する候補値格納手段とをさらに備え、
前記共通鍵生成手段は、前記鍵素材に基づいてM個の前記候補値のうちの一つを選択して前記候補値格納手段から読み取り、該候補値に基づいて前記共通鍵を生成する、
ことを特徴とする請求項3に記載の共通鍵生成装置。 - 共通鍵暗号方式において使われる共通鍵を生成する共通鍵生成方法であって、
クリアテキストの状態のヘッダ部と、ペイロード部とを有する入力データを受け付ける受付ステップと、
前記入力データの暗号化のために前記共通鍵を生成する第一の局面では、鍵素材を格納する鍵素材格納手段から前記鍵素材を読み取り、前記鍵素材格納手段内の前記鍵素材を更新し、前記入力データの復号化のために前記共通鍵を生成する第二の局面では、前記ヘッダ部の所定の部分から前記鍵素材を読み取る鍵素材読み取りステップと、
読み取った前記鍵素材に基づいて前記共通鍵を生成する共通鍵生成ステップと、
を備えることを特徴とする共通鍵生成方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006285874A JP2008104040A (ja) | 2006-10-20 | 2006-10-20 | 共通鍵生成装置および共通鍵生成方法 |
| US11/741,051 US20080095368A1 (en) | 2006-10-20 | 2007-04-27 | Symmetric key generation apparatus and symmetric key generation method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006285874A JP2008104040A (ja) | 2006-10-20 | 2006-10-20 | 共通鍵生成装置および共通鍵生成方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008104040A true JP2008104040A (ja) | 2008-05-01 |
Family
ID=39317953
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006285874A Withdrawn JP2008104040A (ja) | 2006-10-20 | 2006-10-20 | 共通鍵生成装置および共通鍵生成方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20080095368A1 (ja) |
| JP (1) | JP2008104040A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013514682A (ja) * | 2009-12-18 | 2013-04-25 | 西安西▲電▼捷通▲無▼綫▲網▼絡通信股▲分▼有限公司 | ノード間秘密保持通信方法およびシステム |
| JP2014505402A (ja) * | 2010-12-20 | 2014-02-27 | 西安西▲電▼捷通▲無▼綫▲網▼絡通信股▲分▼有限公司 | リンク層セキュリティー伝送を支援する交換設備およびデータ処理方法本出願は、2010年12月20日に中国特許局に提出し、出願番号が201010596665.5であり、発明名称が「リンク層セキュリティー伝送を支援する交換設備およびデータ処理方法」である中国特許出願を基礎とする優先権を主張し、その開示の総てをここに取り込む。 |
| WO2016181976A1 (ja) * | 2015-05-12 | 2016-11-17 | 株式会社テイエルブイ | 情報送信装置 |
| JP2018133797A (ja) * | 2017-02-14 | 2018-08-23 | 株式会社ユニオンプレイス | IoTデバイス |
| JP2019057867A (ja) * | 2017-09-22 | 2019-04-11 | mtes Neural Networks株式会社 | 暗号化通信システム |
| JP2021503191A (ja) * | 2018-10-01 | 2021-02-04 | コリア ウォーター リソーシ コーポレーションKorea Water Resources Corporation | ネットワークセキュリティ用l2スイッチ及びこれを用いた遠隔監視制御システム |
| JP2022130947A (ja) * | 2021-02-26 | 2022-09-07 | 株式会社日立製作所 | 暗号通信システム及び通信端末 |
Families Citing this family (37)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB0705494D0 (en) * | 2007-03-22 | 2007-05-02 | Ibm | A method and system for a subscription to a symmetric key |
| JP5177696B2 (ja) * | 2007-09-04 | 2013-04-03 | 任天堂株式会社 | 書込み領域セキュリティシステム |
| JP2009065429A (ja) * | 2007-09-06 | 2009-03-26 | Hitachi Communication Technologies Ltd | パケット転送装置 |
| ES2750051T3 (es) | 2007-09-17 | 2020-03-24 | Ericsson Telefon Ab L M | Método y disposición en un sistema de telecomunicaciones |
| CN101170407B (zh) * | 2007-12-03 | 2011-01-12 | 北京深思洛克软件技术股份有限公司 | 一种安全地生成密钥对和传送公钥或证书申请文件的方法 |
| CN102144370B (zh) * | 2008-09-04 | 2015-04-15 | 富士通株式会社 | 发送装置、接收装置、发送方法及接收方法 |
| US8848904B2 (en) * | 2008-10-24 | 2014-09-30 | University Of Maryland, College Park | Method and implementation for information exchange using Markov models |
| KR101727130B1 (ko) * | 2010-01-20 | 2017-04-14 | 인트린직 아이디 비브이 | 암호화 키를 획득하기 위한 디바이스 및 방법 |
| WO2011114373A1 (ja) * | 2010-03-17 | 2011-09-22 | 富士通株式会社 | 通信装置、プログラムおよび方法 |
| WO2012029409A1 (en) * | 2010-09-03 | 2012-03-08 | Nec Corporation | A control apparatus, a communication system, a communication method and a recording medium having recorded thereon a communication program |
| US20120069995A1 (en) * | 2010-09-22 | 2012-03-22 | Seagate Technology Llc | Controller chip with zeroizable root key |
| US20120254615A1 (en) * | 2011-03-31 | 2012-10-04 | Motorola Solutions, Inc. | Using a dynamically-generated symmetric key to establish internet protocol security for communications between a mobile subscriber and a supporting wireless communications network |
| KR101240552B1 (ko) * | 2011-09-26 | 2013-03-11 | 삼성에스디에스 주식회사 | 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법 |
| AT14014U1 (de) * | 2012-07-09 | 2015-02-15 | Bachmann Gmbh | Verfahren zum sicheren Betrieb von Verbundnetzen, insbesondere von Windpark- oder anderen ausgedehnten Netzen |
| KR20140123723A (ko) * | 2013-04-15 | 2014-10-23 | 한국전자통신연구원 | 충돌방지 알고리즘을 이용한 rf아이디 시스템에서 키 설립 방법 |
| US9237015B2 (en) * | 2013-07-24 | 2016-01-12 | Cisco Technology, Inc. | Compact and efficient communication security through combining anti-replay with encryption |
| US20150036820A1 (en) * | 2013-07-30 | 2015-02-05 | Gideon Samid | Probability Durable Entropic Advantage |
| JP6303426B2 (ja) * | 2013-11-18 | 2018-04-04 | 富士通株式会社 | ノード装置、通信システム、通信方法および通信プログラム |
| US10270809B2 (en) * | 2013-12-02 | 2019-04-23 | Akamai Technologies, Inc. | Virtual private network (VPN)-as-a-service with delivery optimizations while maintaining end-to-end data security |
| US9813343B2 (en) | 2013-12-03 | 2017-11-07 | Akamai Technologies, Inc. | Virtual private network (VPN)-as-a-service with load-balanced tunnel endpoints |
| KR101621400B1 (ko) * | 2013-12-20 | 2016-05-16 | 주식회사 쏠리드 | 광 중계 시스템 및 광 중계 시스템에서 리모트 장치의 식별정보 설정 방법 |
| US10230531B2 (en) | 2014-10-23 | 2019-03-12 | Hewlett Packard Enterprise Development Lp | Admissions control of a device |
| WO2016068942A1 (en) | 2014-10-30 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Encryption for transactions in a memory fabric |
| US10699031B2 (en) | 2014-10-30 | 2020-06-30 | Hewlett Packard Enterprise Development Lp | Secure transactions in a memory fabric |
| JP2016208073A (ja) * | 2015-04-15 | 2016-12-08 | キヤノン株式会社 | 情報処理システム、該システムの制御方法、プログラム及び情報処理装置 |
| US10341311B2 (en) * | 2015-07-20 | 2019-07-02 | Schweitzer Engineering Laboratories, Inc. | Communication device for implementing selective encryption in a software defined network |
| US10778424B2 (en) * | 2017-02-27 | 2020-09-15 | Cord3 Innovation Inc. | Symmetric cryptographic method and system and applications thereof |
| WO2018152618A1 (en) | 2017-02-27 | 2018-08-30 | Cord3 Innovation Inc. | Symmetric cryptographic method and system and applications thereof |
| US11128452B2 (en) * | 2017-03-25 | 2021-09-21 | AVAST Software s.r.o. | Encrypted data sharing with a hierarchical key structure |
| US10511582B2 (en) * | 2017-04-07 | 2019-12-17 | Fujitsu Limited | Simplified encryption key generation in optical networks |
| EP3503491A1 (en) * | 2017-12-21 | 2019-06-26 | Vestel Elektronik Sanayi ve Ticaret A.S. | Computer-implemented method, data communications system and computer program |
| US10581611B1 (en) * | 2018-10-02 | 2020-03-03 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
| US10984416B2 (en) * | 2019-03-20 | 2021-04-20 | Capital One Services, Llc | NFC mobile currency transfer |
| CN111541611B (zh) * | 2020-04-24 | 2021-05-28 | 清华大学 | 基于认证分片可重组的动态路径验证方法 |
| US11063979B1 (en) * | 2020-05-18 | 2021-07-13 | Capital One Services, Llc | Enabling communications between applications in a mobile operating system |
| KR102668919B1 (ko) * | 2021-04-16 | 2024-05-27 | 한국과학기술원 | 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법 |
| US12381716B2 (en) * | 2021-12-30 | 2025-08-05 | Arris Enterprises Llc | Optimized key management for data signing systems |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2313242C (en) * | 1997-12-19 | 2008-10-14 | British Telecommunications Public Limited Company | Data communications |
| ATE403992T1 (de) * | 1999-06-22 | 2008-08-15 | Hitachi Ltd | Kryptografisches gerät und verfahren |
| US6289455B1 (en) * | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
| JP3259724B2 (ja) * | 1999-11-26 | 2002-02-25 | 三菱電機株式会社 | 暗号装置、暗号化器および復号器 |
| JP3864675B2 (ja) * | 2000-03-09 | 2007-01-10 | 株式会社日立製作所 | 共通鍵暗号装置 |
| US20040213237A1 (en) * | 2000-06-29 | 2004-10-28 | Toshikazu Yasue | Network authentication apparatus and network authentication system |
| AU2001276731A1 (en) * | 2000-08-25 | 2002-03-04 | Matsushita Electric Industrial Co., Ltd. | Data transmission method and data relay method |
| JP4427196B2 (ja) * | 2001-02-07 | 2010-03-03 | 株式会社日立製作所 | Ipパケット通信装置及び冗長構成切替え方法 |
| GB2379587B (en) * | 2001-09-10 | 2003-08-20 | Simon Alan Spacey | A method and apparatus for securing electronic information |
| US20030210696A1 (en) * | 2002-04-25 | 2003-11-13 | Globespanvirata Incorporated | System and method for routing across segments of a network switch |
| WO2004015931A1 (ja) * | 2002-08-07 | 2004-02-19 | Allied Telesis K.K. | 伝送システムおよびその方法 |
| US20040177369A1 (en) * | 2003-03-06 | 2004-09-09 | Akins Glendon L. | Conditional access personal video recorder |
| JP2004363739A (ja) * | 2003-06-03 | 2004-12-24 | Hitachi Ltd | 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置 |
| US7232063B2 (en) * | 2003-06-09 | 2007-06-19 | Fujitsu Transaction Solutions Inc. | System and method for monitoring and diagnosis of point of sale devices having intelligent hardware |
| US7515717B2 (en) * | 2003-07-31 | 2009-04-07 | International Business Machines Corporation | Security containers for document components |
| JP2007529967A (ja) * | 2004-03-18 | 2007-10-25 | クゥアルコム・インコーポレイテッド | セキュリティ保護された実時間プロトコルにおける暗号情報の効率的な送信 |
| JP4368251B2 (ja) * | 2004-06-09 | 2009-11-18 | 富士通株式会社 | フレーム転送処理方法及び装置 |
| JP2006033275A (ja) * | 2004-07-14 | 2006-02-02 | Fujitsu Ltd | ループフレーム検知装置およびループフレーム検知方法 |
| US7571329B2 (en) * | 2004-07-14 | 2009-08-04 | Intel Corporation | Method of storing unique constant values |
| WO2006080623A1 (en) * | 2004-09-22 | 2006-08-03 | Samsung Electronics Co., Ltd. | Method and apparatus for managing communication security in wireless network |
| US7246224B2 (en) * | 2004-09-27 | 2007-07-17 | Intel Corporation | System and method to enable platform personality migration |
| US20060269066A1 (en) * | 2005-05-06 | 2006-11-30 | Schweitzer Engineering Laboratories, Inc. | System and method for converting serial data into secure data packets configured for wireless transmission in a power system |
| US20060274899A1 (en) * | 2005-06-03 | 2006-12-07 | Innomedia Pte Ltd. | System and method for secure messaging with network address translation firewall traversal |
| US20070242828A1 (en) * | 2006-04-12 | 2007-10-18 | General Dynamics C4 Systems, Inc. | Dynamic interleaving of state vector components in an encrypted data communication system |
| JP4923908B2 (ja) * | 2006-09-21 | 2012-04-25 | 富士通株式会社 | パケット転送装置およびパケット転送方法 |
| US7817802B2 (en) * | 2006-10-10 | 2010-10-19 | General Dynamics C4 Systems, Inc. | Cryptographic key management in a communication network |
-
2006
- 2006-10-20 JP JP2006285874A patent/JP2008104040A/ja not_active Withdrawn
-
2007
- 2007-04-27 US US11/741,051 patent/US20080095368A1/en not_active Abandoned
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013514682A (ja) * | 2009-12-18 | 2013-04-25 | 西安西▲電▼捷通▲無▼綫▲網▼絡通信股▲分▼有限公司 | ノード間秘密保持通信方法およびシステム |
| JP2014505402A (ja) * | 2010-12-20 | 2014-02-27 | 西安西▲電▼捷通▲無▼綫▲網▼絡通信股▲分▼有限公司 | リンク層セキュリティー伝送を支援する交換設備およびデータ処理方法本出願は、2010年12月20日に中国特許局に提出し、出願番号が201010596665.5であり、発明名称が「リンク層セキュリティー伝送を支援する交換設備およびデータ処理方法」である中国特許出願を基礎とする優先権を主張し、その開示の総てをここに取り込む。 |
| JP2015181233A (ja) * | 2010-12-20 | 2015-10-15 | 西安西▲電▼捷通▲無▼綫▲網▼絡通信股▲分▼有限公司China Iwncomm Co., Ltd. | リンク層セキュリティー伝送をサポートする交換設備およびデータ処理方法 |
| US9264405B2 (en) | 2010-12-20 | 2016-02-16 | China Iwncomm Co., Ltd. | Switch equipment and data processing method for supporting link layer security transmission |
| WO2016181976A1 (ja) * | 2015-05-12 | 2016-11-17 | 株式会社テイエルブイ | 情報送信装置 |
| JP2018133797A (ja) * | 2017-02-14 | 2018-08-23 | 株式会社ユニオンプレイス | IoTデバイス |
| US10757571B2 (en) | 2017-02-14 | 2020-08-25 | Unionplace Co., Ltd. | Internet of things device |
| JP2019057867A (ja) * | 2017-09-22 | 2019-04-11 | mtes Neural Networks株式会社 | 暗号化通信システム |
| JP2021503191A (ja) * | 2018-10-01 | 2021-02-04 | コリア ウォーター リソーシ コーポレーションKorea Water Resources Corporation | ネットワークセキュリティ用l2スイッチ及びこれを用いた遠隔監視制御システム |
| JP2022130947A (ja) * | 2021-02-26 | 2022-09-07 | 株式会社日立製作所 | 暗号通信システム及び通信端末 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20080095368A1 (en) | 2008-04-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2008104040A (ja) | 共通鍵生成装置および共通鍵生成方法 | |
| JP5060081B2 (ja) | フレームを暗号化して中継する中継装置 | |
| US9967372B2 (en) | Multi-hop WAN MACsec over IP | |
| US8386772B2 (en) | Method for generating SAK, method for realizing MAC security, and network device | |
| JP3805329B2 (ja) | イーサネット(登録商標)受動型光加入者ネットワークシステムでのセキュリティデータ伝送方法 | |
| US7571463B1 (en) | Method an apparatus for providing a scalable and secure network without point to point associations | |
| JP4407452B2 (ja) | サーバ、vpnクライアント、vpnシステム、及びソフトウェア | |
| JP4447463B2 (ja) | ブリッジ暗号vlan | |
| CN111010274B (zh) | 一种安全低开销的SRv6实现方法 | |
| US20050220091A1 (en) | Secure remote mirroring | |
| CN112600802B (zh) | 一种SRv6加密报文、SRv6报文的加解密方法及装置 | |
| CN101529805A (zh) | 中间设备 | |
| CN110383280A (zh) | 用于为时间感知的端到端分组流网络提供网络安全性的方法和装置 | |
| JP2024161569A (ja) | 鍵管理サーバ装置、鍵管理方法及びプログラム | |
| Farinacci et al. | Locator/ID separation protocol (LISP) data-plane confidentiality | |
| CN111885430A (zh) | 一种基于以太帧的带内遥测方法及带内遥测系统 | |
| JP7720437B2 (ja) | Ip/udpにおける鍵配送 | |
| CN115733683B (zh) | 采用量子密钥分发的以太链路自组织加密隧道实现方法 | |
| US7376828B1 (en) | Method and apparatus for using incompletely trusted service provider point-to-point networks | |
| CN119603000B (zh) | 通信方法及装置 | |
| EP4436109B1 (en) | Key distribution over ip/udp | |
| Liu et al. | Normalizing traffic pattern with anonymity for mission critical applications | |
| Kim et al. | The implementation of the link security module in an EPON access network | |
| Baltatu et al. | IP security | |
| JP2007192844A (ja) | 暗号化ラベルネットワーク |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081117 |
|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110314 |