説明

擬似ランダム・データ・シーケンスを発生するための方法、システム及び装置

本発明は、少なくとも1つの検索パターンを探索するための手順を用いて複数の初期データ・シーケンス(9a、9b、9c)に属するデータを結合する結合手段を含む、擬似ランダム・データ・シーケンス(3)を発生するための方法及び発生器に関する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化/暗号解読に関し、かつ擬似ランダム・データ・シーケンスを発生するためのシステム及び方法に関する。
【0002】
本発明は、暗号化及び暗号解読が同じ秘密キーを用いるという対称的暗号化のために意図された一連のビットを創成する際に大いに有利な応用を発見する。本発明は、同じ長さの擬似ランダム・データ・シーケンスにビットごとにメッセージを追加するストリーミング(流動)暗号化方法に関し、該方法において、暗号化演算及び暗号解読演算は同一である。対称的暗号化は、一般に、移動通信(GSM、UMTS、等)、スマート・カード(銀行カード)、等のようなすべての型の通信において用いられるということに留意されたい。
【背景技術】
【0003】
最も広く行き渡っているストリーミング暗号化方法は、ハードウェア上でセーブするよう線形フィードバック・シフト・レジスタを用いて暗号化されるべきメッセージとは無関係に暗号化シリーズを発生する。
【0004】
線形フィードバック・シフト・レジスタの主な欠点は、それらの線形性である。レジスタの長さに等しいレジスタの出力ビットの数及び該レジスタと関連したフィードバック多項式を知れば、レジスタの出力ビット及びすべての引き続く状態を決定することが可能である。
【0005】
線形フィードバック・シフト・レジスタの線形性を“破断(break)”するために、複数のレジスタの出力、及びおそらくはそれらの内部の状態は、一般に、例えば非線形ブール関数を用いて結合される。
【0006】
図6は、ヨーロッパ特許出願EP 0 619 659 に記載された収縮発生器(a shrinking generator)として知られているこの種の発生器100を示しており、第1の線形フィードバック・シフト・レジスタ111aと、第2の線形フィードバック・シフト・レジスタ111bと、発生器100の出力を選択するための手段112とを含んでいる。
【0007】
このように、各シフト上で、2つのレジスタ111a及び111bは、同時にシフトされ、装置100の出力は、第1のレジスタ111aの出力が“1”である場合には第2のレジスタ111bの出力に等しく、そうでない場合にはビットが出力されない。
【0008】
収縮発生器は、2つの線形フィードバック・シフト・レジスタの出力だけでなく、一層一般的には、ビットのシリーズの任意の対の出力をも結合する。収縮発生器は、一方の線形フィードバック・シフト・レジスタがもう一方を制御するというストリーミング暗号化方法のクラスの部分である。該概念は、レジスタの線形性を破断するために、用いられるレジスタ間及び2つの連続するビット間でシフトの数を変えることである。
【0009】
自己収縮発生器と呼ばれる収縮発生器の変形例は、同じ原理に基づいているが、1つだけのレジスタを用いている。レジスタの出力ビットは、2つずつ読取られ、第1のビットは第2のビットが出力されるか否かを制御し、それにより、システムの出力は、第1のビットが“1”である場合には第2のビットであり、そうでない場合にはビットは出力されない。
【0010】
線形フィードバック・シフト・レジスタだけを用いれば、多くの欠点がある。その主な1つは装置の線形性によって引き起こされる脆弱性である。また、レジスタがブール関数によって結合される場合にも欠点がある。ハードウェア・レベルにおいて、それらの欠点は関数の履行の複雑さの結果である。さらに、該関数は固定されていて攻撃(アタック)され得る。
【0011】
統計的な方法が、収縮発生器及び他のクロック制御される暗号化方法の或る弱点を明らかにしてきた。特に、収縮発生器においては、2つの出力ビット間で2つのレジスタによって行なわれるシフトの数は変化するが、双方のレジスタに対して同じ値を有する。
【発明の開示】
【発明が解決しようとする課題】
【0012】
本発明の目的は、これらの欠点を除去すること、並びに、高品質の擬似ランダム・データ・シーケンスの発生を単純化することである。
【0013】
もう1つの目的は、大いに効果的でありかつ比較的低コストの発生器を生成することである。
【課題を解決するための手段】
【0014】
これらの目的は、一連の出力パターンから成る擬似ランダム・データ・シーケンスを発生するための方法であって、これらの出力パターンは、
・ 少なくとも1つの検索パターンを選択するステップと、
・ 複数の初期データ・シーケンスの1つである少なくとも1つの初期データ・シーケンスにおける前記少なくとも1つの検索パターンを検索するステップと、
・ 前記検索に依存するかつ前記複数の初期データ・シーケンスからの少なくとも2つの初期データ・シーケンスの内容に依存するアプリケーションに従って出力パターンを決定するステップと、
・ 前記複数の初期データ・シーケンス内の少なくとも1つの検索パターンの選択及び検索を再割当てするステップと、
によって得られることを特徴とする方法によって達成される。
【0015】
このように、本発明の方法は、複数の初期データ・シーケンスを結合もしくは「混合」して擬似ランダム・シーケンスを得るためにパターンを検出することに基づいている。それは履行するのが簡単であるが、この方法は、高品質の擬似ランダム・データ・シーケンスを生成することができるよう固有の複雑さを有する。該方法の種々の動作は、複数の初期データ・シーケンスに渡って配分されており、従って、これらの動作の配分は発見するのに極度に困難であり、これにより、擬似ランダム・データ・シーケンスの品質を高めている。
【0016】
従って、この方法は、初期データ・シーケンスと擬似ランダム・データ・シーケンスとの間の関係の複雑さを増加しており、それにより、擬似ランダム・データ・シーケンスの品質を予測することが困難である。
【0017】
前記再割当ては、前記複数の初期データ・シーケンスの1つである初期データ・シーケンスの内容及び/または前記検索の関数として行われるのが有利である。
【0018】
このように、初期データ・シーケンスに渡る動作の配分は、プロセスが進行するにつれて変わり、擬似ランダム・データ・シーケンスの品質をさらに高めている。
【0019】
本発明の一態様によれば、前記ステップは、以下のルールを含む一連のルールによって行われる:すなわち、
・ 各ウインドが初期データ・シーケンスと関連しているので複数のウインドがあるが、前記複数の初期データ・シーケンスの各初期データ・シーケンスに渡って少なくとも1つのウインドをシフトするための少なくとも1つのシフト・モードを限定するための第1のセットのルールと、
・ 前記複数のウインドを操作する複数のポインタによって動作を再割当てすること、及び/または前記出力パターンを更新すること、及び/または前記少なくとも1つの検索パターンを選択することを管理する第2のセットのルールと、
・ 前記複数のウインドをシフトするモードを決定する第3のセットのルールと、
を含む一連のルールによって行なわれる。
【0020】
このように、種々のステップ又は動作間の相互作用は、簡単かつ効果的に管理されかつ履行され得る。
【0021】
本発明の一つの特定の態様によれば、前記複数の初期データ・シーケンスは、少なくとも2つの初期データ・シーケンスを含み、そしてウインドは、サイズ1のものであり、それにより、前記少なくとも2つの初期データ・シーケンスは、1ビットの出力パターンを決定するよう連続的にビットごとに読取られ得る。
【0022】
このように、パターンまたは複数のパターンの検索は、計算時間の浪費を避けると同時に加速され得る。
【0023】
本発明のもう1つの態様によれば、前記擬似ランダム・データ・シーケンスの各ビットは、メッセージのデータ・シーケンスからの対応ビットと結合されて、暗号化されたデータ・シーケンスを形成するようモジュロ2加算によって暗号化される。
【0024】
従って、生成された暗号化データ・シーケンスは、解読するのを困難にする内部的な複雑さを有する。さらに、暗号解読機構は、暗号化機構と同一なので、同じ利点を有する。
【0025】
本発明は、また、少なくとも一つの検索パターンを検索する手順に従って複数の初期データ・シーケンスに属するデータを結合するための結合手段を含む、擬似ランダム・データ・シーケンスの発生器にも向けられている。
【0026】
このように、該発生器は、複数の初期データ・シーケンスを結合し、これにより、発生器の出力と発生器の連続する内部状態との間の関係を極端に複雑にし、それにより、約0,50以外の確率で、発生器の次の出力を予測することが困難である。
【0027】
さらに、この発生器は、効果的でありかつ比較的低コストであると同時に履行するのが容易である。
【0028】
発生器の結合手段は、長所的には、
・ 複数の初期データ・シーケンスに渡ってシフトされるよう適合されている複数のウインドと対応関係にある複数のポインタと、
・ 少なくとも1つの初期データ・シーケンスにおける前記少なくとも1つの検索パターンを選択するよう複数のウインドを操作する複数のポインタ上で動作する選択手段と、
・ 少なくとも1つの初期データ・シーケンスにおける前記少なくとも1つの検索パターンを検索するよう複数のポインタ上で動作する検出手段と、
・ 前記検索に依存する、かつ前記複数の初期データ・シーケンスからの少なくとも2つの初期データ・シーケンスの内容に依存するアプリケーションに従って出力パターンを決定するための生成手段と、
・ 複数のポインタ及び複数のウインド間の対応を再割当てするための、かつ前記複数の初期データ・シーケンス内の少なくとも一つの検索パターンを選択して検索する動作を再割当てするための割当て手段と、
・ 一連の出力パターンから擬似ランダム・データ・シーケンスを発生するための反復手段と、
を含む。
【0029】
このように、発生器のこれらの種々の手段は、複数の初期データ・シーケンスに渡る動作(演算)をおそらくは交換可能に配分しており、このことは、発生器の出力において擬似ランダム・データ・シーケンスを予測する困難性を高めている。
【0030】
本発明は、また、排他的ORロジック・ゲート、及び上述の特徴を有する発生器を含む暗号化/暗号解読装置をも提供する。
【0031】
この装置は、擬似ランダム・データ・シーケンスからの各ビットを、メッセージのデータ・シーケンスからの対応ビットと結合して、高い線形の複雑さの暗号化されたデータ・シーケンスを形成するようモジュロ2加算によって暗号化される。
【0032】
本発明は、また、ネットワークを介して接続された少なくとも2つのエンティティを含む保証システムであって、前記少なくとも2つのエンティティの各々は、前述の特徴を有する暗号化/暗号解読装置を含む保証システムをも提供する。
【0033】
このように、保証システムは、固有に複雑な機構を利用しており、それと同時に履行するのに簡単な構造を有している。
【0034】
本発明の他の特徴及び利点は、添付図面を参照して非制限的な例によって以下に与えられる説明を読むことから理解される。
【発明を実施するための最良の形態】
【0035】
図1は、擬似ランダム・データ・シーケンス3を発生するための本発明による発生器1の一例を示す図である。
【0036】
発生器1は、少なくとも1つの検索パターンを検索するための手順に従って複数の初期データ・シーケンス9a、9b及び9cに属するデータを結合するための結合手段5を含む。検索手順は、可変の態様で複数の初期データ・シーケンスに割り当てられ得る動作を含む。
【0037】
以下、“パターン”は、0及び1だけからなる任意のワードを意味する。例えば、0、11、000、1010、00111は、それぞれの長さ1、2、3、4、及び5を有するパターンである。さらに、“空(エンプティ)”パターンは、空(エンプティ)ワードである。
【0038】
各初期データ・シーケンスは、“1”に等しくない期間のビット(例えば、Nビット)の整数のストリームである。各シーケンスは、最大期間の線形フィードバック・シフト・レジスタを含み得る初期手段によって発生される。このように、発生器1は、複数の初期データ・シーケンス9a、9b、及び9cを発生する複数のシフト・レジスタ11a、11b、及び11cを含み得る。
【0039】
線形フィードバック・シフト・レジスタは、アレイのボックス(boxes)の線形結合が提供される有限長さの(レジスタ)ビットのアレイであり、前記線形結合は、フィードバック多項式と呼ばれる多項式によって表される。各シフト上で、最も高いインデックスを有するビットがシフト・アウトされ、他のすべてのビットは、1インデックスだけシフトされ、そして最も低いインデックスを有するビットは、シフトの前に線形結合の値を取る。
【0040】
フィードバック多項式は、長所的には、例えば一連の最大期間、またはPが原始多項式である場合の形式Q=(X+1)Pにおける多項式を生成する線形フィードバック・レジスタに対応する原始多項式であり得る。
【0041】
長さLのすべてのワードまたはパターンは、このような一連の最大期間T(ここに、T=2−1)において少なくとも一度現れることが知られている。
【0042】
発生器1の結合手段5は、1つまたは幾つかの検索パターンを探索するための手段13と、決定手段15と、割当て手段16と、反復手段17とを含む。
【0043】
検索手段13は、1つまたは幾つかの検索パターンを検索し、かつ複数のウインド19a、19b、及び19cと、複数のポインタ20a、20b、及び20cと選択手段21aと、検出手段21bとを含む。
【0044】
ウインド19a、19b、及び19cは、非ゼロ・サイズのものであり、複数の初期データ・シーケンス9a、9b、9cに渡ってシフトされる。各ウインドは、1つだけの初期データ・シーケンス9a、9b、9cと関連しており、そして初期データ・シーケンス上の特定の初期位置に置かれて、特定数のビットを含み得る。例えば、サイズNの初期データ・シーケンスに渡って置かれたサイズはNよりも小さくLより小さいかまたは等しい整数である)のウインドは、各シフト上に初期データ・シーケンスの正確にビットを露出する該シーケンスに渡ってシフトされ得るマスクである。従って、各シフト上で、ウインド19a、19b、19cにおけるビットが、発生器1の出力を決定するために用いられ得る。
【0045】
さらに、ウインド19a、19b、19cは、それらのウインド19a、19b、19cと対応関係にあるポインタ20a、20b、20cによって操作され得る。ウインド19a、19b、19c及びポインタ20a、20b、20c間のこの対応は、擬似ランダム・データ・シーケンス3の発生を通して変化し得る。
【0046】
選択手段21aは、検索パターンまたは少なくとも1つの初期データ・シーケンスにおけるパターンを選択するために複数のウインド19a、19b、19cを操作する複数のポインタ20a、20b、20c上で動作する。
【0047】
同様に、検出手段21bも、また、検索パターンまたは1つ以上の初期データ・シーケンスにおけるパターンを選択するために初期データ・シーケンス9a、9b、9cに渡ってウインド19a、19b、19cのシフティングを制御するようポインタ20a、20b、20c上で動作し得る。このように、検索されたパターンは、それら自体、ウインドの内容に依存し得る。
【0048】
例えば、検出手段21bは、Nビットの初期データ・シーケンスにおいて選択手段21aによって選択されたビット(はL以下の整数である)の検索パターンを検出し得る。従って、期間が2−1に等しい初期データ・シーケンスにおける検索パターンを見つけることが確実である。
【0049】
検索パターンまたは複数の検索パターンが、異なった初期データ・シーケンスに渡ってまたは同じ初期データ・シーケンスに渡って選択されかつ検出され得ることに留意されたし。
【0050】
さらに、決定手段15は、接続23を介して検索手段13と相互作用し、そして出力パターン25及び生成手段27を含む。
【0051】
生成手段27は、前記複数の初期データ・シーケンス9a、9b、9cから少なくとも2つの初期データ・シーケンスの内容及び検索に依存するアプリケーションに従って出力パターン25(例えば、ビットの)を決定する。
【0052】
決定手段15は、また、一組の検索パターンを限定するまたは更新するための制御手段も含むことに留意されたし。該一組の検索パターンは、例えば、空(エンプティ)であって良く、またはウインドの内容もしくはパターンのための検索の履歴に依存しても良い。
【0053】
さらに、割当て手段16は、接続28を介して検索手段と相互作用する。割当て手段16は、複数のポインタ20a、20b、20c及びウインド19a、19b、19c間の対応を再割当てするよう、そして複数の初期データ・シーケンス9a、9b、9cに、検索パターンまたは複数のパターンを選択して検索する動作を再割当てするよう、適合されている。
【0054】
再割当ては、検索の関数として、すなわち、検索手段13及び決定手段15及び/または複数の初期データ・シーケンス9a、9b、9cからの少なくとも1つの初期データ・シーケンスの内容によって行なわれる動作の進展の関数として行われるのが有利である。
【0055】
さらに、反復手段17は、それぞれの接続29及び31によって、検索手段13及び決定手段15に接続される。
【0056】
このように、反復手段17は、所定の停止条件が満足されない限り、例えば出力パターン25が決定されたばかりの信号を決定手段15から受信した後、検索パターンの検索及び出力パターンの決定動作を再開するよう、検索手段13及び決定手段15と信号を交換し得る。反復手段17は、さらに、検索手段13及び決定手段15と信号を交換することにより、停止条件を検査することができる。このことは、連接により擬似ランダム・データ・シーケンス3を形成する一連の出力パターン25を発生する。
【0057】
割当て手段16及び反復手段17は、また、検索手段13または決定手段15に一体化されても良いことに留意されたし。
【0058】
従って、発生器1の種々の手段は、検索パターンを選択する動作、検索パターンを検索する動作、並びに出力パターンを生成する動作を分離する。さらに、これらの手段は、複数のストリームまたは初期データ・シーケンスに渡ってステップまたは動作を配分し、そして出力パターンの各実行または生成の後に割当て機構を修正する。
【0059】
図2は、インターネットの、GSM、UMTS、等の型の通信ネットワーク35を介して相互通信される少なくとも2つのエンティティを含む保証システム30を示す。
【0060】
この図の例は、通信ネットワーク35を介して第2のエンティティ33bに接続される第1のエンティティ33aを示している。
【0061】
第1のエンティティ33a(それぞれ第2のエンティティ33b)は、第1の端末37a(それぞれ第2の端末37b)、第1の暗号化/暗号解読装置39a(それぞれ第2の暗号化/暗号解読装置39b)、及び第1のモデム41a(第2のモデム41b)を含み、モデム41a及び41bは、通信ネットワーク35とのインターフェースを提供する任意の装置から成る。
【0062】
第1及び第2の暗号化/暗号解読装置39a、39bの各々は、上述した擬似ランダム・データ・シーケンス3の発生器1と、排他的OR論理ゲート43とを含む。
【0063】
各暗号化/暗号解読装置39a、39bは、ビットごとにメッセージを暗号化または暗号解読するストリーミング暗号化または暗号解読を行なうよう適合されている。
【0064】
この例においては、第1の暗号化/暗号解読装置39aは、暗号化動作を行なう。従って、暗号化シリーズと呼ばれる擬似ランダム・データ・シーケンス3は、第1の端末37aによって送られた平文のメッセージ45の対応の位置において排他的ORゲート43によって各ビットと結合されて、暗号化されたテキスト47を得、該テキスト47は、次に、第1のモデム41aによって第2のエンティティ33bに送られる。このように、暗号化演算は、メッセージ45の平文のテキストにビットごとに暗号化シリーズ3を付加して、暗号化されたテキスト47を得る。
【0065】
第2の暗号化/暗号解読装置39bは、平分のテキスト・メッセージ45を回復するために第1のエンティティ33aによって送られた暗号化されたテキスト47にビットごとに同じ暗号化シリーズ3を付加する暗号解読演算を行う。このように、暗号化及び暗号解読演算(動作)は同一である。
【0066】
本発明の方法は、概して、少なくとも1つの検索パターンを検索するための手順に従って初期データ・シーケンス9a、9b、9cに属するデータを結合することによって、擬似ランダム・データ・シーケンス3を発生することにある。
【0067】
このように、の初期データ・シーケンス9a、9b、9cもしくはビット・ストリームがあり得る。非ゼロ・サイズの1つ以上のウインドが各データ・シーケンスに渡ってシフトされ、そして、のウインドがあり得る(以上である)。
【0068】
プロセスの開始において、各ウインドは、関連のデータ・シーケンス上の所期位置にある(例えば、ウインドの各々は関連のデータ・シーケンスの始めに位置付けられ得る)。のウインドは、のポインタ20a、20b、20cによって操作され得る。
【0069】
以下、Eは検索パターンの値を示し、は出力パターン25の値を示し、そしてpf、pf、・・・、pfは、のウインドへのポインタ20a、20b、20cの数を示す。
【0070】
さらに、本発明の方法は、一連のステップを含む。第1のステップは、検索パターンもしくは複数のパターンを選択する。
【0071】
検索パターンもしくは複数のパターンは、予め決められても良く、または、好ましくは、少なくとも1つの初期データ・シーケンス9a、9b、9cにおいて選択されても良いことに留意されたし。
【0072】
第2のステップは、少なくとも1つの初期データ・シーケンス9a、9b、9cにおける検索パターンもしくは複数のパターンを検索する。
【0073】
第3のステップは、検索に依存しかつ複数の初期データ・シーケンス9a、9b、9cからの少なくとも1つの初期データ・シーケンスの内容に依存するアプリケーションに従って、値の出力パターン25を決定する。このように、出力パターンは、空(エンプティ)であって良く、例えば、ウインドの内容に依存するか、もしくは、方法の先行するステップの実行に依存する。値の出力パターン25を決定することは、検索パターン及び検索履歴に依存し得、特に、初期データ・シーケンスまたは複数のシーケンス9a、9b、9cにおける問題の検索パターンEを見つける前に行なわれるステップまたは反復の回数に依存し得る。
【0074】
第4のステップは、複数の初期データ・シーケンス9a、9b、9c内の少なくとも1つの検索パターンを選択して検出する動作を再割当てする。再割当ては、検索の関数として、及び/または複数の初期データ・シーケンス9a、9b、9cからの少なくとも1つの初期データ・シーケンスの内容の関数として行なわれ得る。
【0075】
これらの先行ステップまたは動作は、値の一連の出力パターン25から擬似ランダム・データ・シーケンス3を形成するように、引き続いて反復される。
【0076】
さらに、これらの動作は、一連のルールによって行なわれる。
【0077】
該一連のルールは、検索パターンまたは複数のパターンEを選択する及び/または検出するために、複数の初期データ・シーケンス9a、9b、9cからの各初期データ・シーケンスに渡って少なくとも1つのウインド19a、19b、19cをシフトするための少なくとも1つのシフト・モードを限定するための発生器1の結合手段5によって行なわれる第1のセットのルールR1を含む。
【0078】
第1のセットのルールR1は、ウインド19a、19b、19cをシフトする、例えば、初期データ・シーケンス9a、9b、9cの部分に渡って循環シフトする、方向、振幅または形態を限定し得る。
【0079】
例えば、第1のセットのルールR1は、以下のように定義されるルールr1、1を含み得る:
1、1=“右に1ビットシフト”
【0080】
さらに、一連の動作は、第2のセットのルールR2を含み、該ルールR2は、検索パターンまたは複数のパターンEを選択すること及び/または出力パターンを更新すること及び/またはウインド19a、19b、19cを操作するポインタ20a、20b、20cによって動作を再割当てすることを管理する発生器1の結合手段5によって行なわれる。
【0081】
最後に、一連の動作は、第3のセットのルールR3を含み、該ルールR3は、複数のウインド19a、19b、19cをシフトするモードを決定する、例えば、異なった初期データ・シーケンス9a、9b、9cに渡ってウインドまたは複数のウインドのシフトを停止するための条件を決定する発生器1の結合手段5によって行なわれる。
【0082】
第2のセットのルールR2からの更新ルールの少なくとも1つは、第3のセットのルールR3からのルールの少なくとも1つ及び以下の形態の第1のセットのルールR1からのルールの少なくとも1つに依存する:“pfによって指定されたウインドの内容がパターンのセットからのパターンでない限り、ルール
【数1】

に従って
【数2】

により指定されたウインドをシフトする”、ここに、ルール
【数3】

は、第1のセットのルールR1からのルールである。
【0083】
一連のステップまたは動作は、所定の条件が満足されるまで、反復され得ることに留意されたし。例えば、この一連の動作は、ルールの1つが有限のサイズである場合にルールの1つのアプリケーションがウインドに初期データ・シーケンスを離れさせるまで、反復される。また、ユーザによって限定された条件が満足されるまで、該一連の動作を反復させることも可能である。
【0084】
さらに、各実行の後に該一連の動作を変更することも考えられ得る。
【0085】
従って、本発明の擬似ランダム・データ・シーケンスの要素を決定することは、初期データ・シーケンスに渡る動作の配分、該配分の変動、検索されたパターンまたは複数のパターン、及び、検索の履歴もしくは検索が行なわれてきた態様、に依存し得る。
【0086】
図3乃至図5は、本発明の方法の特定の実施形態を示す。
【0087】
これらの実施形態において、一連の動作は、各実行の後に不変のままであり、複数の初期データ・シーケンス9a、9b、9cは、最大期間の少なくとも2つの線形フィードバック・シフト・レジスタ(LFSR)11a、11b、11cの出力であり得る少なくとも2つの初期データ・シーケンスを含む。さらに、ウインドまたは複数のウインド19a、19b、19cは、“サイズ1”(すなわち各ウインドは1ビットを含む)のものであり、検索パターンのセットは、多くても1つの検索パターンEを含み、そして検索及び出力パターン25もサイズ1のものである(すなわち各パターンは1ビットを含む)。
【0088】
さらに、ウインド19a、19b、19cのシフティングの振幅は、1単位に等しく、すなわち、各ウインドは、例えば、現在のビットから次のビットまで(すなわち左から右へ)各反復上で1ビットだけシフトされる。
【0089】
従って、各初期データ・シーケンス9a、9b、9cは、連続的にすなわちビットごとに読取られ得、履行するのに非常に簡単である実施形態となる。
【0090】
最初に、検索及び出力パターン25は、それらの各々に空(エンプティ)ビットを割り当てることにより初期設定される。すなわち、E←φ及びs←φであり、φは空(エンプティ)セットである。
【0091】
第1の実施形態において、2つのウインド19a及び19bは、2つの初期データ・シーケンス9a及び9bに渡ってシフトされる。ウインド19aは、初期データ・シーケンス9aに渡ってシフトされ、ウインド19bは、初期データ・シーケンス9bに渡ってシフトされる。各ウインドは、関連のデータ・シーケンスの第1のビットに初期設定される。2つのポインタ20a、20b(番号付けられたpf及びpf)は、ウインド19a、19bを指定する(point)。この第1の実施形態において、ウインド19a及び19bへのポインタ20a、20bは、実行中変更されず、すなわち、ポインタpfは常にウインド19aを指定し、ポインタpfは常にウインド19bを指定する。同様に、bで示される一定バイナリ値は、実行中固定されたままであるよう限定され、すなわち、第1の実施形態の一連の動作に関する各アプリケーション上にある。
【0092】
第1の実施形態の一連の動作は以下のように定義され得る:
・ 第1のセットのルールR1のシフトするだけのルールとして、ルールr1、1=“右に1ビットをシフトする”を設定する;
・ 第2のセットR2の更新するルールとして、以下のルールを設定する:
2、1=“Eにおけるpfによって指定されたウインドから該ビットを置く”;
2、2=“pfによって指定されたウインドの内容がEからのパターンであるならば、次に、s←bに更新する。”;
2、3=“pfによって指定されたウインドの内容がEからのパターンでないならば、次に、
【数4】

