(57)【特許請求の範囲】
【請求項１】
定期的に１を加算することにより更新する時間変数を暗号鍵としてデータを暗号化する送信装置からの暗号化データを受信する受信装置において、
前記送信装置から前記時間変数を取得する取得手段と、
取得された前記時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された前記時間変数に１を加算することにより、前記ODD鍵または前記EVEN鍵の他方を生成する生成手段と、
前記ODD鍵および前記EVEN鍵を記憶する記憶手段と、
前記送信装置から送信された前記暗号化データを受信する受信手段と、
受信された前記暗号化データに付加されている、暗号化に用いられた暗号鍵が奇数であるか偶数であるかを示すフラグを読み取る読み取り手段と、
受信された前記暗号化データに付加されている前記フラグの変化を検出するとともに、前記フラグの変化が奇数を示すものから偶数を示すものへの変化であるのか、または偶数を示すものから奇数を示すものへの変化であるのかを検知する検知手段と、
前記フラグの変化が検出されたことに応じ、
前記フラグの変化が奇数を示すものから偶数を示すものへの変化であり、記憶されている前記ODD鍵の値の方が記憶されている前記EVEN鍵の値よりも小さい場合にのみ、記憶されている前記ODD鍵に２を加算することによって前記ODD鍵を更新し、
前記フラグの変化が偶数を示すものから奇数を示すものへの変化であり、記憶されている前記EVEN鍵の値の方が記憶されている前記ODD鍵の値よりも小さい場合にのみ、記憶されている前記EVEN鍵に２を加算することによって前記EVEN鍵を更新する更新手段と、
受信された前記暗号化データに付加されている前記フラグに対応し、記録されている前記ODD鍵または前記EVEN鍵を用いて、受信された前記暗号化データを復号する復号手段と
を含む受信装置。
【請求項２】
前記取得手段は、前記送信装置から定期的に前記時間変数を取得し、
前記生成手段は、さらに、定期的に取得された前記時間変数が、記録されている前記ODD鍵および前記EVEN鍵の何方とも一致しない場合、取得された前記時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された前記時間変数に１を加算することにより、前記ODD鍵または前記EVEN鍵の他方を生成する
請求項１に記載の受信装置。
【請求項３】
定期的に１を加算することにより更新する時間変数を暗号鍵としてデータを暗号化する送信装置からの暗号化データを受信する受信装置であって、
前記送信装置から前記時間変数を取得する取得手段と、
取得された前記時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された前記時間変数に１を加算することにより、前記ODD鍵または前記EVEN鍵の他方を生成する生成手段と、
前記ODD鍵および前記EVEN鍵を記憶する記憶手段と、
前記送信装置から送信された前記暗号化データを受信する受信手段と、
受信された前記暗号化データに付加されている、暗号化に用いられた暗号鍵が奇数であるか偶数であるかを示すフラグを読み取る読み取り手段と、
受信された前記暗号化データに付加されている前記フラグの変化を検出するとともに、前記フラグの変化が奇数を示すものから偶数を示すものへの変化であるのか、または偶数を示すものから奇数を示すものへの変化であるのかを検知する検知手段と、
前記フラグの変化が検出されたことに応じ、
前記フラグの変化が奇数を示すものから偶数を示すものへの変化であり、記憶されている前記ODD鍵の値の方が記憶されている前記EVEN鍵の値よりも小さい場合にのみ、記憶されている前記ODD鍵に２を加算することによって前記ODD鍵を更新し、
前記フラグの変化が偶数を示すものから奇数を示すものへの変化であり、記憶されている前記EVEN鍵の値の方が記憶されている前記ODD鍵の値よりも小さい場合にのみ、記憶されている前記EVEN鍵に２を加算することによって前記EVEN鍵を更新する更新手段と、
受信された前記暗号化データに付加されている前記フラグに対応し、記録されている前記ODD鍵または前記EVEN鍵を用いて、受信された前記暗号化データを復号する復号手段と
を備える受信装置の受信方法において、
前記取得手段による、前記送信装置から前記時間変数を取得する取得ステップと、
前記生成手段による、取得された前記時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された前記時間変数に１を加算することにより、前記ODD鍵または前記EVEN鍵の他方を生成する生成ステップと、
前記記憶手段による、前記ODD鍵および前記EVEN鍵を記憶する記憶ステップと、
前記受信手段による、前記送信装置から送信された前記暗号化データを受信する受信ステップと、
前読み取り手段による、受信された前記暗号化データに付加されている、暗号化に用いられた暗号鍵が奇数であるか偶数であるかを示すフラグを読み取る読み取りステップと、
前記検知手段による、受信された前記暗号化データに付加されている前記フラグの変化を検出するとともに、前記フラグの変化が奇数を示すものから偶数を示すものへの変化であるのか、または偶数を示すものから奇数を示すものへの変化であるのかを検知する検知ステップと、
前記更新手段による、前記フラグの変化が検出されたことに応じ、
前記フラグの変化が奇数を示すものから偶数を示すものへの変化であり、記憶されている前記ODD鍵の値の方が記憶されている前記EVEN鍵の値よりも小さい場合にのみ、記憶されている前記ODD鍵に２を加算することによって前記ODD鍵を更新し、
前記フラグの変化が偶数を示すものから奇数を示すものへの変化であり、記憶されている前記EVEN鍵の値の方が記憶されている前記ODD鍵の値よりも小さい場合にのみ、記憶されている前記EVEN鍵に２を加算することによって前記EVEN鍵を更新する更新ステップと、
前記復号手段による、受信された前記暗号化データに付加されている前記フラグに対応し、記録されている前記ODD鍵または前記EVEN鍵を用いて、受信された前記暗号化データを復号する復号ステップと
を含む受信方法。
【請求項４】
定期的に１を加算することにより更新する時間変数を暗号鍵としてデータを暗号化する送信装置からの暗号化データを受信するコンピュータを、
前記送信装置から前記時間変数を取得する取得手段と、
取得された前記時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された前記時間変数に１を加算することにより、前記ODD鍵または前記EVEN鍵の他方を生成する生成手段と、
前記ODD鍵および前記EVEN鍵を記憶する記憶手段と、
前記送信装置から送信された前記暗号化データを受信する受信手段と、
受信された前記暗号化データに付加されている、暗号化に用いられた暗号鍵が奇数であるか偶数であるかを示すフラグを読み取る読み取り手段と、
受信された前記暗号化データに付加されている前記フラグの変化を検出するとともに、前記フラグの変化が奇数を示すものから偶数を示すものへの変化であるのか、または偶数を示すものから奇数を示すものへの変化であるのかを検知する検知手段と、
前記フラグの変化が検出されたことに応じ、
前記フラグの変化が奇数を示すものから偶数を示すものへの変化であり、記憶されている前記ODD鍵の値の方が記憶されている前記EVEN鍵の値よりも小さい場合にのみ、記憶されている前記ODD鍵に２を加算することによって前記ODD鍵を更新し、
前記フラグの変化が偶数を示すものから奇数を示すものへの変化であり、記憶されている前記EVEN鍵の値の方が記憶されている前記ODD鍵の値よりも小さい場合にのみ、記憶されている前記EVEN鍵に２を加算することによって前記EVEN鍵を更新する更新手段と、
受信された前記暗号化データに付加されている前記フラグに対応し、記録されている前記ODD鍵または前記EVEN鍵を用いて、受信された前記暗号化データを復号する復号手段と
して機能させるプログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、受信装置および方法、並びに記録媒体に関し、特に、定期的に更新される暗号鍵を用いて暗号化されたデータを受信して復号する場合に用いて好適な受信装置および方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
最近、例えば、パーソナルコンピュータやデジタルビデオカメラ等、IEEE1394バスを介して相互にデータを通信することができる電子機器が開発されており、今後、そのような電子機器の種類が増加すると思われる。
【０００３】
そのような電子機器間でデータを通信する場合、IEEE1394バス上で通信されているデータが、IEEE1394バスに接続されている送信先以外の電子機器によって不正に傍受されて利用されることを抑止する必要がある。そこで、送信側においては、送信するデータに、所定の時間間隔（数秒乃至数十秒）で１ずつインクリメントする値を暗号鍵として暗号化を施し、暗号化されたデータ（以下、暗号化データと記述する）に、暗号化の際に用いた暗号鍵が奇数であるか偶数であるかを示すフラグ（ODD/EVENフラグ）を付加して送信し、さらに、暗号化データの通信とは非同期の任意のタイミングにおいて、暗号化に用いた暗号鍵としての数値を送信先である電子機器（受信側）だけに対して供給するようにしている。
【０００４】
【発明が解決しようとする課題】
ところで、上述したように、暗号化データと、それを暗号化した暗号鍵を非同期で通信した場合、受信側において、受信した暗号化データと、受信した暗号鍵が対応しないことがあり、その結果として、受信した暗号化データを復号できない事態が発生してしまう課題があった。
【０００５】
本発明はこのような状況に鑑みてなされたものであり、受信した暗号鍵を所定のアルゴリズムに従って更新することにより、暗号化データと非同期で受信した暗号鍵を用いて暗号化データを復号できるようにするものである。
【０００６】
【課題を解決するための手段】
本発明の受信装置は、送信装置から時間変数を取得する取得手段と、取得された時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された時間変数に１を加算することにより、ODD鍵またはEVEN鍵の他方を生成する生成手段と、ODD鍵およびEVEN鍵を記憶する記憶手段と、送信装置から送信された暗号化データを受信する受信手段と、受信された暗号化データに付加されている、暗号化に用いられた暗号鍵が奇数であるか偶数であるかを示すフラグを読み取る読み取り手段と、受信された暗号化データに付加されているフラグの変化を検出するとともに、フラグの変化が奇数を示すものから偶数を示すものへの変化であるのか、または偶数を示すものから奇数を示すものへの変化であるのかを検知する検知手段と、フラグの変化が検出されたことに応じ、フラグの変化が奇数を示すものから偶数を示すものへの変化であり、記憶されているODD鍵の値の方が記憶されているEVEN鍵の値よりも小さい場合にのみ、記憶されているODD鍵に２を加算することによってODD鍵を更新し、フラグの変化が偶数を示すものから奇数を示すものへの変化であり、記憶されているEVEN鍵の値の方が記憶されているODD鍵の値よりも小さい場合にのみ、記憶されているEVEN鍵に２を加算することによってEVEN鍵を更新する更新手段と、受信された暗号化データに付加されているフラグに対応し、記録されているODD鍵またはEVEN鍵を用いて、受信された暗号化データを復号する復号手段とを含む。
【０００７】
前記取得手段は、送信装置から定期的に時間変数を取得し、前記生成手段は、さらに、定期的に取得された時間変数が、記録されているODD鍵およびEVEN鍵の何方とも一致しない場合、取得された時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された時間変数に１を加算することにより、ODD鍵またはEVEN鍵の他方を生成するようにすることができる。
【０００８】
本発明の受信方法は、取得手段による、送信装置から時間変数を取得する取得ステップと、生成手段による、取得された時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された時間変数に１を加算することにより、ODD鍵またはEVEN鍵の他方を生成する生成ステップと、記憶手段による、ODD鍵およびEVEN鍵を記憶する記憶ステップと、受信手段による、送信装置から送信された暗号化データを受信する受信ステップと、前読み取り手段による、受信された暗号化データに付加されている、暗号化に用いられた暗号鍵が奇数であるか偶数であるかを示すフラグを読み取る読み取りステップと、検知手段による、受信された暗号化データに付加されているフラグの変化を検出するとともに、フラグの変化が奇数を示すものから偶数を示すものへの変化であるのか、または偶数を示すものから奇数を示すものへの変化であるのかを検知する検知ステップと、更新手段による、フラグの変化が検出されたことに応じ、フラグの変化が奇数を示すものから偶数を示すものへの変化であり、記憶されているODD鍵の値の方が記憶されているEVEN鍵の値よりも小さい場合にのみ、記憶されているODD鍵に２を加算することによってODD鍵を更新し、フラグの変化が偶数を示すものから奇数を示すものへの変化であり、記憶されているEVEN鍵の値の方が記憶されているODD鍵の値よりも小さい場合にのみ、記憶されているEVEN鍵に２を加算することによってEVEN鍵を更新する更新ステップと、復号手段による、受信された暗号化データに付加されているフラグに対応し、記録されているODD鍵またはEVEN鍵を用いて、受信された暗号化データを復号する復号ステップとを含む。
【０００９】
本発明の記録媒体は、送信装置から時間変数を取得する取得手段と、取得された時間変数をODD鍵またはEVEN鍵の一方とするとともに、取得された時間変数に１を加算することにより、ODD鍵またはEVEN鍵の他方を生成する生成手段と、ODD鍵およびEVEN鍵を記憶する記憶手段と、送信装置から送信された暗号化データを受信する受信手段と、受信された暗号化データに付加されている、暗号化に用いられた暗号鍵が奇数であるか偶数であるかを示すフラグを読み取る読み取り手段と、受信された暗号化データに付加されているフラグの変化を検出するとともに、フラグの変化が奇数を示すものから偶数を示すものへの変化であるのか、または偶数を示すものから奇数を示すものへの変化であるのかを検知する検知手段と、フラグの変化が検出されたことに応じ、フラグの変化が奇数を示すものから偶数を示すものへの変化であり、記憶されているODD鍵の値の方が記憶されているEVEN鍵の値よりも小さい場合にのみ、記憶されているODD鍵に２を加算することによってODD鍵を更新し、フラグの変化が偶数を示すものから奇数を示すものへの変化であり、記憶されているEVEN鍵の値の方が記憶されているODD鍵の値よりも小さい場合にのみ、記憶されているEVEN鍵に２を加算することによってEVEN鍵を更新する更新手段と、受信された暗号化データに付加されているフラグに対応し、記録されているODD鍵またはEVEN鍵を用いて、受信された暗号化データを復号する復号手段として機能させるプログラムが記録されている。
【００１０】
本発明においては、送信装置から時間変数が取得され、取得された時間変数がODD鍵またはEVEN鍵の一方とされるとともに、取得された時間変数に１を加算することにより、ODD鍵またはEVEN鍵の他方が生成され、ODD鍵およびEVEN鍵が記憶される。また、送信装置から送信された暗号化データが受信され、受信された暗号化データに付加されている、暗号化に用いられた暗号鍵が奇数であるか偶数であるかを示すフラグが読み取られ、受信された暗号化データに付加されているフラグの変化が検出されるとともに、フラグの変化が奇数を示すものから偶数を示すものへの変化であるのか、または偶数を示すものから奇数を示すものへの変化であるのかが検知される。さらに、フラグの変化が検出されたことに応じ、フラグの変化が奇数を示すものから偶数を示すものへの変化であり、記憶されているODD鍵の値の方が記憶されているEVEN鍵の値よりも小さい場合にのみ、記憶されているODD鍵に２を加算することによってODD鍵が更新され、反対に、フラグの変化が偶数を示すものから奇数を示すものへの変化であり、記憶されているEVEN鍵の値の方が記憶されているODD鍵の値よりも小さい場合にのみ、記憶されているEVEN鍵に２を加算することによってEVEN鍵が更新される。またさらに、受信された暗号化データに付加されているフラグに対応し、記録されているODD鍵またはEVEN鍵を用いて、受信された暗号化データが復号される。
【００１５】
【発明の実施の形態】
本発明を適用した情報通信システムの構成例について、図１を参照して説明する。このシステムは、デジタル衛星放送信号を受信するIRD(integrated Reciever and Decoder)１、および、入力されるATRAC(Adaptive Transform Acoustic Coding)データをMD(Mini Disc)（商標）に記録して再生するMDデッキ３がIEEE1394バス２を介して相互に接続されている。IEEE1394バス２には、他の電子機器（例えば、パーソナルコンピュータ(PC)４）も接続されている。
なお、ATRACデータとは、MDにオーディオデータを記録する場合に採用されている方式で圧縮符号化されたデータのことである。
【００１６】
このシステムにおいて、IRD１では、デジタル衛星放送信号に含まれるダウンロード（録音）可能なオーディオデータ（ATRACデータ）が受信され、暗号化されてIEEE1394バス２上に配信される。MDデッキ３では、IEEE1394バス２上に配信された、暗号化されたATRACデータが受信され、復号されてMDに記録される。
【００１７】
図２は、データ送信側としてのIRD１、および、データ受信側としてのMDデッキ３のデータ通信に係わる部分の詳細な構成例を示している。IRD１の制御回路１１は、内蔵するメモリに記録されているプログラムに従ってIRD１の全体を制御する。時間変数生成回路１２は、制御回路１１からの制御に基づいて、例えば、３０秒毎に１ずつインクリメントする時間変数を発生し、暗号鍵として暗号化回路１３に供給する。
【００１８】
暗号化回路１３は、IRD１のチューナ（不図示）から入力されるATRACデータを、時間変数生成回路１２から供給される暗号鍵を用いて暗号化し、得られた暗号化データに、用いた暗号鍵が奇数であるか偶数であるかを示すフラグ（ODD/EVENフラグ）を付加して、IEEE1394インタフェース(I/F)１４に出力する。IEEE1394インタフェース１４は、暗号化回路１３から入力される暗号化データ（ODD/EVENフラグ付き）を、内蔵するFIFOバッファに記録し、順次パケット化してIEEE1394バス２に出力する。また、IEEE1394インタフェース１４は、IEEE1394バス２に接続されている他の電子機器のIEEE1394インタフェース（例えば、MDデッキ３のIEEE1394インタフェース２２）からの認証要求に対応して、その電子機器が正当な（著作権が保護されているATRACデータを不正に利用しない）電子機器であるかを判定し、判定結果に対応して現在用いている暗号鍵を初期値として、IEEE1394バス２の非同期通信で当該電子機器に供給する。
【００１９】
MDデッキ３の制御回路２１は、内蔵するメモリに記録されているプログラムに基づき、IEEE1394インタフェース２２から入力される暗号化データのODD/EVENフラグに対応してMDデッキ３の全体を制御する。IEEE1394インタフェース２２は、IEEE1394バス２上に配信されているATRACデータを受信して、制御回路２１および復号回路２４に出力する。鍵生成回路２３は、制御回路２１による制御に基づいて、初期値として入力された暗号鍵を１ずつインクリメントすることにより、奇数の暗号鍵（ODD鍵）または偶数の暗号鍵（EVEN鍵）を交互に生成して復号回路２４に供給する。
【００２０】
復号回路２４は、鍵生成回路２３から供給されるODD鍵とEVEN鍵のうちの、IEEE1394インタフェース２２から入力される暗号化データのフラグに対応するものを用いて暗号化データを復号し、得られたATRACデータを後段に出力する。
【００２１】
図３は、図２の復号回路２４の詳細な構成例を示している。同図に示すように、復号回路２４において、鍵生成回路２３から供給されるODD鍵はODDレジスタ３１に書き込まれ、EVEN鍵はEVEN鍵レジスタに書き込まれる。デコーダ３４は、IEEE1394インタフェース２２から入力される暗号化データのフラグを読み取り、そのフラグに対応してスイッチ３３を切り換えて、フラグに対応する暗号鍵（ODD鍵またはEVEN鍵）を読み出し、当該暗号鍵を用いて暗号化データを復号する。
【００２２】
ところで、IRD１でATRACデータが暗号化されるタイミングに対する、復号回路２４に当該暗号化データが供給されるタイミングは、例えばIEEE1394インタフェース１４，２２における処理やIEEE1394バス２の通信帯域の混雑状況等に起因して遅延する。
【００２３】
この遅延について、図４を参照して説明する。例えば図４(A)に示すようなタイミングで時間変数生成回路１２が時間変数（暗号鍵）を更新した場合、暗号化回路１３から出力される暗号化データに付加されているフラグは、同図(B)に示すように、時間変数と同じタイミングで変化する。これに対し、当該暗号化データがIEEE1394バス２を介してMDデッキ３のIEEE1394インタフェース２２で受信され、復号回路２４に供給されるタイミングは、同図(C)に示すように、時間Ddだけ遅延する。
【００２４】
また、MDデッキ３のIEEE1394インタフェース２２からの要求に対応して、IRD１から現在用いている暗号鍵が初期値として非同期通信で返信されるタイミングに対する、当該初期値に基づいて生成されたODD鍵およびEVEN鍵が復号回路２４に供給されるタイミングは、例えばIEEE1394インタフェース１４，２２、および鍵生成回路２３における処理やIEEE1394バス２の通信帯域の混雑状況等に起因して、図５(D)乃至(F)に示す３種類の状態のうちのいずれかに示すように遅延する。
【００２５】
すなわち、図５(D)に示すように、タイミングts１において、IRD１のIEEE1394インタフェース１４から、現在用いている暗号鍵が初期値として返信され、タイミングtr１において、当該初期値に基づいて生成されたODD鍵およびEVEN鍵が復号回路２４に供給される場合（状態１）、図５(E)に示すように、タイミングts２において、IRD１のIEEE1394インタフェース１４から、現在用いている暗号鍵が初期値として返信され、タイミングtr２において、当該初期値に基づいて生成されたODD鍵およびEVEN鍵が復号回路２４に供給される場合（状態２）、図５(F)に示すように、タイミングts３において、IRD１のIEEE1394インタフェース１４から、現在用いている暗号鍵が初期値として返信され、タイミングtr３において、当該初期値に基づいて生成されたODD鍵およびEVEN鍵が復号回路２４に供給される場合（状態３）のうちのいずれかに示すように遅延する。なお、暗号鍵の初期値の通信は、上述したように非同期通信により行われるので、遅延時間Kd暗号化データの遅延時間Ddと等しいとは限らない。また、図５(A)乃至(C)は、図４(A)乃至(C)と同様であるので、その説明は省略する。
【００２６】
図５(D)に示した状態１の場合、タイミングtr１において、復号回路２４のODDレジスタ３１には初期値である暗号鍵（ODD鍵）Ｋ１が書き込まれ、同時にEVENレジスタ３２には暗号鍵（ODD鍵）Ｋ１を１だけインクリメントした暗号鍵（EVEN鍵）Ｋ２が書き込まれる。したがって、デコーダ３４に入力された暗号化データ（暗号鍵Ｋ１で暗号化されているデータ（図５(c)））のフラグ(ODD)に対応してスイッチ３３をODDレジスタ３１側に切り換えれば、正常に復号できる。それ以降の暗号化データのフラグが切り換わるタイミングにおいては、スイッチ３３を切り換えた後、読み出されていないレジスタの暗号鍵を更新するようにすれば、正常に復号が継続される。
【００２７】
図５(E)に示した状態２の場合、タイミングtr２において、復号回路２４のODDレジスタ３１には初期値である暗号鍵（ODD鍵）Ｋ１が書き込まれ、同時にEVENレジスタ３２には暗号鍵（ODD鍵）Ｋ１を１だけインクリメントした暗号鍵（EVEN鍵）Ｋ２が書き込まれる。したがって、デコーダ３４に入力された暗号化データ（暗号鍵Ｋ１で暗号化されているデータ（図５(c)））のフラグ(EVEN)に対応してスイッチ３３をEVENレジスタ３１側に切り換えれば、正常に復号できる。直後の暗号化データのフラグが切り換わるタイミングにおいては、ODDレジスタ３１の暗号鍵をＫ３に更新した後、スイッチ３３をODDレジスタ３１側に切り換えるようにし、それ以降の暗号化データのフラグが切り換わるタイミングにおいては、スイッチ３３を切り換えた後、読み出されていないレジスタの暗号鍵を更新するようにすれば、正常に復号が継続される。
【００２８】
図５(F)に示した状態３の場合、タイミングtr３において、復号回路２４のODDレジスタ３１には初期値である暗号鍵（ODD鍵）Ｋ１が書き込まれ、同時にEVENレジスタ３２には暗号鍵（ODD鍵）Ｋ１を１だけインクリメントした暗号鍵（EVEN鍵）Ｋ２が書き込まれる。ただし、タイミングtr３にデコーダ３４に入力された暗号化データ（暗号鍵Ｋ０で暗号化されているデータ（図５(c)））のフラグ(EVEN)に対応してスイッチ３３をEVENレジスタ３１側に切り換えても、EVENレジスタ３１には暗号鍵Ｋ２が書き込まれているので、暗号鍵Ｋ０で暗号化されている暗号化データは復号不可能である。直後の暗号化データのフラグが切り換わるタイミングにおいては、スイッチ３３をODDレジスタ３１に切り換えるだけとして、レジスタ３１，３２の暗号鍵を更新しないようにし、それ以降の暗号化データのフラグが切り換わるタイミングにおいては、スイッチ３３を切り換えた後、読み出されていないレジスタの暗号鍵を更新するようにすれば、正常に復号が継続される。
【００２９】
上述した状態１乃至３に対応するMDデッキ３の受信処理について、図６乃至図８のフローチャートを参照して説明する。この受信処理は、既に、IRD１からIEEE1394バス２に暗号化データが配信されている状態において、ユーザからの所定の受信開始指令に対応して開始される。これにより、IEEE1394インタフェース２２は、暗号化データ（ODD/EVENフラグ付き）を受信して、制御回路２１および復号回路２４に出力する。
【００３０】
ステップＳ１において、MDデッキ３の制御回路２１は、鍵生成回路２３および復号回路２４を制御して、鍵レジスタ書き込み処理（その詳細については、図７のフローチャートを参照して後述する）を開始させる。この鍵レジスタ書き込み処理により、復号回路２４に内蔵されるODDレジスタ３１およびEVENレジスタ３２には、それぞれ、ODD鍵またはEVEN鍵が記述される。
【００３１】
ステップＳ２において、生成回路２３は、ユーザから受信終了指令がなされたか否かを判定し、受信終了指令がなされていないと判定した場合、ステップＳ３に進む。ステップＳ３において、復号回路２４に内蔵されるデコーダ３４は、暗号化データに付加されているODD/EVENフラグを読み取り、ステップＳ４において、当該フラグがODDフラグであるかEVENフラグであるかを判定する。
【００３２】
当該フラグがODDフラグであると判定された場合、ステップＳ５に進む。ステップＳ５において、デコーダ３４は、スイッチ３３をODDレジスタ３１側に切り換えて、ODDレジスタ３１からODD鍵を読み出す。
【００３３】
ステップＳ７において、デコーダ３４は、読み出した暗号鍵（いまの場合、ODD鍵）を用いて、IEEE1394インタフェース２２から入力された暗号化データを復号する。得られたATRACデータは、後段に出力されてMDに記録される。
【００３４】
なお、ステップＳ４において、当該フラグがEVENフラグであると判定された場合、ステップＳ６に進む。ステップＳ６において、デコーダ３４は、スイッチ３３をEVENレジスタ３２側に切り換えて、EVENレジスタ３２からEVEN鍵を読み出す。
【００３５】
また、ステップＳ２において、受信終了指令がなされたと判定された場合、この受信処理は終了される。
【００３６】
次に、図６のステップＳ１の鍵レジスタ書き込み処理について、図７のフローチャートを参照して説明する。この鍵レジスタ書き込み処理は、上述した受信処理のステップＳ１をトリガとして開始され、受信処理と並行して実行される。
【００３７】
ステップＳ１１において、IEEE1394インタフェース２２は、制御回路２１の制御によりIEEE1394の規定に基づく自己の認証要求を、IRD１のIEEE1394インタフェース１４に、IEEE1394バス２を介して送信する。ステップＳ１２において、IEEE1394インタフェース１４は、IEEE1394インタフェース２２からの認証要求を、IEEE1394バス２を介して受信し、それに対応して、IEEE1394インタフェース２２の認証処理を開始する。ステップＳ１３において、IEEE1394インタフェース１４は、IEEE1394インタフェース２２を認証するか否かを判定し、認証すると判定した場合、ステップＳ１４に進む。
【００３８】
ステップＳ１４において、IEEE1394インタフェース１４は、時間変数生成回路１２から供給された、現時点において暗号化回路１３で用いられている暗号鍵を暗号鍵の初期値（以下、初期鍵と記述する）Ｋｘとして、IEEE1394バス２を介してIEEE1394インタフェース２２に送信する。IEEE1394インタフェース２２は、当該初期鍵Ｋｘを受信して、制御回路２１に出力する。ステップＳ１５において、制御回路２１は、入力された初期鍵Ｋｘを鍵生成回路２３に出力する。鍵生成回路２３は、制御回路２１から入力された初期鍵Ｋｘの値を１だけインクリメントした値を次の鍵Ｋｘ＋１として生成し、鍵Ｋｘ，Ｋｘ＋１を復号回路２４に出力する。復号回路２４は、鍵生成回路２３から入力された鍵Ｋｘ，Ｋｘ＋１の偶奇を判定し、それぞれを対応するODDレジスタ３１またはEVENレジスタ３２に書き込む。
【００３９】
ステップＳ１６において、制御回路２１は、IEEE1394インタフェース２２から順次入力される暗号化データに付加されているODD/EVENフラグを監視する（読み出す）。ステップＳ１７において、制御回路２１は、ステップＳ１６で読み出したフラグが変化したか（前回読み出したフラグと異なるか）否かを判定し、フラグが変化したと判定するまで、ステップＳ１６に戻り、それ以降の処理を繰り返す。その後、フラグが変化したと判定された場合、ステップＳ１８に進む。
【００４０】
ステップＳ１８において、制御回路２１は、新たなフラグがODDであるか（フラグがEVENからODDに変化したのか）、EVENであるか（フラグがODDからEVENに変化したのか）を判定し、新たなフラグがODDであると判定した場合、ステップＳ１９に進む。
【００４１】
ステップＳ１９において、制御回路２１は、復号回路２４のレジスタ３１，３２に記述されている２個の鍵のうちの小さい値のもの（鍵Ｋｘ）が、EVENレジスタ３２に記述されているか否かを判定し、鍵ＫｘがEVENレジスタ３２に記述されていると判定した場合、ステップＳ２０に進む。ステップＳ２０において、制御回路２１は、EVENレジスタ３２に記述されているEVEN鍵を更新させる。すなわち、鍵生成回路２３は、制御回路２１の制御により、EVENレジスタ３２に記述されているEVEN鍵の値に２だけインクリメントした値を発生して復号回路２４に出力する。復号回路２４において、その新たなEVEN鍵は、EVENレジスタ３２に上書きされる。
【００４２】
なお、ステップＳ１９において、鍵ＫｘがEVENレジスタ３２に記述されていないと判定された場合、ステップＳ２０はスキップされる。
【００４３】
また、ステップＳ１８において、新たなフラグがEVENであると判定された場合、ステップＳ２１に進む。
【００４４】
ステップＳ２１において、制御回路２１は、復号回路２４のレジスタ３１，３２に存在する２個の鍵のうちの小さい値のもの（鍵Ｋｘ）が、ODDレジスタ３１に記述されているか否かを判定し、鍵ＫｘがODDレジスタ３１に記述されていると判定した場合、ステップＳ２２に進む。ステップＳ２２において、制御回路２１は、ODDレジスタ３１に記述されているODD鍵を更新させる。すなわち、鍵生成回路２３は、制御回路２１の制御により、ODDレジスタ３１に記述されているODD鍵の値に２だけインクリメントした値を発生して復号回路２４に出力する。復号回路２４において、その新たなODD鍵は、ODDレジスタ３１に上書きされる。
【００４５】
なお、ステップＳ２１において、鍵ＫｘがODDレジスタ３１に記述されていないと判定された場合、ステップＳ２２はスキップされる。
【００４６】
以後、ステップＳ１６に戻り、並行して実行されている受信処理が終了されるまで、それ以降の処理が繰り返される。
【００４７】
なお、ステップＳ１３において、IEEE1394インタフェース２２を認証しないと判定した場合、IEEE1394インタフェース１４は、その旨をIEEE1394インタフェース２２に通知する。その後、ステップＳ１１に戻り、それ以降の処理が繰り返される。
【００４８】
このように、鍵レジスタ書き込み処理（特にステップＳ１８以降のフラグの変化の極性に対応して暗号鍵を更新する処理）を、受信処理と並行して実行することにより、初期鍵を受信する３種類の状態１乃至３（図５(D)乃至(F)）に対応して、暗号化データを正常に復号することが可能となる。
【００４９】
次に、上述した受信処理および鍵レジスタ書き込み処理と並行して実行する鍵確認処理について、図８のフローチャートを参照して説明する。ステップＳ３１において、IEEE1394インタフェース２２は、制御回路２１の制御により、IRD１のIEEE1394インタフェース１４に対して、現在暗号化に使用されている鍵の送信を要求する。この要求に対応して、ステップＳ３３において、IEEE1394インタフェース１４は、暗号化回路１３において使用されている暗号鍵を、IEEE1394バス２を介してIEEE1394インタフェース２２に送信する。当該暗号鍵は、IEEE1394インタフェース２２に受信されて、制御回路２１に出力される。
【００５０】
ステップＳ３４において、制御回路２１は、IEEE1394インタフェース２２から入力された暗号鍵が、復号回路２４のレジスタ３１，３２に記述されているODD鍵またはEVEN鍵と一致するか否かを判定し、一致すると判定した場合、暗号化データの復号が正常に行われているものとしてパラメータｎ（後述）を０に初期化して、ステップＳ３７に進む。
【００５１】
ステップＳ３７においては、所定の時間（例えば、IRD１の暗号化回路１３において同一の暗号鍵が用いられる時間の１／１０程度の時間）だけ待機され、所定の時間が経過した後、ステップＳ３１に戻り、それ以降の処理が繰り返される。
【００５２】
なお、ステップＳ３４において、IEEE1394インタフェース２２から入力された暗号鍵が、復号回路２４のレジスタ３１，３２に記述されているODD鍵およびEVEN鍵のいずれとも一致しないを判定された場合、ステップＳ３５に進む。ステップＳ３５において、制御回路２１は、パラメータｎを参照することにより、ステップＳ３４での判定が所定の回数（例えば、２回）連続して一致しないと判定されたか（複数回数連続して不一致であるか）否かを判定し、複数回数連続して不一致であると判定した場合、パラメータｎを０に初期化して、ステップＳ３８に進む。
【００５３】
ステップＳ３８において、制御回路２１は、ステップＳ３２でIEEE1394インタフェース２２から入力された暗号鍵を鍵生成回路２３に出力する。鍵生成回路２３は、制御回路２１から入力された暗号鍵Ｋｘの値を１だけインクリメントした値を次の鍵Ｋｘ＋１として生成し、鍵Ｋｘ，Ｋｘ＋１を復号回路２４に出力する。復号回路２４は、鍵生成回路２３から入力された鍵Ｋｘ，Ｋｘ＋１の偶奇を判定し、それぞれを対応するODDレジスタ３１またはEVENレジスタ３２に書き込む。
【００５４】
なお、ステップＳ３５において、複数回数連続して不一致ではないと判定した場合、制御回路２１は、ステップＳ３６において、ステップＳ３４で不一致と連続して判定した回数を示すパラメータｎを１だけインクリメントする。
【００５５】
このように、定期的（ステップＳ３７の待機時間毎）に、暗号化に用いられている暗号鍵と、復号に用いられている暗号鍵の一致を確認することにより、何らかの原因によって復号に用いる暗号鍵がずれてしまっても、正常な復号処理を再開することが可能となる。
【００５６】
なお、図６の受信処理において、ステップＳ１をスキップして、すなわち、図７の鍵レジスタ書き込み処理を実行せずに、図８の鍵確認処理を実行するようにしても、正常な復号を行うことができる。
【００５７】
また、本実施の形態においては、暗号化データの送信側をIRD１とし、受信側をMDデッキ３としたが、他の電子機器間のデータ通信にも本発明を適用することが可能である。したがって、暗号化されるデータの形式は、ATRACデータではなく、例えば、MPEG２方式のAVデータであってもよい。
【００５８】
さらに、本発明は、IEEE1394バス２を介して接続される電子機器間だけでなく、例えば、インタネットやLAN(Local Area Network)を介して接続されるパーソナルコンピュータ等の間の通信にも適用することが可能である。
【００５９】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアとしてのMDデッキ３に組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどにインストールされる。
【００６０】
次に、図９を参照して、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられる媒体について説明する。
【００６１】
プログラムは、図９(A)に示すように、コンピュータ１０１（図２の制御回路２１の相当する）に内蔵されている記録媒体としてのハードディスク１０２や半導体メモリ１０３に予めインストールした状態でユーザに提供することができる。
【００６２】
あるいはまた、プログラムは、図９(B)に示すように、フロッピーディスク１１１、CD-ROM(Compact Disc-Read Only Memory)１１２、ＭＯ(Magneto Optical)ディスク１１３、DVD(Digital Versatile Disc)１１４、磁気ディスク１１５、半導体メモリ１１６などの記録媒体に、一時的あるいは永続的に格納し、パッケージソフトウエアとして提供することができる。
【００６３】
さらに、プログラムは、図９(C)に示すように、ダウンロードサイト１２１から、無線で衛星１２２を介して、コンピュータ１２３に転送したり、ローカルエリアネットワーク、インターネットといったネットワーク１３１を介して、有線または無線でコンピュータ１２３に転送し、コンピュータ１２３において、内蔵するハードディスクなどに格納させることができる。
【００６４】
本明細書における媒体とは、これら全ての媒体を含む広義の概念を意味するものである。
【００６５】
また、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００６６】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００６７】
【発明の効果】
以上のように、本発明によれば、暗号化データと非同期で通信される暗号鍵を用いて暗号化データを復号することが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した情報通信システムの構成例を示すブロック図である。
【図２】図１のIRD１およびMDデッキ３の詳細な構成例を示すブロック図である。
【図３】図２の復号回路２４の詳細な構成例を示すブロック図である。
【図４】暗号化データの通信遅延を説明するための図である。
【図５】暗号鍵の通信遅延を説明するための図である。
【図６】受信処理を説明するフローチャートである。
【図７】鍵レジスタ書き込み処理を説明するフローチャートである。
【図８】鍵確認処理を説明するフローチャートである。
【図９】プログラムをコンピュータにインストールし、実行可能な状態とするために用いられる媒体について説明するための図である。
【符号の説明】
１  IRD  ，  ２  IEEE1394バス，  ３  MDデッキ，  ２１  制御回路，  ２２  IEEE1394インタフェース，  ２３  鍵生成回路，  ２４  復号回路，  ３１  ODDレジスタ，  ３２  EVENレジスタ，  ３４  デコーダ
【図１】
0004457431.tif 000002
【図２】
0004457431.tif 000003
【図３】
0004457431.tif 000004
【図４】
0004457431.tif 000005
【図５】
0004457431.tif 000006
【図６】
0004457431.tif 000007
【図７】
0004457431.tif 000008
【図８】
0004457431.tif 000009
【図９】
0004457431.tif 000010