説明

疑似ランダムデータシーケンスの生成

疑似ランダムデータシーケンス(3)を生成する方法であって、前記疑似ランダムデータシーケンス(3)は、Nビットの初期データシーケンス(9)における検索パターン(7)に対する検索をするための手順によって生成されることを特徴とし、前記検索手順は、一組の検索パターンの1つであるビットの特定の検索パターン(7)を前記初期データシーケンス(9)において検出する段階(E1)と、先行する段階(E1)の進行に依存する動作によってビットの出力パターン(25)を判断する段階(E2)と、一連の出力パターン(25)から疑似ランダムデータシーケンス(3)を連続して形成するために先行する段階(E1、E2)を反復する段階とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、符号化/復号化の分野に関し、疑似ランダムデータシーケンスを生成するシステム及び方法に関する。
【0002】
本発明は、暗号化及び復号化が同一の秘密鍵を使用する対称暗号化を対象とするビットのシーケンスを生成することに供する点で、とても有利な用途を見出す。本発明は、暗号化動作及び復号化動作が同一である標準のストリーム暗号化方法に順応する。対称暗号化は通常、移動体通信(GSM、UMTS等)、インターネット(SSL等)、スマートカード(バンクカード)等のような、全種類の通信に使用される。
【背景技術】
【0003】
最も広く普及したストリーム暗号化方法は、ハードウェアを節約するために、線形フィードバックシフトレジスタを用いて暗号化されるべきメッセージに対して独立した一連の暗号化を生成する。
【0004】
線形フィードバックシフトレジスタの主な欠点は、その線形性である。実際、レジスタ長に等しいレジスタの多数の出力ビットを知ること、及びレジスタに関連付けられたフィードバック多項式を知ることは、レジスタの出力ビットと全ての後続の状態とを判断することを可能にする。
【0005】
従って、線形フィードバックシフトレジスタの線形性を“破る”ためには、例えば非線形ブール関数を用いて、複数のレジスタの出力を結合すること、及び場合によりその内部状態を結合することも標準的な習慣である。
【0006】
図7は、第1線形フィードバックシフトレジスタ111aと、第2線形フィードバックシフトレジスタ111bと、生成器100の出力を選択するための手段112とを含む、欧州特許出願EP0619659で説明された“疑似ランダム数生成器(shrinking generator)”として知られる当該生成器100を示す。
【0007】
従って、各シフト上で、2つのレジスタ111a及び111bは、同時にシフトされる。第1レジスタ111aの出力が1の場合、装置100の出力は、第2レジスタ111bの出力に等しく、そうでない場合、出力されない。
【0008】
疑似ランダム数生成器は、2つの線形フィードバックレジスタの出力だけでなく、より一般には任意の組の一連のビットを結合する。疑似ランダム数生成器は、1つの線形フィードバックレジスタが他の線形フィードバックレジスタを制御するストリーム暗号化方法の部類である。その目的は、レジスタの線形性を破るために、まず、採用された各種レジスタ間のシフト数、次に、2つの連続ビット間のシフト数を変更することにある。
【0009】
“自動疑似ランダム数生成器”として知られる疑似ランダム数生成器の変形は、同一の原理に基づくが、単独のレジスタを使用する。レジスタの出力ビットは、2つずつ読み込まれる。第1ビットが1である場合にシステムの出力が第2ビットになり、そうでない場合に出力されないように、第1ビットは、第2ビットの出力を制御する。
【0010】
線形フィードバックレジスタのみを使用することは、多数の欠点を有する。主な欠点は、装置の線形性から生じる脆弱性である。レジスタがブール関数を用いて結合される場合も不利である。ハードウェアレベルでは、これらの不利な点は、関数を実行する複雑性から生じる。また、この関数は、固定され、それを攻撃することを可能にする。
【0011】
また、統計的方法は、疑似ランダム数生成器と他のクロック制御暗号化方法との所定の脆弱性を明らかにした。特に、疑似ランダム数生成器において、2つの出力ビット間で2つのレジスタによってもたらされるシフト数は、両レジスタに対して同じ量だけ変わる。
【0012】
最後に、疑似ランダム数生成器の最後の欠点は、演算されるビット数に対する出力ビット数のその低い割合であり、平均して1/4に等しい。この割合は、自動疑似ランダム数生成器と同じであり、疑似ランダム数生成器の脆弱性の大部分を有する。
【発明の開示】
【発明が解決しようとする課題】
【0013】
本発明の目的は、上記欠点を改善し、良好な品質の疑似ランダムデータシーケンスの生成を単純化することにある。
【0014】
もう1つの目的は、出力ビット数と演算されたビット数との間の割合を1/4よりも高くする方法及び生成器を提案することにある。
【0015】
さらにもう1つの目的は、低コストでかなり効率的な生成器を提供することにある。
【課題を解決するための手段】
【0016】
上記目的は、疑似ランダムデータシーケンスを生成する方法を用いて達成され、前記疑似ランダムデータシーケンスは、Nビットの初期データシーケンスにおける検索パターンに対する検索の手順によって生成される。
【0017】
故に、本発明による方法は、一つ以上のビットストリームの非線形結合により新たなビットストリームを得ることを可能にするパターンの検出に基づき疑似ランダムデータを生成する非線形方法に関する。
【0018】
この方法は、容易に実施されるが、良好な品質の疑似ランダムデータシーケンスを生成するために、本質的な複雑性を有する。
【0019】
検索手順は、
・一組の検索パターンの1つであるビットの特定の検索パターンを前記初期データシーケンスにおいて検出する段階と、
・先行する段階の進行に依存する動作によってビットの出力パターンを判断する段階と、
・一連の出力パターンから疑似ランダムデータシーケンスを連続して形成するために先行する段階を反復する段階とを具備する。
【0020】
前記検索パターンを検出する段階と前記出力パターンを判断する段階とは、前記検索パターンを検出するために前記初期データシーケンス上でウィンドウをシフトするためのシフトモードを定義するための第1組の規則を含む一連の動作によってもたらされ、前記ウィンドウは、前記初期データシーケンス上で特定の初期位置と特定のビットサイズとを有する。
【0021】
一連の動作は、前記初期データシーケンス上で前記ウィンドウのシフトを停止するための条件を判断する第2組の規則をさらに含む。
【0022】
前記第2組の規則からの規則は、前記ウィンドウのシフト及び/又はコンテンツの関数として、前記1組の検索パターン及び/又は前記出力パターンの更新を管理する。
【0023】
前記一連の動作は、所定の条件が満たされるまで反復される。
【0024】
一連の動作は、各実行の後に有利に変更される。
【0025】
本発明の特徴によると、一連の動作は、1ビットの検索パターンを検出するために、及び1ビットの出力パターンを判断するために、各実行の後に引続き同じ動作のままであり、ビット毎に連続して前記初期データシーケンス上で1ビットのウィンドウをシフトする。
【0026】
本発明の第1実施形態において、一連の動作は、
・検索パターンにウィンドウからのビットを置く段階と、
・現在のビットから次のビットへ、ビット毎にウィンドウをシフトする段階と、
・ウィンドウのコンテンツが検索パターンのそれと等しい場合、第1法則に従い出力パターンを更新する段階と、
・ウィンドウのコンテンツが検索パターンのビットと等しくない場合、第2法則に従い出力パターンを更新する段階と、
・ウィンドウのコンテンツが検索パターンのビットと等しくない場合、次のビットへビット毎にウィンドウをシフトする段階と、
・現在のビットから次のビットへ、1ビットだけウィンドウをシフトする段階と、
・出力パターンを出力する段階とを含む。
【0027】
第1実施形態において、第1法則は、出力パターンに特定値を割り当て、第2法則は、前記特定値及び値1の2を法とする加算をもたらし、出力パターンに前記加算の結果を割り当てる。
【0028】
第2実施形態において、第1法則は、特定値及び検索パターンの値Eの2を法とする加算をもたらし、出力パターンに前記加算の結果を割り当て、第2法則は、前記特定値と、検索パターンの値Eと、値1との2を法とする加算をもたらし、出力パターンに前記加算の結果を割り当てる。
【0029】
第3実施形態において、一連の動作は、
・検索パターンに第1ウィンドウからのビットを置く段階と、
・現在のビットから次のビットへ、1ビットだけ第1ウィンドウをシフトする段階と、
・第1ウィンドウのコンテンツが検索パターンの値に等しい場合、第1特定値b及び検索パターンの値Eの2を法とする加算の結果をそれに割り当てることによって出力パターンを更新する段階と、
・第1ウィンドウのコンテンツが検索パターンの値Eに等しくない場合、前記第1特定値bと、検索パターンの値Eと、値1との2を法とする加算の結果をそれに割り当てることによって出力パターンを更新する段階と、
・第1ウィンドウのコンテンツが検索パターンのビットEに等しくない場合、次のビットへビット毎に第1ウィンドウをシフトする段階と、
・現在のビットから次のビットへ、1ビットだけ第1ウィンドウをシフトする段階と、
・第2ウィンドウからのビットによって検索パターンの値を置き換える段階と、
・現在のビットから次のビットへ、1ビットだけ第2ウィンドウをシフトする段階と、
・第2ウィンドウのコンテンツが検索パターンの値に等しい場合、第2特定値bと、出力パターンの現在の値と、検索パターンの値Eとの2を法とする加算の結果をそれに割り当てることによって出力パターンを更新する段階と、
・第2ウィンドウのコンテンツが検索パターンの値に等しくない場合、出力パターンの現在の値と、前記第2特定値bと、検索パターンの値Eと、値1との2を法とする加算の結果をそれに割り当てることによって出力パターンを更新する段階と、
・第2ウィンドウのコンテンツが検索パターンの値に等しくない場合、次のビットへビット毎に第2ウィンドウをシフトする段階と、
・現在のビットから次のビットへ、1ビットだけ第2ウィンドウをシフトする段階と、
・出力パターンを出力する段階とを含む。
【0030】
本発明の用途において、前記疑似ランダムデータシーケンスの各ビットは、暗号化されたデータシーケンスを形成するために、2を法とする加算によって暗号化されるべきメッセージのデータシーケンスの対応するビットに結合される。
【0031】
また、本発明は、Nビットの初期データシーケンスにおける検索パターンに対する検索のための検索手段を含む疑似ランダムデータシーケンスの生成器を提供する。
【0032】
生成器の検索手段は、
・一組の検索パターンの1つであるビットの特定の検索パターンを前記初期データシーケンスにおいて検出するための検出手段と、
・前記検索パターンの検出の進行に依存する動作に従いビットの出力パターンを判断するための判断手段と、
・一連の出力パターンから疑似ランダムデータシーケンスを生成するための反復手段とを含む。
【0033】
検出手段は、前記初期データシーケンス上でシフトされるよう適合されたウィンドウと、前記初期データシーケンス上で前記ウィンドウのシフトを制御するための第1制御手段とを含む。
【0034】
判断手段は、前記一組の検索パターン及び/又は前記出力パターンを更新するための第2制御手段を含む。
【0035】
生成器は、Nビットの初期データシーケンスを生成するための初期手段(11)をさらに含む。
【0036】
初期手段は、線形フィードバックシフトレジスタを含む。
【0037】
また、本発明は、上記特徴を有する生成器と、排他的OR論理ゲートを含む符号化装置とを目的とする。
【0038】
また、本発明は、各々が符号化装置を含む少なくとも2つのエンティティを含むセキュアシステムを目的とする。
【発明を実施するための最良の形態】
【0039】
図1は、疑似ランダムデータシーケンス3を生成するための本発明による生成器1の一例を概略的に示す。
【0040】
生成器1は、Nビットの初期データシーケンス9における検索パターン7に対して検索するための検索手段5を含む。検索パターンは、一組の検索パターンに含まれる。
【0041】
“パターン”という用語は、0及び1以外からなる任意の単語を指すために以下で使用される。例えば、0、11、000、1010、00111は、1、2、3、4及び5の長さをそれぞれ備えたパターンである。また、“空”パターンは、空単語である。
【0042】
Nビット(Nが整数)の初期データシーケンスは、最大周期の線形フィードバックシフトレジスタを含むことができる初期手段11によって生成される。
【0043】
線形フィードバックシフトレジスタは、フィードバック多項式と呼ばれる多項式によって表される、テーブル入力の線形結合が提供された有限長(レジスタ)のビットのテーブルである。各シフト上で、最高指数を備えたビットが出力され、全ての他のビットが1指数だけシフトされ、最低指数を備えたビットがシフトの前に線形結合の値を取る。
【0044】
フィードバック多項式は、最大周期の線形シフトレジスタに対応する原始多項式、例えばPが原始多項式である、Q=(x+1)Pの式の多項式にすることができる利点がある。
【0045】
生成器1の検索手段5は、検出手段13と、判断手段15と、反復手段17とを含む。
【0046】
検出手段13は、がN未満の整数である、初期データシーケンスにおけるビットの検索パターン7を検出する。判断手段15は、検出手段13によって検出される検索パターン7が属する一組の検索パターンを定義する。
【0047】
検出手段は、初期データシーケンス9上でシフトされるように適合されたウィンドウ19と、初期データシーケンス9上でウィンドウ19のシフトを制御するための第1制御手段21とを含む。
【0048】
各ウィンドウ19は、初期データシーケンス9における特定の初期位置に置かれ、特定のビットサイズを有する。例えば、初期データシーケンス9上に置かれたサイズは、N未満の整数である)のウィンドウ19は、シーケンス9のまさにビットを各シフト上に曝すためにシーケンス9上でシフトされることができるマスクである。
【0049】
判断手段15は、接続23を介して検出手段13と交信する。判断手段15は、検索パターン7に対する検索の進行に依存する動作によってビット(は、N未満の整数である)の出力パターン25を判断する。
【0050】
実際、判断手段15は、一組の検索パターン及び/又は出力パターン25を定義又は更新するための第2制御手段27を含む。
【0051】
また、反復手段17は、それぞれ接続29及び31を介して検出手段13及び判断手段15に接続される。
【0052】
従って、所定の停止条件が満たされない場合、例えば出力パターン25が丁度出力された旨の信号を判断手段15から受信した場合、反復手段17は、検出及び判断動作を再開するために検出手段13及び判断手段15に対して信号を交わすことができる。また、反復手段17は、検出手段13及び判断手段15に対して信号を交わすことによって停止条件をテストすることができる。これは、一連の出力パターン25を生成し、連続形式による疑似ランダムデータシーケンス3になる。
【0053】
また、反復手段17は、検出手段13及び判断手段15の第1又は第2制御手段21又は27に統合されうる点に留意すべきである。
【0054】
図2は、インターネット、GSM、UMTS等の種類の通信ネットワーク35を介して相互接続された少なくとも2つのエンティティを含むセキュアシステム31を示す。
【0055】
この図の例は、第2エンティティ33bへ通信ネットワーク35を介して接続された第1エンティティ33aを示す。第1エンティティ33a(それぞれ第2エンティティ33b)は、第1端末37a(それぞれ第2端末37b)と、第1符号化装置39a(それぞれ第2符号化装置39b)と、第1モデム41a(それぞれ第2モデム41b)とを含み、モデム41a及び41bは、通信ネットワーク35に対してインタフェースするための任意の装置からなる。
【0056】
各第1及び第2符号化装置39a、39bは、上述のような疑似ランダムデータシーケンス3を生成するための生成器1と、排他的OR論理ゲートとを含む。
【0057】
各符号化装置39a、39bは、ストリームの暗号化又は復号化を実行し、ビット毎にメッセージを暗号化又は復号化することにある。
【0058】
この例において、第1符号化装置39aは、暗号化動作を実行する。従って、一連の暗号化と呼ばれる疑似ランダムデータシーケンス3は、第1モデム41aによって第2エンティティ33bへその後送信される暗号化されたテキスト47を取得するために、第1端末37aによって平文で送信されたメッセージ45における対応する位置で各ビットに対して排他的ORゲート43によって結合される。故に、暗号化動作は、暗号化されたテキスト47を取得するために、ビット毎にメッセージ45の平文テキストへ一連の暗号化3を追加することにある。
【0059】
第2符号化装置39bは、平文でテキストメッセージ45を再公式化するために、第1エンティティ33aによって送信された暗号化されたテキスト47へビット毎に同一の一連の暗号化3を追加することにある復号化動作を実行する。
【0060】
故に、暗号化及び復号化動作は、同一である。
【0061】
図3から6は、疑似ランダムデータを生成する本発明による方法を示す。
【0062】
この方法は、初期データシーケンス9における検索パターンに対する検索をするための手順から疑似ランダムデータシーケンス3を生成することにある。
【0063】
従って、疑似ランダムデータシーケンスの要素の本発明に従う判断は、検索されたパターン及び検索の履歴、即ち実施された方法に依存することができる。
【0064】
図3は、本発明に従う疑似ランダムデータシーケンス3を生成するための検索手順の一例を示す。
【0065】
段階E1は、一組の検索パターンの1つであるビットの特定の検索パターン7の初期データシーケンス9における検出に関する。
【0066】
段階E2は、先行の段階E1の進行に依存する動作によるビットの出力パターン25の判断に関する。
【0067】
実際、出力パターン25の判断は、検索パターン7及び検索の履歴に依存することができ、特に初期データシーケンス9において問題のある検索パターン7を発見する前にもたらされた段階又は反復の数に依存することができる。
【0068】
検索パターン7を検出する段階E1と出力パターン25を判断する段階E2とは、一連の動作によってもたらされる。
【0069】
この一連の動作は、検索パターン7を検出するために、シフトモードを定義して初期データシーケンス9上でウィンドウ19をシフトするための生成器1の第1制御手段21によって実施される第1組の規則を含む。
【0070】
非ヌルサイズの1つ以上のウィンドウ19は一般に、初期データシーケンス9上でシフトされる。検索手順の初めにおいて、各ウィンドウ19は、初期シーケンス9上の初期位置に置かれる(例えば、それらは全て、初期シーケンス9の初めに置かれることができる)。(複数の)ウィンドウ19における(複数の)ビットは、出力パターン25を判断するために使用される。
【0071】
第1組の規則は、シフト方向、シフト振幅又はウィンドウ19をシフトする形式、例えば一部の初期データシーケンス9上で循環シフトを定義することができる。
【0072】
例えば、第1組の規則は、以下のように定義された規則rを含むことができる。
=“1ビット右へシフト”
【0073】
また、一連の動作は、初期データシーケンス9上でウィンドウ19のシフトを停止するための条件を判断する生成器1の第2制御手段27によって実施される第2組の規則を含む。
【0074】
第2組の規則は、生成器1が出力パターン25を配信する前に、特定の順番で適用されなければならない規則を含むことができる。故に、一連の出力パターン25の生成器1による配信は、疑似ランダムデータシーケンス3を形成する。
【0075】
例えば、第2組の規則は、以下のように定義された規則rを含むことができる。
=“ウィンドウ19のコンテンツが一組の検索パターン7からのパターンではない間、規則rに従ってウィンドウ19をシフト” ここでrは、第1組の規則からの規則である。
【0076】
また、この第2組の規則からのもう1つの規則は、所定の2進法に従って、及びウィンドウ19のシフト及び/又はコンテンツの関数として、1組の検索パターン7及び/又は出力パターン25の更新を管理する。
【0077】
従って、検索パターン7は、ウィンドウ19のコンテンツに依存して、又は第1及び第2組の規則を含む一連の動作の先行する実行に依存して、空、即ちパターンがないことがある。
【0078】
同様に、出力パターン25は、ウィンドウ19のコンテンツに依存して、又は第1及び第2組の規則を含む一連の動作の先行する実行に依存して、空、即ちパターンがないことがある。
【0079】
また、検索手順の段階E3は、連続によって一連の出力パターン25から疑似ランダムデータシーケンス3を形成するために、引続き先行する2つの段階E1及びE2を反復する。
【0080】
一連の動作は、所定の条件が満たされるまで反復されることができる点に留意すべきである。その条件は、それが有限である場合、初期データシーケンス9のウィンドウ19のコンテンツにすることができる。また、ユーザによって定義された条件が満たされるまで一連の動作を反復することができる。
【0081】
また、疑似ランダムデータシーケンス3の質をさらに高めるために、各実行の後に一連の動作を変更することができる。
【0082】
従って、この方法は、疑似ランダムデータシーケンス3の各出力ビットが初期ストリーム9における一つ以上のパターン7に対する一つ以上の検索に依存するように、一つ以上のウィンドウ19を用いて初期ビットストリーム(初期データシーケンス9)を走査することにある。また、検索されるべき(複数の)パターン7は、(複数の)ウィンドウ19のコンテンツ及び/又はシフトに依存することができる。
【0083】
図4から6は、本発明による方法の特定の実施形態を示す。
【0084】
これらの例において、一連の動作は、各実行の後に引続き同じ動作のままであり、ウィンドウ19は、“サイズ1”(即ち、各ウィンドウが1ビットを含む)であり、一組の検索パターン7は、1つの検索パターンを含み、(複数の)検索パターン7及び出力パターン25も、サイズ1である。
【0085】
また、ウィンドウ19のシフトの振幅は、1ユニットに等しく、即ち各ウィンドウ19は、例えば各反復上で、現在のビットから次のビットへ(即ち、左から右へ)、1ビットだけシフトされる。
【0086】
従って、各初期データシーケンス9は、連続して、即ちビット毎に読み込まれることができ、とても実行しやすい実施形態をもたらす。
【0087】
以下、Eは、検索パターン7の値を示し、は、出力パターン25の値を示し、、f及びfは、ウィンドウ19の値を示す。
【0088】
まず、(複数の)検索パターン7及び出力パターン25は、空のビットをそれらへ、即ちE←φ及びs←φへ割り当てることによって初期化され、ここでφは、空の組である。同様に、、b及びbで示された2進数又は定数は、これらの実施形態の一連の動作の各アプリケーション上で同じままである、と定義される。
【0089】
第1実施形態において、単独のウィンドウ19は、初期データシーケンス9上でシフトされる。それは、初期データシーケンス9の第1ビット上で初めに固定されることができる。
【0090】
第1実施形態の一連の動作は、以下のように定義されることができる。
・規則r1、1=“1ビット右へシフト”を第1組の規則の唯一の規則として設定
・以下の規則を第2組の規則の規則として設定
・r2、1=“検索パターンにウィンドウからのビットを置く(E←f)”
・r2、2=“r1、1に従いウィンドウを1回シフト”
・r2、3=“ウィンドウのコンテンツが検索パターンのビットEに等しい場合、その後出力パターンを更新 s←b”
・r2、4=“ウィンドウのコンテンツが検索パターンのビットEに等しくない場合、その後出力パターンを更新
【0091】
【数1】

