説明

擬似ランダムストリングを生成するための方法及びデバイス

本発明は、暗号化手順において使用されることを意図したカージナルの有限体Kに属する項の擬似ランダムストリングを生成する方法に関する。前記方法は、有限体Kに属するn個の変数を有するm個の多項式のシステム(Γ)の反復計算を具備している。本発明によれば、各反復において、これらのm個の多項式の係数は再生成される。本発明はまた、この方法を実行することを意図された擬似ランダムストリングジェネレータに関する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定のアルファベットに属するシンボルの擬似ランダムストリングを生成することに関する。特に、そのストリングは、一部の暗号化手順に使用される。
【背景技術】
【0002】
擬似ランダムストリングは、決定性的に(deterministically)生成されるが、少なくとも適度な時間(適度な時間の意味は、明らかに、目的とするアプリケーション、及び、利用可能な演算力にリンクされている。)内に、各シンボルがアルファベットから完全にランダムに選択されているシンボルのストリングから、区別することが不可能な1つのストリングである。実際に、通常、擬似ランダムストリングは、秘密のパラメータ(コンテクストによってシード又は鍵と呼ばれる)を用いた適切なアルゴリズムを初期化することによって生成され、かつ、初期化ベクトルと呼ばれる、秘密か、又は、秘密ではない追加的なパラメータを使用している。
【0003】
上記のアルファベットは、バイナリセット{0,1}、即ち、0から9の数字のセット、又は、これらの数字、大文字、小文字を具備しているアルファベットのセットである。本発明のコンテクストでは、アルファベットのシンボルは、有限体(finite body)K、又は、カージナル
【0004】
【数1】

【0005】
のガロア体GF(q)に属している。
【0006】
擬似ランダムストリングの重要なアプリケーションは、ストリーム暗号化である。この技術は、アルファベット値を有するクリア{x}(iによってインデックス化された)のデータストリングを、同じアルファベット値の他のストリング{z}によって、暗号化する(暗号的な意味において)ために使用されている。なお、{z}は、擬似ランダムジェネレータによって生成されたストリングであり、同様にアルファベット値を有する暗号化されたストリング{y}を生成する。換言すれば、アルファベットの範囲内の内部構成y=xiの法則が選択される。例えば、アルファベットがバイナリアルファベット{0,1}である場合、この内部法則は、排他的論理和演算子である。ストリーム暗号化はまた、データブロックを処理する暗号化方法に対立するものとして、データワードが1つずつ暗号化されるため、オンザフライ暗号化として既知である。ブロック暗号化に比べて、ストリーム暗号化は、転送遅延問題、及び、データ格納問題を低減する利点を有している。しかし、明らかに、クリアデータのデータレートと、少なくとも同じ程度に高速な擬似ランダムシンボルデータレートを必要としている。したがって、ストリーム暗号化に対するアプリケーションには、比較的速い擬似ランダムストリームジェネレータが確保されている。
【0007】
ストリーム暗号化は、TLS(Transport Layer Security:トランスポート層セキュリティ)インターネットエクスチェンジプロテクションプロトコル(The TLS Protocol, T. Dierks, C. Allen, version 1.0, RFC 2246, 1999年1月参照)において使用され、RC4アルゴリズム(Linear Statistical Weakness of Alleged RC4 Keystream Generator, J.D. Golic, Advances in Cryptology - EUROCRYPT’97予稿集、226〜238ページ、W. Fumy編集、Lecture Notes in Computer Science vol. 1233, Springer-Verlag参照)のうちの最も広く使用されたストリーム暗号化アルゴリズムの1つであり、かつ、無線チャネル通信量、及び、アルゴリズムを用いたGSMシステムにおける信号暗号化では、その中で、最も広く使用されたのは、A5/1アルゴリズム(Real Time Cryptanalysis of A5/1 on a PC, A. Biryukov, A. Shamir, D. Wanger, FSE2000予稿集、1〜18ページ、B. Schneier編集、Springer-Verlag, 2000年参照)である。
【0008】
例えば、確率論的計算、及び、公開鍵認証暗号化プロトコルなどの擬似ランダムストリングの他の重要なアプリケーションがある。
【0009】
例えば、上記のA5/1アルゴリズムなどの多数のカレント(current)ストリームアルゴリズムは、非線形関数を用いて可能な限り組み合わせられた、線形フィードバックレジスタによって生成された反復性(recurrent)線形ストリングを使用している(Le chiffrement a la volee(オンザフライ暗号化), A. Canteaut, Pour la Science レビュー特別号、86〜87ページ、パリ、2002年7〜10月参照)。これらのアルゴリズムは、高速擬似ランダムストリングジェネレータに実装することができる。しかし、完全にランダムなストリングから生成された擬似ランダムストリングを区別することの実施の不可能性に関して、高く信頼することができる強固なセキュリティアーギュメントを欠くので、注意がそのセキュリティに関して必要とされている。
【発明の開示】
【発明が解決しようとする課題】
【0010】
仏国特許出願第05-06041号明細書は、暗号化手順に使用されることを意図したカージナル
【0011】
【数2】

