JP6194136B2 - Pseudorandom number generation device and pseudorandom number generation program - Google Patents
Pseudorandom number generation device and pseudorandom number generation program Download PDFInfo
- Publication number
- JP6194136B2 JP6194136B2 JP2017500219A JP2017500219A JP6194136B2 JP 6194136 B2 JP6194136 B2 JP 6194136B2 JP 2017500219 A JP2017500219 A JP 2017500219A JP 2017500219 A JP2017500219 A JP 2017500219A JP 6194136 B2 JP6194136 B2 JP 6194136B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- value
- round
- calculated
- bits
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/586—Pseudo-random number generators using an integer algorithm, e.g. using linear congruential method
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
Description
この発明は、疑似乱数を生成する技術に関する。 The present invention relates to a technique for generating pseudo-random numbers.
真の乱数は、全てのビットがランダムに選ばれた値のことである。 A true random number is a value in which all bits are randomly selected.
バーナム暗号は真の乱数を用いた場合に解読不可能な暗号である。バーナム暗号は、平文mと、平文mと同じビット長の真の乱数rとの排他的論理和を暗号文とする。バーナム暗号を用いて2者間で暗号通信を行う場合、平文と同じ長さの真の乱数を共有しておく必要がある。送りたい平文が長くなると共有する真の乱数も長くなる。 The Burnham cipher is a cipher that cannot be deciphered when a true random number is used. The Burnham cipher uses the exclusive OR of the plaintext m and a true random number r having the same bit length as the plaintext m as a ciphertext. When performing encrypted communication between two parties using the Burnham cryptography, it is necessary to share a true random number having the same length as the plaintext. The longer the plaintext you want to send, the longer the shared random number.
しかし、長い真の乱数を安全に配送することは困難である。そこで、真の乱数の代わりに疑似乱数が用いられている。
疑似乱数を用いる場合、暗号通信を行う2者間で固定長kビットの秘密鍵を共有しておき、秘密鍵と、疑似乱数生成毎に異なる値IVとを入力として疑似乱数生成関数により疑似乱数が生成される。However, it is difficult to safely deliver long true random numbers. Therefore, pseudo-random numbers are used instead of true random numbers.
When using pseudo-random numbers, a secret key of fixed length k bits is shared between the two parties performing cryptographic communication, and a pseudo-random number is generated by a pseudo-random number generation function using a secret key and a different value IV for each pseudo-random number generation as input. Is generated.
疑似乱数生成関数は、入力長と出力長とが固定の非線形関数と、非線形関数を用いて任意長の疑似乱数を生成する構造を規定した利用モードとからなる。 The pseudo-random number generation function includes a non-linear function with a fixed input length and output length, and a use mode that defines a structure for generating a pseudo-random number of an arbitrary length using the non-linear function.
疑似乱数生成関数は、次の(1)(2)を証明できる関数のことである。
(1)非線形関数が理想的な非線形関数であると仮定したときに、疑似乱数生成関数が出力する値を、真の乱数と識別するための計算量が膨大であること。疑似乱数生成関数が出力する値を、真の乱数と識別するための計算量が2n必要な場合、疑似乱数生成関数はnビットの識別不可能性を持つという。
(2)非線形関数が理想的な非線形関数と異なるという性質を見つけるための計算量が膨大であること。これは、非線形関数に対して、差分攻撃法と線形攻撃法とが成功する計算量が膨大であることである。The pseudo-random number generation function is a function that can prove the following (1) and (2).
(1) When the nonlinear function is assumed to be an ideal nonlinear function, the calculation amount for identifying the value output from the pseudo random number generation function as a true random number is enormous. It is said that the pseudo-random number generation function has n-bit indistinguishability when 2 n is required for calculating the value output from the pseudo-random number generation function as a true random number.
(2) The amount of calculation for finding the property that the nonlinear function is different from the ideal nonlinear function is enormous. This is because the amount of calculation for the differential attack method and the linear attack method to succeed for the nonlinear function is enormous.
非特許文献1には、Sponge構造を用いた利用モードについて記載されている。Sponge構造を用いた利用モードにおいて、非線形関数の入力値及び出力値がbビット、非線形関数から抽出される値がrビットであるとする。また、暗号通信を行う2者間で共有した秘密鍵はkビットである。非特許文献2には、Sponge構造を用いた利用モードは、非線形関数が理想的な関数である場合に、c=b−rとすると、min{c,b/2,k}ビットの乱数との識別不可能性を持つことが示されている。
Non-Patent
値cが小さくなると非線形関数から抽出されるビット長rが長くなる。ビット長rが長くなると、非線形関数を計算する回数を減らすことができ、疑似乱数を計算する計算量を減らすことができる。値cが0の場合が最も計算量を少なくなる。しかし、Sponge構造を用いた既存の利用モードでは、識別不可能性の安全性が値cに依存しており、値cを小さくすることが困難である。
この発明は、識別不可能性の安全性を値cに依存しないようにすることを目的とする。As the value c decreases, the bit length r extracted from the nonlinear function increases. When the bit length r is increased, the number of times of calculating the nonlinear function can be reduced, and the amount of calculation for calculating the pseudo random number can be reduced. When the value c is 0, the amount of calculation is the smallest. However, in the existing usage mode using the Sponge structure, the safety of the indistinguishability depends on the value c, and it is difficult to reduce the value c.
The object of the present invention is to make the security of indistinguishability independent of the value c.
この発明に係る疑似乱数生成装置は、
関数F[0]により値st[0]を計算する第1関数F計算部と、
値nを1以上の整数値として、i=1,...,nの各整数値iについて昇順に、値st[i−1]を入力として関数F[i]により値st[i]を計算する第2関数F計算部と、
i=1,...,nの少なくとも一部の整数値iについて、値jを整数値iよりも小さい整数値として、値st[j]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとを入力として関数g[i]により値x[i]を計算する関数g計算部と、
前記関数g計算部が計算した値x[i]から疑似乱数を計算する乱数値計算部と
を備える。The pseudorandom number generator according to this invention is
A first function F calculation unit for calculating a value st [0] by the function F [0];
Assuming that the value n is an integer value of 1 or more, i = 1,. . . , N in ascending order for each integer value i, a second function F calculation unit that calculates the value st [i] by the function F [i] with the value st [i−1] as an input;
i = 1,. . . , N, and at least one bit of the value st [i] and at least one bit of the value st [j], where the value j is an integer value smaller than the integer value i. A function g calculation unit for calculating a value x [i] by a function g [i] using the bit of the part as an input;
A random value calculation unit that calculates a pseudo-random number from the value x [i] calculated by the function g calculation unit.
この発明では、関数F[i]により計算された値st[i]をそのまま利用せず、関数F[j]により計算された値st[j]を用いて値st[i]を変換した上で利用する。これにより、関数F[i]により計算された値st[i]を推定することが困難になり、識別不可能性の安全性を値cに依存しないようにすることができる。 In the present invention, the value st [i] calculated by the function F [j] is not used as it is, but the value st [j] calculated by the function F [j] is used to convert the value st [i]. Use in. As a result, it becomes difficult to estimate the value st [i] calculated by the function F [i], and the safety of the indistinguishability can be made independent of the value c.
実施の形態1.
***構成の説明***
図1に基づき、Sponge構造を用いた疑似乱数生成関数の構成を説明する。
Sponge構造を用いた疑似乱数生成関数では、入力値がbビットであり、出力値がbビットである理想的な非線形関数Pを用いる。
まず、関数cを用いて、値IVと秘密鍵Kとを結合し、さらに必要に応じて固定値padを結合してbビットとした値m[0]が生成される。値m[0]を入力として非線形関数Pにより値st[1]が計算される。値st[1]のうちrビットが疑似乱数に代入される。
次に、i=2,...,nの各整数値iについて昇順に、値st[i−1]を入力として非線形関数Pにより値st[i]が計算される。値st[i]のうちrビットが疑似乱数に結合される。これにより、疑似乱数が生成される。
値nは、必要な疑似乱数のビット長に応じて決定される。
*** Explanation of configuration ***
Based on FIG. 1, a configuration of a pseudo-random number generation function using a sponge structure will be described.
In the pseudorandom number generation function using the sponge structure, an ideal nonlinear function P having an input value of b bits and an output value of b bits is used.
First, using the function c, the value IV and the secret key K are combined, and if necessary, the fixed value pad is combined to generate a value m [0] having b bits. The value st [1] is calculated by the nonlinear function P with the value m [0] as an input. Of the value st [1], r bits are substituted into the pseudorandom number.
Next, i = 2,. . . , N, the value st [i] is calculated by the nonlinear function P with the value st [i-1] as an input in ascending order. Of the value st [i], r bits are combined with a pseudo-random number. Thereby, a pseudo-random number is generated.
The value n is determined according to the required bit length of the pseudo random number.
図2に基づき、実施の形態1に係る疑似乱数生成関数の構成を説明する。
まず、入力値IVと秘密鍵Kとを入力として非線形関数F[0]によりb[0]ビットの値st[0]が計算される。
次に、i=1,...,nの各整数値iについて昇順に、値st[i−1]を入力として関数F[i]によりb[i]ビットの値st[i]が計算される。そして、i=1,...,nの少なくとも一部の整数値iについて、値jを整数値iよりも小さい整数値として、値st[j]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとを入力として関数g[i]によりr[i]ビットの値x[i]が計算される。ここでは、i=1,...,nの各整数値iについて、値st[i−1]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとを入力として関数g[i]によりr[i]ビットの値x[i]が計算される。
関数g[i]により計算された値x[i]が結合され、疑似乱数となる。Based on FIG. 2, the configuration of the pseudorandom number generation function according to the first embodiment will be described.
First, the input value IV and the secret key K are input, and the b [0] -bit value st [0] is calculated by the nonlinear function F [0].
Next, i = 1,. . . , N, the value st [i] of the b [i] bit is calculated by the function F [i] with the value st [i-1] as an input in ascending order. And i = 1,. . . , N, and at least one bit of the value st [i] and at least one bit of the value st [j], where the value j is an integer value smaller than the integer value i. The value x [i] of the r [i] bit is calculated by the function g [i] using the bits of the part as input. Here, i = 1,. . . , N, the function g [i] is used to input at least some bits of the value st [i-1] and at least some bits of the value st [i]. The value x [i] of the [i] bit is calculated.
The values x [i] calculated by the function g [i] are combined into a pseudo random number.
値nは、必要な疑似乱数のビット長に応じて決定される1以上の値である。 The value n is one or more values determined according to the bit length of the required pseudorandom number.
図3に基づき、実施の形態1に係る関数gの構成について説明する。
i=1,...,nの各整数値iについての関数g[i]は、値st[i−1]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとの排他的論理和をとる。そして、関数g[i]は、排他的論理和の少なくとも一部のビットであるr[i]ビットを抽出して、値x[i]として出力する。Based on FIG. 3, the structure of the function g which concerns on
i = 1,. . . , N for each integer value i, the function g [i] is exclusive of at least some bits of the value st [i-1] and at least some bits of the value st [i]. Take logical OR. Then, the function g [i] extracts r [i] bits, which are at least a part of the exclusive OR, and outputs the result as a value x [i].
なお、i=1,...,nの各整数値iについての非線形関数F[i]は、同一の非線形関数であってもよい。また、非線形関数F[0]もi=1,...,nの各整数値iについての非線形関数F[i]と同一の非線形関数であってもよい。つまり、i=0,...,nの各整数値iについての非線形関数F[i]は、同一の非線形関数であってもよい。もちろん、i=0,...,nの各整数値iについての非線形関数F[i]は、異なる関数であってもよい。 Note that i = 1,. . . , N may be the same nonlinear function for each integer value i. The nonlinear function F [0] is also i = 1,. . . , N may be the same nonlinear function as the nonlinear function F [i] for each integer value i. That is, i = 0,. . . , N may be the same nonlinear function for each integer value i. Of course, i = 0,. . . , N may be different functions for each integer value i of n.
また、i=1,...,nの各整数値iについての値st[i]は、同一のビット数であってもよい。つまり、i=1,...,nの各整数値iについてのビット数b[i]は、同一のbビットであってもよい。 I = 1,. . . , N may be the same number of bits st [i] for each integer value i. That is, i = 1,. . . , N may be the same number of bits b [i] for each integer value i.
図4に基づき、実施の形態1に係る疑似乱数生成装置10の構成を説明する。
疑似乱数生成装置10は、図2に示す疑似乱数生成関数を計算して疑似乱数を生成する。疑似乱数生成装置10は、取得部11と、関数F計算部12と、関数g計算部13と、乱数値計算部14とを備える。Based on FIG. 4, the structure of the pseudorandom
The pseudo random
取得部11は、値IV及び秘密鍵Kを取得する。値IVは、疑似乱数を生成する度に異なる値である。秘密鍵Kは、暗号通信の相手と予め共有された鍵である。なお、疑似乱数を暗号通信に用いない場合も考えられる。したがって、秘密鍵Kは、暗号通信の相手と予め共有された鍵ではなく、任意の値であってもよい。
値IVは、疑似乱数を生成する度に、疑似乱数生成装置10の利用者が入力装置により入力し、取得部11は入力された値IVを取得してもよい。また、値IVは、疑似乱数生成装置10が備える記憶装置に記憶されており、取得部11は記憶された値IVを取得してもよい。同様に、秘密鍵Kは、疑似乱数を生成する度に、疑似乱数生成装置10の利用者が入力装置により入力し、取得部11は入力された秘密鍵Kを取得してもよい。また、秘密鍵Kは、疑似乱数生成装置10が備える記憶装置に記憶されており、取得部11は記憶された秘密鍵Kを取得してもよい。The acquisition unit 11 acquires the value IV and the secret key K. The value IV is different each time a pseudo random number is generated. The secret key K is a key shared in advance with the other party of the encryption communication. There may be a case where pseudorandom numbers are not used for encrypted communication. Therefore, the secret key K is not a key shared in advance with the other party of the encryption communication, and may be an arbitrary value.
The value IV may be input by the user of the pseudo random
関数F計算部12は、非線形関数F[i]を計算する。関数F計算部12は、第1関数F計算部121と、第2関数F計算部122とを備える。
第1関数F計算部121は、取得部11が取得した値IV及び秘密鍵Kを入力として、関数F[0]により値st[0]を計算する。
第2関数F計算部122は、i=1,...,nの各整数値iについて昇順に、値st[i−1]を入力として関数F[i]により値st[i]を計算する。The function
The first function
The second function
関数g計算部13は、関数g[i]を計算する。
関数g計算部13は、値jを整数値iよりも小さい整数値として、値st[j]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとを入力として関数g[i]によりr[i]ビットの値x[i]を計算する。ここでは、関数g計算部13は、i=1,...,nの各整数値iについて、値st[i−1]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとを入力として関数g[i]によりr[i]ビットの値x[i]を計算する。The function
The function
乱数値計算部14は、関数g計算部が計算した値x[i]から疑似乱数を計算する。ここでは、乱数値計算部14は、i=1,...,nの各整数値iについての値x[i]を結合することにより、疑似乱数を計算する。
乱数値計算部14は、計算した疑似乱数を出力する。The
The
***動作の説明***
図5に基づき、実施の形態1に係る疑似乱数生成装置10の処理を説明する。
実施の形態1に係る疑似乱数生成装置10の処理は、実施の形態1に係る疑似乱数生成方法に相当する。また、実施の形態1に係る疑似乱数生成装置10の処理は、実施の形態1に係る疑似乱数生成プログラムの処理に相当する。*** Explanation of operation ***
Based on FIG. 5, the process of the pseudorandom
The process of the pseudo random
S1の取得処理では、取得部11は、値IV及び秘密鍵Kを取得する。
S2の第1関数F計算処理では、第1関数F計算部121は、S1で取得された値IV及び秘密鍵Kを入力として、関数F[0]により値st[0]を計算する。In the acquisition process of S1, the acquisition unit 11 acquires the value IV and the secret key K.
In the first function F calculation process of S2, the first function
i=1,...nの各整数値iについて昇順にS3からS5の処理が実行される。
S3の第2関数F計算処理では、第2関数F計算部122は、値st[i−1]を入力として関数F[i]により値st[i]を計算する。
S4の関数g計算処理では、関数g計算部13は、値st[i−1]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとを入力として関数g[i]によりr[i]ビットの値x[i]を計算する。
S5の乱数値計算処理では、乱数値計算部14は、値x[i]を結合することにより、疑似乱数を計算する。i = 1,. . . The processes from S3 to S5 are executed in ascending order for each integer value i of n.
In the second function F calculation process of S3, the second function
In the function g calculation process of S4, the function
In the random value calculation process of S5, the random
S6の乱数値出力処理では、乱数値計算部14は、計算された疑似乱数を出力する。
In the random value output process of S6, the
***効果の説明***
以上のように、実施の形態1に係る疑似乱数生成装置10は、非線形関数F[i]により計算された値st[i]をそのまま利用して疑似乱数を生成せず、非線形関数F[i−1]により計算された値st[i−1]を用いて値st[i]を変換した上で利用して疑似乱数を生成する。つまり、前の非線形関数F[i−1]により計算された値st[i−1]を利用したフィードフォワード演算を行い、疑似乱数を生成する。これにより、非線形関数F[i]により計算された値st[i]を推定することが困難になり、識別不可能性の安全性が値cに依存しないようにすることができる。*** Explanation of effects ***
As described above, the pseudo-random
また、実施の形態1に係る疑似乱数生成装置10は、非線形関数F[i]により計算された値st[i]を推定することが困難なため、非線形関数F[i]に対して差分攻撃及び線形攻撃が困難になる。そのため、非線形関数F[i]の構造を簡素化しても、差分攻撃及び線形攻撃に対する安全性を担保できるようになる。非線形関数F[i]の構造を簡素化することにより、非線形関数F[i]の計算量を減らすことができ、疑似乱数生成の計算量を減らすことができる。
Further, since the pseudo random
また、実施の形態1に係る疑似乱数生成装置10が実現する疑似乱数生成関数は、全ての整数値iについての非線形関数F[i]が入出力長がbビットの理想的な非線形関数である場合に、min{b/2,k}ビットの乱数との識別不可能性を持つことを示すことが可能である。また、この場合に、全ての整数値iについての非線形関数F[i]の安全性がb−rの長さに依存しないことを示すことが可能である。
In addition, the pseudorandom number generation function realized by the pseudorandom
実施の形態2.
実施の形態2では、非線形関数F[i]について説明する。
実施の形態2では、実施の形態1と異なる部分について説明する。
In the second embodiment, the nonlinear function F [i] will be described.
In the second embodiment, parts different from the first embodiment will be described.
図6に基づき、実施の形態2に係る非線形関数Fの構成について説明する。
非線形関数F[0]は、ブロック暗号を構成する関数である。非線形関数F[0]は、i=1,...,tの各整数値iについてのラウンド関数R[i]と、秘密鍵Kから各ラウンド関数R[i]の入力となる副鍵K[i]を生成する副鍵生成関数とを有する。Based on FIG. 6, the configuration of the nonlinear function F according to the second embodiment will be described.
The nonlinear function F [0] is a function constituting the block cipher. The nonlinear function F [0] is i = 1,. . . , T for each integer value i, and a subkey generation function for generating a subkey K [i] as an input of each round function R [i] from the secret key K.
非線形関数F[0]では、まず、秘密鍵Kを入力として副鍵生成関数により、i=1,...,tの各整数値iについての副鍵K[i]が生成される。
次に、値IV及び副鍵K[1]を入力としてラウンド関数R[1]により値y[1]が計算される。そして、i=2,...,tの各整数値iについて昇順に、値y[i−1]及び副鍵K[i]を入力としてラウンド関数R[i]により値y[i]が生成される。
非線形関数F[0]では、i=1,...,tの少なくとも一部の整数値iについてのラウンド関数R[i]により計算された値y[i]又はラウンド関数R[i]の内部の値を結合して、値st[0]が計算される。In the non-linear function F [0], first, i = 1,. . . , T, subkeys K [i] are generated for each integer value i.
Next, the value y [1] is calculated by the round function R [1] with the value IV and the subkey K [1] as inputs. And i = 2,. . . , T, the value y [i] is generated by the round function R [i] with the value y [i-1] and the subkey K [i] as inputs in ascending order.
For the nonlinear function F [0], i = 1,. . . , T, the value y [i] calculated by the round function R [i] or the value inside the round function R [i] for at least some integer values i is combined to calculate the value st [0]. Is done.
i=2,...,nの各整数値iについての非線形関数F[i]は、非線形関数F[0]が有するラウンド関数R[i]のうちの少なくとも一部のラウンド関数R[i]と、値st[i−1]から各ラウンド関数R[i]の入力となる副鍵K[i]を生成する関数f[i−1]とを有する関数である。つまり、i=2,...,nの各整数値iについての非線形関数F[i]が有するラウンド関数R[i]は、非線形関数F[0]が有するラウンド関数R[i]から選択された少なくとも一部のラウンド関数R[i]である。ここでは、i=2,...,nの各整数値iについての非線形関数F[i]が有するラウンド関数R[i]を、j=1,...,tiの各整数値jについてのラウンド関数R[i,j]と記載する。i = 2,. . . , N for each integer value i, the round function R [i] of at least some of the round functions R [i] of the nonlinear function F [0] and the value st [i -1] to a function f [i-1] that generates a subkey K [i] that is an input of each round function R [i]. That is, i = 2,. . . , N for each integer value i, the round function R [i] of the nonlinear function F [i] is at least a part of the round functions R [i] selected from the round functions R [i] of the nonlinear function F [0]. [I]. Here, i = 2,. . . , N, the round function R [i] of the nonlinear function F [i] for each integer value i is represented by j = 1,. . . , T i is described as a round function R [i, j] for each integer value j.
非線形関数F[i]では、まず、値st[i−1]を入力として関数f[i−1]により、値IV[i]と、j=1,...,tiの各整数値jについての副鍵K[i,j]とが生成される。ここでは、関数f[i−1]は、値st[i−1]のビットから選択された一部のビットを初めに計算されるラウンド関数R[i,1]の入力値とし、st[i−1]のビットから選択された一部のビットを各ラウンド関数R[i,j]で使用される副鍵K[i,j]とする。
次に、値IV[i]及び副鍵K[i,1]を入力としてラウンド関数R[i,1]により値y[i,1]が計算される。そして、j=2,...,tiの各整数値jについて昇順に、値y[i,j−1]及び副鍵K[i,j]を入力としてラウンド関数R[i,j]により値y[i,j]が生成される。
非線形関数F[i]では、j=1,...,tiの少なくとも一部の整数値jについてのラウンド関数R[i,j]により計算された値y[i,j]を結合して、値st[j]が計算される。In the non-linear function F [i], first, the value IV [i] and j = 1,. . . , Sub key K [i, j] for each integer value j of t i and is generated. Here, the function f [i−1] uses a part of bits selected from the bits of the value st [i−1] as input values of the round function R [i, 1] calculated first, and st [ A part of bits selected from the bits of i−1] are subkeys K [i, j] used in each round function R [i, j].
Next, the value y [i, 1] is calculated by the round function R [i, 1] with the value IV [i] and the subkey K [i, 1] as inputs. And j = 2,. . . , T i for each integer value j in ascending order, the value y [i, j−1] and the subkey K [i, j] are input and the value y [i, j] is obtained by the round function R [i, j]. Generated.
For the nonlinear function F [i], j = 1,. . . , T i , the values y [i, j] calculated by the round function R [i, j] for at least some integer values j are combined to calculate the value st [j].
図7に基づき、実施の形態2に係る非線形関数Fの他の構成について説明する。
図7に示す非線形関数Fについて、図6に示す非線形関数Fと異なる点について説明する。
非線形関数F[0]は、図6に示す非線形関数F[0]と同じブロック暗号を構成する関数を有する。また、非線形関数F[0]は、ブロック暗号が有するラウンド関数R[i]のうちの少なくとも一部のラウンド関数R[i]が順に計算される関数Xを有する。関数Xが有するラウンド関数R[i]は、ブロック暗号が有するラウンド関数R[i]から選択された少なくとも一部のラウンド関数R[i]である。ここでは、関数Xが有するラウンド関数R[i]を、j=1,...,t0の各整数値jについてのラウンド関数[0,j]と記載する。Based on FIG. 7, another configuration of the nonlinear function F according to the second embodiment will be described.
The non-linear function F shown in FIG. 7 will be described with respect to differences from the non-linear function F shown in FIG.
The nonlinear function F [0] has a function that constitutes the same block cipher as the nonlinear function F [0] shown in FIG. Further, the non-linear function F [0] has a function X in which at least a part of the round functions R [i] included in the block cipher is sequentially calculated. The round function R [i] included in the function X is at least a part of the round functions R [i] selected from the round functions R [i] included in the block cipher. Here, the round function R [i] of the function X is represented by j = 1,. . . , T 0 is described as a round function [0, j] for each integer value j.
非線形関数F[0]では、まず、秘密鍵Kを入力として副鍵生成関数により、i=1,...,tの各整数値iについての副鍵K[i]が生成される。
次に、値IV及び副鍵K[1]を入力としてラウンド関数R[1]により値y[1]が計算される。そして、i=2,...,tの各整数値iについて昇順に、値y[i−1]及び副鍵K[i]を入力としてラウンド関数R[i]により値y[i]が生成される。
次に、値y[t]及び副鍵K[0,1]を入力としてラウンド関数R[0,1]により値y[0,1]が計算される。そして、j=2,...,t0の各整数値jについて昇順に、値y[0,j−1]及び副鍵K[0,j]を入力としてラウンド関数R[0,j]により値y[0,j]が計算される。ここで、j=1,...,t0の各整数値jについての副鍵K[0,j]は、ラウンド関数R[0,j]に対応するブロック暗号が有するラウンド関数R[i]に入力された副鍵K[i]である。例えば、ラウンド関数R[0,1]がラウンド関数R[3]であるなら、副鍵K[0,1]は副鍵K[3]である。
非線形関数F[0]では、i=1,...,tの各整数値iについてのラウンド関数R[i]により計算された値y[i]と、j=1,...,t0の各整数値jについてのラウンド関数R[0,j]により計算された値y[0,j]との少なくとも一部を結合して、値st[0]が計算される。In the non-linear function F [0], first, i = 1,. . . , T, subkeys K [i] are generated for each integer value i.
Next, the value y [1] is calculated by the round function R [1] with the value IV and the subkey K [1] as inputs. And i = 2,. . . , T, the value y [i] is generated by the round function R [i] with the value y [i-1] and the subkey K [i] as inputs in ascending order.
Next, the value y [0,1] is calculated by the round function R [0,1] with the value y [t] and the subkey K [0,1] as inputs. And j = 2,. . . , T 0 for each integer value j in ascending order, the value y [0, j−1] and the subkey K [0, j] are input and the value y [0, j] is obtained by the round function R [0, j]. Calculated. Here, j = 1,. . . , T 0 for each integer value j, the subkey K [i, j] is input to the round function R [i] of the block cipher corresponding to the round function R [0, j]. ]. For example, if the round function R [0, 1] is the round function R [3], the secondary key K [0, 1] is the secondary key K [3].
For the nonlinear function F [0], i = 1,. . . , T, the value y [i] calculated by the round function R [i] for each integer value i, j = 1,. . . , T 0 are combined with at least a part of the value y [0, j] calculated by the round function R [0, j] for each integer value j of t 0 to calculate the value st [0].
i=2,...,nの各整数値iについての非線形関数F[i]は、図6に示す非線形関数F[i]と同じである。 i = 2,. . . , N for each integer value i is the same as the nonlinear function F [i] shown in FIG.
以上のように、実施の形態2に係る疑似乱数生成装置10では、ブロック暗号を構成する関数、又は、ブロック暗号を構成する関数の部品を、非線形関数Fとしている。特に、実施の形態2に係る疑似乱数生成装置10では、ラウンド関数Rに対する副鍵を固定にせず、非線形関数Fの入力から生成した。また、実施の形態2に係る疑似乱数生成装置10では、ブロック暗号を構成する関数の出力値をそのまま非線形関数Fの出力値とするのではなく、少なくとも一部のラウンド関数Rで計算された値を結合した値を非線形関数Fの出力値とした。
これにより、非線形関数Fの入出力長を長くすることができる。実施の形態1で説明した通り、疑似乱数生成関数は、全ての整数値iについての非線形関数F[i]が入出力長がbビットの理想的な非線形関数である場合に、min{b/2,k}ビットの乱数との識別不可能性を持つことを示すことが可能である。したがって、非線形関数Fの入出力長を長くすることができれば、識別不可能性を持つことを示すことが可能な乱数の長さを長くすることができる。As described above, in the pseudo random
Thereby, the input / output length of the nonlinear function F can be lengthened. As described in the first embodiment, the pseudo-random number generation function is min {b / when the nonlinear function F [i] for all integer values i is an ideal nonlinear function having an input / output length of b bits. It can be shown that it is indistinguishable from a random number of 2, k} bits. Therefore, if the input / output length of the nonlinear function F can be increased, the length of a random number that can be shown to have indistinguishability can be increased.
また、実施の形態2に係る疑似乱数生成装置10では、実施の形態1に係る疑似乱数生成装置10と同様に、フィードフォワード演算を行い、疑似乱数を生成する。そのため、非線形関数Fにより計算された値を推定することが困難である。したがって、非線形関数Fが有するラウンド関数Rの数を減らしても安全性を確保できる。非線形関数Fが有するラウンド関数Rの数を減らすことにより、疑似乱数生成の計算量を減らすことができる。
Further, in the pseudo random
ここでは、ブロック暗号として、非特許文献3に記載されたAES(Advanced Encryption Standard)を用いることができる。また、ブロック暗号として、非特許文献4に記載されたCamellia(登録商標)を用いることもできる。
Here, AES (Advanced Encryption Standard) described in
ブロック暗号として、AESを用いる場合、全てのラウンド関数はAESのラウンド関数となる。
128bit鍵のAESを用いる場合であって、図6に示す非線形関数Fの構成とする場合、tを10とし、tiを10以下とする。
128bit鍵のAESを用いる場合であって、図7に示す非線形関数Fの構成とする場合、tを10とし、tiを10以下とする。
192bit鍵のAESを用いる場合であって、図6に示す非線形関数Fの構成とする場合、tを12とし、tiを12以下とする。
192bit鍵のAESを用いる場合であって、図7に示す非線形関数Fの構成とする場合、tを12とし、tiを12以下とする。
256bit鍵のAESを用いる場合であって、図6に示す非線形関数Fの構成とする場合、tを14とし、tiを14以下とする。
256bit鍵のAESを用いる場合であって、図7に示す非線形関数Fの構成とする場合、tを14とし、tiを14以下とする。When AES is used as the block cipher, all round functions are AES round functions.
In the case of using AES with a 128bit key, if the configuration of the nonlinear function F shown in FIG. 6, the t and 10, the t i and 10 or less.
In the case of using AES with a 128bit key, if the configuration of the nonlinear function F shown in FIG. 7, the t and 10, the t i and 10 or less.
In the case of using AES with a 192bit key, if the configuration of the nonlinear function F shown in FIG. 6, the t and 12, the t i and 12 or less.
In the case of using AES with a 192bit key, if the configuration of the nonlinear function F shown in FIG. 7, the t and 12, the t i and 12 or less.
In the case of using AES with a 256bit key, if the configuration of the nonlinear function F shown in FIG. 6, the t and 14, the t i and 14 or less.
In the case of using AES with a 256bit key, if the configuration of the nonlinear function F shown in FIG. 7, the t and 14, the t i and 14 or less.
ブロック暗号として、Camellia(登録商標)を用いる場合、全てのラウンド関数はCamellia(登録商標)のラウンド関数となる。
128bit鍵のCamellia(登録商標)を用いる場合であって、図6に示す非線形関数Fの構成とする場合、tを18とし、tiを18以下とする。また、f[i]は128bit鍵のCamellia(登録商標)の副鍵生成関数を用いてもよい。
128bit鍵のCamellia(登録商標)を用いる場合であって、図7に示す非線形関数Fの構成とする場合、tを18とし、tiを18以下とする。また、f[i]は128bit鍵のCamellia(登録商標)の副鍵生成関数を用いてもよい。
192bit鍵のCamellia(登録商標)を用いる場合であって、図6に示す非線形関数Fの構成とする場合、tを24とし、tiを24以下とする。また、f[i]は192bit鍵のCamellia(登録商標)の副鍵生成関数を用いてもよい。
192bit鍵のCamellia(登録商標)を用いる場合であって、図7に示す非線形関数Fの構成とする場合、tを24とし、tiを24以下とする。また、f[i]は192bit鍵のCamellia(登録商標)の副鍵生成関数を用いてもよい。
256bit鍵のCamellia(登録商標)を用いる場合であって、図6に示す非線形関数Fの構成とする場合、tを24とし、tiを24以下とする。また、f[i]は256bit鍵のCamellia(登録商標)の副鍵生成関数を用いてもよい。
256bit鍵のCamellia(登録商標)を用いる場合であって、図7に示す非線形関数Fの構成とする場合、tを24とし、tiを24以下とする。また、f[i]は256bit鍵のCamellia(登録商標)の副鍵生成関数を用いてもよい。When Camellia (registered trademark) is used as the block cipher, all round functions are Camellia (registered trademark) round functions.
In the case of using a 128bit key Camellia (registered trademark), if the configuration of the nonlinear function F shown in FIG. 6, the t and 18, the t i and 18 or less. For f [i], a 128-bit key Camellia (registered trademark) subkey generation function may be used.
In the case of using a 128bit key Camellia (registered trademark), if the configuration of the nonlinear function F shown in FIG. 7, the t and 18, the t i and 18 or less. For f [i], a 128-bit key Camellia (registered trademark) subkey generation function may be used.
In the case of using a Camellia (R) 192bit key, if the configuration of the nonlinear function F shown in FIG. 6, the t and 24, the t i and 24 or less. Also, f [i] may use a 192-bit Camellia (registered trademark) subkey generation function.
In the case of using a Camellia (R) 192bit key, if the configuration of the nonlinear function F shown in FIG. 7, the t and 24, the t i and 24 or less. Also, f [i] may use a 192-bit Camellia (registered trademark) subkey generation function.
In the case of using a Camellia (R) 256bit key, if the configuration of the nonlinear function F shown in FIG. 6, the t and 24, the t i and 24 or less. For f [i], a Camellia (registered trademark) sub-key generation function with a 256-bit key may be used.
In the case of using a Camellia (R) 256bit key, if the configuration of the nonlinear function F shown in FIG. 7, the t and 24, the t i and 24 or less. For f [i], a Camellia (registered trademark) sub-key generation function with a 256-bit key may be used.
図8は、実施の形態1,2に係る疑似乱数生成装置10のハードウェア構成例を示す図である。
疑似乱数生成装置10はコンピュータである。
疑似乱数生成装置10は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース905は、ケーブル911により入力装置907に接続されている。
ディスプレイインタフェース906は、ケーブル912によりディスプレイ908に接続されている。FIG. 8 is a diagram illustrating a hardware configuration example of the pseudorandom
The pseudo random
The pseudo random
The
The
The
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
メモリ903は、例えば、RAM(Random Access Memory)である。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。
ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。The
The
The
The
The
The
The
The
補助記憶装置902には、上述した取得部11、関数F計算部12、第1関数F計算部121、第2関数F計算部122、関数g計算部13、乱数値計算部14(以下、取得部11、関数F計算部12、第1関数F計算部121、第2関数F計算部122、関数g計算部13、乱数値計算部14をまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図8では、1つのプロセッサ901が図示されているが、疑似乱数生成装置10が複数のプロセッサ901を備えていてもよい。そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリにファイルとして記憶される。The
This program is loaded into the
Further, the
Then, at least a part of the OS is loaded into the
Although one
In addition, information, data, signal values, and variable values indicating the results of the processing of “unit” are stored as files in the
「部」を「サーキットリー」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
The “part” may be provided as “circuitry”. Further, “part” may be read as “circuit”, “process”, “procedure”, or “processing”. “Circuit” and “Circuitry” include not only the
10 疑似乱数生成装置、11 取得部、12 関数F計算部、121 第1関数F計算部、122 第2関数F計算部、13 関数g計算部、14 乱数値計算部。
DESCRIPTION OF
Claims (13)
値nを1以上の整数値として、i=1,...,nの各整数値iについて昇順に、値st[i−1]を入力として関数F[i]により値st[i]を計算する第2関数F計算部と、
i=1,...,nの少なくとも一部の整数値iについて、値jを整数値iよりも小さい整数値として、値st[j]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとを入力として、関数g[i]により値st[j]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとの両方を作用させた演算を行って、値x[i]を計算する関数g計算部と、
前記関数g計算部が計算した値x[i]から疑似乱数を計算する乱数値計算部と
を備える疑似乱数生成装置。 A first function F calculation unit for calculating a value st [0] by the function F [0];
Assuming that the value n is an integer value of 1 or more, i = 1,. . . , N in ascending order for each integer value i, a second function F calculation unit that calculates the value st [i] by the function F [i] with the value st [i−1] as an input;
i = 1,. . . , N, and at least one bit of the value st [i] and at least one bit of the value st [j], where the value j is an integer value smaller than the integer value i. Operation using at least a part of the value st [j] and at least a part of the value st [i] as a function g [i]. And a function g calculation unit for calculating the value x [i],
A pseudo-random number generation device comprising: a random value calculation unit that calculates a pseudo-random number from the value x [i] calculated by the function g calculation unit.
請求項1に記載の疑似乱数生成装置。 The function g calculation unit is configured such that i = 1,. . . , N, the function g [i] takes the value of at least some bits of the value st [i-1] and at least some bits of the value st [i] as inputs. The pseudorandom number generation device according to claim 1, wherein x [i] is calculated.
請求項1又は2に記載の疑似乱数生成装置。 i = 1,. . . , N for each integer value i, the function F [i] is the same non-linear function.
請求項1又は2に記載の疑似乱数生成装置。 i = 0,. . . , N for each integer value i, the function F [i] is the same non-linear function.
i=1,...,nの各整数値iについての前記関数F[i]は、前記関数F[0]で計算されるラウンド関数R[i]のうちの少なくとも一部のラウンド関数R[i]が順に計算される関数である
請求項1又は2に記載の疑似乱数生成装置。 The function F [0] is a round function R [i] that constitutes a block cipher, where i = 1,. . . , T is a function in which the round function R [i] for each integer value i is calculated in sequence,
i = 1,. . . , N for each integer value i, the round functions R [i] of at least some of the round functions R [i] calculated by the function F [0] are sequentially calculated. The pseudorandom number generation device according to claim 1, wherein the pseudorandom number generation device is a function.
i=1,...,nの各整数値iについての前記関数F[i]は、前記関数F[0]で計算されるラウンド関数R[i]のうちの少なくとも一部のラウンド関数R[i]が順に計算される関数である
請求項1又は2に記載の疑似乱数生成装置。 The function F [0] is a round function R [i] that constitutes a block cipher, where i = 1,. . . , T for each integer value i, the round function R [i] is calculated in order, and at least some of the round functions R [i] are sequentially calculated. ,
i = 1,. . . , N for each integer value i, the round functions R [i] of at least some of the round functions R [i] calculated by the function F [0] are sequentially calculated. The pseudorandom number generation device according to claim 1, wherein the pseudorandom number generation device is a function.
前記第2関数F計算部は、前記関数F[i]で計算されるラウンド関数R[i]のうち少なくとも一部のラウンド関数R[i]により計算された値を結合して値st[i]を計算する
請求項5又は6に記載の疑似乱数生成装置。 The first function F calculation unit combines values calculated by at least a part of the round functions R [i] calculated by the function F [0] to obtain a value st [0]. ]
The second function F calculation unit combines values calculated by at least some round functions R [i] of the round functions R [i] calculated by the function F [i] to obtain a value st [i ] The pseudorandom number generation device according to claim 5 or 6.
請求項5から7までのいずれか1項に記載の疑似乱数生成装置。 The second function F calculation unit uses a part of bits selected from the bits of the value st [i−1] as an input value of the round function R [i] calculated first, and the st [i−1]. The pseudo-random number generation device according to any one of claims 5 to 7, wherein a part of bits selected from the plurality of bits is used as a key used in each round function R [i].
請求項5から8のいずれか1項に記載の疑似乱数生成装置。 The block cipher is AES (Advanced Encryption Standard), i = 1,. . . The round function R [i] for each integer value i of, t is an AES round function, the pseudo-random number generation device according to any one of claims 5 to 8.
請求項5から8のいずれか1項に記載の疑似乱数生成装置。 The block cipher is Camellia (registered trademark), and i = 1,. . . 9, the round function R [i] for each integer value i of t is a Camellia (registered trademark) round function.
請求項2に記載の疑似乱数生成装置。 i = 1,. . . , N for each integer value i, the function g [i] includes at least some bits of the value st [i−1] and at least some bits of the value st [i]. The pseudorandom number generator according to claim 2, wherein the pseudo-random number generator is a function that takes an exclusive OR of and outputs at least some bits as a value x [i].
値nを1以上の整数として、i=1,...,nの各整数値iについて昇順に、値st[i−1]を入力として関数F[i]により値st[i]を計算する第2関数F計算処理と、
i=1,...,nの少なくとも一部の整数値iについて、値jを整数値iよりも小さい整数として、値st[j]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとを入力として、関数g[i]により値st[j]のうちの少なくとも一部のビットと、値st[i]のうちの少なくとも一部のビットとの両方を作用させた演算を行って、値x[i]を計算する関数g計算処理と、
前記関数g計算処理で計算した値x[i]から疑似乱数を計算する乱数値計算処理と
をコンピュータに実行させる疑似乱数生成プログラム。 A first function F calculation process for calculating a value st [0] by the function F [0];
Assuming that the value n is an integer of 1 or more, i = 1,. . . , N in ascending order for each integer value i, a second function F calculation process for calculating the value st [i] by the function F [i] with the value st [i−1] as an input;
i = 1,. . . , N for at least some integer values i, where value j is an integer smaller than integer value i, at least some bits of value st [j] and at least some of value st [i] of the bit as input, at least some of the bits of the values st [j] by a function g [i], a calculation is made to act both at least a portion of the bits of the values st [i] a function g calculation processing performed by, for calculating a value x [i],
A pseudorandom number generation program for causing a computer to execute a random value calculation process for calculating a pseudorandom number from the value x [i] calculated in the function g calculation process.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/054608 WO2016132506A1 (en) | 2015-02-19 | 2015-02-19 | Pseudorandom number generation device and pseudorandom number generation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016132506A1 JPWO2016132506A1 (en) | 2017-07-13 |
JP6194136B2 true JP6194136B2 (en) | 2017-09-06 |
Family
ID=56692655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017500219A Active JP6194136B2 (en) | 2015-02-19 | 2015-02-19 | Pseudorandom number generation device and pseudorandom number generation program |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180024813A1 (en) |
JP (1) | JP6194136B2 (en) |
WO (1) | WO2016132506A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333710B2 (en) * | 2017-09-12 | 2019-06-25 | Qed-It Systems Ltd. | Method and system for determining desired size of private randomness using Tsallis entropy |
EP3741082B1 (en) | 2018-01-19 | 2021-12-29 | Qed-It Systems Ltd. | Proof chaining and decomposition |
CN111708513B (en) * | 2020-05-15 | 2023-12-08 | 深圳和而泰智能家电控制器有限公司 | Pseudo-random number seed generation method and related product |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3022439B2 (en) * | 1997-09-24 | 2000-03-21 | 日本電気株式会社 | Pseudo random number generation method and apparatus |
JP2008058830A (en) * | 2006-09-01 | 2008-03-13 | Sony Corp | Data converting device, data conversion method, and computer program |
JP5119417B2 (en) * | 2008-04-17 | 2013-01-16 | ルネサスエレクトロニクス株式会社 | Pseudo random number generator |
JP5433686B2 (en) * | 2009-05-22 | 2014-03-05 | 株式会社東芝 | Random number generation circuit and encryption circuit using the same |
JP5670849B2 (en) * | 2011-09-19 | 2015-02-18 | Necエンジニアリング株式会社 | Pseudorandom number generation device and pseudorandom number generation method |
US9438416B2 (en) * | 2014-07-18 | 2016-09-06 | Harris Corporation | Customizable encryption algorithm based on a sponge construction with authenticated and non-authenticated modes of operation |
-
2015
- 2015-02-19 WO PCT/JP2015/054608 patent/WO2016132506A1/en active Application Filing
- 2015-02-19 US US15/549,047 patent/US20180024813A1/en not_active Abandoned
- 2015-02-19 JP JP2017500219A patent/JP6194136B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2016132506A1 (en) | 2016-08-25 |
JPWO2016132506A1 (en) | 2017-07-13 |
US20180024813A1 (en) | 2018-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9515818B2 (en) | Multi-block cryptographic operation | |
US20150215117A1 (en) | White box encryption apparatus and method | |
US8010587B2 (en) | Random number generator | |
US9274979B2 (en) | System, method, and computer program product for optimizing data encryption and decryption by implementing asymmetric AES-CBC channels | |
JP6575532B2 (en) | Encryption device, decryption device, encryption processing system, encryption method, decryption method, encryption program, and decryption program | |
US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
CN107004084B (en) | Multiplicative mask for cryptographic operations | |
US11436946B2 (en) | Encryption device, encryption method, decryption device, and decryption method | |
CN105406969A (en) | Apparatus And Method For Data Encryption | |
US20200186328A1 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
CN112054896B (en) | White box encryption method, white box encryption device, terminal and storage medium | |
Bhaskar et al. | An advanced symmetric block cipher based on chaotic systems | |
JP6194136B2 (en) | Pseudorandom number generation device and pseudorandom number generation program | |
JP7155173B2 (en) | Protecting Modular Inversion Operations from External Observation Attacks | |
US8774402B2 (en) | Encryption/decryption apparatus and method using AES rijndael algorithm | |
TWI517655B (en) | Cryptographic device and secret key protection method | |
JP6187624B1 (en) | Information processing apparatus, information processing method, and program | |
US11336429B2 (en) | Method for protecting a source of entropy used in countermeasures securing a white-box cryptographic algorithm | |
Assaflia et al. | The Evaluation of Time-Dependent Initialization Vector Advanced Encryption Standard Algorithm for Image Encryption | |
KR20170108595A (en) | Encrypting apparatus and method using logically complement values for enhanced security against side channel analysis | |
US20170126399A1 (en) | Encryption apparatus, storage system, decryption apparatus, encryption method, decryption method, and computer readable medium | |
JP2015534415A (en) | Control method and device for controlling code authenticity by applying bijective algorithm to messages | |
JP2015082077A (en) | Encryption device, control method, and program | |
KR102038598B1 (en) | Encryption apparatus and method for preventing coupling effect | |
JPWO2017009981A1 (en) | Message authenticator generator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170227 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170227 |
|
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: 20170718 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170810 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6194136 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |