説明

通信装置、データの通信方法及びネットワークシステム

【課題】ノイズによるデータ通信の中断時間を短縮することのできる通信装置を提供する。
【解決手段】受信機器であるノードBは、送信機器であるノードA,Cとの間の認証・鍵交換処理にて取得した交換鍵Kxを記憶する交換鍵記憶部23と、その交換鍵Kxの保存先と、アイソクロナスチャネル番号と、ノードIDとを対応付けてメモリ31のデータベースに記憶する制御CPU30とを備える。制御CPU30は、バスリセットによってノードA,CのノードIDが変化したときに、チャネル番号を基準にしてデータベース内のノードIDを更新する。また、制御CPU30は、受信中のチャネル番号に対応する交換鍵Kxの保存先を指定する選択信号を出力側セレクタS2に出力し、上記チャネル番号に対応するノードIDを転送先としてコンテンツ・キー・リクエストを行う。

【発明の詳細な説明】
【技術分野】
【0001】
通信装置、データの通信方法及びネットワークシステムに関するものである。
【背景技術】
【0002】
デジタルテレビジョンやDVD(Digital Versatile Disc)プレーヤーなどに装備されているデジタルインターフェースとして、著作権管理やデータの暗号化通信ができるIEEE1394 High Performance Serial Bus(IEEE1394)がある。
【0003】
暗号化通信に適用する暗号化方式では、まず送信機器と受信機器との間で認証を行う。この認証方式としては、公開鍵暗号方式を利用した完全認証(Full Authentication)と、秘密鍵方式を利用した制限認証(Restricted Authentication)との2種類の方式が定められている。なお、制限認証では、No More CopyとCopy one generationという2種類のデータ(コンテンツ)までしか扱えないのに対し、完全認証では、上記2種類のデータに加えてCopy Neverのデータまで扱うことができる。そして、いずれの認証方式であっても認証が成功すると、図14に示すように、送信機器100と受信機器200とで同一の認証鍵Kauthを共有する。つぎに、送信機器100は、データの種類(No More Copy,Copy one generation,Copy Never)毎に交換鍵Kxを作成する。次いで、送信機器100は、上記認証鍵Kauthを用いて交換鍵Kxを暗号化して暗号化交換鍵Ksxを作成し、この暗号化交換鍵Ksxを受信機器200に送信する。受信機器200は、暗号化交換鍵Ksxを受け取ると、上記共有した認証鍵Kauthを用いて暗号化交換鍵Ksxを復号化することにより元の交換鍵Kxを得る。このようにして、認証に成功した受信機器200は、送信機器100との間で同一の交換鍵Kxを共有する。
【0004】
送信機器100は、さらにもう1つの公開鍵Nonce for content channel(Nc)を用意する。送信機器100では、交換鍵Kx及び公開鍵Ncの2つの鍵を利用して演算が行われてコンテンツ鍵Kcが作成される。送信機器100は、このコンテンツ鍵Kc(暗号化鍵)を用いて送信したいデータを暗号化して受信機器200に転送する。受信機器200は、公開鍵Ncと上記共有した交換鍵Kxの2つの鍵を利用してコンテンツ鍵Kcを作成し、そのコンテンツ鍵Kcを用いて送信機器100からの暗号化データを復号化する。
【0005】
このような暗号化方式によって、認証に成功した受信機器のみで暗号化データの内容を確認することができる。すなわち、認証手続きを行っていない受信機器では、コンテンツ鍵Kc(交換鍵Kx)の値が分からないため、転送されている暗号化データをたとえ取り込むことができたとしても、この暗号化データを復号化することができない。従って、不正なコピーを抑止することができる。
【0006】
なお、上記従来技術に関連する先行技術として、非特許文献1が開示されている。
【非特許文献1】高田信司著「高速デジタルインターフェース IEEE1394 AV機器への応用」日刊工業新聞社出版、2000年1月、p.133−149
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところで、データを転送する際には、完全認証及び制限認証のいずれかの認証方式によって送信機器と受信機器との間で認証を行う必要がある。但し、これら完全認証や制限認証は複雑な演算処理を必要とするため、処理に時間がかかる。とくに、完全認証方式では、楕円曲線暗号技術を利用した電子署名アルゴリズム(Digital Signature Algorithm:DSA)とDH鍵交換アルゴリズム(Diffie-Hellman Key exchange Algorithm)とが採用されており、非常に複雑な演算処理が必要である。このため、認証処理に多大な時間を要する。
【0008】
ところが、IEEE1394バスに例えばノイズが乗るとバスの初期化が発生するが、そのバスの初期化後に再度の認証処理が必要であった。これにより、その認証処理及びその後の鍵交換が終わるまでは受信機器側で暗号化データを復号化できないため、データの通信が長時間にわたって中断されるという問題があった。
【課題を解決するための手段】
【0009】
送信元との間の認証に基づいて生成される第1の鍵と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けて記憶する記憶部と、前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記記憶部に記憶した前記第1の情報に対応する識別情報を有する送信元から公開鍵を取得する取得部と、前記第1の情報と対応する第1の鍵と前記公開鍵とに基づいて、前記送信元から送信されるデータの暗号化/復号化に用いる暗号化鍵を生成する演算部と、を備える通信装置により達成される。
【発明の効果】
【0010】
開示の通信装置によれば、データ通信の中断時間を短縮することができるという効果を奏する。
【発明を実施するための最良の形態】
【0011】
(第1実施形態)
以下、本発明を具体化した第1実施形態を図1〜図7に従って説明する。
図2は、IEEE1394規格に準拠したシステム構成(トポロジ)を示す。ノードAにはIEEE1394バスケーブル(バスケーブル)1aを介してノードBが接続され、ノードBにはバスケーブル1bを介してノードCが接続され、ノードCにはバスケーブル1cを介してノードDが接続されている。なお、ノードA〜Dは、例えばDVDプレーヤー、デジタルテレビジョン、デジタルセットトップボックス等の接続ポイントの総称である。ここでは、ノードA,Cは、DVDプレーヤーやデジタルセットトップボックス等の送信機器であり、ノードB,Dはデジタルテレビジョン等の受信機器である。
【0012】
これらノードA〜Dは、コピープロテクション機能内蔵のIEEE1394プロトコルコントローラ(IPC)を備える。ここでは、受信機器であるノードBの内部構成について詳しく説明する。なお、ノードDもノードBと同様の構成を備える。
【0013】
ノードBは、図1に示すように、ポート10a,10bと、IPC20と、制御CPU30と、メモリ31と、デコーダ40とを備える。
ポート10aはバスケーブル1aを介してノードAと接続され、ポート10bはバスケーブル1bを介してノードCと接続されている。これらポート10a,10bは、他ノードから受信する電気信号を装置内部で扱う電気信号に変換してIPC20のIEEE1394コントローラ部(コントローラ部)21に出力する。また、ポート10a,10bは、コントローラ部21からの電気信号をIEEE1394規格の電気信号に変換して他ノードに送信する。
【0014】
IPC20は、コントローラ部21と、認証・鍵交換部22と、交換鍵記憶部23と、公開鍵保持部24と、演算回路25と、コンテンツ鍵保持部26と、復号回路27とを備える。なお、認証・鍵交換部22、交換鍵記憶部23、公開鍵保持部24、演算回路25、コンテンツ鍵保持部26及び復号回路27が、コピープロテクション機能を実現する。また、IPC20は、1チップの半導体集積回路装置(LSI)にて形成されている。なお、上記ポート10a,10bや制御CPU30やメモリ31とIPC20とを、1チップのLSIにて形成するようにしてもよい。
【0015】
コントローラ部21は、IEEE1394規格に準拠しており、物理層やリンク層などを含む。物理層では、トポロジ全体の初期化と再構築のためのバスのコンフィグレーションなどが行われる。なお、このバスのコンフィグレーションでは、トポロジ中の全ノードのバスに関する情報の初期化と、ルートノードの決定と、各ノードのノードIDの決定と、ノードIDを通知するためのセルフIDパケットの送信とが行われる。また、リンク層では、データCRCやヘッダCRCの生成、CRCチェックやパケットの送受信制御が行われる。
【0016】
このコントローラ部21は、公開鍵Ncを含むパケットを送信機器から受信すると、そのパケットを制御CPU30に出力する。また、コントローラ部21は、コンテンツ鍵Kcで暗号化された暗号化データを含むパケットを送信機器から受信すると、そのパケットを復号回路27に出力する。
【0017】
認証・鍵交換部22は、先の図14で説明した認証処理及び鍵交換処理を実行する。認証・鍵交換部22は、上記鍵交換処理によって取得される、全ての送信機器に対応する交換鍵Kxを、制御CPU30によって指定される交換鍵記憶部23の所定領域に入力側セレクタS1を通じて格納する。また、認証・鍵交換部22は、制御CPU30から入力される公開鍵Ncを公開鍵保持部24に格納する。
【0018】
交換鍵記憶部23(の出力側セレクタS2)は、通信対象の送信機器に対応する交換鍵Kxを選択するための制御CPU30からの選択信号に応じて、指定された交換鍵Kxを演算回路25に出力する。なお、この交換鍵記憶部23は、初期値を乱数にしている。その理由を以下に説明する。
【0019】
通常、交換鍵記憶部23のような記憶領域の初期値は、LSIの初期値になる。このLSIの初期値は、製造条件により、オール0やオール1になる可能性が高い。このように、交換鍵Kxの記憶される領域がオール0やオール1などの値となると、その値が交換鍵Kxとして悪用される可能性がある。詳述すると、認証手続きの行われていない受信機器において、送信機器から送信された暗号化データが受信されたとしても、通常はコンテンツ鍵Kcの値が分からないため、暗号化データを正常に復号化することができない。但し、このとき認証手続きの行われていない受信機器であっても、公開鍵Ncの値は公開されているため、その値を取得することができる。このため、受信機器では、交換鍵Kxの値のみが分からない。換言すると、受信機器は、交換鍵Kxの値さえ推測できれば、認証手続きを行うことなく暗号化データを復号化できてしまう。
【0020】
ここで、受信機器において、正しくない交換鍵Kxを使用すると、当然、暗号化データを正常に復号化することはできない。しかし、その異常に復号化されたデータにはある規則性が存在する。このとき、オール0やオール1などの値を交換鍵Kxとして使用していると、異常に復号化されたデータは毎回同じ規則性を有することになる。そして、この規則性から正しい交換鍵Kxが推測される可能性が高くなる。このように、オール0やオール1などの値が交換鍵Kxとして悪用されると、認証手続きの行われていない不正な受信機器において、コピーガードが破られる可能性が高くなる。
【0021】
これに対し、交換鍵記憶部23の初期値を乱数にすることにより、異常に復号化されるデータも毎回ランダムな値になるため、交換鍵Kxの正しい値が推測されることを効果的に抑制することができる。これにより、クラッキングに対する安全性を向上させることができる。
【0022】
公開鍵保持部24は、保持している公開鍵Ncを演算回路25に出力する。演算回路25は、入力した交換鍵Kxと公開鍵Ncとを用いて演算してコンテンツ鍵Kcを作成し、そのコンテンツ鍵Kcをコンテンツ鍵保持部26に記憶する。コンテンツ鍵Kcは、保持しているコンテンツ鍵Kcを復号回路27に出力する。
【0023】
復号回路27は、コントローラ部21から入力される暗号化データを、コンテンツ鍵保持部26からのコンテンツ鍵Kcを用いて復号化する。なお、この復号回路27は、例えばM6暗号化アルゴリズムに基づいて、暗号化データを復号化する。そして、復号回路27は、復号化した復号化パケット(例えばMPEGパケットなど)をデコーダ40に出力する。デコーダ40は、復号回路27からの復号化パケットから画像データなどを取得する。そして、例えばデコーダ40からテレビモニタなどに出力することにより、テレビモニタで動画像が得られる。
【0024】
制御CPU30は、IPC20及びデコーダ40を統括的に制御する。この制御CPU30は、送信機器に対してコンテンツ・キー・リクエストを行い、そのコンテンツ・キー・リクエストにより取得した公開鍵Ncを認証・鍵交換部22に出力する。制御CPU30は、認証・鍵交換部22による鍵交換処理にて取得された交換鍵Kxの保存先を指定する信号を認証・鍵交換部22に出力する。このとき、制御CPU30は、その交換鍵Kxの保存先と、認証相手の送信機器のノードID(識別情報)と、その送信機器のアイソクロナスチャネル番号(チャネル番号)CHとを対応付けてメモリ31のデータベースDB(図4参照)に記憶する(図4参照)。また、制御CPU30は、現在受信中のチャネル番号CHに基づいて、そのチャネル番号CHの送信機器に対応する交換鍵Kxを選択する信号を交換鍵記憶部23の出力側セレクタS2に出力する。すなわち、本実施形態では、制御CPU30が直接交換鍵Kxの値を読めないようにしている。また、制御CPU30は、バスリセット前後で送信機器のノードIDが変化したときに、上記データベースDB内のノードIDを変化後のノードIDに更新する。このように、本実施形態の制御CPU30は、取得部、選択部、制御部及び更新部として機能する。
【0025】
次に、このように構成されたネットワークシステム(とくに、ノードB)の動作を説明することにより、各構成の機能についてさらに詳述する。
まず、ノードA〜Dの電源投入時における認証・鍵交換方法を図3に従って説明する。
【0026】
今、図2に示すノードA〜Dの電源が投入されると、各ノードA〜Dのコントローラ部21によってバスのコンフィグレーションが行われる。すなわち、まずバス初期化フェーズにおいて、バスリセットが発生される(ステップS1)。これにより、すべてのノードにおけるトポロジに関する情報が消去される。このバス初期化の終了後に、ツリー識別フェーズにおいて図2に示すツリー状のトポロジが形成され、ルートやアイソクロナスリソースマネージャとなるノードが決定される(ステップS2)。続いて、自己識別フェーズにおいて各ノードA〜DのノードIDが決定され、そのノードIDなどを含むセルフIDパケットが各ノードA〜Dからブロードキャスト送信される(ステップS3)。なお、ここでは、図2に示すように、ノードA,B,C,Dの順番でノードIDが「0」、「1」、「2」、「3」と付されるものとする。上記セルフIDパケットを受信することによって、トポロジ内のノード数や各ノードのノードIDを取得することができ、トポロジ内のノード数がメモリ31に記憶される(ステップS4)。
【0027】
バスのコンフィグレーションが終了すると、IEC61883規格で規定されるAV/Cプロトコルに従って、各ノードA〜Dは、自ノード以外のノードのコンフィグレーションROMやプラグコントロールレジスタ(oPCRなど)を読み出す(ステップS5)。なお、コンフィグレーションROMには、メーカ識別用のコンパニーID、チップを識別するためのチップID、モジュールのメーカを識別するためのベンダIDやシリアルナンバーなどのノード固有の情報が格納されている。このため、これらの情報を読み出すことにより、各ノードA〜Dは、現在バスに接続されているノードがどのような装置であるかを認識することができる。なお、これら読み出した情報はメモリ31などに記憶される。
【0028】
ここで、IEEE1394のデータ転送には、任意のタイミングでのデータ送受信が許容されるエイシンクロナス(Async)転送モードと、一定の時間間隔で音声や映像信号等のリアルタイム性が必要なデータを送ることのできるアイソクロナス(Iso)転送モードがある。Async転送モードでは、送信元と送信先のノードIDが必要であるのに対し、Iso転送モードでは、アイソクロナスチャネル番号(チャネル番号)が必要になる。このため、Iso転送モードでデータを転送するためには、各送信機器はチャネル番号と帯域幅を確保する必要がある。このチャネル番号と帯域幅は、バスに接続されている全てのノードの資源(リソース)であり、これらリソースを管理するのがアイソクロナスリソースマネージャである。このアイソクロナスリソースマネージャは、チャネル番号の使用情報と帯域幅の残量が格納されるレジスタを公開することにより、上記リソースを管理している。
【0029】
そして、ステップS6において、AV/Cプロトコルに従って、送信機器(ここでは、ノードA,C)における送信用のチャネル番号と出力プラグ(oPCR)とが確保される。なお、チャネル番号は、アイソクロナスリソースマネージャの公開するレジスタを書き換えることにより確保される。ここでは、ノードAはチャネル番号CH1を確保し、ノードCはチャネル番号CH5を確保したものとする。続いて、受信機器(ここでは、ノードB,D)は、上記確保されたチャネル番号を使用して送信されるデータを受信するために、受信用のチャネル番号に関する入力プラグ(iPCR)を設定する(ステップS7)。
【0030】
次に、各受信機器(ノードB,D)は、アイソクロナスリソースマネージャのレジスタに登録された、全ての送信機器との間で認証処理及び鍵交換処理を実施する(ステップS8)。例えばノードBの認証・鍵交換部22は、まずノードAとの間で認証処理及び鍵交換処理を行う。ノードA,B間で認証が成功し鍵交換処理が正常に完了すると、ノードBでは交換鍵Kxが取得される。このとき、ノードBの制御CPU30は、取得した交換鍵Kxを交換鍵記憶部23の所定領域に保存させるために、その保存先を指定する信号を認証・鍵交換部22に出力する。認証・鍵交換部22は、制御CPU30からの保存先の指定を受けて、取得した交換鍵Kxを交換鍵記憶部23の指定領域に格納する(ステップS9)。さらに、このとき制御CPU30は、図4に示すように、その交換鍵Kxの保存先(アドレスや識別番号など)ADD1と、ノードAのチャネル番号CH1と、ノードAのノードID「0」とを対応付けてメモリ31のデータベースDBに記憶する(ステップS10)。なお、このときノードA,Bの双方が完全認証に対応している場合には、最大で3種類のデータ(No More Copy,Copy one generation,Copy Never)に対応する交換鍵Kxが取得される。また、ノードA,Bの少なくとも一方が完全認証に対応していない場合には、最大で2種類のデータ(No More Copy,Copy one generation)に対応する交換鍵Kxが取得される。ここでは、説明の簡便化のため、各送信機器について、1種類の交換鍵Kxが取得されるものとする。
【0031】
続いて、ノードBは、もう一つの送信機器であるノードCとの間で認証処理及び鍵交換処理を行って(ステップS8)、取得した交換鍵Kxを交換鍵記憶部23に格納する(ステップS9)。そして、ノードBの制御CPU30は、その交換鍵Kxの保存先ADD2と、ノードCのチャネル番号CH5と、ノードCのノードID「2」とを対応付けてメモリ31のデータベースDBに記憶する。なお、ノードDも同様に、全ての送信機器(ノードA,C)と認証処理及び鍵交換処理を実施し、交換鍵Kxを取得して交換鍵記憶部23に格納し、その交換鍵Kxの保存先とチャネル番号CHとノードIDとを対応付けてデータベースDBに記憶する。
【0032】
以上のように、ノードA〜Dの電源投入時に、全ての受信機器が全ての送信機器との間で認証・鍵交換処理を行って、全ての送信機器の交換鍵Kxを予め保持しておくことで、通信相手を切り替えるたびに認証・鍵交換処理を行う必要がなくなる。これにより、通信の切り替えを迅速に行うことができる。
【0033】
次に、データ受信時のノードBの動作を図5に従って説明する。
今、ノードBがノードAから送信されるデータを受信したい場合に、ノードBにおいて、自動あるいは人為的な操作によってノードAのチャネル番号CH1が選択される(ステップS21)。すると、ノードBの制御CPU30は、ノードAに対してコンテンツ・キー・リクエストを行う(ステップS22)。なお、このコンテンツ・キー・リクエストは、Async転送モードにて行われるため、転送元及び転送先のノードIDが必要となる。ここでは、上記ステップS10にてメモリ31にチャネル番号CHとノードIDとが対応付けて記憶されているため、選択されたチャネル番号CH1に対応するノードID「2」を転送先のノードIDとしてコンテンツ・キー・リクエストが行われる。これにより、ノードAに対してコンテンツ・キー・リクエストが正確に行われる。
【0034】
このコンテンツ・キー・リクエストによって、ノードBは、送信対象のノードAが使用している公開鍵Ncを受信する(ステップS23)。すると、ノードBの制御CPU30は、受信した公開鍵Ncを認証・鍵交換部22を介して公開鍵保持部24に格納(設定)する。なお、規格上、公開鍵保持部24には、受信した公開鍵Ncと併せて、その公開鍵Ncを1回更新した後の公開鍵についても格納されるようになっている。
【0035】
次に、ノードBの制御CPU30は、メモリ31のデータベースDBに基づいて、上記選択されたチャネル番号CH1に対応する交換鍵Kxの保存先ADD1を指定する信号を交換鍵記憶部23の出力側セレクタS2に出力する。これにより、交換鍵記憶部23の指定領域ADD1に保持された所望の交換鍵Kxが選択されて演算回路25に出力される(ステップS24)。この演算回路25は、公開鍵保持部24からの公開鍵Ncと交換鍵記憶部23からの交換鍵Kxとを用いて演算してコンテンツ鍵Kcを作成し、そのコンテンツ鍵Kcをコンテンツ鍵保持部26に格納(設定)する(ステップS25)。これにより、通信対象のノードAの暗号化に使用されるコンテンツ鍵Kcと同一のコンテンツ鍵KcをノードB内に設定することができる。その後、ノードBは、ノードAから送信されるデータ(暗号化データ)の受信を開始する(ステップS26)。具体的には、ノードBの復号回路27は、コントローラ部21を介して受信した暗号化データを、コンテンツ鍵保持部26からのコンテンツ鍵Kcを用いて復号化し、その復号化データをデコーダ40に出力する。
【0036】
なお、所定時間(30秒〜2分)毎に公開鍵Ncが自動的に更新されるため(具体的には、1インクリメントされるため)、制御CPU30はその更新を検出して更新後の公開鍵Ncを公開鍵保持部24に設定する。
【0037】
次に、ノードBにおいて通信対象(送信機器)の切り替えが行われた場合の処理を図6に従って説明する。
今、ノードBがノードAからデータを受信しているときに、ノードBにおいて自動あるいは人為的な操作によってチャネル番号がCH1からCH5に切り替えられる(ステップS31)。すなわち、ノードBは、ノードCから送信されるデータを受信するように切り替わる。すると、ステップS32〜S36において、上記ステップS22〜S26と同様の処理が行われ、ノードCから送信される暗号化データの受信が開始される。すなわち、制御CPU30は、メモリ31のデータベースDBに基づいて、チャネル番号CH5に対応するノードID「2」を転送先としてコンテンツ・キー・リクエストを実施し(ステップS32)、ノードCから公開鍵Ncを受信する(ステップS33)。次に、制御CPU30は、チャネル番号CH5に対応する交換鍵Kxの保存先ADD2を指定し、その指定領域ADD2に保持された交換鍵Kxを選択する(ステップS34)。これにより、通信対象のノードCの暗号化に使用されるコンテンツ鍵Kcと同一のコンテンツ鍵KcをノードB内に設定することができる。このように、通信対象の切り替えが行われた場合に、先のステップS8,S9で予め取得しておいた交換鍵Kxを選択して使用することにより、認証処理及び鍵交換処理を行うことなく、所望の交換鍵Kxの設定をすることができる。このため、通信の切り替え時間を大幅に短縮することができる。
【0038】
次に、トポロジの変化やノイズの発生などによりバスリセットが発生した場合のノードBの認証・鍵交換処理の方法を図7に従って説明する。
今、ノードB,C間でデータ転送が行われているときに、ノードA〜D(図2参照)にバスリセットが発生すると(ステップS41)、ステップS42〜S45において、図3のステップS2〜S5と同様の処理が行われる。
【0039】
このとき、上記バスリセットがバスにノイズが乗ったことによるものであり、トポロジに変化がない場合であっても、各ノードのノードIDはバスリセット前のノードIDから変わる可能性がある。一方、チャネル番号については、規格上、バスリセットから所定時間(例えば1秒)以内にバスのコンフィグレーションが終了した場合には、バスリセット前に確保していたチャネル番号をそのまま使用するように定められている。ここで、バスケーブルにノイズが乗ってバスリセットが発生した場合には、バスリセットから約0.6〜0.7秒でバスのコンフィグレーションが終了する。このため、ノイズによってバスリセットが発生した場合には、そのバスリセット前後でチャネル番号が変化しない。本実施形態では、このようにバスリセット前後でチャネル番号が変化しないことを利用して、メモリ31のデータベースDBに記憶されたノードIDを更新することにより、ノイズによってバスリセットが発生した場合における認証処理を省略するようにしている。
【0040】
具体的には、ステップS46において、各受信機器(ノードB,D)の制御CPU30は、上記ステップS43〜S45で取得した情報(セルフIDパケット、コンフィグレーションROMなど)に基づいて、バスに接続されているノード数及び接続状態がバスリセット前と同じか否かを判定する。このとき、バスに接続されているノード数及び接続状態のいずれかが変化している場合には(ステップS46においてNO)、バスリセット前とトポロジが変化しているため、ノードA,Cのチャネル番号も変化する可能性がある。このようにチャネル番号が変わると、上述したようにノードIDもバスリセット前と変わるため、先のステップS8,S9の認証・鍵交換処理において取得した交換鍵Kxがどの送信機器(チャネル番号又はノードID)に対応するものであるかが不明となる。従って、このような場合には、図3のステップS6〜S10の処理を再度実行し、新たに取得した交換鍵Kxとチャネル番号CHとノードIDとを対応付けたデータベースを作成し直す。
【0041】
一方、ステップS46において、バスに接続されているノード数及び接続状態がバスリセット前と同じである場合には(ステップS46においてYES)、制御CPU30(判定部)は、バスリセット前後でトポロジに変化がないと判断する。換言すると、制御CPU30は、先のステップS41のバスリセットがノイズによるものと判断し、ノードA,Cのチャネル番号に変化がないと判断してステップS47に移る。続いて、ステップS47において、制御CPU30は、送信機器であるノードA,CのノードIDがバスリセット前と変化したか否かを判定する。すなわち、制御CPU30は、メモリ31のデータベースDBにおけるチャネル番号CHとノードIDとの対応関係と、現在のノードA,Cにおけるチャネル番号CHとノードIDとの対応関係とを比較して変化があるか否かを判定する。具体的には、チャネル番号CHがバスリセット前後で変化していないため、チャネル番号CHに対応するノードIDがバスリセット前後で変化したか否かを判定する。
【0042】
そして、制御CPU30は、送信機器のノードIDがバスリセット前から変化したことを検出すると(ステップS47においてNO)、メモリ31のデータベース内のノードIDを現在のノードIDに更新する(ステップS48)。このように更新されたノードIDを転送先のノードIDとして用いることにより、コンテンツ・キー・リクエストやAV/Cコマンドを所望(通信対象)の送信機器(ここでは、ノードC)に対して行うことができる。このため、ノードBは、送信対象のノードCにて使用される公開鍵Ncを正確に受信することができる。なお、このとき、ノードBの制御CPU30によって、現在(バスリセット前から)受信中のチャネル番号CH5に対応する交換鍵Kxの保存先ADD2が指定され、その指定領域に保持された交換鍵Kxが選択されている(図5のステップS24参照)。これにより、通信対象のノードCと同一のコンテンツ鍵KcがノードB内に設定される(図5のステップS25参照)。
【0043】
このため、ノードBは、ノードID(データベースDB)の更新が終了すると、ノードCから送信されるデータ(暗号化データ)の受信が再開される(ステップS49)。なお、ステップS47において、各送信機器のノードIDがバスリセット前後で変化していない場合には、ステップS48の処理を行うことなくデータの受信が再開される。
【0044】
これにより、ノイズによってバスリセットが発生したとしても、認証処理及び鍵交換処理を行うことなく、データの受信を再開することができる。従って、ノイズによってバスリセットが発生した場合におけるデータ受信の中断時間を大幅に短縮することができる。
【0045】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)交換鍵Kxの保存先と、チャネル番号CHと、ノードIDとを対応付けてデータベースDBに記憶するようにした。ここで、チャネル番号CHは、ノイズによってバスリセットが発生した場合には、そのバスリセットの前後で変化しない。このため、データ受信中にノイズによってバスリセットが発生したとしても、コンフィグレーションROMの読み出し(ステップS45)さえ終了すれば、チャネル番号を基準にしてノードIDがバスリセット前後でどのように変化したかが分かる。すなわち、バスに接続されたノード数及び接続状態を認識してトポロジに変化がないことさえ確認できれば、チャネル番号を基準にしてノードIDがバスリセット前後でどのように変化したかが分かる。
【0046】
そして、このノードIDの変化情報に基づいてデータベースDB内のノードIDを更新し、その更新後のノードIDを用いてコンテンツ・キー・リクエストを行うことにより、現在受信中のチャネル番号の送信機器から正確に公開鍵Ncを取得することができる。さらに、現在受信中のチャネル番号CHに対応する交換鍵Kxを選択して使用することにより、通信対象の送信機器と同一のコンテンツ鍵Kcを受信機器内に設定することができる。以上のことから、本実施形態の受信機器によれば、データ通信中にノイズによってバスリセットが発生したとしても、認証処理及び鍵交換処理を再度行うことなく、データの受信を再開することができる。従って、ノイズによってバスリセットが発生した場合におけるデータ受信の中断時間を大幅に短縮することができる。
【0047】
(2)ノードA〜Dの電源投入時に、全ての受信機器が全ての送信機器との間で認証・鍵交換処理を行って、全ての送信機器の交換鍵Kxを予め保持するようにした。これにより、通信相手を切り替えるたびに認証・鍵交換処理を行う必要がなくなるため、通信の切り替えを迅速に行うことができる。
【0048】
(3)交換鍵記憶部23の初期値を乱数にした。これにより、その初期値が交換鍵Kxとして悪用されたとしても、交換鍵Kxの正しい値が推測されることが効果的に抑制される。従って、クラッキングに対する安全性を向上させることができる。
【0049】
(4)交換鍵記憶部23に保持された交換鍵Kxを制御CPU30から直接読めないようにした。これにより、クラッキングに対する安全性を向上させることができる。
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
【0050】
・上記実施形態では、制御CPU30がチャネル番号CHに基づいてどの交換鍵Kxを使用するか選択する。これに限らず、例えば受信中のチャネル番号CHに基づいて、交換鍵記憶部23に保持している交換鍵Kxの中から使用する交換鍵Kxを自動的に選択するようにしてもよい。すなわち、図8に示すように、交換鍵記憶部23に、交換鍵Kxと併せてその交換鍵Kxに対応するチャネル番号CHを記憶する。さらに、受信中のチャネル番号CHを選択信号として出力側セレクタS2に入力し、出力側セレクタS2がその受信中のチャネル番号CHに対応する交換鍵Kxを選択するようにしてもよい。これにより、受信機器(ノードB)において受信するチャネル番号CHを選択するだけで、出力側セレクタS2によって自動的にそのチャネル番号CHに対応する交換鍵Kxを選択することができる。従って、受信するチャネル番号CHが切り替わっても、自動的に交換鍵Kxの選択を追随させることができる。
【0051】
・上記実施形態におけるコンテンツ鍵保持部26を省略してもよい。この場合、演算回路25にて演算され作成されたコンテンツ鍵Kcを直接復号回路27に出力する。
・上記実施形態では、交換鍵記憶部23の初期値を乱数にしたが、例えば交換鍵記憶部23の初期値をオール0やオール1にしてもよい。
【0052】
・上記実施形態における交換鍵記憶部23の記憶領域に特に制限はない。すなわち、交換鍵記憶部23の記憶領域は、システム全体の仕様により決定すればよい。例えばIEEE1394規格では、1つのバスに流すことのできるチャネル番号の最大値が64である。このため、上記実施形態のように64つの交換鍵Kxを格納できる場合には、1台の送信機器が1種類のデータを流すシステムを考えると、64台分の送信機器に対応する交換鍵Kxを交換鍵記憶部23に格納することができる。これに対し、例えばバスに接続される送信機器が少ないことが予め決まっている場合などには、交換鍵記憶部23の記憶領域を減らすようにしてもよい。
【0053】
・上記実施形態では、受信機器(ノードB,D)に、鍵交換処理にて取得した全ての送信機器(ノードA,C)の交換鍵Kxを保持するようにした。この交換鍵Kxに限らず、コンテンツ鍵Kc(暗号化鍵)の生成に必要な鍵(第1の鍵)であれば特に制限されない。例えば交換鍵Kxの代わりに認証鍵Kauthと暗号化交換鍵Ksxを保持するようにしてもよい。なお、この場合、制御CPU30は、認証鍵Kauth及び暗号化交換鍵Ksxの少なくとも一方の保存先と、チャネル番号CHと、ノードIDとを対応付けてデータベースDBに記憶する。あるいは、交換鍵Kxと併せて認証鍵Kauthを保持するようにしてもよい。
【0054】
・上記実施形態では、交換鍵Kxと、チャネル番号CHと、ノードID(識別情報)とを対応付けてデータベースDBに記憶するようにした。これに限らず、チャネル番号に代えて例えばノード固有IDを、交換鍵KxとノードIDと対応付けてデータベースDBに記憶するようにしてもよい。すなわち、交換鍵KxとノードIDと対応付けて記憶される値は、バスの初期化に伴って変化しない値であって送信元(ここでは、ノードA,C)に対応する情報(第1の情報)であれば特に制限されない。換言すると、交換鍵KxとノードIDと対応付けて記憶される値は、バスリセット前後で変化しない値であって送信機器を特定可能な固定値であれば特に制限されない。
【0055】
・上記実施形態では、1つの交換鍵Kxと、1つのチャネル番号CHと、1つのノードIDとを対応付けてデータベースDBに記憶するようにした。ところで、送信機器の機能によっては、2つのチャネル番号CHを使ってデータを送信する場合があるが、その場合には、2つのチャネル番号CHで同一の交換鍵Kxを用いて送信される。このため、このような場合には、制御CPU30は、1つの交換鍵Kxに対して、2つのチャネル番号CHと、1つのノードIDとを対応付けてデータベースDBに記憶するようにしてもよい。
【0056】
・上記実施形態では、送信機器へのコンテンツ・キー・リクエストを制御CPU30が行うようにした。これに限らず、IPC20(例えば認証・鍵交換部22)がコンテンツ・キー・リクエストを行うようにしてもよい。また、制御CPU30をIPC20に含めて1チップのLSIにて形成するようにしてもよい。
【0057】
・上記実施形態では、AV/Cプロトコルに従って、アイソクロナスリソースマネージャによりリソース管理を厳密に行うようにした。これに限らず、例えばバス上にサイクルマスタが存在し、送信機器(ノードA,C)のチャネル番号CHが固定される場合には厳密にリソース管理を行う必要はない。すなわち、送信機器のチャネル番号CHが固定される場合には図3のステップS6,S7が省略される。なお、この場合には、バスリセットが発生したとしても、トポロジの変化の有無に関わらず送信機器のチャネル番号CHは変化しない。
【0058】
このため、ノードの追加などによりバスリセット前後でトポロジが変化したとしても、元々トポロジ内に存在したノードについては、バスリセット前後で変化しないチャネル番号を基準にして、ノードIDがどのように変化したかが分かる。従って、データベースDB内のノードIDを更新することにより、バスリセット前に認証・鍵交換処理が完了している機器間では、バスリセット後に認証・鍵交換処理を再度行うことなく、データの受信を開始することができる。すなわち、バスリセット後には、新たに追加されたノードとの間のみで認証・鍵交換処理を行えば足りる。
【0059】
なお、ノードの物理的な切断などによってバスリセット前後でトポロジ内のノード数が減った場合にも、上記同様にノードIDを更新することができる。また、メモリ31に記憶しているバスリセット前のノード情報とバスリセット後のノード情報に基づき、どのノードが物理的に切断されたかが分かるため、その切断されたノード情報をデータベースDBなどから削除する。これにより、バスリセット後に認証・鍵交換処理を再度行うことなく、データの受信を開始することができる。
【0060】
・上記実施形態では、ノードA〜Dの電源投入時に、全ての受信機器が全ての送信機器との間で認証・鍵交換処理を行って、全ての送信機器の交換鍵Kxを予め保持しておくようにした。これに限らず、受信機器は、電源投入時ではなく、例えば通信の切り替えなどによって所定の送信機器とはじめに認証・鍵交換処理を行ったときに、その所定の送信機器の交換鍵Kxを保持するようにしてもよい。これにより、それ以降に通信対象として上記所定の送信機器を選択したときに、再度の認証・鍵交換処理を行うことなく、データの受信を開始することができる。このため、通信の切り替え時間を短縮することができる。
【0061】
・図9に示されるように、認証処理において受信機器(ここでは、ノードB)及び送信機器(ここでは、ノードA)に共有された認証鍵Kauthを受信機器と送信機器の双方で保持するようにしてもよい。これにより、一旦認証の完了した機器間で再度の認証処理を行うことなく、RTT測定処理を実行することができる。この点について以下に詳述する。
【0062】
まず、RTT測定処理について簡単に説明する。近年、コンテンツ保護のために、暗号化通信では送信機器と受信機器との接続範囲の制限を求めている。すなわち、送信機器と受信機器とのパケット往復時間(Round Trip Time:RTT)を測定し、そのRTTが制限時間以下である場合にのみ、送信機器は受信機器にデータを送信できる。ここで、RTTとは、送信機器からRTTコマンドが受信機器に対して送信されてから、受信機器が当該コマンドに対する応答パケットを送信機器に対して送信し、その応答パケットを送信機器が受信するまでの時間のことである。なお、上記RTTコマンド及び応答パケットは、認証処理時に送信機器及び受信機器間で共有される認証鍵Kauthを用いて生成される。このため、送信機器と受信機器の双方に認証鍵KauthがなければRTT測定処理を実行することができない。従って、認証・鍵交換処理によって交換された交換鍵Kxを受信機器で保持したとしても、その認証・鍵交換処理後に再度RTT測定処理を実行する必要が生じた場合には、認証鍵Kauthを取得するために再度認証処理を行う必要がある。
【0063】
そこで、図9に示すように、受信機器と送信機器の双方で認証鍵Kauthを保持することにより、認証・鍵交換処理後に再度RTT測定処理を実行する場合に、認証処理を省略するようにしてもよい。すなわち、受信機器であるノードBのコピープロテクション(DTCP)部28は、送信機器であるノードAとの間で認証が成功し、ノードAとの間で共有した認証鍵Kauthを認証鍵記憶部29に格納する。なお、このDTCP部28は、認証処理、RTT測定処理、鍵交換処理及びコンテンツ鍵Kcの作成を実行する。また、制御CPU30は、その認証鍵Kauthの保存先と、ノードAのチャネル番号CHと、ノードAのノードIDとを対応付けてメモリ31のデータベースDBに記憶する。
【0064】
一方、送信機器であるノードAは、ノードBと同様に、ポート50a,50bと、IEEE1394プロトコルコントローラ(IPC)60と、制御CPU70と、エンコーダ80とを備える。IPC60は、IEEE1394コントローラ部61と、DVDプレーヤーなどであるエンコーダ80からのデータ(例えばMPEGデータ)を暗号化する暗号回路67と、DTCP部68と、認証鍵記憶部69とを備える。DTCP部68は、ノードBとの間で共有した認証鍵Kauthを認証鍵記憶部69に格納する。なお、このDTCP部68は、認証処理、RTT測定処理、鍵交換処理及びコンテンツ鍵Kcの作成を実行する。
【0065】
このように構成されたノードA,B間で行われるRTT測定処理について図10に従って説明する。
今、ノードA,B間では一度認証・鍵交換処理及びRTT測定処理が完了され、その認証処理時に共有された認証鍵KauthがノードA,Bの認証鍵記憶部29,69に保持されている。このとき、例えばバスリセットの発生後にノードA,B間でRTT測定処理を実行する要求があると、受信機器であるノードBの制御CPU30は、チャネル番号を基準にしてデータベースDBのノードIDを更新する(図7のステップS50)。続いて、制御CPU30(要求部)は、更新後のノードIDに基づいて、測定対象であるノードAに対して接続要求を通知する(ステップS61)。ノードAの制御CPU70(読み出し部)は、その接続要求に応じてその接続要求の送信元であるノードBに対応する認証鍵Kauthを認証鍵記憶部69から読み出す(ステップS62)。なお、ノードBでは、上記接続要求に伴って、ノードAに対応する認証鍵Kauthが認証鍵記憶部29から読み出される。
【0066】
続いて、ステップS63において、ノードA,BのDTCP部28,68によって、上記読み出した認証鍵Kauthを用いてRTT測定処理が実施される。具体的には、ノードAのDTCP部68は、上記読み出した認証鍵Kauthを用いてRTTコマンドを生成してノードBに送信する。ノードBのDTCP部28は、ノードAからのRTTコマンドを受信すると、認証鍵記憶部29から読み出した認証鍵Kauthを用いてRTTコマンドに対する応答パケットを生成する。そして、ノードBのDTCP部28は、生成した応答パケットをノードAに送信する。ノードAは、この応答パケットを受信すると、RTTコマンドを送信してから応答パケットを受信するまでの時間(RTT)が制限時間内であるかを判定し、RTTが制限時間内であればステップS64に移る。
【0067】
ステップS64において、ノードA,B間で上記認証鍵Kauthを用いて鍵交換処理が実施されノードA,B間で交換鍵Kxが共有され、さらにコンテンツ鍵Kcが共有される。これにより、ノードBにおいて、ノードAから送信されるデータの受信が開始される(ステップS65)。
【0068】
なお、はじめの認証・鍵交換処理において、ノードB(受信機器)で認証鍵Kauthと併せて交換鍵Kxを保持しておくことにより、上記ステップS64を省略することができる。
【0069】
・上記実施形態では、安全性を高めるために、制御CPU30から直接交換鍵記憶部23(又は、図9の受信機器側の認証鍵記憶部29)に保持された交換鍵Kx(認証鍵Kauth)の値を読めないようにした。これに限らず、例えば制御CPU30から交換鍵記憶部23(認証鍵記憶部29)に保持された交換鍵Kx(認証鍵Kauth)の値を直接読めるようにしてもよい。この場合、制御CPU30は、交換鍵記憶部23(認証鍵記憶部29)に、交換鍵Kx(認証鍵Kauth)と、チャネル番号CHと、ノードIDとを対応付けて記憶してもよい。このとき、メモリ31のデータベースDBを省略することでメモリ容量を低減することができる。
【0070】
(第2実施形態)
以下、本発明を具体化した第2実施形態について説明する。
上述したようなノイズによるバスリセットが発生しても、認証処理を再度行うことなく、データの受信を再開できるという効果は、ノイズに対する耐性が要求される車載用途の機器に適用した場合により顕著なものとなる。ここでは、IEEE1394規格を車載用途で使用する場合(IDB−1394規格)に利便性が向上する追加機能や認証・鍵交換処理のタイミングについて図11〜図13に従って説明する。
【0071】
図11は、IEEE1394の車載規格であるIDB−1394規格に準拠したシステム構成を示す。ナビゲーション装置90はIDB−1394バスケーブル2aを介して後席ディスプレイ91と接続され、後席ディスプレイ91はIDB−1394バスケーブル2bを介して後席ディスプレイ92に接続されている。ナビゲーション装置90は送信機器及び受信機器として機能し、後席ディスプレイ91,92は受信機器として機能する。これらナビゲーション装置及び後席ディスプレイ91,92は、IDB−1394機器(ノード)であり、上記実施形態のノードB,Dと同様の構成を備える。また、ナビゲーション装置90は、制御の中心となる制御ノードであり、バスに接続された機器の情報を登録(記憶)するデータベース90aを備えている。
【0072】
また、ナビゲーション装置90は、鍵制御用ECU93と接続されている。この鍵制御用ECU93は、アンテナと接続され、無線機能を持ち自動車の施錠・解錠を行う鍵が所定範囲内に近づくと、その鍵の接近を検知する。鍵制御用ECU93は、鍵の接近を検知すると、認証処理を開始させるための認証開始信号をナビゲーション装置90に出力する。
【0073】
なお、これらナビゲーション装置90、後席ディスプレイ91,92及び鍵制御用ECU93は全て自動車に搭載されている。
このようなネットワークシステムにおける初期設定の機器登録方法について図12に従って説明する。
【0074】
上記ナビゲーション装置90などのIDB−1394機器は、通常は車両メーカの工場で取り付けたり、ディーラー(販売店)などで取り付けたりするだけである。このため、自動車に取り付けられたIDB−1394機器の台数は、自動車が車両オーナーに引き渡された後では、故障が起きて減る以外は、通常は変動することがない。すなわち、自動車の製造完了時や自動車が車両オーナーに引き渡された時などで、バスに接続される機器の接続台数が明確になる。この接続台数を記憶し、それ以降はその接続台数を基準に認証等を行うようにすることで、受信機器は最大の送信機器の台数を毎回認識する必要がなくなる。さらに、上記接続台数と接続状態を記憶しておくことにより、IDB−1394機器に何らかの異常(IDB−1394機器の故障やバスケーブルの断線等)が発生したときに、その異常を検知することができる。
【0075】
そこで、図12に示すように、自動車の製造完了後(ステップS71)、アクセサリーオンやエンジンの起動等によって全てのIDB−1394機器90,91,92が起動したときに(ステップS72)、ユーザが制御ノードであるナビゲーション装置90を操作して認識処理を指示する(ステップS73)。例えば、ナビゲーション装置90のシステム管理表示などに、「接続機器を認識する」といったアイコンやボタンを持たせ、ユーザがそのアイコンなどを操作したときに認識処理が指示される。
【0076】
上記認識処理が指示されると、ナビゲーション装置90は、バスに接続されている全ての他のIDB−1394機器(後席ディスプレイ91,92)のセルフIDパケットを読み出すことにより接続台数を認識する。さらに、ナビゲーション装置90は、全ての他のIDB−1394機器91,92のコンフィグレーションROMを読み出すことにより各機器の接続状態を認識する。そして、ナビゲーション装置90(の制御CPU30)は、認識した接続台数及び接続状態をデータベース90aに記憶する(ステップS74)。
【0077】
なお、このデータベース90aへの登録は、ディーラー等に自動車が運搬されるタイミングで行ってもよく、ディーラーでの設定終了時に行ってもよい。あるいは、車両オーナーがはじめてエンジンを起動したときに行ってもよく、車両オーナー自身がIDB−1394機器を新たに追加した後に行ってもよい。
【0078】
次に、ナビゲーション装置90における異常検知方法を図13に従って説明する。
今、鍵制御用ECU93が待機状態であるときに(ステップS81)、車両オーナーが無線機能を持った鍵を持って所定範囲内に近づくと、鍵制御用ECU93がその鍵の接近を検知する(ステップS82)。すると、鍵制御用ECU93は、認証開始信号をIDB−1394機器(ここでは、ナビゲーション装置90)に出力する(ステップS83)。この認証開始信号に応答して、ナビゲーション装置90を起点にして全てのIDB−1394機器(ナビゲーション装置90及び後席ディスプレイ91,92)が起動される(ステップS84)。
【0079】
すると、ナビゲーション装置90及び後席ディスプレイ91,92のIEEE1394コントローラ部21(図1参照)によってバスリセットが発生される(ステップS85)。続いて、ツリー状のトポロジが形成されノードIDが決定されると、各IDB−1394機器90,91,92からセルフIDパケットがブロードキャスト送信される(ステップS86)。これにより、バスに接続されたIDB−1394機器の接続台数を認識することができる。次に、ナビゲーション装置90及び後席ディスプレイ91,92は、他の機器のコンフィグレーションROMやプラグコントロールレジスタを読み出す(ステップS87)。これにより、バスに接続されたIDB−1394機器の接続状態を認識することができる。
【0080】
次いで、ステップS88において、ナビゲーション装置90の制御CPU30(図1参照)は、ステップS86,S87にて取得した接続台数と接続状態が上記データベース90aに記憶した接続台数と接続状態と一致しているか否かを判定する。このとき、データベース90aに記憶した接続台数及び接続状態と一致しない場合には(ステップS88においてNO)、ナビゲーション装置90の制御CPU30(異常検知部)は、バスに接続されたIDB−1394機器に異常が発生したことを検知する(ステップS89)。すなわち、ナビゲーション装置90は、接続台数及び接続状態がデータベース90aの内容と一致しない場合(例えば接続台数が減っている場合)には、バスに接続されたIDB−1394機器の故障やバスケーブルの断線などの異常が発生したと判断する。なお、このように異常が検知された場合には、例えばナビゲーション装置90の画面に「ディーラーに相談するように」等の指示を表示することにより、ユーザにその異常の発生を通知する。このように、自動車の製造完了時などにデータベース90aに機器の登録を行うことにより、IDB−1394機器の異常を検知することができるようになる。
【0081】
一方、ステップS88において、接続台数及び接続状態がデータベース90aの内容と一致している場合には(ステップS88においてYES)、図3のステップS6〜S10の処理を実行する。すなわち、IDB−1394機器に異常がない場合には、自動車の施錠・解錠を行う鍵が自動車に近づいたときに、全ての受信機器によって全ての送信機器との間で認証・鍵交換処理が行われ、全ての送信機器の交換鍵Kxが予め保持される。これにより、認証・鍵交換処理の開始からユーザがデータの受信開始を指示するまでに時間の余裕ができるため、受信開始の指示があってから迅速にデータの受信を開始することができる。すなわち、データの受信開始が遅いということをユーザに意識させることなく、データの受信を開始することができる。
【0082】
なお、データ通信中にノイズによってバスリセットが発生した場合には、図7で説明したステップS41〜S49と同様の処理が実行される。
以上詳述したように、本実施形態によれば、以下の効果を奏する。
【0083】
(1)自動車の製造完了時に、バスに接続されるIDB−1394機器の接続台数及び接続状態をデータベース90aに記憶するようにした。これにより、それ以降はデータベース90aに記憶した接続台数を基準に認証等を行うようにすることで、受信機器は最大の送信機器の台数を毎回認識する必要がなくなる。また、IDB−1394機器を起動する度に、その時の接続台数及び接続状態とデータベース90aの内容を比較することにより、IDB−1394機器に異常が発生したことを検知することができる。
【0084】
(2)自動車の施錠・解錠を行う鍵が近づいたときに、全ての受信機器が全ての送信機器との間で認証・鍵交換処理を行って、全ての送信機器の交換鍵Kxを予め保持するようにした。これにより、データの受信開始が遅いということをユーザに意識させることなく、データの受信を開始することができる。
【0085】
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記第2実施形態では、認証・鍵交換処理のタイミングを、自動車の施錠・解錠を行う鍵が自動車に近づいたときにした。これに限らず、認証・鍵交換処理を行っても、その認証・鍵交換処理を行っている時間がユーザに比較的ストレスにならないタイミングで、認証・鍵交換処理を行うようにしてもよい。例えばアクセサリーオンのタイミング、エンジン起動のタイミング、自動車のドアの鍵を解錠したタイミングや自動車のドアを物理的に開けたタイミングで、IDB−1394機器を起動して認証・鍵交換処理を行うようにしてもよい。
【0086】
・上記第2実施形態では、無線機能を持つ鍵に対応する鍵制御用ECU93に具体化したが、無線機能を持たない鍵のみに対応する鍵制御用ECUに具体化してもよい。なお、この場合、自動車の鍵穴に鍵を指してドアの鍵を解錠したタイミングで、IDB−1394機器を起動して認証・鍵交換処理を行うようにしてもよい。
【0087】
・上記実施形態では、ナビゲーション装置90がデータベース90aを備えるようにしたが、これに限らず、例えば後席ディスプレイ91,92がデータベース90aを備えるようにしてもよい。
【0088】
以上の様々な実施の形態をまとめると、以下のようになる。
(付記1)
送信元との間の認証に基づいて生成される第1の鍵と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けて記憶する記憶部と、
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記記憶部に記憶した前記第1の情報に対応する識別情報を有する送信元から公開鍵を取得する取得部と、
前記第1の情報と対応する第1の鍵と前記公開鍵とに基づいて、前記送信元から送信されるデータの暗号化/復号化に用いる暗号化鍵を生成する演算部と、
を備えることを特徴とする通信装置。
(付記2)
送信元との間の認証に基づいて生成される第1の鍵を記憶する記憶部と、
前記第1の鍵の保存先と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けてデータベースに記憶する制御部と、
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記記憶部に記憶した前記第1の情報に対応する識別情報を有する送信元から公開鍵を取得する取得部と、
前記第1の情報に対応する第1の鍵と前記公開鍵とに基づいて、前記送信元から送信されるデータの暗号化/復号化に用いる暗号化鍵を生成する演算部と、
を備えることを特徴とする通信装置。
(付記3)
前記第1の情報は、前記送信元のアイソクロナスチャネル番号であり、
受信中のアイソクロナスチャネル番号に対応する第1の鍵を前記記憶部から選択する選択部を備えることを特徴とする付記1又は2に記載の通信装置。
(付記4)
前記記憶部は、前記第1の鍵と対応付けて前記送信元のアイソクロナスチャネル番号を記憶し、
受信中のアイソクロナスチャネル番号を選択信号として入力し、該アイソクロナスチャネル番号に対応する第1の鍵を前記記憶部から選択する選択部を備えることを特徴とする請求項2に記載の通信装置。
(付記5)
前記第1の情報は、前記送信元のアイソクロナスチャネル番号であり、
前記制御部にて生成される、受信中のアイソクロナスチャネル番号に対応する第1の鍵の保存先を指定する選択信号に基づいて、受信中のアイソクロナスチャネル番号に対応する第1の鍵を前記記憶部から選択する選択部を備えることを特徴とする付記2に記載の通信装置。
(付記6)
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記第1の情報を基準にして前記記憶部又は前記データベースに記憶した前記識別情報を更新する更新部を備えることを特徴とする付記1〜5のいずれか1つに記載の通信装置。
(付記7)
前記接続状態の初期化前後でトポロジが変化したか否かを判定する判定部と、を備え、
前記更新部は、前記バスリセット前後でトポロジが変化していないときに、前記識別情報の更新を行うことを特徴とする付記6に記載の通信装置。
(付記8)
前記判定部は、バスに接続される機器の台数及び接続状態がバスリセット前後で変化したか否かを判定することにより、トポロジが変化したか否かを判定することを特徴とする付記7に記載の通信装置。
(付記9)
前記記憶部は、バスに接続される全ての送信機器に対応する第1の鍵を記憶することを特徴とする付記1〜8のいずれか1つに記載の通信装置。
(付記10)
前記第1の鍵が記憶される記憶領域の初期値が乱数であることを特徴とする付記1〜9のいずれか1つに記載の通信装置。
(付記11)
前記認証を、電源投入時に、バスに接続される全ての送信機器に対して行うことを特徴とする付記1〜10のいずれか1つに記載の通信装置。
(付記12)
前記第1の鍵は、交換鍵であることを特徴とする付記1〜11のいずれか1つに記載の通信装置。
(付記13)
当該通信装置はIDB−1394規格に準拠したIDB−1394機器であり、
バスに接続されるIDB−1394機器の接続台数及び接続状態を記憶する機器登録データベースを備えることを特徴とする付記1〜12のいずれか1つに記載の通信装置。
(付記14)
電源投入時に、そのときのバスに接続されるIDB−1394機器の接続台数及び接続状態が前記機器登録データベースに記憶された内容と一致しているか否かを判定する異常検知部を備えることを特徴とする付記13に記載の通信装置。
(付記15)
前記認証を、無線機能を持ち自動車の施錠・開錠を行う鍵が所定範囲内に近づいたとき、又はアクセサリーオンしたとき、又はエンジンを起動したとき、又は自動車のドアを開錠したとき、又は自動車のドアを物理的に開けたときに、バスに接続される全ての送信機器に対して行うことを特徴とする付記13又は14に記載の通信装置。
(付記16)
送信元との間の認証に基づいて生成される第1の鍵と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けて記憶部に記憶するステップと、
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記記憶部に記憶した前記第1の情報に対応する識別情報を有する送信元から公開鍵を取得するステップと、
前記第1の情報と対応する第1の鍵と前記公開鍵とに基づいて、前記送信元から送信されるデータの暗号化/復号化に用いる暗号化鍵を生成するステップと、
を備えることを特徴とするデータの通信方法。
(付記17)
送信元との間の認証に基づいて共有される認証鍵と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けて記憶する第1記憶部を備える第1通信装置と、
送信先との間の認証に基づいて共有される認証鍵を記憶する第2記憶部を備える第2通信装置と、を備え、
前記第1通信装置は、前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記記憶部に記憶した前記第1の情報に対応する識別情報を有する送信元に対して接続要求を行う要求部を備えることを特徴とするネットワークシステム。
(付記18)
送信元との間の認証に基づいて共有される認証鍵を記憶する第1記憶部を備える第1通信装置と、
送信先との間の認証に基づいて共有される認証鍵を記憶する第2記憶部を備える第2通信装置と、を備え、
前記第1通信装置は、
前記認証鍵の保存先と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けてデータベースに記憶する制御部と、
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記データベースに記憶した前記第1の情報に対応する識別情報を有する送信元に対して接続要求を行う要求部と、を備えることを特徴とするネットワークシステム。
(付記19)
前記第2通信装置は、
前記送信先からの前記接続要求に応じて、その接続要求元に対応する認証鍵を前記第2記憶部から読み出す読み出し部と、
前記読み出された認証鍵を用いてRTTコマンドを生成するRTT処理部と、
前記第1通信装置は、
前記送信元からの前記RTTコマンドを受信したときに、前記第1記憶部に記憶された前記送信元に対応する認証鍵を用いて応答パケットを生成するRTT処理部と、を備えることを特徴とする付記17又は18に記載のネットワークシステム。
(付記20)
複数の暗号化鍵を記憶する記憶手段であって、
前記複数の暗号化鍵が記憶される記憶領域の初期値を乱数としたことを特徴とする記憶手段。
【図面の簡単な説明】
【0089】
【図1】受信機器を示すブロック図。
【図2】ネットワークシステムを示すブロック図。
【図3】認証・鍵交換処理を説明するためのフローチャート。
【図4】データベースを説明するための説明図。
【図5】データの受信処理を説明するためのフローチャート。
【図6】チャネル番号の切替処理を説明するためのフローチャート。
【図7】データの受信の再開処理を説明するためのフローチャート。
【図8】変形例における受信機器を示すブロック図。
【図9】変形例における送信機器と受信機器を示すブロック図。
【図10】RTT測定処理を説明するためのフローチャート。
【図11】第2実施形態のネットワークシステムを示すブロック図。
【図12】初期設定処理を説明するためのフローチャート。
【図13】異常検知方法を説明するためのフローチャート。
【図14】認証・鍵交換処理を説明するための説明図。
【符号の説明】
【0090】
A,C 送信機器(第2通信装置)
B,D 受信機器(第1通信装置)
22 認証鍵交換部
23 交換鍵記憶部(記憶部)
25 演算回路(演算部)
28,68 DTCP部(RTT処理部)
29 認証鍵記憶部(第1記憶部)
30 制御CPU
69 認証鍵記憶部(第2記憶部)
70 制御CPU
90 ナビゲーション装置(IDB−1394機器)
91,92 後席ディスプレイ(IDB−1394機器)
90a データベース(機器登録データベース)
DB データベース
S2 出力側セレクタ(選択部)
Kx 交換鍵(第1の鍵)
Kauth 認証鍵
Ksx 暗号化交換鍵
Nc 公開鍵
Kc コンテンツ鍵(暗号化鍵)