【0092】
・r2、5=“ウィンドウのコンテンツが検索パターンではない間、規則r1、1に従いウィンドウをシフト“
・r2、6=“r1、1に従いウィンドウを1回シフト”
・規則r2、1、r2、2、r2、3、r2、4、r2、5及びr2、6をこの順序で適用
・出力パターンを出力
【0093】
実際、図4のフローチャートは、上記一連の動作の実行を示す。
【0094】
段階E11は、検索パターン7にウィンドウ19からのビットを置く。
【0095】
段階E12は、現在のビットから次のビットへ、1ビッドだけウィンドウ19をシフトする。
【0096】
段階E13は、ウィンドウ19のコンテンツを検索パターン7のそれと比較するテストである。
【0097】
段階E14は、ウィンドウ19のコンテンツが検索パターン7のそれと等しい場合、第1法則に従い出力パターン25を更新する。この例において、第1法則は、特定値を出力パターン25へ割り当てることに対応する(s←b)。
【0098】
段階E15は、ウィンドウ19のコンテンツが検索パターン7のビットEに等しくない場合、第2法則に従い出力パターン25を更新する。この例において、第2法則は、特定値及び値1の2を法とする加算に対応し、この加算の結果を出力パターン25へ割り当てる。
【0099】
【数2】

【0100】
ウィンドウ19のコンテンツが検索パターン7のビットEに等しい場合、段階E16及びE17は、次のビットへビット毎にウィンドウ19をシフトするループを形成する。
【0101】
段階E18は、現在のビットから次のビットへ、1ビットだけウィンドウ19をシフトする。
【0102】
最後に、段階E19は、生成器1から出力パターンを出力する。
【0103】
大まかに言って、一連の動作は、以下のように要約できる。初期データシーケンス9における現在のビットEは、読み込まれ、その後ビットEが発見されるまでシーケンス9上で右へシフトすることに続く。Eを発見するためのシフトが1つの指数だけであった場合、その後が出力され、さもなければ
【0104】
【数3】