【0012】
の有限体(finite body)Kに属する項(term)の擬似ランダムストリングのジェネレータを開示している。このジェネレータは、K要素の初期化n組(n-tuple)の
【0013】
【数3】

【0014】
から、K(ここで、i=1,2, ...)要素のn組の
【0015】
【数4】

【0016】
と、及び/又は、m組のY(i)とを反復して計算するための手段を具備している。各n組のX(i)は、K要素のm組の
【0017】
【数5】

【0018】
から、所定の方法で得られるとともに、前記擬似ストリングの項は、n組のX(i)から、所定の方法で抽出される。このジェネレータは、iが1又は2以上の値をとる場合、n組のX(i-1)の構成要素に、係数Kを有する所定の二次式(quadratic form)を適用することによって、1又は2以上のm組のY(i)の構成要素
【0019】
【数6】

【0020】
(ここで、k=1, 2, ..., m)を取得するための手段をさらに具備していることに注目しなければならない。
【0021】
この擬似ランダムジェネレータは、有限体上の二次式のシステムを解く問題に困難さがあれば、高いレベルのセキュリティを提供するアルゴリズムを使用する。複雑性理論の一般に許容された推測P≠NPの検証を条件として、所定の候補がこのシステムの式の解であるか否かに関する検証を多項式を解く時間(polynomial time)内に実行することができるとしても、取り扱われる有限体Kが何であっても、この問題を解くには、多項式を解く時間以上を必要とすることを示すことができる(この種の問題はNP困難問題と呼ばれている)。さらに、比較的大きくないサイズのm及びn(例えば、100以上のK=GF(2),m,n)を対象としても、m及びnの値が十分に近い場合、この問題のランダムインスタンスを解く既知の有効な方法は、現在、存在しない。
【0022】
このようにして、仏国特許出願第05-06041号明細書に基づく擬似ランダムジェネレータが十分に効果的であり得るか否か、即ち、生成されたストリングの各シンボルのために必要な演算リソース(時間、メモリなど)が、予想される産業的なスケールのこの種のジェネレータの使用に対して、十分に小さい(少なくとも大きくないパラメータ値に対して、しかし、さらに難しいと考えられる、まさに言及された問題に対してやはり十分に高い)か否かを決定することに関する問題が生じる。
【0023】
特に、必要とされる演算リソースに関するこの問題は、このタイプの擬似ランダムジェネレータを、配線論理チップなどの低コストの電子システムに統合することの可能性に関係している。配線電子論理回路は、トランジスタ(NANDゲート及びNORゲートの2つのタイプの論理ゲートを使用して、プログラムの全ての論理機能を設計することが可能である)から生成された論理ゲートで構成されている。したがって、論理回路を実装するのに必要とされる論理ゲートの数は、特に、回路のサイズ、その電流消費、そのコストを反映している。
【0024】
したがって、仏国特許公開第05-06041号明細書の擬似ランダムジェネレータにおいて実行される計算に関して、より詳細を検討しなければならない。
【0025】
ジェネレータは、反復iにおいて、n個の変数
【0026】
【数7】