に更新する。”;
・ 第3のセットのルールR3として以下のルールを設定する:
3、1=“pfによって指定されたウインドの内容がEからのパターンでない限り、ルールr1、1に従ってpf2により指定されたウインドをシフトする”;
3、2=“pf及びpfによって指定されたウインドをルールr1、1に従ってシフトする”;
・ ルールr2、1、r2、2、r2、3、r3、1、及びr3、2をその順序で適用する;そして
・ 出力パターンを出力する。
【0093】
図3のフローチャートは、上述の一連の動作の実行を示す。
【0094】
ステップE11において、選択手段21aは、検索パターンEを選択するようポインタ20a上で動作する。換言すれば、このステップは、検索パターンEに、pfによって指定されたウインド19aからのビットを置く。
【0095】
検出手段21bは、次に、初期データ・シーケンス9bにおける検索パターンEを検索するためにポインタ20b(pfと番号付けられた)上で動作する。このように、ステップE12は、pfによって指定されたウインド19bの内容を検索パターンEの内容と比較するテストである。
【0096】
ステップE13において、生成手段27は、第1の法則(s←b)に従って値の出力パターン25を更新する。従って、pfによって指定されたウインド19bの内容が検索パターンEの内容と等しいならば、次に、出力パターン25は、特定の値を取る。
【0097】
ステップE14において、生成手段27は、第2の法則
【数5】

