(57)【特許請求の範囲】
【請求項１】
クロックトリガーに同期して少なくとも1ビットの出力データ項目のストリームを発生するための同期データストリーム発生器であって、そのデータストリーム発生器が、
各副発生器Miが、それぞれのクロック入力端とそれぞれの出力端を有し、かつ各副発生器Miが、それぞれのクロック入力端を介して受信されたトリガーに応じて各出力端に少なくとも1ビットのデータ項目を発生するように作動する、ｉ＞1の複数の副発生器Miと、
前記データストリーム発生器の前記出力データ項目を形成する前記副発生器Miの各々の発生されたデータ項目を結合するための手段と、
前記クロックトリガーを受信するための入力端、および出力端を有し、かつ前記クロックトリガーに応じて前記出力端に少なくとも1ビットの制御データ項目を発生するように作動する制御副発生器Cと、
前記制御副発生器Cの前記制御データ項目に依存して前記副発生器Miの前記クロック入力端の少なくとも1つにトリガーを供給するように作動する制御手段とを
有する同期データストリーム発生器において、
前記制御手段が、少なくとも1つの副発生器Miに対し、前記制御副発生器Cの前記制御データ項目に依存して、異なる整数のグループHiから数値ni,jを選択する、関連する数値選択器Siを有し、前記グループHiの少なくとも2つの数値が、ゼロより大きく、前記グループHiが、前記数値選択器Siに関連し、そして前記制御手段が、前記出力端で、最後に発生されたデータ項目に続く選択されたni,j番目のデータ項目を前記関連する副発生器Miに供給させるように作動することを特徴とするデータストリーム発生器。
【請求項２】
前記数値選択器Siが、グループHiの前記数値ni,jの各々が実質的に同じ機会で選択されるように、均衡のとれた選択を実行するように作動することを特徴とする請求項1に記載のクロック制御データストリーム発生器。
【請求項３】
前記グループHiの少なくとも1つが、整数1と1より大きい1つの整数で構成されることを特徴とする請求項1に記載のクロック制御データストリーム発生器。
【請求項４】
前記グループHiの少なくとも2つが異なっていて、前記制御手段が、前記副発生器Miの少なくとも2つに対し、異なる整数の関連するグループHiから前記数値ni,jを選択する関連する数値選択器Siを有することを特徴とする請求項１に記載のクロック制御データストリーム発生器。
【請求項５】
前記副発生器Miおよび／または前記制御副発生器Cが、データ項目の擬似ランダムストリームを生成する有限状態機械を有することを特徴とする請求項１に記載のクロック制御データストリーム発生器。
【請求項６】
前記有限状態機械が、フィードバックシフトレジスタを有することを特徴とする請求項５に記載のクロック制御データストリーム発生器。
【請求項７】
前記フィードバックシフトレジスタが、下記の特性多項式、
【式1】
0004460772.tif 000016
に関連する線形フィードバックシフトレジスタであり、前記線形フィードバックシフトレジスタが、K個の順次並べられた記憶セルp0〜pk-1を有し（p0は、前記出力データ項目が供給される側の前記低位のセルであり）、前記線形シフトレジスタが、tからt＋1までの時間に通過する前記トリガーに応じて、前記記憶セル間のデータ項目の下記の移行を並列に実行し、出力データ項目としてn番目の項目を供給するように作動することを特徴とする請求項6に記載のクロック制御データストリーム発生器。
【式2】
0004460772.tif 000017
【請求項８】
前記制御副発生器Cの前記制御データ項目が、複数のL出力ビットを有し、そして前記数値選択器Siが、前記グループHiの前記数値ni,jの1つに前記L出力ビットをマップするためのマッピング手段を有することを特徴とする請求項1に記載のクロック制御データストリーム発生器。
【請求項９】
クロックトリガーに同期して、解読されたデータ項目のストリームを受信するための入力と、
前記クロックトリガーに応じて、データ項目のストリームを発生する請求項1に記載のデータストリーム発生器と、
受信された前記解読されたデータ項目のストリームと、発生された前記データ項目のストリームを結合して、暗号化されたデータ項目のストリームを供給する手段とを
有する暗号化ステーション。
【請求項１０】
クロックトリガーに同期して、暗号化されたデータ項目のストリームを受信するための入力と、
前記クロックトリガーに応じて、データ項目のストリームを発生する請求項1に記載のデータストリーム発生器と、
受信された前記暗号化されたデータ項目のストリームと、発生された前記データ項目のストリームを結合して、解読されたデータ項目のストリームを供給する手段とを
有する解読ステーション。
【請求項１１】
請求項10に記載の解読ステーションと、記録担体から暗号化されたデータ項目のストリームを読み取り、かつ解読のために前記解読ステーションに前記データ項目のストリームを供給する手段とを有する民生用電子機器装置。
【請求項１２】
データストリーム発生手段によって、クロックトリガーに同期して、各データ項目が少なくとも1ビットであるデータ項目の出力ストリームを発生する方法であって、この方法が
制御副発生手段が、前記クロックトリガーに同期して、各制御データ項目が少なくとも1ビットである制御データ項目の制御ストリームを発生するステップと、
副発生手段が、各データ項目が少なくとも1ビットであるデータ項目の複数のデータストリームDSiを発生するステップであって、各データストリームDSiが、それぞれの前もって定められたアルゴリズムAiに従って発生されるステップと、
制御手段が、前記制御ストリームの前記制御データ項目に依存して、前記データストリームDSiの少なくとも1つに対するデータ項目の前記発生を制御するステップと、
結合手段が、前記発生されたデータストリームDSiを結合することによって前記出力ストリームを形成するステップとを
有する方法において、
前記制御手段が、前記データストリームDSiの少なくとも1つに対するデータ項目の前記発生を制御する前記ステップが、関連する数値選択手段が、異なる整数の関連するグループから数値nを前記データストリームDSiに対し選択するステップを含み、かつ前記グループの少なくとも2つの数値がゼロより大きく、前記選択が前記制御ストリームの前記制御データ項目に依存し、そして
前記副発生手段が、前記データストリームDSiに対するデータ項目を発生する前記ステップが、前記副発生手段が、前記アルゴリズムAiに従って、最後に発生されたデータ項目に続くn番目のデータ項目になるであろうデータ項目を、前記データストリームDSiの次のデータ項目として発生するステップを含むことを特徴とする方法。
【請求項１３】
プロセッサに請求項12に記載の前記方法を実行させるためのコンピュータプログラムを記録したコンピュータが読取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、クロックトリガーに同期して少なくとも1ビットの出力データ項目のストリームを発生するための同期データストリーム発生器であって、そのデータストリーム発生器が、
各副発生器Miが、それぞれのクロック入力端とそれぞれの出力端を有し、かつ各副発生器Miが、それぞれのクロック入力端を介して受信されたトリガーに応じて各出力端に少なくとも1ビットのデータ項目を発生するように作動する、ｉ＞1の複数の副発生器Miと、
データストリーム発生器の出力データ項目を形成する副発生器Miの各々の発生されたデータ項目を結合するための手段と、
クロックトリガーを受信するための入力端、および出力端を有し、かつクロックトリガーに応じて出力端に少なくとも1ビットの制御データ項目を発生するように作動する制御副発生器Cと、
制御副発生器Cの制御データ項目に応じて副発生器Miのクロック入力端の少なくとも1つにトリガーを供給するように作動する制御手段とを
有する同期データストリーム発生器に関する。
【０００２】
本発明は、さらに同期データストリーム発生器を有する暗号化、および／または解読ステーションに関する。本発明は、また同期データストリーム発生器を有する解読ステーションを有する装置にも関する。
【０００３】
本発明は、さらにクロックトリガーに同期して少なくとも1ビットの各々のデータ項目の出力ストリームを発生させる方法であって、この方法が
前記クロックトリガーに同期して少なくとも1ビットの各制御データ項目の制御ストリームを発生させるステップと、
各データストリームDSiが、それぞれ前もって定められたアルゴリズムAiにより発生された、少なくとも1ビットの各データ項目の複数のデータストリームDSiを発生させるステップと、
前記制御ストリームの前記制御データ項目に依存して、前記データストリームDSiの少なくとも1つに対するデータ項目の前記発生を制御するステップと、
前記発生されたデータストリームDSiを結合するステップとを
有する方法にも関する。
【０００４】
また本発明は、その方法を実行するためのコンピュータプログラムと、プログラムを記録させたコンピュータが読取りできる記憶媒体にも関する。
【０００５】
【従来の技術】
このような同期データストリーム発生器は、「暗号応用ハンドブック（Handbook of Applied Cryptography）」、A.J.Menzes、P.C.van Oorschot、S.A.Vanstone、CRC Press、1997年、209〜211頁の交互ステップ発生器として公知である。このシステムでは、2つの線形フィードバックシフトレジスタ（LFSR）M1とM2が、2つのデータストリームを発生するために使用される。このデータストリームは、XOR（排他的論理和）演算を経てデータストリーム発生器の1ビットの出力ストリームに結合される。第3のLFSR Cは、その出力がLFSR M1とM2のクロックを制御する制御副発生器として使用される。演算の順序は以下のようになる。
−レジスタCが、同期され、
−Cの出力が論理「1」の場合、M1は同期され、M2は同期されないが、その出力は繰り返され、
−Cの出力が理論「0」の場合、M2は同期され、M1は同期されないが、その出力は繰り返され、
−M1とM2の出力が、結合される。
非直線性は、副発生器Cの出力の制御下で1回につき1つの副発生器を不規則に同期するCを使用してこのシステムに導入される。データストリーム発生器は多くの応用に利用することができる。たとえば、データストリーム発生器は擬似ランダム発生器として使用することができ、それ自体は、データビットに出力ビットのモジュロ2（XOR）を加えることによってデータの暗号化／解読に利用することができる。
【０００６】
【課題を解決するための手段】
本発明の目的は、公知の攻撃に対し耐性がより強い、同期データストリームを発生させる方法を提供することである。さらに、別の目的は、ハードウエアを実現する場合のゲートの複雑性が低くかつデジタルのオーディオ／ビデオ信号の暗号化／解読に適する速度を提供するデジタルの民生用電子機器システムの使用に適した方法を提供することである。
【０００７】
本発明の目的を満たすために、前記制御手段は、少なくとも1つの副発生器Miに対し、前記制御副発生器Cの前記制御データ項目に依存して、異なる整数のグループHiから数値ni,jを選択する、関連する数値選択器Siを有し、前記グループHiの少なくとも2つの数値が、ゼロより大きく、前記グループHiが、前記数値選択器Siに関連し、そして前記制御手段が、前記出力端で、最後に発生されたデータ項目に続く選択されたni,j番目のデータ項目を前記関連する副発生器Miに供給させるように作動する。このように、副発生器Miは、より高いレベルの非線形動作を発生させるように、より不規則にトリガー／同期される。この副発生器が同期されない（すなわち、同じ出力が維持される）約半分の時間に代わって、そのグループは、副発生器がより頻繁に同期され（すなわち、副発生器に対し「0」を選択し、そのためその副発生器が同期されず、他の副発生器が同期される結果、出力が一定に保持される頻度がより少なくなり）そしてある時点で2つ以上のトリガーが供給される（すなわち、実際には多くのni,j-1のデータ項目が省略され、ni,j番目のデータ項目が出力に供給される）ことが可能となるように、ゼロでない少なくとも2つの整数を伴ってより大きくなることができる。このような省略は、データストリーム発生器に対する1つのクロックトリガーに対応させて副発生器をni,j回同期させることにより単純に実行することができる。副発生器の同じ出力を維持しない、またはそれほど頻繁に維持させないことによって、データストリーム発生器は、より多くの状態を有する。これを達成するために必要なハードウエア／ソフトウエアは、高速の民生用電子機器の応用に適し、必要な改良は最小限で済む。
【０００８】
データ項目は、単純に1ビット（0または1）で構成しても良いし、広範囲な数をカバーするためにより多くのビットを使用して形成しても良い。副発生器の出力を結合することは、ビットに関するXORのような簡単な演算を使用することにより行われ、また、より複雑な（非）線形演算を用いても良い。
【０００９】
従属項2に定義された措置による具体例では、均衡のとれた選択が、最大限の期間を保証する効果的な方法である。
【００１０】
従属項3に記載の手段によると、結合された出力が各副発生器の新たな寄与を常に含むように、この副発生器は、常に少なくとも一度同期される。1つの数値が「1」である2つの数値からの選択は、簡単で速い実行を可能にする。
【００１１】
従属項4に記載の手段によると、少なくとも2つの副発生器は、この非直線性をさらに増加させるために、「不規則に」そして様々に同期される。
【００１２】
従属項5に記載の手段によると、有限状態機械は、発生器として使用される。
【００１３】
従属項6に記載の手段によると、フィードバックシフトレジスタが、民生用電子機器の応用に適した単純で速い実行が可能な有限状態機械として使用される。このフィードバックシフトレジスタは、線形フィードバック、またはその代わりに非線形フィードバックを含むこともある。
【００１４】
従属項7に記載の手段によると、ni,j番目の出力データ項目は、ni,jの次にくるクロックトリガーを使用する代わりに1動作（1トリガー）で発生される。この方法により、高速のビットレートは、ゲートの複雑さをわずかしか増加させずに達成することが出来る。これは、高速のビットレートと低価格が要求されるCDまたはDVD等のプレーヤのようなデジタルのオーディオ／ビデオ装置の使用にとりわけ適するストリーム発生器を構成する。
【００１５】
従属項8に記載の手段によると、制御データ項目のより多くの出力ビットが、数値選択処理における多様性を増すために使用される。
【００１６】
データストリーム発生器は、データ項目の擬似ランダムストリームを発生するための暗号化および／または解読に使用されることが好ましい。その場合、対称の暗号化／解読は、発生されたデータストリームを暗号化／解読されるストリームと結合させる（たとえば、XOR演算を使用）ことによって達成できる。解読器は、暗号化されたデータストリームをテープまたはディスクのような記録担体から読み出すディスクプレーヤのような再生機器に内蔵されることが有利である。暗号器と解読器は、デジタルデータ、特にIEEE1394のようなネットワークを介したオーディオおよび／またはビデオのデータの伝送を保護するためにも使用することができる。このような場合、未処理のデジタルデータは、送信装置で暗号化され、受信装置で解読される。鍵情報は、公開鍵交換法のような如何なる適切な方法によって提供しても良い。
【００１７】
公知の攻撃に対しより耐性のある同期データストリームを発生させる方法を提供することが、本発明の１つの目的である。さらに、別の目的は、ハードウエアを実現する場合のゲートの複雑性が低くかつデジタルのオーディオ／ビデオ信号の暗号化／解読に適する速度を提供するデジタルの民生用電子機器システムの使用に適した方法を提供することである。
【００１８】
本発明の目的を満たすために、この方法は、
前記データストリームDSiの少なくとも1つに対するデータ項目の前記発生を制御する前記ステップが、異なる整数の関連するグループから数値nを前記データストリームDSiに対し選択することを含み、かつ前記グループの少なくとも2つの数値がゼロより大きく、前記選択が前記制御ストリームの前記制御データ項目に依存し、そして
前記データストリームDSiに対するデータ項目を発生する前記ステップが、前記アルゴリズムAiによって最後に発生されたデータ項目に続くn番目のデータ項目になるであろうデータ項目を、前記データストリームDSiの次のデータ項目として発生させることを含むこと
を特徴とする。
【００１９】
この方法において、アルゴリズムAiは、副発生器M1の機能性に対応していて、これ自体を、個別に詳細に述べることはしない。
【００２０】
本発明は、この方法をプロッセサに実行させるコンピュータプログラムにも関する。このプログラムは、埋め込まれたマイクロコントローラあるいはリスクプロセッサのようなすべての適切なプロセッサのための、また暗号化ソフトウエアを実行するために最適化されたプロセッサのためのものである。当業者であれば、この方法のステップをソフトウエア機能で実行することもできるので、さらに詳しく述べることはしない。
【００２１】
また、本発明は、コンピュータプログラムを記録するコンピュータが判読できる記憶媒体に関する。磁気記憶媒体（たとえば、フロッピーディスク）、またはCD-ROMのような光学式記憶媒体、または（不揮発性）RAMあるいはROMのような電気的記憶媒体のように、いかなる適切な媒体も使用することができる。
【００２２】
【発明を実施するための形態】
本発明のこれらのそして他の観点は、図示された実施例を参照して明らかになるであろう。
【００２３】
図1において、図示の発生器100は、2つの副発生器110（M1）と120（M2）を有する。この副発生器M1とM2は、クロックトリガーを受信する各々の入力112と122を有する。各々の入力112と122を介して受信されたクロックトリガーに応じてこの副発生器M1とM2は、各々の出力114と124にデータ項目を供給する。これは、データ項目の各々のストリームDS1とDS2をもたらす。一般に、各データ項目は、1ビットで構成される。しかし、このデータ項目は、2ビット以上により示される如何なる数値範囲も持ち得ることは理解出来るであろう。副発生器の出力データ項目は、同じ範囲からのものが好ましい。発生器100は、副発生器M1とM2によって発生されたデータ項目を結合するための結合手段130を有する。データストリームDS1とDS2を結合する簡単な方法は、ビットに関するXOR演算を用いることである。ここでは、2つの副発生器M1とM2しか示されていないが、副発生器を2つ以上並列に並べ、それらの出力を結合させることも同様に可能であることは理解されるであろう。一般に、より多くの副発生器を使用することは、実行のためにより多くのハードウエアまたはソフトウエアの処理を必要とする他、データストリーム発生器100の期間を増加させ、かつ線形の複雑性を増加させるであろう。
【００２４】
データストリーム発生器100は、さらに制御副発生器140（C）を有する。制御副発生器Cは、クロックトリガーを受信するための入力端142を有する。入力端142は、データストリーム発生器100のクロック入力端102に結合される。クロックトリガーに応じて、副発生器Cは、出力144に制御データ項目を供給する。この副発生器Cの制御データ項目は、副発生器Mi（図1では、1＜i≦2）のクロックを制御するために使用される。発生した制御データ項目は、通常、Miの出力データ項目に結合されないので、この制御データ項目の大きさは、副発生器M1とM2のデータ項目の大きさとは無関係に選ぶことが出来る。
【００２５】
データストリーム発生器100は、また制御手段150を有する。制御手段150は、クロックトリガーを受信するためのクロック入力端152を有する。クロック入力端152は、この制御手段150が制御副発生器Cと確実に同期して動作するように、データストリーム発生器100のクロック入力端102に結合されることが好ましい。しかし、データストリーム発生器100の出力が、クロック入力端102を介して受信されたクロックトリガーと同期している限り、独立したクロックを使用することもできる。制御手段150は、さらに数値選択器を有する。数値選択器は、異なる整数のあらかじめ決定されたグループから数値niを選ぶ。この選択は、制御副発生器Cの制御データ項目に依存して実行される。この制御手段150は、クロックトリガーに応じて、選択された副発生器Miが、最後の出力データ項目に続くni番目のデータ項目を出力端に供給するように作動させる。これは、たとえば、n1＝3では3つのクロックトリガーをM1に供給することによって実行される。したがって、このようにして入力端152の1つのクロックトリガーにより、制御データ項目の値に応じて、たとえば、3つのトリガーをM1の入力端112に供給させることが出来る。この数値選択器は、（ROM、またはその内容が、記録担体のような不揮発性メモリーから読み込まれるRAM）のようなメモリに、グループの数値を記憶させておくことが好ましい。またこのようなアルゴリズムの代わりに、他の手段を、数値を発生させるために使用することも出来る。基本的に、本発明の数値選択と関連するトリガーとは、副発生器の１つのみに対し実行することができる。Miが「同期」される回数を決める数値の選択は、各々の副発生器Miに対し実行することが好ましい。この選択は、種々の副発生器Miに対し数値を順番に選択する1つの数値選択器のみで行うことができる。速度を上げるために、制御手段150は、各副発生器Miに対しそれぞれ数値発生器Siを有することが好ましい。図1で、数値発生器116（S1）は副発生器M1に対応し、数値発生器126（S2）は副発生器M2に対応している。この具体例の場合、各数値発生器116と126は、それぞれのグループHiの数値nijを記憶する各メモリー118と128を有する。グループHiの内少なくとも2つは異なることが有利である。グループHiは、全て異なることが好ましい。
【００２６】
本発明によれば、グループHiは、その内の少なくとも2つの数値がゼロより大きい、少なくとも2つの異なる整数を有する。たとえば、予想されるグループは、「1と3」「1と5」「0、1と7」「0、3と11」などである。このグループは、整数ゼロを含まないことが好ましい。このようにして、データストリーム発生器100に対する各クロックトリガーにより、副発生器Miを少なくとも一度は「同期」されたグループに対応させることが出来る。一般に（たとえば、１つのクロックトリガーを副発生器Miに供給することのみで）副発生器Miが次のデータ項目を出力端に発生させるようにすることは簡単であるので、このグループが、整数1を含むことが好ましい。本発明によると、少なくとも1つの副発生器Miが、トリガーのこの数値がゼロより大きい少なくとも2つの整数に対応したグループHiから選択される、上記の方法で制御されることが理解されるであろう。すべての副発生器が、この方法で制御されることが好ましい。しかしながら、必要に応じ、１つ以上の副発生器を、グループ{0,  1}から数値を選択することにより制御することもできる。
【００２７】
グループHiは、最初の数値が1で、次の数値が1より大きいことが有利である、2つの整数のみで構成されることが好ましい。この方法の場合、制御手段150は、副発生器を「同期」するためにどの数値を使用すべきかと言う二進判定さえすれば良い。このような判定は、制御副発生器Cの1つの出力ビットに基づいて行うことができる。
【００２８】
さらにもう一つの具体例の場合、数値選択機Siは、グループHiの各数値nijが、実質的に同じ機会で選択される均衡のとれた選択を実行するように作動する。これは、様々な方法で実施できる。たとえば、均衡のとれた出力を有する制御副発生器Cを使用し、（たとえば、Hiが2つの数値のみで構成されている場合に、Hiの2つの数値から選択するために、この均衡のとれた制御データ項目の1ビットを直接使用して）この均衡を選択の間維持することにより行うことが出来る。
【００２９】
別の実施例では、有限状態機械が、データ項目の擬似ランダムストリームを発生させる副発生器によって使用される。すべての副発生器Miと制御副発生器Cは、有限状態機械に基づくことが好ましい。各副発生器ごとに、異なる機械が使用されることが有利である。有限状態機械では、クロックトリガーが、機械の状態遷移を発生させ、この状態遷移によりデータ項目が出力される。本発明によると、nijが1より大きい場合、（たとえば、出力のサンプリングが、nij状態遷移トリガーが有限状態機械に供給された後にのみ可能となるように）nij-1出力は、抑制される必要がある。適切な有限状態機械は、いかなるものも使用することができる。たとえば、DESは、出力フィードバックモードで使用することができる。
【００３０】
この有限状態機械は、フィードバックシフトレジスタに基づくのが有利である。いくつかの適切なフィードバックレジスタが、使用できる。図2は、フィードバックレジスタ200を図示する。レジスタ200はk個の連続して並べられた記憶セルp0〜pk-1を有する。この例では、p0は、出力データ項目が供給される側の低位のセルである。一般に、データ項目は、1ビットであるが、セルはそれ以上のビットを記憶することも可能である。入力端210を介して受信されたトリガーに応じて、すべてのセルの内容が、低位のセルの方向に、通常１桁移行される。トリガーは通常クロックパルスであるので、これは、tからt＋1への時間の遷移と見ることができる。移行は以下の式を用いて表すことができる。
【００３１】
【式３】
0004460772.tif 000002
p0の前の内容（たとえば、p0（t））が、レジスタ200の出力端220で得ることが可能になっている。この移行により、セルpkは空になる。このセルは、時刻tで1つ以上の残りのセル内のデータ項目の結合により再ロードされる。p0（t）とp3（t）の内容が、ビットに関するXOR演算を用いて結合されている、単純な線形結合が、次に示されている。
【式４】
0004460772.tif 000003
示された線形フィードバックシフトレジスタ（LFSR）は、以下の多項式によって表すことができる。
f（x）＝xk＋x3＋1
この式では、nビットの記憶セルに対し、
【式５】
0004460772.tif 000004
となる。LFSRは、2k-1の内部状態の1つになることができる（すべてゼロの状態は使用されない）。示された多項式がいわゆる原始関数多項式である場合、出力の反復をなんら伴わない2k-1出力項目の擬似ランダムシーケンスが、発生する。原始多項式は、種々の次数の多項式として周知である。LFSRに基づく各副発生器には、原始多項式に基づくLFSRを使用することが好ましい。このような原始多項式は、種々の次数の多項式として周知である。ハードウエアにより単純に実現するためには、フィードバック関数の実行に少量のロジックしか必要としない、疎行多項式（たとえば、数個の係数しか有しない多項式）を、使用することが好ましい。線形フィードバック関数に代えて、非線形フィードバック関数を使用することもできることは理解できるであろう。
【００３２】
従来のFSRは、FSRにn（n ＞1）個のトリガー（クロックパルス）を供給することによって、最後の出力データ項目に続くn番目のデータ項目を出力させることができる。高速応用の場合、（データストリーム発生器100に供給された1つの入力クロックトリガーによりn個の内部トリガーがFSRに与えられる）クロック逓倍の結果として発生する形式が、問題になることがある。本発明によると、LFSRでは、n番目のデータ項目は、いくらかの追加ロジックを使用し、1つの内部トリガーのみを使用して供給される。これは、次の多項式によって表されるLFSRに対して示される。
f（x）＝x7＋x3＋1
1桁の移行（n＝1）は、次のように表すことができる。
【式６】
0004460772.tif 000005
同様に、2桁の移行（n＝2）は、次のように表すことができる。
【式７】
0004460772.tif 000006
3桁の移行（n＝3）は、次のように表すことができる。
【式８】
0004460772.tif 000007
図3は、このLFSRがグループH＝{1, 3}に対応している（つまり、1桁または3桁の移行が発生する）この原理の可能な実施を示す。最初の桁が従来のフィードバック（n＝1）に対応し、そして次の桁が、3つの連続する従来のシフトおよびフィードバックと同じ効果を持つ新たに定義されたフィードバックに対応するように、各セルごとに、スイッチ310〜370が、それぞれ追加されている。上で定義された多項式については、n＝4に対しても、同じ「1つのトリガー、逓倍シフト／フィードバック」原理を実施することができる。
【式９】
0004460772.tif 000008
多項式f（x）＝x7＋x3＋1 に対し、より一般的には、1つの演算におけるn（1≦n≦4）桁の移行が、下記のように与えられる。
【式１０】
0004460772.tif 000009
特性多項式によるすべてのLFSRに対するこの原理の一般化は、
【式１】
0004460772.tif 000010
によって与えられる。これは、tからt＋1の時間に通過するトリガーに応じて、記憶セル間のデータ項目の下記の移行が、並列に実行される必要があることを示す：
【式２】
0004460772.tif 000011
このようにして、「内部フィードバックループ」を複雑にすることなく、速い実行を達成することが可能となる。レジスタ内にまだ明確に存在していないデータ項目を最も高い次数のセルに供給する必要がある場合、すなわち、この項目を、先ず存在している項目から生成することが必要である場合、このような内部フィードバックループが、発生する。たとえば、1つの一般トリガーに応じて5つの内部シフト／フィードバックが発生する場合、この状況が、この例の多項式f（x）＝x7＋x3＋1に対し発生する。これを表すために、上記の原理をn＝5に拡張すると、以下の関係式が与えられる。
【式１１】
0004460772.tif 000012
これは、p6に対し、
【式１２】
0004460772.tif 000013
を与える。ここで、実際にはセルp7は、存在しない（実際、いったんp6が、従来の方法でフィードバックされた後、p6の新たな内容が（p3と結合させて）p6にフィードバックされると、二重フィードバックの形式が、発生する）。p7の内容は、通常の１つの移行演算の後p6の内容に一致する：
【式１３】
0004460772.tif 000014
このように、上記の一般原理は、さらに多くのロジックと演算（たとえば、1つのXOR演算の代わりに2つの演算）を必要とはするが、拡張することができることは理解されるであろう。
【００３３】
さらに他の実施例では、制御副発生器Cの制御データ項目は、多数のLビットを有する。少なくとも1つ、望ましくは多数の選択器Siが、制御データ項目のLビットを、制御副発生器による出力として、対応するグループHiの整数nijの１つにマップするマッピング手段を有する。原理的に、いかなる適切なマッピングも、使用することができる。均衡のとれたマッピングを、使用することが有利である。図4は、これらの整数の１つに（この例では、この整数が2つの整数の1つのグループから選択される）複数のビット（この例では、Lは3ビット）をマップする好ましい構成を示す。この具体例の場合、それぞれ数値選択器416と426を有する2つの副発生器LFSR1（410）とLFSR2（420）が、使用される。各数値選択器は、1より多いビットを1つのビットにマップするために、それぞれブール関数Fiを有する。この具体例の場合、2ビット（k2とk1）が、1つのビットにマップされている。そのマッピングは、以下の表に示されるように、決められた方法で選択することができる。
【表１】
0004460772.tif 000015
この表の値によると、k2（t）k1（t）＝「01」（二進）の場合、F1 とF2の両方が、出力として二進の「1」を発生し、一方、k2（t）k1（t）＝「00」の場合、F1 は、「1」を発生し、F2は、「0」を発生する。これに代えて、このマッピング表を、たとえば、鍵から、構成可能な初期値に、読み込ませることもできる。図4の構成では、F1 とF2は、異なるマッピングを実施することが好ましい。関数F1とF2は、それらの出力が均衡になるように選択することができる。図示の構成の場合、F1 とF2は、均衡のとれた出力を供給する必要はない。（LFSRの場合に）この出力が均衡していると仮定して、関数の出力と制御副発生器Cの出力ビットk0（t）を結合することにより、均衡は、達成される。この構成の場合、各関数Giが、2つの各ビットストリーム419と429を、各グループHiから選択された数値（これらの数値は、各副発生器Miの「内部クロック」の数値を決める）の各ストリームにマップするために使用される。適切な数値のグループの例は、H1＝{1, 5}とH2＝{1, 7}である。
関数Giは、次のように定義できる。
G1（0）＝1とG1（1）＝5、
G2（0）＝1とG2（1）＝7
別のマッピング関数を、Giに使用することもできる。副発生器Hiが、期間qiを有する有限状態機械であると仮定すると、関数Giは、最適な非線形動作と発生器100全体の最適な期間を得るために、以下の基準を満たすことが好ましい。その基準とは、piが、Giに対する入力ビットのストリームの最短期間であり、かつaiとbiが、この期間（pi＝ai＋bi）中に二進「0」と「1」の数値を示すと仮定した場合、gcd（ai Gi（0）＋bi Gi (1), qi）＝1となることである。類似の基準は、2つより大きい数値を有するグループに適用される。
【００３４】
LFSR1とLFSR2に対する図3の内部の複数移行/フィードパック技術と組み合わせた図4の構成は、約35の1ビットセルのレジスタに対し2000未満のゲートを使用してハードウエアにより実現でき、かつ標準のプログラム可能な素子のような従来技術を用いて80Mbpsを超えるビットレートで動作させることが可能である。明らかに、このシステムをソフトウェア技術を用いて実施することも可能である。
【００３５】
図5は、暗号化／解読ステーション500のブロックダイヤグラムを示す。ステーション500は、それぞれクロックトリガー520と同期して解読される暗号化データ項目のストリーム515を受信する入力端510を有する。クロックは、装置内部で発生させても良いし、データ項目のストリームに付随させても良い。このステーションは、本発明のデータストリーム発生器100も含む。クロックトリガー520は、データストリーム発生器100への入力端に供給され、それに応答してデータ項目の同期ストリーム530が発生する。ステーション500は、発生されたデータストリーム530と受信されたデータストリーム515を結合させるXOR演算子のような結合手段540を有する。同じストリーム発生器100を解読ステーションと暗号化ステーションの両方に使用する（すなわち、同じ発生機能を鍵のような同じ初期値の制御下で使用する）ことにより、いわゆる対称暗号化システムが、得られる。この暗号化装置は、光学式記憶媒体のような記録担体に暗号化された形式で記憶される、または、たとえば、インターネットを介して暗号化された形式で伝送される、デジタルのオーディオ／ビデオデータを暗号化するための使用に有効である。暗号化されたデータは、読み取り／受信ステーションで容易に利用できるようにさせることができるが、鍵へのアクセスは、この読み取り／受信ステーション内の解読ステーションに限定される。たとえば、このように限定された利用は、暗号化された形式で鍵を伝送する公開鍵暗号化方式を用いて達成することができる。このような技術を使うことにより、認証された受け取り手のみが、鍵を受け取り、データを解読できることが保証される。記憶媒体による配布の場合、記録媒体から鍵を読取るために、特別に認証されたハードウエアを、読み取り器内で使用することが出来る。この鍵は、通常のデータ読み出しハードウエアでは利用できない方法で記憶媒体に格納させることができる。この場合、このような鍵は、外部から通常は利用できない方法で解読ステーションに供給されることが好ましい。たとえば、鍵読み出しハードウエアと解読ステーションは、不正に開けられて改ざんされないように作られた同一IC内に組み込むことができる。図5は読み取り／再生装置550内の解読ステーション500の使用を示す。この装置550は記憶媒体560を有する。記憶媒体（記録担体）を恒久的に有する代わりに、この装置は、記憶手段を受けるトレーのような収納手段を有することも可能である。装置550は、記憶媒体から解読ステーション500へのデータの読み取り／供給のためのタイミングを供給するクロック570を有する。読み取りは、データストリーム515を供給する読み取り器580によって実行される。また読み取り器580は、解読ステーション500を初期化するための鍵のようなデータを検索する。初期化データ590は、解読ステーションへ供給される。使用される初期化データとの結合で必要な場合には、類似の逆構成を、データを暗号化し、そして暗号化された形式でそのデータを記憶するために使用することができることは、理解されるであろう。
【００３６】
本発明による暗号化／解読を利用すれば、コンテンツの所有者または販売者は、効果的な著作権保護を達成することができる。とりわけ家庭用電子機器に対する受信／読み取り装置は、経済性に優れた方法で実現できる。
【図面の簡単な説明】
【図１】同期データストリーム発生器100のブロックダイヤグラムを示す。
【図２】フィードバックシフトレジスタを示す。
【図３】「1クロック、マルチステップ／フィードバック」LFSRを示す。
【図４】データストリーム発生器の推奨具体例のブロックダイヤグラムを示す。
【図５】暗号化／解読ステーションを示す。
【符号の説明】
100 データストリーム発生器
116  数値発生器
118  メモリ
126  数値発生器
128  メモリ
140  制御副発生器
150 制御手段
200 レジスタ
300 LFSR
410  副発生器LSFR1
416  数値選択器
420  副発生器LSFR2
426  数値選択器
500 暗号化／解読ステーション
550 読み取り／再生装置
【図１】
0004460772.tif 000018
【図２】
0004460772.tif 000019
【図３】
0004460772.tif 000020
【図４】
0004460772.tif 000021
【図５】
0004460772.tif 000022