【0027】
(ここで、j=1, 2, ..., n)を有する少なくとも1つの変数
【0028】
【数8】

【0029】
(ここで、k=1, 2, ..., m)に関する1又は2以上の二次式を反復して呼び出す。したがって、この関係は、入力値のn組のX=(x1, x2, ..., xn)を、出力値のm組のY=(y1, y2, ..., ym)に結び付ける、特定の関数「G」を具備している。したがって、この関数Gは、有限体K上のm個の多変量二次多項式(即ち、n個の変数x1〜xnを有する(ここで、n>1))のシステム(G)に一致している。したがって、これらの多項式は、次の形となる。なお、係数はKに属し、かつ、量ykもKに属している。
【0030】
【数9】

【0031】
この種のジェネレータを実行する従来の方法では、これらの係数の値はメモリに格納されることになり、かつ、m個の多項式の値は各々反復して計算されることになる。したがって、m.N(Nが各多項式の項の数である)に等しい係数の合計数を格納することが必要になる。n個の変数を有する二次多項式のため、項のこの番号Nが、
【0032】
【数10】

【0033】
に等しいことを検証することは簡単なことである。
【0034】
さらに、難しいと考えられる、K上のn個の未知数において、m個の二次式のシステムを解くには、m及びnの値が十分に大きく、かつ、それらの桁数が十分に近いことが望ましい。故に、nの高い値、及び、nの値と同じ桁数のmの値に対して、格納される係数の数は、nのオーダーである。例えば、nが概ね100に等しい場合、約100万の係数が格納されなければならない。
【0035】
結果として、仏国特許出願第05-06041号明細書に基づく擬似ランダムジェネレータの従来の実装には、配線論理チップにそれを組み込むことを予測することができるように、非常に多数の電子ゲートを必要とする。より高い次数の多項式は、計算リソースのコストをやや増大して、ジェネレータをよりセキュアにさせる利点を有するが、その一部が2より高いグローバル次数を有している多変量多項式のシステムを使用して、配線論理チップに擬似ランダムジェネレータを挿入することを予想し得る可能性は、さらに低いことは言うまでもない。
【課題を解決するための手段】
【0036】
したがって、本発明は、暗号化手順において使用されることを意図したカージナル
【0037】
【数11】

【0038】
の有限体Kに属する項の擬似ランダムストリングのジェネレータであって、有限体Kに属したn個の変数を有するm個の多項式のシステム(Γ)を反復して計算するための手段を具備するジェネレータに関する。この擬似ランダムストリングジェネレータは、前記m個の多項式の係数が各反復において再生成されることに注目しなければならない。
【0039】
故に、本発明のジェネレータが機能するために必要とされるメモリサイズが非常に少なくてすむように、本発明は、少数のパラメータに基づき各反復において多項式の係数を生成する(例えば、再計算する)。
【0040】
発明者は、素朴に期待されることに比べて、本発明がもたらす追加的な計算負荷は、全体の計算時間に対してほとんどインパクトがないことを真に理解している。比較的高い次数の多項式のための計算時間が比較的短いので、周知の通り、それらの多数が存在し、かつ、それらが多数の変数の関数であるとしても、本発明は、高速であり(かつ、したがって、例えば、ストリーム暗号化に使用することができる)、かつ、低コスト計算デバイスに非常に適した擬似ランダムジェネレータを生成する。なお、これらの利点は、上記の高度化されたセキュリティに追加されている。
【0041】
高速が主たる要求であれば、システムを形成している各前記多項式の大部分は2次であることが好ましい。
【0042】
特定の特徴によれば、擬似ランダムストリングジェネレータは、線形シフトレジスタの形態で、係数ジェネレータモジュールを具備している。
【0043】
又は、係数ジェネレータモジュールは、非線形シフトレジスタ又は有限状態マシーンの形をとることができる。
【0044】
これらの特徴の手段によって、小規模な電子メモリを使用して、大規模な数の係数を生成することができる。
【0045】
特定の特徴によれば、所定のn組の変数(x1, x2, ..., xn)に対して、多項式がD以下の全てのグローバル次数であるシステム(Γ)のm個の多項式によって、得られたm組の値(y1, y2, ..., ym)を計算するには、ジェネレータは、
・次数Dのn個の変数を有する一般的な多項式の所定のセットの項の処理オーダーを選択する手段と、
・処理された項のため、同じオーダーにおいて、変数の単項式(mononomial)を計算し、次いで、連続的に、m個の多項式のためにその項の係数を生成し、かつ、前記単項式によってその係数を多重化するとともに、前記項の値を取得する手段と
を具備している。
【0046】
これらの特徴の手段によって、変数のための各ファクタは、m回ではなく、1回だけ計算される。
【0047】
関連する方法では、本発明は、暗号化手順において使用されることを意図したカージナル
【0048】
【数12】