に従って出力パターン25を更新する。従って、pfによって指定されたウインド19bの内容がセットEからのパターンでない場合には、次に、パターンはビットの補数である値を取り、すなわち、特定の値及び値“1”間のモジュロ2加算(a modulo 2 addition)を行い、そして出力パターン25に、この結果の値を割り当てる。
【0098】
この実施形態においては、割当て手段16は、常に、ポインタ20a、20b及びウインド19a、19b間の同じ対応を割り当てる。
【0099】
このように、ステップE15及びE16は、ウインド19bの内容が検索パターンEのビットに等しくないならば(テストE16)、次のビットに向かってビットごとにpfによって指定されたウインド19bをシフト(E15)するループを形成する。
【0100】
ステップE17は、現在のビットから次のビットまで、1ビットだけ、ポインタpf及びpfによって指定されたウインド19a及び19bをシフトする。
【0101】
最後に、ステップE18において、反復手段17は、出力パターンが、擬似ランダム・シーケンス3を発生するために発生器1から出力されるようにし、先行するステップの反復を可能とする。
【0102】
概して、一連の動作は、以下のように要約され得る:pfによって指定されたウインド19aに含まれたビットが読取られ、次に、pfによって指定されたウインドに含まれたビットが、pfによって指定されたウインドに含まれたビットと一致しない限り、pfによって指定されたウインドは、右に一位置だけシフトされる。pfによって指定されたウインドがシフトされなかった場合、次に、が出力され、そうでない場合には、
【数6】

