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 PDFInfo
- 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
Links
- 238000013507 mapping Methods 0.000 claims description 382
- 238000004364 calculation method Methods 0.000 claims description 234
- 238000000034 method Methods 0.000 claims description 129
- 230000017105 transposition Effects 0.000 claims description 81
- 230000008569 process Effects 0.000 claims description 70
- 230000008859 change Effects 0.000 claims description 38
- 238000000605 extraction Methods 0.000 claims description 25
- 238000007781 pre-processing Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 63
- 230000006870 function Effects 0.000 description 38
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 16
- 230000000739 chaotic effect Effects 0.000 description 14
- 238000012805 post-processing Methods 0.000 description 10
- 239000000284 extract Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000012297 crystallization seed Substances 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010972 statistical evaluation Methods 0.000 description 1
- 238000000528 statistical test Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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,
カオス写像に基づく擬似乱数生成に属する方式のうち最もシンプルな構成をもつ初歩的な方式(以下、初歩方式と称す)を図1に示す。この初歩方式では、初期化部S11においてシードsと所望のランダムビット列長nを入力し、初期値x0を上記シード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の写像faを用いて写像値xiを更新し(自らを自らに写像する/反復写像)、次のランダムビット抽出部S14において写像毎にxiの任意の所定箇所のビットを抽出して擬似ランダムビット列b={b1,b2,・・・,bn}を得る。 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
初歩方式のランダムビット抽出部が写像値xiから特定のビットを1ビット抽出する構成を有するのに対し、文献2には、複数の閾値を設け写像値xiから複数のビット(ビット列)を得て、これらを最終的に結合(排他的論理和)する手法が示されている(特許文献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 (
特許文献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の二乗x2が格納されるメモリ空間を多く確保することが開示されている。更に、特許文献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により更新し、写像値xiを元の写像値xiとシード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
上記の「一般的に使用されるパラメータ」とは、テント写像ではコントロールパラメータ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.
初歩方式のランダムビット抽出部が写像値xiから特定のビットを1ビット抽出するのに対し、特許文献8には、コントロールパラメータが4の場合のロジスティック写像を用いる場合に限定されるが、写像値xi(Nビットとする)の計算の中間段階、すなわち、xi=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
また、初歩方式に関しては、上記文献8〜17に示されている攻撃法を用いて、擬似ランダムビット列b={b1,b2,・・・,bn}の生成に利用された初期値x0やパラメータ値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.
本発明は以上のような擬似乱数生成における現状に鑑みてなされたもので、その目的は、 従来から提案されているカオス写像に基づく擬似乱数生成法と同等の統計的に良質な擬似乱数(擬似ランダムビット列)が生成可能である擬似乱数生成装置及び擬似乱数生成プログラムを提供することである。また、これと共に、出力された擬似ランダムビット列から、 当該擬似ランダムビット列の生成に利用された初期の写像値、 パラメータ列等のシード関連値の推測を困難とする手段を備えた擬似乱数生成装置及び擬似乱数生成プログラムを提供することを目的とする。 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.
以下、添付図面を参照して本発明の実施形態に係る擬似乱数生成装置及び擬似乱数生成プログラムを説明する。各図において、同一の構成要素には同一の符号を付して重複する説明を省略する。図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
後段写像計算手段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
この擬似乱数生成装置は、上記前段写像計算手段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
更に擬似乱数生成装置は、抽出手段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
ビット算出手段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
ビット算出手段400は、上記選択手段402により選択されたビット列に関する転置演算を行う転置手段502を備え、ランダムビット長カウンタ404の値に基づき転置判定部501が上記転置手段502による転置を行うか否かの判定を行う。
The
上記転置手段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
前記転置手段502による転置結果のビット列を一時保持する保持手段503を有し、該保持手段503に所定長のビット列が保持されたときに、この保持手段503に保持されたビット列を出力ランダムビット列802として出力する。
A holding
本装置では、参照データ302と元データ303とを独立したデータとして扱い、参照データ302の一部または全部を元データ303の一部または全部に転用することはせず、また、元データ303の一部または全部を参照データ302の一部または全部に転用することはしない。
In this device, the
上記後段写像計算手段203には、それぞれ異なる端数処理を行う複数の写像計算部203−0〜203−(m−1)が備えられ、後段写像選択部202が上記参照データ302に基づき上記複数の写像計算部203−0〜203−(m−1)のいずれを用いて写像を行うかの判定を行う。上記後段写像計算手段203は、上記前段写像計算手段201による写像結果を整数化演算する構成とすることができる。
The latter-stage
本装置は、更に内部状態変動手段602を備える。この内部状態変動手段602は、上記後段写像計算手段203の計算結果を受けて、上記前段写像計算手段201が用いるパラメータ列を変動させるものである。上記内部状態変動手段602は、上記参照データ302に基づき変動判定部601において上記前段写像計算手段201が用いるパラメータ列を変動させるか否かの判定を行う。これによって、ランダムなタイミングにて上記内部状態変動(写像関数形変化)を達成することが可能である。
The apparatus further includes an internal
尚、図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を得て、
初期の写像値:X0
初期のパラメータ列:a[1]〜a[na]
シード固有パラメータ列:ka[1]〜ka[na]
パラメータ変化量列102:pa[1]〜pa[na]
により構成される初期の値を生成する。
ここで、naは、初期のパラメータ列a[ ]、シード固有パラメータ列ka[ ]、パラメータ変化量列pa[ ]の要素数を意味するシステム固定値であり、後述する具体的実施形態1、2では、na=32としている。前処理部101は、上記において生成した初期の写像値X0を写像値レジスタ103にセットし、初期のパラメータ列a[1]〜a[na]をパラメータ列レジスタ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
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.
更に、前処理部101は、
パラメータの最小値Amin
パラメータの最大値Amax
パラメータの状態総数ΔA
パラメータ変量の最小値BA
を所定値(定数/固定値)としてセットする。
また、
初期のループカウンタi=0,
初期のパラメータ番号j=1,
をセットする。
Furthermore, the
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において、パラメータ列に変化を与えるための参照値として利用される。初期の写像値X0は、前段写像計算手段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
前処理部101により初期の値の生成がなされた後に、パラメータ列レジスタ104にセットされた初期のパラメータ列及び写像値レジスタ103にセットされた初期の写像値X0は、前段写像計算手段201へ与えられる。そこで、前段写像計算手段201は、初期パラメータ列と初期の写像値X0とに基づき前述の演算により構成される前段写像演算を行う。前段写像演算の結果は、抽出手段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
上記参照データ302は、図3から明らかな通り、選択判定部401、選択手段402、転置手段502、後段写像選択部202、変動判定部601、内部状態変動手段602において、選択や判定をランダムに行う際に用いられる。
As is apparent from FIG. 3, the
また、参照データ302は、内部状態変動手段602などにおいて擬似乱数生成アルゴリズムにおける内部状態の遷移をランダムに与えることのみに用いられ、既述のように元データ303のランダムビット列として流用しない。これにより、本実施形態における擬似乱数生成装置の最終出力である出力ランダムビット列802が既知となった場合でも、内部状態の推測や同期が困難になり、出力ランダムビット列802を生成するために必須の入力情報801としてのシードや擬似ランダムビット列長nの推測が困難になる。
Further, the
抽出手段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
選択判定部401における判定がYesとなり、選択手段402へ進んだ場合には、元データ303中の本実施形態に係る擬似乱数生成の当該ループにおいて出力とすべきランダムビット(ランダムビット列)を選択/抽出する。この選択/抽出に当たっては、参照データ302の情報を基に「採用するビット位置」を求め、元データ303中の「採用するビット位置」のビット(ビット列)を選択抽出し、転置前ランダムビット列403としてレジスタに加えて記憶する。
When the determination in the
選択手段402により選択されたビット列は、ランダムビット長カウンタ404へ送られる。ランダムビット長カウンタ404は、送られてきたビット列のビット数をカウントアップする。この結果、ランダムビット長カウンタ404の値は、転置前ランダムビット列403のビット数だけカウントアップされる。
The bit string selected by the selection means 402 is sent to the random
ランダムビット長カウンタ404のカウントアップが終了すると、転置判定部501が起動される。転置判定部501は、ランダムビット長カウンタ404の値に基づき、転置前ランダムビット列403のビット数(系列長)が転置処理を行うサイズに達したか否かを判定する。転置処理を行う場合のサイズ(ビット長)は予め決められており、例えば、入力情報801により設定されるものとする。転置判定部501による判定結果がYes(所定サイズに達した)ことが検出された場合には、転置手段502の処理へ移行する一方、判定結果がNo(所定サイズに達していない)ことが検出された場合には、転置手段502の処理をスキップする。
When the count-up of the random
転置手段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
転置手段502の処理が終了すると、出力部504が起動される。出力部504は、例えば、入力情報801により設定され予め決められた出力すべき出力規定ビット長に基づき、保持手段503に保持されている転置後ランダムビット列が出力規定ビット長に達したかを判定し、達していれば出力命令を出力し保持手段503に保持されている転置後ランダムビット列を出力ランダムビット列802として出力する。かくして、保持手段503に保持された転置処理後のビット列は、所定のタイミングで出力ランダムビット列802として出力される。
When the processing of the transposing means 502 is completed, the
転置手段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
前記ランダムビット長カウンタクリア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
後段写像選択部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
後段写像計算手段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
内部状態変動手段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
終了判定部701では、生成された擬似ランダムビット列が所定長に達したか否かを判定する。判定に当たっては、ランダムビット列802のビット長が入力情報801の擬似ランダムビット長nに達したか否かを比較する。ここで、Yes(nに達した/終了)であることが検出された場合には、後処理部702へ移行する一方、No(nに達していない/継続)であることが検出された場合は、前段写像計算手段201に戻り、一連の処理を継続する。
The
後処理部702へ進んだ場合には、例えば各レジスタや各部のリセットなどの後処理が行われ処理が終了(エンド)となる。
When the processing proceeds to the
既に示した文献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
本実施形態に係る擬似乱数生成装置は、選択判定部401と選択手段402とを有し、これらはそれぞれ参照データ302を参照し「採用するビット位置」を求め、元データ303中の「採用するビット位置」のビット(ビット列)を選択抽出し、転置前ランダムビット列403を得る構成を有している。即ち、写像毎に抽出されたランダムビット列の全てが、そのまま最終出力として利用される訳ではないため、特に上記ケースBによる攻撃法の適用を困難にする効果(効果2)を有している。
The pseudo random number generation device according to the present exemplary embodiment includes a
本実施形態に係る擬似乱数生成装置は、転置手段502を有し、転置手段502では、参照データ302を参照し、「転置ルール」を求め、当該転置ルールにより転置前ランダムビット列403のデータに所定転置処理を実行し、転置結果のビット列を一時保持する保持手段503に保持させる構成を有している。即ち、写像毎に抽出されたランダムビット列が写像の順番で(ランダムビット列を抽出した順番で)出力される訳ではないため、特に上記ケースCによる攻撃法の適用を困難にする効果(効果3)を有している。
The pseudo random number generation device according to the present exemplary embodiment has a
本実施形態に係る擬似乱数生成装置によって生成されるランダムビット列は、前段写像計算手段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
参照データ302は、変動判定部601、内部状態変動手段602、選択判定部401、選択手段402、転置手段502、後段写像選択部202において参照され、必要とされるランダム性の提供源としての機能を有するものであり、特に上記効果1〜3に寄与する。この参照データ302は、本実施形態に係る擬似乱数生成装置の最終出力である出力ランダムビット列802の元データとして流用しないため、本実施形態に係る擬似乱数生成装置の最終出力情報からは、上記ランダム変化のタイミングに関する情報としての参照データ302が推定や予測されることはない。これにより、上記効果1〜3と併せて、各種攻撃法の適用を困難にする効果を有する。
The
また、出力ランダムビット列802は、前段写像計算手段201により拡大された写像値から得られる元データ303を用いてビット算出手段400の演算により得られる。更に、ループにより次のステップに用いられる写像計算の入力(次ステップにおいて写像計算の元となる写像値)は、上記ビット算出手段400の演算により得られる値を、後段写像計算手段203としての写像計算部203−0〜203−(m−1)で演算して(例えば、除算における剰余、或いは、右ビットシフトで切り捨てられるビット列として)得られる。これにより、次のステップの前段写像計算の入力(次ステップにおいて写像計算の元となる写像値)は、本実施形態に係る擬似乱数生成装置の最終出力である出力ランダムビット列802の情報を一切含まないため、上記効果1〜3と併せて、各種攻撃法の適用を困難にする効果を有する。
Further, the output
本実施形態に係る擬似乱数生成装置は、後段写像選択部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
具体的実施形態1
次に具体的実施形態1を説明する。この具体的実施形態1は、テント写像を利用した場合の例である。本実施形態1では、シード長が512ビットのシード(あるいは鍵)seed、ランダムビット列長nを入力情報801として、nビットのランダムビット列(0,1の2値系列){bn}を得るものである。具体的実施形態1において、演算精度は64ビット、写像値Xのビット幅はt=32ビットとする。具体的実施形態1では整数演算化された以下のテント写像を用いる。
Next, a
有限精度の計算機実装を与えるため、写像は、テント写像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.
尚、本具体的実施形態1では、式2による写像の計算を、以下に示す前段写像F′T,Aと後段写像G′ξに分割して考える。
In the
上記の写像(後段)G′ξ(X)は、XをMで割ったあとに端数処理をする関数を示す。特にMが2の冪乗である場合、すなわち M=2sの場合は、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
本具体的実施形態1の以降の説明においては、下記の定数を用いる。
In the following description of the
以下に、図3に示した構成によって、この具体的実施形態1が実現されるものとして、動作を説明する。
The operation will be described below assuming that the
前処理部101では、512ビットのシード(あるいは鍵)seed、ランダムビット列長n∈Zの入力を受け、所定関数により、初期の写像値、初期のパラメータ列、シード固有パラメータ列、パラメータ変化量列102を下記の通りに生成する。
The
シード固有パラメータ列ka[1]〜ka[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.
パラメータ列a[1]〜a[32]は、パラメータ列レジスタ104に格納され、前段写像計算手段201における写像計算で利用される。本具体的実施形態1では、次の式15の通りである。
The parameter strings a [1] to a [32] are stored in the
パラメータ変化量列102(pa[1]〜pa[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
前処理部101による処理の次に前段写像計算手段201による計算が行われる。この前段写像計算手段201では、式3に示した前段写像の計算を実施して写像中間値Yを得る。擬似乱数生成アルゴリズム開始時点では、前処理部101により生成され写像値レジスタ103に格納された初期の写像値X0を用いた写像計算がなされる。ここで、写像回数i、パラメータ列a[j]が選ばれているとすると、写像中間値Yは、次の式17の通りである。
After the processing by the
前段写像計算手段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
前段写像計算手段201に次いで抽出手段301による処理が行われる。抽出手段301では前段写像計算手段201による計算後に得た写像中間値Yの所定位置のビットを抽出して、参照データ302として、ri[k]、(ri[k]∈{0,1}、k=1,2,・・・,17)、および、元データ303として、ro[k]、(ro[k]∈{0,1},k=1,2,・・・,8)を得る。本具体的実施形態1では、Yは64ビットである。Yを2進数表記した以下の式18に示す配列を考える。これにより、ri[k]とro[k]は式19、式20となる。
The process by the extraction unit 301 is performed after the pre-stage
具体的実施形態1においては、参照データ302として、ri[k]、(ri[k]∈{0,1},k=1,2,・・・,17)により示されるランダムビット列は、選択判定部401、選択手段402、後段写像選択部202、転置手段502、変動判定部601、内部状態変動手段602の計6箇所において参照されるランダムデータとして利用される。参照データ302としてのriが参照される範囲はアルゴリズムの内部処理に限られており、外部出力用のランダムビット列としては利用されない。
In the
なお、元データ303であるro[k](ro[k]∈{0,1},k=1,2,・・・,8)は、具体的実施形態1の出力となるランダムビット列の「候補」である。即ち、元データ303であるroの全てが採用される訳ではない。
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
抽出手段301による処理に続いて選択判定部401が処理を行う。選択判定部401は、参照データ302であるriのデータを参照して、擬似乱数を選択する選択手段402の処理へ移行するか否かを判定する。参照データ302であるri[k](k=1,2,・・・,17)のうち、ri[1]=1(Yes)ならば、選択手段402の処理へ移行する。一方、ri[1]=0(No)ならば後段写像選択部202に移行する。
Following the processing by the extraction means 301, the
前述の選択判定部401がYesと判定した場合に、選択手段402は次の処理を行う。選択手段402は、参照データ302であるriのデータを参照して、元データ303であるroのデータ中から外部に出力するランダムビット(列)を選択する。本実施形態では、参照データ302のうちri[2]〜ri[9]の8ビットを参照し、ri[k]=1(k=2,3,4,・・・,9)(Yes)ならばro[k−1]を有効なビット列である転置前ランダムビット列403として、レジスタtmp[ ]に格納する。一方、ri[k]=0(k=2,3,4,・・・,9)(No)ならば、ro[k−1]は如何なる用途にも使用されず破棄される。
When the
選択手段402による処理の後にランダムビット長カウンタ404では、選択手段402にて選ばれた外部に出力されるランダムビット列の長さをカウントする。
After the processing by the selection means 402, the random
ランダムビット長カウンタ404のカウントを受けて転置判定部501が動作する。転置判定部501では、レジスタtmp[ ]に格納された転置前ランダムビット列403のデータサイズを参照して、転置手段502の処理へ移行するか否かを判定する。本実施形態では、レジスタtmp[ ]に格納された転置前ランダムビット列403の長さが8ビットに達している(Yes)ならば転置手段502による処理へ移行する。一方、転置前ランダムビット列403の長さが8ビット未満(No)ならば、後段写像選択部202へ移行する。尚、転置手段502による処理へ移行する場合は、レジスタtmp[ ]の先頭から8ビットがレジスタref[ ]に移されると共に、レジスタtmp[ ]の先頭8ビットは消去される。また、レジスタtmp[ ]の9ビット目以降のデータが繰り上がるようになっている。
The
転置判定部501による処理の次には、転置手段502による処理が行われる。転置手段502では、転置判定部501による判定がYesのときに限り、上述のレジスタref[ ]に生成された8ビットのデータの順序を並び替える処理を行う。本実施形態では、予めP0〜P15の16方式の転置ルールが用意されている。参照データ302のうちri[10]〜ri[13]の計4ビットを、10進展開した値ξ={0,1,2,・・・,15}に対応する転置ルールPξが選択される。転置後のデータは、保持手段503であるレジスタOUT[ ]に格納される。
Subsequent to the processing by the
本実施形態において用いる、上記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(P0〜P7)と表2(P8〜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 ).
転置手段502の処理が終了すると、出力部504が起動される。保持手段503であるレジスタOUT[ ]に転置後のデータが格納されると、所定のタイミングにおいて、出力部504により出力命令が出力されて上記保持手段503であるレジスタOUT[ ]に保持されたビット列を出力ランダムビット列802として出力する。既述の通り、出力部504は、保持手段503に保持されている転置後ランダムビット列が出力規定ビット長に達したかを判定し、達していれば出力命令を出力する。
When the processing of the transposing means 502 is completed, the
転置手段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
後段写像選択部202では、予め用意してあるm個の端数処理関数G0〜Gm−1に対応する後段写像関数G′0〜G′m−1のうち、参照データ302の所定位置データを参照して選択する。本実施形態では、m=8として、予めG′0〜G′7の8方式の後段写像関数が用意されている。参照データ302のうちri[14]〜ri[16]の計3ビットを、10進展開した値ξ∈{0,1,2,・・・,7}に対応する後段写像関数G′ξが選択される。ここで、後段写像関数G′ξ(X)(ξ=0,1,2,・・・,7)の例を、以下の式(A)に示す。
In the latter-stage
後段写像選択部202の処理に次いで、後段写像計算手段203の処理が行われる。後段写像計算手段203としての写像計算部203−0〜203−(m−1)の中の選択された写像計算部203−iにおいて、前段写像計算手段201において得られた写像中間値Yに基づき、後段写像選択部202で選択された番号ξに対応する後段写像関数G′ξの計算を実施して写像値を更新する。現在の写像回数がiであるならば、更新された写像値は次の式21に示されるようである。
Subsequent to the processing of the latter-stage
更新された写像値は、写像値レジスタ103の写像値に上書きされる。後段写像計算手段203の処理の後には、変動判定部601による処理が行われる。変動判定部601では、参照データ302の所定位置データを参照して、擬似乱数生成アルゴリズムの内部状態に変動を与えるか否かを決定する。本実施形態では、参照データ302であるri[k](k=1,2,・・・,17)のうち、ri[17]=1である(Yes/変動を与える)ならば、内部状態変動手段602による処理に移動し、ri[17]=0である(No/変動しない)ならば、写像回数カウンタ603の処理へ移行する。
The updated mapping value is overwritten on the mapping value in the
上記においてri[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
上記内部状態変動手段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
終了判定部701では、擬似ランダムビット列が所定長に達したか否かを判定する。Yes(終了)ならば、後処理部702へ移行し、No(終了ではない)ならば、前段写像計算手段201に戻り、一連の処理を継続する。
The
後処理部702へ進んだ場合には、例えば各レジスタや各部のリセットなどの後処理が行われ処理(アルゴリズム)が終了される。
When the processing proceeds to the
具体的実施形態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.
ここに、有限精度の計算機実装を与えるため、写像は、ロジスティック写像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.
尚、本具体的実施形態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 ″ ″ ξ .
本具体的実施形態2の以降の説明においては、下記の定数を用いる。 The following constants will be used in the subsequent description of the specific second embodiment.
以下に、図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
前処理部101では、初期の写像値X0をseed情報を基に算出し,Xi+1=FL,AL,max(Xi)を計算する。その過程で、シード固有パラメータ列の要素として、ka[j]=X5j+100とする64ビットの整数を得る。即ち、次の式36に示されるようになる。
The
パラメータ列a[1]〜a[32]は、パラメータ列レジスタ104に格納され、前段写像計算手段201における写像計算で利用される。本具体的実施形態2では、次の式37の通りである。
The parameter strings a [1] to a [32] are stored in the
パラメータ変化量列pa[1]〜pa[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.
前処理部101の次に前段写像計算手段201による計算が行われる。この前段写像計算手段201では、式25に示した前段写像の計算を実施して写像中間値Yを得る。擬似乱数生成アルゴリズム開始時点では、前処理部101により生成され写像値レジスタ103に格納された初期の写像値X0を用いた写像計算がなされる。ここで、写像回数i、パラメータ列a[j]が選ばれているとすると、写像中間値Yは、次の式39の通りである。
After the
前段写像計算手段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
前段写像計算手段201に次いで抽出手段301による処理が行われる。抽出手段301では前段写像計算手段201による計算後に得た写像中間値Yの所定位置のビット列を抽出して、参照データ302として、ri[k]、(ri[k]∈{0,1}、k=1,2,・・・,61)、および、元データ303として、ro[k]、(ro[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に示す配列を考える。これにより、ri[k]とro[k]は式41、式42となる。
The process by the extraction unit 301 is performed after the pre-stage
具体的実施形態2においては、参照データ302として、ri[k]、(ri[k]∈{0,1},k=1,2,・・・,17)により示されるランダムビット列は、選択判定部401、選択手段402、後段写像選択部202、転置手段502、変動判定部601、内部状態変動手段602の計6箇所において参照されるランダムデータとして利用される。参照データ302としてのriが参照される範囲はアルゴリズムの内部処理に限られており、外部出力用のランダムビット列としては利用されない。
In the concrete embodiment 2, as the
なお、元データ303であるro[k](ro[k]∈{0,1},k=1,2,・・・,48)は、具体的実施形態2の出力となるランダムビット列の「候補」である。即ち、元データ303であるroの全てが採用される訳ではない。
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
抽出手段301による処理に続いて選択判定部401が処理を行う。選択判定部401は、参照データ302であるriのデータを参照して、擬似乱数を選択する選択手段402の処理へ移行するか否かを判定する。参照データ302であるri[k](k=1,2,・・・,61)のうち、ri[1]=1(Yes/選択する)ならば、選択手段402の処理へ移行する。一方、ri[1]=0(No/選択しない)ならば後段写像選択部202に移行する。
Following the processing by the extraction means 301, the
前述の選択判定部401がYesと判定した場合に、選択手段402は次の処理を行う。選択手段402は、参照データ302であるriのデータを参照して、元データ303であるroのデータ中から外部に出力するランダムビット(列)を選択する。本実施形態では、参照データ302のうちri[14]〜ri[61]の48ビットを参照し、ri[k]=1(k=14,15,・・・,61)(Yes)ならばro[k−13]を有効なビット列である転置前ランダムビット列403として、レジスタtmp[ ]に格納する。一方、ri[k]=0(k=14,15,・・・,61)(No)ならば、ro[k−13]は如何なる用途にも使用されず破棄される。
When the
選択手段402による処理の後にランダムビット長カウンタ404では、選択手段402にて選ばれた外部に出力されるランダムビット列の長さをカウントする。
After the processing by the selection means 402, the random
ランダムビット長カウンタ404のカウントを受けて転置判定部501が動作する。転置判定部501では、レジスタtmp[ ]に格納された転置前ランダムビット列403のデータサイズを参照して、転置手段502の処理へ移行するか否かを判定する。本実施形態では、レジスタtmp[ ]に格納された転置前ランダムビット列403の長さが64ビットに達している(Yes)ならば転置手段502による処理へ移行する。一方、転置前ランダムビット列403の長さが64ビット未満(No)ならば、後段写像選択部202へ移行する。尚、転置手段502による処理へ移行する場合は、レジスタtmp[ ]の先頭から64ビットがレジスタref[ ]に移されると共に、レジスタtmp[ ]の先頭64ビットは消去される。また、レジスタtmp[ ]の65ビット目以降のデータが繰り上がるようになっている。
The
転置判定部501による処理の次には、転置手段502による処理が行われる。転置手段502では、転置判定部501による判定がYesのときに限り、上述のレジスタref[ ]に生成された64ビットのデータの順序を並び替える処理を行う。本実施形態では、予めP0〜P255の256方式の転置ルールが用意されている。参照データ302のうちri[2]〜ri[9]の計8ビットを、10進展開した値ξ={0,1,2,・・・,255}に対応する転置ルールPξが選択される。転置後のデータは、保持手段503であるレジスタOUT[ ]に格納される。
Subsequent to the processing by the
本実施形態において用いる、上記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
出力部504の処理が終了すると、ランダムビット長カウンタ404をクリアする処理ランダムビット長カウンタクリア505が行われ、続いて後段写像選択部202が起動される。後段写像選択部202では、予め用意してあるm個の端数処理関数G0〜Gm−1に対応する後段写像関数G′′0〜G′′m−1のうち、参照データ302の所定位置データを参照して選択する。本実施形態では、m=8として、予めG′′0〜G′′7の8方式の後段写像関数が用意されている。参照データ302のうちri[10]〜ri[12]の計3ビットを、10進展開した値ξ∈{0,1,2,・・・,7}に対応する後段写像関数G′′ξが選択される。ここで、後段写像関数G′′ξ(X)(ξ=0,1,2,・・・,7)の例を、以下の式(B)に示す。
When the process of the
後段写像選択部202の処理に次いで、後段写像計算手段203の処理が行われる。後段写像計算手段203としての写像計算部203−0〜203−(m−1)の中の選択された写像計算部203−iにおいて、前段写像計算手段201において得られた写像中間値Yに基づき、後段写像選択部202で選択された番号ξに対応する後段写像関数G′′ξの計算を実施して写像値を更新する。現在の写像回数がiであるならば、更新された写像値は次の式43に示されるようである。
Subsequent to the processing of the latter-stage
更新された写像値は、写像値レジスタ103の写像値に上書きされる。後段写像計算手段203の処理の後には、変動判定部601による処理が行われる。変動判定部601では、参照データ302の所定位置データを参照して、擬似乱数生成アルゴリズムの内部状態に変動を与えるか否かを決定する。本実施形態では、参照データ302であるri[k](k=1,2,・・・,61)のうち、ri[13]=1である(Yes/変動を与える)ならば、内部状態変動手段602による処理に移動し、ri[13]=0である(No/変動しない)ならば、写像回数カウンタ603の処理へ移行する。
The updated mapping value is overwritten on the mapping value in the
上記においてri[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
上記内部状態変動手段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
終了判定部701では、擬似ランダムビット列が所定長に達したか否かを判定する。Yes(終了)ならば、後処理部702へ移行し、No(終了ではない)ならば、前段写像計算手段201に戻り、一連の処理を継続する。
The
後処理部702へ進んだ場合には、例えば各レジスタや各部のリセットなどの後処理が行われ処理(アルゴリズム)が終了される。
When the processing proceeds to the
以上説明した具体的実施形態1、2は、構成がシンプルなため、実装の容易性と処理の高速性が特徴である。また、当擬似乱数生成法はストリーム暗号の擬似乱数生成部として転用することが考えられる。
本発明に係る擬似乱数生成装置とプログラムは、安全な擬似乱数が必要とされるアプリケーション、ツール、 ライブラリおよび情報システム、 電子デバイスに適用すると好適である。ここに安全とは、擬似乱数生成法から生成された擬似乱数列を既知情報としたときに、 当該乱数列の生成に使われたシード情報を解析的に得ることが困難であることを意味する。
Since the
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
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乃至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乃至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.
パラメータ列と写像値とに基づき前段写像演算を行う前段写像計算手段、
前記前段写像計算手段による計算結果に基づき前段写像演算と異なる写像演算を行い、演算結果を前記前段写像計算手段へ戻す後段写像計算手段、
として機能させ、
前記コンピュータが前記前段写像計算手段と前記後段写像計算手段としてループ処理し、写像演算を所定回繰り返すように機能させ、
前記コンピュータを更に、
前記前段写像計算手段による計算結果に基づき出力ランダムビット列の一部となる元データを抽出する抽出手段、
前記元データに基づき所定処理を選択実行して出力ランダムビット列の一部を算出するビット算出手段、
として機能させ、
前記コンピュータを前記抽出手段として、前記ビット算出手段が実行する所定処理の選択の際に参照する参照データを抽出するように機能させると共に、
前記コンピュータを更に、前記前段写像計算手段から得られる計算結果に基づき出力ランダムビット列により構成される擬似乱数を生成するように機能させることを特徴とする擬似乱数生成プログラム。 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.
前記参照データに基づき前記複数の写像計算部のいずれを用いて写像を行うかの判定を行うことを特徴とする請求項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乃至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.
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)
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 |
-
2016
- 2016-12-08 JP JP2016238902A patent/JP6678958B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018097438A (en) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dey et al. | An Integrated Symmetric Key Cryptographic Method-Amalgamation of TTJSA Algorithm, Advanced Caesar Cipher Algorithm, Bit Rotation and Reversal Method: SJA Algorithm | |
Gupta et al. | Secure image encryption scheme using 4D-Hyperchaotic systems based reconfigurable pseudo-random number generator and S-Box | |
KR102154164B1 (en) | Method for generating a pseudorandom sequence, and method for coding or decoding a data stream | |
KR20060042385A (en) | Stream cipher design with revolving buffers | |
Dey et al. | An advanced combined symmetric key cryptographic method using bit manipulation, bit reversal, modified caesar cipher (SD-REE), DJSA method, TTJSA method: SJA-I Algorithm | |
AU2020202883B1 (en) | Systems and computer-implemented methods for generating pseudo random numbers | |
EP3032523B1 (en) | Information processing device, program, and storage medium | |
Courtois et al. | Combined algebraic and truncated differential cryptanalysis on reduced-round simon | |
KR20050078271A (en) | Hardware cryptographic engine and method improving power consumption and operation speed | |
JP6187462B2 (en) | Universal hash function computing device, method and program | |
Waqas et al. | Generation of AES-like S-boxes by replacing affine matrix | |
Sadkhan et al. | Proposed Enhancement of A5/1 stream cipher | |
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 | |
Duman et al. | Fault analysis on Kalyna | |
RU2239290C2 (en) | Data stream encryption method | |
Maolood | Towards Generating a New Strong key for AES Encryption Method Depending on 2D Henon Map. | |
Boztaş et al. | Statistical dependencies in the self-shrinking generator | |
US20240187213A1 (en) | Galois extension field-based block cipher |
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 |