【0105】
が出力される。その後、再開の前に右への1ビットのシフトがある。
【0106】
もちろん、フローチャートは、所定の条件が満たされているか否かを判断するための停止テストを含むことができる(簡略化のために図に表されていない)。
【0107】
例えば、上記段階は、ウィンドウ19が初期データシーケンス9から退くまで、疑似ランダムデータシーケンスを形成するために反復されることができる。
【0108】
図5は、第2実施形態の一連の動作の実行を示すフローチャートである。
【0109】
この図のフローチャートは、段階E24及びE25のみ、図4のそれと異なる。
【0110】
実際、段階E24において、第1法則は、特定値と検索パターン7の値Eとの2を法とする加算をもたらすことに対応し、この加算の結果を出力パターン25に割り当てる。
【0111】
【数4】

【0112】
その一方、段階E25において、第2法則は、特定値bと、検索パターン7の値Eと、値1との2を法とする加算をもたらすことに対応し、この加算の結果を出力パターン25に割り当てる。
【0113】
【数5】

【0114】
従って、第2実施形態の一連の動作は、以下のように定義されることができる。
・規則r1、1=“1ビット右へシフト”を第1組の規則の唯一の規則として設定
・以下の規則を第2組の規則の規則として設定
・r2、1=“検索パターンにウィンドウからのビットを置く(E←f)”
・r2、2=“r1、1に従い1回ウィンドウをシフト”
・r2、3=“ウィンドウのコンテンツが検索パターンのビットEに等しい場合、その後出力パターンを更新”
【0115】
【数6】

