(57)【特許請求の範囲】
【請求項１】
原始既約多項式を特性多項式とし、クロック入力に同期して前記原始既約多項式に応じたＬ個のレジスタ値を出力するレジスタ値出力手段と、前記Ｌ個のレジスタ値を線形結合し、互いに線形独立なＬより小なるｎビットの線形結合ベクトル値を出力する線形変換手段と、前記生成されたｎビットの線形結合ベクトル値を入力し、ｎビットのバイナリベクトル全単射写像を出力するバイナリベクトル全単射写像生成手段と、を備えることを特徴とする擬似乱数生成システム。
【請求項２】
更に、暗号鍵を保持する暗号鍵保持手段を備えると共に、該暗号鍵保持手段より供給される暗号鍵を用いて前記ｎビットの線形結合ベクトル値を暗号化して前記ｎビットのバイナリベクトル全単射写像を得る暗号化手段を前記バイナリベクトル全単射写像生成手段として用いたことにより、前記バイナリベクトル全単射写像は、システム内部において入力から出力を生成することが容易で、且つ、システム外部において出力から入力を復元することが困難であることを特徴とする請求項１に記載の擬似乱数生成システム。
【請求項３】
前記暗号化手段は、共通鍵暗号アルゴリズムであるＤＥＳを暗号方式として用いたものであることを特徴とする請求項２に記載の擬似乱数生成システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報セキュリティの分野において、暗号通信やデジタル署名等で利用される擬似乱数を生成する擬似乱数生成システム及び方法に関する。
【０００２】
【従来の技術】
従来より、伝送情報を関係者以外の第三者に知られないようにするため、伝送情報を暗号化する暗号化技術や、伝送情報が改ざん、偽造されないことを保証するためにデジタル署名技術が用いられている。また、例えば端末装置からホスト装置にアクセスするユーザの正当性を確認可能とするために、個々のユーザに認証パスワードを割り当てておき、アクセス時にその認証パスワードの入力を要求することが一般的に行われている。これら暗号化技術に使用される暗号鍵、デジタル署名技術に使用される乱数及び認証パスワードは、一般に擬似乱数から生成されることが多い。
【０００３】
この擬似乱数には、次のような性質が要求される。
（１）生成される擬似乱数の分布に偏りが少ない。
（２）生成される擬似乱数の周期が大きい。
（３）生成された擬似乱数から次に生成される擬似乱数を推定することが困難である。
【０００４】
擬似乱数の生成方法として、ブロック暗号方式を用いた方法がある。ブロック暗号方式は、共通鍵暗号方式の１つであり、平文を固定長のブロックに分解し、ブロック単位で暗号化を行う方式である。代表的なブロック暗号方式としては、例えば、ＤＥＳ（Data Encryption Standard）が知られている。
【０００５】
図４に、ブロック暗号方式を用いた代表的な擬似乱数生成方法であるＯＦＢ（Output FeedBack）モードを用いた擬似乱数生成システムを示す。同図に示す擬似乱数生成システム４００は、ｎビットの平文をｎビットの暗号文に変換するブロック暗号化関数ｆを用いており、Ｎ個のｎビットの擬似乱数を生成する。
【０００６】
ここで、暗号鍵をＫ、ｎビットの擬似乱数のシードをＳとすると、ｎビットの第１の擬似乱数z1は、ｎビットのシードＳを暗号鍵Ｋによって暗号化することにより生成される。すなわち、ブロック暗号化部４００−１は、ｎビットのシードＳと暗号鍵Ｋを入力し、ｎビットの第１の擬似乱数z1を出力する。
【０００７】
また、ｎビットの第２の擬似乱数ｚ2は、ｎビットの第１の擬似乱数z1を暗号鍵Ｋによって暗号化することにより生成される。すなわち、ブロック暗号化部４００−２は、ｎビットの第１の擬似乱数z1と暗号鍵Ｋを入力し、ｎビットの第２の擬似乱数ｚ2を出力する。
【０００８】
同様に、ｎビットの第ｉ（３≦ｉ≦Ｎ）の擬似乱数ｚiは、ｎビットの第ｉ−１の擬似乱数ｚi-1を暗号鍵Ｋによって暗号化することにより生成される。すなわち、ブロック暗号化部４００−ｉは、ｎビットの第ｉ−１の擬似乱数ｚi-1と暗号鍵Ｋを入力し、ｎビットの第ｉの擬似乱数ｚiを出力する。
【０００９】
一方、図５に、ブロック暗号方式を用いた他の擬似乱数生成方法であるカウンタモードを用いた擬似乱数生成システムを示す。同図に示す擬似乱数生成システム５００は、図４に示した擬似乱数生成システム４００と同様にｎビットの平文をｎビットの暗号文に変換するブロック暗号化関数ｆを用いており、Ｎ個のｎビットの擬似乱数を生成する。
【００１０】
ここで、暗号鍵をＫ、ｎビットの擬似乱数のシードをＳとすると、ｎビットの第１の擬似乱数z1は、ｎビットのシードＳを暗号鍵Ｋによって暗号化することにより生成される。すなわち、ブロック暗号化部５００−１は、ｎビットのシードＳと暗号鍵Ｋを入力し、ｎビットの第１の擬似乱数z1を出力する。
【００１１】
また、ｎビットの第２の擬似乱数ｚ2は、シードＳを２進表現された非負の整数とみなし、このシードＳに１を加えた値Ｓ＋１を暗号鍵Ｋによって暗号化することにより生成される。すなわち、ブロック暗号化部５００−２は、シードＳに１を加えた値Ｓ＋１と暗号鍵Ｋを入力し、ｎビットの第２の擬似乱数ｚ2を出力する。但し、Ｓ＋１が２のｎ乗になった場合には０とする。
【００１２】
同様に、ｎビットの第ｉ（３≦ｉ≦Ｎ）の擬似乱数ｚiは、シードＳを２進表現された非負の整数とみなし、このシードＳにｉ−１を加えた値Ｓ＋ｉ−１を暗号鍵Ｋによって暗号化することにより生成される。すなわち、ブロック暗号化部５００−ｉは、シードＳにｉ−１を加えた値Ｓ＋ｉ−１と暗号鍵Ｋを入力し、ｎビットの第ｉの擬似乱数ｚiを出力する。但し、Ｓ＋ｉ−１が２のｎ乗以上になった場合にはＳ＋ｉ−１を２のｎ乗で割った余りとして置き換えられる。
【００１３】
【発明が解決しようとする課題】
しかしながら、これらの擬似乱数生成方法では、上記３つの性質を満足する擬似乱数を生成することは容易ではない。すなわち、ＯＦＢモードを用いた擬似乱数生成方法では、生成される擬似乱数の周期が暗号鍵Ｋによって変化し、擬似乱数の周期が大きくなることを保証できず、分布に偏りが生じることがある。
【００１４】
また、カウンタモードを用いた擬似乱数生成方法では、周期は常に２のｎ乗となるが、ｎが十分な大きさでない場合には、擬似乱数の周期が大きくならない。さらに、一度生成された擬似乱数が２のｎ乗の周期の間は、再び出現しないという性質があるため、生成される擬似乱数が増加するにつれて、次に生成される擬似乱数が限定されることになり、次に生成される擬似乱数を推定する手がかりを与えてしまうという問題があった。
【００１５】
本発明は、上記従来の問題点を解決するものであり、その目的は、次に生成される擬似乱数を推定することが困難であり、且つ周期が大きく、分布に偏りの少ない擬似乱数生成システム及び方法を提供することにある。
【００１６】
【課題を解決するための手段】
上記目的を達成するため、本発明の擬似乱数生成システムは、原始既約多項式を特性多項式とし、クロック入力に同期して前記原始既約多項式に応じたＬ個のレジスタ値を出力するレジスタ値出力手段と、前記Ｌ個のレジスタ値を線形結合し、互いに線形独立なＬより小なるｎビットの線形結合ベクトル値を出力する線形変換手段と、前記生成されたｎビットの線形結合ベクトル値を入力し、ｎビットのバイナリベクトル全単射写像を出力するバイナリベクトル全単射写像生成手段とを備える。
【００１７】
また、本発明の擬似乱数生成システムは、更に、暗号鍵を保持する暗号鍵保持手段を備えると共に、該暗号鍵保持手段より供給される暗号鍵を用いて前記ｎビットの線形結合ベクトル値を暗号化して前記ｎビットのバイナリベクトル全単射写像を得る暗号化手段を前記バイナリベクトル全単射写像生成手段として用いたことを特徴とするものである。
【００１８】
前記暗号化手段は、共通鍵暗号アルゴリズムであるＤＥＳを暗号方式として用いたものであることを特徴とするものである。
【００１９】
【発明の実施の形態】
以下、図示した一実施形態に基いて本発明を詳細に説明する。図１に本発明に係る擬似乱数生成システムの概略構成の一例を示す。同図に示す擬似乱数生成システム１００は、Ｌ段の線形フィードバックシフトレジスタ（ＬＦＳＲ）１０２、線形変換部１０４、全単射写像生成部１０６を備えて構成される。以下、便宜上ベクトル列を整数値とみなせるものとして説明する。例えばｎビットの０の連を”０”、ｎビットの１の連を”２n−１”のように表す。
【００２０】
Ｌ段の線形フィードバックシフトレジスタ１０２は、原始既約多項式を特性多項式としており、Ｌ個のレジスタ値の全てを０に設定しない限り、外部からのクロック入力に同期して、その状態を遷移させることにより、Ｌ個のレジスタ値（Ｌビットのビット列）を出力する。
【００２１】
Ｌ個のレジスタ値は、特性多項式が原始既約多項式であるから、周期が２L−１であり、その周期において、１から２L−１の状態を１回ずつとる。
【００２２】
線形変換部１０４は、線形フィードバックレジスタ１０２からのＬ個のレジスタ値を線形結合することにより、互いに線形独立なＬより小なるｎビットの線形結合ベクトル値（ビット列）を出力する。
【００２３】
上述の通り、線形フィードバックレジスタ１０２が出力するＬ個のレジスタ値は、周期が２L−１であり、その周期において、１から２L−１の状態を１回ずつとるから、線形変換部１０４が出力するｎビットの線形結合ベクトル値は、周期が２L−１であり、その周期において、０となる場合を２L-n−１回、０以外の１から２n−１となる場合を２L-n回とる。
【００２４】
全単射写像生成部１０６は、線形変換部１０４からのｎビットの線形結合ベクトル値を入力し、ｎビットのバイナリベクトル全単射写像ｆを擬似乱数として出力する。ここで、ｎビットの線形結合ベクトル値ｇと、ｎビットのバイナリベクトル全単射写像ｆは、ｆ1 ≠ｆ2であるならばｇ1 ≠ｇ2となる関係がある。すなわち、バイナリベクトル全単射写像ｆが異なっていれば、元の線形結合ベクトル値ｇも異なる値になるという関係がある。また、システム内部において、バイナリベクトル全単射写像ｆを導出することは容易であるが、システム外部において、バイナリベクトル全単射写像ｆから元の線形結合ベクトル値ｇを導出することが困難であるという性質を有する。
【００２５】
また、バイナリベクトル全単射写像ｆは全単射写像であるから、周期は入力される線形結合ベクトル値の周期２L−１に一致し、その１周期において、ある特定値をとる場合が２L-n−１回、それ以外の値となる場合が２L-n回となる。
【００２６】
従って、Ｌを大きくすることにより、擬似乱数の周期を大きくすることができるとともに、その分布の偏りをなくすことができる。また、バイナリベクトル全単射写像ｆは、システム外部において、バイナリベクトル全単射写像ｆから元の線形結合ベクトル値を導出することが困難であるという性質を有するから、システム外部において、擬似乱数であるバイナリベクトル全単射写像ｆから次に生成される擬似乱数を推定することは困難である。
【００２７】
図２に本発明に係る擬似乱数生成システムの詳細構成の一例を示す。同図に示す擬似乱数生成システム２００は、図１に示した概略構成をより具体化したものであり、１２７段の線形フィードバックシフトレジスタ（ＬＦＳＲ）２０２、ビット抽出部２０４、暗号化部２０６を備える。
【００２８】
ここで、Ｌ段の線形フィードバックシフトレジスタは、例えば図３に示すように、Ｌ−１個の論理積素子３０２−１〜３０２−Ｌ−１、Ｌ−１個の排他的論理和素子３０４−１〜３０４−Ｌ−１、Ｌ個のＤフリップフロップ３０６−１〜３０６−Ｌを備えて構成される。
【００２９】
入力端子ｃ1〜ｃL-1はバイナリ固定値を設定するためのものである。出力端子ｘ1〜ｘLはＤフリップフロップ３０６−１〜３０６−Ｌの値が出力される。本回路においては、Ｌ個のＤフリップフロップ３０６−１〜３０６−Ｌの初期値として少なくとも１つを１に設定している場合に、クロック端子３０８にクロックが入力される毎に、その状態を遷移させる。この際、各Ｄフリップフロップ３０６−１〜３０６−Ｌの値が再び初期値に戻るまでに要したクロック数を周期と呼ぶ。この周期は、入力端子ｃ1〜ｃLに設定される値を変えることにより変化させることができる。特に、下記のＧＦ（２）上の特性方程式
Ｃ（ｘ）＝Ｃ0＋Ｃ1ｘ＋Ｃ2ｘ2＋・・・・ＣL-1ｘL-1＋ＣLｘL,(c0=1)
がＧＦ（２）上既約且つ原始的であるとき、その周期は２L−１であり最大になることが知られている。また、２L−１が素数である場合には、上記特性方程式がＧＦ（２）上既約且つ原始的であれば必ず原始的となり、その周期は２L−１であり最大になる。
【００３０】
再び図２に戻って説明する。線形フィードバックシフトレジスタ２０２から出力される１２７ビットのビット列は、ビット抽出部２０４に入力される。ビット抽出部２０４は、図１に示した線形変換部１０４に対応するものであり、入力される１２７ビットのビット列から６４ビットを抽出する。この６４ビットのビット列は、線形フィードバックシフトレジスタ２０２の出力の線形結合の一例であり、互いに線形独立になっている。
【００３１】
暗号化部２０６は、図１に示した全単射写像生成部１０６に対応するものであり、共通鍵暗号アルゴリズムであるＤＥＳにより、入力される６４ビットのビット列を暗号化する。具体的には、暗号化部２０６は、５６ビットの暗号鍵を用いて、入力される６４ビットのビット列を暗号化し、６４ビットの擬似乱数を出力する。共通鍵暗号アルゴリズムであるＤＥＳを用いることにより、復号の一意性が保証され、また、暗号鍵を知ることなく、暗号化後のデータから暗号化される前のデータを復元することは困難になる。したがって、この暗号化部２０６は、鍵をシステム内に秘密裏に保持しておけば、システム内部において入力から出力を生成するのは容易で、システム外部において出力から入力を復元するのが困難であるバイナリベクトル全単射写像ｆを実現するものであるといえる。
【００３２】
このように、擬似乱数生成システム２００では、線形フィードバックシフトレジスタ２０２にクロックが入力される毎に該線形フィードバックシフトレジスタ２０２から１２７ビットのビット列が出力され、ビット抽出部２０４により、この１２７ビットのビット列から６４ビットが抽出され、暗号化部２０６により、６４ビットのビット列が暗号化されることにより、６４ビットの擬似乱数が生成されることになる。
【００３３】
以上、本発明の一実施形態を図面に沿って説明した。しかしながら本発明は前記実施形態に示した事項に限定されず、特許請求の範囲の記載に基づいてその変更、改良等が可能であることは明らかである。
【００３４】
【発明の効果】
以上の如く本発明によれば、次に生成される擬似乱数を推定することが困難であり、且つ周期が大きく、分布に偏りの少ない擬似乱数を生成することが可能となる。
【図面の簡単な説明】
【図１】本発明に係る擬似乱数生成システムの概略構成の一例を示す図である。
【図２】本発明に係る擬似乱数生成システムの詳細構成の一例を示す図である。
【図３】線形フィードバックシフトレジスタの構成の一例を示す図である。
【図４】ブロック暗号のＯＦＢモードを用いた擬似乱数生成システムの構成の一例を示す図である。
【図５】ブロック暗号のカウンタモードを用いた擬似乱数生成システムのこう製の一例を示す図である。
【符号の説明】
１００  擬似乱数生成システム
１０２  線形フィードバックシフトレジスタ
１０４  線形変換部
１０６  全単射写像生成部
２００  擬似乱数生成システム
２０２  線形フィードバックシフトレジスタ
２０４  ビット抽出部
２０６  暗号化部
３０２−１〜３０２−Ｌ−１  論理積素子
３０４−１〜３０４−Ｌ−１  排他的論理和素子
３０６−１〜３０６−Ｌ  Ｄフリップフロップ
【図１】
0004470135.tif 000002
【図２】
0004470135.tif 000003
【図３】
0004470135.tif 000004
【図４】
0004470135.tif 000005
【図５】
0004470135.tif 000006