【特許請求の範囲】
【請求項1】
送信元との間の認証に基づいて生成される第1の鍵と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けて記憶する記憶部と、
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記記憶部に記憶した前記第1の情報に対応する識別情報を有する送信元から公開鍵を取得する取得部と、
前記第1の情報と対応する第1の鍵と前記公開鍵とに基づいて、前記送信元から送信されるデータの暗号化/復号化に用いる暗号化鍵を生成する演算部と、
を備えることを特徴とする通信装置。
【請求項2】
送信元との間の認証に基づいて生成される第1の鍵を記憶する記憶部と、
前記第1の鍵の保存先と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けてデータベースに記憶する制御部と、
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記記憶部に記憶した前記第1の情報に対応する識別情報を有する送信元から公開鍵を取得する取得部と、
前記第1の情報に対応する第1の鍵と前記公開鍵とに基づいて、前記送信元から送信されるデータの暗号化/復号化に用いる暗号化鍵を生成する演算部と、
を備えることを特徴とする通信装置。
【請求項3】
前記第1の情報は、前記送信元のアイソクロナスチャネル番号であり、
受信中のアイソクロナスチャネル番号に対応する第1の鍵を前記記憶部から選択する選択部を備えることを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記記憶部は、前記第1の鍵と対応付けて前記送信元のアイソクロナスチャネル番号を記憶し、
受信中のアイソクロナスチャネル番号を選択信号として入力し、該アイソクロナスチャネル番号に対応する第1の鍵を前記記憶部から選択する選択部を備えることを特徴とする請求項2に記載の通信装置。
【請求項5】
前記第1の鍵が記憶される記憶領域の初期値が乱数であることを特徴とする請求項1〜4のいずれか1つに記載の通信装置。
【請求項6】
前記認証を、電源投入時に、バスに接続される全ての送信機器に対して行うことを特徴とする請求項1〜5のいずれか1つに記載の通信装置。
【請求項7】
前記第1の鍵は、交換鍵であることを特徴とする請求項1〜6のいずれか1つに記載の通信装置。
【請求項8】
当該通信装置はIDB−1394規格に準拠したIDB−1394機器であり、
バスに接続されるIDB−1394機器の接続台数及び接続状態を記憶する機器登録データベースを備えることを特徴とする請求項1〜7のいずれか1つに記載の通信装置。
【請求項9】
送信元との間の認証に基づいて生成される第1の鍵と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けて記憶部に記憶するステップと、
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記記憶部に記憶した前記第1の情報に対応する識別情報を有する送信元から公開鍵を取得するステップと、
前記第1の情報と対応する第1の鍵と前記公開鍵とに基づいて、前記送信元から送信されるデータの暗号化/復号化に用いる暗号化鍵を生成するステップと、
を備えることを特徴とするデータの通信方法。
【請求項10】
送信元との間の認証に基づいて共有される認証鍵を記憶する第1記憶部を備える第1通信装置と、
送信先との間の認証に基づいて共有される認証鍵を記憶する第2記憶部を備える第2通信装置と、を備え、
前記第1通信装置は、
前記認証鍵の保存先と、前記送信元の識別情報と、接続状態の初期化に伴って変化しない値であって前記送信元に対応する第1の情報とを対応付けてデータベースに記憶する制御部と、
前記接続状態の初期化によって前記送信元の識別情報が変化した場合に、前記データベースに記憶した前記第1の情報に対応する識別情報を有する送信元に対して接続要求を行う要求部と、を備える
ことを特徴とするネットワークシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−147768(P2010−147768A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−322288(P2008−322288)
【出願日】平成20年12月18日(2008.12.18)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】