【0116】
・r2、4=“ウィンドウのコンテンツが検索パターンのビットEに等しくない場合、その後出力パターンを更新”
【0117】
【数7】

【0118】
・r2、5=“ウィンドウのコンテンツが検索パターンではない間、規則r1、1に従いウィンドウをシフト”
・r2、6=“r1、1に従い1回ウィンドウをシフト”
・規則r2、1、r2、2、r2、3、r2、4、r2、5及びr2、6をこの順序で適用
・出力パターンを出力
【0119】
大まかに言って、第2実施形態の一連の動作は、以下のように要約できる。初期データシーケンス9における現在のビットEは、読み込まれ、その後ビットEが発見されるまでシーケンス上を右側へシフトすることに続く。Eを発見するためのシフトが1つの指数だけであった場合、その後
【0120】
【数8】

【0121】
が出力され、さもなければ
【0122】
【数9】

【0123】
が出力される。その後、再開の前に1ビットの右側へのシフトに続く。
【0124】
図6は、第3実施形態の一連の動作を示すフローチャートである。
【0125】
この第3実施形態において、2つのウィンドウ19は、初期データシーケンス上でシフトされる。初めに、第1ウィンドウは、初期データシーケンス9の第1ビット上で固定され、初めに、第2ウィンドウは、そのシーケンスの第2ビット上で固定される。そのような状況下で、2つの定数が定義され、第1ビットはbを示し、第2ビットはbを示す。例えば、定数b及びbは、同一値0を有する。
【0126】
段階E31は、検索パターン7に第1ウィンドウからのビットを置く。
【0127】
段階E32は、現在のビットから次のビットへ、1ビッドだけ第1ウィンドウをシフトする。
【0128】
段階E33は、第1ウィンドウのコンテンツを検索パターン7のそれと比較するテストである。
【0129】
段階E34は、第1ウィンドウのコンテンツが検索パターン7の値Eに等しくない場合、第1特定値bと検索パターンの値Eとの2を法とする加算の結果をそれに割り当てることによって、出力パターン25を更新する。
【0130】
【数10】