【0049】
の有限体Kに属する、項の擬似ランダムストリングを生成する方法であって、有限体Kに属したn個の変数を有するm個の多項式のシステム(Γ)を反復して計算する方法に関する。この擬似ランダムストリングを生成する方法は、m個の多項式の係数が各反復において再生成されることに注目しなければならない。
【0050】
特定の特徴によれば、各前記多項式の大部分は2次である。
【0051】
特定の特徴によれば、所定のn組の変数(x1, x2, ..., xn)に対して、多項式がD以下の全てのグローバル次数であるシステム(Γ)のm個の多項式によって、得られたm組の値(y1, y2, ..., ym)を計算するには、方法は、
・次数Dのn個の変数を有する一般的な多項式の所定のセットの項のため、処理オーダーを選択するステップと、
・処理された項のため、同じオーダーにおいて、変数の単項式を計算し、次いで、連続的に、m個の多項式のためにその項の係数を生成し、かつ、前記単項式によってその係数を多重化するとともに、前記項の値を取得するステップと
を具備している。
【0052】
これらの方法の利点は、上に簡潔に記載された関連する擬似ランダムシーケンスジェネレータの利点と本質的に同じである。
【0053】
本発明はまた、
・上に簡潔に記載された任意の擬似ランダムストリングジェネレータを具備している、特に配線論理チップの電子回路
・上に簡潔に記載された擬似ランダムストリングを生成する任意の方法のステップを実行するためのコンピュータプログラムコード命令を具備している、取り外し不可能なデータ格納手段
・上に簡潔に記載された擬似ランダムストリングを生成する任意の方法のステップを実行するためのコンピュータプログラムコード命令を含んでいる、一部又は全体を取り外し可能なデータ格納手段
・前記プログラムがプログラム可能なデータ処理デバイスを制御するとき、前記命令によって、前記データ処理デバイスに、上に簡潔に記載された擬似ランダムストリングを生成する任意の方法を実行させるような命令を含んでいるコンピュータプログラム
を目的とする。
【0054】
この電子回路、これらのデータ格納手段、及び、このコンピュータプログラムの利点は、前記方法の利点と本質的に同じである。
【発明を実施するための最良の形態】
【0055】
本発明の他の態様及び利点は、非限定的な実施例として提供された特定の実施形態に関する次の詳細な説明から明らかになる。説明は添付図面を参照している。
【0056】
上記したように、本発明の擬似ランダムストリングジェネレータのセキュリティ(即ち、第1番目のi項からの出力においてストリングの(i+1)番目の項を計算する「ハッカー」に対する不可能性)は、有限体K上のn個の未知数において、m個の式を解く問題の困難さに基づいている。
【0057】
1実施形態では、仏国特許出願第05-06041号明細書(記載を単純化するため、「二次式」及び「二次多項式」の表現は、ある式、それぞれのある多項式が線形である場合も使用される。即ち、システムの少なくとも1つの式、それぞれの少なくとも1つの多項式が、実際に二次であることが理解される。)にあるように、これらの式は全て二次式であり得る。この問題は、次のように、正確に公式で表すことができる。
・式
【0058】
【数13】

