JP6678958B2 - Pseudo-random number generation device and pseudo-random number generation program - Google Patents

Pseudo-random number generation device and pseudo-random number generation program Download PDF

Info

Publication number
JP6678958B2
JP6678958B2 JP2016238902A JP2016238902A JP6678958B2 JP 6678958 B2 JP6678958 B2 JP 6678958B2 JP 2016238902 A JP2016238902 A JP 2016238902A JP 2016238902 A JP2016238902 A JP 2016238902A JP 6678958 B2 JP6678958 B2 JP 6678958B2
Authority
JP
Japan
Prior art keywords
mapping
pseudo
calculation
random number
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016238902A
Other languages
Japanese (ja)
Other versions
JP2018097438A (en
Inventor
秀俊 奥富
秀俊 奥富
俊輔 荒木
俊輔 荒木
武 宮崎
武 宮崎
聡 上原
聡 上原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
THE UNIVERSITY OF KITAKYUSHU
Kyushu Institute of Technology NUC
Toshiba Information Systems Japan Corp
Original Assignee
THE UNIVERSITY OF KITAKYUSHU
Kyushu Institute of Technology NUC
Toshiba Information Systems Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by THE UNIVERSITY OF KITAKYUSHU, Kyushu Institute of Technology NUC, Toshiba Information Systems Japan Corp filed Critical THE UNIVERSITY OF KITAKYUSHU
Priority to JP2016238902A priority Critical patent/JP6678958B2/en
Publication of JP2018097438A publication Critical patent/JP2018097438A/en
Application granted granted Critical
Publication of JP6678958B2 publication Critical patent/JP6678958B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、生成された擬似乱数から初期の写像値やパラメータ列などのシード情報を推定することが困難な擬似乱数生成装置及び擬似乱数生成プログラムに関するものである。本発明は、カオス写像の反復によって得られる乱雑データを利用して乱数を得る擬似乱数生成方式に属する。   The present invention relates to a pseudo random number generation device and a pseudo random number generation program in which it is difficult to estimate seed information such as an initial mapping value and a parameter sequence from a generated pseudo random number. The present invention belongs to a pseudo-random number generation method that obtains a random number using random data obtained by repeating chaotic maps.

従来より、カオス写像に基づく擬似乱数生成法や暗号化手法が数多く提案されている。この擬似乱数生成法や暗号化手法としては、カオスの特徴をどのように応用するかという着眼/発想の違いにより様々な実現手法が存在する。   Conventionally, many pseudorandom number generation methods and encryption methods based on chaotic maps have been proposed. As the pseudo-random number generation method and the encryption method, there are various realization methods depending on the difference in the way of thinking / how to apply the characteristics of chaos.

上記のカオス写像に基づく擬似乱数生成法は、今日一般的に利用されている擬似乱数生成法や暗号化手法に比べ歴史が浅い。本発明の発明者らは、カオス写像を有限精度の計算機(デジタルコンピュータ)に実装する際に生じる課題を解決して、例えば、NIST (National Institute of Standards and Technology /米国標準技術研究所)が定める乱数検定法(A. Rukhin. and et al, “A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications," NIST, Special Publication 800-22 Revision1A, April 2010.(文献1))に合格する等の「統計的評価」の側面において、良質な乱数を得ることを初期目標とした。   The above-mentioned pseudo-random number generation method based on the chaotic map has a short history as compared with the pseudo-random number generation method and the encryption method which are generally used today. The inventors of the present invention solve the problem that occurs when a chaotic map is implemented in a computer (digital computer) of finite precision, and are defined by, for example, NIST (National Institute of Standards and Technology). Pass the A. Rukhin. And et al, “A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications,” NIST, Special Publication 800-22 Revision1A, April 2010. In terms of "statistical evaluation", the initial goal was to obtain good random numbers.

統計的側面において良好な評価結果を得られる擬似乱数生成方式としては、例えば文献特許文献1、特許文献2、特許文献3、特許文献4、特許文献5、特許文献6、特許文献6、特許文献7、特許文献8、非特許文献1、非特許文献2に記載のものを挙げることができる。また、構造がやや異なるが、同じくカオス写像の反復を利用する擬似乱数生成手法としては非特許文献3、4、5、6、7に記載のものを挙げることができる。   Pseudo-random number generation methods that can obtain good evaluation results from a statistical aspect include, for example, Patent Document 1, Patent Document 2, Patent Document 3, Patent Document 4, Patent Document 5, Patent Document 6, Patent Document 6, Patent Document. 7, Patent Document 8, Non-Patent Document 1, and Non-Patent Document 2 can be cited. Further, although the structure is slightly different, the pseudo random number generation method using the repetition of the chaotic mapping can also include those described in Non-Patent Documents 3, 4, 5, 6, and 7.

カオス写像に基づく擬似乱数生成に属する方式のうち最もシンプルな構成をもつ初歩的な方式(以下、初歩方式と称す)を図1に示す。この初歩方式では、初期化部S11においてシードsと所望のランダムビット列長nを入力し、初期値xを上記シードsから求め、また、パラメータ値aを上記シードsから求め、カウンタ値iを0とする。次のカウントアップ部S12において、カウンタ値iを1インクリメントする。 FIG. 1 shows a rudimentary method (hereinafter referred to as a rudimentary method) having the simplest configuration among the methods belonging to the pseudo random number generation based on the chaotic mapping. In this elementary method, a seed s and a desired random bit string length n are input in the initialization unit S11, an initial value x 0 is obtained from the seed s, a parameter value a is obtained from the seed s, and a counter value i is obtained. Set to 0. In the next count-up unit S12, the counter value i is incremented by 1.

更に、次の写像計算部S13において、パラメータ値aの写像fを用いて写像値xを更新し(自らを自らに写像する/反復写像)、次のランダムビット抽出部S14において写像毎にxの任意の所定箇所のビットを抽出して擬似ランダムビット列b={b,b,・・・,b}を得る。 Further, in the next mapping calculation unit S13, the mapping value x i is updated using the mapping f a of the parameter value a (mapping itself / iterative mapping), and in the next random bit extraction unit S14, for each mapping. Bits at arbitrary predetermined positions of x i are extracted to obtain a pseudo random bit string b = {b 1 , b 2 , ..., B n }.

更に、終了判定部S15においてカウンタ値iがnとなったかを判定し、i<nであれば、カウントアップ部S12に戻って処理を続ける。一方、終了判定部S15においてカウンタ値iがnとなった場合には、エンドとなり処理を終了する。   Further, the end determination unit S15 determines whether the counter value i becomes n. If i <n, the process returns to the count-up unit S12 and continues the processing. On the other hand, when the counter value i becomes n in the end determination unit S15, the process ends and the process ends.

次に、特許文献1〜8、非特許文献1、2に開示された方式における「擬似乱数生成部」に関する特徴を説明する。   Next, characteristics of the “pseudo-random number generator” in the methods disclosed in Patent Documents 1 to 8 and Non-Patent Documents 1 and 2 will be described.

初歩方式のランダムビット抽出部が写像値xから特定のビットを1ビット抽出する構成を有するのに対し、文献2には、複数の閾値を設け写像値xから複数のビット(ビット列)を得て、これらを最終的に結合(排他的論理和)する手法が示されている(特許文献1図9)。特許文献1においては、これにより乱数性の向上を図っている。 While the random bit extraction unit of the elementary method has a configuration for extracting one specific bit from the mapping value x i , in Reference 2, a plurality of thresholds are provided and a plurality of bits (bit string) are provided from the mapping value x i. A method of obtaining these and finally combining them (exclusive OR) is shown (Patent Document 1 FIG. 9). In Patent Document 1, this improves the randomness.

特許文献2には、複数のカオス写像(初歩方式や特許文献1に示される方式)の出力を結合(排他的論理和)する手法等が示されている(特許文献2図16)。特許文献2においては、これにより乱数性の向上を図ることができる。   Patent Document 2 discloses a method of combining (exclusive OR) the outputs of a plurality of chaotic maps (the elementary method and the method shown in Patent Document 1) (Patent Document 2 FIG. 16). In Patent Document 2, this can improve randomness.

特許文献3には、初歩方式の写像計算部に相応する部分において、高次数の数値が格納されるレジスタサイズを、低次数の数値が格納されるレジスタサイズよりも多く確保することが開示されている。例えば、ある数値xの二乗xが格納されるメモリ空間を多く確保することが開示されている。更に、特許文献3においては、上記に対応した演算法が示されている(特許文献3図1)。特許文献3においては、これにより、有限精度のデジタルコンピュータなどの計算機にてカオス写像を実装する際の根本的な課題(例えば、桁丸めにより生じる隣接軌道の縮退が短周期化を招くという問題)を所定レベルで回避することができ、乱数の長周期化を図ることができる。 Patent Document 3 discloses securing a register size in which a high-order numerical value is stored larger than a register size in which a low-order numerical value is stored in a portion corresponding to a rudimentary method mapping calculation unit. There is. For example, it is disclosed to secure a large memory space for storing a square x 2 of a certain numerical value x. Furthermore, Patent Document 3 discloses an arithmetic method corresponding to the above (Patent Document 3 FIG. 1). In Patent Document 3, this causes a fundamental problem in implementing a chaotic map on a computer such as a finite precision digital computer (for example, a problem that degeneration of adjacent trajectories caused by digit rounding causes a short period). Can be avoided at a predetermined level, and the random number can have a long period.

特許文献4には、初歩方式のランダムビット抽出部に相応する部分の出力に対して、更に、一方向性関数を作用させる手段が追加されものが開示されている(特許文献4図1)。これにより、特許文献4においては、乱数性の向上を図っている。   Patent Document 4 discloses a device in which a means for applying a one-way function is further added to the output of the portion corresponding to the random bit extraction unit of the elementary method (Patent Document 4 FIG. 1). As a result, in Patent Document 4, the randomness is improved.

特許文献5、6、非特許文献1、2には、初歩方式に対して、内部状態を変動させる手段が追加されたものが開示されている。即ち、図2に示すように、図1に示した初歩方式のフローチャートにおいて、ランダムビット抽出部S14と終了判定部S15との間で内部状態変動部S21を実行する。この内部状態変動部S21では、一例として、パラメータ値aを元のパラメータ値aとシードsにより更新し、写像値xを元の写像値xとシードsにより更新する。これによって、前述同様の短周期性問題が解消されると共に、一般的に使用されるパラメータ値以外の値も利用することが可能(扱える状態空間が飛躍的に広がる)となる。更に、特許文献5、6、非特許文献1、2に記載のものによれば、良質な乱数を得ることができることが、「岩野隆, 金田学, 奥富秀俊, “一次元写像を用いた擬似乱数生成におけるパラメータ変動の効果について," 2007 年暗号と情報セキュリティシンポジウム(SCIS2007), 3E2-5, January 2007」(文献2)、「岩野隆, 金田学, 奥富秀俊, “一次元写像を用いた擬似乱数生成におけるパラメータ可変の効果について," 信学技報Vol.106, No.596, ISEC2006-123, pp.47-51, March 2007」(文献3)、「岩野隆, 金田学, 奥富秀俊, “テント型写像を用いた擬似乱数生成における内部状態変動の効果について," 2008 年暗号と情報セキュリティシンポジウム(SCIS2008), 2A2-4, January 2008」(文献4)に示されている。 Patent Documents 5 and 6 and Non-Patent Documents 1 and 2 disclose that the means for changing the internal state is added to the elementary method. That is, as shown in FIG. 2, the internal state changing unit S21 is executed between the random bit extracting unit S14 and the end determining unit S15 in the flowchart of the elementary method shown in FIG. In the internal state changing unit S21, as an example, the parameter value a is updated with the original parameter value a and the seed s, and the mapping value x i is updated with the original mapping value x i and the seed s. As a result, the short-period problem similar to that described above is solved, and it becomes possible to use values other than commonly used parameter values (the state space that can be handled is dramatically expanded). Furthermore, according to the methods described in Patent Documents 5 and 6 and Non-Patent Documents 1 and 2, it is possible to obtain high-quality random numbers. "Taka Iwano, Manabu Kaneda, Hidetoshi Okutomi," Regarding the effect of parameter fluctuation on random number generation, "2007 Cryptography and Information Security Symposium (SCIS2007), 3E2-5, January 2007" (Reference 2), "Takashi Iwano, Manabu Kaneda, Hidetoshi Okutomi," Using one-dimensional mapping On the effect of variable parameters on pseudo-random number generation, "Technical Report, Vol.106, No.596, ISEC2006-123, pp.47-51, March 2007" (Reference 3), "Takashi Iwano, Manabu Kaneda, Hidetoshi Okutomi. , “On the effect of internal state fluctuation in pseudo-random number generation using tent-type mapping,” 2008 Cryptography and Information Security Symposium (SCIS2008), 2A2-4, January 2008, is shown (Reference 4).

上記の「一般的に使用されるパラメータ」とは、テント写像ではコントロールパラメータ2、ロジスティック写像ではコントロールパラメータ4、が利用されることを意味する。これ以外のパラメータを利用すると、写像値の分布に偏りが生じることが判っている。   The above-mentioned “generally used parameters” means that the control parameter 2 is used in the tent map and the control parameter 4 is used in the logistic map. It has been found that when parameters other than these are used, the distribution of mapping values is biased.

特許文献7には、複数の写像値(その初期値)を用意してベクトルとし、また、複数の写像を用意して行列とし、ベクトル演算(行列演算)により写像を実施した後、写像後のベクトルに回転変換を施す手法を用いた擬似乱数生成手法が示されている(特許文献7図1)。この手法は、すなわち、複数の初歩方式を用意し、写像後に各写像値を入れ替えることに等しいものである。特許文献7においては、これにより乱数性の向上を図っている。   In Patent Document 7, a plurality of mapping values (initial values) are prepared to be a vector, a plurality of mappings are prepared to be a matrix, and after mapping is performed by vector calculation (matrix calculation), A pseudo-random number generation method using a method of rotating a vector is shown (Patent Document 7, FIG. 1). This method is equivalent to preparing a plurality of elementary methods and replacing each mapping value after mapping. In Patent Document 7, this improves the randomness.

初歩方式のランダムビット抽出部が写像値xから特定のビットを1ビット抽出するのに対し、特許文献8には、コントロールパラメータが4の場合のロジスティック写像を用いる場合に限定されるが、写像値x(Nビットとする)の計算の中間段階、すなわち、x=4xi−1(1−xi−1)の右辺に相当する部分が一時的に2Nビットになるため、その段階において上位と下位のNビットを排他的論理和演算し、効率的に乱数を得る手法が開示されている。 The random bit extraction unit of the elementary method extracts one specific bit from the mapping value x i , whereas Patent Document 8 is limited to the case of using the logistic mapping when the control parameter is 4, but the mapping is performed. Intermediate stage of calculation of the value x i (assumed to be N bits), that is, the portion corresponding to the right side of x i = 4x i−1 (1-x i−1 ) temporarily becomes 2N bits, and therefore, that stage Discloses a method of performing an exclusive OR operation on upper and lower N bits to efficiently obtain a random number.

しかしながら、上記の初歩方式を限られた演算精度で実装する場合には、「S. Araki, T. Miyazaki, and S. Uehara, “Analysis for Pseudorandom Number Generators Using Logistic Map", Proc. of 2006 International Symposium on Information Theory and its Applications,2006.」(文献5))、「S. Araki, T. Miyazaki, S. Uehara and K. Kakizaki, “A Study on Precision of Pseudorandom Number Generators Using the Logistic Map," Proc. of 2012 International Symposium on Information Theory and its Applications, 2012, pp. 740-744, 2012.」(文献6)、「 荒木俊輔, 宮崎武, 上原聡, 硴崎賢一, “整数上のテント写像を用いた擬似乱数生成器に関する一考察," 2013 年暗号と情報セキュリティシンポジウム(SCIS2013), 2F3-4, January 2013.」(文献7)に示されている通り、統計的側面において十分に良質な擬似ランダムビット列を得ることができない。ロジスティック写像を用いた場合は、文献5、6に示されているように、少なくとも53ビット以上が必要であり、テント写像を用いた場合は少なくとも今日の計算機を遥かに超える演算精度が必要となる「奥富秀俊, 中村勝洋, “テント型写像から得られる擬似ランダムビット列の初期値推測法について," 電子情報通信学会論文誌VOL.J92-A, No.7, pp.487-497, July 2009.」(文献8)。   However, when implementing the above elementary method with limited arithmetic accuracy, "S. Araki, T. Miyazaki, and S. Uehara," Analysis for Pseudorandom Number Generators Using Logistic Map ", Proc. Of 2006 International Symposium on Information Theory and its Applications, 2006. "(Reference 5))," S. Araki, T. Miyazaki, S. Uehara and K. Kakizaki, "A Study on Precision of Pseudorandom Number Generators Using the Logistic Map," Proc. of 2012 International Symposium on Information Theory and its Applications, 2012, pp. 740-744, 2012. ”(Reference 6),“ Shunsuke Araki, Takeshi Miyazaki, Satoshi Uehara, Kenichi Hirezaki, “Using integer tent maps A Study on Pseudo Random Number Generator, "Symposium on Cryptography and Information Security 2013 (SCIS2013), 2F3-4, January 2013." (Reference 7), Pseudo Random Bit Sequence with sufficiently good statistical aspect Can't get When the logistic map is used, at least 53 bits or more are required as shown in the documents 5 and 6, and when the tent map is used, at least the operation precision far exceeding that of today's computers is required. "Hidetoshi Okutomi, Katsuhiro Nakamura," A Method for Estimating Initial Values of Pseudo Random Bit Sequences Obtained from Tent-type Mapping, "IEICE Transactions VOL.J92-A, No.7, pp.487-497, July 2009. (Reference 8).

特許文献1〜8、非特許文献1〜7に示される従来手法に共通することは、カオス写像の反復計算によって得られる系列を利用することである。中でも、写像毎に写像値の最上位ビットを抽出して擬似ランダムビット列を構成する手法は、当該擬似ランダムビット列の生成に使われたシード情報の一部が推測可能であることが知られている「大熊健司, 櫻井幸一, “一次元写像に基づくカオス擬似乱数列の暗号論的安全性について," 1999 年暗号と情報セキュリティシンポジウム(SCIS'99), A-7-1, 1999.」(文献9)、「E.Alvarez, H.Montoya, M.Romera, G.pastor, “Gray codes and 1D quadratic maps," Electronics Letters 34(1998) 1304-1306.」(文献10)、「Cusick TW, “Gray codes and the symbolic dynamics of quadratic maps," Electronics Letters 35(1999) 468-469.」(文献11)、「E.Alvarez, H.Montoya, M.Romera, G.pastor, “Cryptanalysis of a chaotic encryption system," Physics Letters A276(2000) 191-196.」(文献12)、「E.Alvarez, H.Montoya, M.Romera, G.pastor, “Cryptanalysis of an ergodic haotic cypher," Physics Letters A311(2003) 172-179.」(文献13)、「Xiaogang Wu, Hanping Hu, Baoliang Zhag, “Parameter estimation only from the symbolic sequences generated by chaos system," Chaos, Solitons and Fractals 22(2004) 359-366.」(文献14)、「奥富秀俊, 岩野隆, 中村勝洋, “1次の非線形写像から得られた擬似ランダムビット列の初期値推測法について," 第30 回情報理論とその応用シンポジウム(SITA2007), 2.3, November 2007.」(文献15)、「奥富秀俊, 岩野隆, 中村勝洋, “テント型写像から得られるランダムビット列の初期値推測法について," 2008 年暗号と情報セキュリティシンポジウム(SCIS2008), 2A2-1, January 2008.」(文献16)、「奥富秀俊, 中村勝洋, “テント写像から得られた擬似ランダムビット列のパラメータ推測法に関する考察," 2010 年暗号と情報セキュリティシンポジウム(SCIS2010), 2D1-2, January 2010.」(文献17)。   What is common to the conventional methods shown in Patent Documents 1 to 8 and Non-Patent Documents 1 to 7 is to use a sequence obtained by iterative calculation of chaotic mapping. Among them, the method of extracting the most significant bit of the mapping value for each mapping to configure the pseudo random bit string is known to be able to infer a part of the seed information used for generating the pseudo random bit string. "Kenji Okuma, Kouichi Sakurai," Cryptographic security of chaotic pseudorandom sequences based on one-dimensional mapping, "1999 Cryptography and Information Security Symposium (SCIS'99), A-7-1, 1999." (Reference 9), "E.Alvarez, H.Montoya, M.Romera, G.pastor," Gray codes and 1D quadratic maps, "Electronics Letters 34 (1998) 1304-1306." (Reference 10), "Cusick TW," Gray codes and the symbolic dynamics of quadratic maps, "Electronic Letters 35 (1999) 468-469." (Reference 11), "E.Alvarez, H.Montoya, M.Romera, G.pastor," Cryptanalysis of a chaotic encryption. system, "Physics Letters A276 (2000) 191-196." (Reference 12), "E. Alvarez, H. Montoya, M. Romera, G. pastor," Cryptanalysis of an ergodic h. aotic cypher, "Physics Letters A311 (2003) 172-179." (Reference 13), "Xiaogang Wu, Hanping Hu, Baoliang Zhag," Parameter estimation only from the symbolic sequences generated by chaos system, "Chaos, Solitons and Fractals 22. (2004) 359-366. ”(Reference 14),“ Hidetoshi Okutomi, Takashi Iwano, Katsuhiro Nakamura, “A method for estimating initial value of pseudo-random bit sequence obtained from first-order nonlinear mapping,” 30th Information Theory and Its application symposium (SITA2007), 2.3, November 2007. ”(Ref. 15),“ Hidetoshi Okutomi, Takashi Iwano, Katsuhiro Nakamura, “Inference method of initial value of random bit sequence obtained from tent-type mapping,” 2008 Cryptography and Information Security Symposium (SCIS2008), 2A2-1, January 2008. ”(Reference 16),“ Hidetoshi Okutomi, Katsuhiro Nakamura, “A Study on Parameter Estimation Method for Pseudo Random Bit Sequences Obtained from Tent Mapping,” 2010 Cryptography and Information Security Symposium (SCIS2 010), 2D1-2, January 2010. "(Reference 17).

また、初歩方式に関しては、上記文献8〜17に示されている攻撃法を用いて、擬似ランダムビット列b={b,b,・・・,b}の生成に利用された初期値xやパラメータ値aの一部また全部を総当たり攻撃するよりも効率的に得ることができる。 Regarding the elementary method, the initial values used to generate the pseudo-random bit string b = {b 1 , b 2 , ..., B n } using the attack methods shown in the above-mentioned documents 8 to 17. It is possible to obtain more efficiently than brute force attacking part or all of x 0 and the parameter value a.

上記の攻撃とは、擬似乱数生成法から生成された擬似乱数列を既知情報としたときに、当該乱数列の生成に使われたシード情報を得ようとする行為をいい、また、攻撃法は、それを達成するための手段(ここでは数学的手段や計算アルゴリズム)をいう。   The above-mentioned attack refers to the act of trying to obtain seed information used to generate the random number sequence when the pseudo random number sequence generated from the pseudo random number generation method is used as known information. , Means for achieving it (here, mathematical means or calculation algorithm).

前述の従来手法は、統計的側面において良質な擬似乱数列を得ることを主たる目的としている。しかしながら、計算機シミュレーション分野でこれら従来手法を利用する限りにおいては問題ないが、情報セキュリティ分野での利用を検討するには、統計的に良質な乱数を提供するだけでなく、少なくとも既知攻撃法に対して対策を興じる必要が生じる。   The above-mentioned conventional method is mainly aimed at obtaining a good pseudo-random number sequence in the statistical aspect. However, as long as these conventional methods are used in the computer simulation field, there is no problem in considering the use in the information security field, in addition to providing statistically good random numbers, at least against known attack methods. It will be necessary to take measures against it.

特開平9−116533号公報JP, 9-116533, A 特開平9−288565号公報JP, 9-288565, A 特開平9−292978号公報JP-A-9-292978 特開平10−2078号公報JP, 10-2078, A 特開2001−285277号公報JP 2001-285277 A 特開2004−266495号公報JP, 2004-266495, A 特開2007−26447号公報JP 2007-26447 A 特開2009−129432号公報JP, 2009-129432, A

奥富秀俊, 中村勝洋, “整数演算をベースにしたパラメータ可変の非線形写像を用いた擬似乱数生成法とその評価," SITA2003, 8.1, November 2003.Hidetoshi Okutomi, Katsuhiro Nakamura, "Pseudo-random number generation method using parameter-variable nonlinear mapping based on integer arithmetic and its evaluation," SITA2003, 8.1, November 2003. Hidetoshi OKUTOMI, Katsuhiro NAKAMURA, “Pseudo Random Number Generation Method based on Nonlinear Integer Mapping with Parameters Variable and its Randomness Evaluation," 2004 International Symposium on Information Theory and its Applications (ISITA2004), paper #358, October 2004.Hidetoshi OKUTOMI, Katsuhiro NAKAMURA, “Pseudo Random Number Generation Method based on Nonlinear Integer Mapping with Parameters Variable and its Randomness Evaluation,” 2004 International Symposium on Information Theory and its Applications (ISITA2004), paper # 358, October 2004. S. Phatak, and S. Rao, “Logistic map: A possible random number generator," Phys. Rev. E, Vol.51, No. 4, pp.3670-3678, 1995.S. Phatak, and S. Rao, “Logistic map: A possible random number generator,” Phys. Rev. E, Vol.51, No. 4, pp.3670-3678, 1995. M.S.Baptista, “Cryptography with chaos," Physics Letters A240 (1998) 50-54.M.S.Baptista, “Cryptography with chaos,” Physics Letters A240 (1998) 50-54. E.Alvarez, A,Fernandez, P.Garcia, J.Jimenez, A.Marcano, “New approach to chaotic encryption," Physics Letters A263 (1999) 373-375.E. Alvarez, A, Fernandez, P. Garcia, J. Jimenez, A. Marcano, “New approach to chaotic encryption,” Physics Letters A263 (1999) 373-375. Wai-kit Wong, Lap-piu Lee, Kwok-wo Wong, “A modi_ed chaotic cryptographic method," Computer Physics Communications 138 (2001) 234{236.Wai-kit Wong, Lap-piu Lee, Kwok-wo Wong, “A modi_ed chaotic cryptographic method,” Computer Physics Communications 138 (2001) 234 {236. G.Jakimov, L.Kocarev, “Chaos and Cryptography : Block Encryption Cipher Based on Chaotic Maps," IEEE Transactions on Circuits and Systems - I:Fundamental Theory and Applications,Vol.49, No.2, February 2001.G. Jakimov, L. Kocarev, "Chaos and Cryptography: Block Encryption Cipher Based on Chaotic Maps," IEEE Transactions on Circuits and Systems-I: Fundamental Theory and Applications, Vol.49, No.2, February 2001.

本発明は以上のような擬似乱数生成における現状に鑑みてなされたもので、その目的は、 従来から提案されているカオス写像に基づく擬似乱数生成法と同等の統計的に良質な擬似乱数(擬似ランダムビット列)が生成可能である擬似乱数生成装置及び擬似乱数生成プログラムを提供することである。また、これと共に、出力された擬似ランダムビット列から、 当該擬似ランダムビット列の生成に利用された初期の写像値、 パラメータ列等のシード関連値の推測を困難とする手段を備えた擬似乱数生成装置及び擬似乱数生成プログラムを提供することを目的とする。   The present invention has been made in view of the present situation in pseudo-random number generation as described above, and an object thereof is a statistically good pseudo-random number (pseudo-random number) equivalent to the pseudo-random number generation method based on the conventionally proposed chaotic mapping. (EN) A pseudo random number generation device and a pseudo random number generation program capable of generating a random bit string. Along with this, a pseudo-random number generation device equipped with means for making it difficult to infer the initial mapping value used for generating the pseudo-random bit string, the seed-related value such as the parameter string, from the output pseudo-random bit string, The purpose is to provide a pseudo-random number generator.

本発明に係る擬似乱数生成装置は、パラメータ列と写像値とに基づき前段写像演算を行う前段写像計算手段と、前記前段写像計算手段による計算結果に基づき前段写像演算と異なる写像演算を行い、演算結果を前記前段写像計算手段へ戻す後段写像計算手段とを備え、前記前段写像計算手段と前記後段写像計算手段とのループによる写像演算を所定回繰り返す擬似乱数生成装置であって、前記前段写像計算手段による計算結果に基づき出力ランダムビット列の一部となる元データを抽出する抽出手段と、前記元データに基づき所定処理を選択実行して出力ランダムビット列の一部を算出するビット算出手段とを更に具備し、
前記抽出手段は、前記ビット算出手段が実行する所定処理の選択の際に参照する参照データを抽出するものであり、前記前段写像計算手段から得られる計算結果に基づき出力ランダムビット列により構成される擬似乱数を生成することを特徴とする。
The pseudo-random number generation device according to the present invention performs a pre-stage mapping calculation unit that performs a pre-stage mapping calculation based on a parameter sequence and a mapping value, and a mapping calculation that is different from the pre-stage mapping calculation based on the calculation result by the pre-stage mapping calculation unit. and a subsequent mapping calculation means for returning to the pre-stage mapping calculation means results, the mapping operation by the loop of the subsequent mapping calculating means and the front mapping calculation means a pseudo-random number generator repeated predetermined times, the front mapping calculations Extraction means for extracting the original data which is a part of the output random bit string based on the calculation result by the means, and bit calculation means for selectively executing a predetermined process based on the original data and calculating a part of the output random bit string Be equipped with
The extraction means is for extracting reference data to be referred to when selecting a predetermined process executed by the bit calculation means, and is composed of an output random bit string based on a calculation result obtained from the pre-stage mapping calculation means. It is characterized by generating random numbers.

本発明に係る擬似乱数生成装置では、ビット算出手段は、前記元データの一部を選択する選択手段を有し、前記参照データに基づき前記選択手段による選択を実行するか否かを判定し、前記選択手段による選択を実行する場合には、前記参照データに基づき前記元データのいずれのビットを選択するか判定することを特徴とする。   In the pseudo random number generation device according to the present invention, the bit calculation means has a selection means for selecting a part of the original data, and determines whether or not the selection means executes selection based on the reference data, When performing the selection by the selection means, it is characterized in that which bit of the original data is selected based on the reference data.

本発明に係る擬似乱数生成装置では、ビット算出手段は、前記選択手段により選択されたビットに関する転置演算を行う転置手段を備え、前記参照データに基づき前記転置手段による転置を行うか否かの判定を行うことを特徴とする。   In the pseudo-random number generating device according to the present invention, the bit calculating means includes a transposing means for performing a transposing operation on the bit selected by the selecting means, and determines whether to perform the transposing by the transposing means based on the reference data. It is characterized by performing.

本発明に係る擬似乱数生成装置では、前記転置手段は、複数の転置演算部を有し、前記参照データに基づき前記複数の転置演算部のいずれを用いて転置を行うかの判定を行うことを特徴とする。   In the pseudo-random number generation device according to the present invention, the transposing unit has a plurality of transposition operation units, and determines which of the plurality of transposition operation units is used to perform the transposition based on the reference data. Characterize.

本発明に係る擬似乱数生成装置では、前記転置手段による転置結果のビット列を一時保持する保持手段を有し、該保持手段に所定長のビット列が保持されたときに、この保持手段に保持されたビット列を出力ランダムビット列として出力することを特徴とする。   The pseudo-random number generator according to the present invention has a holding means for temporarily holding the bit string of the transposition result by the transposing means, and when the holding means holds the bit string of a predetermined length, the holding means holds the bit string. It is characterized in that the bit string is output as an output random bit string.

本発明に係る擬似乱数生成装置では、前記後段写像計算手段には、複数の写像計算部が備えられ、前記参照データに基づき前記複数の写像計算部のいずれを用いて写像を行うかの判定を行うことを特徴とする。   In the pseudo-random number generation device according to the present invention, the latter-stage mapping calculation means is provided with a plurality of mapping calculation units, and it is possible to determine which of the plurality of mapping calculation units is used to perform the mapping based on the reference data. It is characterized by performing.

本発明に係る擬似乱数生成装置では、前記後段写像計算手段の計算結果を受けて、前記前段写像計算手段が用いるパラメータを変動させる内部状態変動手段を備え、前記内部状態変動手段は、前記参照データに基づき前記前段写像計算手段が用いるパラメータを変動させるか否かの判定を行うことを特徴とする。   In the pseudo-random number generator according to the present invention, the internal state changing means for receiving the calculation result of the latter-stage mapping calculating means and changing the parameter used by the former-stage mapping calculating means, wherein the internal-state changing means includes the reference data It is characterized in that whether or not to change the parameter used by the pre-stage mapping calculation means is determined based on the above.

本発明に係る擬似乱数生成装置では、前記前段写像計算手段は、それぞれ異なる写像計算を行う複数の写像演算部が縦続接続されていることを特徴とする。   In the pseudo random number generation device according to the present invention, the front-stage mapping calculation means is characterized in that a plurality of mapping calculation units that respectively perform different mapping calculations are connected in cascade.

本発明に係る擬似乱数生成装置では、前記後段写像計算手段は、前記前段写像計算手段による写像結果を整数化演算することを特徴とする。   In the pseudo-random number generation device according to the present invention, the latter-stage mapping calculation means is characterized by integerizing the mapping result by the former-stage mapping calculation means.

本発明に係る擬似乱数生成装置では、処理の開始時において、前段写像計算手段に与えるべき初期の写像値と初期のパラメータ列とを少なくとも含む初期の値を生成するための前処理部を具備することを特徴とする。   The pseudo-random number generation device according to the present invention includes a preprocessing unit for generating an initial value including at least an initial mapping value and an initial parameter sequence to be given to the pre-stage mapping calculation means at the start of processing. It is characterized by

本発明に係る擬似乱数生成プログラムは、擬似乱数生成を行うコンピュータを、パラメータ列と写像値とに基づき前段写像演算を行う前段写像計算手段、前記前段写像計算手段による計算結果に基づき前段写像演算と異なる写像演算を行い、演算結果を前記前段写像計算手段へ戻す後段写像計算手段、として機能させ、前記コンピュータが前記前段写像計算手段と前記後段写像計算手段としてループ処理し、写像演算を所定回繰り返すように機能させ、前記コンピュータを更に、前記前段写像計算手段による計算結果に基づき出力ランダムビット列の一部となる元データを抽出する抽出手段、前記元データに基づき所定処理を選択実行して出力ランダムビット列の一部を算出するビット算出手段、として機能させ、前記コンピュータを前記抽出手段として、前記ビット算出手段が実行する所定処理の選択の際に参照する参照データを抽出するように機能させると共に、前記コンピュータを更に、前記前段写像計算手段から得られる計算結果に基づき出力ランダムビット列により構成される擬似乱数を生成するように機能させることを特徴とする。 A pseudo-random number generation program according to the present invention includes a computer that performs pseudo-random number generation, a pre-stage mapping calculation unit that performs a pre-stage mapping calculation based on a parameter sequence and a mapping value, and a pre-stage mapping calculation based on a calculation result by the pre-stage mapping calculation unit. A different mapping calculation is performed, and the calculation result is returned to the front-stage mapping calculation means to function as a rear-stage mapping calculation means, and the computer loops the front-stage mapping calculation means and the rear-stage mapping calculation means to repeat the mapping calculation a predetermined number of times. Extracting means for extracting the original data forming a part of the output random bit string based on the calculation result by the pre-stage mapping calculating means, and selecting and executing a predetermined process on the basis of the original data to output random data. The computer is made to function as a bit calculating means for calculating a part of a bit string, and As means, wherein along with features to make so-bit calculation means for extracting the reference data to be referred to when the predetermined processing of the selection to be executed, further the computer, the output random bit sequence based on the calculation results obtained from the preceding stage mapping calculation means It is characterized by causing it to function so as to generate a pseudo-random number constituted by.

本発明に係る擬似乱数生成プログラムは、ビット算出手段では、前記コンピュータを、前記元データの一部を選択する選択手段として機能させ、前記参照データに基づき前記選択手段による選択を実行するか否かを判定し、前記選択手段による選択を実行する場合には、前記参照データに基づき前記元データのいずれのビットを選択するか判定することを特徴とする。   In the pseudo-random number generation program according to the present invention, in the bit calculation means, the computer is caused to function as a selection means for selecting a part of the original data, and whether or not the selection means executes the selection based on the reference data. When performing the selection by the selection means, which bit of the original data is selected based on the reference data is determined.

本発明に係る擬似乱数生成プログラムは、ビット算出手段では、前記コンピュータを、前記選択手段により選択されたビットに関する転置演算を行う転置手段として機能させ、
前記参照データに基づき前記転置手段による転置を行うか否かの判定を行うことを特徴とする。
In the pseudo-random number generation program according to the present invention, in the bit calculation means, the computer is caused to function as a transposition means for performing a transposition operation on the bit selected by the selection means,
It is characterized in that whether or not the transposition is performed by the transposition means is determined based on the reference data.

本発明に係る擬似乱数生成プログラムは、前記転置手段では、前記コンピュータを、複数の転置演算部として機能させ、前記参照データに基づき前記複数の転置演算部のいずれを用いて転置を行うかの判定を行うことを特徴とする。   In the pseudo-random number generation program according to the present invention, the transposing means causes the computer to function as a plurality of transposition operation units, and which of the plurality of transposition operation units is used to perform the transposition based on the reference data. It is characterized by performing.

本発明に係る擬似乱数生成プログラムでは、前記転置手段による転置結果のビット列を一時保持する保持手段を有し、該保持手段に所定長のビット列が保持されたときに、この保持手段に保持されたビット列を出力ランダムビット列として出力することを特徴とする。   The pseudo-random number generation program according to the present invention has holding means for temporarily holding the bit string of the transposition result by the transposing means, and when the holding means holds a bit string of a predetermined length, the holding means holds the bit string. It is characterized in that the bit string is output as an output random bit string.

本発明に係る擬似乱数生成プログラムは、前記後段写像計算手段では、前記コンピュータを、複数の写像計算部として機能させ、前記参照データに基づき前記複数の写像計算部のいずれを用いて写像を行うかの判定を行うことを特徴とする。   In the pseudo-random number generation program according to the present invention, in the latter-stage mapping calculation means, the computer is caused to function as a plurality of mapping calculation units, and which of the plurality of mapping calculation units is used to perform the mapping based on the reference data. Is characterized in that

本発明に係る擬似乱数生成プログラムでは、前記コンピュータを、前記後段写像計算手段の計算結果を受けて、前記前段写像計算手段が用いるパラメータを変動させる内部状態変動手段として機能させ、前記内部状態変動手段は、前記参照データに基づき前記前段写像計算手段が用いるパラメータを変動させるか否かの判定を行うことを特徴とする。   In the pseudo-random number generation program according to the present invention, the computer is caused to function as an internal state changing unit that receives a calculation result of the latter-stage mapping calculating unit and changes a parameter used by the former-stage mapping calculating unit, Is characterized by determining whether or not to change the parameter used by the pre-stage mapping calculation means based on the reference data.

本発明に係る擬似乱数生成プログラムは、前記前段写像計算手段では、前記コンピュータを、それぞれ異なる写像計算を行う複数の写像演算部が縦続接続されているように機能させることを特徴とする。   The pseudo-random number generation program according to the present invention is characterized in that, in the front-stage mapping calculation means, the computer is caused to function so that a plurality of mapping calculation units that respectively perform different mapping calculations are connected in cascade.

本発明に係る擬似乱数生成プログラムでは、前記後段写像計算手段は、前記前段写像計算手段による写像結果を整数化演算することを特徴とする。   In the pseudo-random number generation program according to the present invention, the latter-stage mapping calculation means is characterized by integerizing the mapping result by the former-stage mapping calculation means.

本発明に係る擬似乱数生成プログラムでは、コンピュータを更に、処理の開始時において、前段写像計算手段に与えるべき初期の写像値と初期のパラメータ列とを少なくとも含む初期の値を生成するための前処理部として機能させることを特徴とする。   In the pseudo-random number generation program according to the present invention, the computer further performs a pre-processing for generating an initial value including at least an initial mapping value and an initial parameter sequence to be given to the pre-stage mapping calculation means at the start of the processing. The feature is that it functions as a section.

本発明に係る擬似乱数生成装置及び擬似乱数生成プログラムによれば、統計的に良質な擬似乱数(擬似ランダムビット列)が生成可能である。   According to the pseudo random number generation device and the pseudo random number generation program of the present invention, it is possible to generate statistically good quality pseudo random numbers (pseudo random bit strings).

また、本発明に係る擬似乱数生成装置及び擬似乱数生成プログラムによれば、出力された擬似ランダムビット列から、 当該擬似ランダムビット列の生成に利用された初期の写像値、 パラメータ列等のシード関連値の推測を困難とすることができる。   Also, according to the pseudo-random number generation device and the pseudo-random number generation program according to the present invention, from the output pseudo-random bit string, the initial mapping value used in the generation of the pseudo-random bit string, the seed-related value of the parameter string, etc. Guessing can be difficult.

従来の擬似乱数生成のアルゴリズムを示すフローチャート。The flowchart which shows the algorithm of the conventional pseudorandom number generation. 図1に示した従来例を改良した、従来の擬似乱数生成のアルゴリズムを示すフローチャート。9 is a flowchart showing a conventional algorithm for generating pseudo-random numbers, which is an improvement of the conventional example shown in FIG. 1. 本発明の実施形態に係る擬似乱数生成装置及び擬似乱数生成プログラムの、擬似乱数生成のアルゴリズムを示すフローチャート。6 is a flowchart showing an algorithm for generating pseudo-random numbers of the pseudo-random number generation device and the pseudo-random number generation program according to the embodiment of the present invention. 本発明の実施形態に係る擬似乱数生成装置及び擬似乱数生成プログラムの要部アルゴリズムを示すフローチャート。3 is a flowchart showing a main part algorithm of the pseudo random number generation device and the pseudo random number generation program according to the embodiment of the present invention.

以下、添付図面を参照して本発明の実施形態に係る擬似乱数生成装置及び擬似乱数生成プログラムを説明する。各図において、同一の構成要素には同一の符号を付して重複する説明を省略する。図3に、本発明の実施形態に係る擬似乱数生成装置の構成図を示す。この図3は、本発明の実施形態に係る擬似乱数生成プログラムによる動作のフローチャートでもある。   Hereinafter, a pseudo random number generation device and a pseudo random number generation program according to embodiments of the present invention will be described with reference to the accompanying drawings. In each of the drawings, the same constituents are designated by the same reference numerals, and overlapping description will be omitted. FIG. 3 shows a block diagram of a pseudo random number generation device according to the embodiment of the present invention. FIG. 3 is also a flowchart of the operation of the pseudo random number generation program according to the embodiment of the present invention.

この擬似乱数生成装置は、前段写像計算手段201、後段写像計算手段203を備える。前段写像計算手段201は、パラメータ列と写像値とに基づき前段写像演算を行うものである。前段写像計算手段201は、カオス写像の計算を乗算、加算、左ビットシフト演算等の写像値の拡大に関する演算で構成される写像演算を行うものとすることができる。最初の前段写像演算に用いる初期のパラメータ列と初期の写像値は、前段写像計算手段201が保持している構成もあり得るが、本実施形態では、後に説明する前処理部101が生成する。   This pseudo random number generation device includes a front stage mapping calculation unit 201 and a rear stage mapping calculation unit 203. The pre-stage mapping calculation means 201 performs a pre-stage mapping calculation based on the parameter sequence and the mapping value. The pre-stage mapping calculation means 201 may perform a mapping operation composed of operations related to enlargement of the mapping value such as multiplication, addition, left bit shift operation, etc. for calculation of chaotic mapping. The initial parameter sequence and the initial mapping value used for the first pre-stage mapping calculation may be held by the pre-stage mapping calculation means 201, but in the present embodiment, they are generated by the pre-processing unit 101 described later.

後段写像計算手段203は、上記前段写像計算手段201による計算結果に基づき前段写像演算と異なる写像演算を行い、演算結果を前記前段写像計算手段201へ戻すものである。後段写像計算手段203は、除算(除算の商を得る演算)、剰余算(除算の剰余を得る演算)、右ビットシフト演算等の写像値の縮小に関する演算で構成される写像演算を行うものとすることができる。   The rear-stage map calculation means 203 performs a map calculation different from the front-stage map calculation based on the calculation result of the front-stage map calculation means 201, and returns the calculation result to the front-stage map calculation means 201. The latter-stage mapping calculation unit 203 performs a mapping operation including operations related to reduction of the mapping value, such as division (operation to obtain a quotient of division), remainder calculation (operation to obtain a remainder of division), and right bit shift operation. can do.

この擬似乱数生成装置は、上記前段写像計算手段201と上記後段写像計算手段203とのループによる写像演算を所定回繰り返す構成を採用する。本擬似乱数生成装置は、上記前段写像計算手段201から得られる計算結果に基づき出力ランダムビット列802により構成される擬似乱数を生成するものとすることができる。   This pseudo-random number generation device employs a configuration in which a mapping operation by a loop of the preceding stage mapping calculation means 201 and the following stage mapping calculation means 203 is repeated a predetermined number of times. The pseudo random number generation device can generate a pseudo random number composed of the output random bit sequence 802 based on the calculation result obtained from the preceding stage mapping calculation means 201.

更に擬似乱数生成装置は、抽出手段301とビット算出手段400を備える。抽出手段301は、上記前段写像計算手段201による計算結果に基づき出力ランダムビット列802の一部となる元データ303を抽出する。ビット算出手段400は、上記元データ303に基づき所定処理を選択実行して出力ランダムビット列802の一部を算出する。また、前記抽出手段301は、上記ビット算出手段400が実行する所定処理の選択の際に参照する参照データ302を抽出する。   Further, the pseudo random number generation device includes an extraction unit 301 and a bit calculation unit 400. The extraction means 301 extracts the original data 303 which is a part of the output random bit string 802 based on the calculation result by the preceding stage mapping calculation means 201. The bit calculating means 400 selects and executes a predetermined process based on the original data 303 to calculate a part of the output random bit string 802. Further, the extraction unit 301 extracts the reference data 302 to be referred to when selecting the predetermined process executed by the bit calculation unit 400.

ビット算出手段400は、上記元データ303の一部を選択する選択手段402を有し、上記参照データ302に基づき上記選択手段402による選択を実行するか否かを選択判定部401において判定し、上記選択手段402による選択を実行する場合には、上記参照データ302に基づき上記元データ303のいずれのビットを選択するか判定する。   The bit calculation means 400 has a selection means 402 for selecting a part of the original data 303, and the selection determination unit 401 determines whether or not the selection means 402 performs the selection based on the reference data 302. When performing the selection by the selection means 402, it is determined which bit of the original data 303 is selected based on the reference data 302.

ビット算出手段400は、上記選択手段402により選択されたビット列に関する転置演算を行う転置手段502を備え、ランダムビット長カウンタ404の値に基づき転置判定部501が上記転置手段502による転置を行うか否かの判定を行う。   The bit calculating means 400 includes a transposing means 502 which performs a transposing operation on the bit string selected by the selecting means 402, and whether the transposition determining section 501 performs the transposing by the transposing means 502 based on the value of the random bit length counter 404. Whether or not it is determined.

上記転置手段502は、図4に示すように、複数の転置演算部502−1〜502−uを有し、上記参照データ302に基づき決定部500が上記複数の転置演算部502−1〜502−uのいずれを用いて転置を行うかの判定を行う。   As shown in FIG. 4, the transposing means 502 has a plurality of transposing operation units 502-1 to 502-u, and the determining unit 500 determines the transposing operation units 502-1 to 502 based on the reference data 302. It is determined which of u is used for transposition.

前記転置手段502による転置結果のビット列を一時保持する保持手段503を有し、該保持手段503に所定長のビット列が保持されたときに、この保持手段503に保持されたビット列を出力ランダムビット列802として出力する。   A holding unit 503 for temporarily holding the bit string resulting from the transposition by the transposing unit 502 is provided, and when the holding unit 503 holds a bit string of a predetermined length, the bit string held in the holding unit 503 is output as a random bit string 802. Output as.

本装置では、参照データ302と元データ303とを独立したデータとして扱い、参照データ302の一部または全部を元データ303の一部または全部に転用することはせず、また、元データ303の一部または全部を参照データ302の一部または全部に転用することはしない。   In this device, the reference data 302 and the original data 303 are treated as independent data, and part or all of the reference data 302 is not diverted to part or all of the original data 303. A part or the whole of the reference data 302 is not diverted.

上記後段写像計算手段203には、それぞれ異なる端数処理を行う複数の写像計算部203−0〜203−(m−1)が備えられ、後段写像選択部202が上記参照データ302に基づき上記複数の写像計算部203−0〜203−(m−1)のいずれを用いて写像を行うかの判定を行う。上記後段写像計算手段203は、上記前段写像計算手段201による写像結果を整数化演算する構成とすることができる。   The latter-stage mapping calculation unit 203 is provided with a plurality of mapping calculation units 203-0 to 203- (m-1) that respectively perform different fraction processing, and the latter-stage mapping selection unit 202 uses the plurality of mapping data based on the reference data 302. It is determined which of the mapping calculation units 203-0 to 203- (m-1) is used to perform the mapping. The latter-stage mapping calculation unit 203 may be configured to perform an integer operation on the mapping result of the preceding-stage mapping calculation unit 201.

本装置は、更に内部状態変動手段602を備える。この内部状態変動手段602は、上記後段写像計算手段203の計算結果を受けて、上記前段写像計算手段201が用いるパラメータ列を変動させるものである。上記内部状態変動手段602は、上記参照データ302に基づき変動判定部601において上記前段写像計算手段201が用いるパラメータ列を変動させるか否かの判定を行う。これによって、ランダムなタイミングにて上記内部状態変動(写像関数形変化)を達成することが可能である。   The apparatus further includes an internal state changing unit 602. The internal state changing means 602 changes the parameter sequence used by the preceding stage mapping calculating means 201 in response to the calculation result of the latter stage mapping calculating means 203. The internal state changing means 602 determines whether or not to change the parameter sequence used by the pre-stage mapping calculation means 201 in the change determining unit 601 based on the reference data 302. As a result, it is possible to achieve the internal state fluctuation (map function type change) at random timing.

尚、図3においては上記前段写像計算手段201を一種類としたが、これに限定されない。即ち、前段写像計算手段201は、それぞれ異なる写像計算を行う複数の写像演算部が縦続接続され、順送りで写像計算を行う構成としても良い。   In FIG. 3, the pre-stage mapping calculation means 201 is one type, but the invention is not limited to this. That is, the pre-stage mapping calculation means 201 may have a configuration in which a plurality of mapping calculation units that respectively perform different mapping calculations are connected in cascade, and the mapping calculation is performed in sequence.

次に図3、図4に示した擬似乱数生成装置の動作を説明する。本擬似乱数生成装置においては、処理の開始時において、前段写像計算手段201等に与えるべき初期の値を生成するための前処理部101を有している。この前処理部101は、この実施形態における擬似乱数生成装置/擬似乱数生成プログラムに与えられる入力情報801としてのシードseed、擬似ランダムビット列長nを得て、
初期の写像値:X
初期のパラメータ列:a[1]〜a[n
シード固有パラメータ列:k[1]〜k[n
パラメータ変化量列102:p[1]〜p[n
により構成される初期の値を生成する。
ここで、nは、初期のパラメータ列a[ ]、シード固有パラメータ列k[ ]、パラメータ変化量列p[ ]の要素数を意味するシステム固定値であり、後述する具体的実施形態1、2では、n=32としている。前処理部101は、上記において生成した初期の写像値Xを写像値レジスタ103にセットし、初期のパラメータ列a[1]〜a[n]をパラメータ列レジスタ104にセットする。
Next, the operation of the pseudo random number generation device shown in FIGS. 3 and 4 will be described. This pseudo random number generation device has a pre-processing unit 101 for generating an initial value to be given to the pre-stage mapping calculation means 201 etc. at the start of processing. The pre-processing unit 101 obtains the seed seed and the pseudo random bit string length n as the input information 801 given to the pseudo random number generation device / pseudo random number generation program in this embodiment,
Initial mapping value: X 0
The initial parameter sequence: a [1] ~a [n a]
Seed-specific parameters column: k a [1] ~k a [n a]
Parameter change amount column 102: p a [1] ~p a [n a]
Generates an initial value composed of
Here, n a is a system fixed value that means the number of elements of the initial parameter sequence a [], the seed-specific parameter sequence k a [], and the parameter variation amount sequence p a [], and a specific embodiment described later. In 1 and 2, n a = 32. Pre-processing unit 101, the initial mapping value X 0 produced in the above was set in the mapping value register 103, and sets the initial parameter sequence a [1] ~a [n a ] in the parameter column register 104.

更に、前処理部101は、
パラメータの最小値Amin
パラメータの最大値Amax
パラメータの状態総数Δ
パラメータ変量の最小値B
を所定値(定数/固定値)としてセットする。
また、
初期のループカウンタi=0,
初期のパラメータ番号j=1,
をセットする。
Furthermore, the preprocessing unit 101
Minimum value of parameter A min
Maximum value of parameter A max
Total state of parameter Δ A
Minimum value of parameter variable B A
Is set as a predetermined value (constant / fixed value).
Also,
Initial loop counter i = 0,
Initial parameter number j = 1,
Set.

上記において、シードseedは乱数の種である。ランダムビット列長nはこれから生成するランダムビット列の長さである。パラメータ変化量列102は、シードseedに固有の情報であり、本実施形態の内部状態変動手段602で用いられる。より具体的には、パラメータ変化量列102は、内部状態変動手段602において、パラメータ列に変化を与えるための参照値として利用される。初期の写像値Xは、前段写像計算手段201と、後段写像計算手段203における写像計算に関する「写像値の初期値」を意味する。写像値は、後段写像計算手段203で更新され、ループ毎に更新される。また、パラメータ列は、前段写像計算手段201、後段写像計算手段203での写像計算で用いられる写像関数のコントロールパラメータの列である。パラメータ列は、変動判定部601においてYesとなるときに、内部状態変動手段602において、シード固有の情報であるパラメータ変化量列102と参照データ302を参照しながら更新される(写像値と異なり、ループ毎に更新されるわけではない)。パラメータ変化量列102は、シード固有の情報であり、内部状態変動手段602においてパラメータ列を変動させる場合に、その変化量の一部を与える。 In the above, the seed seed is a seed of random numbers. The random bit string length n is the length of the random bit string to be generated. The parameter change amount column 102 is information unique to the seed seed and is used by the internal state changing unit 602 of the present embodiment. More specifically, the parameter change amount sequence 102 is used as a reference value for changing the parameter sequence in the internal state changing means 602. The initial mapping value X 0 means the “initial value of the mapping value” regarding the mapping calculation in the front-stage mapping calculation means 201 and the rear-stage mapping calculation means 203. The mapping value is updated by the latter-stage mapping calculation unit 203 and is updated for each loop. The parameter sequence is a sequence of control parameters of the mapping function used in the mapping calculation in the front-stage mapping calculation unit 201 and the rear-stage mapping calculation unit 203. When the variation determination unit 601 returns Yes, the parameter sequence is updated in the internal state variation unit 602 with reference to the parameter variation sequence 102 and the reference data 302, which are information unique to the seed (unlike the mapping value, Not updated every loop). The parameter change amount sequence 102 is information unique to the seed, and gives a part of the change amount when the internal condition variation means 602 varies the parameter sequence.

前処理部101により初期の値の生成がなされた後に、パラメータ列レジスタ104にセットされた初期のパラメータ列及び写像値レジスタ103にセットされた初期の写像値Xは、前段写像計算手段201へ与えられる。そこで、前段写像計算手段201は、初期パラメータ列と初期の写像値Xとに基づき前述の演算により構成される前段写像演算を行う。前段写像演算の結果は、抽出手段301へ与えられる。抽出手段301は、前段写像計算手段201によって計算された値の所定位置のビット列を参照データ302として抽出し、また、別の位置のビット列を元データ303として抽出し、2つに分けて記憶する。ビット抽出を行う際の所定位置については、統計的に良質なランダムビット列の抽出が可能である位置が望ましく、例えば、「荒木俊輔, 宮崎武, 上原聡, “擬似乱数生成器に用いる整域におけるロジスティック写像に関する一考察," 第30 回情報理論とその応用シンポジウム予稿集(SITA2007), 2.1, November 2007.」(文献18)、「荒木俊輔, 宮崎武, 上原聡, “擬似乱数生成器に用いる整数上のロジスティック写像に関する一考察," 2008年暗号と情報セキュリティシンポジウム予稿集(SCIS2008), 2A2-5, January 2008.」(文献19)、「Shunsuke Araki, Takeru Miyazaki, and Satoshi Uehara, “A Study on Occurrence Rates per Bit for Outputs of the Logistic Map over Integers," Proc. of 2008 International Symposium on Information Theory and its Applications, pp.1316-1320, 2008.」(文献20)、「荒木俊輔, 宮崎武, 上原聡, “整数上のロジスティック写像におけるビット毎の出現頻度に関する考察," 2009 年暗号と情報セキュリティシンポジウム予稿集(SCIS2009) , 2F1-3, January 2009.」(文献21)、「荒木俊輔, 宮崎武, 上原聡, 硴崎賢一, “整数上のロジスティック写像におけるビットごとの出現率に関する考察, " 日本応用数理学会論文誌, Vol.25, No.3, pp.191-206, 2015.」(文献22)などに記載の手法を採用することができる。 After the initial value is generated by the preprocessing unit 101, the initial parameter string set in the parameter string register 104 and the initial mapping value X 0 set in the mapping value register 103 are sent to the pre-stage mapping calculation means 201. Given. Therefore, the pre-stage mapping calculation means 201 performs the pre-stage mapping calculation constituted by the above-described calculation based on the initial parameter sequence and the initial mapping value X 0 . The result of the pre-stage mapping operation is given to the extraction means 301. The extraction unit 301 extracts a bit string at a predetermined position of the value calculated by the pre-stage mapping calculation unit 201 as the reference data 302, and a bit string at another position as the original data 303, which is stored in two. . The predetermined position when performing bit extraction is preferably a position that allows statistically good extraction of a random bit string. For example, "Shunsuke Araki, Takeshi Miyazaki, Satoshi Uehara," in the range used in the pseudo-random number generator A Study on Logistic Mapping, "Proceedings of the 30th Information Theory and its Application Symposium (SITA2007), 2.1, November 2007." (Reference 18), "Shunsuke Araki, Takeshi Miyazaki, Satoshi Uehara," Used for pseudo random number generators A Consideration on Logistic Map over Integers, "2008 Cryptographic and Information Security Symposium Proceedings (SCIS2008), 2A2-5, January 2008." (Reference 19), "Shunsuke Araki, Takeru Miyazaki, and Satoshi Uehara," A Study on Occurrence Rates per Bit for Outputs of the Logistic Map over Integers, "Proc. of 2008 International Symposium on Information Theory and its Applications, pp.1316-1320, 2008." (Reference 20), "Shunsuke Araki, Take Miyazaki, Uehara. Satoshi, “on integer A Study on Frequency of Occurrence of Each Bit in Logistic Map, "Proceedings of 2009 Symposium on Cryptography and Information Security (SCIS2009), 2F1-3, January 2009." (Reference 21), "Shunsuke Araki, Take Miyazaki, Satoshi Uehara, Akizaki" Kenichi, “Study on bit-wise appearance rate in logistic mapping on integers,” Journal of Japan Society for Applied Mathematics, Vol.25, No.3, pp.191-206, 2015. (Reference 22), etc. A technique can be adopted.

上記参照データ302は、図3から明らかな通り、選択判定部401、選択手段402、転置手段502、後段写像選択部202、変動判定部601、内部状態変動手段602において、選択や判定をランダムに行う際に用いられる。   As is apparent from FIG. 3, the reference data 302 is randomly selected or determined by the selection determination unit 401, the selection unit 402, the transposition unit 502, the post-stage mapping selection unit 202, the variation determination unit 601, and the internal state variation unit 602. Used when doing.

また、参照データ302は、内部状態変動手段602などにおいて擬似乱数生成アルゴリズムにおける内部状態の遷移をランダムに与えることのみに用いられ、既述のように元データ303のランダムビット列として流用しない。これにより、本実施形態における擬似乱数生成装置の最終出力である出力ランダムビット列802が既知となった場合でも、内部状態の推測や同期が困難になり、出力ランダムビット列802を生成するために必須の入力情報801としてのシードや擬似ランダムビット列長nの推測が困難になる。   Further, the reference data 302 is used only for randomly giving transitions of the internal state in the pseudo random number generation algorithm in the internal state changing means 602 and the like, and is not diverted as the random bit string of the original data 303 as described above. As a result, even if the output random bit string 802, which is the final output of the pseudo-random number generator according to the present exemplary embodiment, becomes known, it becomes difficult to estimate and synchronize the internal state, and it is essential to generate the output random bit string 802. It becomes difficult to estimate the seed or the pseudo random bit string length n as the input information 801.

抽出手段301による処理が終了すると、選択判定部401が起動される。選択判定部401は、現ループにおいて抽出した元データ303をビット算出手段400の処理において採用するか破棄するかを判定する。判定に当たっては、写像回数カウンタ603のカウント値及び参照データ302に基づき判定する。選択判定部401における判定がYes(採用)の場合には、選択手段402へ移行する一方、判定がNo(破棄)の場合には、ビット算出手段400中の実質的な演算を行う選択手段402及び転置手段502の処理はスキップする。   When the processing by the extraction unit 301 is completed, the selection determination unit 401 is activated. The selection determination unit 401 determines whether to adopt or discard the original data 303 extracted in the current loop in the process of the bit calculation means 400. The determination is made based on the count value of the mapping number counter 603 and the reference data 302. If the determination in the selection determination unit 401 is Yes (adopted), the process proceeds to the selection unit 402, while if the determination is No (discarded), the selection unit 402 that performs a substantial operation in the bit calculation unit 400. The processing of the transposing means 502 is skipped.

選択判定部401における判定がYesとなり、選択手段402へ進んだ場合には、元データ303中の本実施形態に係る擬似乱数生成の当該ループにおいて出力とすべきランダムビット(ランダムビット列)を選択/抽出する。この選択/抽出に当たっては、参照データ302の情報を基に「採用するビット位置」を求め、元データ303中の「採用するビット位置」のビット(ビット列)を選択抽出し、転置前ランダムビット列403としてレジスタに加えて記憶する。   When the determination in the selection determination unit 401 is Yes and the process proceeds to the selection unit 402, a random bit (random bit string) to be output in the loop of the pseudo random number generation according to this embodiment in the original data 303 is selected / Extract. In this selection / extraction, the “adopted bit position” is obtained based on the information of the reference data 302, the bit (bit string) of the “adopted bit position” in the original data 303 is selected and extracted, and the random bit sequence before transposition 403 Is stored in addition to the register.

選択手段402により選択されたビット列は、ランダムビット長カウンタ404へ送られる。ランダムビット長カウンタ404は、送られてきたビット列のビット数をカウントアップする。この結果、ランダムビット長カウンタ404の値は、転置前ランダムビット列403のビット数だけカウントアップされる。   The bit string selected by the selection means 402 is sent to the random bit length counter 404. The random bit length counter 404 counts up the number of bits of the transmitted bit string. As a result, the value of the random bit length counter 404 is counted up by the number of bits of the pre-transpose random bit string 403.

ランダムビット長カウンタ404のカウントアップが終了すると、転置判定部501が起動される。転置判定部501は、ランダムビット長カウンタ404の値に基づき、転置前ランダムビット列403のビット数(系列長)が転置処理を行うサイズに達したか否かを判定する。転置処理を行う場合のサイズ(ビット長)は予め決められており、例えば、入力情報801により設定されるものとする。転置判定部501による判定結果がYes(所定サイズに達した)ことが検出された場合には、転置手段502の処理へ移行する一方、判定結果がNo(所定サイズに達していない)ことが検出された場合には、転置手段502の処理をスキップする。   When the count-up of the random bit length counter 404 is completed, the transposition determining unit 501 is activated. The transposition determining unit 501 determines, based on the value of the random bit length counter 404, whether or not the number of bits (sequence length) of the pre-transposition random bit sequence 403 has reached a size for performing transposition processing. The size (bit length) in the case of performing the transposing process is predetermined, and is set by the input information 801, for example. When it is detected that the determination result by the transposition determination unit 501 is Yes (reached the predetermined size), the process of the transposition unit 502 is performed, while it is detected that the determination result is No (the predetermined size is not reached). If so, the processing of the transposing means 502 is skipped.

転置手段502へ進むと、転置前ランダムビット列403の内の転置処理を行うサイズ(ビット長)分を抽出したデータに対して転置処理を施す。転置処理にあたっては、参照データ302の情報を基に図4に示す決定部500が上記複数の転置演算部502−1〜502−uのいずれを用いて転置を行うかの判定を行う。或いは、決定部500が「転置ルール」を求め、当該転置ルールにより転置前ランダムビット列403のデータに所定転置処理を実行し、転置結果のビット列を一時保持する保持手段503に保持させる。   When it proceeds to the transposing means 502, the transposing process is performed on the data in which the size (bit length) of the pre-transposing random bit string 403 to be transposed is extracted. In the transposition process, based on the information of the reference data 302, the determination unit 500 shown in FIG. 4 determines which of the plurality of transposition calculation units 502-1 to 502-u is used to perform the transposition. Alternatively, the determination unit 500 obtains the “transposition rule”, performs a predetermined transposition process on the data of the pre-transposition random bit string 403 according to the transposition rule, and causes the holding unit 503 to temporarily hold the bit string of the transposition result.

転置手段502の処理が終了すると、出力部504が起動される。出力部504は、例えば、入力情報801により設定され予め決められた出力すべき出力規定ビット長に基づき、保持手段503に保持されている転置後ランダムビット列が出力規定ビット長に達したかを判定し、達していれば出力命令を出力し保持手段503に保持されている転置後ランダムビット列を出力ランダムビット列802として出力する。かくして、保持手段503に保持された転置処理後のビット列は、所定のタイミングで出力ランダムビット列802として出力される。   When the processing of the transposing means 502 is completed, the output unit 504 is activated. The output unit 504 determines whether or not the transposed random bit string held in the holding unit 503 has reached the output specified bit length, for example, based on the output specified bit length to be output that is set by the input information 801 and is determined in advance. Then, if it has reached, an output command is output and the transposed random bit string held in the holding means 503 is output as the output random bit string 802. Thus, the transposed bit string held by the holding means 503 is output as the output random bit string 802 at a predetermined timing.

転置手段502の処理が修了した場合は、出力部504の処理が実施されるか否かに関係せず、ランダムビット長カウンタ404をクリアするランダムビット長カウンタクリア505が実施される。   When the processing of the transposing means 502 is completed, the random bit length counter clear 505 that clears the random bit length counter 404 is executed regardless of whether the processing of the output unit 504 is executed.

前記ランダムビット長カウンタクリア505が実施された場合、または、選択判定部401でNoが選択された場合、または、転置判定部501でNoが選択された場合、には、続いて、後段写像選択部202が起動される。後段写像選択部202は、上記参照データ302に基づき上記複数の写像計算部203−0〜203−(m−1)のいずれを用いて写像を行うかの判定を行う。   If the random bit length counter clear 505 is performed, or if the selection determination unit 401 selects No, or if the transposition determination unit 501 selects No, then the subsequent mapping selection is performed. The unit 202 is activated. The latter-stage mapping selection unit 202 determines which of the plurality of mapping calculation units 203-0 to 203- (m-1) is used to perform the mapping based on the reference data 302.

後段写像選択部202による選択に続いて、後段写像計算手段203としての写像計算部203−0〜203−(m−1)の中の選択された写像計算部203−iにおいて、所定の端数処理が実施される。端数処理関数については、下記の式0に示すものとすることができる。また、端数処理関数については、「宮崎武, 荒木俊輔, 上原聡, “端数処理の異なる整数上のロジスティック写像による系列の性質について," 2010 年暗号と情報セキュリティシンポジウム予稿集(SCIS2010), 3D3-1, January 2010.」(文献23)、「Takeru Miyazaki, Shunsuke Araki, Satoshi Uehara, “Rounding Logistic Maps over Integers and the Properties of the Generated Sequences," Proc. of the Fifth International Workshop on Signal Design and its Application in Communications, pp. 21-24, 2011.」(文献24)に記載のものを用いることができ、同文献にはその効果に関しても記載されている。   Subsequent to the selection by the latter-stage mapping selecting unit 202, a predetermined fraction processing is performed in the selected mapping calculating unit 203-i of the mapping calculating units 203-0 to 203- (m-1) as the latter-stage mapping calculating unit 203. Is carried out. The rounding function may be as shown in Equation 0 below. As for the rounding function, "Takeshi Miyazaki, Shunsuke Araki, Satoshi Uehara," On the property of sequences by logistic maps on integers with different rounding, "2010 Cryptography and Information Security Symposium Proceedings (SCIS2010), 3D3- 1, January 2010. ”(Reference 23),“ Takeru Miyazaki, Shunsuke Araki, Satoshi Uehara, “Rounding Logistic Maps over Integers and the Properties of the Generated Sequences,” Proc. Of the Fifth International Workshop on Signal Design and its Application in Communications, pp. 21-24, 2011. "(Reference 24), and the effect is also described in the same reference.

Figure 0006678958
Figure 0006678958

後段写像計算手段203が行われた後には、後段写像計算の結果である写像値が、既に写像値レジスタ103に記憶されている写像値に代えて記憶され、内部状態変動手段602が起動される。内部状態変動手段602は、上記参照データ302とパラメータ変化量列102に基づき変動判定部601において上記前段写像計算手段201が用いるパラメータ列を変動させるか否かの判定を行う。ここで、判定結果がYes(変動させる)となった場合には、内部状態変動手段602の処理へ移行する一方、判定結果がNo(変動させない)となった場合には、内部状態変動手段602の処理をスキップする。   After the post-stage mapping calculation means 203 is performed, the mapping value which is the result of the post-stage mapping calculation is stored in place of the mapping value already stored in the mapping value register 103, and the internal state changing means 602 is activated. . The internal state changing means 602 determines whether or not to change the parameter sequence used by the preceding stage mapping calculation means 201 in the variation determining unit 601 based on the reference data 302 and the parameter variation amount sequence 102. Here, if the determination result is Yes (change), the process proceeds to the process of the internal state changing unit 602, while if the determination result is No (does not change), the internal state changing unit 602. Skip the process of.

内部状態変動手段602では、パラメータ列の変動がなされ、結果である新たなパラメータ列が、既にパラメータ列レジスタ104に記憶されているパラメータ列に代えて記憶される。このようにして、カオス写像の写像関数形を決定するパラメータ列を変動させる(変位を加え更新する)。変動手法(変位の与え方)としては、現在のループで使われている写像関数のパラメータ列(パラメータ列レジスタ104内のパラメータ列)、写像値レジスタ103内の写像値、パラメータ変化量列102及び参照データ302を基に計算することができる。この後、写像回数カウンタ603のカウント値をインクリメントして、終了判定部701へ進む。   In the internal state changing means 602, the parameter sequence is changed, and a new parameter sequence as a result is stored in place of the parameter sequence already stored in the parameter sequence register 104. In this way, the parameter sequence that determines the mapping function form of the chaotic map is changed (displacement is added and updated). As the variation method (how to give the displacement), the parameter sequence of the mapping function used in the current loop (the parameter sequence in the parameter sequence register 104), the mapping value in the mapping value register 103, the parameter variation sequence 102, and It can be calculated based on the reference data 302. After that, the count value of the mapping number counter 603 is incremented, and the process proceeds to the end determination unit 701.

終了判定部701では、生成された擬似ランダムビット列が所定長に達したか否かを判定する。判定に当たっては、ランダムビット列802のビット長が入力情報801の擬似ランダムビット長nに達したか否かを比較する。ここで、Yes(nに達した/終了)であることが検出された場合には、後処理部702へ移行する一方、No(nに達していない/継続)であることが検出された場合は、前段写像計算手段201に戻り、一連の処理を継続する。   The end determination unit 701 determines whether or not the generated pseudo random bit string has reached a predetermined length. In the determination, whether or not the bit length of the random bit string 802 has reached the pseudo random bit length n of the input information 801 is compared. Here, when it is detected that the answer is Yes (n is reached / end), the process proceeds to the post-processing unit 702, while when it is detected that it is No (n is not reached / continue). Returns to the former mapping calculation means 201 and continues a series of processing.

後処理部702へ進んだ場合には、例えば各レジスタや各部のリセットなどの後処理が行われ処理が終了(エンド)となる。   When the processing proceeds to the post-processing unit 702, post-processing such as reset of each register or each unit is performed, and the processing ends (end).

既に示した文献9〜17に示した攻撃法及び、これらと数理的、技術的に同等の攻撃法、を利用して最も簡易に(最も少ない計算量で)攻撃が達成できるケースは以下である。(A)擬似乱数生成開始から終了まで同一の写像関数を利用する(内部状態を変動させない)。(B)写像毎に出力用のランダムビットを抽出する。(C)出力のランダムビットの順が写像の順と一致する。以上のケースと比較して、本実施形態に係る擬似乱数生成装置は、先行事例と同等の統計的側面における高い乱数性能を有しながら、上記の攻撃法を利用した攻撃(内部状態の推測、シードの推測)を困難にさせる効果を有する。   The following are the cases in which the attack can be achieved most easily (with the least amount of calculation) by using the attack methods shown in the above-mentioned documents 9 to 17 and the attack methods mathematically and technically equivalent to them. . (A) The same mapping function is used from the start to the end of pseudo-random number generation (the internal state is not changed). (B) Extract random bits for output for each mapping. (C) The order of output random bits matches the order of mapping. Compared with the above case, the pseudo random number generation device according to the present embodiment has an attack using the above attack method (guess of internal state, while having high random number performance in the statistical aspect equivalent to the precedent case). It has the effect of making it difficult to guess the seed.

本実施形態に係る擬似乱数生成装置は、変動判定部601、内部状態変動手段602を有し、内部状態変動手段602は、参照データ302と、シード固有の情報であるパラメータ変化量列102とを参照して、シード情報の固有性を保ちながら、ランダムな変化量にて内部状態を変動させる(写像関数形を変化させる)と共に、変動判定部601は、参照データ302を参照して、ランダムなタイミングにて上記内部状態変動(写像関数形変化)を達成する構成を有している。即ち、攻撃者による内部状態の同期を困難なものとし、特に上記ケース(A)による攻撃法の適用を困難にする効果(効果1)を有している。   The pseudo random number generation device according to the present exemplary embodiment includes a variation determination unit 601 and an internal state variation unit 602. The internal state variation unit 602 includes reference data 302 and a parameter variation amount sequence 102 that is seed-specific information. With reference to this, while maintaining the uniqueness of the seed information, the internal state is changed by a random amount of change (the mapping function form is changed), and the fluctuation determining unit 601 refers to the reference data 302 and randomly The configuration is such that the above-mentioned internal state change (map function type change) is achieved at a timing. That is, it has an effect (effect 1) that makes it difficult for the attacker to synchronize the internal state, and particularly makes it difficult to apply the attack method in the case (A).

本実施形態に係る擬似乱数生成装置は、選択判定部401と選択手段402とを有し、これらはそれぞれ参照データ302を参照し「採用するビット位置」を求め、元データ303中の「採用するビット位置」のビット(ビット列)を選択抽出し、転置前ランダムビット列403を得る構成を有している。即ち、写像毎に抽出されたランダムビット列の全てが、そのまま最終出力として利用される訳ではないため、特に上記ケースBによる攻撃法の適用を困難にする効果(効果2)を有している。   The pseudo random number generation device according to the present exemplary embodiment includes a selection determination unit 401 and a selection unit 402, each of which refers to reference data 302 to obtain “adopted bit position”, and “adopts” in original data 303. A bit (bit string) of “bit position” is selectively extracted to obtain a pre-transposition random bit string 403. That is, not all of the random bit strings extracted for each mapping are used as they are as the final output, and thus there is an effect (effect 2) that makes it difficult to apply the attack method in case B above.

本実施形態に係る擬似乱数生成装置は、転置手段502を有し、転置手段502では、参照データ302を参照し、「転置ルール」を求め、当該転置ルールにより転置前ランダムビット列403のデータに所定転置処理を実行し、転置結果のビット列を一時保持する保持手段503に保持させる構成を有している。即ち、写像毎に抽出されたランダムビット列が写像の順番で(ランダムビット列を抽出した順番で)出力される訳ではないため、特に上記ケースCによる攻撃法の適用を困難にする効果(効果3)を有している。   The pseudo random number generation device according to the present exemplary embodiment has a transposing unit 502, and the transposing unit 502 refers to the reference data 302 to obtain the “transposition rule”, and the data of the pre-transposition random bit string 403 is determined by the transposition rule. The transposing process is executed, and the bit string resulting from the transposition is held in the holding unit 503 that temporarily holds the bit string. That is, since the random bit string extracted for each mapping is not output in the mapping order (in the order in which the random bit string is extracted), it is difficult to apply the attack method in the above case C (effect 3). have.

本実施形態に係る擬似乱数生成装置によって生成されるランダムビット列は、前段写像計算手段201による演算後の値から抽出され、各種選択部における選択をランダム化させ、また、最終出力に到る前にランダムな転置を受ける等の処理が、参照データ302に基づき行われる一方、実施形態に係る擬似乱数生成装置の最終出力の候補は上記参照データ302とは明確に区分分離された元データ303に対する演算によって得るという、独立した2系統のランダムビット列によるという構成を有している。   The random bit string generated by the pseudo random number generation device according to the present embodiment is extracted from the value after the calculation by the pre-stage mapping calculation unit 201, randomizes the selection in various selection units, and before reaching the final output. A process such as receiving a random transposition is performed based on the reference data 302, while a final output candidate of the pseudo random number generation device according to the embodiment is an operation on the original data 303 clearly separated from the reference data 302. It is obtained by two independent random bit strings.

参照データ302は、変動判定部601、内部状態変動手段602、選択判定部401、選択手段402、転置手段502、後段写像選択部202において参照され、必要とされるランダム性の提供源としての機能を有するものであり、特に上記効果1〜3に寄与する。この参照データ302は、本実施形態に係る擬似乱数生成装置の最終出力である出力ランダムビット列802の元データとして流用しないため、本実施形態に係る擬似乱数生成装置の最終出力情報からは、上記ランダム変化のタイミングに関する情報としての参照データ302が推定や予測されることはない。これにより、上記効果1〜3と併せて、各種攻撃法の適用を困難にする効果を有する。   The reference data 302 is referred to by the variation determination unit 601, the internal state variation unit 602, the selection determination unit 401, the selection unit 402, the transposition unit 502, and the rear-stage mapping selection unit 202, and functions as a source of providing required randomness. And contributes to the above effects 1 to 3. Since this reference data 302 is not used as the original data of the output random bit string 802 which is the final output of the pseudo random number generation device according to the present exemplary embodiment, the random number is output from the final output information of the pseudo random number generation device according to the present exemplary embodiment. The reference data 302 as information about the timing of change is not estimated or predicted. This has the effect of making it difficult to apply various attack methods in addition to the effects 1 to 3 described above.

また、出力ランダムビット列802は、前段写像計算手段201により拡大された写像値から得られる元データ303を用いてビット算出手段400の演算により得られる。更に、ループにより次のステップに用いられる写像計算の入力(次ステップにおいて写像計算の元となる写像値)は、上記ビット算出手段400の演算により得られる値を、後段写像計算手段203としての写像計算部203−0〜203−(m−1)で演算して(例えば、除算における剰余、或いは、右ビットシフトで切り捨てられるビット列として)得られる。これにより、次のステップの前段写像計算の入力(次ステップにおいて写像計算の元となる写像値)は、本実施形態に係る擬似乱数生成装置の最終出力である出力ランダムビット列802の情報を一切含まないため、上記効果1〜3と併せて、各種攻撃法の適用を困難にする効果を有する。   Further, the output random bit string 802 is obtained by the calculation of the bit calculating means 400 using the original data 303 obtained from the mapping value enlarged by the pre-stage mapping calculating means 201. Further, the input of the mapping calculation used in the next step by the loop (the mapping value which is the source of the mapping calculation in the next step) is the value obtained by the calculation of the bit calculating means 400, and the mapping as the latter-stage mapping calculating means 203. It is obtained by calculation in the calculation units 203-0 to 203- (m-1) (for example, as a remainder in division or as a bit string truncated by right bit shift). As a result, the input of the pre-stage mapping calculation of the next step (the mapping value which is the source of the mapping calculation in the next step) includes all the information of the output random bit string 802 which is the final output of the pseudo random number generation device according to this embodiment. Since it does not exist, it has the effect of making it difficult to apply various attack methods in addition to the above-mentioned effects 1 to 3.

本実施形態に係る擬似乱数生成装置は、後段写像選択部202、後段写像計算手段203としての写像計算部203−0〜203−(m−1)を有する。後段写像選択部202は、参照データ302を参照し、複数の写像計算部203−0〜203−(m−1)のいずれか一つをランダムに選択する構成を採用している。これにより、軌道のバリエーションを増やし、ランダムビット列のパターン数の増加に寄与すると共に、各種攻撃法の適用を困難にする効果を有する。   The pseudo random number generation device according to the present exemplary embodiment includes a post-stage mapping selection unit 202 and a mapping calculation unit 203-0 to 203- (m-1) as the post-stage mapping calculation unit 203. The latter-stage mapping selection unit 202 employs a configuration that refers to the reference data 302 and randomly selects one of the plurality of mapping calculation units 203-0 to 203- (m-1). This has the effect of increasing the variation of the trajectory, contributing to the increase in the number of patterns of the random bit string, and making it difficult to apply various attack methods.

具体的実施形態1
次に具体的実施形態1を説明する。この具体的実施形態1は、テント写像を利用した場合の例である。本実施形態1では、シード長が512ビットのシード(あるいは鍵)seed、ランダムビット列長nを入力情報801として、nビットのランダムビット列(0,1の2値系列){bn}を得るものである。具体的実施形態1において、演算精度は64ビット、写像値Xのビット幅はt=32ビットとする。具体的実施形態1では整数演算化された以下のテント写像を用いる。
Specific Embodiment 1
Next, a specific embodiment 1 will be described. The specific embodiment 1 is an example in which a tent map is used. In the first embodiment, an n-bit random bit string (binary sequence of 0 and 1) {bn} is obtained by using a seed (or key) seed having a 512-bit seed length and the random bit string length n as input information 801. is there. In the specific embodiment 1, the calculation precision is 64 bits, and the bit width of the mapping value X is t = 32 bits. In the concrete embodiment 1, the following tent maps which have been converted into integers are used.

Figure 0006678958
Figure 0006678958

有限精度の計算機実装を与えるため、写像は、テント写像FT,Aと端数処理関数Gξ(ξ=0,1,・・・,7)を併せて達成される。即ち、次の式2に示す通りである。 To give a finite-precision computer implementation, the mapping is accomplished by combining the tent map F T, A and the fractional processing function G ξ (ξ = 0, 1, ..., 7). That is, it is as shown in the following Expression 2.

Figure 0006678958
Figure 0006678958

尚、本具体的実施形態1では、式2による写像の計算を、以下に示す前段写像F′T,Aと後段写像G′ξに分割して考える。 In the concrete embodiment 1, the calculation of the mapping by the equation 2 is considered by dividing it into the following pre-stage mapping F ′ T, A and post-stage mapping G ′ ξ .

Figure 0006678958
Figure 0006678958

上記の写像(後段)G′ξ(X)は、XをMで割ったあとに端数処理をする関数を示す。特にMが2の冪乗である場合、すなわち M=2の場合は、XをMで割る操作はXのsビット右シフトと同じ処理である。このとき、Xの下位sビットが切り捨てられる。つまり、XをMで割る前(Xのsビット右シフト以前)に、切り捨てられる位置は確定しており、Xの下位sビットが「切り捨てられるビット列」に相当する。 The above-mentioned mapping (second stage) G ′ ξ (X) indicates a function that performs fraction processing after dividing X by M. In particular, when M is a power of 2, that is, when M = 2 s , the operation of dividing X by M is the same process as s-bit right shift of X. At this time, the lower s bits of X are truncated. In other words, before X is divided by M (before s-bit right shift of X), the position to be truncated is fixed, and the lower s bits of X correspond to the “truncated bit string”.

なお、Mが2の冪乗でない場合は、XをMで割る操作によって切り捨てられる部分は、XをMで割った余りの部分(剰余部)(XModM,Mod(X,M),X%Mなどと記される)であり、これもXをMで割る操作と同じく、既知である。以上から、元データ303は、前段写像計算手段201により拡大された写像値のうち、後段写像計算手段203としての写像計算部203−0〜203−(m−1)の除算における剰余、或いは、右ビットシフトで切り捨てられるビット列から抽出されるものであると結論することができる。   If M is not a power of 2, the portion that is cut off by the operation of dividing X by M is the remainder (remainder portion) of X by M (XModM, Mod (X, M), X% M , Etc.), which is also known, like the operation of dividing X by M. From the above, the original data 303 is the remainder in the division of the mapping calculators 203-0 to 203- (m-1) as the latter mapping calculator 203 among the mapping values expanded by the former mapping calculator 201, or It can be concluded that it is extracted from the bit string that is truncated by right bit shift.

本具体的実施形態1の以降の説明においては、下記の定数を用いる。   In the following description of the specific embodiment 1, the following constants are used.

Figure 0006678958
Figure 0006678958

以下に、図3に示した構成によって、この具体的実施形態1が実現されるものとして、動作を説明する。   The operation will be described below assuming that the specific embodiment 1 is realized by the configuration shown in FIG.

前処理部101では、512ビットのシード(あるいは鍵)seed、ランダムビット列長n∈Zの入力を受け、所定関数により、初期の写像値、初期のパラメータ列、シード固有パラメータ列、パラメータ変化量列102を下記の通りに生成する。   The pre-processing unit 101 receives a 512-bit seed (or key) seed and a random bit string length nεZ, and performs an initial mapping value, an initial parameter string, a seed-specific parameter string, and a parameter change amount string by a predetermined function. 102 is generated as follows.

Figure 0006678958
Figure 0006678958

シード固有パラメータ列k[1]〜k[32]は、512ビットのシードseedを16ビット単位に分割して、計32ブロックに格納したものである(16×32=512)。即ち、次の式14に示す通りである。 Seed-specific parameter sequence k a [1] ~k a [ 32] divides 512-bit seed seed in 16-bit units, is obtained by storing a total of 32 blocks (16 × 32 = 512). That is, it is as shown in the following Expression 14.

Figure 0006678958
Figure 0006678958

パラメータ列a[1]〜a[32]は、パラメータ列レジスタ104に格納され、前段写像計算手段201における写像計算で利用される。本具体的実施形態1では、次の式15の通りである。   The parameter strings a [1] to a [32] are stored in the parameter string register 104 and used in the mapping calculation in the pre-stage mapping calculation means 201. In the specific embodiment 1, the following Expression 15 is obtained.

Figure 0006678958
Figure 0006678958

パラメータ変化量列102(p[1]〜p[32])は、内部状態変動手段602において、パラメータ列a[ ]に変化を与えるための参照値として利用される。本具体的実施形態1では、次の式16の通りである。 Parameter change amount column 102 (p a [1] ~p a [32]) , in the internal state change means 602 is used as a reference value to provide a change in the parameter column a []. In the specific embodiment 1, the following Expression 16 is obtained.

Figure 0006678958
Figure 0006678958

前処理部101による処理の次に前段写像計算手段201による計算が行われる。この前段写像計算手段201では、式3に示した前段写像の計算を実施して写像中間値Yを得る。擬似乱数生成アルゴリズム開始時点では、前処理部101により生成され写像値レジスタ103に格納された初期の写像値Xを用いた写像計算がなされる。ここで、写像回数i、パラメータ列a[j]が選ばれているとすると、写像中間値Yは、次の式17の通りである。 After the processing by the preprocessing unit 101, the calculation by the pre-stage mapping calculation unit 201 is performed. In this pre-stage mapping calculation means 201, the pre-stage mapping shown in Expression 3 is executed to obtain a mapping intermediate value Y. At the start of the pseudo-random number generation algorithm, mapping calculation is performed using the initial mapping value X 0 generated by the preprocessing unit 101 and stored in the mapping value register 103. Here, assuming that the number of mappings i and the parameter sequence a [j] are selected, the mapping intermediate value Y is as in the following Expression 17.

Figure 0006678958
Figure 0006678958

前段写像計算手段201で使われるパラメータ列a[ ]について説明する。本具体的実施形態1では、擬似乱数生成アルゴリズム開始時点で、前処理部101にてa[1]〜a[32]の計32個のパラメータが生成されている。第1回目の写像では、j=1番目のパラメータ、すなわちa[1]が利用される。いまj番目(j=1,2,・・・,32)のパラメータが選ばれているとする。後述の変動判定部601においてNo(変動させない)と判定された場合は、次回の写像でも再び同じパラメータが用いられる。Yes(変動させる)と判定された場合は、後述の手法にてa[j]の値が更新されると共に、jのインクリメント(j=j+1)が実行され、次回の写像では、次の番号のパラメータが使われる。ただしj>32の場合はj=1に戻る。   The parameter sequence a [] used in the pre-stage mapping calculation means 201 will be described. In the specific embodiment 1, a total of 32 parameters a [1] to a [32] are generated by the preprocessing unit 101 at the start of the pseudorandom number generation algorithm. In the first mapping, the j = 1st parameter, that is, a [1] is used. It is now assumed that the j-th (j = 1, 2, ..., 32) parameter is selected. If the variation determination unit 601 described later determines No (no variation), the same parameter is used again in the next mapping. When it is determined to be Yes (change), the value of a [j] is updated and the increment of j (j = j + 1) is executed by the method described later, and in the next mapping, the next number Parameters are used. However, when j> 32, the process returns to j = 1.

前段写像計算手段201に次いで抽出手段301による処理が行われる。抽出手段301では前段写像計算手段201による計算後に得た写像中間値Yの所定位置のビットを抽出して、参照データ302として、r[k]、(r[k]∈{0,1}、k=1,2,・・・,17)、および、元データ303として、r[k]、(r[k]∈{0,1},k=1,2,・・・,8)を得る。本具体的実施形態1では、Yは64ビットである。Yを2進数表記した以下の式18に示す配列を考える。これにより、r[k]とr[k]は式19、式20となる。 The process by the extraction unit 301 is performed after the pre-stage mapping calculation unit 201. The extraction unit 301 extracts a bit at a predetermined position of the mapping intermediate value Y obtained after the calculation by the pre-stage mapping calculation unit 201, and as reference data 302, r i [k] and (r i [k] ε {0, 1 }, K = 1, 2, ..., 17), and as original data 303, r o [k], (r o [k] ε {0, 1}, k = 1, 2, ... , 8). In the specific embodiment 1, Y is 64 bits. Consider the array shown in the following Expression 18 in which Y is represented by a binary number. As a result, r i [k] and r o [k] become equations 19 and 20.

Figure 0006678958
Figure 0006678958

具体的実施形態1においては、参照データ302として、r[k]、(ri[k]∈{0,1},k=1,2,・・・,17)により示されるランダムビット列は、選択判定部401、選択手段402、後段写像選択部202、転置手段502、変動判定部601、内部状態変動手段602の計6箇所において参照されるランダムデータとして利用される。参照データ302としてのrが参照される範囲はアルゴリズムの内部処理に限られており、外部出力用のランダムビット列としては利用されない。 In the specific embodiment 1, as the reference data 302, the random bit string indicated by r i [k], (ri [k] ε {0, 1}, k = 1, 2, ..., 17) is It is used as random data that is referred to at a total of six locations including the selection determination unit 401, the selection unit 402, the latter-stage mapping selection unit 202, the transposition unit 502, the variation determination unit 601, and the internal state variation unit 602. The range in which r i as the reference data 302 is referred to is limited to internal processing of the algorithm, and is not used as a random bit string for external output.

なお、元データ303であるr[k](r[k]∈{0,1},k=1,2,・・・,8)は、具体的実施形態1の出力となるランダムビット列の「候補」である。即ち、元データ303であるrの全てが採用される訳ではない。 The original data 303 r o [k] (r o [k] ε {0, 1}, k = 1, 2, ..., 8) is a random bit string that is an output of the concrete embodiment 1. Is a "candidate". That is, not all of the original data 303, ro , are adopted.

抽出手段301による処理に続いて選択判定部401が処理を行う。選択判定部401は、参照データ302であるrのデータを参照して、擬似乱数を選択する選択手段402の処理へ移行するか否かを判定する。参照データ302であるr[k](k=1,2,・・・,17)のうち、r[1]=1(Yes)ならば、選択手段402の処理へ移行する。一方、r[1]=0(No)ならば後段写像選択部202に移行する。 Following the processing by the extraction means 301, the selection determination unit 401 performs processing. The selection determination unit 401 refers to the data of r i that is the reference data 302 and determines whether or not to shift to the process of the selection unit 402 that selects a pseudo random number. If r i [1] = 1 (Yes) in the r i [k] (k = 1, 2, ..., 17) that is the reference data 302, the process proceeds to the processing of the selection unit 402. On the other hand, if r i [1] = 0 (No), the process proceeds to the latter-stage mapping selection unit 202.

前述の選択判定部401がYesと判定した場合に、選択手段402は次の処理を行う。選択手段402は、参照データ302であるrのデータを参照して、元データ303であるrのデータ中から外部に出力するランダムビット(列)を選択する。本実施形態では、参照データ302のうちr[2]〜r[9]の8ビットを参照し、r[k]=1(k=2,3,4,・・・,9)(Yes)ならばr[k−1]を有効なビット列である転置前ランダムビット列403として、レジスタtmp[ ]に格納する。一方、r[k]=0(k=2,3,4,・・・,9)(No)ならば、r[k−1]は如何なる用途にも使用されず破棄される。 When the selection determination unit 401 described above determines Yes, the selection unit 402 performs the following processing. The selection unit 402 refers to the data of r i that is the reference data 302 and selects a random bit (column) to be output to the outside from the data of r o that is the original data 303. In the present embodiment, with reference to the 8-bit r i [2] ~r i [ 9] Among the reference data 302, r i [k] = 1 (k = 2,3,4, ···, 9) If (Yes), ro [k-1] is stored in the register tmp [] as the pre-transposition random bit string 403 which is a valid bit string. On the other hand, if r i [k] = 0 (k = 2, 3, 4, ..., 9) (No), r o [k−1] is discarded without being used for any purpose.

選択手段402による処理の後にランダムビット長カウンタ404では、選択手段402にて選ばれた外部に出力されるランダムビット列の長さをカウントする。   After the processing by the selection means 402, the random bit length counter 404 counts the length of the random bit string selected by the selection means 402 and output to the outside.

ランダムビット長カウンタ404のカウントを受けて転置判定部501が動作する。転置判定部501では、レジスタtmp[ ]に格納された転置前ランダムビット列403のデータサイズを参照して、転置手段502の処理へ移行するか否かを判定する。本実施形態では、レジスタtmp[ ]に格納された転置前ランダムビット列403の長さが8ビットに達している(Yes)ならば転置手段502による処理へ移行する。一方、転置前ランダムビット列403の長さが8ビット未満(No)ならば、後段写像選択部202へ移行する。尚、転置手段502による処理へ移行する場合は、レジスタtmp[ ]の先頭から8ビットがレジスタref[ ]に移されると共に、レジスタtmp[ ]の先頭8ビットは消去される。また、レジスタtmp[ ]の9ビット目以降のデータが繰り上がるようになっている。   The transposition determining unit 501 operates in response to the count of the random bit length counter 404. The transposition determining unit 501 refers to the data size of the pre-transposition random bit string 403 stored in the register tmp [] and determines whether or not to shift to the processing of the transposing unit 502. In the present embodiment, if the length of the pre-transposition random bit string 403 stored in the register tmp [] has reached 8 bits (Yes), the transposing means 502 proceeds to the processing. On the other hand, if the length of the pre-transposition random bit sequence 403 is less than 8 bits (No), the process proceeds to the post-stage mapping selection unit 202. In the case of shifting to the processing by the transposing means 502, the 8 bits from the beginning of the register tmp [] are moved to the register ref [] and the leading 8 bits of the register tmp [] are erased. Further, the data of the 9th bit onward of the register tmp [] is carried up.

転置判定部501による処理の次には、転置手段502による処理が行われる。転置手段502では、転置判定部501による判定がYesのときに限り、上述のレジスタref[ ]に生成された8ビットのデータの順序を並び替える処理を行う。本実施形態では、予めP〜P15の16方式の転置ルールが用意されている。参照データ302のうちr[10]〜r[13]の計4ビットを、10進展開した値ξ={0,1,2,・・・,15}に対応する転置ルールPξが選択される。転置後のデータは、保持手段503であるレジスタOUT[ ]に格納される。 Subsequent to the processing by the transposition determining unit 501, the processing by the transposing means 502 is performed. The transposing means 502 performs a process of rearranging the order of the 8-bit data generated in the above-mentioned register ref [] only when the determination by the transposition determining unit 501 is Yes. In this embodiment, 16 transposition rules of P 0 to P 15 are prepared in advance. The four bits of r i [10] ~r i [ 13] of the reference data 302, the decimal expansion value ξ = {0,1,2, ···, 15 } is the transpose rule P xi] corresponding to To be selected. The transposed data is stored in the register OUT [] which is the holding unit 503.

本実施形態において用いる、上記16方式の転置ルールとは、レジスタref[ ]のi番目に写す写像t:I→I,(i∈I,t(i)∈I,I={1,2,・・・,8},tは全単射)として与えられる。写像tは、全部で8!(8の階乗)通りある。本実施形態では、上記の8の階乗通り中の16通りを選択したものである。以下に、第ξ(ξ=0,1,2,・・・,15)番目の写像tを意味するビット転置表Pξを、表1(P〜P)と表2(P〜P15)に示す。 The 16-system transposition rule used in the present embodiment is the mapping t: I → I, (iεI, t (i) εI, I = {1, 2, ..., 8}, t is given as bijection). The mapping t is 8 in total! (8 factorial) There are streets. In the present embodiment, 16 of the 8 factorial streets are selected. Below, the bit transposition table P ξ that means the ξ (ξ = 0, 1, 2, ..., 15) th mapping t is shown in Table 1 (P 0 to P 7 ) and Table 2 (P 8 to P 15 ).

Figure 0006678958
Figure 0006678958

Figure 0006678958
Figure 0006678958

転置手段502の処理が終了すると、出力部504が起動される。保持手段503であるレジスタOUT[ ]に転置後のデータが格納されると、所定のタイミングにおいて、出力部504により出力命令が出力されて上記保持手段503であるレジスタOUT[ ]に保持されたビット列を出力ランダムビット列802として出力する。既述の通り、出力部504は、保持手段503に保持されている転置後ランダムビット列が出力規定ビット長に達したかを判定し、達していれば出力命令を出力する。   When the processing of the transposing means 502 is completed, the output unit 504 is activated. When the transposed data is stored in the register OUT [] which is the holding unit 503, an output command is output from the output unit 504 at a predetermined timing and the bit string held in the register OUT [] which is the holding unit 503. Is output as an output random bit string 802. As described above, the output unit 504 determines whether or not the transposed random bit string held in the holding unit 503 has reached the specified output bit length, and if so, outputs the output command.

転置手段502の処理が修了した場合は、出力部504の処理が実施されるか否かに関係せず、ランダムビット長カウンタ404をクリアするランダムビット長カウンタクリア505が実施される。前記ランダムビット長カウンタクリア505が実施された場合、または、選択判定部401でNoが選択された場合、または、転置判定部501でNoが選択された場合は、続いて、後段写像選択部202が起動される。   When the processing of the transposing means 502 is completed, the random bit length counter clear 505 that clears the random bit length counter 404 is executed regardless of whether the processing of the output unit 504 is executed. If the random bit length counter clear 505 is performed, or if the selection determination unit 401 selects No, or if the transposition determination unit 501 selects No, then the subsequent mapping selection unit 202. Is started.

後段写像選択部202では、予め用意してあるm個の端数処理関数G〜Gm−1に対応する後段写像関数G′〜G′m−1のうち、参照データ302の所定位置データを参照して選択する。本実施形態では、m=8として、予めG′〜G′の8方式の後段写像関数が用意されている。参照データ302のうちr[14]〜r[16]の計3ビットを、10進展開した値ξ∈{0,1,2,・・・,7}に対応する後段写像関数G′ξが選択される。ここで、後段写像関数G′ξ(X)(ξ=0,1,2,・・・,7)の例を、以下の式(A)に示す。 In the latter-stage mapping selection unit 202, the predetermined position data of the reference data 302 among the latter-stage mapping functions G ′ 0 to G ′ m−1 corresponding to the m fraction processing functions G 0 to G m−1 prepared in advance. To select. In the present embodiment, as m = 8, and is pre-G '0 ~G' 7 8 scheme subsequent mapping function of prepared. The total of three bits of r i [14] ~r i [ 16] of the reference data 302, the decimal expansion value ξ∈ {0,1,2, ···, 7} corresponding to the subsequent mapping function G ' ξ is selected. Here, an example of the latter-stage mapping function G ′ ξ (X) (ξ = 0, 1, 2, ..., 7) is shown in the following expression (A).

Figure 0006678958
Figure 0006678958

後段写像選択部202の処理に次いで、後段写像計算手段203の処理が行われる。後段写像計算手段203としての写像計算部203−0〜203−(m−1)の中の選択された写像計算部203−iにおいて、前段写像計算手段201において得られた写像中間値Yに基づき、後段写像選択部202で選択された番号ξに対応する後段写像関数G′ξの計算を実施して写像値を更新する。現在の写像回数がiであるならば、更新された写像値は次の式21に示されるようである。 Subsequent to the processing of the latter-stage mapping selection unit 202, the processing of the latter-stage mapping calculation means 203 is performed. In the selected mapping calculation unit 203-i of the mapping calculation units 203-0 to 203- (m-1) as the subsequent mapping calculation unit 203, based on the mapping intermediate value Y obtained in the preceding mapping calculation unit 201. , The post-stage mapping function G ′ ξ corresponding to the number ξ selected by the post-stage mapping selection unit 202 is calculated to update the mapping value. If the current number of mappings is i, the updated mapping values are as shown in equation 21 below.

Figure 0006678958
Figure 0006678958

更新された写像値は、写像値レジスタ103の写像値に上書きされる。後段写像計算手段203の処理の後には、変動判定部601による処理が行われる。変動判定部601では、参照データ302の所定位置データを参照して、擬似乱数生成アルゴリズムの内部状態に変動を与えるか否かを決定する。本実施形態では、参照データ302であるr[k](k=1,2,・・・,17)のうち、r[17]=1である(Yes/変動を与える)ならば、内部状態変動手段602による処理に移動し、r[17]=0である(No/変動しない)ならば、写像回数カウンタ603の処理へ移行する。 The updated mapping value is overwritten on the mapping value in the mapping value register 103. After the processing of the latter-stage mapping calculation unit 203, the processing by the fluctuation determination unit 601 is performed. The fluctuation determination unit 601 refers to the predetermined position data of the reference data 302 and determines whether or not to change the internal state of the pseudo random number generation algorithm. In the present embodiment, a reference data 302 r i [k] (k = 1,2, ···, 17) of, if it is r i [17] = 1 ( Yes / give variation) The process moves to the process by the internal state changing unit 602, and if r i [17] = 0 (No / no change), the process proceeds to the process of the mapping number counter 603.

上記においてr[17]=1であり、内部状態変動手段602による処理に移行すると、内部状態変動手段602では、パラメータ変化量列102及び参照データ302を参照してパラメータa[ ]に変動を与える。いま、j(1,2,・・・,32)番目のパラメータa[j]が選ばれているとする。本実施形態では、次の式22による変動が行われる。 In the above, r i [17] = 1, and when the process shifts to the processing by the internal state changing unit 602, the internal state changing unit 602 refers to the parameter change amount column 102 and the reference data 302 and changes the parameter a []. give. Now, it is assumed that the j (1, 2, ..., 32) th parameter a [j] is selected. In the present embodiment, the variation according to the following Expression 22 is performed.

Figure 0006678958
Figure 0006678958

上記内部状態変動手段602では、上記の式22による変動を行った場合には、パラメータ列レジスタ104のパラメータ列に対し上記変動に係るパラメータ列を上書きして更新する。この処理の後に、或いは変動判定部601においてNoとなったときには、写像回数カウンタj=j+1が計算され、次回の写像では、次の番号のパラメータが使われる。ただしj>32の場合はj=1に戻る。この後、写像回数カウンタ603のカウント値をインクリメントして、終了判定部701へ進む。   When the internal state changing means 602 changes according to the above equation 22, the parameter string of the parameter string register 104 is overwritten with the parameter string related to the fluctuation and updated. After this process, or when the change determination unit 601 returns No, the mapping number counter j = j + 1 is calculated, and the next numbered parameter is used in the next mapping. However, when j> 32, the process returns to j = 1. After that, the count value of the mapping number counter 603 is incremented, and the process proceeds to the end determination unit 701.

終了判定部701では、擬似ランダムビット列が所定長に達したか否かを判定する。Yes(終了)ならば、後処理部702へ移行し、No(終了ではない)ならば、前段写像計算手段201に戻り、一連の処理を継続する。   The end determination unit 701 determines whether or not the pseudo random bit string has reached a predetermined length. If Yes (end), the process proceeds to the post-processing unit 702, and if No (not end), the process returns to the pre-stage mapping calculation unit 201 and the series of processes is continued.

後処理部702へ進んだ場合には、例えば各レジスタや各部のリセットなどの後処理が行われ処理(アルゴリズム)が終了される。   When the processing proceeds to the post-processing unit 702, post-processing such as resetting of each register and each unit is performed, and the processing (algorithm) ends.

具体的実施形態2
次に具体的実施形態2を説明する。この具体的実施形態2は、ロジスティック写像を利用した場合の例である。システムパラメータとして
写像値Xのビット幅:t=64ビット
演算精度:192ビット
を利用する。
Specific Embodiment 2
Next, a specific second embodiment will be described. The second specific example is an example in which a logistic mapping is used. As the system parameter, the bit width of the mapping value X: t = 64 bits, the calculation accuracy: 192 bits are used.

ユーザは、
seed: 64ビットの乱数種
n: 出力ランダムビット列のビット数
を擬似乱数生成装置に入力する。
これにより、擬似乱数生成装置は次のランダムビット列を出力する。
{b1,b2,・・・,bn}:nビットの出力ランダムビット列
ただし、biは0または1とする。
The user
seed: 64-bit random number seed n: number of bits of output random bit string is input to the pseudo-random number generator.
As a result, the pseudo random number generator outputs the next random bit string.
{B1, b2, ..., Bn}: n-bit output random bit string, where bi is 0 or 1.

具体的実施形態2では、次の通りの整数演算化されたロジスティック写像を用いる。   In the concrete embodiment 2, the logistic mapping in which the following integers are calculated is used.

Figure 0006678958
Figure 0006678958

ここに、有限精度の計算機実装を与えるため、写像は、ロジスティック写像FL,ALと端数処理関数Gξ(ξ=0,1,・・・,7)を併せて達成される。即ち、以下の式24により表される。 In order to provide a finite-precision computer implementation here, the mapping is achieved by combining the logistic mapping FL , AL and the fractional processing function G ξ (ξ = 0, 1, ..., 7). That is, it is represented by the following Expression 24.

Figure 0006678958
Figure 0006678958

尚、本具体的実施形態2では、式(24)による写像の計算を、以下に示す前段写像F´L,ALと後段写像G′′ξに分割して実行する。 Incidentally, in the second specific embodiment, the calculation of the mapping by the equation (24) is executed by dividing it into the following pre-stage mapping F ′ L, AL and post-stage mapping G ″ ″ ξ .

Figure 0006678958
Figure 0006678958

本具体的実施形態2の以降の説明においては、下記の定数を用いる。   The following constants will be used in the subsequent description of the specific second embodiment.

Figure 0006678958
Figure 0006678958

以下に、図3に示した構成によってこの具体的実施形態2が実現されるものとして、動作を説明する。   The operation will be described below assuming that the specific embodiment 2 is realized by the configuration shown in FIG.

前処理部101では、t(=64)ビットのシード(あるいは鍵)seed、ランダムビット列長n∈Zの入力を受け、所定関数により、初期の写像値、初期のパラメータ列、シード固有パラメータ列、パラメータ変化量列102を下記の通りに生成する。   The pre-processing unit 101 receives an input of a seed (or key) seed of t (= 64) bits and a random bit string length nεZ, and performs an initial mapping value, an initial parameter string, a seed-specific parameter string, by a predetermined function. The parameter change amount sequence 102 is generated as follows.

Figure 0006678958
Figure 0006678958

前処理部101では、初期の写像値Xをseed情報を基に算出し,Xi+1=FL,AL,max(X)を計算する。その過程で、シード固有パラメータ列の要素として、k[j]=X5j+100とする64ビットの整数を得る。即ち、次の式36に示されるようになる。 The pre-processing unit 101 calculates the initial mapping value X 0 based on the seed information and calculates X i + 1 = F L, AL, max (X i ). In the process, a 64-bit integer with k a [j] = X 5j + 100 is obtained as an element of the seed-specific parameter sequence. That is, it becomes as shown in the following Expression 36.

Figure 0006678958
Figure 0006678958

パラメータ列a[1]〜a[32]は、パラメータ列レジスタ104に格納され、前段写像計算手段201における写像計算で利用される。本具体的実施形態2では、次の式37の通りである。   The parameter strings a [1] to a [32] are stored in the parameter string register 104 and used in the mapping calculation in the pre-stage mapping calculation means 201. In the specific second embodiment, the following Expression 37 is obtained.

Figure 0006678958
Figure 0006678958

パラメータ変化量列p[1]〜p[32]は、内部状態変動手段602において、パラメータ列a[ ]に変化を与えるための参照値として利用される。本具体的実施形態2では、次の式38の通りである。 Parameter variation column p a [1] ~p a [ 32] , in the internal state change means 602 is used as a reference value to provide a change in the parameter column a []. In the specific second embodiment, the following Expression 38 is obtained.

Figure 0006678958
Figure 0006678958

前処理部101の次に前段写像計算手段201による計算が行われる。この前段写像計算手段201では、式25に示した前段写像の計算を実施して写像中間値Yを得る。擬似乱数生成アルゴリズム開始時点では、前処理部101により生成され写像値レジスタ103に格納された初期の写像値Xを用いた写像計算がなされる。ここで、写像回数i、パラメータ列a[j]が選ばれているとすると、写像中間値Yは、次の式39の通りである。 After the preprocessing unit 101, the calculation by the pre-stage mapping calculation unit 201 is performed. The pre-stage mapping calculation means 201 calculates the pre-stage mapping shown in Expression 25 to obtain a mapping intermediate value Y. At the start of the pseudo-random number generation algorithm, mapping calculation is performed using the initial mapping value X 0 generated by the preprocessing unit 101 and stored in the mapping value register 103. Here, assuming that the number of mappings i and the parameter sequence a [j] are selected, the mapping intermediate value Y is as in the following Expression 39.

Figure 0006678958
Figure 0006678958

前段写像計算手段201で使われるパラメータ列a[ ]について説明する。本具体的実施形態2では、擬似乱数生成アルゴリズム開始時点で、前処理部101にてa[1]〜a[32]の計32個のパラメータが生成されている。第1回目の写像では、j=1番目のパラメータ、すなわちa[1]が利用される。いまj番目(j=1,2,・・・,32)のパラメータが選ばれているとする。後述の変動判定部601においてNo(変動させない)と判定された場合は、次回の写像でも再び同じパラメータが用いられる。Yes(変動させる)と判定された場合は、後述の手法にてa[j]の値が更新されると共に、jのインクリメント(j=j+1)が実行され、次回の写像では、次の番号のパラメータが使われる。ただしj>32の場合はj=1に戻る。   The parameter sequence a [] used in the pre-stage mapping calculation means 201 will be described. In the second specific embodiment, a total of 32 parameters a [1] to a [32] are generated by the preprocessing unit 101 at the start of the pseudorandom number generation algorithm. In the first mapping, the j = 1st parameter, that is, a [1] is used. It is now assumed that the j-th (j = 1, 2, ..., 32) parameter is selected. If the variation determination unit 601 described later determines No (no variation), the same parameter is used again in the next mapping. When it is determined to be Yes (change), the value of a [j] is updated and the increment of j (j = j + 1) is executed by the method described later, and in the next mapping, the next number Parameters are used. However, when j> 32, the process returns to j = 1.

前段写像計算手段201に次いで抽出手段301による処理が行われる。抽出手段301では前段写像計算手段201による計算後に得た写像中間値Yの所定位置のビット列を抽出して、参照データ302として、r[k]、(r[k]∈{0,1}、k=1,2,・・・,61)、および、元データ303として、r[k]、(r[k]∈{0,1},k=1,2,・・・,48)を得る。本具体的実施形態2では、Yは192ビットである。参照データ302はYの49ビット目から61ビット目までの13ビット分と113ビット目から160ビット目までの48ビット分の計61ビット分と、元データ303はYの65ビット目から112ビット目までの48ビット分、合計で109ビット分をランダムビット列として抽出する。具体的に、Yを2進表記した配列Yを2進数表記した以下の式40に示す配列を考える。これにより、r[k]とr[k]は式41、式42となる。 The process by the extraction unit 301 is performed after the pre-stage mapping calculation unit 201. The extraction unit 301 extracts a bit string at a predetermined position of the mapping intermediate value Y obtained after the calculation by the pre-stage mapping calculation unit 201, and as reference data 302, r i [k] and (r i [k] ε {0, 1 }, K = 1, 2, ..., 61), and as original data 303, r o [k], (r o [k] ε {0, 1}, k = 1, 2, ... , 48). In the second specific embodiment, Y is 192 bits. The reference data 302 is 13 bits from the 49th bit to the 61st bit of Y and a total of 61 bits of 48 bits from the 113th bit to the 160th bit, and the original data 303 is 112 bits from the 65th bit of Y. The 48 bits up to the eye, a total of 109 bits, are extracted as a random bit string. Specifically, consider an array represented by the following Expression 40 in which Y is represented in binary notation and Y is represented in binary notation. As a result, r i [k] and r o [k] become equations 41 and 42.

Figure 0006678958
Figure 0006678958

具体的実施形態2においては、参照データ302として、r[k]、(ri[k]∈{0,1},k=1,2,・・・,17)により示されるランダムビット列は、選択判定部401、選択手段402、後段写像選択部202、転置手段502、変動判定部601、内部状態変動手段602の計6箇所において参照されるランダムデータとして利用される。参照データ302としてのrが参照される範囲はアルゴリズムの内部処理に限られており、外部出力用のランダムビット列としては利用されない。 In the concrete embodiment 2, as the reference data 302, the random bit string indicated by r i [k], (ri [k] ε {0,1}, k = 1, 2, ..., 17) is It is used as random data that is referred to at a total of six locations including the selection determination unit 401, the selection unit 402, the latter-stage mapping selection unit 202, the transposition unit 502, the variation determination unit 601, and the internal state variation unit 602. The range in which r i as the reference data 302 is referred to is limited to internal processing of the algorithm, and is not used as a random bit string for external output.

なお、元データ303であるr[k](r[k]∈{0,1},k=1,2,・・・,48)は、具体的実施形態2の出力となるランダムビット列の「候補」である。即ち、元データ303であるrの全てが採用される訳ではない。 Note that the original data 303 r o [k] (r o [k] ε {0,1}, k = 1, 2, ..., 48) is a random bit string that is an output of the concrete embodiment 2. Is a "candidate". That is, not all of the original data 303, ro , are adopted.

抽出手段301による処理に続いて選択判定部401が処理を行う。選択判定部401は、参照データ302であるrのデータを参照して、擬似乱数を選択する選択手段402の処理へ移行するか否かを判定する。参照データ302であるr[k](k=1,2,・・・,61)のうち、r[1]=1(Yes/選択する)ならば、選択手段402の処理へ移行する。一方、r[1]=0(No/選択しない)ならば後段写像選択部202に移行する。 Following the processing by the extraction means 301, the selection determination unit 401 performs processing. The selection determination unit 401 refers to the data of r i that is the reference data 302 and determines whether or not to shift to the process of the selection unit 402 that selects a pseudo random number. Of the reference data 302 r i [k] (k = 1, 2, ..., 61), if r i [1] = 1 (Yes / selection), the process proceeds to the processing of the selection unit 402. . On the other hand, if r i [1] = 0 (No / no selection), the process proceeds to the rear-stage mapping selection unit 202.

前述の選択判定部401がYesと判定した場合に、選択手段402は次の処理を行う。選択手段402は、参照データ302であるrのデータを参照して、元データ303であるrのデータ中から外部に出力するランダムビット(列)を選択する。本実施形態では、参照データ302のうちr[14]〜r[61]の48ビットを参照し、r[k]=1(k=14,15,・・・,61)(Yes)ならばr[k−13]を有効なビット列である転置前ランダムビット列403として、レジスタtmp[ ]に格納する。一方、r[k]=0(k=14,15,・・・,61)(No)ならば、r[k−13]は如何なる用途にも使用されず破棄される。 When the selection determination unit 401 described above determines Yes, the selection unit 402 performs the following processing. The selection unit 402 refers to the data of r i that is the reference data 302 and selects a random bit (column) to be output to the outside from the data of r o that is the original data 303. In the present embodiment, with reference to the 48-bit r i [14] ~r i [ 61] of the reference data 302, r i [k] = 1 (k = 14,15, ···, 61) (Yes ), Ro [k-13] is stored in the register tmp [] as the pre-transpose random bit string 403 which is a valid bit string. On the other hand, if r i [k] = 0 (k = 14, 15, ..., 61) (No), r o [k-13] is discarded without being used for any purpose.

選択手段402による処理の後にランダムビット長カウンタ404では、選択手段402にて選ばれた外部に出力されるランダムビット列の長さをカウントする。   After the processing by the selection means 402, the random bit length counter 404 counts the length of the random bit string selected by the selection means 402 and output to the outside.

ランダムビット長カウンタ404のカウントを受けて転置判定部501が動作する。転置判定部501では、レジスタtmp[ ]に格納された転置前ランダムビット列403のデータサイズを参照して、転置手段502の処理へ移行するか否かを判定する。本実施形態では、レジスタtmp[ ]に格納された転置前ランダムビット列403の長さが64ビットに達している(Yes)ならば転置手段502による処理へ移行する。一方、転置前ランダムビット列403の長さが64ビット未満(No)ならば、後段写像選択部202へ移行する。尚、転置手段502による処理へ移行する場合は、レジスタtmp[ ]の先頭から64ビットがレジスタref[ ]に移されると共に、レジスタtmp[ ]の先頭64ビットは消去される。また、レジスタtmp[ ]の65ビット目以降のデータが繰り上がるようになっている。   The transposition determining unit 501 operates in response to the count of the random bit length counter 404. The transposition determining unit 501 refers to the data size of the pre-transposition random bit string 403 stored in the register tmp [] and determines whether or not to shift to the processing of the transposing unit 502. In the present embodiment, if the length of the pre-transposition random bit string 403 stored in the register tmp [] reaches 64 bits (Yes), the transposing means 502 proceeds to the processing. On the other hand, if the length of the pre-transposition random bit string 403 is less than 64 bits (No), the process proceeds to the rear-stage mapping selection unit 202. In the case of shifting to the processing by the transposing means 502, 64 bits from the head of the register tmp [] are moved to the register ref [] and the head 64 bits of the register tmp [] are erased. Further, the data of the 65th bit and subsequent bits of the register tmp [] are carried up.

転置判定部501による処理の次には、転置手段502による処理が行われる。転置手段502では、転置判定部501による判定がYesのときに限り、上述のレジスタref[ ]に生成された64ビットのデータの順序を並び替える処理を行う。本実施形態では、予めP〜P255の256方式の転置ルールが用意されている。参照データ302のうちr[2]〜r[9]の計8ビットを、10進展開した値ξ={0,1,2,・・・,255}に対応する転置ルールPξが選択される。転置後のデータは、保持手段503であるレジスタOUT[ ]に格納される。 Subsequent to the processing by the transposition determining unit 501, the processing by the transposing means 502 is performed. The transposing means 502 performs a process of rearranging the order of the 64-bit data generated in the above-mentioned register ref [] only when the determination by the transposition determining unit 501 is Yes. In the present embodiment, 256 transposition rules of P 0 to P 255 are prepared in advance. The r i [2] ~r i eight bits of [9] of the reference data 302, the decimal expansion value ξ = {0,1,2, ···, 255 } is the transpose rule P xi] corresponding to To be selected. The transposed data is stored in the register OUT [] which is the holding unit 503.

本実施形態において用いる、上記256方式の転置ルールとは、レジスタref[ ]のi番目に写す写像t:I→I,(i∈I,t(i)∈I,I={1,2,・・・,64},tは全単射)として与えられる。写像tは、全部で64!(64の階乗)通りある。本実施形態では、上記の64の階乗通り中の256通りを選択したものである。8ビット転置の場合の具体例を、既に表1と表2に示した。64ビット転置の場合も,写像前と写像後で全単射の関係が保たれるように同様に作成すればよいため、64ビット転置の具体例は省略する。   The 256-system transposition rule used in this embodiment is the mapping t: I → I, (iεI, t (i) εI, I = {1, 2, , 64}, t is given as bijection). The mapping t is 64 in total! (64 factorials) In this embodiment, 256 of the 64 factorial streets are selected. Specific examples in the case of 8-bit transposition have already been shown in Tables 1 and 2. Even in the case of 64-bit transposition, since it is sufficient to create the bijection before and after mapping so that the bijective relationship is maintained, a specific example of 64-bit transposition is omitted.

転置手段502の処理が終了すると、出力部504が起動される。保持手段503であるレジスタOUT[ ]に転置後のデータが格納されると、所定のタイミングにおいて、出力部504により出力命令が出力されて上記保持手段503であるレジスタOUT[ ]に保持されたビット列を出力ランダムビット列802として出力する。既述の通り、出力部504は、保持手段503に保持されている転置後ランダムビット列が出力規定ビット長に達したかを判定し、達していれば出力命令を出力する。   When the processing of the transposing means 502 is completed, the output unit 504 is activated. When the transposed data is stored in the register OUT [] which is the holding unit 503, an output command is output from the output unit 504 at a predetermined timing and the bit string held in the register OUT [] which is the holding unit 503. Is output as an output random bit string 802. As described above, the output unit 504 determines whether or not the transposed random bit string held in the holding unit 503 has reached the specified output bit length, and if so, outputs the output command.

出力部504の処理が終了すると、ランダムビット長カウンタ404をクリアする処理ランダムビット長カウンタクリア505が行われ、続いて後段写像選択部202が起動される。後段写像選択部202では、予め用意してあるm個の端数処理関数G〜Gm−1に対応する後段写像関数G′′〜G′′m−1のうち、参照データ302の所定位置データを参照して選択する。本実施形態では、m=8として、予めG′′〜G′′の8方式の後段写像関数が用意されている。参照データ302のうちr[10]〜r[12]の計3ビットを、10進展開した値ξ∈{0,1,2,・・・,7}に対応する後段写像関数G′′ξが選択される。ここで、後段写像関数G′′ξ(X)(ξ=0,1,2,・・・,7)の例を、以下の式(B)に示す。 When the process of the output unit 504 is completed, a process random bit length counter clear 505 for clearing the random bit length counter 404 is performed, and subsequently, the latter-stage mapping selection unit 202 is activated. In the latter-stage mapping selection unit 202, the reference data 302 is predetermined among the latter-stage mapping functions G ″ 0 to G ″ m−1 corresponding to the m fractional processing functions G 0 to G m−1 prepared in advance. Select by referring to the position data. In this embodiment, when m = 8, the post-stage mapping functions of the eight systems G ″ 0 to G ″ 7 are prepared in advance. The total of three bits of r i [10] ~r i [ 12] of the reference data 302, the decimal expansion value ξ∈ {0,1,2, ···, 7} corresponding to the subsequent mapping function G ' ′ Ξ is selected. Here, an example of the latter-stage mapping function G ″ ξ (X) (ξ = 0, 1, 2, ..., 7) is shown in the following expression (B).

Figure 0006678958
Figure 0006678958

後段写像選択部202の処理に次いで、後段写像計算手段203の処理が行われる。後段写像計算手段203としての写像計算部203−0〜203−(m−1)の中の選択された写像計算部203−iにおいて、前段写像計算手段201において得られた写像中間値Yに基づき、後段写像選択部202で選択された番号ξに対応する後段写像関数G′′ξの計算を実施して写像値を更新する。現在の写像回数がiであるならば、更新された写像値は次の式43に示されるようである。 Subsequent to the processing of the latter-stage mapping selection unit 202, the processing of the latter-stage mapping calculation means 203 is performed. In the selected mapping calculation unit 203-i of the mapping calculation units 203-0 to 203- (m-1) as the subsequent mapping calculation unit 203, based on the mapping intermediate value Y obtained in the preceding mapping calculation unit 201. , The rear-stage mapping function G ″ ″ ξ corresponding to the number ξ selected by the rear-stage mapping selection unit 202 is calculated to update the mapping value. If the current number of mappings is i, then the updated mapping values are as shown in equation 43 below.

Figure 0006678958
Figure 0006678958

更新された写像値は、写像値レジスタ103の写像値に上書きされる。後段写像計算手段203の処理の後には、変動判定部601による処理が行われる。変動判定部601では、参照データ302の所定位置データを参照して、擬似乱数生成アルゴリズムの内部状態に変動を与えるか否かを決定する。本実施形態では、参照データ302であるr[k](k=1,2,・・・,61)のうち、r[13]=1である(Yes/変動を与える)ならば、内部状態変動手段602による処理に移動し、r[13]=0である(No/変動しない)ならば、写像回数カウンタ603の処理へ移行する。 The updated mapping value is overwritten on the mapping value in the mapping value register 103. After the processing of the latter-stage mapping calculation unit 203, the processing by the fluctuation determination unit 601 is performed. The fluctuation determination unit 601 refers to the predetermined position data of the reference data 302 and determines whether or not to change the internal state of the pseudo random number generation algorithm. In the present embodiment, if r i [13] = 1 out of r i [k] (k = 1, 2, ..., 61) that is the reference data 302 (Yes / change is given), If the process moves to the process by the internal state changing unit 602 and r i [13] = 0 (No / no change), the process proceeds to the process of the mapping number counter 603.

上記においてr[13]=1であり、内部状態変動手段602による処理に移行すると、内部状態変動手段602では、パラメータ変化量列102及び参照データ302を参照してパラメータa[ ]に変動を与える。いま、j(1,2,・・・,32)番目のパラメータa[j]が選ばれているとする。本実施形態では、次の式44による変動が行われる。 In the above, r i [13] = 1, and when the process shifts to the process by the internal state changing unit 602, the internal state changing unit 602 refers to the parameter change amount sequence 102 and the reference data 302 to change the parameter a []. give. Now, it is assumed that the j (1, 2, ..., 32) th parameter a [j] is selected. In this embodiment, the variation according to the following equation 44 is performed.

Figure 0006678958
Figure 0006678958

上記内部状態変動手段602では、同時に、j=j+1が計算され、次回の写像では、次の番号のパラメータが使われる。ただしj>32の場合はj=1に戻る。この後、写像回数カウンタ603のカウント値をインクリメントして、終了判定部701へ進む。   In the internal state changing means 602, j = j + 1 is calculated at the same time, and the next numbered parameter is used in the next mapping. However, when j> 32, the process returns to j = 1. After that, the count value of the mapping number counter 603 is incremented, and the process proceeds to the end determination unit 701.

終了判定部701では、擬似ランダムビット列が所定長に達したか否かを判定する。Yes(終了)ならば、後処理部702へ移行し、No(終了ではない)ならば、前段写像計算手段201に戻り、一連の処理を継続する。   The end determination unit 701 determines whether or not the pseudo random bit string has reached a predetermined length. If Yes (end), the process proceeds to the post-processing unit 702, and if No (not end), the process returns to the pre-stage mapping calculation unit 201 and the series of processes is continued.

後処理部702へ進んだ場合には、例えば各レジスタや各部のリセットなどの後処理が行われ処理(アルゴリズム)が終了される。   When the processing proceeds to the post-processing unit 702, post-processing such as resetting of each register and each unit is performed, and the processing (algorithm) ends.

以上説明した具体的実施形態1、2は、構成がシンプルなため、実装の容易性と処理の高速性が特徴である。また、当擬似乱数生成法はストリーム暗号の擬似乱数生成部として転用することが考えられる。
本発明に係る擬似乱数生成装置とプログラムは、安全な擬似乱数が必要とされるアプリケーション、ツール、 ライブラリおよび情報システム、 電子デバイスに適用すると好適である。ここに安全とは、擬似乱数生成法から生成された擬似乱数列を既知情報としたときに、 当該乱数列の生成に使われたシード情報を解析的に得ることが困難であることを意味する。
Since the specific embodiments 1 and 2 described above have a simple configuration, they are characterized by ease of implementation and high-speed processing. Further, it can be considered that this pseudo random number generation method is diverted as a pseudo random number generation unit of stream cipher.
The pseudo random number generation device and program according to the present invention are preferably applied to applications, tools, libraries and information systems, and electronic devices that require secure pseudo random numbers. Here, “safe” means that it is difficult to analytically obtain the seed information used to generate the random number sequence when the pseudo random number sequence generated by the pseudo random number generation method is used as known information. .

より具体的には、本発明に係る擬似乱数生成装置とプログラムは、情報セキュリティ分野全般、例えば公開鍵認証システム(PKI)における安全な鍵ペア(秘密鍵、公開鍵)の生成、共通鍵暗号における安全な共通鍵の生成、暗号化通信における安全なセッション鍵の生成、無線通信における鍵の生成、その他ランダムパスワード、 ランダム鍵類の生成などに用いることができる。   More specifically, the pseudo random number generation device and program according to the present invention are used in the field of information security in general, for example, generation of a secure key pair (private key, public key) in a public key authentication system (PKI), and common key cryptography. It can be used to generate a secure common key, a secure session key for encrypted communication, a key for wireless communication, and other random passwords and random keys.

101 前処理部
102 パラメータ変化量列
103 写像値レジスタ
104 パラメータ列レジスタ
201 前段写像計算手段
202 後段写像選択部
203 後段写像計算手段
203−0〜203−(m−1) 写像計算部
301 抽出手段
302 参照データ
303 元データ
400 ビット算出手段
401 選択判定部
402 選択手段
403 転置前ランダムビット列
404 ランダムビット長カウンタ
500 決定部
501 転置判定部
502 転置手段
502−1〜502−u 転置演算部
502 転置手段
503 保持手段
504 出力部
505 ランダムビット長カウンタクリア
601 変動判定部
602 内部状態変動手段
603 写像回数カウンタ
701 終了判定部
702 後処理部
801 入力情報
802 出力ランダムビット列

101 Pre-Processing Unit 102 Parameter Change Sequence 103 Mapping Value Register 104 Parameter Sequence Register 201 Pre-stage Mapping Calculating Unit 202 Post-stage Mapping Selecting Unit 203 Post-stage Mapping Calculating Unit 203-0 to 203- (m-1) Mapping Calculating Unit 301 Extracting Means 302 Reference data 303 Original data 400 Bit calculation means 401 Selection determination part 402 Selection means 403 Pre-transposition random bit string 404 Random bit length counter 500 Determination part 501 Transposition determination part 502 Transposition means 502-1 to 502-u Transposition operation part 502 Transposition means 503 Holding unit 504 Output unit 505 Random bit length counter clear 601 Variation determination unit 602 Internal state variation unit 603 Mapping number counter 701 End determination unit 702 Post-processing unit 801 Input information 802 Output random bit string

Claims (20)

パラメータ列と写像値とに基づき前段写像演算を行う前段写像計算手段と、
前記前段写像計算手段による計算結果に基づき前段写像演算と異なる写像演算を行い、演算結果を前記前段写像計算手段へ戻す後段写像計算手段とを備え、
前記前段写像計算手段と前記後段写像計算手段とのループによる写像演算を所定回繰り返す擬似乱数生成装置であって、
前記前段写像計算手段による計算結果に基づき出力ランダムビット列の一部となる元データを抽出する抽出手段と、
前記元データに基づき所定処理を選択実行して出力ランダムビット列の一部を算出するビット算出手段と
を更に具備し、
前記抽出手段は、前記ビット算出手段が実行する所定処理の選択の際に参照する参照データを抽出するものであり、
前記前段写像計算手段から得られる計算結果に基づき出力ランダムビット列により構成される擬似乱数を生成することを特徴とする擬似乱数生成装置。
A pre-stage mapping calculation means for performing a pre-stage mapping calculation based on the parameter sequence and the mapping value,
And a rear-stage mapping calculation means for performing a mapping calculation different from the front-stage mapping calculation on the basis of the calculation result by the front-stage mapping calculation means and returning the calculation result to the front-stage mapping calculation means.
A pseudo-random number generation device that repeats a mapping operation by a loop of the front-stage mapping calculation means and the rear-stage mapping calculation means a predetermined number of times,
Extraction means for extracting the original data which is a part of the output random bit string based on the calculation result by the pre-stage mapping calculation means,
Bit calculation means for selecting and executing a predetermined process based on the original data and calculating a part of the output random bit string;
Further equipped with,
The extraction means is for extracting reference data to be referred to when selecting a predetermined process executed by the bit calculation means,
A pseudo random number generation device, which generates a pseudo random number composed of an output random bit string based on a calculation result obtained from the pre-stage mapping calculation means.
ビット算出手段は、前記元データの一部を選択する選択手段を有し、前記参照データに基づき前記選択手段による選択を実行するか否かを判定し、前記選択手段による選択を実行する場合には、前記参照データに基づき前記元データのいずれのビットを選択するか判定することを特徴とする請求項1に記載の擬似乱数生成装置。 The bit calculating means has a selecting means for selecting a part of the original data, judges whether or not to execute the selection by the selecting means based on the reference data, and executes the selection by the selecting means. The pseudo random number generation device according to claim 1 , wherein which bit of the original data to select is determined based on the reference data. ビット算出手段は、前記選択手段により選択されたビットに関する転置演算を行う転置手段を備え、前記参照データに基づき前記転置手段による転置を行うか否かの判定を行うことを特徴とする請求項2に記載の擬似乱数生成装置。 Bit calculation means, according to claim 2, wherein the includes a transposition means for performing a transpose operation on the selected bit by the selection means, and determines whether to transpose by the transposition means based on the reference data Pseudo-random number generator described in. 前記転置手段は、複数の転置演算部を有し、前記参照データに基づき前記複数の転置演算部のいずれを用いて転置を行うかの判定を行うことを特徴とする請求項3に記載の擬似乱数生成装置。 The pseudo means according to claim 3 , wherein the transposing unit has a plurality of transposition operation sections, and determines which of the plurality of transposition operation sections is used for transposition based on the reference data. Random number generator. 前記転置手段による転置結果のビット列を一時保持する保持手段を有し、該保持手段に所定長のビット列が保持されたときに、この保持手段に保持されたビット列を出力ランダムビット列として出力することを特徴とする請求項3または4に記載の擬似乱数生成装置。 Holding means for temporarily holding the bit string resulting from the transposition by the transposing means, and when the holding means holds a bit string of a predetermined length, outputting the bit string held by the holding means as an output random bit string, The pseudo random number generation device according to claim 3 or 4 . 前記後段写像計算手段には、複数の写像計算部が備えられ、前記参照データに基づき前記複数の写像計算部のいずれを用いて写像を行うかの判定を行うことを特徴とする請求項1乃至5のいずれか1項に記載の擬似乱数生成装置。 The second-stage mapping calculation means, a plurality of mapping calculation unit is provided, to claim 1, characterized in that a determination of whether to perform the mapping using any of the plurality of mapping calculation unit on the basis of the reference data 5. The pseudo random number generation device according to any one of 5 above. 前記後段写像計算手段の計算結果を受けて、前記前段写像計算手段が用いるパラメータを変動させる内部状態変動手段を備え、
前記内部状態変動手段は、前記参照データに基づき前記前段写像計算手段が用いるパラメータを変動させるか否かの判定を行うことを特徴とする請求項1乃至6のいずれか1項に記載の擬似乱数生成装置。
In response to the calculation result of the latter-stage map calculation means, an internal state changing means for changing the parameter used by the former-stage map calculation means is provided,
7. The pseudo-random number according to claim 1, wherein the internal state changing unit determines whether to change a parameter used by the pre-stage mapping calculation unit based on the reference data. Generator.
前記前段写像計算手段は、それぞれ異なる写像計算を行う複数の写像演算部が縦続接続されていることを特徴とする請求項1乃至7のいずれか1項に記載の擬似乱数生成装置。 8. The pseudo-random number generation device according to claim 1, wherein the front-stage mapping calculation unit has a plurality of mapping calculation units that perform different mapping calculations connected in cascade. 前記後段写像計算手段は、前記前段写像計算手段による写像結果を整数化演算すること
を特徴とする請求項1乃至8のいずれか1項に記載の擬似乱数生成装置。
9. The pseudo-random number generation device according to claim 1 , wherein the latter-stage mapping calculation unit performs an integer operation on the mapping result of the former-stage mapping calculation unit.
処理の開始時において、前段写像計算手段に与えるべき初期の写像値と初期のパラメータ列とを少なくとも含む初期の値を生成するための前処理部を具備することを特徴とする請求項1乃至9のいずれか1項に記載の擬似乱数生成装置。 At the start of the process, according to claim 1 to 9, characterized in that it comprises a preprocessing unit for generating the initial values including at least the initial mapping value and the initial parameter sequence to be given to the pre-stage mapping calculation means The pseudo-random number generator according to any one of 1. 擬似乱数生成を行うコンピュータを、
パラメータ列と写像値とに基づき前段写像演算を行う前段写像計算手段、
前記前段写像計算手段による計算結果に基づき前段写像演算と異なる写像演算を行い、演算結果を前記前段写像計算手段へ戻す後段写像計算手段、
として機能させ、
前記コンピュータが前記前段写像計算手段と前記後段写像計算手段としてループ処理し、写像演算を所定回繰り返すように機能させ、
前記コンピュータを更に、
前記前段写像計算手段による計算結果に基づき出力ランダムビット列の一部となる元データを抽出する抽出手段、
前記元データに基づき所定処理を選択実行して出力ランダムビット列の一部を算出するビット算出手段、
として機能させ、
前記コンピュータを前記抽出手段として、前記ビット算出手段が実行する所定処理の選択の際に参照する参照データを抽出するように機能させると共に、
前記コンピュータを更に、前記前段写像計算手段から得られる計算結果に基づき出力ランダムビット列により構成される擬似乱数を生成するように機能させることを特徴とする擬似乱数生成プログラム。
A computer that generates pseudo-random numbers
Pre-stage mapping calculation means for performing a pre-stage mapping calculation based on the parameter sequence and the mapping value,
Based on the calculation result by the front-stage mapping calculation means, a mapping calculation different from the front-stage mapping calculation is performed, and the calculation result is returned to the front-stage mapping calculation means;
Function as
The computer performs a loop process as the pre-stage mapping calculation means and the post-stage mapping calculation means, and causes the mapping calculation to be repeated a predetermined number of times;
The computer is further
Extraction means for extracting the original data which is a part of the output random bit string based on the calculation result by the pre-stage mapping calculation means,
Bit calculation means for calculating a part of the output random bit string by selectively executing a predetermined process based on the original data,
Function as
Using the computer as the extraction means, causing the bit calculation means to function to extract reference data to be referred to when selecting a predetermined process,
A pseudo-random number generation program that causes the computer to further function to generate a pseudo-random number composed of an output random bit string based on a calculation result obtained from the pre-stage mapping calculation means.
ビット算出手段では、前記コンピュータを、前記元データの一部を選択する選択手段として機能させ、前記参照データに基づき前記選択手段による選択を実行するか否かを判定し、
前記選択手段による選択を実行する場合には、前記参照データに基づき前記元データのいずれのビットを選択するか判定することを特徴とする請求項11に記載の擬似乱数生成プログラム。
In the bit calculation means, the computer is caused to function as a selection means for selecting a part of the original data, and it is determined whether or not the selection means executes selection based on the reference data,
12. The pseudo random number generation program according to claim 11 , wherein when the selection by the selection unit is executed, it is determined which bit of the original data is selected based on the reference data.
ビット算出手段では、前記コンピュータを、前記選択手段により選択されたビットに関する転置演算を行う転置手段として機能させ、
前記参照データに基づき前記転置手段による転置を行うか否かの判定を行うことを特徴とする請求項12に記載の擬似乱数生成プログラム。
In the bit calculating means, the computer is caused to function as a transposing means for performing a transposing operation on the bit selected by the selecting means,
The pseudo-random number generation program according to claim 12 , wherein it is determined whether or not the transposition is performed by the transposition means based on the reference data.
前記転置手段では、前記コンピュータを、複数の転置演算部として機能させ、
前記参照データに基づき前記複数の転置演算部のいずれを用いて転置を行うかの判定を行うことを特徴とする請求項13に記載の擬似乱数生成プログラム。
In the transposing means, the computer is caused to function as a plurality of transposition operation units,
The pseudo random number generation program according to claim 13 , wherein which of the plurality of transposition calculation units is used to perform transposition is determined based on the reference data.
前記転置手段による転置結果のビット列を一時保持する保持手段を有し、該保持手段に所定長のビット列が保持されたときに、この保持手段に保持されたビット列を出力ランダムビット列として出力することを特徴とする請求項13または14に記載の擬似乱数生成プログラム。 Holding means for temporarily holding the bit string resulting from the transposition by the transposing means, and when the holding means holds a bit string of a predetermined length, outputting the bit string held by the holding means as an output random bit string, The pseudorandom number generation program according to claim 13 or 14 . 前記後段写像計算手段では、前記コンピュータを、複数の写像計算部として機能させ、
前記参照データに基づき前記複数の写像計算部のいずれを用いて写像を行うかの判定を行うことを特徴とする請求項11乃至15のいずれか1項に記載の擬似乱数生成プログラム。
In the latter-stage mapping calculation means, the computer is caused to function as a plurality of mapping calculation units,
16. The pseudo random number generation program according to claim 11, wherein which of the plurality of mapping calculation units is used to perform mapping is determined based on the reference data.
前記コンピュータを、前記後段写像計算手段の計算結果を受けて、前記前段写像計算手段が用いるパラメータを変動させる内部状態変動手段として機能させ、
前記内部状態変動手段は、前記参照データに基づき前記前段写像計算手段が用いるパラメータを変動させるか否かの判定を行うことを特徴とする請求項11乃至16のいずれか1項に記載の擬似乱数生成プログラム。
The computer is caused to function as an internal state changing means for receiving the calculation result of the latter-stage mapping calculating means and varying the parameter used by the former-stage mapping calculating means,
The pseudo-random number according to any one of claims 11 to 16 , wherein the internal state changing unit determines whether to change a parameter used by the pre-stage mapping calculation unit based on the reference data. Generator.
前記前段写像計算手段では、前記コンピュータを、それぞれ異なる写像計算を行う複数の写像演算部が縦続接続されているように機能させることを特徴とする請求項11乃至17のいずれか1項に記載の擬似乱数生成プログラム。 Wherein in the front mapping calculation means, according to the computer, to any one of claims 11 to 17 a plurality of mapping operation unit to perform different mapping calculation respectively and wherein the to function as cascaded Pseudo-random number generator. 前記後段写像計算手段は、前記前段写像計算手段による写像結果を整数化演算することを特徴とする請求項11乃至18のいずれか1項に記載の擬似乱数生成プログラム。 The pseudo random number generation program according to any one of claims 11 to 18 , wherein the latter-stage mapping calculation unit performs an integer operation on the mapping result of the former-stage mapping calculation unit. コンピュータを更に、
処理の開始時において、前段写像計算手段に与えるべき初期の写像値と初期のパラメータ列とを少なくとも含む初期の値を生成するための前処理部として機能させることを特徴とする請求項11乃至19のいずれか1項に記載の擬似乱数生成プログラム。
Computer,
At the start of the process, according to claim 11 or 19, characterized in that to function as a pre-processing unit for generating an initial value including at least the initial mapping value and the initial parameter sequence to be given to the pre-stage mapping calculation means The pseudorandom number generation program according to any one of 1.
JP2016238902A 2016-12-08 2016-12-08 Pseudo-random number generation device and pseudo-random number generation program Active JP6678958B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016238902A JP6678958B2 (en) 2016-12-08 2016-12-08 Pseudo-random number generation device and pseudo-random number generation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016238902A JP6678958B2 (en) 2016-12-08 2016-12-08 Pseudo-random number generation device and pseudo-random number generation program

Publications (2)

Publication Number Publication Date
JP2018097438A JP2018097438A (en) 2018-06-21
JP6678958B2 true JP6678958B2 (en) 2020-04-15

Family

ID=62633614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016238902A Active JP6678958B2 (en) 2016-12-08 2016-12-08 Pseudo-random number generation device and pseudo-random number generation program

Country Status (1)

Country Link
JP (1) JP6678958B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253223B1 (en) * 1999-06-08 2001-06-26 General Instrument Corporation Robust random number generator
JP5670849B2 (en) * 2011-09-19 2015-02-18 Necエンジニアリング株式会社 Pseudorandom number generation device and pseudorandom number generation method
JP2014153743A (en) * 2013-02-05 2014-08-25 Fuji Electric Co Ltd Random number generation system, random number generation method, and control device

Also Published As

Publication number Publication date
JP2018097438A (en) 2018-06-21

Similar Documents

Publication Publication Date Title
EP2273472B1 (en) Coder equipped with common key code function and built-in equipment
Dey et al. An Integrated Symmetric Key Cryptographic Method-Amalgamation of TTJSA Algorithm, Advanced Caesar Cipher Algorithm, Bit Rotation and Reversal Method: SJA Algorithm
KR20060042385A (en) Stream cipher design with revolving buffers
KR102154164B1 (en) Method for generating a pseudorandom sequence, and method for coding or decoding a data stream
Courtois et al. Combined algebraic and truncated differential cryptanalysis on reduced-round simon
JP6044738B2 (en) Information processing apparatus, program, and storage medium
JP6187462B2 (en) Universal hash function computing device, method and program
Waqas et al. Generation of AES-like S-boxes by replacing affine matrix
KR20050078271A (en) Hardware cryptographic engine and method improving power consumption and operation speed
Sadkhan et al. Proposed Enhancement of A5/1 stream cipher
AU2020202883B1 (en) Systems and computer-implemented methods for generating pseudo random numbers
Hobincu et al. A novel chaos based prng targeting secret communication
Rakhmatullaevich et al. Analysis of cryptanalysis methods applied to stream encryption algorithms
JP6678958B2 (en) Pseudo-random number generation device and pseudo-random number generation program
Dömösi et al. A novel cryptosystem based on abstract automata and Latin cubes
Shemaili et al. A novel hybrid cellular automata based cipher system for internet of things
RU2708439C1 (en) Computing device and method
Sharma et al. On security of Hill cipher using finite fields
CN112202548A (en) Stream encryption key stream generation method, device, circuit and encryption method
Raj et al. Analysis of algebraic attack on Trivium and minute modification to Trivium
Duman et al. Fault analysis on Kalyna
RU2239290C2 (en) Data stream encryption method
Tian et al. A survey and new results on the decomposition of an NFSR into a cascade connection of two smaller NFSRs
Wang et al. Constructing Digitized Chaotic Time Series with a Guaranteed Enhanced Period
Boztaş et al. Statistical dependencies in the self-shrinking generator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190424

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200304

R150 Certificate of patent or registration of utility model

Ref document number: 6678958

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250