(57)【特許請求の範囲】
【請求項１】
暗号化／復号処理を実行するデジタル処理装置において、
２つ以上の処理段が循環的に接続され、初段の処理段が入力デジタルデータワードに関数を施し、後続の各処理段が入力される前段の処理段の出力に関数を施し、最終段の処理段が処理されたデジタルデータワードを出力する循環回路と、
上記循環回路の初段の処理段が入力デジタルデータワードを処理し、後続の各処理段が前段の処理段の出力を処理し、最終段の処理段が処理されたデジタルデータワードを出力する際に、該処理されたデジタルデータワードが該最終段の処理段によって最終的に出力される前に、該処理されたデジタルデータワードが少なくとも１回該初段の処理段に戻されるように、該循環回路を制御する処理制御回路と、
処理段間に接続され、該処理段間におけるデジタルデータワードに対する処理を中断させるために、少なくとも上記初段の処理段の出力を記憶するバッファと、
各処理段における第１のデジタルデータワードに対する処理を中断し、第２のデジタルデータワードに対する処理を開始し、その後、各処理段における該第２のデジタルデータワードに対する処理を中断し、該第１のデジタルデータワードに対する処理を再開することを繰り返すように、上記循環回路及びバッファを制御する制御回路とを備えるデジタル処理装置。
【請求項２】
上記デジタルデータワードは、１ビット以上からなることを特徴とする請求項１記載のデジタル処理装置。
【請求項３】
上記関数は、数値演算であることを特徴とする請求項１記載のデジタル処理装置。
【請求項４】
上記関数は、論理演算であることを特徴とする請求項１記載のデジタル処理装置。
【請求項５】
上記初段の処理段は、処理の間にデジタルデータワードに適用される暗号化キーが供給されるキー入力端子を備えることを特徴とする請求項１記載のデジタル処理装置。
【請求項６】
暗号化関数を実行することを特徴とする請求項５記載のデジタル処理装置。
【請求項７】
復号関数を実行することを特徴とする請求項５記載のデジタル処理装置。
【請求項８】
上記バッファは、複数のバッファからなることを特徴とする請求項１記載のデジタル処理装置。
【請求項９】
上記複数のバッファのうちの１つのグループは、上記最終段の処理段の出力を記憶し、該記憶した最終段の処理段の出力を上記初段の処理段に供給することを特徴とする請求項８記載のデジタル処理装置。
【請求項１０】
上記複数のバッファの２つ以上に接続され、該複数のバッファの２つ以上の出力から１つを選択するマルチプレクサを更に備える請求項９記載のデジタル処理装置。
【請求項１１】
上記デジタルデータワードは、暗号化ビデオ情報の一部であることを特徴とする請求項１記載のデジタル処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、暗号化／復号装置に関し、より具体的には、複数の独立したデータストリームを時間多重方法で処理することができる復号装置に関する。
【背景技術】
【０００２】
情報がデジタル形式で処理されるようになり、これらの形式に対するセキュリティ保護が非常に重要になっている。例えば、デジタルビデオは、アクセスの制限が必要であり、非常に厳しい条件が課せられている。アイソクロノスデータ転送のためのＩＥＥＥ１３９４規格、モーションピクチャエキスパートグループ（Motion Picture Experts Group：以下、ＭＰＥＧという。）規格、高精細度テレビジョン規格、デジタル伝送における著作権保護技術の管理運用団体（Digital Transmission Licensing Administrator：以下、ＤＴＬＡという。）のような組織によって広められているアクセス、転送及び処理規格のようなフォーマットには、標準化デジタル形式によって課せられた暗号化及び復号を用いる装置に対する実行レベル（performance level）が存在する。暗号化及び復号処理の複雑さ、及びデジタルビデオが非常に広い帯域幅を必要とすることにより、要求条件を全て満たす回路を設計することは難しい。
【０００３】
図１Ａは、従来の暗号化／復号回路の構成を示すブロック図である。この図１に示すように、データストリーム、例えばＩＥＥＥ１３９４規格に準拠したデータストリーム１０は、６４ビットワードの「塊（chunk）」として暗号化／復号回路に左側から入力される。キー１２は可変長語であり、キー１２も図１Ａに示す暗号化／復号回路に入力される。暗号化／復号回路は、複数の処理段を備え、各処理段は、排他的論理和回路（以下、ＸＯＲという。）１４と、ＸＯＲ１４に接続された加算器１６を備える。図１Ａに示すように、処理段は、合計で５段となっている。５段目の処理段の加算器１８からの結果は、ＸＯＲ１４にフィードバックされる。
【０００４】
５段の処理からなる１サイクルが、暗号化／復号回路の１「ラウンド（round）」となる。一般的に、多数のラウンドが必要とされる。例えば、暗号化／復号回路は、それぞれのワードの暗号化又は復号を完了するのに、１０ラウンドを必要とすることもある。
【０００５】
この回路設計は、複数の「処理段（processing stage）」の「循環配置（circular arrangement）」と呼ぶことができる。ＸＯＲ１４と加算器１８からなる各処理段は、前段の出力が次段に入力されるような構成となっている。すなわち、ＸＯＲ１４は、データワードに対して排他的論理和を演算し、その結果を加算器１８に供給し、加算器１８は、加算処理を行う。この暗号化／復号回路は、暗号化回路又は復号回路として動作するので、各処理段にはキーが供給され、各演算は、２つのオペランドの演算である。
【０００６】
なお、暗号化及び復号以外の用途にも、同じアーキテクチャを用いることができる。
【０００７】
ただ１つの６４ビットワードに対して、複数の演算をそれぞれ含む５段の処理段に亘る処理を１０ラウンド行うと、多数の処理サイクルがかかることは明らかである。本来、ビデオストリームは、数百万のデータワード、数兆のデータワード又はそれ以上からなり、それを、このマルチランド法（multi-round manner）で処理しなければならない。
【０００８】
一般的に、暗号化処理は、データのブロックの境界で開始及び終了する。データのブロックは、「暗号化フレーム（encryption frame）」と呼ばれる。次の暗号化フレームの処理は、現暗号化フレームの処理が完了した後にしか、開始することができない。すなわち、暗号化フレームの処理を交互に行うことはできない。このことは、図１Ａに示すような従来の手法が、複数のデータストリームを効率的に並列処理することができないことを意味している。ビデオストリームの効率的な暗号化／復号を更に複雑にするために、デジタルビデオの用途では、暗号化フレームをより小さなデータブロックに任意に分割することが一般的である。そして、これらのデータブロックは、通信リンクを介して、時間を変え、及び伝送ブロック間の間隔を変化させて、転送される。このことは、１つのデータストリームの暗号化フレームの開始及び終了は、他のデータストリームの暗号化フレームと必ずしも一致していないことを意味している。この理由により、図１に示す回路は、単一データストリームをリアルタイムで処理する専用のものである。第２のデータストリームを処理するためには、同じ回路をもう１つ使用しなければならない。
【０００９】
図１Ｂは、図１Ａに示す従来の回路を２つ用いたときのスケジュール（time line）を示す図である。図１Ｂに示すように、２つの入力ストリームは、ストリームＡ及びストリームＢとして処理される。各ストリームＡ、Ｂは、２つの別々の暗号化回路で独立して処理されなければならない。２つの回路を必要とすることにより、ただ１つのストリームを処理する場合に比して、２つのストリームを処理するのに必要とされるハードウェアは、複雑になり、その規模も増大する。
【００１０】
ストリームＡ、Ｂは、例えばブロックＡ０、Ａ１、Ａ２等として示される多数のブロックに分割されるフレームを有する。ブロックＡ０をブロックＡ０’に暗号化／復号するためには、ブロックＡ０とブロックＡ１の一部が用いられる。ブロックＡ１が供給されるまでに空き時間（pause）があると、回路は、ブロックＡ０’を得るための処理を行うためには、ブロックＡ１が供給されるまで待たなければならない。
【００１１】
図１Ａに示す回路は、割込処理ができず、シリアル処理であるために、現在、ストリームＡのフレームの暗号化処理を行っているときは、ストリームＢのデータを処理することはできない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、従来の装置を改善することである。
【課題を解決するための手段】
【００１３】
デジタル処理装置は、複数のデータストリームを時間的に多重化して処理する。デジタルビデオの用途においては、デジタル処理装置は、ＩＥＥＥ１３９４規格に準拠したデータストリームのようなアイソクロノスデータストリームに対して復号装置として機能する。デジタル処理装置は、循環的に接続された複数の処理段を備え、データをこれらの処理段に複数回、すなわち複数ラウンド通すことにより、データを処理する。データが最終段の処理段に到着すると、最終段の処理段は、次のラウンドを開始するために、データを初段の処理段に戻す。処理の何回かのラウンドが終了したときに、データが出力される。
【００１４】
バッファ、すなわちレジスタが、処理段間の一カ所以上の位置に設けられている。１つ以上のレジスタを用いて、データを記憶することによって、記憶したデータに関するデータストリームをその位置において効果的に中断することができる。これによって、中断したデータストリームを待機状態にしたまま、他のデータストリームのデータを処理することができる。
【００１５】
一実施例において、デジタル処理装置は、少なくとも２つの処理段間に接続されたバッファを備え、バッファは、少なくとも１つの処理段の出力を記憶した後、記憶した出力を次段の処理段に選択的に供給する。
【発明を実施するための最良の形態】
【００１６】
図２Ａは、本発明の全体的な概念を示すブロック図である。図２Ａに示すように、多段のデジタル処理は、循環的に配置された処理段で示される。処理段１０８、１１６は、あらゆる種類のデジタル処理段を表している。処理段１０８、１１６によって、如何なる段数も表すことができる。
【００１７】
入力データが、図の左側から排他的論理和（ＸＯＲ）ゲート１０２、１０４の入力端子ｉｎＡ、ｉｎＢの両方に供給される。入力データは、マルチプレクサ１０６に供給され、マルチプレクサ１０６は、入力データのいずれか一方を選択して、処理段１０８に供給する。処理段１０８の出力は、２つのバッファ、すなわちレジスタ１１０、１１２のいずれか一方に供給される。レジスタ１１０は、入力端子ｉｎＡに対応した値ｉｎＡ’を一旦記憶した後、出力し、レジスタ１１２は、入力端子ｉｎＢに対応した値ｉｎＢ’を一旦記憶した後、出力する。レジスタ１１０、１１２からの両出力ｉｎＡ’、ｉｎＢ’は、マルチプレクサ１１４に供給される。マルチプレクサ１１４は、出力ｉｎＡ’又は出力ｉｎＢ’の一方を選択して、処理段１１６に供給する。処理段１１６からの出力は、交互に第２のセットのレジスタ１１８、１２０に供給される。レジスタ１１８は、Ａデータストリームに対応しており、レジスタ１２０は、Ｂデータストリームに対応している。
【００１８】
レジスタ１１８は、その値を出力し、ＸＯＲゲート１０２及びマルチプレクサ１０６を介して処理段１０８にフィードバックする。同様に、レジスタ１２０の出力は、ＸＯＲゲート１０４及びマルチプレクサ１０６を介して、処理段１０８にフィードバックされる。Ａデータストリーム又はＢデータストリームのいずれか一方における所定のデータワードの処理が終了すると、レジスタ１１８、１２０は、結果をＯＵＴＡ、ＯＵＴＢとして出力する。
【００１９】
２つの処理段１０８、１１６は、各処理段の出力におけるレジスタバンクによって、分離されていることは明らかである。また、マルチプレクサ１０６、１１４は、Ａデータストリーム又はＢデータストリームのいずれかに対応した２つのデータワードのうちの１つを、各処理段１０８、１１６の入力において選択するために用いられる。図２Ａに示す構成要素は、当該技術分野では明らかのように、信号（図示せず）により、必要に応じてＡデータストリーム又はＢデータストリームの処理を選択できるように制御される。
【００２０】
例えば、Ａデータストリームを処理するためには、入力端子ｉｎＡに新たなデータが供給されている間、マルチプレクサ１０６は、ＸＯＲゲート１０２の出力を選択する。これにより、入力端子ｉｎＡからのデータが処理段１０８によって処理され、レジスタ１１０、１１２に供給される。レジスタ１１０の入力端子におけるデータは、クロックに同期してラッチされ、処理段１０８からの処理された入力端子ｉｎＡのデータワードがレジスタ１１０に記憶される。この値は、Ａデータストリームの処理を中断している如何なる長さの時間、記憶しておくことができる。Ａデータストリームの処理を中断している間は、異なるデータストリーム、例えばＢデータストリームの処理を続けることができる。Ａデータストリームのデータをレジスタ１１０に保持している間に、レジスタ１１２からＢデータストリームのデータを処理段１１６に出力することができる。したがって、これらのレジスタ１１０、１１１により、他のデータストリームを処理するために、１つのデータストリームの処理を中断することができる。なお、この実施例では、図を簡単にするために、処理段を２段とし、２つのレジスタバンクを用いているが、用いるレジスタバンクの数を、中断する処理段の段数に合わせることができることは明らかである。後述するように、これにより、データストリームの制御の度合いは異なり、マルチプレクサの入力の数も異なる。さらに、各レジスタバンクに３つ以上のレジスタを設けることもできる。例えば、処理段１０８からの出力が供給され、マルチプレクサ１１４に供給するただ２つのレジスタ１１０、１１２の代わりに、処理するデータストリームの数に対応した数のレジスタを設けることができる。
【００２１】
図２Ａに示す本発明の好ましい実施例において、ＡデータストリームとＢデータストリームとが交互に各処理段１０８、１１６に供給される。これにより、完全に分離されたデータストリームを交互に、すなわち時間的に多重化して処理することができる。したがって、１つのデータストリームが遅れても、他のデータストリームの処理を続けることができる。
【００２２】
この交互の時間多重モードにおいて、処理段１０８は、処理段１１６がＢデータストリームを処理している間も、Ａデータストリームを処理している。処理段１０８、１１６が同時にそれらの処理を終了したときは、処理段１０８のＡデータストリームは、レジスタ１１０に記憶され、処理段１１６のＢデータストリームは、レジスタ１２０に記憶される。この処理は、２段の処理段からなる回路における完全な１ラウンドの半分にすぎないので、そのラウンドの後半では、処理段１０８は、レジスタ１２０から出力されるＢデータストリームを処理し、処理段１１６は、レジスタ１１０から出力されるＡデータストリームを処理する。
【００２３】
図２Ｂは、時間多重処理を示す図である。図２Ｂは、６個の信号ｉｎＡ、ｉｎＡ’、ＯＵＴＡ、ｉｎＢ、ｉｎＢ’、ＯＵＴＢのタイムチャートを示す。図２Ｂに示すように、Ａデータストリームは、第１の半サイクル、すなわちフェーズＡにおいて処理段１０８に供給され、Ｂデータストリームは、第２の半サイクル、すなわちフェーズＢにおいて処理段１０８に供給される。このことは、処理段１０８から、Ａデータストリームの結果がフェーズＡの終わりに出力され、Ｂデータストリームの結果がフェーズＢの終わりに出力されることを意味している。
【００２４】
図２Ｂの信号ｉｎＡ’の行は、各ラウンドのフェーズＢにおいて、レジスタ１１０がＡデータストリームをラッチして保持し、利用可能なこと表している。すなわち、ラウンド１０（第１のラウンド）の処理では、レジスタ１１０の出力において信号Ａ’１０がフェーズＢ間利用可能になる。同様に、ラウンド９では、信号Ａ９’がラウンド９のフェーズＢにおいて利用可能になる。各ラウンドの終わりにおいて、処理段１１６の出力は、Ａデータストリームのデータである。このデータは、レジスタ１１８にラッチされ、信号ＯＵＴＡとして利用可能である。これは、信号ＯＵＴＡの行に示される。同様に、Ｂデータストリームのデータは、２段目の処理段である処理段１１６によって、各ラウンドのフェーズＡの間に処理され、各ラウンドのフェーズＡの終わりにおいて、信号ＯＵＴＢが利用可能になる。このことは、図２Ｂに示す信号ＯＵＴＢの行に示される。
【００２５】
したがって、図２Ｂに示すタイムチャートからも明らかなように、図２Ａに示すハードウェアでは、２つの異なるデータストリームを、処理段を二重化するような更なる回路を必要とすることなく、交互に、すなわち時間的に多重化して処理することができる。
【００２６】
以上、本発明を特定の実施例について説明したが、好ましい実施例を、本発明の範囲から逸脱することなく、変形及び変更できることは明らかである。例えば、処理段の機能を加算、入換え、排他的論理和として示したが、各段において、あらゆる種類の処理を実行することができ、また、同じ回路内における異なる処理段において、異なる種類の演算を実行できることは、言うまでもない。複数の処理段におけるレジスタバンクの位置は、装置全体に対して、対称である必要はない。すなわち、レジスタバンクは、直列に接続された処理段の１／３の下流の位置、全処理段の最後の位置等に配置することができる。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ定められる。
【図面の簡単な説明】
【００２７】
【図１Ａ】従来の暗号化／復号装置の回路構成を示すブロック図である。
【図１Ｂ】図１Ａに示す暗号化／復号装置の処理を示すタイムチャートである。
【図２Ａ】本発明のデジタル処理装置の全体の回路構成を示すブロック図である。
【図２Ｂ】図２Ａに示すデジタル処理装置の時間多重処理を示すタイムチャートである。
【図１Ａ】
0004342798.tif 000002
【図１Ｂ】
0004342798.tif 000003
【図２Ａ】
0004342798.tif 000004
【図２Ｂ】
0004342798.tif 000005