【0059】
の有限体Kに属しているn個の未知数x1〜xnにおいて、m個の二次式のシステム(Γ)が与えられる。
ここで、係数
【0060】
【数14】

【0061】
及びγkはKに属し、かつ、数量ykもKに属している。
・解X=(x1, x2, …, xn)を見つける。
「Γ」は、式(Γ)のシステムによって記載された関数であり、入力値のn組のX=(x1, x2, …, xn)は、出力値のm組のY=(y1, y2, …, ym)に関係している。
【0062】
擬似ランダムジェネレータは、n個の変数
【0063】
【数15】

【0064】
(ここで、j=1, 2, ... , n)を有する少なくとも1つの変数
【0065】
【数16】

【0066】
(ここで、k=1, 2, ... , m)に関係している1又は2以上の二次式を反復して呼び出す。上記したように、パラメータq,m,nは次のように選択されることが好ましい。
・K上のn個の未知数において、m個の二次式のシステムを解くことは、難しいと考えることができ、それは、m及びnの値が十分に高く、かつ、その桁数が十分に近い(例えば、qn及びqmの両方が280及び2400の間)ことを必要とする。
・計算は効率的に行うことができ、それはq,m,nの値が十分に小さい(例えば、qは100より小さく、m及びnは数百より小さい)ことを必要とする。
【0067】
さらに、本発明によれば、これらの二次式の係数は各反復において再生成される(例えば、再計算される)。
【0068】
係数が0より大きいほど計算は速いことは明らかである。それにも拘らず、実際に不可能な式のシステムを解くためには、二次項(以下、記号で
【0069】
【数17】

【0070】
と表す)の係数の十分な数が0ではないことに注意しなければならない。実行速度を上げるため、一部の式(しかし、明らかにそれらの全てではない)が全ての変数に対して線形であれば、(理論的に)式のシステムを解くことはより容易である事実を補うために、係数を生成する方法が秘密のままであることが推奨される。
【0071】
擬似ランダムストリングを生成するための本発明の方法に関係する実施形態が図1に示されている。この実施形態では、各値iのため、m組のY(i)の全ての構成要素は、n組のX(i-1)の構成要素に、Kにおける係数を有する二次式を適用することによって計算される。
【0072】
まず、初期化ステップ中にn組のX(0)が構成される。ジェネレータの意図された使用によって、X(0)は、パブリックシード、秘密鍵、初期化ベクトル、又は、これらの要素の組み合わせに依存する。なお、初期化ベクトルは、追加的なパラメータであって、一般に秘密ではなく、1回以上使用される同じ秘密鍵によって、多くのさまざまな擬似ランダムストリングを生成することを可能にする。
【0073】
次いで、反復ステップは、初期状態X(0)から、及び、以下に記載された方法によって、t組のK要素(ここで、tは1からmの定数である)からなる擬似ランダムストリングZ(i)(ここで、i=1, 2, ...)を生成するよう実行される。例えば、反復の合計数は、1から250の間である。
【0074】
i回目の反復では、n組のK要素を構成する現在状態X(i-1)は、次のサブステップを実行するための入力値として取り込まれる。
1)K値のm組のY(i)は、上に定義された関数Γ、即ち、Y(i)=Γ(X(i-1))を使用して、X(i-1)から差し引かれる。
2)出力値Z(i)は、ペア(X(i-1), Y(i))に、選択された出力関数S、即ち、Z(i)=S(X(i-1), Y(i))を、適用することによって取得される。
3)n組のK値を構成する新しい現在状態X(i)は、ペア(X(i-1), Y(i))に、選択されたフィードバック関数F、即ち、X(i)=F(X(i-1), Y(i))を適用することによって取得される。
【0075】
この方法は、図1(2つの連続的な反復を対象とする)に、逐次的な方法で示されているが、同様に、ループ方法で十分に示すことができる。ここで注目する重要な点は、方法の連続的なステップを1つの電子回路によって実行することができることである。
【0076】
上に参照されたフィードバック関数F及び出力関数Sのための可能な選択の実施例に関しては、仏国特許出願第05-06041号明細書を参照されたい。また、少なくともストリングZ(i)に基づく、出力におけるシンボル(例えば、バイナリシンボル)の種々の擬似ランダムストリングを構成するための手段の実施例に関するアプリケーションを参照されたい。
【0077】
図2は、本発明の擬似ランダムストリングジェネレータの1実施形態を示すブロック図である。このジェネレータは次のモジュールを具備している。
・計算される多項式のシステムの入力変数の値を格納するためのメモリ(100)
・計算の終了時に、計算される1又は2以上の多項式によって得られた値を格納し、かつ、同時に、中間値格納ユニットとして機能するためのメモリ(500)
・計算される多項式のシステムに関係した、多様な単項式の値を生成する(所定のオーダーで)ためのモジュール(200)であって、自身のメモリを選択的に有する単項式ジェネレータモジュール(200)
・計算される多項式のシステムを定義する、係数のシーケンスを生成するためのモジュール(300)であって、自身のメモリを有するモジュール(300)
・係数、及び、単項式の値を多重化して、多項式の値を格納しているメモリ(500)を更新するための組み合わせモジュール(400)
【0078】
上の係数ジェネレータモジュール(300)の1つの特に有利な実施形態は以下に説明されるとおりである。
【0079】
本発明の擬似ランダムジェネレータの正しい機能にとって、各反復において同じ関数Γを適用することは必ずしも必要ではないことに注意されたい。換言すれば、便利性を証明する場合、m個の多項式の各係数の値が、1つの反復から他の反復に変化することを妨げることはない。本実施形態は、これをうまく使用している。
【0080】
係数ジェネレータモジュール(300)の第1実施形態は、線形フィードバックシフトレジスタ(LFSR)の形をとる。
【0081】
LFSRは、メモリal内に格納された値を除き、各メモリai内に格納された値をメモリai+1内に格納された値に置き換えることによって、各クロックパルスにおいてリフレッシュされた、1セットのlメモリa1, a2, …, alを具備している。なお、それは、前のクロックパルスにおいて、多様なメモリ内に格納された値の所定の線形組み合わせによって置き換えられる。
【0082】
線形シフトレジスタからの出力ビットは、従来、擬似ランダムビットストリングとして使用される。好ましくは、本発明によれば、LFSR出力データは、出力値Z(i)を直接生成するのではなく、m個の多項式の係数を生成することに使用される。LFSRは、メモリ内のrビットだけから、r個の論理ゲートのオーダーだけを含んでいる電子回路を使用して、長さ(2−1)の擬似ランダムストリングを生成する。
【0083】
例えば、バイナリ体GF(2)上に、n=80個の変数を有するとともに、m=80個の多変量多項式を有する式(Γ)のシステムでは、ナイーブ(naive)実装の259200ビットよりもむしろ、r=18ビットを有する線形シフトレジスタから、
【0084】
【数18】