が出力される。2つのウインドは、次に、再度開始する前に右に1ビットシフトされる。
【0103】
もちろん、該フローチャートは、予め限定された条件が満足されるか否かを決定するために、テストを停止することを含むことができる(簡単化の理由のために図には表されていない)。
【0104】
例えば、これらのステップは、pfによって指定されたウインド19bが初期データ・シーケンス9を去るまで、擬似ランダム・データ・シーケンスを形成するために反復され得る。
【0105】
図4は、第2の実施形態の一連の動作の実行を示すフローチャートである。
【0106】
この第2の実施形態は、3つの初期データ・シーケンス9a、9b及び9c、並びに、長さ“1”の3つのウインド19a、19b及び19cを含む。ウインド19aはシーケンス9aに渡ってシフトされ、ウインド19bはシーケンス9bに渡ってシフトされ、そしてウインド19cはシーケンス9cに渡ってシフトされる。3つのウインドの各々は、関連のデータ・シーケンスの第1のビットに渡って最初に位置付けられる。
【0107】
ウインド19a、19b及び19cにpf、pf及びpfが番号付けられる3つのポインタ20a、20b、20cが限定される。初期設定時において、pfはウインド19aを指定し、pfはウインド19bを指定し、そして、pfはウインド19cを指定する。pftempが番号付けられた第4のポインタは、pf、pf及びpfの値の変更中、pfの値を一時的に記憶するために限定される。検索パターンのセットEは、当該方法の一連の動作または機構の各実行前に、空の(エンプティ)セットに初期設定される。
【0108】
第2の実施形態の一連の動作または機構は、以下のように限定され得る:
・ 第1のセットのルールR1のシフトするだけのルールとして、ルールr1、1=“右に1ビットをシフトする”が設定される;
・ 第2のセットのルールR2の更新するルールとして、以下のルールが設定される:
2、1=“Eにおけるpfによって指定されたウインドから該ビットを置く”;
2、2=“にpfによって指定されたウインドからのビットを置く”;
2、3=“以下の循環配列を行なうことによってポインタの値を変更する:pftempがpfによって指定されたウインドを指定し、次に、pf1がpf2によって指定されたウインドを指定し、次に、pf2がpf3によって指定されたウインドを指定し、次に、pf3がpftempによって指定されたウインドを指定する”;
・ 第3のセットのルールR3の実行ルールとして以下のルールが設定される:
3、1=“pfによって指定されたウインドの内容がセットEからのパターンでない限り、pf及びpfによって指定されたウインドにルールr1、1を適用する”;
3、2=“pf、pf及びpfによって指定されたウインドにルールr1、1を適用する”;
・ ルールr2、1、r3、1、r2、2、r2、3及びr3、2はその順序で適用される;
・ 出力パターンを出力する。
【0109】
従って、図4のフローチャートのステップE21において、選択手段21aは、検索パターンEを選択するためにポインタ20a上で動作する。これは、検索パターンEにpf1によって指定されたウインド19aのビットを置くことにある。
【0110】
検出手段21bは、次に、検索パターンEを検索するために、pfを番号付けられたポインタ上で動作する。
【0111】
ステップE22及びE23は、次に、pfによって指定されたウインドの内容がEからのパターンでない限り(テストE22)、pf及びpfによって指定されたウインドがビットごとに右にシフトされる(ステップE23)ということを確認するループを形成する。
【0112】
ステップE24において、生成手段27は、パターンに、pfによって指定されたウインドのビットの値を割り当てる。
【0113】
ステップE25において、割当て手段16は、pf、pf及びpfの値を以下のように再割当てする:pfはpfの値を取り、pfはpfの値を取り、そしてpfはpfの先行する値を取る。
【0114】
ステップE26において、検出手段21bは、pf、pf及びpfによって指定されたウインドをビットごとに右にシフトするためにポインタ上で動作する。
【0115】
最後に、ステップE27において、反復手段17は、出力パターンが、擬似ランダム・データ・シーケンス3を発生するために発生器1から出力されるようにし、先行するステップの反復を可能とする。
【0116】
概して、一連の動作は以下のように要約され得る:pfによって指定されたウインドの現在のビットEが読取られ、そして次に、pfによって指定されたウインドからのビットがビットEと一致しない限り、pf及びpfによって指定されたウインドは右に一位置シフトされる;出力パターンは、pfによって指定されたウインドに含まれるビットの値を取る;3つのポインタpf、pf及びpfは並び替えられる;3つのウインドは、次に、再度開始する前に一位置だけシフトされる。
【0117】
図5は、第3の実施形態の一連の動作の実行を示すフローチャートである。
【0118】
第3の実施形態は、2つの初期データ・シーケンス9a、9b及び2つのウインド19a及び19bを含む。ウインド19aは、シーケンス9aに渡ってシフトされ、ウインド19bは、シーケンス9bに渡ってシフトされる。各ウインドは、関連のシーケンスの第1ビットに渡って最初に固定される。ウインド19a、19bに対してpf及びpfと番号付けられた2つのポインタ20a及び20bが限定される。初期設定において、pfはウインド19aを指定し、pfはウインド19bを指定する。
【0119】
第3の実施形態の一連の動作または機構は、以下のように限定され得る:
・ 第1のセットのルールR1のシフトするだけのルールとして、ルールr1、1=“右に1ビットをシフトする”が設定される;
・ 第2のセットのルールR2の更新するルールとして、以下のルールが設定される:
2、1=“Eにおけるpfによって指定されたウインドから該ビットを置く”;
2、2=“にpfによって指定されたウインドからのビットの値を割り当てる”;
2、3=“ポインタpf及びpfの値を交換する”;
・ 第3のセットのルールR3の実行ルールとして以下のルールが設定される:
3、1=“ルールr1、1に従ってpfによって指定されたウインドをシフトする”;
3、2=“pfによって指定されたウインドの内容がセットEからのパターンでない限り、ルールr1、1に従ってpfによって指定されたウインドをシフトする”;
3、3=“がEからのパターンでないならば、次に、ルールr2、3を適用する”;
・ ルールr2、1、r3、1、r2、2、r3、2、r3、1及びr3、3はその順序で適用される;
・ 出力パターンを出力する。
【0120】
従って、図5のフローチャートのステップE31において、選択手段21aは、検索パターンEを選択するためにポインタ20a上で動作する。このことは、セットEにpfによって指定されたウインドからのビットを置く。
【0121】
ステップE32において、検出手段21bは、右に1ビット、pfによって指定されたウインドをシフトする。
【0122】
ステップE33において、生成手段27は、パターンが、pfによって指定されたウインドに含まれたビットの値を取るようにする。
【0123】
検出手段21bは、次に、検索パターンEを検索するために、pfを番号付けられたポインタ上で動作する。
【0124】
従って、ステップE34及びE35は、pfによって指定されたウインドの内容がEからのパターンでない限り(テストE34)、pfによって指定されたウインドが右に1ビットずつシフトされる(ステップE35)ということを示す。
【0125】
ステップE36において、pfによって指定されたウインドは、右に1ビットシフトされる。
【0126】
ステップE37及びE38は、パターンがセットEからのパターンでないならば、次に、ポインタpf及びpfの値は、割当て手段16によって交換される(ステップE38)。
【0127】
最後に、ステップE39において、反復手段17は、発生器1から出力パターンを出力する。
【0128】
概して、一連の動作は、以下のように要約され得る:パターンEは、pfによって指定されたウインドの内容で初期設定され、次に、pfによって指定されたウインドは、右に一位置シフトされ、そしてパターンは、pfによって指定されたウインドからのビットの値を取り;pfによって指定されたウインドの内容がEからのパターンでない限り、pfによって指定されたウインドは右に一位置シフトされ;pfによって指定されたウインドは、次に、右に一位置シフトされ;パターンがEからのパターンでないならば、次に、ポインタpf及びpfからの値は交換され、そしてパターンが出力される。
【0129】
このように、複数の初期のビット・シーケンスから始まって、本発明の方法は、ルールに従って初期シーケンスに渡ってウインドをシフトすることから生じる新しいビット・シーケンスを構成する。パターンの選択は、プロセス中に相互交換され得る複数の初期シーケンスに渡って配分されるのが有利であり、このように、高品質の擬似ランダム・ビット・シーケンスを生成する。
【0130】
説明した実施形態は高速であり、それらのハードウェア履行は、ブール関数を用いた暗号化システムのものよりも低価格である。それらは、高ビット・レート通信(インターネット、GSM、UMTS、WiFi)を暗号化するために適切である。
【0131】
事実、擬似ランダム・データ・シーケンス3の各ビットは、暗号化されたデータ・シーケンス47を形成するために、モジュロ2加算(modulo 2 addition)によって暗号化されるようメッセージ45のデータ・シーケンスからの対応のビットと結合される(図2参照)。
【図面の簡単な説明】
【0132】
【図1】本発明の擬似ランダム・シーケンス発生器の一例を示す図である。
【図2】図1からの発生器を含む保証システムを示す図である。
【図3】本発明による擬似ランダム・データ・シーケンスを発生するための検索手順の特定の実施形態を示す図である。
【図4】本発明による擬似ランダム・データ・シーケンスを発生するための検索手順の特定の実施形態を示す図である。
【図5】本発明による擬似ランダム・データ・シーケンスを発生するための検索手順の特定の実施形態を示す図である。
【図6】従来技術の発生器を示す図である。
【符号の説明】
【0133】
1 発生器
3 擬似ランダム・データ・シーケンス
5 結合手段
9a、9b、9c 複数の初期データ・シーケンス
11a、11b、11c 複数のシフト・レジスタ
13 検索手段
15 決定手段
16 割当て手段
17 反復手段
19a、19b、19c 複数のウインド
20a、20b、20c 複数のポインタ
21a 選択手段
21b 検出手段
25 出力パターン
27 生成手段
30 保証システム
33a、33b 第1、第2のエンティティ
35 通信ネットワーク
37a、37b 第1、第2の端末
39a、39b 第1、第2の暗号化/暗号解読装置
41a、41b 第1、第2のモデム
43 排他的OR論理ゲート

