(57)【特許請求の範囲】
【請求項１】
ランダム系列の利用可能性に基づいて、システム内の乱数生成器の系列反復周期を拡張するための方法であって、
乱数列中の乱数を複数のＲＮＳ剰余値として表現するために、複数の剰余数系（ＲＮＳ）算術演算を実行するステップと、
前記複数のＲＮＳ剰余値の各々が少なくとも１つの数字を含むように、前記複数のＲＮＳ剰余値の各々を互いに素の記数法に変換するステップと、
前記複数のＲＮＳ剰余値の各々に関連する数字の選択組合せを使用して、恣意的な順列を有する複数の出力系列数の配列を生成するステップであって、前記恣意的な順列を有する配列が、循環構造を使用して決定されるステップと、を含む方法。
【請求項２】
ｎ個の要素を有する前記循環構造を選択するステップと、０からｎ！−１までの範囲にわたり得る値を有する前記乱数を選択するステップと、をさらに含む、請求項１に記載の方法。
【請求項３】
前記複数の出力系列数の各々を前記ｎ個の要素のそれぞれ要素に関連付けるステップをさらに含む、請求項２に記載の方法。
【請求項４】
互いに素の数を法として使用して、前記複数のＲＮＳ剰余値を計算するステップであって、前記法が、ｎ！によって定義される１０進数を互いに素の数の積として決定することによって決定されるステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記変換するステップが、前記複数のＲＮＳ剰余値の各々を異なる互いに素の記数法に変換するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記数字の選択組合せを、前記数字によって決定され得る値の範囲が前記循環構造内の利用可能な未選択要素の数に等しくなるように選択するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記循環構造内の利用可能な未選択要素を選択するために、前記数字の選択組合せの値を使用するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記生成するステップが、少なくとも２つのＲＮＳ剰余値に関連する少なくとも２つの数字を組み合わせて、前記少なくとも２つの数字とは異なる基数を有する数字を獲得するために、中国の剰余定理を使用するステップを含む、請求項１に記載の方法。
【請求項９】
前記循環構造内の利用可能な未選択要素を選択するために、異なる基数を有する前記数字を使用するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
乱数列中の乱数を複数のＲＮＳ剰余値として表現するために、複数のＲＮＳ算術演算を実行するように構成される計算手段と、
前記複数のＲＮＳ剰余値の各々が少なくとも１つの数字を含むように、前記複数のＲＮＳ剰余値の各々を互いに素の記数法に変換するように構成される変換手段と、
前記複数のＲＮＳ剰余値の各々に関連する数字の選択組合せを使用して、恣意的な順列を有する複数の出力系列数の配列を生成するように構成される順列手段であって、前記恣意的な順列を有する配列が、循環構造を使用して決定される順列手段と、を含むリング生成器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の構成は、通信システムに関する。より詳細には、本発明の構成は、恣意的な順列を有する数の配列（ａｒｂｉｔｒａｒｙ  ｐｅｒｍｕｔａｔｉｏｎ  ｏｒｄｅｒｉｎｇ  ｏｆ  ｎｕｍｂｅｒｓ）を生成するための方法および装置と、乱数生成器を含む、様々な通信システム構造におけるその応用とに関する。
【背景技術】
【０００２】
ランダム系列を必要とする多くのシステムは一般に、リング生成器（ｒｉｎｇ  ｇｅｎｅｒａｔｏｒ）および／またはその他の循環構造を含む。リング生成器は、可能な出力を反復写像によって網羅的に生成する、有限体上の簡単な構造である。その写像は、既約多項式がイデアル（ideal）となる、加法的および乗法的写像の何らかの合成である。例えば、リング生成器は、有限ガロア体ＧＦ［１１］上の既約多項式ｆ（ｘ）＝３ｘ３＋３ｘ２＋ｘの反復計算を含む。リング生成器の主な限界は、その軌道がきわめて決定論的なことである。そのため、写像と現在の有限体の状態とについての知識が、出力系列の完全な知識を与える。
【０００３】
ランダム系列を必要とするシステムでは、リング生成器が、データビットの系列を変更するためのアルゴリズムにおいてしばしば利用される。そのようなアルゴリズムは一般に、有限またはガロア体において実行される算術演算を含む。有限またはガロア体ＧＦ［ｐ］は、たかだか有限の多くの要素、すなわち｛０，１，２，．．．，ｐ−１｝を含む体である。そのため、有限またはガロア体において実行されるすべての算術演算は、その体の中の要素を結果としてもつ。有限またはガロア体ＧＦ［ｐ］は、ガロア標数（Ｇａｌｏｉｓ  ｃｈａｒａｃｔｅｒｉｓｔｉｃ）ｐによって定義される有限体サイズを有する。そのため、反復写像によって生成される出力系列は、ｐ要素周期で繰り返される。この反復挙動は、相関を生じ、それによって、ｐが小さい場合、出力系列の復号を相対的に容易にする。その結果、アルゴリズムは一般に、反復周期が増大されるように、有限またはガロア体サイズを拡大するための操作も含む。
【０００４】
ｐを２の整数乗２ｋとし、有限またはガロア体ＧＦ［ｐ］を拡大するための当技術分野で知られた方法が、数多く存在する。有限またはガロア体ＧＦ［２ｋ］を拡大するための最も簡単なそのような方法は、入力ビットの数を増加させることを含む。その他の方法は、リング生成器を他の生成器に結合することを含む。例えば、リング生成器は、中国の剰余定理（ＣＲＴ：Ｃｈｉｎｅｓｅ  Ｒｅｍａｉｎｄｅｒ  Ｔｈｅｏｒｅｍ）を実施するデジタルハードウェアから成る（互いに素の標数を有すると仮定される）任意の数の他の生成器に結合されてよい。理解されるべきこととして、ＣＲＴ計算は、混合基数計算を組み合わせるために実行される。ＣＲＴ計算は、生成器への入力が互いに素の数である場合に使用され得るに過ぎない。この方法は、その利点にも関わらず、いくつかの難点に悩まされる。例えば、この方法は、本質的に循環的かつ固定的である。デジタルハードウェアを用いた奇素数を基数とする要素のＣＲＴ計算は、計算的に非効率である。また、互いに素の数が事前に知られている場合、生成器の出力系列は、きわめて決定論的である。
【０００５】
また、ランダム系列を必要とするこれらのシステムは一般に、外部の観測者が出力系列を決定できなくするように出力系列をマスクすることを助けるために、決定論的スクランブリング方法に依存する。スクランブリング方法は、入力の任意の与えられた系列と比べて、出力のエントロピを増大させるために使用される。そのため、これらのシステムは、スクランブラを含む。スクランブラは、スクランブル信号から元の信号が回復され得るように、決定論的スクランブリングアルゴリズムに従って動作する。決定論的スクランブリング方法および関連アルゴリズムは、当業者にはよく知られており、したがって、本明細書では詳細に説明されない。
【０００６】
しかし、１つのそのような決定論的スクランブリング方法は、置換ボックス（Ｓボックス）関数を使用してデータをスクランブルする決定論的スクランブリングアルゴリズムを実施することを含むことを理解されたい。Ｓボックスは、出力系列をリバースエンジニアリングから保護するために、システムの出力系列に付加的変化（ａｄｄｉｔｉｏｎａｌ  ｖａｒｉａｎｃｅ）を追加するのに使用される数の配列である。Ｓボックス関数は、しばしば多くの所望の特性を有する。例えば、決定論的スクランブリングアルゴリズムは、Ｓボックスを使用し、決定論的逆スクランブリングアルゴリズムは、Ｓボックスの逆を使用する。そのため、出力系列がスクランブル系列から獲得され得るように、Ｓボックス関数は可逆的である。この決定論的スクランブリング方法は、フェイステル構造（Ｆｅｉｓｔｅｌ  ｓｔｒｕｃｔｕｒｅ）などの複雑な混合ネットワークを生成することも含む。理解されるべきこととして、フェイステル構造は、反復演算の複数のラウンドを組み合わせる。そのような演算は、ビットシャッフリング（bit-shuffling）、非線形関数、および線形関数を含むが、それらに限定されない。この決定論的スクランブリング方法は、その利点にも関わらず、いくつかの難点に悩まされる。例えば、この決定論的スクランブリング方法は、時不変である。この決定論的スクランブリング方法は、資源集約的にもなり得る。
【特許文献１】日本国特許出願公開第２００２−２９７０３３Ａ号
【特許文献２】米国特許第７，０６９，４９２号
【特許文献３】米国特許第７，０７９，６５１号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のことがらに鑑みて、従来の有限体拡大方法よりも計算的に効率がよい、有限またはガロア体サイズを拡大するための方法の必要性が依然として存在する。従来の決定論的スクランブリング方法よりも計算的に効率がよい、出力系列のエントロピを増大させるための可逆的な方法の必要性も存在する。そのような方法は、高度なセキュリティ機能をシステムに提供するためにも設計される必要がある。最も重要なこととして、様々な通信システムアプリケーションにおいて使用され得る、恣意的な順列を有する数の配列を生成するための方法および装置の必要性がさらに存在する。
【課題を解決するための手段】
【０００８】
本発明は、１つまたは複数のランダム系列の利用可能性に基づいて、システム内の乱数生成器の系列反復周期を拡張するための方法に関する。前記方法は、乱数列中の乱数を１つまたは複数のＲＮＳ剰余値として表現するために、１つまたは複数のＲＮＳ算術演算を実行するステップを含む。前記方法は、ＲＮＳ剰余値の各々が少なくとも１つの数字を含むように、ＲＮＳ剰余値の各々を互いに素の記数法（ｒｅｌａｔｉｖｅｌｙ  ｐｒｉｍｅ  ｎｕｍｂｅｒ  ｓｙｓｔｅｍ）に変換するステップも含む。前記方法はさらに、ＲＮＳ剰余値の各々に関連する数字の選択組合せ（ｓｅｌｅｃｔ  ｃｏｍｂｉｎａｔｉｏｎ）を使用して、恣意的な順列を有する出力系列数の配列を生成するステップを含む。恣意的な順列を有する配列は、循環構造を使用して決定される。
【０００９】
本発明の一態様によれば、前記方法は、０（ゼロ）からｎ！−１までの範囲にわたり得る値を有する、乱数列の各乱数を選択するステップを含む。前記方法は、ｎ個の要素を有する循環構造を選択するステップも含む。前記方法はさらに、出力系列数の各々をｎ個の要素のそれぞれ要素に関連付けるステップを含む。
【００１０】
本発明の別の態様によれば、前記方法は、互いに素の数（prime numbers）を法（moduli）として使用して、ＲＮＳ剰余値を計算するステップを含む。法は、ｎ！によって定義される１０進数を互いに素の数の積として決定することによって決定される。変換ステップはさらに、ＲＮＳ剰余値の各々を異なる互いに素の記数法に変換するステップを含む。
【００１１】
本発明の別の態様によれば、前記方法は、数字の選択組合せを、前記数字によって決定され得る値の範囲が循環構造内の利用可能な未選択要素の数に等しくなるように選択するステップを含む。前記方法は、循環構造内の利用可能な未選択要素を選択するために、数字の選択組合せの値を使用するステップも含む。前記方法はさらに、少なくとも２つのＲＮＳ剰余値に関連する少なくとも２つの数字を組み合わせて、少なくとも２つの数字の積に等しい異なる基数を有する数字を獲得するために、中国の剰余定理を使用するステップを含む。前記方法は、循環構造内の利用可能な未選択要素を選択するために、異なる基数を有する数字を使用するステップを含む。
【００１２】
リング生成器も提供される。リング生成器は、計算手段と、変換手段と、順列手段とから成る。計算手段は、乱数列中の乱数を１つまたは複数のＲＮＳ剰余値として表現するために、１つまたは複数のＲＮＳ算術演算を実行するように構成される。変換手段は、ＲＮＳ剰余値の各々が少なくとも１つの数字を含むように、ＲＮＳ剰余値の各々を互いに素の記数法に変換するように構成される。順列手段は、ＲＮＳ剰余値の各々に関連する数字の選択組合せを使用して、恣意的な順列を有する出力系列数の配列を生成するように構成される。恣意的な順列を有する配列は、循環構造を使用して決定される。
【００１３】
本発明の一態様によれば、乱数列中の各乱数は、０（ゼロ）からｎ！−１までの範囲内の値を有する。循環構造は、ｎ個の要素を有する。出力系列数の各々は、ｎ個の要素のそれぞれの要素に関連付けられる。
【００１４】
本発明の別の態様によれば、計算手段はさらに、互いに素の数を法として使用して、ＲＮＳ剰余値を計算するように構成される。互いに素の数は、ｎ！によって定義される１０進数に等しい積を有するように選択される。変換手段はさらに、ＲＮＳ剰余値の各々を異なる互いに素の記数法に変換するように構成される。
【００１５】
本発明のまた別の態様によれば、数字の選択組合せは、前記数字によって決定され得る値の範囲が循環構造内の利用可能な未選択要素の数に等しくなるように選択される。順列手段は、循環構造内の利用可能な未選択要素を選択するために、数字の選択組合せの値を使用する。順列手段は、少なくとも２つのＲＮＳ剰余値に関連する少なくとも２つの数字を組み合わせて、少なくとも２つの数字の積に等しい異なる基数を有する数字を獲得するために、中国の剰余定理を使用するようにも構成される。順列手段はさらに、１つまたは複数の追加の循環リング生成器を組み合わせるために、中国の剰余定理を使用するように構成される。順列手段は、循環構造内の利用可能な未選択要素を選択するために、異なる基数を有する数字を使用するように構成される。
【００１６】
機械可読媒体も提供される。機械可読媒体は、機械によって実行されたときに機械に一定の動作を実行させる命令を保存する。前記動作は、乱数列中の乱数を１つまたは複数のＲＮＳ剰余値として表現するために、１つまたは複数のＲＮＳ算術演算を実行することを含む。前記動作は、ＲＮＳ剰余値の各々が少なくとも１つの数字を含むように、ＲＮＳ剰余値の各々を互いに素の記数法に変換することも含む。前記動作はさらに、ＲＮＳ剰余値の各々に関連する数字の選択組合せを使用して、恣意的な順列を有する出力系列数の配列を生成することを含む。恣意的な順列を有する配列は、循環構造を使用して決定される。
【００１７】
本発明の一態様によれば、乱数列中の各乱数は、０（ゼロ）からｎ！−１までの値を有する。循環構造は、ｎ個の要素を有する。出力系列数の各々は、ｎ個の要素のそれぞれの要素に関連付けられる。
【００１８】
本発明の別の態様によれば、機械可読媒体は、互いに素の数を法として使用してＲＮＳ剰余値を計算する動作を引き起こす命令を含む。互いに素の数は、ｎ！によって定義される１０進数の整数倍に相当する積を有するように選択される。機械可読媒体は、ＲＮＳ剰余値の各々を異なる互いに素の記数法に変換する動作を引き起こす命令も含む。
【００１９】
本発明のまた別の態様によれば、機械可読媒体は、数字の選択組合せを、前記数字によって決定され得る値の範囲が循環構造内の利用可能な未選択要素の数に等しくなるように選択する動作を引き起こす命令を含む。機械可読媒体は、循環構造内の利用可能な未選択要素を選択するために、数字の選択組合せの値を使用する動作を引き起こす命令も含む。機械可読媒体はさらに、少なくとも２つのＲＮＳ剰余値に関連する少なくとも２つの数字を組み合わせて、少なくとも２つの数字の積に等しい異なる基数（number base）を有する数字を獲得するために、中国の剰余定理を使用する動作を引き起こす命令を含む。機械可読媒体は、循環構造内の利用可能な未選択要素を選択するために、異なる基数を有する数字を使用する動作を引き起こす命令を含む。
【００２０】
実施形態は、図面を参照しながら説明され、図面全体において、同様の数字は、同様の対象を表す。
【発明を実施するための最良の形態】
【００２１】
本発明が今から、本発明の例示的な実施形態が示された添付の図面を参照しながら、これ以降でより十分に説明される。しかし、本発明は、多くの異なる形態で実施されてもよく、本明細書で説明される実施形態に限定されると解釈されるべきではない。例えば、本発明は、方法、データ処理システム、またはコンピュータプログラム製品として実施されることができる。したがって、本発明は、ハードウェアのみによる実施形態、ソフトウェアのみによる実施形態、またはハードウェア／ソフトウェアによる実施形態などの形態を取ることができる。
【００２２】
本発明のいくつかの実施形態は、乱数列の反復周期を拡張するためのアルゴリズムを提供する。そのような実施形態は、恣意的な順列を有する数の配列を生成するためのアルゴリズムも提供する。この点について、そのようなアルゴリズムが、様々な通信システムアプリケーションにおいて使用され得ることを理解されたい。例えば、そのようなアルゴリズムは、有限またはガロア体のサイズを効率的に拡大するために、リング生成器またはその他の循環構造において実施されることができる。アルゴリズムは、決定論的スクランブリング方法において実施されることもできる。そのようなシナリオでは、アルゴリズムは、出力系列をマスクするために、出力系列のビットに適用されることができる。アルゴリズムはさらに、乱数列の反復周期を増大させるために、疑似乱数生成器において実施されることができる。
【００２３】
ここで図１を参照すると、系列の反復周期を拡張するためのアルゴリズムの概念図が提供されている。この点について、乱数の系列ＲＮ０、．．．、ＲＮＮが生成されることを理解されたい。各乱数ＲＮ０、．．．、ＲＮＮは、０（ゼロ）からｎ！−１までの値をとる。乱数の系列ＲＮ０、．．．、ＲＮＮは、一定の時間周期の後に繰り返される。そのため、アルゴリズムは、この時間周期を拡張するために利用される。このアルゴリズムは、（図１〜図２に関連して）以下でより詳細に説明される。
【００２４】
再び図１を参照すると、アルゴリズムは、何らかの定義された算術プロセスによって計算された乱数ＲＮ０で開始する。そのような算術プロセスは、当業者にはよく知られている。したがって、定義された算術プロセスは、本明細書では詳細に説明されない。しかし、算術プロセスは、疑似乱数または疑似無秩序数（ｐｓｅｕｄｏ−ｃｈａｏｔｉｃ  ｎｕｍｂｅｒ）を計算するための算術プロセスであり得ることを理解されたい。乱数列の各乱数ＲＮ０、．．．、ＲＮＮが、０（ゼロ）からｎ！−１までの１０進数値を取り得ることも理解されたい。ｎ！は、階乗であり、乱数列のメンバＲＮ０、．．．、ＲＮＮが等しくなり得る可能性のある値の総数を表す１０進数値に等しい。
【００２５】
乱数ＲＮ０、．．．、ＲＮＮは、１０進法表現または２進法表現で表現されることができる。乱数列ＲＮ０、．．．、ＲＮＮが１０進法表現で表現される場合、乱数列ＲＮ０、．．．、ＲＮＮは、１０進の数字系列である。本明細書で使用される「数字」という語は、位取り記数法（ｗｅｉｇｈｔｅｄ  ｎｕｍｂｅｒｉｎｇ  ｓｙｓｔｅｍ）における単一の文字を指す。例えば、系列４５は、数字４と数字５を有する。数字４は、数字５の値の１０倍となるように重み付けされる。１０進系列の各数字は、０、１、２、３、４、５、６、７、８、または９の値を有する。１０進系列は、特定のアルゴリズム用途に従って選択されたディジット長（ｄｉｇｉｔ  ｌｅｎｇｔｈ）を有する。乱数列ＲＮ０、．．．、ＲＮＮが位取り２進法表現で表現される場合、各乱数ＲＮ０、．．．、ＲＮＮは、２進の数字系列である。２進系列の各数字は、０または１の値を有する。２進系列は、特定のアルゴリズム用途に従って選択されたディジット長を有する。
【００２６】
各乱数ＲＮ０、．．．、ＲＮＮは、ＲＮＳ算術演算、すなわちモジュロ演算（ｍｏｄｕｌｏ  ｏｐｅｒａｔｉｏｎ）を使用して、１組の剰余数系（ＲＮＳ：ｒｅｓｉｄｕｅ  ｎｕｍｂｅｒ  ｓｙｓｔｅｍ）剰余値ＲＶ０、．．．、ＲＶＪとして表現されることができる。モジュラ演算（ｍｏｄｕｌａｒ  ａｒｉｔｈｍｅｔｉｃ）は、当業者にはよく知られている。したがって、そのような演算は、本明細書では詳細に説明されない。しかし、ＲＮＳ剰余値が、数式（１）によって定義され得ることを理解されたい。
ＲＶｐ＝ＲＮｎ  ｍｏｄｕｌｏ  ｍｐ    （１）
ここで
ＲＶｐは、ｍｐを法として乱数ＲＮｎを表したＲＮＳ剰余値であり、
ＲＮｎは、乱数列ＲＮ０，．．．，ＲＮＮ中の乱数の１つであり、
ｍｐは、値ｂａｓｅｋｂａｓｅを有することができる法である。
【００２７】
法ｍｐ＝ｍ０ｋｍ０，ｍ１ｋｍ１、．．．、ｍＪｋｍＪは、ｎ！の一意の素因数分解によって確定される値を有するように選択される。上で述べられたように、ｎ！は、乱数列ＲＮ０、．．．、ＲＮＮが等しくなり得る可能性のある値の総数である。この点について、乱数を互いに素の数の一意の積として書き表すために、算術の基本定理（ＦＴＡ：Ｆｕｎｄａｍｅｎｔａｌ  Ｔｈｅｏｒｅｍ  ｏｆ  Ａｒｉｔｈｍｅｔｉｃ）が使用されることができ、互いに素の数は、個々の素数の別々の累乗に分割された場合に、自動的に互いに素となることを理解されたい。本明細書で使用される「互いに素の数」という語句は、最大公約数が１である数の集まりを指す。例えば、８の階乗（８！）は、値が４０，３２０の１０進数に等しい。この１０進数は、素数の積（４０３２０＝２Ｋ２・３Ｋ３・５Ｋ５・７Ｋ７＝２７・３２・５１・７１）として表現されることができる。そのようなシナリオでは、系列中の各乱数ＲＮ０、．．．、ＲＮＫを１組のＲＮＳ剰余値ＲＶ０，．．．，ＲＶＪとして表現するために利用される各ＲＮＳ算術演算は、互いに素の数２７、３２、５１、７１を法ｍ０ｋｍ０、ｍ１ｋｍ１、ｍ２ｋｍ２、ｍ３ｋｍ３としてそれぞれ使用することができる。理解されるべきこととして、剰余数系は、個々の法が可能な限り小さい場合、計算効率の利得に関して最も大きな可能性をもたらす。さらに、デジタルハードウェアは２進数演算に対して最適化されるので、因数２は、（本質的に効率的である）特別なケースである。
【００２８】
再び図１を参照すると、各ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪは、異なる互いに素の記数法表現で表現されることができる。この点について、異なる互いに素の記数法を使用する利点は、１つの剰余空間における演算が、その他の剰余空間とは独立に実行され得ることであることを理解されたい。複数の剰余計算を独立に実行した後、上記計算の結果は、中国の剰余定理アルゴリズムなどのアルゴリズムを介して、再結合されることができる。再結合結果は、乱数ＲＮ０、．．．、ＲＮＮによって定義される順列を有する配列と同じ順列を有する配列を効率的に実施するために使用されることができる。
【００２９】
本発明の一実施形態によれば、ＲＮＳ剰余値ＲＶ０は、２進法（すなわち、基数２の記数法）表現で表現されることができる。そのため、剰余値ＲＶ０ｂａｓｅ２は、２進数字の系列である。各２進数字は、０または１の値を有する。ＲＮＳ剰余値ＲＶ１は、３進法（すなわち、基数３の記数法）表現で表現されることができる。したがって、ＲＮＳ剰余値ＲＶ１ｂａｓｅ３は、３進数字の系列である。各３進数字は、０、１、または２の値を有する。ＲＮＳ剰余値ＲＶ２は、５進法（すなわち、基数５の記数法）表現で表現されることができる。したがって、ＲＮＳ剰余値ＲＶ２ｂａｓｅ５は、５進数字の系列である。各５進数字は、０、１、２、３、または４の値を有する。ＲＮＳ剰余値ＲＶ３は、７進法（すなわち、基数７の記数法）表現で表現されることができる。したがって、ＲＮＳ剰余値ＲＶ３ｂａｓｅ７は、７進数字の系列である。各７進数字は、０、１、２、３、４、５、または６の値を有する。しかしながら、本発明は、この点について限定されない。
【００３０】
再び図１を参照すると、部分的または完全な恣意的な順列を有する数の配列は、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２、．．．、ＲＶＪｂａｓｅｍＪの全部または一部の選択組合せを使用して生成される。この点について、各ＲＮＳ剰余値ＲＶ０ｂａｓｅ２、．．．、ＲＶＪｂａｓｅｍＪが、１つまたは複数の数字から成ることを理解されたい。例えば、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２は、２進数字ｂ１ｂ２．．．ｂＫ２から成ることができる。ＲＮＳ剰余値ＲＶ１ｂａｓｅ３は、３進数字ｔ１ｔ２．．．ｔＫ３から成ることができる。ＲＮＳ剰余値ＲＶ２ｂａｓｅ５は、５進数字ｐｔ１ｐｔ２．．．ｐｔＫ５から成ることができる。ＲＮＳ剰余値ＲＶ３ｂａｓｅ７は、７進数字ｓ１ｓ２．．．ｓＫ７から成ることができる。そのようなシナリオでは、恣意的な順列を有する出力系列数の配列が決定され、図２Ａに示される循環構造などの循環構造に適用されることができる。
【００３１】
ここで図２Ａ〜図２Ｂを参照すると、循環構造２００は、複数の要素Ａ、Ｂ、．．．、Ｈから成る。要素Ａ、Ｂ、．．．、Ｈの数は、ｎ！の１０進数ｎによって確定される。上で述べられたように、ｎ！は、乱数列ＲＮ０、．．．、ＲＮＮが等しくなり得る可能性のある値の総数である。本明細書で開示される方法が、要素Ａ、Ｂ、．．．、Ｈの特定の１つを指定するために、各要素に対応する開始位置値を割り当てると便利である。図２Ａ〜図２Ｂに示される本発明の一実施形態によれば、要素Ａは、開始位置０を有する。要素Ｂは、開始位置１を有する。要素Ｃは、開始位置２を有し、以下も同様である。しかしながら、本発明は、この点について限定されない。例えば、要素Ａは代替的に、開始位置１を有することができる。要素Ｂは代替的に、開始位置２を有することができる。要素Ｃは代替的に、開始位置３を有することができ、以下も同様である。同様に、本明細書で開示される方法が、特定の出力系列を指定するために、各要素に対応する出力系列数を割り当てると便利である。図２Ａ〜図２Ｂに示される本発明の実施形態によれば、要素Ａは、対応する出力系列数１を有する。要素Ｂは、対応する出力系列数２を有する。要素Ｃは、対応する出力系列数３を有し、以下も同様である。しかしながら、本発明は、この点について限定されない。
【００３２】
再び図１および図２Ａ〜図２Ｃを参照すると、循環構造２００の要素の系列は、ＲＮＳ剰余値ＲＶ０，．．．，ＲＶＪの全部または一部を使用して決定される。例えば、循環構造２００に８つの可能な要素Ａ、Ｂ、．．．、Ｈが存在する場合、出力系列の第１の数は、剰余値ＲＶ０ｂａｓｅ２の３つの数字でなる任意の組（例えば、ｂ１ｂ２ｂ３）を使用して、一意的に決定されることができる。理解されるべきこととして、数字の組ｂ１ｂ２ｂ３は、関連する１０進数値の０、１、２、３、４、５、６、または７を有することができる。例えば、２進数字ｂ１ｂ２ｂ３が２進数値の０００を有する場合、２進数値は、１０進数値の０に変換される。対照的に、２進数字ｂ１ｂ２ｂ３が２進数値の１１１を有する場合、２進数値は、１０進数値の７に変換される。この数字の組ｂ１ｂ２ｂ３が関連する１０進数値の３を有する場合、循環構造２００の系列における開始要素は、要素Ａ〜Ｈ内の開始位置３を有する要素、すなわち、図２Ｃに示されるように要素Ｄである。したがって、出力系列の第１の数は、１０進数値の４、すなわち、図２Ｂに示されるように要素Ｄに関連付けられた出力系列数の値を有する。
【００３３】
結果として、今は、循環構造２００の系列において第２の要素として選択され得る７つの要素Ａ、Ｂ、Ｃ、Ｅ、Ｆ、Ｇ、Ｈが存在する。そのため、出力系列の第２の数は、剰余値ＲＶ３ｂａｓｅ７の７進数字（例えば、ｓ１）を使用して、一意的に決定されることができる。理解されるべきこととして、７進数字ｓ１は、関連する１０進数値の０、１、２、３、４、５、または６を有することができる。７進数字ｓ１が関連する１０進数値の４を有する場合、循環構造２００の系列における第２の要素は、要素Ａ〜ＣおよびＥ〜Ｈ内の位置４にある要素、すなわち、図２Ｃに示されるように要素Ｆである。出力系列の第２の数は、１０進数値の６、すなわち、図２Ｂに示されるように要素Ｆに関連付けられた出力系列数の値を有する。
【００３４】
今は、循環構造２００の系列において第３の要素として選択され得る６つの要素Ａ、Ｂ、Ｃ、Ｅ、Ｇ、Ｈが存在する。そのため、出力系列の第３の数は、剰余値ＲＶ０ｂａｓｅ２の２進数字（例えば、ｂ４）とＲＮＳ剰余値ＲＶ１ｂａｓｅ３の３進数字（例えば、ｔ１）とを使用して、一意的に決定されることができる。理解されるべきこととして、第４の２進数字ｂ４は、０または１の値を有することができる。第１の３進数字ｔ１は、０、１、または２の値を有することができる。これら２つの混合基数数字は、単一の有効な基数６の数字値を獲得するために、中国の剰余定理（ＣＲＴ）によって組み合わされることができる。ＣＲＴまたは類似の方法による混合基数再結合は、当業者にはよく知られている。したがって、ＣＲＴまたは類似の方法は、本明細書では詳細に説明されない。第４の２進数字ｂ４が値１を有し、第１の３進数字ｔ１が値０を有する場合、循環構造２００の系列における第３の要素は、要素Ａ〜Ｃ、Ｅ、およびＧ〜Ｈ内の位置３にある要素、すなわち、図２Ｃに示されるように要素Ｅである。留意すべきこととして、位置値の３は、ＣＲＴを使用して獲得される。出力系列における第３の数は、１０進数値の５、すなわち、図２Ｂに示されるように要素Ｅに関連付けられた出力系列数の値を有する。
【００３５】
今は、循環構造２００の系列において第４の要素として選択され得る５つの要素Ａ、Ｂ、Ｃ、Ｇ、Ｈが存在する。そのため、出力系列の第４の数は、ＲＮＳ剰余値ＲＶ２ｂａｓｅ５の５進数字（例えば、ｐｔ１）を使用して、一意的に決定されることができる。理解されるべきこととして、５進数字ｐｔ１は、１０進数値の０、１、２、３、または４を有することができる。５進数字ｐｔ１が１０進数値の１を有する場合、循環構造２００の系列における第４の要素は、要素Ａ〜ＣおよびＧ〜Ｈ内の位置１にある要素、すなわち、図２Ｃに示されるように要素Ｂである。出力系列における第４の数は、１０進数値の２、すなわち、図２Ｂに示されるように要素Ｂに関連付けられた出力系列数の値を有する。
【００３６】
今は、循環構造２００の系列において第５の要素として選択され得る４つの要素Ａ、Ｃ、Ｇ、Ｈが存在する。そのため、出力系列の第５の数は、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２の２つの２進数字（例えば、ｂ５ｂ６）を使用して、一意的に決定されることができる。理解されるべきこととして、２進数字の組ｂ５ｂ６は、関連する１０進数値の０、１、２、または３を有することができる。例えば、２進数字の組ｂ５ｂ６が２進数値の００を有する場合、２進数値は、１０進数値の０に変換される。対照的に、２進数字の組ｂ５ｂ６が２進数値の１１を有する場合、２進数値は、１０進数値の３に変換される。２進数字の組ｂ５ｂ６が１０進数値の３を有する場合、循環構造２００の系列における第５の要素は、要素Ａ、Ｃ、Ｇ、およびＨ内の位置３にある要素、すなわち、図２Ｃに示されるように要素Ｈである。出力系列における第５の数は、１０進数値の８、すなわち、図２Ｂに示されるように要素Ｈに関連付けられた出力系列数の値を有する。
【００３７】
今は、循環構造２００の系列において第６の要素として選択され得る３つの要素Ａ、Ｃ、Ｇが存在する。そのため、出力系列の第６の数は、ＲＮＳ剰余値ＲＶ１ｂａｓｅ３の３進数字（例えば、ｔ２）を使用して、一意的に決定されることができる。理解されるべきこととして、第２の３進数字ｔ２は、０、１、または２の値を有することができる。第２の３進数字ｔ２が１０進数値の０を有する場合、循環構造２００の系列における第６の要素は、要素Ａ、Ｃ、およびＧ内の位置０にある要素、すなわち、図２Ｃに示されるように要素Ａである。出力系列における第６の数は、１０進数値の１、すなわち、図２Ｂに示されるように要素Ａに関連付けられた出力系列数の値を有する。
【００３８】
今は、循環構造２００の系列において第７の要素として選択され得る２つの要素Ｃ、Ｇが存在する。そのため、出力系列の第７の数は、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２の最後の２進数字（例えば、ｂ７）を使用して、一意的に決定されることができる。理解されるべきこととして、第７の２進数字ｂ７は、０または１の値を有することができる。第７の２進数字ｂ７が値１を有する場合、循環構造２００の系列における第７の要素は、要素ＣおよびＧ内の位置１にある要素、すなわち、図２Ｃに示されるように要素Ｇである。出力系列における第７の数は、１０進数値の７、すなわち、図２Ｂに示されるように要素Ｇに関連付けられた出力系列数の値を有する。結果として、循環構造２００の系列において第８の要素として選択され得るただ１つの要素Ｃが存在する。そのため、出力系列の第８の数は、１０進数値の３、すなわち、図２Ｂに示されるように要素Ｃに関連付けられた出力系列数の値を有する。
【００３９】
上で説明されたプロセスは、複数の乱数ＲＮ０、．．．、ＲＮＮの各々について反復的に実行されることができる。この点について、数１からｎでなるｎ！通りの可能な出力系列が存在することを理解されたい。上で述べられたように、ｎ！は、乱数列ＲＮ０，．．．，ＲＮＮが等しくなり得る可能性のある値の総数である。結果として、複数の出力系列における数の配列は、ｎ・ｎ！＋１の出力まで、繰り返されることはない。
【００４０】
本発明をさらに説明するために、以下の実施例が提供される。しかし、それによって、本発明の範囲が多少なりとも限定されると考えられるべきではない。
【実施例１】
【００４１】
乱数ＲＮ０は、０から４０，３１９までの１０進数値を取ることができる。そのため、乱数ＲＮ０が等しくなり得る可能性のある値の総数は、４０，３２０である。算術の基本定理を使用して、数４０，３２０は、８！＝８・７・…・１＝２７・３２・５１・７１と書き表されることができる。実際に、そのようなシナリオにおいて利用される循環構造は、ｎ個の要素、すなわち、８個の要素を含む。
【００４２】
乱数ＲＮ０をＲＮＳ剰余値ＲＶ０、．．．、ＲＶ３として表現するために利用される各ＲＮＳ算術演算は、互いに素の数２７、３２、５１、７１を１組の法ｍ０ｋｍ０，ｍ１ｋｍ１，ｍ２ｋｍ２，ｍ３ｋｍ３として使用する。したがって、ＲＮＳ剰余値ＲＶ０、．．．、ＲＶ３は、数式（２〜５）によって定義されることができる。
ＲＶ０＝ＲＮ０  ｍｏｄｕｌｏ  ２７    （２）
ＲＶ１＝ＲＮ０  ｍｏｄｕｌｏ  ３２    （３）
ＲＶ２＝ＲＮ０  ｍｏｄｕｌｏ  ５１    （４）
ＲＶ３＝ＲＮ０  ｍｏｄｕｌｏ  ７１    （５）
【００４３】
ＲＮＳ剰余値ＲＶ０、．．．、ＲＶ３は、乱数ＲＮ０の値を数式（２〜５）に代入することによって計算されることができる。乱数ＲＮ０が１０，３１１に等しい場合、ＲＮＳ剰余値ＲＶ０は、７１に等しい。ＲＮＳ剰余値ＲＶ１は、６に等しい。ＲＮＳ剰余値ＲＶ２は、１に等しい。ＲＮＳ剰余値ＲＶ３は、０に等しい。したがって、ＲＮＳ剰余値ＲＶ０、．．．、ＲＶ３は、数式（６〜９）によって定義されることができる。
ＲＶ０＝ＲＮ０  ｍｏｄｕｌｏ  ２７＝７１  （６）
ＲＶ１＝ＲＮ０  ｍｏｄｕｌｏ  ３２＝６    （７）
ＲＶ２＝ＲＮ０  ｍｏｄｕｌｏ  ５１＝１    （８）
ＲＶ３＝ＲＮ０  ｍｏｄｕｌｏ  ７１＝０    （９）
【００４４】
各ＲＮＳ剰余値ＲＶ０、．．．、ＲＶ３は、異なる基数系（ｂａｓｅ  ｎｕｍｂｅｒ  ｓｙｓｔｅｍ）で表現される。具体的には、ＲＮＳ剰余値ＲＶ０は、２進法で表現される。そのため、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２は、値１０００１１１を有する２進数字の系列である。ＲＮＳ剰余値ＲＶ１は、３進法で表現される。そのため、ＲＮＳ剰余値ＲＶ１ｂａｓｅ３は、値２０を有する３進数字の系列である。ＲＮＳ剰余値ＲＶ２は、５進法で表現される。そのため、ＲＮＳ剰余値ＲＶ２ｂａｓｅ５は、値１を有する５進数字である。ＲＮＳ剰余値ＲＶ３は、７進法で表現される。そのため、ＲＮＳ剰余値ＲＶ３ｂａｓｅ７は、値０を有する７進数字である。したがって、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２、．．．、ＲＶ３ｂａｓｅ７は、数式（１０〜１３）によって定義されることができる。
ＲＶ０ｂａｓｅ２＝ＲＮ０  ｍｏｄｕｌｏ  ２７＝７１＝１０００１１１  （１０）
ＲＶ１ｂａｓｅ３＝ＲＮ０  ｍｏｄｕｌｏ  ３２＝６  ＝２０            （１１）
ＲＶ２ｂａｓｅ５＝ＲＮ０  ｍｏｄｕｌｏ  ５１＝１  ＝１              （１２）
ＲＶ３ｂａｓｅ７＝ＲＮ０  ｍｏｄｕｌｏ  ７１＝０  ＝０              （１３）
【００４５】
出力系列の第１の数は、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２の最後の３つの２進数字１１１を使用して決定される。出力系列の第２の数は、ＲＮＳ剰余値ＲＶ３ｂａｓｅ７の７進数字０を使用して決定される。出力系列の第３の数は、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２の第４の２進数字０と、ＲＮＳ剰余値ＲＶ１ｂａｓｅ３の第２の３進数字０とを使用して決定される。出力系列の第４の数は、ＲＮＳ剰余値ＲＶ２ｂａｓｅ５の５進数字１を使用して決定される。出力系列の第５の数は、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２の第２および第３の２進数字００を使用して決定される。出力系列の第６の数は、ＲＮＳ剰余値ＲＶ１ｂａｓｅ３の第１の３進数字２を使用して決定される。出力系列の第７の数は、ＲＮＳ剰余値ＲＶ０ｂａｓｅ２の第１の２進数字１を使用して決定される。その結果、出力系列は、８１２４３７６５である。
【実施例２】
【００４６】
サイズが５２の階乗（５２！）の乱数列が、数生成プロセスの任意の組合せを介して選択される。サイズが５２の階乗（５２！）の乱数列は、近似的に１０の６７乗の８倍（８・１０６７）に等しい。算術の基本定理を使用して、１０の６７乗の８倍（８・１０６７）は、５２！＝５２・５１・…・１＝２４９・３２３・５１２・７８・１１４・１３４・１７３・１９３・２３２・２９１・３１１・３７１・４１１・４３１・４７１と書き表されることができる。代替的かつより効率的に、各基数上の１５個の独立の乱数生成器の集まりが、サイズが５２の階乗（５２！）の有効な乱数を生成するために、等価的に使用されることができる。（図１〜図２および実施例１に関して）上で説明されたのと同じ論理に従うと、出力系列の第１の数は、２つの２進数字と１つの１３進数字とを使用して決定される。出力系列の第２の数は、１つの３進数字と１つの１７進数字とを使用して決定される。出力系列の第３の数は、１つの２進数字と２つの５進数字とを使用して決定され、以下も同様である。理解されるべきこととして、これらの数学的演算は、演算が並列に実行されるように、ハードウェアで実施されることができる。並列処理構成は、相対的に迅速で効率的な計算をもたらす。
【実施例３】
【００４７】
これらの組合せ技法に基づいた乱数生成器は、他の循環リング生成器の何らかの数とその出力が組み合わされる循環リング２００におけるようなｎ＝２３３個の要素の恣意的な写像を使用して構成されることができる。この組合せは、中国の剰余定理などの方法を使用して実行されることができる。追加の循環リング生成器の標数が、２３９、２４１、および２５１など、２３３を超える奇素数である場合、有効な繰り返し期間は、乗法的に増大する。この例における４つの数に基づいて、出力系列は、１０の４５９乗（１０４５９）個を超える出力の後にようやく繰り返される。さらに、これらの追加の循環リング生成器の組み込みは、順列写像の決定論的特性をマスクするのに役立つ。
【００４８】
ここで図３を参照すると、恣意的な順列を有する数の配列を生成するための方法３００のフロー図が提供されている。方法３００は、ステップ３０２で開始し、ステップ３０４に進む。ステップ３０４において、循環構造２００の要素の総数ｎが選択される。このステップ３０４は、循環構造２００の各要素の開始位置を選択することも含む。例えば、要素Ａは、位置０を有する。要素Ｂは、位置１を有する。要素Ｃは、位置２を有し、以下も同様である。このステップ３０４はさらに、各要素の出力系列数を選択することも含む。例えば、要素Ａに関連付けられる出力系列数は、値１を有する。要素Ｂに関連付けられる出力系列数は、値２を有し、以下も同様である。その後、ステップ３０６が実行される。ステップ３０６は、乱数ＲＮが等しくなり得る可能性のある値の総数ｎ！を選択することを含む。
【００４９】
図３に示されるように、方法３００は、ステップ３０８に進む。ステップ３０８において、可能な値の総数ｎ！によって確定される１０進数が、互いに素の数の積として書き表される。ステップ３１０において、これらの互いに素の数は、ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪを計算するための法ｍ０ｋｍ０、ｍ１ｋｍ１、．．．、ｍＪｋｍＪとして使用される。その後、ステップ３１２が実行され、乱数ＲＮが生成される。その後、乱数ＲＮを１組のＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪに変換するために、ＲＮＳ算術演算が実行される。
【００５０】
ステップ３１６において、ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪを剰余数系から基数系に変換するために、算術演算が実行される。基数系は、２進法、３進法、５進法、７進法、１１進法、１３進法、１７進法、１９進法、２３進法、２９進法、および３１進法を含むが、それらに限定されない。この点について、各ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪが異なる基数系に変換され得ることを理解されたい。
【００５１】
その後、ステップ３１８が実行され、特有の順列を有する出力系列数の配列を生成するために、ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪの全部または一部の選択組合せが使用される。この点について、そのような順列を有する配列が決定され、図２Ａに示される循環構造などの循環構造に適用され得ることを理解されたい。この点について、各出力系列数が、循環構造２００のある要素に関連付けられることを理解されたい。循環構造２００のどの要素が上記組合せの１０進数値に等しい位置を有するかを決定するために、ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪの全部または一部の各組合せが使用される。要素が識別されると、その要素に関連付けられた出力系列数が、出力系列に追加される。ステップ３１８の後、ステップ３２０が実行される。ステップ３２０において、そのような順列を有する配列が、循環構造２００、長さｎのビット列、データストリーム変更アプリケーション、またはその他のアプリケーションに適用される。この点について、数のランダム系列の生成メンバが、その後の使用のために出力されることを理解されたい。例えば、出力系列数を使用して、デジタルデータストリームが変更される。その後、ステップ３２２が実行され、方法３００はステップ３１２に復帰する。
【００５２】
理解されるべきこととして、出力系列は、ステップ３１２〜３２０のサイクル毎に変化する順列の順序を有する。言い換えると、出力系列数の順列の順序は、各乱数０、１、．．．、ｎ！−１毎に特有である。そのため、各出力系列の順列の順序は、一見ランダムである。また、出力系列数の順列の順序は、ｎ・ｎ！個の出力の間は繰り返しを開始しない。やはり理解されるべきこととして、方法３００は、様々な通信システムアプリケーションにおいて使用されることができる。例えば、そのような方法は、ランダム系列の利用可能性に基づいたシステムのリング生成器において有利に実施されることができる。そのようなシナリオでは、リング生成器は、恣意的に大きく選択された期間を有する、数の出力系列を生成することができる。
【００５３】
ここで図４を参照すると、本発明の構成を実施するのに使用され得るリング生成器４００の例示的な一実施形態が示されている。リング生成器４００は、乱数生成（ＲＮＧ）モジュール４０２と、計算モジュール４０４、４０６、４０８と、順列モジュール４１０とから成る。ＲＮＧモジュール４０２は、何らかの定義された算術プロセスを使用して乱数の系列ＲＮ０、．．．、ＲＮＮを計算するように構成されたハードウェアおよびソフトウェアから成る。そのような算術プロセスは、当業者にはよく知られている。したがって、定義された算術プロセスは、本明細書では詳細に説明されない。しかし、乱数の系列ＲＮ０、．．．、ＲＮＮが、疑似乱数または疑似無秩序数の任意の選択された系列であり得ることを理解されたい。
【００５４】
再び図４を参照すると、ＲＮＧモジュール４０２は、乱数列ＲＮ０、．．．、ＲＮＮを１０進法から２進法に変換するように構成されたハードウェアおよびソフトウェアからも成る。この点について、２進法表現で表現された乱数ＲＮ０、．．．、ＲＮＮは、値０または値１を有する数字の系列を含むことを理解されたい。そのため、２進法表現は、あるディジット長ＢＬ（例えば、８ディジット）を有する。ＲＮＧモジュール４０２はさらに、乱数ＲＮ０、．．．、ＲＮＮを計算モジュール４０４、４０６、４０８に伝達するように構成されたハードウェアおよびソフトウェアからも成る。
【００５５】
各計算モジュール４０４、４０６、４０８は、系列ＲＮ０、．．．、ＲＮＮ中の乱数を１組のＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪに変換するためにＲＮＳ算術演算を実行するように構成されたハードウェアおよびソフトウェアから成る。この点について、系列ＲＮ０、．．．、ＲＮＮ中の乱数を１組のＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪとして表現するために利用される各ＲＮＳ算術演算は、異なる互いに素の数を法ｍ０ｋｍ０、ｍ１ｋｍ１、．．．、ｍＪｋｍＪとして使用することを理解されたい。各互いに素の数は、各乱数ＲＮ０、．．．、ＲＮＮが等しくなり得る可能性のある値の総数ｎ！に等しい１０進数によって定義される。その１０進数は、互いに素の数の積として表現される。これらの互いに素の数は、法ｍ０ｋｍ０、ｍ１ｋｍ１、．．．、ｍＪｋｍＪとして使用される。
【００５６】
再び図４を参照すると、各計算モジュール４０４、４０６、４０８は、各ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪを剰余数系から基数系に変換するように構成されたハードウェアおよびソフトウェアからも成る。この点について、各計算モジュール４０４、４０６、４０８は、それぞれのＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪを剰余数系から特定の基数系に変換するように構成されることを理解されたい。例えば、計算モジュール４０４は、ＲＮＳ剰余値ＲＶ０を２進法に変換するように構成される。計算モジュール４０６は、ＲＮＳ剰余値ＲＶ１を３進法に変換するように構成される。計算モジュール４０８は、ＲＮＳ剰余値ＲＶＪを７進法に変換するように構成される。しかしながら、本発明は、この点について限定されない。
【００５７】
各計算モジュール４０４、４０６、４０８はさらに、それぞれの剰余値ＲＶ０、．．．、ＲＶＪを順列モジュール４１０に伝達するように構成されたハードウェアおよびソフトウェアからも成る。順列モジュール４１０は、恣意的な順列を有する出力系列数の配列を生成するために、ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪの全部または一部の選択組合せを使用するように構成されたハードウェアおよびソフトウェアから成る。順列モジュール４１０は、特有の順列を有する出力系列数の配列から成る出力を生成するように構成されたハードウェアおよびソフトウェアからも成る。この点について、そのような順列を有する配列が決定され、図２Ａに示される循環構造などの循環構造に適用されることを理解されたい。この点について、各出力系列数が、循環構造２００のある要素に関連付けられることを理解されたい。循環構造のどの要素が上記組合せの１０進数値に等しい位置を有するかを決定するために、ＲＮＳ剰余値ＲＶ０、．．．、ＲＶＪの全部または一部の各組合せが使用される。要素が識別されると、その要素に関連付けられた出力系列数が、出力系列に追加される。順列モジュール４１０はさらに、出力系列を外部装置（図示されず）に伝達するように構成されたハードウェアおよびソフトウェアからも成る。外部装置は、出力系列に含まれる出力系列数を使用して、デジタルデータストリームを変更するように構成されることができる。本発明の一態様によれば、順列モジュール４１０は、１つまたは複数の追加の循環リング生成器と組み合わせるために、中国の剰余定理を使用するように構成される。しかしながら、本発明は、この点について限定されない。
【００５８】
当業者であれば、リング生成器４００は、ＲＮＳベースの順列写像の１つの構成であることを理解されよう。しかし、本発明は、この点について限定されず、その他の任意のリング生成器構成が、制限なく使用されることができる。
【００５９】
本発明についての上記の説明に鑑みて、本発明が、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実現され得ることを認識されたい。本発明による恣意的な順列を有する数字の配列を生成する方法は、１つの処理システムにおいて中央集中方式で、または複数の相互接続された処理システム間に異なる要素が分散された分散方式で実現されることができる。本明細書で説明された方法を実施するように適合された任意の種類のコンピュータシステムまたはその他の装置が適している。ハードウェアとソフトウェアの典型的な組合せは、ロードされ、実行されたときに、コンピュータプロセッサが本明細書で説明された方法を実施するようにコンピュータプロセッサを制御するコンピュータプログラムを備えた、汎用コンピュータプロセッサとすることができる。もちろん、同様の結果を達成するために、特定用途向け集積回路（ＡＳＩＣ）および／またはＦＰＧＡも使用されることができる。
【００６０】
本発明は、本明細書で説明された方法の実施を可能にするすべての特徴を含み、コンピュータシステムにロードされたときにこれらの方法を実施することができる、コンピュータプログラム製品に埋め込まれることもできる。本発明の文脈におけるコンピュータプログラムまたはアプリケーションは、情報処理能力を有するシステムに特定の機能を直ちに、またはａ）別の言語、コード、もしくは表記法への変換、ｂ）異なる素材形態での再現のうちの一方もしくは両方の後に実行させることが意図された命令の組からなる、任意の言語、コード、または表記法による任意の表現を意味する。加えて、上述の説明は、例としてのみ意図されており、添付の特許請求の範囲で示されることを除き、本発明を多少なりとも限定することは意図されていない。
【図面の簡単な説明】
【００６１】
【図１】本発明を理解するのに役立つ、系列反復周期を拡張するためのアルゴリズムの概念図である。
【図２Ａ】本発明を理解するのに役立つ、循環構造の概要図である。
【図２Ｂ】本発明を理解するのに役立つ、関連する開始位置値および出力系列数を有する循環構造要素を示す表である。
【図２Ｃ】本発明を理解するのに役立つ、変化する循環構造要素位置の概要図である。
【図３】本発明を理解するのに役立つ、恣意的な順列を有する数の配列を生成するための方法のフロー図である。
【図４】本発明を理解するのに役立つ、リング生成器のブロック図である。
【符号の説明】
【００６２】
２００  循環構造
４００  リング生成器
４０２  乱数生成モジュール
４０４  計算モジュール
４０６  計算モジュール
４０８  計算モジュール
４１０  順列モジュール
【図１】
0004559505.tif 000002
【図２Ａ】
0004559505.tif 000003
【図２Ｂ】
0004559505.tif 000004
【図２Ｃ】
0004559505.tif 000005
【図３】
0004559505.tif 000006
【図４】
0004559505.tif 000007