【0085】
個のシステムの係数を生成することができる。
【0086】
第2実施形態では、係数ジェネレータモジュール(300)は、非線形フィードバックシフトレジスタ(NLFSR)の形をとる。線形フィードバックシフトレジスタに比べて、これは、電子ゲートの数の形態で追加的コストをほとんど伴わないが、ジェネレータの出力において生成された項のストリングのランダム特性を顕著に改善する。
【0087】
第3実施形態では、係数ジェネレータモジュール(300)は、
・各クロックパルスにおいて更新されたメモリ
・メモリを更新するための回路
・メモリ内に格納されたデータを拡張するための拡張回路
を具備している有限状態マシーン(finite state machine)の形をとる。
【0088】
メモリ内のgビットからfビット(ここで、f>g)を生成するように適合された回路を「拡張回路」という表現で呼ぶ。例えば、fがhの倍数である場合、fビットのセットは、各hビットのサブセットに分割することができ、その後、各hビットのこれらのサブセットがストリング混合器を通過し、かつ、生成されたビットのストリングが最終的に連結される。
【0089】
有限状態マシーンでは、全てのメモリの値(拡張の前)が各クロックパルスにおいてリフレッシュされ、これに反して、シフトレジスタでは、メモリ内の1つの値だけが各クロックパルスにおいてリフレッシュされる。したがって、有限状態マシーンは、シフトレジスタに比べてより高速な計算を実行するが、電子ゲートの数にいくらかのコストを増す。
【0090】
上の実施形態は、やはり、迅速に、かつ、少数の電子ゲートを使用して、各反復において、式(Γ)のシステムの係数を生成する。
【0091】
単項式の値のジェネレータモジュール(200)の異なる実施形態を予想することもできる。記述を単純化するため(xixjのタイプの(ここで、i及びjは1からnに変化する。))、二次項の計算だけがここでは取り扱われる。
【0092】
「ナイーブ」実装は変数の全てのペアを順々に検討する。したがって、計算はnのクロックパルスを必要とする。
【0093】
しかし、代わりに、単項式は次のように計算することができる。変数(x1, x2, ... , xn)の値の現在ストリングの2つのコピーがメモリ内に配置される。はじめに、「フェーシング(facing)」項を計算して、n個の2乗
【0094】
【数19】

