JP4460772B2 - Synchronous stream cipher - Google Patents
Synchronous stream cipher Download PDFInfo
- Publication number
- JP4460772B2 JP4460772B2 JP2000556474A JP2000556474A JP4460772B2 JP 4460772 B2 JP4460772 B2 JP 4460772B2 JP 2000556474 A JP2000556474 A JP 2000556474A JP 2000556474 A JP2000556474 A JP 2000556474A JP 4460772 B2 JP4460772 B2 JP 4460772B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- generator
- stream
- sub
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000001360 synchronised effect Effects 0.000 title claims description 27
- 238000000034 method Methods 0.000 claims description 22
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 20
- 210000004027 cell Anatomy 0.000 claims description 13
- 230000007704 transition Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 210000000352 storage cell Anatomy 0.000 claims description 3
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 102100034497 Cip1-interacting zinc finger protein Human genes 0.000 description 1
- 102100033140 Dolichyldiphosphatase 1 Human genes 0.000 description 1
- 101000710327 Homo sapiens Cip1-interacting zinc finger protein Proteins 0.000 description 1
- 101000927648 Homo sapiens Dolichyldiphosphatase 1 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Storage Device Security (AREA)
Description
【0001】
【発明が属する技術分野】
本発明は、クロックトリガーに同期して少なくとも1ビットの出力データ項目のストリームを発生するための同期データストリーム発生器であって、そのデータストリーム発生器が、
各副発生器Miが、それぞれのクロック入力端とそれぞれの出力端を有し、かつ各副発生器Miが、それぞれのクロック入力端を介して受信されたトリガーに応じて各出力端に少なくとも1ビットのデータ項目を発生するように作動する、i>1の複数の副発生器Miと、
データストリーム発生器の出力データ項目を形成する副発生器Miの各々の発生されたデータ項目を結合するための手段と、
クロックトリガーを受信するための入力端、および出力端を有し、かつクロックトリガーに応じて出力端に少なくとも1ビットの制御データ項目を発生するように作動する制御副発生器Cと、
制御副発生器Cの制御データ項目に応じて副発生器Miのクロック入力端の少なくとも1つにトリガーを供給するように作動する制御手段とを
有する同期データストリーム発生器に関する。
【0002】
本発明は、さらに同期データストリーム発生器を有する暗号化、および/または解読ステーションに関する。本発明は、また同期データストリーム発生器を有する解読ステーションを有する装置にも関する。
【0003】
本発明は、さらにクロックトリガーに同期して少なくとも1ビットの各々のデータ項目の出力ストリームを発生させる方法であって、この方法が
前記クロックトリガーに同期して少なくとも1ビットの各制御データ項目の制御ストリームを発生させるステップと、
各データストリームDSiが、それぞれ前もって定められたアルゴリズムAiにより発生された、少なくとも1ビットの各データ項目の複数のデータストリームDSiを発生させるステップと、
前記制御ストリームの前記制御データ項目に依存して、前記データストリームDSiの少なくとも1つに対するデータ項目の前記発生を制御するステップと、
前記発生されたデータストリームDSiを結合するステップとを
有する方法にも関する。
【0004】
また本発明は、その方法を実行するためのコンピュータプログラムと、プログラムを記録させたコンピュータが読取りできる記憶媒体にも関する。
【0005】
【従来の技術】
このような同期データストリーム発生器は、「暗号応用ハンドブック(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)を加えることによってデータの暗号化/解読に利用することができる。
【0006】
【課題を解決するための手段】
本発明の目的は、公知の攻撃に対し耐性がより強い、同期データストリームを発生させる方法を提供することである。さらに、別の目的は、ハードウエアを実現する場合のゲートの複雑性が低くかつデジタルのオーディオ/ビデオ信号の暗号化/解読に適する速度を提供するデジタルの民生用電子機器システムの使用に適した方法を提供することである。
【0007】
本発明の目的を満たすために、前記制御手段は、少なくとも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回同期させることにより単純に実行することができる。副発生器の同じ出力を維持しない、またはそれほど頻繁に維持させないことによって、データストリーム発生器は、より多くの状態を有する。これを達成するために必要なハードウエア/ソフトウエアは、高速の民生用電子機器の応用に適し、必要な改良は最小限で済む。
【0008】
データ項目は、単純に1ビット(0または1)で構成しても良いし、広範囲な数をカバーするためにより多くのビットを使用して形成しても良い。副発生器の出力を結合することは、ビットに関するXORのような簡単な演算を使用することにより行われ、また、より複雑な(非)線形演算を用いても良い。
【0009】
従属項2に定義された措置による具体例では、均衡のとれた選択が、最大限の期間を保証する効果的な方法である。
【0010】
従属項3に記載の手段によると、結合された出力が各副発生器の新たな寄与を常に含むように、この副発生器は、常に少なくとも一度同期される。1つの数値が「1」である2つの数値からの選択は、簡単で速い実行を可能にする。
【0011】
従属項4に記載の手段によると、少なくとも2つの副発生器は、この非直線性をさらに増加させるために、「不規則に」そして様々に同期される。
【0012】
従属項5に記載の手段によると、有限状態機械は、発生器として使用される。
【0013】
従属項6に記載の手段によると、フィードバックシフトレジスタが、民生用電子機器の応用に適した単純で速い実行が可能な有限状態機械として使用される。このフィードバックシフトレジスタは、線形フィードバック、またはその代わりに非線形フィードバックを含むこともある。
【0014】
従属項7に記載の手段によると、ni,j番目の出力データ項目は、ni,jの次にくるクロックトリガーを使用する代わりに1動作(1トリガー)で発生される。この方法により、高速のビットレートは、ゲートの複雑さをわずかしか増加させずに達成することが出来る。これは、高速のビットレートと低価格が要求されるCDまたはDVD等のプレーヤのようなデジタルのオーディオ/ビデオ装置の使用にとりわけ適するストリーム発生器を構成する。
【0015】
従属項8に記載の手段によると、制御データ項目のより多くの出力ビットが、数値選択処理における多様性を増すために使用される。
【0016】
データストリーム発生器は、データ項目の擬似ランダムストリームを発生するための暗号化および/または解読に使用されることが好ましい。その場合、対称の暗号化/解読は、発生されたデータストリームを暗号化/解読されるストリームと結合させる(たとえば、XOR演算を使用)ことによって達成できる。解読器は、暗号化されたデータストリームをテープまたはディスクのような記録担体から読み出すディスクプレーヤのような再生機器に内蔵されることが有利である。暗号器と解読器は、デジタルデータ、特にIEEE1394のようなネットワークを介したオーディオおよび/またはビデオのデータの伝送を保護するためにも使用することができる。このような場合、未処理のデジタルデータは、送信装置で暗号化され、受信装置で解読される。鍵情報は、公開鍵交換法のような如何なる適切な方法によって提供しても良い。
【0017】
公知の攻撃に対しより耐性のある同期データストリームを発生させる方法を提供することが、本発明の1つの目的である。さらに、別の目的は、ハードウエアを実現する場合のゲートの複雑性が低くかつデジタルのオーディオ/ビデオ信号の暗号化/解読に適する速度を提供するデジタルの民生用電子機器システムの使用に適した方法を提供することである。
【0018】
本発明の目的を満たすために、この方法は、
前記データストリームDSiの少なくとも1つに対するデータ項目の前記発生を制御する前記ステップが、異なる整数の関連するグループから数値nを前記データストリームDSiに対し選択することを含み、かつ前記グループの少なくとも2つの数値がゼロより大きく、前記選択が前記制御ストリームの前記制御データ項目に依存し、そして
前記データストリームDSiに対するデータ項目を発生する前記ステップが、前記アルゴリズムAiによって最後に発生されたデータ項目に続くn番目のデータ項目になるであろうデータ項目を、前記データストリームDSiの次のデータ項目として発生させることを含むこと
を特徴とする。
【0019】
この方法において、アルゴリズムAiは、副発生器M1の機能性に対応していて、これ自体を、個別に詳細に述べることはしない。
【0020】
本発明は、この方法をプロッセサに実行させるコンピュータプログラムにも関する。このプログラムは、埋め込まれたマイクロコントローラあるいはリスクプロセッサのようなすべての適切なプロセッサのための、また暗号化ソフトウエアを実行するために最適化されたプロセッサのためのものである。当業者であれば、この方法のステップをソフトウエア機能で実行することもできるので、さらに詳しく述べることはしない。
【0021】
また、本発明は、コンピュータプログラムを記録するコンピュータが判読できる記憶媒体に関する。磁気記憶媒体(たとえば、フロッピーディスク)、またはCD-ROMのような光学式記憶媒体、または(不揮発性)RAMあるいはROMのような電気的記憶媒体のように、いかなる適切な媒体も使用することができる。
【0022】
【発明を実施するための形態】
本発明のこれらのそして他の観点は、図示された実施例を参照して明らかになるであろう。
【0023】
図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の期間を増加させ、かつ線形の複雑性を増加させるであろう。
【0024】
データストリーム発生器100は、さらに制御副発生器140(C)を有する。制御副発生器Cは、クロックトリガーを受信するための入力端142を有する。入力端142は、データストリーム発生器100のクロック入力端102に結合される。クロックトリガーに応じて、副発生器Cは、出力144に制御データ項目を供給する。この副発生器Cの制御データ項目は、副発生器Mi(図1では、1<i≦2)のクロックを制御するために使用される。発生した制御データ項目は、通常、Miの出力データ項目に結合されないので、この制御データ項目の大きさは、副発生器M1とM2のデータ項目の大きさとは無関係に選ぶことが出来る。
【0025】
データストリーム発生器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)のようなメモリに、グループの数値を記憶させておくことが好ましい。またこのようなアルゴリズムの代わりに、他の手段を、数値を発生させるために使用することも出来る。基本的に、本発明の数値選択と関連するトリガーとは、副発生器の1つのみに対し実行することができる。Miが「同期」される回数を決める数値の選択は、各々の副発生器Miに対し実行することが好ましい。この選択は、種々の副発生器Miに対し数値を順番に選択する1つの数値選択器のみで行うことができる。速度を上げるために、制御手段150は、各副発生器Miに対しそれぞれ数値発生器Siを有することが好ましい。図1で、数値発生器116(S1)は副発生器M1に対応し、数値発生器126(S2)は副発生器M2に対応している。この具体例の場合、各数値発生器116と126は、それぞれのグループHiの数値nijを記憶する各メモリー118と128を有する。グループHiの内少なくとも2つは異なることが有利である。グループHiは、全て異なることが好ましい。
【0026】
本発明によれば、グループHiは、その内の少なくとも2つの数値がゼロより大きい、少なくとも2つの異なる整数を有する。たとえば、予想されるグループは、「1と3」「1と5」「0、1と7」「0、3と11」などである。このグループは、整数ゼロを含まないことが好ましい。このようにして、データストリーム発生器100に対する各クロックトリガーにより、副発生器Miを少なくとも一度は「同期」されたグループに対応させることが出来る。一般に(たとえば、1つのクロックトリガーを副発生器Miに供給することのみで)副発生器Miが次のデータ項目を出力端に発生させるようにすることは簡単であるので、このグループが、整数1を含むことが好ましい。本発明によると、少なくとも1つの副発生器Miが、トリガーのこの数値がゼロより大きい少なくとも2つの整数に対応したグループHiから選択される、上記の方法で制御されることが理解されるであろう。すべての副発生器が、この方法で制御されることが好ましい。しかしながら、必要に応じ、1つ以上の副発生器を、グループ{0, 1}から数値を選択することにより制御することもできる。
【0027】
グループHiは、最初の数値が1で、次の数値が1より大きいことが有利である、2つの整数のみで構成されることが好ましい。この方法の場合、制御手段150は、副発生器を「同期」するためにどの数値を使用すべきかと言う二進判定さえすれば良い。このような判定は、制御副発生器Cの1つの出力ビットに基づいて行うことができる。
【0028】
さらにもう一つの具体例の場合、数値選択機Siは、グループHiの各数値nijが、実質的に同じ機会で選択される均衡のとれた選択を実行するように作動する。これは、様々な方法で実施できる。たとえば、均衡のとれた出力を有する制御副発生器Cを使用し、(たとえば、Hiが2つの数値のみで構成されている場合に、Hiの2つの数値から選択するために、この均衡のとれた制御データ項目の1ビットを直接使用して)この均衡を選択の間維持することにより行うことが出来る。
【0029】
別の実施例では、有限状態機械が、データ項目の擬似ランダムストリームを発生させる副発生器によって使用される。すべての副発生器Miと制御副発生器Cは、有限状態機械に基づくことが好ましい。各副発生器ごとに、異なる機械が使用されることが有利である。有限状態機械では、クロックトリガーが、機械の状態遷移を発生させ、この状態遷移によりデータ項目が出力される。本発明によると、nijが1より大きい場合、(たとえば、出力のサンプリングが、nij状態遷移トリガーが有限状態機械に供給された後にのみ可能となるように)nij-1出力は、抑制される必要がある。適切な有限状態機械は、いかなるものも使用することができる。たとえば、DESは、出力フィードバックモードで使用することができる。
【0030】
この有限状態機械は、フィードバックシフトレジスタに基づくのが有利である。いくつかの適切なフィードバックレジスタが、使用できる。図2は、フィードバックレジスタ200を図示する。レジスタ200はk個の連続して並べられた記憶セルp0〜pk-1を有する。この例では、p0は、出力データ項目が供給される側の低位のセルである。一般に、データ項目は、1ビットであるが、セルはそれ以上のビットを記憶することも可能である。入力端210を介して受信されたトリガーに応じて、すべてのセルの内容が、低位のセルの方向に、通常1桁移行される。トリガーは通常クロックパルスであるので、これは、tからt+1への時間の遷移と見ることができる。移行は以下の式を用いて表すことができる。
【0031】
【式3】
p0の前の内容(たとえば、p0(t))が、レジスタ200の出力端220で得ることが可能になっている。この移行により、セルpkは空になる。このセルは、時刻tで1つ以上の残りのセル内のデータ項目の結合により再ロードされる。p0 ( t )とp3 ( t )の内容が、ビットに関するXOR演算を用いて結合されている、単純な線形結合が、次に示されている。
【式4】
示された線形フィードバックシフトレジスタ(LFSR)は、以下の多項式によって表すことができる。
f(x)=xk+x3+1
この式では、nビットの記憶セルに対し、
【式5】
となる。LFSRは、2k-1の内部状態の1つになることができる(すべてゼロの状態は使用されない)。示された多項式がいわゆる原始関数多項式である場合、出力の反復をなんら伴わない2k-1出力項目の擬似ランダムシーケンスが、発生する。原始多項式は、種々の次数の多項式として周知である。LFSRに基づく各副発生器には、原始多項式に基づくLFSRを使用することが好ましい。このような原始多項式は、種々の次数の多項式として周知である。ハードウエアにより単純に実現するためには、フィードバック関数の実行に少量のロジックしか必要としない、疎行多項式(たとえば、数個の係数しか有しない多項式)を、使用することが好ましい。線形フィードバック関数に代えて、非線形フィードバック関数を使用することもできることは理解できるであろう。
【0032】
従来のFSRは、FSRにn(n >1)個のトリガー(クロックパルス)を供給することによって、最後の出力データ項目に続くn番目のデータ項目を出力させることができる。高速応用の場合、(データストリーム発生器100に供給された1つの入力クロックトリガーによりn個の内部トリガーがFSRに与えられる)クロック逓倍の結果として発生する形式が、問題になることがある。本発明によると、LFSRでは、n番目のデータ項目は、いくらかの追加ロジックを使用し、1つの内部トリガーのみを使用して供給される。これは、次の多項式によって表されるLFSRに対して示される。
f(x)=x7+x3+1
1桁の移行(n=1)は、次のように表すことができる。
【式6】
同様に、2桁の移行(n=2)は、次のように表すことができる。
【式7】
3桁の移行(n=3)は、次のように表すことができる。
【式8】
図3は、このLFSRがグループH={1, 3}に対応している(つまり、1桁または3桁の移行が発生する)この原理の可能な実施を示す。最初の桁が従来のフィードバック(n=1)に対応し、そして次の桁が、3つの連続する従来のシフトおよびフィードバックと同じ効果を持つ新たに定義されたフィードバックに対応するように、各セルごとに、スイッチ310〜370が、それぞれ追加されている。上で定義された多項式については、n=4に対しても、同じ「1つのトリガー、逓倍シフト/フィードバック」原理を実施することができる。
【式9】
多項式f(x)=x7+x3+1 に対し、より一般的には、1つの演算におけるn(1≦n≦4)桁の移行が、下記のように与えられる。
【式10】
特性多項式によるすべてのLFSRに対するこの原理の一般化は、
【式1】
によって与えられる。これは、tからt+1の時間に通過するトリガーに応じて、記憶セル間のデータ項目の下記の移行が、並列に実行される必要があることを示す:
【式2】
このようにして、「内部フィードバックループ」を複雑にすることなく、速い実行を達成することが可能となる。レジスタ内にまだ明確に存在していないデータ項目を最も高い次数のセルに供給する必要がある場合、すなわち、この項目を、先ず存在している項目から生成することが必要である場合、このような内部フィードバックループが、発生する。たとえば、1つの一般トリガーに応じて5つの内部シフト/フィードバックが発生する場合、この状況が、この例の多項式f(x)=x7+x3+1に対し発生する。これを表すために、上記の原理をn=5に拡張すると、以下の関係式が与えられる。
【式11】
これは、p6に対し、
【式12】
を与える。ここで、実際にはセルp7は、存在しない(実際、いったんp6が、従来の方法でフィードバックされた後、p6の新たな内容が(p3と結合させて)p6にフィードバックされると、二重フィードバックの形式が、発生する)。p7の内容は、通常の1つの移行演算の後p6の内容に一致する:
【式13】
このように、上記の一般原理は、さらに多くのロジックと演算(たとえば、1つのXOR演算の代わりに2つの演算)を必要とはするが、拡張することができることは理解されるであろう。
【0033】
さらに他の実施例では、制御副発生器Cの制御データ項目は、多数のLビットを有する。少なくとも1つ、望ましくは多数の選択器Siが、制御データ項目のLビットを、制御副発生器による出力として、対応するグループHiの整数nijの1つにマップするマッピング手段を有する。原理的に、いかなる適切なマッピングも、使用することができる。均衡のとれたマッピングを、使用することが有利である。図4は、これらの整数の1つに(この例では、この整数が2つの整数の1つのグループから選択される)複数のビット(この例では、Lは3ビット)をマップする好ましい構成を示す。この具体例の場合、それぞれ数値選択器416と426を有する2つの副発生器LFSR1(410)とLFSR2(420)が、使用される。各数値選択器は、1より多いビットを1つのビットにマップするために、それぞれブール関数Fiを有する。この具体例の場合、2ビット(k2とk1)が、1つのビットにマップされている。そのマッピングは、以下の表に示されるように、決められた方法で選択することができる。
【表1】
この表の値によると、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つより大きい数値を有するグループに適用される。
【0034】
LFSR1とLFSR2に対する図3の内部の複数移行/フィードパック技術と組み合わせた図4の構成は、約35の1ビットセルのレジスタに対し2000未満のゲートを使用してハードウエアにより実現でき、かつ標準のプログラム可能な素子のような従来技術を用いて80Mbpsを超えるビットレートで動作させることが可能である。明らかに、このシステムをソフトウェア技術を用いて実施することも可能である。
【0035】
図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は、解読ステーションへ供給される。使用される初期化データとの結合で必要な場合には、類似の逆構成を、データを暗号化し、そして暗号化された形式でそのデータを記憶するために使用することができることは、理解されるであろう。
【0036】
本発明による暗号化/解読を利用すれば、コンテンツの所有者または販売者は、効果的な著作権保護を達成することができる。とりわけ家庭用電子機器に対する受信/読み取り装置は、経済性に優れた方法で実現できる。
【図面の簡単な説明】
【図1】同期データストリーム発生器100のブロックダイヤグラムを示す。
【図2】フィードバックシフトレジスタを示す。
【図3】「1クロック、マルチステップ/フィードバック」LFSRを示す。
【図4】データストリーム発生器の推奨具体例のブロックダイヤグラムを示す。
【図5】暗号化/解読ステーションを示す。
【符号の説明】
100 データストリーム発生器
116 数値発生器
118 メモリ
126 数値発生器
128 メモリ
140 制御副発生器
150 制御手段
200 レジスタ
300 LFSR
410 副発生器LSFR1
416 数値選択器
420 副発生器LSFR2
426 数値選択器
500 暗号化/解読ステーション
550 読み取り/再生装置[0001]
[Technical field to which the invention belongs]
The present invention is a synchronous data stream generator for generating a stream of output data items of at least 1 bit in synchronization with a clock trigger, the data stream generator comprising:
Each sub-generator MiHas respective clock inputs and respective outputs, and each sub-generator MiOperates to generate at least one bit data item at each output in response to a trigger received via each clock input,i> 1Multiple sub-generators of MiWhen,
Subgenerator M forming the output data item of the data stream generatoriMeans for combining each generated data item of
A control sub-generator C having an input for receiving a clock trigger, and an output, and operative to generate at least one bit of control data items at the output in response to the clock trigger;
Sub-generator M according to control data item of control sub-generator CiControl means operable to provide a trigger to at least one of the clock inputs of the
It has a synchronous data stream generator.
[0002]
The invention further relates to an encryption and / or decryption station having a synchronous data stream generator. The invention also relates to a device having a decoding station with a synchronous data stream generator.
[0003]
The present invention further provides a method for generating an output stream of each data item of at least one bit in synchronization with a clock trigger, the method comprising:
Generating a control stream of each control data item of at least 1 bit in synchronization with the clock trigger;
Each data stream DSiAre the predetermined algorithms AiMultiple data streams DS for each data item of at least 1 bit generated byiA step of generating
Depending on the control data item of the control stream, the data stream DSiControlling the occurrence of data items for at least one of:
The generated data stream DSiCombining steps and
It also relates to a method comprising:
[0004]
The present invention also relates to a computer program for executing the method and a storage medium readable by a computer on which the program is recorded.
[0005]
[Prior art]
Such synchronous data stream generators are known as alternating step generators in the “Handbook of Applied Cryptography”, AJ Menzes, PCvan Oorschot, SAVanstone, CRC Press, 1997, pages 209-211. is there. In this system, two linear feedback shift registers (LFSR) M1And M2Are used to generate two data streams. This data stream is combined with the 1-bit output stream of the data stream generator via an XOR (exclusive OR) operation. The third LFSR C has an output of LFSR M1And M2It is used as a control sub-generator for controlling the clock. The order of operations is as follows.
-Register C is synchronized
When -C output is logic `` 1 '', M1Are synchronized and M2Are not synchronized, but their output is repeated,
If the output of −C is theoretical “0”, M2Are synchronized and M1Are not synchronized, but their output is repeated,
−M1And M2Are combined.
Non-linearity is introduced into this system using C which randomly synchronizes one sub-generator at a time under control of the output of sub-generator C. Data stream generators can be used in many applications. For example, the data stream generator can be used as a pseudo-random generator and can itself be used for data encryption / decryption by adding the output bit modulo 2 (XOR) to the data bits.
[0006]
[Means for Solving the Problems]
It is an object of the present invention to provide a method for generating a synchronized data stream that is more resistant to known attacks. Furthermore, another object is suitable for use in digital consumer electronics systems that provide low speed gate complexity when implementing hardware and provide speeds suitable for digital audio / video signal encryption / decryption. Is to provide a method.
[0007]
In order to satisfy the object of the present invention, the control means comprises at least one sub-generator M.iOn the other hand, depending on the control data item of the control sub-generator C, a different integer group HiTo number ni, jSelect the associated numeric selector SiSaid group HiAnd at least two numbers greater than zero and said group HiIs the numeric selector SiAnd the control means is selected at the output end following the last generated data item.i, jThe second data item to the associated sub-generator MiOperates to feed. Thus, the sub-generator MiAre more irregularly triggered / synchronized to produce higher levels of non-linear motion. Instead of about half the time that this sub-generator is not synchronized (ie, the same output is maintained), the group will have the sub-generator synchronized more frequently (ie, “0” for the sub-generator). Select, so that the sub-generator is not synchronized and the other sub-generators are synchronized, resulting in a less frequent frequency that the output is held constant) and at some point more than one trigger is provided (Ie in fact many ni, j-1 data item is omitted, ni, jCan be larger with at least two integers that are not zero, so that the second data item can be supplied to the output). Such an abbreviation causes n sub-generators to be associated with one clock trigger for the data stream generator.i, jIt can be executed simply by synchronizing it twice. By not maintaining the same output of the sub-generator, or not so frequently, the data stream generator has more states. The hardware / software necessary to achieve this is suitable for high-speed consumer electronics applications and requires minimal improvement.
[0008]
A data item may simply consist of 1 bit (0 or 1) or may be formed using more bits to cover a wide range of numbers. Combining the output of the sub-generators is done by using a simple operation such as XOR on the bits, and more complex (non) linear operations may be used.
[0009]
In the example with measures defined in subordinate claim 2, balanced choice is an effective way to guarantee the maximum duration.
[0010]
According to the measure of dependent claim 3, this sub-generator is always synchronized at least once so that the combined output always includes a new contribution of each sub-generator. Selecting from two numbers where one number is “1” allows easy and fast execution.
[0011]
According to the measures as defined in dependent claim 4, at least two sub-generators are “irregularly” and variously synchronized in order to further increase this non-linearity.
[0012]
According to the means described in dependent claim 5, a finite state machine is used as the generator.
[0013]
According to the means described in dependent claim 6, the feedback shift register is used as a finite state machine capable of simple and fast execution suitable for consumer electronics applications. The feedback shift register may include linear feedback, or alternatively non-linear feedback.
[0014]
According to the measures described in dependent claim 7, ni, jThe nth output data item is ni, jInstead of using the clock trigger that comes after, it is generated with one action (one trigger). In this way, high bit rates can be achieved with only a slight increase in gate complexity. This constitutes a stream generator that is particularly suitable for use in digital audio / video devices such as CD or DVD players where high bit rates and low prices are required.
[0015]
According to the measure according to
[0016]
The data stream generator is preferably used for encryption and / or decryption to generate a pseudo-random stream of data items. In that case, symmetric encryption / decryption can be achieved by combining the generated data stream with the stream to be encrypted / decrypted (eg, using an XOR operation). The decryptor is advantageously incorporated in a playback device such as a disc player that reads the encrypted data stream from a record carrier such as a tape or disc. Encryptors and decryptors can also be used to protect the transmission of digital data, especially audio and / or video data over networks such as IEEE1394. In such a case, unprocessed digital data is encrypted by the transmitting device and decrypted by the receiving device. Key information may be provided by any suitable method such as a public key exchange method.
[0017]
It is an object of the present invention to provide a method for generating a synchronized data stream that is more resistant to known attacks. Furthermore, another object is suitable for use in digital consumer electronics systems that provide low speed gate complexity when implementing hardware and provide speeds suitable for digital audio / video signal encryption / decryption. Is to provide a method.
[0018]
In order to meet the objectives of the present invention, this method comprises:
The data stream DSiThe step of controlling the occurrence of the data item for at least one of the data stream DS from the associated group of different integersiAnd at least two numerical values of the group are greater than zero, the selection depends on the control data item of the control stream, and
The data stream DSiGenerating the data item for the algorithm AiA data item that will be the nth data item following the data item last generated byiIncluding generating as the next data item of
It is characterized by.
[0019]
In this method, algorithm AiSub-generator M1This is not described in detail individually.
[0020]
The invention also relates to a computer program that causes a processor to execute this method. This program is for all suitable processors, such as embedded microcontrollers or risk processors, and for processors that are optimized to run encryption software. Those skilled in the art can also perform the steps of this method with software functions and will not be described in further detail.
[0021]
The present invention also relates to a computer-readable storage medium that records a computer program. Any suitable medium may be used, such as a magnetic storage medium (eg floppy disk), an optical storage medium such as a CD-ROM, or an electrical storage medium such as (non-volatile) RAM or ROM. it can.
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
These and other aspects of the invention will be apparent with reference to the illustrated embodiments.Will.
[0023]
In FIG. 1, the illustrated
[0024]
The
[0025]
The
[0026]
According to the invention, group HiHas at least two different integers, at least two of which are greater than zero. For example, the expected groups are “1 and 3” “1 and 5” “0, 1 and 7” “0, 3 and 11”, and the like. This group preferably does not contain the integer zero. In this way, each clock trigger for
[0027]
Group HiIs preferably composed of only two integers, with the first number being 1 and the next number being advantageously greater than 1. In this method, the control means 150 need only make a binary decision as to which value should be used to “synchronize” the sub-generator. Such a determination can be made based on one output bit of the control sub-generator C.
[0028]
In another specific example, the numerical value selector SiGroup HiEach number nijOperate to perform a balanced selection that is selected at substantially the same opportunity. This can be done in various ways. For example, use a control sub-generator C with a balanced output and (for example, HiH consists of only two numbersiThis can be done by maintaining this balance during selection (using one bit of this balanced control data item directly) to select between the two numbers.
[0029]
In another embodiment, a finite state machine is used by a sub-generator that generates a pseudo-random stream of data items. All sub-generators MiAnd the control sub-generator C are preferably based on a finite state machine. Advantageously, a different machine is used for each sub-generator. In a finite state machine, a clock trigger causes a machine state transition, and a data item is output by this state transition. According to the invention, nijIs greater than 1, (for example, output sampling is nijN so that state transition triggers are only possible after being fed into a finite state machine)ij-1 output needs to be suppressed. Any suitable finite state machine can be used. For example, DES can be used in output feedback mode.
[0030]
This finite state machine is advantageously based on a feedback shift register. Several suitable feedback registers can be used. FIG. 2 illustrates the
[0031]
[Formula 3]
p0Content before (for example, p0(T)) can be obtained at the
[Formula 4]
The linear feedback shift register (LFSR) shown can be represented by the following polynomial:
f (x) = xk+ XThree+1
In this equation, for an n-bit storage cell,
[Formula 5]
It becomes. LFSR can be one of 2k-1 internal states (all zero states are not used). If the indicated polynomial is a so-called primitive function polynomial, a pseudo-random sequence of 2k-1 output items is generated without any output repetition. Primitive polynomials are known as polynomials of various orders. Preferably, each sub-generator based on LFSR uses an LFSR based on a primitive polynomial. Such primitive polynomials are known as polynomials of various orders. For simple implementation in hardware, it is preferable to use a sparse polynomial (eg, a polynomial with only a few coefficients) that requires only a small amount of logic to perform the feedback function. It will be appreciated that a non-linear feedback function may be used in place of the linear feedback function.
[0032]
The conventional FSR can output the nth data item following the last output data item by supplying n (n> 1) triggers (clock pulses) to the FSR. For high speed applications, the form that occurs as a result of clock multiplication (n internal triggers fed to the FSR by one input clock trigger supplied to the data stream generator 100) can be problematic. According to the present invention, in the LFSR, the nth data item is supplied using only one internal trigger, using some additional logic. This is shown for the LFSR represented by the following polynomial:
f (x) = x7+ XThree+1
A one-digit transition (n = 1) can be expressed as:
[Formula 6]
Similarly, a two-digit transition (n = 2) can be expressed as:
[Formula 7]
A three-digit transition (n = 3) can be expressed as:
[Formula 8]
FIG. 3 shows a possible implementation of this principle where this LFSR corresponds to the group H = {1, 3} (ie a 1-digit or 3-digit transition occurs). Each cell so that the first digit corresponds to the traditional feedback (n = 1) and the next digit corresponds to the newly defined feedback that has the same effect as three consecutive conventional shifts and feedback Each of the switches 310 to 370 is added. For the polynomial defined above, the same “one trigger, multiple shift / feedback” principle can be implemented for n = 4.
[Formula 9]
Polynomial f (x) = x7+ XThreeMore generally, for +1, a shift of n (1 ≦ n ≦ 4) digits in one operation is given as follows.
[Formula 10]
The generalization of this principle for all LFSRs with characteristic polynomials is
[Formula 1]
Given by. This indicates that in response to a trigger passing from t to t + 1, the following transitions of data items between storage cells need to be performed in parallel:
[Formula 2]
In this way, fast execution can be achieved without complicating the “inner feedback loop”. If it is necessary to supply the highest order cell with a data item that is not already explicitly present in the register, i.e. it is necessary to first generate this item from the existing item. An internal feedback loop occurs. For example, if five internal shifts / feedback occur in response to one general trigger, this situation occurs for the polynomial f (x) = x7 + x3 + 1 in this example. To express this, extending the above principle to n = 5 gives the following relation:
[Formula 11]
This is for p6
[Formula 12]
give. Where actually cell p7Does not exist (in fact, once p6Is fed back in the conventional way, then p6New content of (pThreeP)6A form of double feedback occurs). p7The content of is p after the normal one transition operation6Matches the contents of:
[Formula 13]
Thus, it will be appreciated that the above general principles require more logic and operations (eg, two operations instead of one XOR operation), but can be extended.
[0033]
In yet another embodiment, the control data item of the control sub-generator C has a number of L bits. At least one, preferably a large number of selectors SiThe L bit of the control data item as output by the control sub-generatoriAn integer nijMapping means for mapping to one of the two. In principle, any suitable mapping can be used. It is advantageous to use a balanced mapping. Figure 4 shows a preferred configuration that maps multiple bits (in this example, L is 3 bits) to one of these integers (in this example, this integer is selected from one group of two integers). Show. In this example, two sub-generators LFSR1 (410) and LFSR2 (420) having
[Table 1]
According to the values in this table, k2 ( t )k1 ( t )= F for "01" (binary)1 And F2Both produce a binary "1" as output, while k2 ( t )k1 ( t )== “00”, F1 generates “1” and F2Generates "0". Alternatively, this mapping table can be read from a key into a configurable initial value, for example. In the configuration of Figure 4, F1 And F2Preferably implement a different mapping. Function F1And F2Can be chosen so that their outputs are balanced. For the configuration shown, F1 And F2Does not need to provide a balanced output. Assuming this output is balanced (in the case of LFSR), the output of the function and the output bit k of the control sub-generator C0 ( t )Equilibrium is achieved by combining In this configuration, each function GiBut each two
The function Gi can be defined as follows.
G1(0) = 1 and G1(1) = 5,
G2(0) = 1 and G2(1) = 7
Another mapping function, GiCan also be used. Sub-generator HiBut period qiAssuming a finite state machine withiPreferably meet the following criteria in order to obtain optimal non-linear operation and the optimal duration of the
[0034]
The configuration of Figure 4 in combination with the internal multiple migration / feedpack technology of Figure 3 for LFSR1 and LFSR2 can be implemented in hardware using less than 2000 gates for approximately 35 1-bit cell registers, and the standard It is possible to operate at bit rates in excess of 80 Mbps using conventional techniques such as programmable elements. Obviously, this system can also be implemented using software technology.
[0035]
FIG. 5 shows a block diagram of the encryption /
[0036]
By utilizing the encryption / decryption according to the present invention, the content owner or seller can achieve effective copyright protection. In particular, a receiving / reading apparatus for household electronic devices can be realized by an economical method.
[Brief description of the drawings]
FIG. 1 shows a block diagram of a synchronous
FIG. 2 shows a feedback shift register.
FIG. 3 shows a “1-clock, multi-step / feedback” LFSR.
FIG. 4 shows a block diagram of a recommended embodiment of a data stream generator.
FIG. 5 shows an encryption / decryption station.
[Explanation of symbols]
100 data stream generator
116 Numeric generator
118 memory
126 Numeric generator
128 memory
140 Control sub-generator
150 Control means
200 registers
300 LFSR
410 Sub-generator LSFR1
416 numeric selector
420 Sub-generator LSFR2
426 numeric selector
500 encryption / decryption station
550 reading / playback device
Claims (13)
各副発生器Miが、それぞれのクロック入力端とそれぞれの出力端を有し、かつ各副発生器Miが、それぞれのクロック入力端を介して受信されたトリガーに応じて各出力端に少なくとも1ビットのデータ項目を発生するように作動する、i>1の複数の副発生器Miと、
前記データストリーム発生器の前記出力データ項目を形成する前記副発生器Miの各々の発生されたデータ項目を結合するための手段と、
前記クロックトリガーを受信するための入力端、および出力端を有し、かつ前記クロックトリガーに応じて前記出力端に少なくとも1ビットの制御データ項目を発生するように作動する制御副発生器Cと、
前記制御副発生器Cの前記制御データ項目に依存して前記副発生器Miの前記クロック入力端の少なくとも1つにトリガーを供給するように作動する制御手段とを
有する同期データストリーム発生器において、
前記制御手段が、少なくとも1つの副発生器Miに対し、前記制御副発生器Cの前記制御データ項目に依存して、異なる整数のグループHiから数値ni,jを選択する、関連する数値選択器Siを有し、前記グループHiの少なくとも2つの数値が、ゼロより大きく、前記グループHiが、前記数値選択器Siに関連し、そして前記制御手段が、前記出力端で、最後に発生されたデータ項目に続く選択されたni,j番目のデータ項目を前記関連する副発生器Miに供給させるように作動することを特徴とするデータストリーム発生器。A synchronous data stream generator for generating a stream of output data items of at least one bit in synchronization with a clock trigger, the data stream generator comprising:
Each sub-generator M i has a respective clock input and a respective output terminals, and each sub-generator M i is the output terminals in response to a trigger received via the respective clock input A plurality of sub-generators M i with i> 1 operative to generate at least one bit data item;
And means for combining each generated data item of said auxiliary generator M i forming the output data item of the data stream generator,
A control sub-generator C having an input for receiving the clock trigger, and an output, and operative to generate at least one bit of control data items at the output in response to the clock trigger;
In synchronous data stream generator and a control means operative to supply a trigger to at least one of said clock input of said secondary generator M i in dependence on the control data item of the control sub-generator C ,
Said control means for at least one sub-generator M i selecting numerical values n i, j from different integer groups H i depending on the control data items of said control sub-generator C has a numerical selector S i, at least two numbers of the group H i is greater than zero, the group H i is associated with the numerical selector S i, and said control means, in the output terminal A data stream generator operative to cause the associated sub-generator M i to supply the selected n i, j th data item following the last generated data item.
【式1】
に関連する線形フィードバックシフトレジスタであり、前記線形フィードバックシフトレジスタが、K個の順次並べられた記憶セルp0 〜pk-1を有し(p0は、前記出力データ項目が供給される側の前記低位のセルであり)、前記線形シフトレジスタが、tからt+1までの時間に通過する前記トリガーに応じて、前記記憶セル間のデータ項目の下記の移行を並列に実行し、出力データ項目としてn番目の項目を供給するように作動することを特徴とする請求項6に記載のクロック制御データストリーム発生器。
【式2】
The feedback shift register has the following characteristic polynomial:
[Formula 1]
The linear feedback shift register has K sequential storage cells p 0 to p k−1 (p 0 is the side to which the output data item is supplied). And the linear shift register performs the following transition of the data items between the memory cells in parallel in response to the trigger passing in the time from t to t + 1, and the output data item: 7. The clocked data stream generator of claim 6, wherein the clock controlled data stream generator is operative to supply the nth item as.
[Formula 2]
前記クロックトリガーに応じて、データ項目のストリームを発生する請求項1に記載のデータストリーム発生器と、
受信された前記解読されたデータ項目のストリームと、発生された前記データ項目のストリームを結合して、暗号化されたデータ項目のストリームを供給する手段とを
有する暗号化ステーション。An input for receiving a stream of decrypted data items in synchronization with the clock trigger;
Depending on the clock trigger, the data stream generator as claimed in claim 1 for generating a stream of data items,
Means for combining the received stream of decrypted data items and the generated stream of data items to provide a stream of encrypted data items;
Have encryption station .
前記クロックトリガーに応じて、データ項目のストリームを発生する請求項1に記載のデータストリーム発生器と、
受信された前記暗号化されたデータ項目のストリームと、発生された前記データ項目のストリームを結合して、解読されたデータ項目のストリームを供給する手段とを
有する解読ステーション。An input for receiving a stream of encrypted data items in synchronization with the clock trigger;
Depending on the clock trigger, the data stream generator as claimed in claim 1 for generating a stream of data items,
Means for combining the received stream of encrypted data items and the generated stream of data items to provide a stream of decrypted data items;
Having decryption station .
制御副発生手段が、前記クロックトリガーに同期して、各制御データ項目が少なくとも1ビットである制御データ項目の制御ストリームを発生するステップと、
副発生手段が、各データ項目が少なくとも1ビットであるデータ項目の複数のデータストリームDS i を発生するステップであって、各データストリームDS i が、それぞれの前もって定められたアルゴリズムA i に従って発生されるステップと、
制御手段が、前記制御ストリームの前記制御データ項目に依存して、前記データストリームDSiの少なくとも1つに対するデータ項目の前記発生を制御するステップと、
結合手段が、前記発生されたデータストリームDSiを結合することによって前記出力ストリームを形成するステップとを
有する方法において、
前記制御手段が、前記データストリームDSiの少なくとも1つに対するデータ項目の前記発生を制御する前記ステップが、関連する数値選択手段が、異なる整数の関連するグループから数値nを前記データストリームDSiに対し選択するステップを含み、かつ前記グループの少なくとも2つの数値がゼロより大きく、前記選択が前記制御ストリームの前記制御データ項目に依存し、そして
前記副発生手段が、前記データストリームDSiに対するデータ項目を発生する前記ステップが、前記副発生手段が、前記アルゴリズムAi に従って、最後に発生されたデータ項目に続くn番目のデータ項目になるであろうデータ項目を、前記データストリームDSiの次のデータ項目として発生するステップを含むことを特徴とする方法。 A method of generating an output stream of data items , each data item being at least 1 bit, in synchronization with a clock trigger by a data stream generating means, the method comprising:
Control sub-generation means, in synchronization with the clock trigger, generating a control stream of control data items each control data item is at least 1 bit ;
A sub-generation means for generating a plurality of data streams DS i of data items, each data item being at least 1 bit , each data stream DS i being generated according to a respective predetermined algorithm A i And steps
Control means controlling the generation of data items for at least one of the data streams DS i depending on the control data items of the control stream;
Combining means for combining the generated data streams DS i to form the output stream by combining the generated data streams DS i ;
The step in which the control means controls the generation of data items for at least one of the data streams DS i , the associated numeric selection means assigns a numeric value n to the data stream DS i from an associated group of different integers; comprises selecting against, and at least two numbers of the groups is greater than zero, the selection is dependent on the control data items of the control stream, and
The step of generating the data item for the data stream DS i by the sub-generating means becomes the n-th data item following the last generated data item according to the algorithm A i. method characterized by comprising the step of a data item that will allo, generated as the next data item of the data stream DS i.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP98202112 | 1998-06-25 | ||
EP98202112.3 | 1998-06-25 | ||
PCT/IB1999/001151 WO1999067918A2 (en) | 1998-06-25 | 1999-06-21 | Synchronous stream cipher |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002519890A JP2002519890A (en) | 2002-07-02 |
JP2002519890A5 JP2002519890A5 (en) | 2010-02-12 |
JP4460772B2 true JP4460772B2 (en) | 2010-05-12 |
Family
ID=8233844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000556474A Expired - Lifetime JP4460772B2 (en) | 1998-06-25 | 1999-06-21 | Synchronous stream cipher |
Country Status (8)
Country | Link |
---|---|
US (2) | US6587562B1 (en) |
EP (1) | EP1038370B1 (en) |
JP (1) | JP4460772B2 (en) |
KR (1) | KR100662667B1 (en) |
CN (2) | CN1227859C (en) |
DE (1) | DE69933108T2 (en) |
TW (1) | TW437227B (en) |
WO (1) | WO1999067918A2 (en) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6909785B1 (en) * | 1999-11-11 | 2005-06-21 | Qualcomm, Inc. | Method and apparatus for efficient irregular synchronization of a stream cipher |
US7190787B1 (en) * | 1999-11-30 | 2007-03-13 | Intel Corporation | Stream cipher having a combiner function with storage based shuffle unit |
JP2001274786A (en) * | 2000-01-21 | 2001-10-05 | Victor Co Of Japan Ltd | Contents information transmission method, contents information recording method, contents information transmitter, contents information recorder, transmission medium and recording medium |
US7502468B2 (en) * | 2003-09-02 | 2009-03-10 | Ncipher Corporation Ltd. | Method and system for generating a cryptographically random number stream |
US7369661B2 (en) * | 2004-01-30 | 2008-05-06 | Intel Corporation | Method and apparatus for detection of loss of cipher synchronization |
DE102004037814B4 (en) * | 2004-08-04 | 2010-12-16 | Infineon Technologies Ag | Apparatus and method for generating a sequence of numbers |
JP4750105B2 (en) * | 2005-03-23 | 2011-08-17 | Kddi株式会社 | Keystream encryption apparatus and method, and program |
DE102005062763B4 (en) * | 2005-12-28 | 2007-08-30 | Siemens Ag | Circuit arrangement for a memory card with debit or ID card function |
CN100459493C (en) * | 2005-12-29 | 2009-02-04 | 北京浦奥得数码技术有限公司 | Stream cipher generator, random digit generation method, encrypting system and encryption method |
US20070189512A1 (en) * | 2006-01-20 | 2007-08-16 | Chiou-Haun Lee | Method and apparatus for processing stream encryption/decryption |
US7734044B2 (en) * | 2006-02-23 | 2010-06-08 | Texas Instruments Incorporated | Method and apparatus for synchronous stream cipher encryption with reserved codes |
CN101401348B (en) | 2006-03-10 | 2011-08-31 | 耶德托公司 | Method and system for cipher function vagueness |
FR2899702A1 (en) * | 2006-04-10 | 2007-10-12 | France Telecom | METHOD AND DEVICE FOR GENERATING A PSEUDO-RANDOM SUITE |
EP2044723A2 (en) | 2006-07-12 | 2009-04-08 | Koninklijke Philips Electronics N.V. | Verifying authenticity of an execution environment |
EP2044724B1 (en) | 2006-07-12 | 2015-04-29 | Irdeto B.V. | Tamper resistance of a digital data processing unit |
GB2456683B (en) * | 2006-09-07 | 2011-01-19 | Fortress Gb Ltd | A system and method to preclude message modification in data authentication systems through efficient use of feedback in cryptographic functions |
CA2717625C (en) | 2008-03-05 | 2018-09-25 | Irdeto B.V. | Cryptographic system |
WO2009109880A1 (en) * | 2008-03-05 | 2009-09-11 | Koninklijke Philips Electronics N.V. | White-box implementation |
WO2009136361A1 (en) | 2008-05-07 | 2009-11-12 | Koninklijke Philips Electronics N.V. | Exponent obfuscation |
WO2010041264A1 (en) * | 2008-10-07 | 2010-04-15 | Secretary, Department Of Atomic Energy | A method and apparatus for block encryption and synchronous stream cipher |
US8971536B2 (en) * | 2011-07-21 | 2015-03-03 | Vixs Systems, Inc. | Balanced entropy random number generator |
US9448959B2 (en) * | 2012-10-05 | 2016-09-20 | Analog Devices, Inc. | Two-wire communication protocol engine |
GB2530518A (en) * | 2014-09-24 | 2016-03-30 | Ibm | Method and apparatus for generating a multi-level Pseudo-Random Test |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0429733B1 (en) * | 1989-11-17 | 1999-04-28 | Texas Instruments Incorporated | Multiprocessor with crossbar between processors and memories |
US5224129A (en) * | 1990-10-31 | 1993-06-29 | Tektronix, Inc. | Method of synchronizing signals of a pulse generator |
US5511181A (en) * | 1993-04-26 | 1996-04-23 | Apple Computer, Inc. | Polycyclic timing system and apparatus for pipelined computer operation |
US5684714A (en) * | 1995-05-08 | 1997-11-04 | Kabushiki Kaisha Toshiba | Method and system for a user to manually alter the quality of a previously encoded video sequence |
JPH08329011A (en) * | 1995-06-02 | 1996-12-13 | Mitsubishi Corp | Data copyright management system |
US5687191A (en) * | 1995-12-06 | 1997-11-11 | Solana Technology Development Corporation | Post-compression hidden data transport |
-
1999
- 1999-06-21 JP JP2000556474A patent/JP4460772B2/en not_active Expired - Lifetime
- 1999-06-21 CN CNB998014338A patent/CN1227859C/en not_active Expired - Lifetime
- 1999-06-21 WO PCT/IB1999/001151 patent/WO1999067918A2/en active IP Right Grant
- 1999-06-21 EP EP99923822A patent/EP1038370B1/en not_active Expired - Lifetime
- 1999-06-21 CN CN03107310A patent/CN100583753C/en not_active Expired - Lifetime
- 1999-06-21 KR KR1020007001784A patent/KR100662667B1/en not_active IP Right Cessation
- 1999-06-21 DE DE69933108T patent/DE69933108T2/en not_active Expired - Lifetime
- 1999-06-22 US US09/338,441 patent/US6587562B1/en not_active Expired - Lifetime
- 1999-07-15 TW TW088112009A patent/TW437227B/en not_active IP Right Cessation
-
2003
- 2003-05-09 US US10/434,801 patent/US7058178B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1516385A (en) | 2004-07-28 |
EP1038370B1 (en) | 2006-09-06 |
CN1275280A (en) | 2000-11-29 |
KR20010023158A (en) | 2001-03-26 |
WO1999067918A3 (en) | 2000-03-30 |
WO1999067918A2 (en) | 1999-12-29 |
US7058178B2 (en) | 2006-06-06 |
CN100583753C (en) | 2010-01-20 |
KR100662667B1 (en) | 2007-01-02 |
TW437227B (en) | 2001-05-28 |
JP2002519890A (en) | 2002-07-02 |
DE69933108D1 (en) | 2006-10-19 |
US6587562B1 (en) | 2003-07-01 |
US20030194087A1 (en) | 2003-10-16 |
DE69933108T2 (en) | 2007-04-12 |
CN1227859C (en) | 2005-11-16 |
EP1038370A2 (en) | 2000-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4460772B2 (en) | Synchronous stream cipher | |
JP4828068B2 (en) | Computer efficient linear feedback shift register | |
US7949128B2 (en) | Method and device for the encryption and decryption of data | |
JP3901909B2 (en) | ENCRYPTION DEVICE AND RECORDING MEDIUM CONTAINING PROGRAM | |
EP0913964A2 (en) | A method of and an apparatus for generating internal crypto-keys | |
US20120269340A1 (en) | Hierarchical encryption/decryption device and method thereof | |
JP2003134103A (en) | Information processor | |
JPH08505275A (en) | Device and method for generating a cipher stream | |
Lin et al. | A high-throughput low-cost AES cipher chip | |
GB2094113A (en) | Improvements in or relating to cryptography | |
Pandey et al. | A high-performance and area-efficient VLSI architecture for the PRESENT lightweight cipher | |
JP2005215688A (en) | Hardware encryption/decryption apparatus using s-box operation, and method for the same | |
Lam et al. | An improved method for locating and extracting the eye in human face images | |
JPH10240500A (en) | Random number generator and method, enciphering device and method, decoder and method and stream cipher system | |
US6961427B1 (en) | Methods and apparatus for keystream generation | |
JP2002040932A (en) | Ciphering device using standard algorithm for ciphering data | |
JP4470135B2 (en) | Pseudo random number generation system | |
US20040223609A1 (en) | Data encryption method | |
EP1595358A1 (en) | Method and system for data encryption and decryption | |
KR20020087331A (en) | AES Rijndael Encryption and Decryption Circuit with Subround-Level Pipeline Scheme | |
EP1232603B1 (en) | Methods and apparatus for keystream generation | |
JPH1152850A (en) | Device and method for cipher conversion | |
JP4019762B2 (en) | Inverse element operation apparatus, inverse element operation method, RSA key pair generation apparatus, RSA key pair generation method | |
JP3906574B2 (en) | Encryption conversion method, encryption conversion device, decryption method, decryption device, and data communication system | |
JPH06282227A (en) | Public-key cipher device and public-key decoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060620 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091029 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20091221 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100119 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100215 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4460772 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140219 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |