(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-04
(45)【発行日】2022-02-15
(54)【発明の名称】乱数生成装置
(51)【国際特許分類】
G06F 7/58 20060101AFI20220207BHJP
G09C 1/00 20060101ALI20220207BHJP
【FI】
G06F7/58 680
G09C1/00 650B
(21)【出願番号】P 2018056722
(22)【出願日】2018-03-23
【審査請求日】2020-03-25
(73)【特許権者】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】100090169
【氏名又は名称】松浦 孝
(74)【代理人】
【識別番号】100074147
【氏名又は名称】本田 崇
(74)【代理人】
【識別番号】100124497
【氏名又は名称】小倉 洋樹
(72)【発明者】
【氏名】岩野 隆
【審査官】白石 圭吾
(56)【参考文献】
【文献】特開2009-129432(JP,A)
【文献】特開2016-039418(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 7/58
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
I-V変換回路を含み、初期値を入力してロジスティック写像演算を行う写像演算回路と、
前記写像演算回路の出力を1から引き算する引き算回路と、
前記引き算回路の出力を前記写像演算回路の入力端にフィードバックするフィードバック経路と
前記写像演算回路の出力をディジタル変換して乱数を得る乱数取出部と
を具備し、
前記フィードバック経路により前記引き算回路の出力を前記写像演算回路の入力端にフィードバックして前記写像演算回路により所望回の写像演算を行い、この所望回の演算の結果の出力を乱数取得部にてディジタル変換して乱数を得ることを特徴とする乱数生成装置。
【請求項2】
前記写像演算回路には、前記I-V変換回路の出力側に接続された反転増幅回路が備えられていることを特徴とする請求項1に記載の乱数生成装置。
【請求項3】
前記写像演算回路の出力側と前記引き算回路の入力側には、第1のサンプルホールド回路が設けられ、
前記フィードバック経路には、第2のサンプルホールド回路が設けられ、
ていることを特徴とする請求項1または2に記載の乱数生成装置。
【請求項4】
前記写像演算回路の出力端子と前記第1のサンプルホールド回路の入力端子との間には第1のスイッチが設けられ、
前記第1のサンプルホールド回路の出力端子と前記第2のサンプルホールド回路の入力端子との間には第2のスイッチが設けられ、
前記引き算回路の出力端子と前記第2のサンプルホールド回路の入力端子との間には第3のスイッチが設けられ、
前記第2のサンプルホールド回路の出力端子と前記写像演算回路の入力端子との間には第4のスイッチが設けられ、
前記第1~第4のスイッチのオンオフを制御するタイミング制御回路
を具備することを特徴とする請求項3に記載の乱数生成装置。
【請求項5】
前記乱数取出部は、前記写像演算回路の出力を閾値と比較して0または1に変換するコンパレータを備えることを特徴とする請求項1乃至4のいずれか1項に記載の乱数生成装置。
【請求項6】
前記乱数取出部には、前記写像演算回路の出力をAD変換してディジタルの乱数を得ることを特徴とする請求項1乃至5のいずれか1項に記載の乱数生成装置。
【請求項7】
前記写像演算回路の入力側に接続され、初期値を入力する初期値入力部が備えられていることを特徴とする請求項1乃至6のいずれか1項に記載の乱数生成装置。
【請求項8】
前記初期値入力部は、無理数を初期値として出力することを特徴とする請求項7に記載の乱数生成装置。
【請求項9】
前記乱数取出部には、前記写像演算回路の出力を閾値0.5と比較して0または1に変換するコンパレータと、前記写像演算回路によりN回繰り返される演算毎に、前記コンパレータから得られるディジタル値を並べて得られるNビットのグレイコードを得て、乱数とするグレイコード処理部とが備えられ、
前記N回の写像を遡って得られる初期値の区分数2
Nに属するいずれかの値を初期値として用いることを特徴とする請求項1乃至4のいずれか1項に記載の乱数生成装置。
【請求項10】
前記I-V変換回路の入力側には、
ソースが接続されたNMOSトランジスタが配置され、そのゲート・ソース電圧を初期値から所要時に低下させて与えるゲート・ソース電圧制御回路が備えられていることを特徴とする請求項1乃至9のいずれか1項に記載の乱数生成装置。
【請求項11】
前記I-V変換回路の入力側には、ソースが接続されたNMOSトランジスタが配置され、
前記第1のサンプルホールド回路における所定回目のサンプリングの際に、前記NMOSトランジスタのゲート・ソース電圧をアンダーシュートさせてサンプリングを行うサンプリング電圧制御部が備えられていることを特徴とする請求項3に記載の乱数生成装置。
【請求項12】
前記乱数取出部には、AD変換して得た複数ビットの所定位置を乱数として選択するビット選択回路を備えることを特徴とする請求項6に記載の乱数生成装置。
【請求項13】
ビット選択回路は、写像回に応じて所定位置を選択することを特徴とする請求項12に記載の乱数生成装置。
【請求項14】
前記乱数取出部には、前記写像演算回路の出力中から、所定の回の出力を選択して乱数とする写像演算回選択部が備えられていることを特徴とする請求項1乃至13のいずれか1項に記載の乱数生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、乱数生成装置に関するものである。
【背景技術】
【0002】
従来、ロジスティック写像は、カオス的性質があり初期鋭敏性により予測不可能な系が生成されるため乱数生成用途として利用されている。例えば、非特許文献1には、ロジスティック写像を倍精度演算(C言語のdouble型で有効桁数は2進数にして 53 [bit]桁)で実装し、写像の度にXiから下位1ビットずつ抽出し連続して乱数列として取得しNIST乱数検定を行った結果、判定は不合格となることの報告がなされている。この非特許文献1では、乱数性が悪くなる原因として有限演算精度で実装する場合は有効桁に比べてかなり短い周期に落ちることで良質な乱数が得られないことが示されており、解決策としてコントロールパラメータを変動する手法が提案されている。
【0003】
また特許文献1には、ロジスティック写像をディジタル演算で実装すると有限演算精度による丸め誤差により桁数の割に短い周期に落ちることで良質な乱数が得られないことが示されており、ディジタル実装では根本的に短い周期に落ちない機構を取り入れて周期長を伸ばす工夫が必要であることが示されている。
【0004】
上記のように一次元写像を用いた乱数生成は理論的にカオス体であってもコンピュータによる有限演算精度実装では周期帯に落ちることで乱数性能が悪くなることから、乱数生成用途では理想的に無限演算精度実装が望ましいものである。このため、アナログ演算器で実装することで自然で良質な物理乱数が得られることが期待できる。
【0005】
また、特許文献2には、有限演算精度にて実装し周期を伸ばす仕組みを入れる対策が施されたカオス的乱数列の発生装置が開示されており、係る乱数発生装置では周期の問題を避けることが必要不可欠といえる。なお、疑似乱数列は周期が確定的であるため厳密にいうと乱数とは言えない。
【0006】
更に、特許文献3には、非線形なI(電流)-V(電圧)特性を生成する回路が示されている。この発明では、ピュアカオスとなるロジスティック写像と同等なI-V特性を得ることは目的ではなく、ロジスティック写像による一様な乱数列生成手法ではない。このため良質な乱数を得るためにI-V特性やAD変換方法として適切なものを求めておく必要がある。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2016-081274号公報
【文献】特開平09-292978号公報
【文献】特開2004-312424号公報
【非特許文献】
【0008】
【文献】岩野隆,金田学,奥富秀俊,"ロジスティック写像を用いた乱数抽出について," 2006年暗号と情報セキュリティシンポジウム予稿集SCIS2006 1E2-5, January 2006
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は上記のような乱数生成分野における現状に鑑みてなされたもので、その目的は、簡単な構成で一様な分布を持つ物理乱数を生成することが可能な乱数生成装置を提供することである。
【課題を解決するための手段】
【0010】
本発明に係る乱数生成装置は、I-V変換回路を含み、初期値を入力してロジスティック写像演算を行う写像演算回路と、前記写像演算回路の出力を1から引き算する引き算回路と、前記引き算回路の出力を前記写像演算回路の入力端にフィードバックするフィードバック経路と前記写像演算回路の出力をディジタル変換して乱数を得る乱数取出部と
を具備し、前記フィードバック経路により前記引き算回路の出力を前記写像演算回路の入力端にフィードバックして前記写像演算回路により所望回の写像演算を行い、この所望回の演算の結果の出力を乱数取得部にてディジタル変換して乱数を得ることを特徴とする。
【0011】
本発明に係る乱数生成装置では、前記写像演算回路には、前記I-V変換回路の出力側に接続された反転増幅回路が備えられていることを特徴とする。
【0012】
本発明に係る乱数生成装置では、前記写像演算回路の出力側と前記引き算回路の入力側には、第1のサンプルホールド回路が設けられ、前記フィードバック経路には、第2のサンプルホールド回路が設けられていることを特徴とする。
【0013】
本発明に係る乱数生成装置では、前記写像演算回路の出力端子と前記第1のサンプルホールド回路の入力端子との間には第1のスイッチが設けられ、前記第1のサンプルホールド回路の出力端子と前記第2のサンプルホールド回路の入力端子との間には第2のスイッチが設けられ、前記引き算回路の出力端子と前記第2のサンプルホールド回路の入力端子との間には第3のスイッチが設けられ、前記第2のサンプルホールド回路の出力端子と前記写像演算回路の入力端子との間には第4のスイッチが設けられ、前記第1~第4のスイッチのオンオフを制御するタイミング制御回路を具備することを特徴とする。
【0014】
本発明に係る乱数生成装置では、前記乱数取出部は、前記写像演算回路の出力を閾値と比較して0または1に変換するコンパレータを備えることを特徴とする。
【0015】
本発明に係る乱数生成装置では、前記乱数取出部には、前記写像演算回路の出力をAD変換してディジタルの乱数を得ることを特徴とする。
【0016】
本発明に係る乱数生成装置では、前記写像演算回路の入力側に接続され、初期値を入力する初期値入力部が備えられていることを特徴とする。
【0017】
本発明に係る乱数生成装置では、前記初期値入力部は、無理数を初期値として出力することを特徴とする。
【0018】
本発明に係る乱数生成装置では、前記乱数取出部には、前記写像演算回路の出力を閾値0.5と比較して0または1に変換するコンパレータと、前記写像演算回路によりN回繰り返される演算毎に、前記コンパレータから得られるディジタル値を並べて得られるNビットのグレイコードを得て、乱数とするグレイコード処理部とが備えられ、前記N回の写像を遡って得られる初期値の区分数2Nに属するいずれかの値を初期値として用いることを特徴とする。
【0019】
本発明に係る乱数生成装置では、前記I-V変換回路の入力側には、ソースが接続されたNMOSトランジスタが配置され、そのゲート・ソース電圧を初期値から所要時に低下させて与えるゲート・ソース電圧制御回路が備えられていることを特徴とする。
【0020】
本発明に係る乱数生成装置では、前記I-V変換回路の入力側には、ソースが接続されたNMOSトランジスタが配置され、前記第1のサンプルホールド回路における所定回目のサンプリングの際に、前記NMOSトランジスタのゲート・ソース電圧をアンダーシュートさせてサンプリングを行うサンプリング電圧制御部が備えられていることを特徴とする。
【0021】
本発明に係る乱数生成装置では、前記乱数取出部には、AD変換して得た複数ビットの所定位置を乱数として選択するビット選択回路を備えることを特徴とする。
【0022】
本発明に係る乱数生成装置では、ビット選択回路は、写像回に応じて所定位置を選択することを特徴とする。
【0023】
本発明に係る乱数生成装置では、前記乱数取出部には、前記写像演算回路の出力中から、所定の回の出力を選択して乱数とする写像演算回選択部が備えられていることを特徴とする。
【発明の効果】
【0024】
本発明の乱数生成装置によれば、簡単な構成で一様な分布を持つ物理乱数を生成することが可能である。
【図面の簡単な説明】
【0025】
【
図1】本発明に係る乱数生成装置の実施形態の構成を示すブロック図。
【
図2】本発明に係る乱数生成装置の実施形態が採用するロジスティック写像の写像マップの図。
【
図3】本発明に係る乱数生成装置の実施形態が採用するロジスティック写像の時系列を示す図。
【
図4】本発明に係る乱数生成装置の実施形態が採用するNMOSトランジスタのパラメータを示す図。
【
図5】本発明に係る乱数生成装置の実施形態が採用するNMOSトランジスタ単体の線形領域の電流-電圧特性を示す図。
【
図6】本発明に係る乱数生成装置の実施形態が採用するI-V変換回路の回路図。
【
図7】
図6に示したI-V変換回路の電圧Vout‐電圧Vds特性を示す図。
【
図8】本発明に係る乱数生成装置の実施形態が採用する引き算回路の回路図と、そのVinを変化させたDC解析結果を示す図。
【
図9】本発明に係る乱数生成装置の実施形態の回路動作を示す波形図。
【
図10】テント写像マップと16等分した
図11のテント写像の初期値X
0区間を示す図。
【
図11】テント写像とロジスティック写像の初期値X
0区間と、各区間に対応して生成する4ビットのグレイコードとバイナリコードを示す図。
【
図12】4ビットのグレイコードをバイナリコードに変換する論理回路を示す図。
【
図13】テント写像の初期値X
0区間を均等に16等分した区間内において、ロジスティック写像の写像演算を10万回反復を行い、各写像結果が取った値が属する区間を、区間毎にカウントアップして数えたヒストグラムの図。
【
図14】ロジスティック写像の4回の写像により生成されるビット列と写像の関係を示す図。
【
図15】テント写像の初期値X
0区間を所定の区分法により16分割した区間内において、ロジスティック写像の写像演算を10万回反復を行い、各写像結果が取った値が属する区間を、区間毎にカウントアップして数えたヒストグラムの図。
【
図16】本発明の実施形態において、初期値X
0の区間の境界を与える漸化式により境界値を計算した結果を示す図。
【
図17】
図11の区間に対するロジスティック写像の初期値X
0のマップ図を示す図。
【
図18】テント写像とロジスティック写像の位相共役を示す図。
【
図19】テント写像とロジスティック写像によるビット列取得を示す図。
【
図20】Vgsを0.5と0.49としたI-V特性を示す図。
【発明を実施するための形態】
【0026】
以下添付図面を参照して本発明に係る乱数生成装置の実施形態を説明する。各図において、同一の構成要素には同一の符号を付して重複する説明を省略する。実施形態に係る乱数生成装置は、
図1の如く構成され、ロジスティック写像の反復演算を行うアナログ演算回路である写像演算回路10を備える。この写像演算回路10ではNMOSトランジスタの非飽和領域(三極間領域)の電流-電圧特性を定義する方程式に着目し、回路パラメータを選定することでロジスティック写像の式と特性が同等になる電流-電圧曲線を得る。電流に対してオペアンプによる電流-電圧変換を行うことでロジスティック写像の演算をアナログ演算回路で行う機構を実現し、入力電圧に対して演算結果を電圧値として出力させ、再びそれを入力電圧としてフィードバックしロジスティック写像の反復演算を行っている。乱数列生成は、写像演算回路の出力をディジタル変換して乱数を得る乱数取出部30により実現され、例えば、写像の度にAD変換器により乱数値を抽出し連続して得る構成を採用することができる。
【0027】
ロジスティック写像をアナログ演算で行うことにより、ディジタル演算のようには周期性の陥ることが無い良質な物理乱数を得られることができる。装置をチップ化することが可能であり、チップ毎の製造バラツキが見込めるため初期鋭敏性を持つカオスの性質からチップ毎に異なる再現性の無い乱数パターンが得られることが期待できる。このため特に、情報セキュリティ分野における発生系列が解析されない乱数種の生成に好適な装置となることが期待される。
【0028】
更に、ロジスティック写像は反復演算を繰り返していくことで、演算出力される数値の頻度に偏りが出る傾向(不変測度)を持つため、反復演算の繰り返しに拘わらず、乱数として一様な分布が得られる手法や初期値X0を選択する際に好適な構成についても言及する。
【0029】
実施形態に係る乱数生成装置には、引き算回路20が備えられている。この引き算回路20は、上記写像演算回路10の出力を1から引き算する。引き算回路20の出力は、フィードバック経路を介して写像演算回路10の入力端子へ与えられる。
【0030】
上記写像演算回路10の出力側と上記引き算回路20の入力側には、第1のサンプルホールド回路41が設けられ、上記フィードバック経路には、第2のサンプルホールド回路42が設けられている。
【0031】
上記写像演算回路10の出力端子と上記第1のサンプルホールド回路41の入力端子との間には第1のスイッチSW1が設けられている。上記第1のサンプルホールド回路41の出力端子と上記第2のサンプルホールド回路42の入力端子との間には第2のスイッチSW2が設けられている。上記引き算回路20の出力端子と上記第2のサンプルホールド回路42の入力端子との間には第3のスイッチSW3が設けられている。上記第2のサンプルホールド回路42の出力端子と上記写像演算回路10の入力端子との間には第4のスイッチSW4が設けられている。
【0032】
上記写像演算回路10の入力側には、初期値を入力する初期値入力部50が備えられている。上記写像演算回路10の入力と初期値入力部50の間には、第0のスイッチSW0が設けられている。これら第0~第4のスイッチSW0~SW4のオンオフを制御するために、タイミング制御回路51が備えられている。タイミング制御回路51は、スイッチ以外に乱数取出部30と、乱数取出部30の出力側に設けられている出力バッファ31に対し、動作タイミングを制御する信号を与える。
【0033】
スイッチSW2、SW3を制御するために、スイッチ制御回路52が備えられている。スイッチ制御回路52は、コンパレータ53と、コンパレータ53の出力を反転するインバータと、2つのアンド回路AND1、AND2とを有している。コンパレータ53は、サンプルホールド回路41に保持されている写像演算回路10の出力と、0.5Vとを比較して、サンプルホールド回路41の保持値が0.5Vを超えると1を出力し、上記保持値が0.5V以下であると0を出力する。
【0034】
アンド回路AND1は、コンパレータ53の出力とタイミング制御回路51からのスイッチSW2、SW3に対する制御信号SW2or3との論理積演算を行ってスイッチSW3を開閉する信号を作り出す。アンド回路AND2は、コンパレータ53の出力を反転した信号とタイミング制御回路51からのスイッチSW2、SW3に対する制御信号SW2or3との論理積演算を行ってスイッチSW2を開閉する信号を作り出す。
【0035】
次に、本実施形態において用いているロジスティック写像について説明する。
ロジスティック写像は以下の式(1)で定義される。
【数1】
【0036】
ロジスティック写像のマップを
図2に示し、式(1)による横軸をi、縦軸をX
iとした時系列を
図3に示す。
図3の時系列では初期値X
0=0.3を設定し、式(1)の写像遷移は、X
1=4x0.3(1-0.3)=0.84であり、この結果のX
1=0.84が反復入力され、X
2=4x0.84(1-0.84)=0.5376を得る。このように出力値が入力値として反復され縦軸X
iが開区間(0,1)を遷移されて行く。本実施形態では、式(1)の演算を実行するアナログ演算回路を構成し、これを乱数生成装置として用いる。
【0037】
本実施形態では、上記ロジスティック写像式(1)と等価なI-V変換回路が写像演算回路10に設けられる。
図5に示すNMOSトランジスタ単体の線形領域(非飽和領域または3極管領域)の電流-電圧特性に着目する。この領域の“Vds<Vgs-Vth”における電流値Idsは、一般的に以下の式(2)で表されている。この領域を、以下においては、線形領域は“非飽和領域”と呼ぶこととする。この式(2)は、参考文献:「LSI設計のためのCMOSアナログ回路入門(半導体シリーズ)、谷口研二(著)、CQ出版」によるものである。
【数2】
【0038】
上記NMOSトランジスタのパラメータを
図4に示す。ここでは、
図4に示されている通り、Wはチャネルの幅、Lはチャネルの長さ、μは半導体中の電子の移動度、CoxはMOSキャパシタの単位面積当たりの容量である。Vthは閾値電圧とよばれ、チャネルに電子が現れるのに必要なゲート電圧である。式(2)は、変数Vdsの2次方程式となっており、式(1)のロジスティック写像も2次関数となっている。この点に着目し式(2)のパラメータ群を、式(1)と等価となるようなものにする。
【0039】
Vth=0[V]となるNMOSトランジスタを選択し、Vgs=0.5[V]に固定する。なお、Vth=0.7[V]のNMOSトランジスタの場合は、Vgs=1.2[V]に固定にして、Vgs-Vth=0.5[V]になるものでもよい。また、W=10[μm]、L=1[μm]として、μCox=20[μA/V2](単位μ:マイクロ⇒10-6)となるようなNMOSトランジスタを選択する。
【0040】
ここで、Coxについては、“Cox=Eox×Eo/Tox”で与えられ、
図4のパラメータ表から
シリコン酸化膜誘電率 Eox=3.9
真空誘電率 Eo=8.85×10
-12
MOSトランジスタ酸化膜厚 Tox
となり、半導体中の電子の移動度μ=0.145としてToxを求めると、
μCox=μ×Eox×Eo/Tox
20×10
-6=0.145×3.9×8.85×10
-12/Toxから
Tox=0.25×10
-6
が得られるため、Tox=0.25[μm](単位:マイクロメートル)となる酸化膜厚を有するNMOSトランジスタとなる。
【0041】
図4に示したパラメータに、以上の数値を当て嵌めて、式(2)を書き直すと、以下のIds-Vds特性の式(3)が得られる。
【0042】
【0043】
式(3)のVdsを非飽和領域内(Vds<Vgs-Vth(=0.5))において、
0[V]~0.5[V]に振ったときのIds(電流)-Vds(電圧)特性を
図5に示す。
図5では飽和領域(Vds=Vgs-Vth(=0.5))に入るピンチオフ点での電流は、Ids=25[μA]となっている。
【0044】
次にVdsによって得られる電流Idsを電圧に変換するオペアンプにより構成した
図1の写像演算回路10内の電流―電圧変換回路(I-V変換回路)を、
図6に示す。
図6の電流―電圧変換回路は、反転増幅器であり、電流Iに対して抵抗Rを乗算した反転出力電圧V=-I×Rが得られる。反転出力された電圧は、
図1及び
図6に示すように、反転増幅回路へ入力されVout=-Vとして、写像演算回路10の出力がプラス側の電圧となるように回路構成されている。
【0045】
この電流―電圧変換回路に式(3)の電流Idsを与え
図6の抵抗素子は抵抗値R = 40[kΩ]を設定することで式(3A)となり、
【数4】
【0046】
上記式(3A)を整理して、以下の式(4)の関係が得られる。
【数5】
【0047】
式(4)は、ロジスティック写像の式(1)のX
iをVdsに見立てると、解としてVoutが得られる数式となっている。式(4)の電圧Vout‐電圧Vds特性が
図7に示す通りになる。
図2のロジスティック写像マップの0.5以下(
図2左側)と一致する曲線が、
図7に示すように得られている。
【0048】
式(4)の非飽和領域を満たす条件はVgs>Vdsのピンチオフ点までであり、それ以上のVdsは、飽和領域として異なる数式に変化する。このため、Vdsは0[V]から0.5[V]までの変動範囲が対象となり、上限はVds=0.5[V],Vout=1.0[V]となる。
【0049】
図2のロジスティック写像マップの右側“X
i>0.5”となる範囲の計算が必要になるが、Vds>0.5のとき、“1-Vds”の演算を行った後、Vout=4Vds(1-Vds)を行えば同等の解が得られる。例えばVds=0.7[V]のとき、Vds=1-0.7=0.3[V]を得てから、Vout=4x0.3x(1-0.3)を行うことになるが、Vds=0.7[V]を入力した場合には、Vout=4x0.7x(1-0.7)となり、計算結果は同じになるからである。
【0050】
“1-Vds”を行う2つのPMOSトランジスタ(閾値電圧Vth=0[V])からなる
図1に示した引き算回路20を
図8に単独で示す。
図8の右側は左側のPMOSトランジスタのDC解析を行った結果である。この解析結果は、Vinを0.0[V]~1.0[V]まで変化させた場合のVoutの電圧レベルを示したものである。“Vds/2(=0.5[V])≦Vin”範囲では、Voutは0.5[V]を境にVinの電圧レベルに対してVd=1.0[V]から“Vout=Vds-Vin(但しVds/2≦Vin)”の引き算を行っている。このようにVin>0.5の場合は、0.5を境に折り返して入力電圧値をマッピングするように出力電圧を得るため、引き算を行う。
【0051】
以上の通りの
図1に示したアナログ演算回路により構成されるロジスティック写像を行う全体のアナログ演算回路が、本実施形態に係る乱数生成装置である。
図1に示した乱数生成装置の回路動作を、
図9の波形(横軸:時間‐縦軸:電圧)を参照しながら説明する。
図1に示すように、アナログスイッチが“SW0,SW1,SW2,SW3,SW4”と5つ用意されており、これらは
図9にスイッチ名称と基本的に同じ符号の制御信号“SW0,SW1,SW2or3,SW4”が0[V](Low)のときに開放(オフ)状態、1[V](High)のときに閉成(オン)状態となる。これらのアナログスイッチ “SW0,SW1,SW2,SW3,SW4”をタイミング制御回路51からの制御信号でオンオフすることでロジスティック写像の演算が行われる。
【0052】
始めに、スイッチSW0は閉成状態とされ、初期値入力部50から初期値X
0の電圧(
図1では例としてX
0=0.3[V])が写像演算回路10へ与えられ、写像演算回路10によるロジスティック写像の結果、X
1とされてVout(=0.84[V])が生成される。スイッチSW1も始めは閉成状態にあり、第1のサンプルホールド回路41に送出されX
1として電圧レベルが保持される。
【0053】
図9の波形は横軸が時間になっており、時間が3[μsec]のとき、スイッチSW0とスイッチSW1の制御信号がLow状態になることでこれらのスイッチSW0、SW1は開放される。第1のサンプルホールド回路41の入力側に設けられているスイッチSW1が開放されるが、第1のサンプルホールド回路41は電圧レベルを保持し続ける。このため、
図9の最下位の波形“X
i+1”は
図1の伝送線路X
i+1の電圧レベルを示しており、X
1=0.84[V]として保持状態となっている。この間、他のスイッチSW2,SW3,SW4への制御信号はLowレベルの状態で、スイッチSW2,SW3,SW4は開放状態とされている。
【0054】
次に時間が5[μsec]のとき、
図1のタイミング制御回路51からの出力された
図9の制御信号“SW2or3”の波形は、High状態になっている。また、
図1に示すコンパレータ53は“X
i+1”のレベルが0.5[V]未満のときLow状態(0)を出力し、0.5[V]以上のときはHigh状態(1)を出力する。5[μsec]時点では“X
i+1”=0.84[V]となり、0.5[V]以上のためコンパレータ53はHigh状態を出力している。アンド回路AND1には、コンパレータ53の出力であるHigh状態の信号と、タイミング制御回路51~出力された制御信号“SW2or3”がHighとされて与えられている。この結果、アンド回路AND1からは、論理積の結果としてHighが出力されるため、スイッチSW3は閉成されることになる。このため
図1の引き算回路20からは、“1-0.84=0.16[V]”が出力され、第2のサンプルホールド回路42に次の入力電圧として上記電圧レベル“0.16[V]”が保持される。
【0055】
次に時間が8[μsec]のとき、制御信号“SW2or3”はLow状態になることでアンド回路AND1とアンド回路AND2の出力はいずれもLow状態になるため、スイッチSW2、SW3は共に開放状態とされ第2のサンプルホールド回路42は0.16[V]を保持した状態となる。
【0056】
時間が10[μsec]のとき、スイッチSW4の制御信号とスイッチSW1の制御信号が同時にHighになりスイッチSW4、SW1が閉成され、第2のサンプルホールド回路42のX1=0.16が写像演算回路10へ送られて、ロジスティック写像が行われ、この演算結果としてX2=0.5376が第1のサンプルホールド回路41に保持される。
【0057】
この間、スイッチSW0の制御信号はLow状態でスイッチSW0は開放されており、初期値X0の取り込み以降は開放状態が継続される。また、スイッチSW4は初期値X0の取り込みが行われないときに、繰り返し演算のためにフィードバック入力を行うためのもので、閉成状態になった以降は閉成状態が継続される。
【0058】
次に時間が13[μsec]となると、再びスイッチSW1の制御信号がLow状態となり、第1のサンプルホールド回路41には、“Xi+1=0.5376[V]”が保持される。0.5[V]以上のためコンパレータ53はHighを出力する。
【0059】
時間が15[μsec]となり、制御信号SW2or3がHighとなると、アンド回路AND1がHighを出力するため、スイッチSW3が閉成状態され、引き算回路20による引き算の結果、0.4624[V]が第2のサンプルホールド回路42に送出され保持される。
【0060】
時間が18[μsec]のときに、スイッチSW2、SW3の制御信号はLowになり、スイッチSW2、SW3が開放状態とされる。電圧レベル(0.4624[V])第2のサンプルホールド回路42に保持されており、時間が20[μsec]のときにスイッチSW1が閉成され、写像演算回路10によるロジスティック写像の演算結果であるX3=0.9943[V]が第1のサンプルホールド回路41へ送出される。
【0061】
以降も制御信号“SW2or3”と制御信号“SW1”が交互に切り換ることでロジスティック写像のアナログ演算が反復されて行く。このため、乱数取出部30へ送られる信号“Xi+1”は、
図9の最下行の波形に示すように制御信号“SW1”のHighエッジに同期して変動される。
【0062】
信号“Xi+1”の電圧レベルは、
図1の乱数取出部(AD変換回路等を含む)30へ送られ、ディジタル化され、ディジタル化された値はタイミング制御回路51により任意ビットを出力するように制御されて出力バッファ31に取り込まれ、乱数として出力されて行く。
【0063】
図11に示すように、“テント写像の初期値X
0区間”列の区間[0,1]を均等に16等分した各番号「丸1」~「丸16」の区間内において、ロジスティック写像の式(1)に従って、初期値X
0=0.3として10万回反復を行い、X
i(X
0~X
99999)の各X
iが取った値が属する区間を、区間毎にカウントアップして数えたヒストグラムを作成した。このヒストグラムを
図13に示す。ヒストグラムの度数を見ると分るように、写像を反復し続けるとX
iは0側と1側に近い区間「丸1」と「丸16」の区間を取る割合が大きいこと(不変測度)が確認できる。このため、乱数を取得する際、
図1の全体回路構成に示す乱数取出部30に用いられるAD変換回路の分解能の閾値が等間隔である場合は、写像の反復を積み重ねることでX
iの頻度に偏りが生じる。
【0064】
図11に示すように、例えば分解能が4ビットの場合において、下位2ビットを乱数値として抽出するようにしたときを考える。係る場合には、
図11のバイナリコードに示すようにX
iが「丸1」の区間を取った場合、AD変換後は“0000”が取得され下位2ビットは“00
00”のビット列から“00”が取得される。また、X
iが「丸16」の区間を取った場合、AD変換後は“1111”が取得され下位2ビットは“11
11”のビット列から“11”が取得される。このため、他の“01”と“10”よりも“00”と“11”を採る確率が高くなるため偏りが生じ、乱数性能として一様性の面では悪化する懸念がある。
【0065】
ここで、初期値X
0の区間[0,1]を16等分に振り分けたテント写像について考えてみる。
図10にテント写像のマップを示し、テント写像初期値X
0の区間を「丸1」~「丸16」に均等にすると、各区間の範囲を示す数値は
図11 に示すようになる。特開2017‐158003号公報には、以下の式(5)に示すテント写像の反復を行い、更に、特開2016-039418号公報に示す テント写像型のAD変換回路を用いて、X
i<0.5のとき、ビット0を取得し、0.5≦X
iのとき、ビット1を取得し、連続して得られたグレイコードを逆にたどることでD/A変換を行う旨が示されている。
【数6】
【0066】
そこで、ロジスティック写像を用いて写像の度にX
i<0.5のとき、ビット0を取得し、0.5≦X
iのとき、ビット1を取得し、連続してビット列を得て、そのビット列を遡って初期値X
0の区間を求めることを考える。例として、
図14に示すように得られたビット列が“0010”であるとする。
【0067】
まず、1番最後のビットは、“0”であるため、X
3は必ず区間“0≦X
3<0.5”の値であることがわかる。次に、“X
3=4X
2(1-X
2)”の式は2次方程式“4X
2
2-4X
2+X
3=0”に変形され、下限X
3=0を当てはめると、X
2=1もしくはX
2=-1が得られる。ここでは、“X
i>0”であるため、“X
2=1”であることがわかる。上限X
3=0.5を当てはめると“4X
2
2-4X
2+0.5=0”となり、2次方程式ax
2+bx+c=0について、次の解の公式を使うことができる。
【数7】
【0068】
上記の公式を用いてX2(ここでa=4,b=-4,c=0.5を与える)を求めると、
X2=0.146446609407もしくはX2=0.853553390593が解(小数点は12桁まで表示)となる。ここで、X2は観測されたビットが1のため区間
“0.5≦X2<1.0”から生じていることは明らかである。このため、
X2=0.853553390593を採用するとX2の区間は
“0.853553390593≦X2<1”の範囲から計算されたことがわかる。
【0069】
次に、“X2=4X1(1-X1)”の式は2次方程式 “4X1
2-4X1+X2=0”に変形され、同様に先に求めたX2の区間から上限X2=1は“4X1
2-4X1+1=0”より2次方程式の解はX1=0.5が得られる。下限X2=0.853553390593は
“4X1
2-4X1-0.853553390593=0”から2次方程式の解より
X1=0.308658283817とX1=0.691341716183が得られ、
X1は観測されたビットが0のため区間“0≦X1<0.5”であることから
X1=0.308658283817であることがわかる。結果としてX1の区間は
“0.308658283817≦X1<0.5”から計算されていることがわかる。
【0070】
最後に、“X1=4X0(1-X0)”は同様に“4X0
2-4X0-0.5=0”と
“4X0
2-4X0-0.308658283817=0”に変形した2次方程式の解を求め、ビット0が観測されていることを考慮に入れると最終的に初期値X0の区間は
“0.084265193849≦X0<0.146446609407”に絞り込むことができる。このため絞り込んだ範囲内から式(1)のロジスティック写像に初期値X0を与えて反復を行い、Xiが0.5以上のときビット“1”を取得し0.5未満のとき、ビット“0”を連続して4ビット分をとると必ずビット列“0010”が得られることを意味する。
【0071】
上記のように観測されたビット列からロジスティック写像の初期値X
0の区間を求める手順にて4ビット分(全16パターン)を求めた結果を
図11の表「ロジスティック写像の初期値X
0区間」に示す。この表では小数点以下は、6桁まで示してある。「丸1」~「丸16」の各初期値X
0の区間からロジスティック写像式(1)を反復演算し、X
iが0.5以上のときビット“1”を取得し、0.5未満のときビット“0”を連続して4ビット分をとると“グレイコード”の列にならったビット列が生成される。
【0072】
この4ビットのグレイコードは、
図12に示すバイナリ変換回路に通すことで、
図11に示すバイナリコードに変換でき初期値X
0に対応した昇順になる。
【0073】
図13のヒストグラムでは、区間[0,1]を等分にした度数を示したが、
図11の表「ロジスティック写像の初期値X
0区間」の各番号「丸1」~「丸16」の区間に変更し、ロジスティック写像式(1)の初期値X
0=0.3として10万回反復を行い、X
iがその区間内を取ったときにカウントアップして数えたヒストグラムを
図15に示す。初期値X
0区間を等分にした
図13のヒストグラムではX
iは0側と1側に偏りが生じたのに対し、
図15の例では、16通りのグレイコードを生成する「丸1」~「丸16」の「ロジスティック写像の初期値X
0区間」に変更したことで各区間の度数がほぼ等しい一様な分布が得られるようになる。
【0074】
このため、ロジスティック写像からX
iをAD変換して乱数として取り出す場合、AD変換のアナログ電圧の閾値を
図11の表「ロジスティック写像の初期値X
0区間」に示す境界値に設定することで例えば「丸1」の区間を取った場合、分解能として4ビット(16分割)のAD変換後のビット列は“0000”が取得するようにして下位2ビット分“00”を乱数として抽出する。また、「丸16」の区間ではビット列は“1111”を取り下位2ビット分“11”を乱数として抽出する。その他の各区間も同様に乱数として出力させることで一様な頻度を持つ乱数を得ることができる。
【0075】
即ち、第2の実施形態では、乱数取出部30には、上記写像演算回路10の出力Xiを閾値0.5と比較して0または1に変換するコンパレータと、上記写像演算回路によりN回繰り返される演算毎に、上記コンパレータから得られるディジタル値を並べて得られるNビットのグレイコードを得て、乱数とするグレイコード処理部とが備えられた構成とすることができる。そして、上記N回の写像を遡って得られる初期値の区分数2Nに属するいずれかの値を初期値として用いる構成とすることができる。
【0076】
上記ではロジスティック写像の反復によって、Xiが0.5以上のときビット“1”を取得し、0.5未満のときビット“0”を取得するというルールにて、連続して取得したビット列の長さが4ビットの場合における初期値X0の境界(或いは範囲)を示した。次に、取得したビット列の任意の長さに応じた、ロジスティック写像の初期値X0の区間の各境界(或いは範囲)を求める漸化式を考える。
【0077】
式(1)は、以下の2次方程式に変形される。
【数8】
【0078】
上記のX
iは、上記2次方程式の解として、次の式により表わすことができる。
【数9】
【0079】
上記において、初期値X
0の区間を求めた過程では、求められたX
i+1の上限と下限を再帰的に与えて計算していたが、X
i+1を“i=0,1,2,…”となるような“c
i”に置き換えて初期値X
0の区間の境界を与える漸化式は、以下の式(6)となる。
【数10】
【0080】
式(6)の漸化式は初期値 “c
0,0=1”を与え、ビット列の長さをnとして、
“i=0,1,2,…,n-1”まで反復演算を行い、初期値X
0の区間の境界を導出して行く。その過程を
図16に示す。
図16の一番上に示した“c
0,0=1”を必ず初期値として代入し、式(6)により“c
1,0=0.5”の解(√の項は0のため、解は一つ)を得る。
【0081】
次に、“c
1,0=0.5”を再帰的に式(6)に代入し解を求めるが、式(6)に“±”の演算があるため解は2つ得られ、“-”の解は“c
2,0=0.146446609407”、“+”の解としては、“c
2,1=0.853553390593”が得られる。次に再び、c
2,0とc
2,1を式(6)の右辺に代入することで、それぞれ2つの解が
図16に示す
[c
3,0,c
3,1]と[c
3,2,c
3,3]として得られ、このような処理を繰り返し実行して行くものである。
【0082】
以上より漸化式である式(6)は、
図16の階層構造のように解が2倍ずつ枝分かれしていくタイプで、“c
i,j”の添え字“i”は反復回数を示し、“j”は“i”に対する解の個数分の番号を割り当てたものである。このため、式(6)に示す“j”の制約は自然数N(0,1,2,…)からなり、“i=0”のときは、“j=0”のみ1つを割り当て、またi>0のときはj<2
i-1の番号を割り当てた個数分の解が存在し、例えばi=1のとき(2
0)はc
1,0=0.5の一つ、i=2のとき(2
1)はj=0とj=1の“c
2,0=0.146446609407”と“c
2,1=0.853553390593”の2つが存在することを意味する。
【0083】
図16ではi=0,1,2,3の各“c
i,j”を示しており、c
1,0(=0.5)から下の15個の値は、
図11の表の4ビット分を観測して絞り込んだロジスティック写像の初期値X
0の区間の境界値となっている。
【0084】
式(6)を用いることでビット列の任意長“n”に応じた初期値X0の境界“ci+1,j”を表すことができ、“ci+1,j”を昇順にソートすることで各バイナリコードの昇順に応じた区間が得られるため、AD変換の標本化の際の閾値電圧として求めておくことができる。
【0085】
図17に、
図10のテント写像マップの等分した初期値X
0区間に対応するロジスティック写像の初期値X
0のマップ図を示す。ここにおいては、
図11のロジスティック写像の初期値X
0の区間(「丸1~丸16」)を示している。
【0086】
以上、ロジスティック写像から一様な分布を持つ乱数値を得るための一手法について説明した。次に、同様にロジスティック写像から一様な分布を持つ乱数値を得るための手法として、初期値X0の選択とAD変換後の乱数となるビットの抽出方法(乱数取出部30の構成)について述べることとする。
【0087】
上記では、ロジスティック写像の反復演算を繰り返した場合に、一様な分布になる初期値X
0の区間を算出する方法を示した。テント写像型のAD変換回路に関する特許出願である特開2016-039418には、
図11の表における「テント写像の初期値X
0区間」である「丸1」~「丸16」を、
図10に示す均等に16等分された初期値X
0区間のいずれかから得て、X
iが0.5以上のときビット“1”を取得し、0.5未満のときビット“0”を取得していくルールにてビット列を取得することが述べられている。この場合、16等分された16通りの初期値X
0を用いることにより、16種の全てのビットパターンを得ることができ、反復を繰り返していくことで一様な分布(独立同分布)を持つことがわかっている。
【0088】
ロジスティック写像がテント写像と位相共役にあることが知られており、
図11に示した「丸1」~「丸16」の区間内より初期値X
0を選択して繰り返し演算を行えば共に区間に対応した同じグレイコードが生成される。推奨する初期値X
0の選択を含め、位相共役について触れる。
【0089】
ロジスティック写像の式(1)の初期値X
0を、三角関数sin
2θに置換して代入すると、次の式(7)となる。
【数11】
【0090】
同様に求めたX
1を式(1)に代入することでX
2は
【数12】
が導かれ“n”回目の写像の値が位相“2
nθ”により、一意にわかるロジスティック
写像の式に変形することができる。
【0091】
次にテント写像との位相共役を確認する。テント写像は式(5)で定義され、写像の反復区間は[0,1]になるが、ここで円周率π(3.14159…)倍した区間[0,π]とし、X
iをθ
iとした式と置き換えると、以下の式(9)に変形することができる。
【数13】
【0092】
【0093】
これについてテント写像式(9)の写像を式(8)の位相としてとらえることでロジスティック写像は常にsin22θiと同期する位相共役な関係にあることがわかる。
【0094】
【0095】
図18において、テント写像[0,1]の点線は式(9)の区間[0,π]をπで割ることでテント写像の反復区間を[0,1]にしたものである。
図18からテント写像の系とロジスティック写像の系が同期していることが判り、位相共益の関係にあることが視覚的に読み取れる。位相共役にあるため、上記のようにテント写像と同期するロジスティック写像の初期値X
0を選択すれば、X
iが0.5以上のときビット“1”を取得し、0.5未満のときビット“0”を取得するルールにてビット列を取得した場合、
図11の表に示すような「丸1」~「丸13」の区間に対応する同等のビット列(グレイコード)を取得することができる。
【0096】
図18から、乱数生成時の初期値X
0の選択の際には、ロジスティック写像の式(1)を変形した式(8)の三角関数の位相“2
nθ”に注目すると、初期値θにπを単純に任意の整数で割った値を入れた場合には、ロジスティック写像の反復で短い周期によって遷移されてしまうことが分かる。
【0097】
例えばπを7で割った値“θ=π/7(0.448799…)”を選択したとき、式(8)より、
X0=sin220(π/7)=sin2(π/7)
X1=sin221(π/7)=sin2(2π/7)
X2=sin222(π/7)=sin2(4π/7)
X3=sin223(π/7)=sin2(8π/7)
=sin2(π+π/7)=(-sin(π/7))2
=sin2(π/7)
とX3はX0の値に戻り、周期長3の短い周期にてロジスティック写像の反復が行われる。
【0098】
図18の時系列も初期値X
0=sin
2(π/13)を与えると、
図18図の下部に具体的なX
iの数値を示すように、周期長6で繰り返されることが確認できる。このように式(8)の位相θにπを単純な整数で割った値を与えて、ロジスティック写像の初期値X
0としたときには、比較的短い周期に落ちてしまい、周期帯も無数に存在することが予測できるため、初期値X
0の選択は周期帯にならない適正値を予め用意しておくことが望ましい。
【0099】
また、
図19には、テント写像の初期値X
0と対応するロジスティック写像の初期値X
0を与えて写像を反復し、X
iが0.5以上のときビット“1”を取得し0.5未満のときビット“0” を取得するルールにてビット列を取得したときのビット値と、そのX
iのときの
図11の表に対応する初期値X
0の区間「丸1」~「丸16」へ出力する4ビット分のグレイコード、更にそれをバイナリ変換したバイナリコードを示す。
【0100】
テント写像の初期値X
0は次の式により表わされる。
【数16】
【0101】
ロジスティック写像の初期値X0は、X0=0.3を設定している。ロジスティック写像の初期値X0=0.3に対応するテント写像の初期値X0を算出している。
【0102】
図19では、AD変換後は分解能として4ビット分の出力を送出しているが、毎回乱数としてグレイコードの最下位ビットを取ることを想定すると、
図19のグレイコードの欄において破線の枠線で囲った部分のようになる。一方、
図19の取得ビットの欄においては、X
iが0.5以上のときビット“1”を取得し、0.5未満のときビット“0”を取得した1ビットを各回毎に示したものである。取得ビットの欄において破線の枠線により囲んである、写像を4回行った後からビット値を順番に並べたビット列は、グレイコードの欄において最下位ビットを選択して当初から順に並べたビット列と同じであることが確認できる。これは例えば、分解能8ビットで最下位ビットを取った場合では写像を8回行った後からの最上位ビットの順番が同じものとなることがわかった。即ち、テント写像の初期値X
0に対応する2進数展開したグレイコードが写像の反復の限り、同じ値を取得可能であることを意味する。この
図19においては、グレイコードをバイナリ変換して得られたバイナリコードがテント写像の初期値X
0に対応している。
【0103】
上記の説明から、最上位ビットを連続して採った値はテント写像の初期値X0を表すビットコードそのものとなっているため、つまり、循環しない小数(無理数)の値を初期値X0に設定すれば理論的に乱数性能として望ましい非周期な値が得られることを意味する。このように、初期値入力部50は、無理数を初期値として出力するように構成することができる。
【0104】
またバイナリコードは、テント写像の初期値X
0そのものの値として対応するが、
図17の「丸1」~「丸16」の“ロジスティック写像の初期値X
0区間”に示す一様な分布がとれるように変更した区間に対応するAD変換後に、欲しいビット値がロジスティック写像においても0.5以上か未満かの区分けによる1ビット抽出で実現することができる。従って、実施形態に備えられる乱数取出部30は、写像演算回路10の出力を閾値と比較して0または1に変換するコンパレータを備える構成とすることができる。ここで、本実施形態における閾値は、0.5となる。
【0105】
実施形態に係る乱数生成装置は、チップ毎の製造誤差や温度特性などによる微妙な誤差からカオスの持つ初期鋭敏性による予測不可能な系を生成させ良質な乱数系列を取ることを期待するアナログ演算である。しかしながら、実施形態に係る乱数生成装置は、初期値X0の選び方により短い周期になる可能性はゼロではない。このため、予め循環しない小数(無理数)を初期値X0として選択しておくことが望ましいのである。
【0106】
例として一般的に知られる無理数は、円周率π(3.14159265358979…)が知られている。区間[0,1]のテント写像における式(5)の初期値X0を“π/10”に設定すれば良く、これに対応するロジスティック写像の初期値X0としては、区間をπ倍した“π2/10”を式(7)の位相θに割り当て
X0=sin2(π2/10)=0.696147…
を乱数取出部50に設定することで理論的には半永久的に非周期のビット列が出力できる。なお、循環する小数(有理数)の一例(区間が、[0,1]のテント写像の場合)としては、“1/7=0.142857142857…”を挙げることができるが、この値を初期値設定として避けるようにする。
【0107】
また、乱数生成回路としてテント写像の反復演算を行うアナログ演算回路を構成するようにしても良い。この場合には、循環しない(周期に落ちない)ロジスティック写像の初期値X
0を割り当てることを考えると、簡単な抵抗分圧比を出力する回路構成を採用することで、比較的容易に初期値X
0を与えられる初期値入力部50の構成とすることができる。例として
図19では、ロジスティック写像の初期値X
0=0.3を選択しているが、これと位相共役になるテント写像の初期値X
0は次の式による値とすることができる。
【数17】
【0108】
上記の式による初期値X0は、√(ルート)の項から無理数をテント写像の初期値X0として与えることができるため、非周期の系列を得ることができる。テント写像の初期値X0として、“0.3”(=3/10)を与えた場合は、有理数のため短い周期帯でテント写像は遷移してしまう。これに対し、ロジスティック写像の初期値X0として“0.3”を与えると、非周期の系列を得ることができ、1[V]を抵抗分圧比7:3で割った0.3[V]の生成回路が初期値入力部50の容易な構成とすることができる。
【0109】
図1の回路図はロジスティック写像のX
iに対して乱数取出部30として、AD変換回路を採用し、AD変換により乱数としてビット抽出する実施形態を採用することができる。以上から別の実施形態では、X
iが0.5以上のときビット“1”を取得し、0.5未満のときビット“0”を取得するといったシンプルな構成とすることができる。この実施形態においても初期値X
0に依存するビット列を生成でき、0.5[V]未満か以上かのコンパレータ比較のみによる1ビット出力を行う乱数取出部30でも非周期的な乱数列が得られることが推定され、AD変換回路が不要であるから、回路実装コストを削減して良質な乱数列を得ることが可能である。
【0110】
非特許文献1には、コントロールパラメータ4を変動させることで乱数性能を向上できる旨が記載されている。本実施形態に係るアナログ演算回路を用いた乱数生成装置においても、コントロールパラメータ4に着目する。
図5ではVgs=1.0[V]固定にしたI-V特性を採用している。これに対し別の実施形態では、Vgsを変動させることで写像の系列を変更して周期領域を回避する効果を与えることが考えられる。例として
図20に、Vgs=0.49[V]に変更したI-V特性のグラフをVgs=0.5[V]と比較して示す。
【0111】
変動方法としてVgsには外部から周期変動を加える(変動するVgsをVgs’とすると必ずVgs>Vgs’を満たすようにする)ことが考えられる。即ち、他の実施形態では、写像演算回路10のI-V変換回路の入力側には、入力側にソースとなるように配置されたNMOSトランジスタが接続され、そのゲート・ソース電圧(Vgs)を初期値から所要時に低下させて(Vgs’とする(Vgs>Vgs’)を)与えるゲート・ソース電圧制御回路が備えられている構成としても良い。他にサンプリングの際、電圧が微小にアンダーシュートするような機構を入れることも考えられる。これに対応する実施形態では、第1のサンプルホールド回路41における所定回目のサンプリングの際に、上記NMOSトランジスタのゲート・ソース電圧をアンダーシュートさせてサンプリングを行うサンプリング電圧制御部が備えられている構成を採用しても良い。
【0112】
また、本実施形態をICチップとして製造し、製造後にチップを動作させてみて周期帯か否かを検査する。周期を検知した場合に非周期帯になるようにVgsを変更する機構を与える、もしくは周期にならない初期値X0の設定を変更するといった調整を行ってから出荷することも考えられる。
【0113】
乱数取出部30にAD変換回路を採用した場合に、AD変換後のビット取得する回路を設けても良い。例えば、AD変換の分解能が8ビットで、2進数として(10110011)であった場合、8ビット分をそのまま乱数として利用するようにしても良い。これに対し、有限演算実装のディジタル演算にて写像の都度Xiの上位ビット側を取得すると乱数性が悪く下位ビット側を取得したほうが乱数性能がよいという報告があり、例えば分解能が8ビット(0~255)とした場合AD変換後の値のビットが(10110011)であった場合は下位4ビット側(10110011)を取得する構成を乱数取出部30が備えていても良い。
【0114】
AD変換後の一回の写像から複数ビットを乱数として取得すれば乱数生成速度が速くなる効果があるが、ビット桁により乱数性能に影響する懸念があるため、取得したビット列に対して乱数検定を行い、ビット抽出する際の最適なビット桁を把握しておくことが望ましい。上記乱数取出部30には、AD変換して得た複数ビットの所定位置を乱数として選択するビット選択回路を備える実施形態とすることができる。
【0115】
また、写像の反復の度に乱数値を取るのではなく、写像を空けて取ることで取得されるビットの変動がよりダイナミックになり乱数性能が良くなるといったことが考えられる。上記乱数取出部30には、AD変換して得た複数ビットの所定位置を乱数として選択するビット選択回路を備える実施形態において、ビット選択回路は、写像回に応じて所定位置を選択する構成とすることができる。例えば1回の写像結果から8ビットのAD変換されたビット列を得る場合に、1回目の写像結果については、下位2ビットを選択し、2回目の写像結果については、下位2ビット目からの2ビット、・・・という如くである。上記乱数取出部30には、上記写像演算回路10の出力中から、所定の回の出力を選択して乱数とする写像演算回選択部が備えられている構成としても良い。
【符号の説明】
【0116】
10 写像演算回路
20 引き算回路
30 乱数取出部
31 出力バッファ
41 第1のサンプルホールド回路
42 第2のサンプルホールド回路
50 初期値入力部
51 タイミング制御回路
52 スイッチ制御回路
53 コンパレータ