【0131】
段階E35は、第1ウィンドウのコンテンツが検索パターンの値Eに等しくない場合、第1特定値bと、検索パターン7の値Eと、値1との2を法とする加算の結果をそれに割り当てることによって、出力パターン25を更新する。
【0132】
【数11】

【0133】
段階E36及びE37は、第1ウィンドウのコンテンツが検索パターン7のビットに等しくない場合、次のビットへビット毎に第1ウィンドウをシフトするループを形成する。
【0134】
段階E38は、現在のビットから次のビットへ、1ビッドだけ第1ウィンドウをシフトする。
【0135】
段階E39は、検索パターン7に第2ウィンドウからのビットを置く。
【0136】
段階E40は、現在のビットから次のビットへ、1ビットだけ第2ウィンドウをシフトする。
【0137】
段階E41は、第2ウィンドウのコンテンツを検索パターン7のそれと比較するテストである。
【0138】
段階E42は、第2ウィンドウのコンテンツが検索パターン7の値に等しい場合、第2特定値bと、出力パターン25の現在の値と、検索パターン7の値Eとの2を法とする加算の結果をそれに割り当てることによって、出力パターン25を更新する。
【0139】
【数12】

【0140】
段階E43は、第2ウィンドウのコンテンツfが検索パターン7の値に等しくない場合、出力パターン25の現在の値と、前記第2特定値bと、検索パターン7の値Eと、値1との2を法とする加算の結果をそれに割り当てることによって、出力パターン25を更新する。
【0141】
【数13】

