(57)【要約】【課題】擬似乱数列のビット数を、ロジック規模を増大させることなく増加させること。【解決手段】擬似乱数生成装置１は、直列に接続されたＳ段（Ｓは２以上の整数）の擬似乱数生成回路３０と、それら擬似乱数生成回路３０に接続された制御回路４０とを備える。擬似乱数生成回路３０の各々は、Ｎビット（Ｎは２以上の整数）の擬似乱数データを生成する。制御回路４０は、Ｓ段の擬似乱数生成回路３０のそれぞれから擬似乱数データ（Ｘ１〜Ｘ４）を受け取り、受け取ったＳ個の擬似乱数データのうち任意の擬似乱数データの組み合わせを擬似乱数列ＰＲとして出力する。【選択図】図１
2010002959.tif 000002
【特許請求の範囲】
【請求項１】
直列に接続されたＳ段（Ｓは２以上の整数）の擬似乱数生成回路と、
前記Ｓ段の擬似乱数生成回路に接続された制御回路と
を具備し、
前記Ｓ段の擬似乱数生成回路の各々は、Ｎビット（Ｎは２以上の整数）の擬似乱数データを生成し、
前記制御回路は、前記Ｓ段の擬似乱数生成回路のそれぞれから前記擬似乱数データを受け取り、前記受け取ったＳ個の擬似乱数データのうち任意の擬似乱数データの組み合わせを擬似乱数列として出力する
擬似乱数生成装置。
【請求項２】
請求項１に記載の擬似乱数生成装置であって、
前記制御回路は、
前記Ｓ個の擬似乱数データに基づいてセレクト信号を生成するセレクト信号生成回路と、
前記セレクト信号に応じて前記Ｓ個の擬似乱数データから擬似乱数データを選択し、前記選択された擬似乱数データの組み合わせを前記擬似乱数列として出力するセレクタと
を備える
擬似乱数生成装置。
【請求項３】
請求項２に記載の擬似乱数生成装置であって、
前記セレクト信号生成回路は、前記Ｓ個の擬似乱数データのそれぞれを受け取るＳ個のＥＸＯＲ回路を備え、
前記Ｓ個のＥＸＯＲ回路の各々は、前記受け取った擬似乱数データのＮビットの排他的論理和を出力し、
前記セレクト信号は、前記Ｓ個のＥＸＯＲ回路のそれぞれからの出力から構成されるＳビットの信号である
擬似乱数生成装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の擬似乱数生成装置であって、
前記Ｓ段のうち初段の擬似乱数生成回路に接続されたデータ生成回路を更に具備し、
前記Ｓ段の擬似乱数生成回路の各々は、
Ｎビットの入力データが入力される入力端子と、
Ｎビットレジスタと、
前記Ｎビットレジスタの出力から入力へのフィードバック経路に設けられ、前記入力データを用いて前記Ｎビットレジスタからの出力データを変調することによって、前記Ｎビットレジスタに入力されるレジスタ入力データを生成する変調回路と、
前記ＮビットレジスタからのＮビットの出力データが前記擬似乱数データとして出力される出力端子と
を備え、
前記データ生成回路は、複数のクロック信号のそれぞれのカウント値に基づいてＮビットの乱数データを生成し、前記乱数データを前記初段の擬似乱数生成回路に対する前記入力データとして出力する
擬似乱数生成装置。
【請求項５】
請求項４に記載の擬似乱数生成装置であって、
前記データ生成回路は、
第１クロック信号をカウントする第１のＮビットカウンタと、
第２クロック信号をカウントする第２のＮビットカウンタと、
前記第１のＮビットカウンタによる第１カウント値と前記第２のＮビットカウンタによる第２カウント値との排他的論理和を前記乱数データとして生成する第１ＥＸＯＲ回路と
を有する
擬似乱数生成装置。
【請求項６】
請求項５に記載の擬似乱数生成装置であって、
前記第１クロック信号と前記第２クロック信号とは、非同期であり、異なる周波数を有する
擬似乱数生成装置。
【請求項７】
請求項５又は６に記載の擬似乱数生成装置であって、
前記データ生成回路は、更に、第３クロック信号と第４クロック信号との排他的論理和を前記第２クロック信号として出力する第２ＥＸＯＲ回路を有する
擬似乱数生成装置。
【請求項８】
請求項４乃至７のいずれか一項に記載の擬似乱数生成装置であって、
前記変調回路は、前記Ｎビットレジスタの出力データと前記入力データとの排他的論理和を出力する第３ＥＸＯＲ回路を有し、
前記レジスタ入力データは、前記第３ＥＸＯＲ回路の出力データから生成される
擬似乱数生成装置。
【請求項９】
請求項８に記載の擬似乱数生成装置であって、
前記変調回路は、前記第３ＥＸＯＲ回路の出力データのうち１ビットを置換ビットで置換することによって前記レジスタ入力データを生成する置換回路を更に有する
擬似乱数生成装置。
【請求項１０】
請求項９に記載の擬似乱数生成装置であって、
前記変調回路は、
前記Ｎビットレジスタの出力データと前記入力データとの論理積を算出することによって置換データを生成するＡＮＤ回路と、
前記置換データのそれぞれのビットの排他的論理和を前記置換ビットとして生成する第４ＥＸＯＲ回路と
を更に有する
擬似乱数生成装置。
【請求項１１】
請求項４乃至１０のいずれか一項に記載の擬似乱数生成装置であって、
前記Ｓ段の擬似乱数生成回路において、ある擬似乱数生成回路の前記出力端子は、次段の擬似乱数生成回路の前記入力端子に直接接続された
擬似乱数生成装置。
【請求項１２】
請求項４乃至１０のいずれか一項に記載の擬似乱数生成装置であって、
前記Ｓ段の擬似乱数生成回路において、ある擬似乱数生成回路の前記出力端子は、第５ＥＸＯＲ回路を介して、次段の擬似乱数生成回路の前記入力端子に接続され、
前記第５ＥＸＯＲ回路は、前記乱数データと前記ある擬似乱数生成回路からの出力データとの排他的論理和を、前記次段の擬似乱数生成回路の前記入力端子に出力する
擬似乱数生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、擬似乱数（pseudo-random number）を生成するための技術に関する。
【背景技術】
【０００２】
従来より、擬似乱数は、暗号や認証などに利用されている。擬似乱数は、例えば線形フィードバックシフトレジスタ（LFSR: Linear Feedback Shift Register）を用いることにより生成することができる。ＬＦＳＲは直列に接続された複数のレジスタを有しており、その複数のレジスタのうち所定の出力が排他的論理和回路（ＥＸＯＲ回路）を介して先頭のレジスタにフィードバックされる。初期値が設定された後、ＬＦＳＲは所定のシフトクロックに基づいて動作する。その結果、ＬＦＳＲは、初期値に依存するパターンの擬似乱数列を所定の周期で繰り返し出力する。フィードバック経路にＥＸＯＲ回路を設けることにより、長周期の乱数列を得ることが可能である。
【０００３】
但し、ＬＦＳＲによる擬似乱数の生成論理は、出力パターンから数学的に容易に解析可能である。従って、ＬＦＳＲを利用した擬似乱数生成回路では、生成される擬似乱数の乱数性を高めるための工夫が必要となる。例えば、初期値を外部から変更可能にしたり、複数段のＬＦＳＲをカスケード接続したりすることが一般的である。あるいは、非線形フィードバックシフトレジスタ（NLFSR: Non-Linear Feedback Shift Register）を用いることも考えられる。
【０００４】
特許文献１には、カスケード接続に基づいた擬似乱数発生装置が記載されている。その擬似乱数発生装置では、複数の非線形擬似乱数生成回路がカスケード接続されている。そして、それら複数の非線形擬似乱数生成回路のそれぞれの出力の排他的論理和が、擬似乱数として出力される。
【０００５】
【特許文献１】特開平１１−９５９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本願発明者は次の点に着目した。特許文献１に記載された擬似乱数発生装置によれば、複数の擬似乱数生成回路のそれぞれの出力の排他的論理和が、擬似乱数として出力される。そのため、必要とされる擬似乱数列のビット数が増加するにつれて、擬似乱数生成回路の必要数も増大してしまう。すなわち、ロジック規模が大きくなる。逆に言えば、規模の小さいマイコン等にこの擬似乱数発生装置を搭載する場合には、擬似乱数生成回路の段数が制限されてしまう。結果として、生成される擬似乱数列が制限され、乱数性能も制限されてしまう。
【課題を解決するための手段】
【０００７】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明の一実施の形態において、擬似乱数生成装置（１）が提供される。その擬似乱数生成装置（１）は、直列に接続されたＳ段（Ｓは２以上の整数）の擬似乱数生成回路（３０−１〜３０−４）と、それら擬似乱数生成回路（３０−１〜３０−４）に接続された制御回路（４０）とを備える。擬似乱数生成回路（３０−１〜３０−４）の各々は、Ｎビット（Ｎは２以上の整数）の擬似乱数データ（Ｘ１〜Ｘ４）を生成する。制御回路（４０）は、Ｓ段の擬似乱数生成回路（３０−１〜３０−４）のそれぞれから擬似乱数データ（Ｘ１〜Ｘ４）を受け取り、受け取ったＳ個の擬似乱数データ（Ｘ１〜Ｘ４）のうち任意の擬似乱数データの組み合わせを擬似乱数列（ＰＲ）として出力する。
【発明の効果】
【０００９】
本発明によれば、擬似乱数生成装置によって生成される擬似乱数列のビット数を、ロジック規模を増大させることなく増加させることが可能となる。
【発明を実施するための最良の形態】
【００１０】
添付図面を参照して、本発明の実施の形態に係る擬似乱数生成装置を説明する。
【００１１】
１．第１の実施の形態
１−１．全体構成
図１は、本発明の第１の実施の形態に係る擬似乱数生成装置１の構成を示すブロック図である。擬似乱数生成装置１は、クロック生成回路１０、データ生成回路２０、擬似乱数生成回路３０、及び擬似乱数制御回路４０を備えている。
【００１２】
クロック生成回路１０は、複数種のクロック信号（ＣＬＫ１，ＣＬＫ３，ＣＬＫ４）を生成し、それらクロック信号をデータ生成回路２０に出力する。データ生成回路２０は、クロック生成回路１０によって生成された複数種のクロック信号（ＣＬＫ１，ＣＬＫ３，ＣＬＫ４）に基づいて、乱数性を有するデータ（以下、「乱数データＤｒｎｄ」と参照される）を生成する。
【００１３】
擬似乱数生成回路３０は、擬似乱数データを生成するための回路であり、非線形フィードバックシフトレジスタ（NLFSR）と同様の機能を提供する。後に詳しく説明されるように、擬似乱数生成回路３０はＮビットレジスタを有しており、そのＮビットレジスタのデータがＮビットの出力データＤｏｕｔとして出力端子から出力される。ここで、Ｎは２以上の整数であり、例えば１６である。この出力端子から出力されるＮビットの出力データＤｏｕｔが擬似乱数データ（擬似乱数列）である。また、擬似乱数生成回路３０の入力端子には、Ｎビットの入力データＤｉｎが入力される。後に詳しく説明されるように、この入力データＤｉｎは、擬似乱数データを生成する際に周期性を乱し乱数性を高めるために用いられる。
【００１４】
本実施の形態に係る擬似乱数生成装置１は、直列に接続されたＳ段（Ｓは２以上の整数）の擬似乱数生成回路３０を備えている。すなわち、ある擬似乱数生成回路３０の出力端子が、後段の擬似乱数生成回路３０の入力端子に接続されている。図１の例では、Ｓ＝４であり、４個の擬似乱数生成回路３０−１〜３０−４が直列に接続されている。ある擬似乱数生成回路３０−ｉの出力端子は、次段の擬似乱数生成回路３０−（ｉ＋１）の入力端子に直接接続されている（ｉ＝１，２，３）。従って、擬似乱数生成回路３０−ｉの出力端子から出力される出力データＤｏｕｔが、次段の擬似乱数生成回路３０−（ｉ＋１）の入力端子に入力データＤｉｎとして入力される。
【００１５】
但し、初段の擬似乱数生成回路３０−１の入力端子は、上述のデータ生成回路２０の出力に接続されている。よって、データ生成回路２０によって生成される乱数データＤｒｎｄが、初段の擬似乱数生成回路３０−１の入力端子に入力データＤｉｎとして入力される。言い換えれば、データ生成回路２０は、Ｎビットの乱数データＤｒｎｄを生成し、その乱数データＤｒｎｄを初段の擬似乱数生成回路３０−１に対する入力データＤｉｎとして出力する。
【００１６】
擬似乱数制御回路４０は、擬似乱数生成回路３０−１〜３０−４のそれぞれの出力端子に接続されている。それら擬似乱数生成回路３０−１〜３０−４のそれぞれから出力される出力データＤｏｕｔは、擬似乱数データＸ１〜Ｘ４である。擬似乱数制御回路４０は、擬似乱数生成回路３０−１〜３０−４のそれぞれから擬似乱数データＸ１〜Ｘ４を受け取る。そして、擬似乱数制御回路４０は、受け取った４個の擬似乱数データＸ１〜Ｘ４のうち任意の擬似乱数データの組み合わせを擬似乱数出力ＰＲとして出力する。
【００１７】
以下、各回路の構成及び動作を詳細に説明する。
【００１８】
１−２．クロック生成回路及びデータ生成回路
図２は、本実施の形態に係るクロック生成回路１０及びデータ生成回路２０の構成を示すブロック図である。
【００１９】
データ生成回路２０は、第１Ｎビットカウンタ２１、第２Ｎビットカウンタ２２、及びＥＸＯＲ回路（排他的論理和回路）２３を有している。第１Ｎビットカウンタ２１及び第２Ｎビットカウンタ２２は、リセットを持たないクロックカウンタである。具体的には、第１Ｎビットカウンタ２１は、第１クロック信号ＣＬＫ１をカウントし、その第１クロック信号ＣＬＫ１のカウント値ｃ１（Ｎビット）を出力する。一方、第２Ｎビットカウンタ２２は、第１クロック信号ＣＬＫ１とは異なる第２クロック信号ＣＬＫ２をカウントし、その第２クロック信号ＣＬＫ２のカウント値ｃ２（Ｎビット）を出力する。
【００２０】
ＥＸＯＲ回路２３は、第１Ｎビットカウンタ２１によるカウント値ｃ１と第２Ｎビットカウンタ２２によるカウント値ｃ２との排他的論理和を算出する。異なるクロック信号のカウント値から得られる排他的論理和は“乱数性”を有しており、このＥＸＯＲ回路２３から出力される排他的論理和が、上述のＮビットの乱数データＤｒｎｄとして用いられる。つまり、ＥＸＯＲ回路２３は、第１クロック信号ＣＬＫ１のカウント値ｃ１と第２クロック信号ＣＬＫ２のカウント値ｃ２との排他的論理和を、Ｎビットの乱数データＤｒｎｄとして生成する。
【００２１】
好適には、第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２とは、非同期であり、互いに異なる周波数を有している。この場合、生成される乱数データＤｒｎｄの乱数性が向上する。
【００２２】
第１クロック信号ＣＬＫ１は、クロック生成回路１０に含まれる発振回路１１によって生成される。発振回路１１は、例えばリングオシレータである。
【００２３】
第２クロック信号ＣＬＫ２は、発振回路１１とは異なる発振回路を用いて生成することができる。あるいは、複数種類のクロック信号を組み合わせることによって、第２クロック信号ＣＬＫ２を生成することもできる。例えば図２に示されるように、データ生成回路２０は、第２クロック信号ＣＬＫ２を生成するためのＥＸＯＲ回路２４を有していてもよい。このＥＸＯＲ回路２４は、第３クロック信号ＣＬＫ３と第４クロック信号ＣＬＫ４との排他的論理和を、第２クロック信号ＣＬＫ２として出力する。好適には、第３クロック信号ＣＬＫ３と第４クロック信号ＣＬＫ４とは、非同期であり、異なる周波数を有している。第３クロック信号ＣＬＫ３は、クロック生成回路１０に含まれる発振回路１２によって生成される。第４クロック信号ＣＬＫ４は、クロック生成回路１０に含まれる発振回路１３によって生成される。発振回路１２、１３は、例えばリングオシレータである。このようにして、第１クロック信号ＣＬＫ１と非同期であり周波数の異なる第２クロック信号ＣＬＫ２を、複数種のクロック信号（ＣＬＫ３、ＣＬＫ４）から生成することが可能である。
【００２４】
以上に説明されたように、データ生成回路２０は、複数のクロック信号（ＣＬＫ１，ＣＬＫ２）のそれぞれのカウント値に基づいて、乱数性を有するＮビットの乱数データＤｒｎｄを自動的に生成する。生成された乱数データＤｒｎｄは、初段の擬似乱数生成回路３０−１の入力端子に入力される。
【００２５】
１−３．擬似乱数生成回路
図３は、本実施の形態に係る１つの擬似乱数生成回路３０の構成を示すブロック図である。図３に示されるように、擬似乱数生成回路３０は、入力端子ＩＮ、出力端子ＯＵＴ、Ｎビットレジスタ３２、及び変調回路３３を有している。入力端子ＩＮには、Ｎビットの入力データＤｉｎが入力される。出力端子ＯＵＴからは、Ｎビットの出力データＤｏｕｔが出力される。
【００２６】
Ｎビットレジスタ３２は、Ｎ個のフリップフロップ３１から構成される。Ｎは２以上の整数であり、例えば１６である。Ｎビットレジスタ３２には、Ｎビットのレジスタ入力データＤＲｉｎがパラレルに入力される。また、Ｎビットレジスタ３２から、Ｎビットのレジスタ出力データＤＲｏｕｔがパラレルに出力される。Ｎビットレジスタ３２からのレジスタ出力データＤＲｏｕｔが、Ｎビットの出力データＤｏｕｔ（擬似乱数データ）であり、出力端子ＯＵＴから出力される。
【００２７】
本実施の形態において、レジスタクロックは、上述の第１クロック信号ＣＬＫ１である。つまり、Ｎビットレジスタ３２は、第１クロック信号ＣＬＫ１に基づいて動作する。第１クロック信号ＣＬＫ１に同期して、Ｎビットレジスタ３２はレジスタ入力データＤＲｉｎを取り込む。すなわち、第１クロック信号ＣＬＫ１と同期して、Ｎビットレジスタ３２のデータ値が一括して更新される。
【００２８】
変調回路３３は、Ｎビットレジスタ３２の出力から入力へのフィードバック経路上に設けられており、レジスタ出力データＤＲｏｕｔを変調することによってレジスタ入力データＤＲｉｎを生成する。この変調（モジュレーション）により、レジスタ出力データＤＲｏｕｔの周期性が乱され、乱数性が高まる。また、この変調は、レジスタ出力データＤＲｏｕｔとレジスタ入力データＤＲｉｎとの関係を非線形化することに相当する。この変調において、入力端子ＩＮから入力されるＮビットの入力データＤｉｎが用いられる。初段の擬似乱数生成回路３０−１の場合、入力データＤｉｎは、データ生成回路２０によって生成される乱数データＤｒｎｄである。それ以外の擬似乱数生成回路３０−（ｉ＋１）の場合、入力データＤｉｎは、前段の擬似乱数生成回路３０−ｉによって生成される出力データＤｏｕｔ（擬似乱数データ）である。
【００２９】
より詳細には、図３に示されるように、変調回路３３はＥＸＯＲ回路３４を有している。ＥＸＯＲ回路３４は、入力データＤｉｎとＮビットレジスタ３２からのレジスタ出力データＤＲｏｕｔとの排他的論理和を出力する。このようにして、入力データＤｉｎを用いることによって、レジスタ出力データＤＲｏｕｔが変調される。ＥＸＯＲ回路３４から出力されるＮビットのデータは、以下「変調データＤＡ」と参照される。
【００３０】
Ｎビットレジスタ３２へのレジスタ入力データＤＲｉｎは、この変調データＤＡから生成される。例えば、変調データＤＡがそのままレジスタ入力データＤＲｉｎとして用いられる。あるいは、Ｎビットの変調データＤＡのうち任意の１ビットを置換ビットＤ１で更に置換することによって、レジスタ入力データＤＲｉｎが生成されてもよい。例えば図３において、ＥＸＯＲ回路３４とＮビットレジスタ３２との間に、置換回路３５が設けられている。この置換回路３５は、Ｎビットの変調データＤＡのうち例えば最下位ビットを置換ビットＤ１で置換することによって、レジスタ入力データＤＲｉｎを生成する。これにより非線形化が促進され、レジスタ出力データＤＲｏｕｔの乱数性が更に向上する。
【００３１】
図３で示される変調回路３３は、上述の置換ビットＤ１を生成するために、ＡＮＤ回路３６とＥＸＯＲ回路３７を更に有している。ＡＮＤ回路３６は、入力データＤｉｎとレジスタ出力データＤＲｏｕｔとの論理積を算出し、Ｎビットの置換データＤＢを生成する。ＥＸＯＲ回路３７は、置換データＤＢのそれぞれのビットの排他的論理和を算出することによって、置換ビットＤ１（１ビット）を生成する。置換回路３５は、この置換ビットＤ１を用いることによりレジスタ入力データＤＲｉｎを生成する。
【００３２】
以上の構成により、擬似乱数生成回路３０は、ＮＬＦＳＲと同様の機能を実現することができる。但し、擬似乱数生成回路３０から出力されるのは、Ｎビットの出力データＤｏｕｔ（擬似乱数データ）である。
【００３３】
直列に接続された複数段の擬似乱数生成回路３０−１〜３０−４は、それぞれの入力データＤｉｎを用いることによって、Ｎビットの出力データＤｏｕｔを別々に生成する。図１で示されたように、擬似乱数生成回路３０−１〜３０−４のそれぞれから出力される出力データＤｏｕｔは、擬似乱数データＸ１〜Ｘ４であるとする。それら擬似乱数データＸ１〜Ｘ４の値は互いに異なっている。また、擬似乱数データＸ１〜Ｘ４は、互いに異なる乱数周期と乱数強度を有している。具体的には、ある擬似乱数生成回路３０から出力される擬似乱数データの乱数周期は、前段の擬似乱数生成回路３０から出力される擬似乱数データの乱数周期の２乗となる。
【００３４】
１−４．擬似乱数制御回路
図４は、本実施の形態に係る擬似乱数制御回路４０の構成を示すブロック図である。擬似乱数制御回路４０は、擬似乱数生成回路３０−１〜３０−４のそれぞれから異なる擬似乱数データＸ１〜Ｘ４を受け取る。そして、擬似乱数制御回路４０は、受け取った４個の擬似乱数データＸ１〜Ｘ４のうち任意の擬似乱数データの組み合わせを擬似乱数列ＰＲとして出力する。言い換えれば、擬似乱数制御回路４０は、受け取った４個の擬似乱数データＸ１〜Ｘ４を可変的に組み合わせ、その組み合わせを擬似乱数列ＰＲとして出力する。より詳細には、図４に示されるように、擬似乱数制御回路４０は、出力制御回路４１、セレクタ４２、ＡＮＤ回路４３、及びセレクト信号生成回路４４を有している。
【００３５】
セレクタ４２は、擬似乱数データＸ１〜Ｘ４及びセレクト信号ＳＥＬを受け取る。そして、セレクタ４２は、セレクト信号ＳＥＬに応じて４個の擬似乱数データＸ１〜Ｘ４から擬似乱数データを選択し、選択された擬似乱数データの組み合わせを擬似乱数列ＰＲとして出力する。つまり、セレクタ４２は、４個の擬似乱数データＸ１〜Ｘ４を可変的に組み合わせ、その組み合わせを擬似乱数列ＰＲとして出力する。本例では、Ｎ＝１６、Ｓ＝４であるため、擬似乱数列ＰＲのビット数は、１６、３２、４８、あるいは６４であり得る。すなわち、擬似乱数列ＰＲのビット数は、Ｎビット単位で最大Ｎ×Ｓビットである。また、擬似乱数列ＰＲのビット数は、１６、３２、４８、６４のいずれか１つ（例えば６４ビット）に固定されてもよい。
【００３６】
このように、セレクト信号ＳＥＬは、擬似乱数データＸ１〜Ｘ４の組み合わせを決定するために用いられる。擬似乱数制御回路４０の内部でこのセレクト信号ＳＥＬを生成するのが、セレクト信号生成回路４４である。本実施の形態によれば、このセレクト信号生成回路４４も、擬似乱数データＸ１〜Ｘ４を受け取る。そして、セレクト信号生成回路４４は、受け取った４個の擬似乱数データＸ１〜Ｘ４に基づいてセレクト信号ＳＥＬを生成する。
【００３７】
より詳細には、セレクト信号生成回路４４は、擬似乱数データＸ１〜Ｘ４のそれぞれを受け取る４個のＥＸＯＲ回路４５−１〜４５−４とフリップフロップ４６を含んでいる。各々のＥＸＯＲ回路４５は、受け取ったＮビットの擬似乱数データのそれぞれのビットの排他的論理和を出力する。４個のＥＸＯＲ回路４５−１〜４５−４のそれぞれの出力から構成される４ビットの信号は、フリップフロップ４６のデータ入力端子に入力される。フリップフロップ４６は、上述の第１クロック信号ＣＬＫに基づいて動作し、データ入力端子に入力された４ビットの信号をセレクト信号ＳＥＬとして出力する。つまり、セレクト信号ＳＥＬは、４個のＥＸＯＲ回路４５−１〜４５−４のそれぞれの出力から構成される４ビットの信号である。
【００３８】
このようにして生成された４ビットのセレクト信号ＳＥＬが、セレクタ４２に出力される。この場合、セレクタ４２における擬似乱数データＸ１〜Ｘ４の組み合わせパターンは、最大１６パターンである。例えば、組み合わせパターンとして、「Ｘ１」、「Ｘ２」、「Ｘ３」、「Ｘ４」、「Ｘ１，Ｘ２」、「Ｘ１，Ｘ３」、「Ｘ１，Ｘ４」、「Ｘ２，Ｘ３」、「Ｘ２，Ｘ４」、「Ｘ３，Ｘ４」、「Ｘ１，Ｘ２，Ｘ３」、「Ｘ１，Ｘ２，Ｘ４」、「Ｘ１，Ｘ３，Ｘ４」、「Ｘ２，Ｘ３，Ｘ４」、及び「Ｘ１，Ｘ２，Ｘ３，Ｘ４」が考えられる。これらのうちいくつかの組み合わせパターンだけを用いることもできる。
【００３９】
出力制御回路４１は、制御信号ＣＯＮに基づいてイネーブル信号ＥＮを生成する。制御信号ＣＯＮは、上述の第１クロック信号ＣＬＫ１と同期している。イネーブル信号ＥＮは、擬似乱数制御回路４０の出力を制御するための信号である。ＡＮＤ回路４３には、このイネーブル信号ＥＮと、セレクタ４２からの擬似乱数列ＰＲが入力される。イネーブル信号ＥＮがＨｉｇｈレベルの場合、ＡＮＤ回路４３は擬似乱数列ＰＲを出力する。一方、イネーブル信号ＥＮがＬｏｗレベルの場合、ＡＮＤ回路４３は擬似乱数列ＰＲを出力しない。
【００４０】
１−５．効果
以上に説明されたように、本実施の形態によれば、複数段の擬似乱数生成回路３０−１〜３０−４によってそれぞれ異なる擬似乱数データＸ１〜Ｘ４が生成され、擬似乱数制御回路４０によってそれら擬似乱数データＸ１〜Ｘ４がランダムに組み合わされる。その結果、ロジック規模を増大させることなく、生成される擬似乱数列ＰＲのビット数を増加させることが可能となる。つまり、乱数性能を低下させることなく、回路規模を縮小することが可能となる。本実施の形態に係る擬似乱数生成装置１が規模の小さいマイコン等に搭載される場合であっても、余計な制限を加える必要はない。
【００４１】
また、擬似乱数データＸ１〜Ｘ４の組み合わせを決定するセレクト信号ＳＥＬは、擬似乱数データＸ１〜Ｘ４そのものに基づいて生成される。よって、セレクト信号ＳＥＬそのものの乱数性も高くなる。更に、セレクト信号ＳＥＬは、外部制御を受けることなく、擬似乱数制御回路４０の内部において自動的に生成される。従って、セレクト信号ＳＥＬの生成論理が推定される危険性が減少する。結果として、セレクタ４２によって生成される擬似乱数列ＰＲの乱数性と安全性が向上する。
【００４２】
更に、本実施の形態によれば、データ生成回路２０が、複数のクロック信号（ＣＬＫ１，ＣＬＫ２）のそれぞれのカウント値に基づいて、乱数データＤｒｎｄを自動的に生成する。生成された乱数データＤｒｎｄは、初段の擬似乱数生成回路３０−１に対する入力データＤｉｎとなる。また、ある擬似乱数生成回路３０−ｉによって生成される出力データＤｏｕｔ（擬似乱数データ）が、次段の擬似乱数生成回路３０−（ｉ＋１）に対する入力データＤｉｎとなる。各々の擬似乱数生成回路３０は、その入力データＤｉｎを用いることによって、Ｎビットレジスタ３２から出力されるレジスタ出力データＤＲｏｕｔを変調し、変調結果をＮビットレジスタ３２にフィードバックする。これにより、乱数性の高い擬似乱数データＤｏｕｔが生成される。また、この変調により非線形化が実現され、乱数性が向上する。
【００４３】
また、乱数データＤｒｎｄは、外部制御に依存することなく、自動的に生成されることに留意されたい。外部制御に依存しないので、乱数データＤｒｎｄの秘匿性が向上する。また、擬似乱数生成回路３０における処理も外部制御には一切依存していない。もし、擬似乱数の生成に外部制御が加えられると、その外部制御の内容が擬似乱数のヒントとなり、例えば暗号解読を容易にしてしまう。本実施の形態によれば、擬似乱数の生成には外部制御は一切加えられない。従って、生成される擬似乱数から、その生成論理を推測することが困難になる。すなわち、生成される擬似乱数の強度が向上する。
【００４４】
また、乱数データＤｒａｎｄの生成に用いられるクロック信号（ＣＬＫ１，ＣＬＫ３，ＣＬＫ４）をリングオシレータによって生成することは、次の観点から好ましい。電源投入直後、リングオシレータの発振状態は不安定である、すなわち、そのリングオシレータによって生成されるクロック信号の周波数は不規則である。従って、クロック信号のカウント値に基づいて生成される乱数データＤｒｎｄは、電源投入毎に異なることになる。電源投入直後に生成される乱数データＤｒｎｄは、擬似乱数生成回路３０における初期値の設定に利用される。よって、その初期値も電源投入毎に異なることになり、初期値の乱数性が向上する。結果として、擬似乱数生成回路３０によって生成される擬似乱数データＤｏｕｔの乱数性も高まる。
【００４５】
２．第２の実施の形態
図５は、本発明の第２の実施の形態に係る擬似乱数生成装置１の構成を示すブロック図である。第１の実施の形態と同じ構成には同一の符号が付され、重複する説明は適宜省略される。第１の実施の形態と比較して、第２の実施の形態は、擬似乱数生成回路３０間の接続が異なっている。
【００４６】
具体的には、ある擬似乱数生成回路３０−ｉの出力端子ＯＵＴは、ＥＸＯＲ回路５０を介して、次段の擬似乱数生成回路３０−（ｉ＋１）の入力端子ＩＮに接続される（ｉ＝１，２，３）。ＥＸＯＲ回路５０は、データ生成回路２０によって生成される乱数データＤｒｎｄと前段の擬似乱数生成回路３０から出力される出力データＤｏｕｔ（擬似乱数データ）との排他的論理和を出力する。そして、そのＥＸＯＲ回路５０からの出力データが、次段の擬似乱数生成回路３０の入力端子ＩＮに入力される。すなわち、乱数データＤｒｎｄと擬似乱数生成回路３０−ｉからの出力データＤｏｕｔとの排他的論理和が、次段の擬似乱数生成回路３０−（ｉ＋１）に対するＮビットの入力データＤｉｎとして利用される。結果として、生成される擬似乱数データの乱数性が更に向上する。
【００４７】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【図面の簡単な説明】
【００４８】
【図１】図１は、本発明の第１の実施の形態に係る擬似乱数生成装置の構成を示すブロック図である。
【図２】図２は、本実施の形態に係るクロック生成回路及びデータ生成回路の構成を示すブロック図である。
【図３】図３は、本実施の形態に係る擬似乱数生成回路の構成を示すブロック図である。
【図４】図４は、本実施の形態に係る擬似乱数制御回路の構成を示すブロック図である。
【図５】図５は、本発明の第２の実施の形態に係る擬似乱数生成装置の構成を示すブロック図である。
【符号の説明】
【００４９】
１    擬似乱数生成装置
１０    クロック生成回路
１１〜１３  発振回路
２０    データ生成回路
２１    第１Ｎビットカウンタ
２２    第２Ｎビットカウンタ
２３、２４  ＥＸＯＲ回路
３０    擬似乱数生成回路
３１    フリップフロップ
３２    Ｎビットレジスタ
３３    変調回路
３４    ＥＸＯＲ回路
３５    置換回路
４０    擬似乱数制御回路
４１    出力制御回路
４２    セレクタ
４３    ＡＮＤ回路
４４    セレクト信号生成回路
４５    ＥＸＯＲ回路
４６    フリップフロップ
５０    ＥＸＯＲ回路
ＩＮ    入力端子
ＯＵＴ  出力端子
Ｄｒｎｄ  乱数データ
Ｄｉｎ    入力データ
Ｄｏｕｔ  出力データ
ＰＲ    擬似乱数列
ＳＥＬ  セレクト信号
【図１】
2010002959.tif 000003
【図２】
2010002959.tif 000004
【図３】
2010002959.tif 000005
【図４】
2010002959.tif 000006
【図５】
2010002959.tif 000007