【0095】
を生成する。次いで、1つの位置による循環配列は、変数(x1, x2, ... , xn)の値のストリングの1つに適用される。再び、「フェーシング」項を計算して、n個の積x1x2, x2x3, ..., xnx1を生成する。n×nの単項式を計算するこのプロセスは、n個の積が取得されるまで継続される。可換の乗算の最後には、n/2クロックパルスだけ必要とされるが、このデバイスは、「ナイーブ」実装の2倍のメモリを必要とする。
【0096】
最後に、モジュール(300)における係数の生成と、モジュール(200)における単項式の生成とを組み合わせて、次の項に移る前に、全ての多項式のために「並行して」同じタイプの各項を計算することによって、速度を上げ、かつ、メモリ容量を節約することができる。例えば、二次多項式のシステムでは、対応する変数(タイプxixj, xj又は1のそれぞれ)のために対応する単項式が計算され、その後、連続したm個の多項式のため、この項(各タイプ
【0097】
【数20】

【0098】
又はγk)の係数が生成され、次いで、前記単項式によって多重化され、前記項の値を取得する。
【図面の簡単な説明】
【0099】
【図1】図1は、擬似ランダムストリングを生成するための本発明の1実施形態に関する方法を示しているブロック図である。
【図2】図2は、本発明の1実施形態の擬似ランダムジェネレータを示しているブロック図である。
【符号の説明】
【0100】
i−1,X,Xi+1 変数
,Yi+1 変数
,Zi+1 擬似ランダムストリング
F フィードバック関数
Γ 関数
S 出力関数
100 メモリ
200 モジュール
300 モジュール
400 組み合わせモジュール
500 メモリ

【特許請求の範囲】
【請求項1】
暗号化手順において使用されることを意図したカージナル
【数1】