【0142】
段階E44及びE45は、第2ウィンドウのコンテンツが検索パターンのビットに等しくない場合、次のビットへビット毎に第2ウィンドウをシフトするループを形成する。
【0143】
段階E46は、現在のビットから次のビットへ、1ビットだけ第2ウィンドウをシフトする。
【0144】
最後に、段階E47は、生成器1から出力パターン25を出力する。
【0145】
従って、第3実施形態の一連の動作は、以下のように定義できる。
・規則r1、1=“1ビット右へシフト”を第1組の規則の唯一の規則として設定
・以下の規則を第2組の規則の規則として設定
・r2、1=“検索パターンにウィンドウからのビットfを置く(E←f)”
・r2、2=“r1、1に従い1回第1ウィンドウをシフト”
・r2、3=“第1ウィンドウのコンテンツfが検索パターンのビットEに等しい場合、その後
【0146】
【数14】

【0147】
を更新“
・r2、4=“第1ウィンドウのコンテンツが検索パターンのビットEに等しくない場合、その後出力パターン
【0148】
【数15】

【0149】
を更新”
【0150】
・r2、5=“第1ウィンドウのコンテンツが検索パターンのビットEに等しくない間、規則r1、1に従い第1ウィンドウをシフト”
・r2、6=“r1、1に従い1回第1ウィンドウをシフト”
・r2、7=“検索パターンの値を第2ウィンドウからのビットfに置き換える“
・r2、8=“r1、1に従い1回第2ウィンドウをシフト”
・r2、9=“第2ウィンドウのコンテンツfが検索パターンのビットEに等しい場合、その後出力パターンを更新”
【0151】
【数16】

