(57)【特許請求の範囲】
【請求項１】
互いに別個のクロックによって、それぞれｎビット長（ｎは複数）の乱数を発生するｍ個（ｍは４以上の整数）の乱数発生回路と、
このｍ個の乱数発生回路の出力の乱数を合成して、合計Ｎビット（Ｎはｍ×ｎ）の乱数を生成する演算回路と、
前記ｍ個の乱数発生回路に供給される乱数発生用の各クロックとは別個のクロックをカウントすることによって、ラッチタイミングを決定するタイミング決定手段と、
このタイミング決定手段によって決定されたラッチタイミングで、前記演算回路の出力の乱数を、復号化または暗号化のための鍵データとしてラッチするラッチ手段とを備え、
前記ラッチ手段の出力の鍵データに基づいてデータを復号化または暗号化する暗号化復号化装置。
【請求項２】
請求項１の暗号化復号化装置を備え、受信された暗号化されたデータを当該暗号化復号化装置によって復号化して出力するデータ受信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データの暗号化または復号化のための秘密鍵となる鍵データを生成して、データを暗号化または復号化する暗号化復号化装置、および、この暗号化復号化装置を備えるデータ受信装置に関する。
【０００２】
【従来の技術】
記録媒体やインターネットなどの通信ネットワークによる配信によって、ＰＣ（パーソナルコンピュータ）などの端末で、暗号化されたデータを受信し、例えば、端末に接続された記録再生装置に取り込んで、記録再生装置内の暗号化復号化装置で復号化し、記録媒体に記録するシステムが考えられている。
【０００３】
この場合の暗号化復号化装置としては、図４に示すような装置が考えられる。暗号化復号化処理部６０は、ＩＣ（集積回路）化される暗号化復号化装置のインタフェースやＣＰＵなどを除く部分を示し、暗号化復号化演算部６１、鍵セレクタ６２、ハードウエア鍵生成部６４、および鍵記憶部６９によって構成される。
【０００４】
ハードウエア鍵生成部６４は、固定値のデータが書き込まれたＲＯＭ６５、このＲＯＭ６５から読み出されたデータの各ビットを反転させ、シフトさせ、各ビットの排他的論理和（ＥＯＲ；ＸＯＲ）を算出するなど、ＲＯＭ６５から読み出されたデータを演算する演算回路６６、および、外部からのコマンドによって指示されたタイミングで、クロックＣＬＫによって演算回路６６の出力データをラッチするラッチ回路６７によって構成され、ラッチ回路６７の出力データが、ハードウエア鍵として鍵セレクタ６２に入力される。
【０００５】
そして、外部からのコマンドによって、最初に、ハードウエア鍵生成部６４からのハードウエア鍵が、鍵セレクタ６２で選択され、暗号化復号化演算部６１で入力データと演算されて、第１段のプロセス鍵が算出され、これが鍵記憶部６９に書き込まれる。
【０００６】
次に、この鍵記憶部６９から読み出された第１段のプロセス鍵が、鍵セレクタ６２で選択され、暗号化復号化演算部６１で入力データと演算されて、第２段のプロセス鍵が算出され、これが第１段のプロセス鍵に代えて鍵記憶部６９に書き込まれる。
【０００７】
暗号化復号化演算部６１では、以下、同様に第３段以下のプロセス鍵が算出され、最終的にデータを復号化または暗号化するための秘密鍵であるコンテンツ鍵が算出されて、鍵記憶部６９に書き込まれる。
【０００８】
この状態で、復号化モードを指示するコマンドが入力され、入力データとして暗号文データが入力されると、鍵記憶部６９から読み出されたコンテンツ鍵が、鍵セレクタ６２で選択され、暗号化復号化演算部６１で暗号文データと演算されて、暗号文データが復号化され、暗号化復号化演算部６１から平文データが出力される。
【０００９】
暗号化モードを指示するコマンドが入力され、入力データとして平文データが入力される場合には、同様に、平文データが暗号化され、暗号化復号化演算部６１から暗号文データが出力される。
【００１０】
【発明が解決しようとする課題】
しかしながら、上述した暗号化復号化装置、すなわち暗号化復号化処理部６０では、回路設計者などは、回路図上の、ハードウエア鍵生成部６４のＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）での記述を見ることによって、ハードウエア鍵の値を容易に知ることができてしまう。
【００１１】
そのため、固有の秘密鍵としてのハードウエア鍵の秘匿性を確保するために、ＲＴＬでの設計ファイルの管理に細心の注意を払うなどの必要があるが、実際上、万全を期すことは困難であるため、ハードウエア鍵の秘匿性を確保し、セキュリティを守ることが難しい。
【００１２】
そこで、この発明は、セキュリティが確実に守られるように鍵データを生成することができるようにしたものである。
【００１３】
【課題を解決するための手段】
この発明の暗号化復号化装置は、
互いに別個のクロックによって、それぞれｎビット長（ｎは複数）の乱数を発生するｍ個（ｍは４以上の整数）の乱数発生回路と、
このｍ個の乱数発生回路の出力の乱数を合成して、合計Ｎビット（Ｎはｍ×ｎ）の乱数を生成する演算回路と、
前記ｍ個の乱数発生回路に供給される乱数発生用の各クロックとは別個のクロックをカウントすることによって、ラッチタイミングを決定するタイミング決定手段と、
このタイミング決定手段によって決定されたラッチタイミングで、前記演算回路の出力の乱数を、復号化または暗号化のための鍵データとしてラッチするラッチ手段とを備え、
前記ラッチ手段の出力の鍵データに基づいてデータを復号化または暗号化する暗号化復号化装置である。
【００１４】
上記の構成の暗号化復号化装置では、４つ以上の乱数発生回路の出力のそれぞれｎビット長の乱数が、互いに別個のクロックによって互いに別個のタイミングで変化するので、演算回路の出力の合計Ｎビットの乱数は、不規則なタイミングで変化するものとなり、この不規則なタイミングで変化するＮビットの乱数の、乱数発生用クロックとは別個のクロックによって決定されるラッチタイミングでの値が、鍵データとしてラッチ手段にラッチされるため、回路図上のＲＴＬでの記述を見ただけでは、回路設計者なども、ラッチ手段にラッチされる実際の鍵データの値を知ることができず、鍵データのセキュリティが守られる。
【００１５】
【発明の実施の形態】
〔暗号化復号化装置の実施形態：図１および図２〕
図１は、この発明の暗号化復号化装置の一実施形態を示す。
【００１６】
暗号化復号化処理部４０は、後述のようにＩＣ化される暗号化復号化装置のインタフェースやＣＰＵなどを除く部分を示し、ハードウエア鍵生成部としての乱数発生部５０、暗号化復号化演算部４１、鍵セレクタ４３、鍵レジスタ４５、タイミング監視用カウンタ４７、および鍵記憶部４９によって構成される。
【００１７】
乱数発生部５０は、４つ以上の乱数発生回路、および演算回路５９によって構成される。図では３つの乱数発生回路５１〜５３を示すが、実際上は、より多数の、すなわち４つ以上の乱数発生回路が設けられる。
【００１８】
乱数発生回路５１は、レジスタ５１１および演算回路５１２によって構成され、暗号化復号化処理部４０の外部からレジスタ５１１に、コマンド、リセット信号およびクロックＣＬＫ１が入力され、演算回路５１２において、レジスタ５１１の出力データの各ビットが反転され、シフトされ、各ビットの排他的論理和が算出されるなど、レジスタ５１１の出力データが演算され、その演算後のデータが、クロックＣＬＫ１によってレジスタ５１１に書き込まれるという動作が、クロックＣＬＫ１のパルスごとに繰り返されて、レジスタ５１１から、ｎビット長の、例えば８ビット長の、クロックＣＬＫ１のパルスごとに変化する乱数が出力される。
【００１９】
乱数発生回路５２は、レジスタ５２１および演算回路５２２によって構成され、クロックＣＬＫ１とは別個のクロックＣＬＫ２によって、乱数発生回路５１と同様に、レジスタ５２１から、ｎビット長の、クロックＣＬＫ２のパルスごとに変化する乱数が出力され、乱数発生回路５３は、レジスタ５３１および演算回路５３２によって構成され、クロックＣＬＫ１，ＣＬＫ２とは別個のクロックＣＬＫ３によって、乱数発生回路５１，５２と同様に、レジスタ５３１から、ｎビット長の、クロックＣＬＫ３のパルスごとに変化する乱数が出力される。図では省略した他の乱数発生回路についても、同様である。
【００２０】
さらに、乱数発生部５０では、演算回路５９において、乱数発生回路５１，５２，５３‥‥の出力の乱数が合成されて、合計Ｎビットの、例えば、ｎ＝８で、かつ乱数発生回路の総数ｍが８個である場合には６４ビットの、乱数が生成されるとともに、その乱数の各ビットが反転され、シフトされ、各ビットの排他的論理和が算出されるなど、その乱数が演算されて、Ｎビットの乱数ＲＡが得られる。
【００２１】
乱数発生回路５１，５２，５３‥‥の出力の乱数は、互いに別個のクロックＣＬＫ１，ＣＬＫ２，ＣＬＫ３‥‥によって変化するので、この乱数発生部５０の出力の乱数ＲＡは、図２にデータＲ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５‥‥として示すように、不規則なタイミングで変化するものとなる。
【００２２】
この乱数発生部５０の出力の乱数ＲＡは、鍵セレクタ４３に入力され、入力コマンドにより鍵セレクタ４３が制御されることによって、鍵セレクタ４３で、乱数ＲＡと、後述のように鍵記憶部４９から読み出された鍵データのうちの、いずれかが選択され、その選択されたデータが、鍵レジスタ４５に入力される。
【００２３】
一方、タイミング監視用カウンタ４７は、入力コマンドおよびリセット信号によってリセットされて、スタート時点から、上記の乱数発生用のクロックＣＬＫ１，ＣＬＫ２，ＣＬＫ３‥‥とは別個のクロックＣＬＫＡをカウントし、所定数をカウントした時点で、取り込みイネーブル信号ＥＮを出力する。
【００２４】
そして、鍵レジスタ４５では、この取り込みイネーブル信号ＥＮが出力された時点におけるクロックＣＬＫＡによって、その時の鍵セレクタ４３の出力データが取り込まれ、鍵データとして出力される。
【００２５】
したがって、鍵セレクタ４３の出力データとして、乱数発生部５０の出力の乱数ＲＡが選択される場合には、図２にデータＲ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５‥‥として示すように不規則なタイミングで変化する乱数ＲＡ中の、取り込みイネーブル信号ＥＮが出力された時点ｔａにおけるデータＲ３が、鍵レジスタ４５にラッチされ、ハードウエア鍵として出力される。
【００２６】
暗号化復号化演算部４１では、このように鍵セレクタ４３で選択され、鍵レジスタ４５にラッチされたデータが、鍵データとして、入力データと演算されて、プロセス鍵が算出され、最終的にコンテンツ鍵が算出されるとともに、そのコンテンツ鍵によって、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）やＴｒｉｐｌｅＤＥＳなどの暗号アルゴリズムにより、データが復号化または暗号化される。
【００２７】
具体的に、入力コマンドによって、最初に、鍵セレクタ４３では乱数発生部の出力の乱数ＲＡが選択され、これが上述したように鍵レジスタ４５にラッチされて、鍵レジスタ４５の出力の鍵データとしてハードウエア鍵が得られ、これが暗号化復号化演算部４１で入力データと演算されて、第１段のプロセス鍵が算出され、これが鍵記憶部４９に書き込まれる。
【００２８】
次に、この鍵記憶部４９から読み出された第１段のプロセス鍵が、鍵セレクタ４３で選択され、鍵レジスタ４５にラッチされて、鍵レジスタ４５の出力の鍵データとして第１段のプロセス鍵が得られ、これが暗号化復号化演算部４１で入力データと演算されて、第２段のプロセス鍵が算出され、これが第１段のプロセス鍵に代えて鍵記憶部４９に書き込まれる。
【００２９】
暗号化復号化演算部４１では、以下、同様に第３段以下のプロセス鍵が算出され、最終的にコンテンツ鍵が算出されて、鍵記憶部４９に書き込まれる。
【００３０】
この状態で、復号化モードを指示するコマンドが入力され、入力データとして暗号文データが入力されると、鍵記憶部４９から読み出されたコンテンツ鍵が、鍵セレクタ４３で選択され、鍵レジスタ４５にラッチされて、鍵レジスタ４５の出力の鍵データとしてコンテンツ鍵が得られ、これが暗号化復号化演算部４１で暗号文データと演算されて、暗号文データが復号化され、暗号化復号化演算部４１から平文データが出力される。
【００３１】
暗号化モードを指示するコマンドが入力され、入力データとして平文データが入力される場合には、同様に、平文データが暗号化され、暗号化復号化演算部４１から暗号文データが出力される。
【００３２】
上述した暗号化復号化装置では、乱数発生回路５１，５２，５３‥‥の出力データが時系列で変化し、しかも乱数発生部５０の出力の乱数ＲＡが不規則なタイミングで変化するので、回路図上のＲＴＬでの記述を見ただけでは、回路設計者なども、鍵レジスタ４５に取り込まれる実際のハードウエア鍵の値を知ることができない。したがって、ハードウエア鍵のセキュリティが守られる。
【００３３】
さらに、装置内の各レジスタに、レジスタ名として乱数名が付され、ハードウエア鍵に関する全てのノードでは、ビットごとにスクランブルがかけられることによって、回路設計者などは、装置内のレジスタの値を読めたとしても、真のハードウエア鍵の値を読み取ることはできず、セキュリティ強度がいっそう高くなる。
【００３４】
〔データ受信装置の実施形態：図３〕
図３は、この発明の暗号化復号化装置を備える、この発明のデータ受信装置の一実施形態としての記録再生装置を含むデータ受信システムを示す。
【００３５】
この例のデータ受信システムでは、記録媒体１からのリッピングや、インターネットを利用した配信システム２からのダウンロードなどによって、ＰＣなどの端末１０で、符号化され、かつ秘密鍵によって暗号化されたデータが受信される。
【００３６】
その受信された暗号文データは、端末１０から、端末１０のＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子に接続された記録再生装置２０に送信される。
【００３７】
記録再生装置２０は、記録媒体５上にデータを記録し、記録媒体５上からデータを再生するもので、これに暗号化復号化装置３０が設けられる。
【００３８】
暗号化復号化装置３０は、図１に示して上述した暗号化復号化処理部４０を備えるほか、ＣＰＵ３１を備え、そのバス３２に、ＣＰＵ３１が実行すべきコマンド送受や暗号化復号化処理などのプログラムや必要な固定データなどが書き込まれたＲＯＭ３３、ＣＰＵ３１のワークエリアなどとして機能するＲＡＭ３４、端末１０との間でコマンドを送受し、端末１０からデータを取り込むＵＳＢインタフェース３６、記録再生装置本体部のＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）２６にデータを出力するためのインタフェース３７、および記録再生装置本体部のＣＰＵ２１との間でコマンドを送受するためのインタフェース３９が接続される。
【００３９】
この暗号化復号化装置３０は、ワンチップＬＳＩ（大規模集積回路）として形成される。
【００４０】
記録再生装置本体部は、ＣＰＵ２１のバス２２に、ＣＰＵ２１が実行すべきプログラムや必要な固定データなどが書き込まれたＲＯＭ２３、ＣＰＵ２１のワークエリアなどとして機能するＲＡＭ２４、および上記のＤＳＰ２６が接続され、ＤＳＰ２６に、記録再生処理部２７、および出力処理部２８が接続される。
【００４１】
暗号化復号化装置３０では、ＵＳＢインタフェース３６を介して端末１０から取り込まれた、符号化され、かつ秘密鍵によって暗号化されたデータが、暗号化復号化処理部４０において、上述したようにコンテンツ鍵によって復号化され、その復号化された平文データとしての、符号化されたデータが、インタフェース３７を介してＤＳＰ２６に送出され、ＤＳＰ２６で処理された後、記録再生処理部２７によって記録媒体５上に記録され、または出力処理部２８によってアナログ信号に変換されて出力端子２９に導出される。
【００４２】
記録媒体５としては、光ディスク、ハードディスク、フレキシブルディスク、磁気テープ、メモリカード、半導体メモリなど、いずれでもよい。
【００４３】
また、このような記録再生装置に限らず、暗号化されたデータを受信し、復号化して、再生するだけで、記録機能を備えない装置にも、この発明を適用することができる。
【００４４】
【発明の効果】
上述したように、この発明によれば、鍵データのセキュリティが確実に守られる。
【図面の簡単な説明】
【図１】  この発明の暗号化復号化装置の一実施形態を示す図である。
【図２】  図１の暗号化復号化装置の動作の説明に供する図である。
【図３】この発明のデータ受信装置の一実施形態としての記録再生装置を示す図である。
【図４】  考えられる暗号化復号化装置の例を示す図である。
【符号の説明】
主要部については図中に全て記述したので、ここでは省略する。
【図１】
0004491706.tif 000002
【図２】
0004491706.tif 000003
【図３】
0004491706.tif 000004
【図４】
0004491706.tif 000005