の有限体Kに属し、
前記有限体Kに属したn個の変数を有するm個の多項式のシステム(Γ)を反復して計算するための手段を具備する項の擬似ランダムストリングのジェネレータにおいて、
前記m個の多項式の係数は、各反復において再生成される
ことを特徴とするジェネレータ。
【請求項2】
前記システム(Γ)を形成する各前記多項式の大部分は2次であることを特徴とする請求項1に記載の擬似ランダムストリングジェネレータ。
【請求項3】
線形シフトレジスタの形態で、係数ジェネレータモジュール(300)を具備することを特徴とする請求項1乃至2のいずれか1項に記載の擬似ランダムストリングジェネレータ。
【請求項4】
非線形シフトレジスタの形態で、係数ジェネレータモジュール(300)を具備することを特徴とする請求項1乃至2のいずれか1項に記載の擬似ランダムストリングジェネレータ。
【請求項5】
有限状態マシーンの形態で、係数ジェネレータモジュール(300)を具備することを特徴とする請求項1乃至2のいずれか1項に記載の擬似ランダムストリングジェネレータ。
【請求項6】
所定のn組の変数(x1, x2, …, xn)に対して、前記多項式がD以下の全てのグローバル次数であるシステム(Γ)の前記m個の多項式によって、得られたm組の値(y1, y2, …, ym)を計算するには、
前記ジェネレータは、
・次数Dのn個の変数を有する前記一般的な多項式の所定のセットの項の処理オーダーを選択する手段と、
・前記処理された項のため、同じオーダーにおいて、前記変数のために単項式を計算し、次いで、連続的に、前記m個の多項式のためにその項の係数を生成し、かつ、前記単項式によってその係数を多重化するとともに、前記項の値を取得する手段と
を具備することを特徴とする請求項1乃至5のいずれか1項に記載の擬似ランダムストリングジェネレータ。
【請求項7】
請求項1乃至6のいずれか1項に基づく擬似ランダムストリングジェネレータを具備することを特徴とする電子回路。
【請求項8】
配線論理チップを具備することを特徴とする請求項7に記載の電子回路。
【請求項9】
暗号化手順において使用されることを意図したカージナル
【数2】

の有限体Kに属し、
前記有限体Kに属したn個の変数を有するm個の多項式のシステム(Γ)を反復して計算するステップを具備する項の擬似ランダムストリングの生成方法において、
前記m個の多項式の係数は、各反復において再生成される
ことを特徴とする方法。
【請求項10】
前記システム(Γ)を形成する各前記多項式の大部分は2次であることを特徴とする請求項9に記載の方法。
【請求項11】
所定のn組の変数(x1, x2, …, xn)に対して、前記多項式がD以下の全てのグローバル次数であるシステム(Γ)の前記m個の多項式によって、得られたm組の値(y1, y2, …, ym)を計算するには、
・次数Dのn個の変数を有する前記一般的な多項式の所定のセットの項の処理オーダーを選択するステップと、
・前記処理された項のため、同じオーダーにおいて、前記変数のために単項式を計算し、次いで、連続的に、前記m個の多項式のためにその項の係数を生成し、かつ、前記単項式によってその係数を多重化するとともに、前記項の値を取得するステップと
を具備することを特徴とする請求項9乃至10のいずれか1項に記載の方法。
【請求項12】
請求項9乃至11のいずれか1項に基づく方法の前記ステップを実行するためのコンピュータプログラムコード命令を具備する、取り外し不可能なデータ格納手段。
【請求項13】
請求項9乃至11のいずれか1項に基づく方法の前記ステップを実行するためのコンピュータプログラムコード命令を含む、一部又は全体を取り外し可能なデータ格納手段。
【請求項14】
前記プログラムがプログラム可能なデータ処理デバイスを制御するとき、命令によって、前記データ処理デバイスに、請求項9乃至11のいずれか1項に基づく方法を実行させる前記命令を含む、コンピュータプログラム。

【図1】
image rotate

【図2】
image rotate


【公表番号】特表2009−533705(P2009−533705A)
【公表日】平成21年9月17日(2009.9.17)
【国際特許分類】
【出願番号】特願2009−504789(P2009−504789)
【出願日】平成19年4月2日(2007.4.2)
【国際出願番号】PCT/FR2007/051052
【国際公開番号】WO2007/116171
【国際公開日】平成19年10月18日(2007.10.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(591034154)フランス テレコム ソシエテ アノニム (290)
【氏名又は名称原語表記】France Telecom SA
【Fターム(参考)】