【0152】
・r2、10=“第2ウィンドウのコンテンツfが検索パターンのビットEに等しくない場合、その後出力パターンを更新”
【0153】
【数17】

【0154】
・r2、11=“第2ウィンドウのコンテンツfが検索パターンのビットEに等しくない場合、r1、1に従い第2ウィンドウをシフト”
・r2、12=“r1、1に従い1回第2ウィンドウをシフト“
・規則r2、1をr2、12へこの順序で適用する。
・出力パターンを出力
【0155】
大まかに言って、第3実施形態は、第1に、第1ウィンドウが初期データシーケンス9の第1ビット上で初めに位置決めされる第2実施形態と、第2に、第2ウィンドウが初期データシーケンス9の第2ビット上で初めに位置決めされる第2実施形態とを並行して実行することによって得られた出力をビット毎に追加することになる。
【0156】
これらの実施形態は、実行するのが簡単である。また、例えば初期データシーケンス9を提供する初期手段11が線形フィードバックシフトレジスタである場合、出力ビット数及び演算されたビット数間のそれらの割合は、平均1/3である。
【0157】
従って、本発明による方法は、対称ストリーム暗号化に用いることができる良好な品質の疑似ランダムビットシーケンスを生成する。
【0158】
実際、疑似ランダムデータシーケンス3の各ビットは、暗号化されたデータシーケンス47を形成するために、2を法とする加算によって暗号化されるべきメッセージ45のデータシーケンスの対応するビットに結合されることができる(図2を参照)。
【図面の簡単な説明】
【0159】
【図1】図1は、本発明による疑似ランダムデータシーケンス生成器の一例の概略図である。
【図2】図2は、図1からの生成器をふくむセキュアシステムを示す図である。
【図3】図3は、本発明に従う疑似ランダムデータシーケンスを生成するための検索手順の一例を示す図である。
【図4】図4は、本発明による方法の特定実施形態を示す図である。
【図5】図5は、本発明による方法の特定実施形態を示す図である。
【図6】図6は、本発明による方法の特定実施形態を示す図である。
【図7】図7は、従来技術の生成器の線図である。
【符号の説明】
【0160】
E1 検索パターンを検出
E2 出力パターンを検出
E3 最後の2つの段階を反復