【特許請求の範囲】
【請求項1】
一連の出力パターン(25)から成る擬似ランダム・データ・シーケンス(3)を発生するための方法であって、これらの出力パターン(25)は、
・ 少なくとも1つの検索パターンを選択するステップと、
・ 複数の初期データ・シーケンス(9a、9b、9c)の1つである少なくとも1つの初期データ・シーケンスにおける前記少なくとも1つの検索パターンを検索するステップと、
・ 前記検索に依存するかつ前記複数の初期データ・シーケンス(9a、9b、9c)からの少なくとも2つの初期データ・シーケンスの内容に依存するアプリケーションに従って出力パターン(25)を決定するステップと、
・ 前記複数の初期データ・シーケンス(9a、9b、9c)内の少なくとも1つの検索パターンの選択及び検索を再割当てするステップと、
によって得られることを特徴とする方法。
【請求項2】
前記再割当ては、前記複数の初期データ・シーケンス(9a、9b、9c)の1つである少なくとも1つの初期データ・シーケンスの内容及び/または前記検索の関数として行われることを特徴とする請求項1に記載の方法。
【請求項3】
前記ステップは、
・ 各ウインドは初期データ・シーケンスと関連しているので複数のウインド(19a、19b、19c)があるが、前記複数の初期データ・シーケンス(9a、9b、9c)の各初期データ・シーケンスに渡って少なくとも1つのウインド(19a、19b、19c)をシフトするための少なくとも1つのシフト・モードを限定するための第1のセットのルールと、
・ 前記複数のウインド(19a、19b、19c)を操作する複数のポインタによって動作を再割当てすること、及び/または前記出力パターン(25)を更新すること、及び/または前記少なくとも1つの検索パターンを選択することを管理する第2のセットのルールと、
・ 前記複数のウインドをシフトするモードを決定する第3のセットのルールと、
を含む一連のルールによって行なわれることを特徴とする請求項1または2に記載の方法。
【請求項4】
前記複数の初期データ・シーケンスは、少なくとも2つの初期データ・シーケンスを含み、そしてウインド(19a、19b、19c)は、サイズ1のものであり、それにより、前記少なくとも2つの初期データ・シーケンスは、1ビットの出力パターン(25)を決定するよう連続的にビットずつ読取られ得ることを特徴とする請求項3に記載の方法。
【請求項5】
前記擬似ランダム・データ・シーケンス(3)の各ビットは、暗号化されたデータ・シーケンスを形成するようモジュロ2加算によって暗号化されるべきメッセージのデータ・シーケンスからの対応ビットと結合されることを特徴とする請求項1乃至4のいずれかに記載の方法。
【請求項6】
擬似ランダム・データ・シーケンス(3)の発生器であって、少なくとも一つの検索パターンを検索する手順に従って複数の初期データ・シーケンス(9a、9b、9c)に属するデータを結合するための結合手段(5)を含み、該結合手段(5)は、
・ 複数の初期データ・シーケンス(9a、9b、9c)に渡ってシフトされるよう適合されている複数のウインド(19a、19b、19c)と対応関係にある複数のポインタ(20a、20b、20c)と、
・ 少なくとも1つの初期データ・シーケンスにおける前記少なくとも1つの検索パターンを選択するよう複数のウインド(19a、19b、19c)を操作する複数のポインタ(20a、20b、20c)上で動作するための選択手段(21a)と、
・ 少なくとも1つの初期データ・シーケンスにおける前記少なくとも1つの検索パターンを検索するよう複数のポインタ(20a、20b、20c)上で動作するための検出手段(21b)と、
・ 前記検索に依存する、かつ前記複数の初期データ・シーケンス(9a、9b、9c)からの少なくとも2つの初期データ・シーケンスの内容に依存するアプリケーションに従って出力パターン(25)を決定するための生成手段(27)と、
・ 複数のポインタ(20a、20b、20c)及び複数のウインド(19a、19b、19c)間の対応を再割当てするための、かつ前記複数の初期データ・シーケンス(9a、9b、9c)内の少なくとも一つの検索パターンを選択して検索する動作を再割当てするための割当て手段(16)と、
・ 一連の出力パターン(25)から擬似ランダム・データ・シーケンス(3)を発生するための反復手段(17)と、
を含むことを特徴とする擬似ランダム・データ・シーケンス(3)の発生器。
【請求項7】
排他的ORロジック・ゲート(43)を含む暗号化/暗号解読装置(39a、39b)であって、さらに、請求項6による発生器(1)を含むことを特徴とする暗号化/暗号解読装置(39a、39b)。
【請求項8】
ネットワーク(35)を介して接続された少なくとも2つのエンティティ(33a、33b)を含む保証システム(30)であって、前記少なくとも2つのエンティティの各々は、請求項7に記載の暗号化/暗号解読装置(39a、39b)を含むことを特徴とする保証システム(30)。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2008−530606(P2008−530606A)
【公表日】平成20年8月7日(2008.8.7)
【国際特許分類】
【出願番号】特願2007−554619(P2007−554619)
【出願日】平成18年2月13日(2006.2.13)
【国際出願番号】PCT/FR2006/050124
【国際公開番号】WO2006/085038
【国際公開日】平成18年8月17日(2006.8.17)
【出願人】(591034154)フランス テレコム (290)
【Fターム(参考)】