【特許請求の範囲】
【請求項1】
疑似ランダムデータシーケンス(3)を生成する方法であって、
前記疑似ランダムデータシーケンス(3)は、Nビットの初期データシーケンス(9)における検索パターン(7)に対する検索をするための手順によって生成され、
前記検索手順は、
・一組の検索パターンの1つであるビットの特定の検索パターン(7)を前記初期データシーケンス(9)において検出する段階(E1)と、
・先行する段階(E1)の進行に依存する動作によってビットの出力パターン(25)を判断する段階(E2)と、
・一連の出力パターン(25)から疑似ランダムデータシーケンス(3)を連続して形成するために先行する段階(E1、E2)を反復する段階と
を具備することを特徴とする方法。
【請求項2】
前記検索パターン(7)を検出する段階(E1)と前記出力パターン(25)を判断する段階(E2)とは、前記検索パターン(7)を検出するために前記初期データシーケンス(9)上でウィンドウ(19)をシフトするためのシフトモードを定義するための第1組の規則を含む一連の動作によってもたらされ、前記ウィンドウ(19)は、前記初期データシーケンス(9)上で特定の初期位置と特定のビットサイズとを有することを特徴とする請求項1に記載の方法。
【請求項3】
一連の動作は、前記初期データシーケンス(9)上で前記ウィンドウ(19)のシフトを停止するための条件を判断する第2組の規則をさらに含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記第2組の規則からの規則は、前記ウィンドウのシフト及び/又はコンテンツの関数として、前記一組の検索パターン及び/又は前記出力パターンの更新を管理することを特徴とする請求項3に記載の方法。
【請求項5】
前記一連の動作は、所定の条件が満たされるまで反復されることを特徴とする請求項2及び3の何れか1項に記載の方法。
【請求項6】
一連の動作は、各実行の後に変更されることを特徴とする請求項2及び3の何れか1項に記載の方法。
【請求項7】
一連の動作は、1ビットの検索パターン(7)を検出するために、及び1ビットの出力パターン(25)を判断するために、各実行の後に引続き同じ動作のままであり、ビット毎に連続して前記初期データシーケンス(9)上で1ビットのウィンドウ(19)をシフトすることを特徴とする請求項2及び3の何れか1項に記載の方法。
【請求項8】
一連の動作は、
・検索パターンにウィンドウからのビットを置く段階と、
・現在のビットから次のビットへ、ビット毎にウィンドウをシフトする段階と、
・ウィンドウのコンテンツが検索パターンのそれと等しい場合、第1法則に従い出力パターンを更新する段階と、
・ウィンドウのコンテンツが検索パターンのビットと等しくない場合、第2法則に従い出力パターンを更新する段階と、
・ウィンドウのコンテンツが検索パターンのビットと等しくない場合、次のビットへビット毎にウィンドウをシフトする段階と、
・現在のビットから次のビットへ、1ビットだけウィンドウをシフトする段階と、
・出力パターンを出力する段階と
を具備することを特徴とする請求項7に記載の方法。
【請求項9】
第1法則は、出力パターンに特定値を割り当て、第2法則は、前記特定値及び値1の2を法とする加算をもたらし、出力パターンに前記加算の結果を割り当てることを特徴とする請求項8に記載の方法。
【請求項10】
第1法則は、特定値及び検索パターンの値Eの2を法とする加算をもたらし、出力パターンに前記加算の結果を割り当て、第2法則は、前記特定値と、検索パターンの値Eと、値1との2を法とする加算をもたらし、出力パターンに前記加算の結果を割り当てることを特徴とする請求項8に記載の方法。
【請求項11】
一連の動作は、
・検索パターンに第1ウィンドウからのビットを置く段階と、
・現在のビットから次のビットへ、1ビットだけ第1ウィンドウをシフトする段階と、
・第1ウィンドウのコンテンツが検索パターンの値に等しい場合、第1特定値b及び検索パターンの値Eの2を法とする加算の結果をそれに割り当てることによって出力パターンを更新する段階と、
・第1ウィンドウのコンテンツが検索パターンの値Eに等しくない場合、前記第1特定値bと、検索パターンの値Eと、値1との2を法とする加算の結果をそれに割り当てることによって出力パターンを更新する段階と、
・第1ウィンドウのコンテンツが検索パターンのビットEに等しくない場合、次のビットへビット毎に第1ウィンドウをシフトする段階と、
・現在のビットから次のビットへ、1ビットだけ第1ウィンドウをシフトする段階と、
・第2ウィンドウからのビットによって検索パターンの値を置き換える段階と、
・現在のビットから次のビットへ、1ビットだけ第2ウィンドウをシフトする段階と、
・第2ウィンドウのコンテンツが検索パターンの値に等しい場合、第2特定値bと、出力パターンの現在の値と、検索パターンの値Eとの2を法とする加算の結果をそれに割り当てることによって出力パターンを更新する段階と、
・第2ウィンドウのコンテンツが検索パターンの値に等しくない場合、出力パターンの現在の値と、前記第2特定値bと、検索パターンの値Eと、値1との2を法とする加算の結果をそれに割り当てることによって出力パターンを更新する段階と、
・第2ウィンドウのコンテンツが検索パターンの値に等しくない場合、次のビットへビット毎に第2ウィンドウをシフトする段階と、
・現在のビットから次のビットへ、1ビットだけ第2ウィンドウをシフトする段階と、
・出力パターンを出力する段階と
を具備することを特徴とする請求項7に記載の方法。
【請求項12】
前記疑似ランダムデータシーケンスの各ビットは、暗号化されたデータシーケンスを形成するために、2を法とする加算によって暗号化されるべきメッセージのデータシーケンスの対応するビットに結合されることを特徴とする請求項1から11の何れか1項に記載の方法。
【請求項13】
疑似ランダムデータシーケンス(3)の生成器であって、Nビットの初期データシーケンス(9)における検索パターン(7)に対する検索のための検索手段(5)を含み、
前記検索手段(5)は、
・一組の検索パターンの1つであるビットの特定の検索パターンを前記初期データシーケンス(9)において検出するための検出手段(13)と、
・前記少なくとも1つの検索パターン(7)の検出の進行に依存する動作に従いビットの出力パターン(25)を判断するための判断手段(15)と、
・一連の出力パターン(25)から疑似ランダムデータシーケンス(3)を生成するための反復手段(17)と
を具備することを特徴とする生成器。
【請求項14】
検出手段(13)は、前記初期データシーケンス(9)上でシフトされるよう適合されたウィンドウ(19)と、前記初期データシーケンス(9)上で前記ウィンドウのシフトを制御するための第1制御手段(21)とを含むことを特徴とする請求項13に記載の生成器。
【請求項15】
判断手段(15)は、前記一組の検索パターン及び/又は前記出力パターンを更新するための第2制御手段(27)を含むことを特徴とする請求項13に記載の生成器。
【請求項16】
Nビットの初期データシーケンスを生成するための初期手段(11)をさらに含むことを特徴とする請求項13から15の何れか1項に記載の生成器。
【請求項17】
初期手段(11)は、線形フィードバックシフトレジスタを含むことを特徴とする請求項16に記載の生成器。
【請求項18】
請求項13から17の何れか1項に記載の生成器(1)をさらに含むことを特徴とする、排他的OR論理ゲート(43)を含む符号化装置(39)。
【請求項19】
少なくとも2つのエンティティ(33a、33b)の各々は、請求項18に記載の符号化装置(39a、39b)を含むことを特徴とする、前記少なくとも2つのエンティティ(33a、33b)を含むセキュアシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2008−508627(P2008−508627A)
【公表日】平成20年3月21日(2008.3.21)
【国際特許分類】
【出願番号】特願2007−524360(P2007−524360)
【出願日】平成16年8月2日(2004.8.2)
【国際出願番号】PCT/FR2004/002070
【国際公開番号】WO2006/024705
【国際公開日】平成18年3月9日(2006.3.9)
【出願人】(591034154)フランス テレコム (290)
【出願人】(507035020)ユニヴェルシテ・ドゥ・カン・バッス・ノルマンディ (1)
【Fターム(参考)】