WO2004032098A1 - 疑似乱数発生方法及び疑似乱数発生器 - Google Patents

疑似乱数発生方法及び疑似乱数発生器 Download PDF

Info

Publication number
WO2004032098A1
WO2004032098A1 PCT/JP2003/008794 JP0308794W WO2004032098A1 WO 2004032098 A1 WO2004032098 A1 WO 2004032098A1 JP 0308794 W JP0308794 W JP 0308794W WO 2004032098 A1 WO2004032098 A1 WO 2004032098A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
bit string
shift register
selection
pseudo
Prior art date
Application number
PCT/JP2003/008794
Other languages
English (en)
French (fr)
Inventor
Masakatsu Morii
Yoshiaki Shiraishi
Original Assignee
Kobayashi, Akira
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kobayashi, Akira filed Critical Kobayashi, Akira
Priority to US10/530,574 priority Critical patent/US20060039558A1/en
Priority to AU2003252595A priority patent/AU2003252595A1/en
Priority to JP2004541207A priority patent/JP4052480B2/ja
Publication of WO2004032098A1 publication Critical patent/WO2004032098A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register

Definitions

  • the present invention relates to a pseudo-random number generating method for generating a pseudo-random number used in cryptographic communication, digital signature, and the like, a pseudo-random number generator, and a random number generating program.
  • One of these encryption methods is a sequential encryption method (stream encryption method).
  • the sequential encryption method the same pseudo-random number is generated on the transmitting side and the receiving side, and the transmitting side creates a ciphertext bit string using the pseudo-random number bit string and the plaintext bit string, and sends it to the receiving side as ciphertext.
  • the receiving side obtains a plaintext bit string using the bit string of the ciphertext and the bit string of the pseudo-random number received from the transmitting side and decrypts the plaintext.
  • FIG. 16 is a diagram illustrating a conventional sequential encryption method.
  • the encryption device 100 on the transmission side has a pseudo-random number generator 101 and a logical operation processing unit 102.
  • the decryption device 110 on the reception side has a pseudo-random number generator 111.
  • the pseudorandom number generator 101 of the encryption device 100 and the pseudorandom number generator 111 of the decryption device 110 generate the same pseudorandom number by giving the same secret key. It has a logical structure.
  • the logical operation processing unit 102 of the encryption device 100 and the logical operation processing unit 112 of the decryption device 110 perform an exclusive OR operation in bit units.
  • FIG. 17 is a diagram for explaining the pseudo-random number generator 101 of the encryption device 100. Since the pseudo random number generator 111 of the decryption device 110 has the same configuration as the pseudo random number generator 101 of the encryption device 100, detailed description thereof is omitted.
  • the pseudo-random number generator 101 is a nonlinear compiler-type pseudo-random number generator (Nonlinear Combiner Generator). As shown in Fig. 17, a plurality of linear feedback pack shift registers (Linear Feedback Shift Register; LFSR) 1 0 3 and a non-linear conversion unit 104, and non-linearly converts the bit string output from each linear feedback shift register 103 to generate a pseudo random number.
  • LFSR Linear Feedback Shift Register
  • each linear Fi one-back shift register 103 one shift operation at their respective 1-bit ( ⁇ 1, ⁇ 2, ⁇ ⁇ ⁇ X L) to output the non-linear conversion section 104, each linear It has a configuration for outputting a 1-bit pseudorandom number based on a bit string input from the feedback shift register 103. .
  • FIG. 18 is a diagram simply illustrating the configuration of a general linear feed-pack shift register 103.
  • the linear feedpack shift register 103 has a plurality of shift registers 105 capable of storing 1-bit information and a plurality of exclusive OR operation circuits 106.
  • the output of each shift register 105 and each exclusive OR are A feedback tap 107 is connected to one input of the arithmetic circuit 106.
  • Feedback tap 107 (C n — C n -2, ⁇ C n ) indicates connection when 1,
  • a value of 0 indicates a disconnection, each of which is set to 1 or 0 in advance.
  • the characteristic polynomial that generates the ⁇ sequence is represented by the following expression.
  • the exponent n of the first item is a linear feedback shift.
  • the order of the register 103 that is, the number of shift registers, indicates the exponent part of the second and subsequent items, and indicates the connection position by the feedback tap. If the characteristic polynomial shown in the above equation is a primitive polynomial, the linear feedback shift register outputs M sequences.
  • Such a conventional nonlinear compiler-type pseudo-random number generator can be configured with simple logic based on bitwise logical operations, and is considered to be suitable for implementation in so-called hardware.
  • Patent Document 1 the output from the linear feedback shift register is exclusive-ORed. It has been proposed to change it by an arithmetic processing such as (for example, see Patent Document 1). [Patent Document 1]
  • the linear feedback shift register 103 observes twice the output of the number of shift registers, and thus the configuration of the linear feedback shift register 103, that is, the number of shift registers and the connection position, and all of the initial values Can be specified. Therefore, if the linear feedback shift register 103 having a fixed configuration is used as it is for the pseudorandom number generator 101, the encryption strength is weak and there is a problem in security.
  • the characteristic polynomial is fixed to a value that outputs the M-sequence in advance, and it is considered that the configuration of the linear feed-pack shift register cannot be easily changed.
  • the conventional nonlinear compiler-type pseudo-random number generator must continuously and repeatedly execute a 1-bit unit operation using the linear feedback shift register 103.
  • Such processing is good at hardware and can be performed at relatively high speed, but it is not good at software, and the processing speed is extremely slow as compared with hardware.
  • the non-linear converter 104 executes a simple operation such as a logical product and an exclusive logical sum. Therefore, the throughput of the linear feedback shift register 103 is lower than the throughput of the non-linear converter 104, and the part that outputs a random number bit string in the entire generator, that is, the linear feedback shift register 103 is a bottleneck. Become. For this reason, conventional nonlinear combiner-type pseudo-random number generators are more complete when implemented in software than when implemented in hardware. There was a problem that the body throughput decreased, and it was difficult to use it with software.
  • the number of shift registers 105 of the linear feed-pack shift register 103 and the number of linear feedback shift registers 103 must be a certain number. Need more. However, the throughput is lower as the number of shift registers 105 of the linear feedback shift register 103 increases or as the number of linear feedback shift registers 103 increases. is there. Therefore, it was difficult to achieve high throughput while securing high encryption strength.
  • An object of the present invention is to make it easy and simple to configure a linear feed-pack shift register while maintaining strong encryption strength.
  • An object of the present invention is to provide a pseudo-random number generation method and the like that can be dynamically changed and that can achieve a higher throughput while securing a sufficiently high cipher strength.
  • Pseudo-random number Tsutomusei method with the first aspect for solving the above-mentioned problems has n shift registers, the number of bits of one period (2 ⁇ ⁇ ) - 1 or the bits strings can be output
  • a first step of setting an initial value of a simple linear feedback shift register and a second step of obtaining a derived value which is relatively prime to the number of bits for one cycle of the linear feedback shift register from the initial value by a predetermined arithmetic processing.
  • the derived value is multiplied by a value obtained by doubling the number of bits for one cycle of the linear feedback shift register to calculate the number of bits of the bit string to be output by the first linear feedback shift register.
  • a 4th step of outputting the calculated number of bit strings from the linear feedback shift register based on the initial value is to extract the bit string at each interval of the derived values to generate a new bit string
  • the sixth step is to reconfigure the configuration of the linear feedback shift register into a configuration that can output the new bit string
  • an initial value of a linear feedback shift register having ⁇ shift registers and capable of outputting a bit string in which the number of bits for one cycle is ( 2 ⁇ ) 11 is set, and a predetermined operation is performed. Through processing, the derived value that is relatively prime to the number of bits for one cycle of the linear feedback shift register is obtained from the initial value.
  • the derived value is multiplied by a value that is twice or more the number of bits for one cycle of the linear feed-back shift register, and the number of bits of the bit string output by the first linear feedback shift register is calculated.
  • a bit sequence for the calculated number of bits is output from the linear feedback shift register based on the initial value, and a bit sequence is extracted from the output bit sequence at each derived value interval to generate a new bit sequence.
  • the configuration of the linear feedback shift register is reconfigured to a configuration capable of outputting the new bit string, and pseudo random numbers are generated from the reconfigured linear feedback shift register based on the initial values.
  • the configuration of the linear feedback shift register can be dynamically changed based on the initial value, and a ⁇ -series bit string can be output from the changed linear feedback shift register. Therefore, the reader cannot obtain the configuration of the linear feedback shift register before reconstruction based on the pseudo-random number output from the pseudo-random number generator, and cannot decrypt the initial value or the secret key. As a result, high encryption strength can be obtained, and confidentiality of information can be maintained.
  • a hash function is applied to the initial value to obtain a hash value, and a prime number closest to the hash value is adopted as a derived value. It is characterized by the following.
  • the hash value is obtained by performing a hash function on the initial value, and the prime number closest to the hash value is adopted as the derived value, so that the difficulty of estimating the derived value can be increased. Confidentiality can be obtained.
  • a third aspect of the present invention is the pseudo random number generating method according to the first or second aspect, wherein the reconfiguration of the linear feedback shift register is performed using a Parlay-camp Massey algorithm.
  • the present invention makes use of a Parlay-camp Massey algorithm, which is capable of obtaining a linear feedback shift register from a bit string having a bit number of at least two cycles or more.
  • the invention of claim 4 is the pseudorandom number generation method according to any one of claims 1 to 3, wherein the invention of the sixth step has a seventh step of nonlinearly transforming the generated pseudorandom number. I do.
  • the generated pseudo-random numbers are non-linearly converted, so that the pseudo-random numbers can be given a non-linear life, and the encryption strength can be further improved.
  • Pseudo-random number ⁇ apparatus has n shift registers, the number of bits of one period (2 lambda n) - 1 single bit string to be capable of outputting a linear Fi one Dobakkushifu Value register, an initial value setting means for setting an initial value of the linear feedback shift register based on the secret key, and a predetermined operation processing which is relatively prime to the number of bits for one cycle of the linear feedback shift register from the initial value.
  • Derived value calculation means for obtaining a certain derived value, and one cycle of bits of the linear feedpack shift register. The value obtained by doubling the number is multiplied by the derived value to obtain the first linear feedpack shift register.
  • Bit number calculating means for calculating the number of bits of the bit string to be output by the star, and the bit strings corresponding to the calculated bit number are output from the linear feedback shift register based on the initial value.
  • Bit stream output means a new bit stream generation means for extracting a bit stream from the output bit stream at intervals of a derived value to generate a new bit stream, and a linear feed-pack shift register configured to output the new bit stream
  • a pseudo-random number generating means for generating a pseudo-random number based on the initial value from the reconstructed linear feedback shift register.
  • the bit sequence obtained by sampling the bit sequence of the M sequence every s bits is obtained when the number of bits ((2 ⁇ ⁇ ) 1 1) for one cycle of the M sequence and the derived value s are disjoint. ⁇ system of linear feedback shift register with other configurations A column is formed, and the fact that a linear feed-pack shift register can be obtained from a bit sequence having a bit number of at least two cycles or more is used.
  • an initial value of a linear feedback shift register having n shift registers and capable of outputting a bit string in which the number of bits for one cycle is ( 2 ⁇ ) 11 is set, From the initial value, the derived value that is relatively prime to the number of bits for one cycle of the linear feed-pack shift register is obtained from the initial value.
  • the derived value is multiplied by a value that is twice or more the number of bits for one cycle of the linear feed-pack shift register, and the number of bits of the bit string output by the first linear feedback shift register is calculated.
  • a bit sequence for the calculated number of bits is output from the linear feedback shift register based on the initial value, and a bit sequence is extracted from the output bit sequence at each derived value interval to generate a new bit sequence.
  • the configuration of the linear feedback shift register is reconfigured to a configuration capable of outputting the new bit string, and pseudo random numbers are generated from the reconfigured linear feedback shift register based on the initial values.
  • the configuration of the linear feedback shift register can be dynamically changed based on the initial value, and the bit stream of the ⁇ series can be output from the changed linear feedback shift register. Therefore, the reader cannot obtain the configuration of the linear feedback shift register before reconstruction based on the pseudo-random number output from the pseudo-random number generator, and cannot decrypt the initial value or the secret key. As a result, high encryption strength can be obtained, and confidentiality of information can be maintained.
  • a second linear feedback shift having a configuration capable of outputting a new bit string instead of the linear feedback shift register reconfiguring means.
  • a linear feedback shift register generating means for generating a register is provided, and the pseudorandom number generating means generates a pseudorandom number based on an initial value by a second linear feedback shift register.
  • the linear feedback shift register can be divided into the first linear feed pack shift register and the second linear feed pack shift register, and the confidentiality can be further improved.
  • a pseudo random number generator according to claim 7 has a selection random number bit string output unit that outputs a selection random number bit string having a predetermined number of bits based on a secret key, and has a larger number of bits than the selection random number bit string.
  • Amplified random number bit string selecting means capable of selecting a corresponding amplified random number bit string from among: , And.
  • a plurality of amplified random numbers in the random number table are output by outputting a selection random number bit string having a predetermined number of bits based on the secret key and referring to the random number table using the selection random number bit string. Since the corresponding amplified random number bit sequence is selected from the bit sequence and nonlinearly converted by the non-linear conversion means and output as a pseudo-random number, it has a larger number of bits based on the selection random number bit sequence having a small bit sequence. An amplified random number bit string can be obtained.
  • the random number bit string input to the non-linear conversion means can have a larger number of bits.
  • Speed can be increased.
  • the invention according to claim 8 is the pseudorandom number generator according to claim 7, wherein the secret key is given to generate an amplified random number bit string based on the secret key and store the bit string in a random number table. And a random number table initial setting unit for performing an initial setting of the random number table.
  • an amplified random number bit string is generated based on the secret key, stored in the random number table, and the initial setting of the random number table is performed. Can be changed. Therefore, the encryption strength can be increased.
  • the invention according to claim 9 is the pseudo random number generator according to claim 7 or 8,
  • a plurality of selection random number bit string output means are provided, a random number table is provided corresponding to each selection random number bit string output means, and an amplified random number bit string selection means is output from each selection random number bit string output stage.
  • Each of the random number bit strings for selection is referred to the corresponding random number table using the selected random number bit string, and the corresponding amplified random number bit string is selected from each of the random number tables.
  • the non-linear conversion is performed by a non-linear function using each wide random number bit string selected from each of the random number tables by the selection means, and the result is output as a pseudo random number.
  • each of the selection random number bit string output means outputs the selection random number bit string, and each of the random number tables is referred to by using each of the selection random number bit strings.
  • a pseudo random number is generated by performing a non-linear conversion by a non-linear function using each of the amplified random number bit strings, thereby improving the throughput of a portion that outputs a random number bit string which has conventionally been a bottleneck, and a pseudo random number generator. The overall throughput can be increased.
  • a plurality of random number tables are provided for each of the selection random number bit string output means, respectively, And an exclusive OR operation processing means for performing an exclusive OR operation on each of the width random number bit strings selected from the above for each selection random number bit string output means and outputting the result to the non-linear conversion means.
  • each width random number bit string selected from each random number table is subjected to exclusive OR operation for each selection random number bit string output means and then output to the non-linear conversion means, so that it is generated by the amplified random number bit string generation means. It is possible to increase the encryption strength as compared with the case where the random number bit string is used as it is.
  • the invention according to claim 11 is the pseudo random number generator according to claim 9 or 10, characterized in that the pseudo random number generator includes a random number table exchange means for exchanging each random number table at a predetermined timing.
  • the random number tables are exchanged at a predetermined timing, the random number table as a reference source can be changed. Therefore, fixed It is possible to increase the encryption strength as compared with the encrypted one.
  • the invention according to claim 12 is the pseudo random number generator according to claim 11, wherein the random number table replacing means selects a random number bit string for selection necessary to refer to each random number table. Each time the random number bit string output means outputs, the random number tables are exchanged.
  • the present invention shows one specific example of the predetermined timing described in the above-mentioned claim. According to this, each time the selection random number bit string output means outputs a selection random number bit string required to refer to each random number table, the random number tables are exchanged. Therefore, the random number table as the reference source can be changed in a short cycle, and the encryption strength can be further increased.
  • the random number table replacing means includes a random number table replacing random number equal to the number of each random number table. It generates random number table replacement random numbers as a table number of the random number table and assigns it to each random number table, and switches the order of the random number table according to a preset rule based on the table number.
  • the present invention shows a specific example of the random number table replacing means described above. According to this, a random number for replacing a random number table is generated, added to each random number table as a table number of a random number table, and the order of the random number table is changed based on the table number assigned.
  • the order of the random number table can be changed easily and quickly, the throughput on the upstream side can be improved as compared with the non-linear conversion means, and the throughput of the non-linear conversion means can be approximated, and the throughput of the entire pseudo-random number generator can be reduced. Speed can be increased.
  • the invention according to claim 14 is a pseudo-random number generation program for causing a computer to function as the following means, and outputs a random number bit string for selection having a predetermined number of bits based on a secret key.
  • This is a program for functioning as non-linear conversion means for non-linearly converting the random number bit string selected by the selection means and the amplified random number bit string selection means by a non-linear function and outputting as a pseudo random number.
  • a plurality of amplified random numbers in the random number table are output by outputting a selection random number bit string having a predetermined number of bits based on the secret key and referring to the random number table using the selection random number bit string. Since the corresponding amplified random number bit sequence is selected from the bit sequence and nonlinearly converted by the non-linear conversion means and output as a pseudo-random number, it has a larger number of bits based on the selection random number bit sequence having a small bit sequence. An amplified random number bit string can be obtained.
  • the random number bit string input to the non-linear conversion means can have a larger number of bits.
  • a secret key is given to generate an amplified random number bit string based on the secret key, and the sequence is stored in a random number table.
  • the computer is caused to function as random number table initial setting means for performing initial setting of the random number table.
  • an amplified random number bit string is generated based on the secret key, stored in the random number table, and the initial setting of the random number table is performed. Can be changed. Therefore, the encryption strength can be increased.
  • the invention according to claim 16 is the pseudo random number generation program according to claim 14 or 15, wherein a plurality of selection random number bit string output means are provided, and the random number table is selected from each selection random number bit string output means.
  • the amplification random number bit string selecting means uses the random number bit strings output from the selection random number bit string output means to output the random number corresponding to each selection random number bit string output means.
  • Each non-linear conversion means refers to each table and selects a corresponding amplified random number bit string from each random number table. It is characterized in that nonlinear conversion is performed by a nonlinear function using each amplified random number bit string selected from the table and output as a pseudo random number.
  • each of the selection random number bit string output means outputs the selection random number bit string, and each of the random number tables is referred to by using each of the selection random number bit strings.
  • a pseudo random number is generated by using each amplified random number bit sequence and performing a non-linear transformation using a non-linear function, thereby outputting a random number bit sequence upstream of the non-linear conversion means which has conventionally been a bottleneck.
  • the throughput of the pseudo-random number generator can be increased, and the throughput of the pseudo-random number generator can be increased.
  • a plurality of random number tables are provided for each of the selection random number bit string output means, and each random number bit is selected by the amplified random number bit string selection means.
  • the computer is made to function as exclusive-OR operation processing means for performing exclusive-OR operation on each amplified random number bit string selected from the table for each selection random number bit string output means and outputting the result to the nonlinear conversion means.
  • each amplified random number bit string selected from each random number table is subjected to exclusive OR operation for each selection random number bit string output means and then output to the non-linear conversion means, so that it is generated by the amplified random number bit string generation means. It is possible to increase the encryption strength as compared with the case where the random number bit string is used as it is.
  • the invention according to claim 18 is the pseudorandom number generation program according to claim 16 or 17, wherein the computer is caused to function as a random number table exchange means for exchanging the random number tables at a predetermined timing. It is characterized by. According to the present invention, the random number tables are replaced with each other at a predetermined timing, so that the random number table serving as a reference source can be changed. Therefore, the encryption strength can be increased as compared with the fixed one.
  • the random number table exchange means selects a random number bit string for selection necessary for referring to each random number table.
  • the bit string output means outputs, the random number tables are exchanged.
  • the present invention shows one specific example of the predetermined timing described in the above-mentioned claim. According to this, each time the selection random number bit string output means outputs a selection random number bit string required to refer to each random number table, the random number tables are exchanged. Therefore, the random number table as the reference source can be changed in a short cycle, and the encryption strength can be further increased.
  • the invention according to claim 20 is the pseudorandom number generation program according to claim 18 or claim 19, wherein the random number table replacing means includes a random number table replacing random number equal to the number of each random number table.
  • the method is characterized in that a random number for replacing the random number table is assigned to each random number table as a table number of the random number table, and the order of the random number table is changed based on the table number according to a preset rule.
  • the present invention shows a specific example of the above random number table replacing means. According to this, a random number for replacing a random number table is generated, added to each random number table as a table number of a random number table, and the order of the random number table is changed based on the table number assigned. Therefore, the order of the random number table can be changed easily and quickly, the throughput on the upstream side can be improved more than the non-linear conversion means, and the throughput of the non-linear conversion means can be approximated, and the throughput of the entire pseudo-random number generator can be increased. Can be
  • FIG. 1 is a diagram illustrating a pseudo random number generator 1 according to the present embodiment.
  • a non-linear compiler type pseudo random number generator 1 will be described as an example.
  • the pseudo random number generator 1 includes an initial value setting unit (not shown) for setting an initial value based on a secret key given by a user, and a pseudo random number based on the initial value received from the initial value setting unit. And a plurality of pseudo-random number generators 10 for generating the pseudo-random numbers, and non-linear transformations respectively connected to the output sides of the plurality of pseudo-random number generators 10 for nonlinearly converting the pseudo-random numbers output from the respective pseudo-random number generators 10 It has a part 20.
  • the initial value setting unit converts the secret key given by the user into a bit string, A process of dividing the number into the number of generators 10 and generating initial values to be assigned to the linear feedpack shift registers 11 of the pseudorandom number generator 10 described later is performed.
  • the pseudo random number generation unit 10 has L elements arranged in parallel with each other, and each has a linear feedpack shift register 11 and a linear feedpack shift register reconstructing means 12.
  • the linear feedback shift register 11 has n shift registers capable of storing 1-bit information and an exclusive OR operation circuit, as in the case of the prior art.
  • the number of bits of one period (2 ⁇ ⁇ ) - 1 or the bits ⁇ IJ is previously set to the output possible a so-called M-sequence.
  • FIG. 2 illustrates an initial polynomial of linear feedback shift register 11 in the present embodiment.
  • Initial polynomial is a characteristic polynomial that is pre-configured to output the M-sequence, (that represents the " ⁇ " in FIG. 2)
  • exponent 1 Attribute indicates the number of shift registers, two items The subsequent exponents indicate the connection positions connected to the exclusive OR operation circuit.
  • the first-stage linear feedback shift register ll (LFSR 1) has 13 1 shift registers, and the eighth, third, and second shift registers are exclusive-ORed by feedback taps. It is connected to.
  • the number n of shift registers is set to a prime number.
  • the linear feedback shift register 11 outputs 2 ms bit strings, and extracts the bit strings at intervals of the derived value s from the 2 ms bit strings to generate a new bit string. Then, the configuration of the linear feedback shift register 11 is changed by the Burleigh Camp Massey algorithm using the new bit string.
  • the case where the number of bits of the bit string output from the linear feedback shift register 11 is 2 ms is described as an example, but if the number of bits of the new bit string is 2 m or more, Since the minimum equivalent linear feedback shift register can be obtained, it is sufficient that the number is 2 ms or more.
  • the Burleigh camping algorithm is to obtain a bit string with more than twice the number of shift registers n (linear complexity) of the linear feedback shift register 11 and output that bit string. It is an algorithm that can obtain the smallest possible linear feedback shift register.
  • the Burleigh Camp Massey algorithm is described in detail in, for example, Reference 1, “Introduction to Cryptography Theory (2nd Edition)”, Kyoritsu Shuppansha, Eiji Okamoto, published on April 10, 2002.
  • an initial value is set by the initial value setting unit (step S1).
  • the initial value is set by dividing the secret key given by the user by a predetermined calculation process.
  • the initial value is set as follows.
  • the initial value is to divide the secret key “ABCDEFGHI JKLMN ⁇ P” into two characters “AB”, “CD”, ⁇ , “OP” ', and fill the remaining shift registers with embedded characters (P adding).
  • the above initial value setting method is one of the embodiments, and may be set by another method.
  • each initial value is input to each pseudo random number generation unit 10 and set in the shift register of the linear feed pack shift register 11.
  • step S2 to S6 a process for reconfiguring the configuration of the linear feedback shift register 11 is performed by the linear feedback shift register reconfiguring means 12 (steps S2 to S6).
  • a derived value s which is relatively prime to the number m of bits for one cycle of the linear feedback shift register 11 is calculated from an initial value by a predetermined arithmetic processing (step S 2).
  • a hash function such as MD5 (Message Digest 5) is applied to the initial value to obtain a hash value, and a prime number that is closest to the hash value is employed. Therefore, the degree of difficulty in estimating the derived value can be increased, and higher confidentiality can be obtained.
  • the derived value s may be obtained from the initial value and may be relatively prime to the number of bits m, and is not limited to the value obtained by the above calculation method.
  • the predetermined arithmetic processing must be an arithmetic processing that can satisfy one-wayness.
  • step S3 the number of bits 2ms of the bit string output from the linear feedback shift register 11 is calculated (step S3).
  • bit string having a bit number of 2 ms is output from the linear feedback shift register 11 based on the initial value (step S4), and a new bit string is generated from the bit string (step S5).
  • the new bit string is composed of bit strings extracted from the 2 ms bit string at intervals of the derived value s , and the number of bits is 2 m.
  • bit system IJ in which the output sequence is sampled every s bits of the bit sequence of the M sequence has another configuration if the number of bits m in one cycle of the M sequence and the derived value s are relatively prime. Since this is an M-sequence of a linear feedback shift register, this new bit system is also an M-sequence.
  • the configuration of the linear feedback shift register 11 is reconfigured based on the new bit sequence (step S6).
  • the reconstruction of the linear feedback shift register 11 is performed using the Burleigh Camp Massey algorithm. According to the Burleigh Camp Massey algorithm, if there is a bit string having a bit number of at least two cycles or more, an equivalent and smallest linear feedback shift register capable of outputting such a bit string can be obtained.
  • the characteristic polynomial of the linear feedback shift register is derived from the new bit string having a number, and reconstruction is performed.
  • the linear feedback shift register 11 after reconstruction has the same order and characteristic polynomial of a different connection as before reconstruction, and can output a different M-sequence than before reconstruction when given the same initial value. Having a configuration.
  • a pseudo random number is generated from the reconstructed linear feedback shift register 11 based on the initial value. Is performed (step S7). As a result, a pseudo-random number of an M sequence different from that before the reconstruction is generated from the pseudo-random number generation unit 10.
  • the pseudo-random numbers output from the pseudo-random number generation units 10 are input to the non-linear conversion unit 20, and the non-linear conversion unit 20 performs the non-linear conversion based on a predetermined non-linear function f (x). (Step S8).
  • the pseudorandom number can be given a non-linear property, and the encryption strength can be further improved.
  • the configuration of the linear feedback shift register 11 can be easily and dynamically changed based on the initial value, and the M sequence can be output even after the change. Can be. Therefore, the reader cannot obtain the configuration of the linear feedback shift register before the reconstruction.
  • the existing cryptanalysis method that has been established based on the premise that the configuration of the linear feedback shift register is known is not established. Therefore, high signal strength can be obtained, and confidentiality of information can be maintained.
  • the non-linear compiler type pseudo-random number generator 1 has been described as an example.
  • the present invention is not limited to the non-linear compiler type pseudo-random number generator 1 and may be a pseudo-random number generator using a linear feed-pack shift register.
  • it may be used for a pseudo-random number generator used in a block type encryption method.
  • step S6 instead of reconfiguring the configuration of the linear feedback shift register 11 based on the new bit sequence, a second linear feedback shift register having a configuration capable of outputting the new bit sequence is generated.
  • step S7 a pseudorandom number may be generated based on the initial value by the second linear feedpack shift register.
  • the linear feedpack shift register can be divided into two, and the confidentiality can be further improved.
  • the pseudo-random number generator 1 according to the first embodiment may be configured by any of software and hardware.
  • FIG. 4 is an explanatory diagram schematically showing functions of the pseudorandom number generator 1 in the second embodiment.
  • the pseudo random number generator 1 according to the present embodiment is a non-linear compiler type pseudo random number generator 1 realized by executing a pseudo random number generation program on computer hardware.
  • the pseudo random number generator 1 includes a random number bit string output unit 50, a random number bit string amplification unit 60, and a non-linear conversion unit 80.
  • the random number bit string output section 50 includes ⁇ selection random number bit string output means 51.
  • the selection random number bit string output means 51 to 51 ⁇ continuously outputs a selection random number bit string having N i bits based on an L k bit secret key K given by a user, For example, it is composed of a linear feedback shift register.
  • the random number bit string amplifying section 60 is configured to output an N o -bit amplified random number bit string having a bit number larger than N i bits by giving a N i -bit selection random number bit string.
  • a table section 61 and exclusive OR operation processing means 63 are provided.
  • the random number table section 61 is composed of ⁇ (hereinafter simply referred to as “a j3”) random number tables 62 storing (28 N i) random number bit strings. Then, as shown in FIG. 4, three (plural) random number tables 62 are provided corresponding to the respective random number bit string output means 51 for selection.
  • FIG. 5 is a schematic diagram illustrating the configuration of one random number table. Each random number table 6 2 urchin by that shown in FIG.
  • the index It has a bit string storage section Ro provided in one-to-one correspondence with the number and capable of storing the above-mentioned amplified random number bit string.
  • the selection random number bit string output from the output unit is selected as an argument, and the index number of the corresponding index part R i is selected, and the index number corresponding to the index number is selected. It is configured such that an amplified random number bit string of No bits can be selected from the random number bit string storage unit Ro.
  • the exclusive-OR operation processing means 63 performs exclusive-OR operation on the ⁇ amplified random number bit strings extracted by referring to the random number table 6 Sie 2 ⁇ to each of the selection random number bit string output means 51. Arithmetic processing is performed, and the amplified random number bit string is output to the non-linear converter 80. As a result, instead of outputting the amplified random number bit string read from the random number tables 62 to 62 ⁇ to the nonlinear conversion section 80 as it is, the encryption strength is prevented from being dependent on the amplified random number bit string itself, and the encryption strength is prevented. Is further improved.
  • FIG. 6 is a conceptual diagram illustrating each component included in the random number bit string amplifying unit 60. As shown in FIG.
  • the random number bit string amplifying section 60 includes an amplified random number bit string selecting means 64 as its internal mechanism. ⁇ random number bit string selection hand stage 6 4, each selection random number bit string output section 5 1 - 5 1 reference each random number table 6 2-6 2 respectively for selection random number bit string outputted from the ⁇ as an argument, the argument It is configured to select an amplified random number bit string from the bit string storage section Ro corresponding to an index number having a value equal to.
  • the random number bit string width section 60 is set in the random number table section 61 by the random number table initial setting section 65 for initializing the random number table section 61 and the random number table initial setting section 65.
  • An amplified random number bit string generating means 66 for generating an amplified random number bit string is provided.
  • the random number table initial setting means 65 divides the random number bit string generated by the amplified random number bit string generating means 66 into N o bits, and stores all the random number bit string storage sections R o in each of the random number tables 6 2 6 2 ⁇ 0.
  • the random number table 6 2 corresponding to the first selection random number bit string output means 51 is used for the a-th selection random number bit string output means 5 1 ⁇ . It is configured to store up to the corresponding random number table 62 in order. '
  • the amplified random number bit string generating means 66 outputs a random number bit string based on the secret key ⁇ .
  • RC 4 S yppetric Streap Cipher made by RSAD ata Security Inc.
  • any other device primarily a stream-type cipher that can output a pseudo-random bit sequence at high speed, such as a normal linear feed-pack shift register, may be used.
  • the random number bit string ⁇ 6 0 a random number table interchanged example means 6 7 for performing processing to switch the order of the random number table 6 2 ⁇ 6 2 alpha at a predetermined timing, the random number table swap
  • the means 67 is provided with a random number generating means 68 for changing the order of the random number table.
  • the random number table replacement means 67 is generated by the replacement random number generation means 68.
  • the assigned random numbers for replacement are sequentially assigned to the random number tables 6 2 i to 6 2 ⁇ 0 in the order in which they were generated as table numbers of the random number table, and the random number table of the random number table is determined based on the assigned random numbers.
  • the order is changed, and the order of the amplified random number bit string in the random number table section 61 is changed in table units.
  • the replacement random number generation means 68 performs a process of generating a random number table replacement random number based on an arbitrary secret key ⁇ 0.
  • the random number bit string output unit 50 outputs ⁇ random numbers having ⁇ i bits. Each time a random number bit string for selection is input, [ ⁇ ] 3 replacement random numbers are generated.
  • a value obtained by extracting L k bits from the amplified random number bit string output from the amplified random number bit string generating means 66 given the secret key ⁇ is used as the arbitrary secret key # 0.
  • the present invention is not limited to this. For example, it may be generated by other means or may be separately input by the user.
  • the non-linear converter 80 has a first-order uncorrelated non-linear function f (x) with ⁇ input and 1 output, and nonlinearly converts the ⁇ amplified random bit streams output from the random bit stream amplifier 60. Then, it is configured to output one random number bit string having ⁇ bits as a pseudo-random number ⁇ .
  • the secret key ⁇ is selected from 128 bits, 256 bits, 512 bits, and 104 bits, and the number of random number bit string output means 51 for selection and the The number of random number tables corresponding to the random number bit string output means 51 and the number of bits N i of the random number bit string for selection are selected within a range that a value multiplied by each other is equal to the number of bits L k of the secret key K. Is done.
  • FIG. 7 is a flowchart for explaining a pseudo random number generating method according to the present embodiment.
  • the random number bit string output unit 50 uses the secret key K to select the random number bit string output unit 5.
  • An initial value of 1 is set (step S12).
  • the random number bit string output means 51 for selection is constituted by a linear feed-pack shift register, the initial value stored in each shift register is set based on the secret key K.
  • the random number table initial setting means 65 then initializes the random number table section 61 (step S13).
  • the secret key K is given to the wide random number bit string generating means 66, and a random number bit string is generated at high speed.
  • the random number bit string generated by the amplified random number bit string generating means 24 is divided for each No bit by the random number table initial setting means 65, and each random number table 6 2 2 ⁇ 0 is obtained as an amplified random number bit string. Are sequentially stored in all random number bit string storage units R ⁇ . Thus, the initial setting of the random number table section 61 is performed in advance by giving the secret key ⁇ .
  • the apparatus enters a standby state. Then, triggered by the input to the plaintext encryption device (see the related art), the amplification of the random number bit string is started (steps S14 to S16).
  • the selection random number bit string output means 51 outputs i3 selection random number bit strings each having N i bits, which is the number of the random number table, and stores them in the random number bit string amplification unit 60 ( Step S14).
  • Step S 1 5 perform the order switching process of the random number table 6 2 ⁇ 6 2 alpha 3 by the random number table sequentially interchanging means 2 6 (Step S 1 5).
  • Step S 1 5 perform the order switching process of the random number table 6 2 ⁇ 6 2 alpha 3 by the random number table sequentially interchanging means 2 6 (Step S 1 5).
  • Step S 1 5 perform the order switching process of the random number table 6 2 ⁇ 6 2 alpha 3 by the random number table sequentially interchanging means 2 6 (Step S 1 5).
  • a number of replacement random number by replacement for random number generation means 6 8 as the table number for order in replacement of the random number table, to impart to the random number table 6 2 ⁇ 6 2 ⁇ ⁇ .
  • These table numbers are sequentially given from the random number table 62 i in the order of occurrence.
  • table numbers from 1 to ⁇ ] 3 are assigned to the random number tables 62 to 62 in no particular order. Then, a process of replacing the order of the wide random number bit string in the random number table unit 61 in each random number table is performed based on the assigned table number.
  • the amplified random number bit strings stored in the random number bit string storage section R o of the random number table ′ section 61 are replaced in units of each random number table according to a preset rule such as ascending order or descending order.
  • the amplified random number bit string selecting means 6 4 When the order interchanged processing of the random number table 6 2 E to 6 2 alpha beta is completed, the amplified random number bit string selecting means 6 4, amplification answer from the random number table 6 within S i S 2 alpha An amplified random number bit string selection process of selecting a random number bit string is performed (step S16). Amplifying the random number bit string selecting means 6 4, using the respective selection ⁇ random number bit string stored in the random number bit ⁇ section 2 0, corresponding random number table 6 2 i ⁇ 6 2 ⁇ ⁇ were referenced respectively, the random number Table 6 Select the corresponding amplified random number bit string from SS2.
  • the exclusive OR operation processing means 63 When the selection process of the amplified random number bit string is completed, the exclusive OR operation processing means 63 then performs an exclusive OR operation process (step S 17).
  • the exclusive OR operation processing means 63 performs an exclusive OR operation on each of the selection random number bit string output means 51 on the ⁇ jS amplified random number bit strings read from each random number table 6 SS 2 ⁇ 0. . As a result, ⁇ new amplified random number bit strings having No bits are generated.
  • the non-linear conversion unit 80 non-linearly converts the ⁇ -bit amplified random number bit sequence of No bits based on a preset non-linear function, and outputs one random bit sequence having ⁇ ⁇ bits as a pseudo-random number. .
  • the pseudo-random number is output from the non-linear converter 80, the process returns to step S14 again, and the processes from step S14 to step S18 are repeated. Then, pseudorandom numbers are generated as needed to convert plaintext to ciphertext.
  • the pseudorandom number generator 1 by referring to the random number table based on the N i -bit selection random number bit string output by the selection random number bit string output means 51, N having a bit number larger than N i bits An o-bit amplified random number bit string can be supplied to the nonlinear conversion unit 80. Therefore, it is possible to improve the throughput on the upstream side of the nonlinear conversion unit 80 which has conventionally been a bottleneck, and to approach the throughput of the nonlinear conversion unit 80. Therefore, the overall throughput of the pseudo random number generator 1 can be increased.
  • the pseudo-random number generator 1 refers to a plurality (j3) of random number tables using the random number bit string output from the one selection random number bit string output means 51 and selects from each random number sample. A process of performing an exclusive OR operation on the random number bit string is performed. Therefore, unlike the case where the amplified random number bit string read from the random number table 61 is directly output to the non-linear converter 80, the encryption strength is prevented from being dependent on the amplified random number bit string generation means 66 itself, and the encryption strength is further improved. Let me.
  • FIG. 8 is a conceptual diagram schematically showing the pseudo random number generator 1 of the present embodiment
  • FIG. 9 is a conceptual diagram schematically showing the random number table section 61.
  • each set value (parameter) is set as follows will be described as an example.
  • each selection random number bit string output means 51 reconfigures the linear feedback shift register 53 based on a secret key ⁇ ⁇ given by the user, and outputs the linear feedback shift register after the reconfiguration. 5 3 ′ It is configured to output a sequence of data.
  • the selection random number bit string output means 51 has an initial value setting means 12, a linear feedback shift register 53, and a linear feedback shift register reconstructing means 14.
  • the initial value setting means 12 sets an initial value based on a secret key K given by a user, converts the secret key K into a bit string, and sets the initial value in the shift register of the linear feedback shift register 53 as an initial value. It is configured to be assigned to.
  • the initial value setting means 12 uses RC4 S y p pt r i c S t r e a p C i p h e r (manufactured by RSA Da t a S e c u r t y I n c.), And is shared with the amplified random number bit string generating means 66.
  • the linear feedpack shift register 53 has n shift registers capable of storing 1-bit information and an exclusive OR operation circuit, as described in the background art. Then, in the present embodiment, a bit string in which the number of bits m for one cycle is (2 ⁇ n) -1 is set in advance to a configuration capable of outputting a so-called ⁇ sequence.
  • FIG. 11 illustrates an initial polynomial of the linear feedback shift register 53 in the present embodiment.
  • the initial polynomial is a characteristic polynomial that is set in advance so as to output a ⁇ sequence.
  • the exponent of one item indicates the number of shift registers, and the exponent of the second and subsequent items is connected to an exclusive OR circuit. Indicates the connection position.
  • the first-stage linear feedback shift register (LFSR1) 53 has 129 shift registers, and the 80th, 8th, and 1st shift registers are connected to the exclusive OR operation circuit by feedback taps. It indicates that In the present embodiment, the number ⁇ of shift registers is set to all prime numbers.
  • the linear feedback shift register reconfiguring means 14 reconfigures the linear feedback shift register 53 by dynamically changing the configuration of the linear feedback shift register 53 using the secret key ⁇ .
  • It is an M-sequence of a linear feedback shift register having the following characteristics.Also it is possible to output the bit sequence from the bit sequence having the number of bits of at least two cycles or more by the Parley-Jump Massey algorithm.
  • the linear feed-pack shift register 53 is reconfigured by utilizing the fact that the characteristic polynomial of the register can be obtained.
  • the linear feedback shift register reconstructing means 14 calculates a derived value s from the initial value given by the initial value setting means 12, and calculates the derived value s and a bit for one cycle of the linear feedback shift register 53.
  • a 2 ms bit string is output from the linear feedback shift register 53, and a bit string is extracted from the 2 ms bit string at every interval of the derived value s to generate a new bit string. Then, using the new bit string, the configuration of the linear feedback shift register 53 is changed by the Burleigh Camp Massey algorithm.
  • the Burleigh-Camp Massey algorithm is a linear feedback shift register 53. By obtaining a bit string that has twice or more the number of shift registers n (linear complexity) of 53, the bit string can be output. This is an algorithm that can obtain the equivalent minimum linear feedback shift register. For details on the Burleigh Camp Massey algorithm, see, for example, Reference 1 “Introduction to No.1 Theory (2nd Edition)”, Kyoritsu Shuppansha, Eiji Okamoto, published on April 10, 2002, I have.
  • FIG. 12 is a flowchart for explaining the reconfiguration processing of the linear feedback shift register 53.
  • an initial value is set by the initial value setting means 12 (step S41).
  • the initial value is set based on the L k-bit secret key K given by the user.
  • the initial value setting means 1 and 2 the initial value is When set, its initial value is set in the shift register of the linear feedpack shift register 53.
  • a derived value s which is relatively prime to the number of bits m for one cycle of the linear feed-pack shift register 53 is calculated from the initial value by a predetermined arithmetic processing (step S42).
  • a hash function such as MD5 (Message Digest 5) is applied to the initial value to obtain a hash value, and the prime number closest to the hash value is used.
  • the derived value s may be obtained from the initial value and may be mutually prime with the number of bits m, and is not limited to that obtained by the above calculation method.
  • MD5 Message Digest 5
  • the predetermined arithmetic processing must be an arithmetic processing capable of satisfying one-wayness.
  • the number of bits of the bit string to be output from the linear feedback shift register 53 is calculated as 2 ms (step S43).
  • bit string having 2 ms bits is output from the linear feedback shift register 53 based on the initial value (step S44), and a new bit string is generated from the bit string (step S45).
  • the new bit string is composed of bit strings extracted at intervals of the derived value s from 2 ms bit strings, and the number of bits is 2 m.
  • bit sequence obtained by sampling the bit sequence of the M sequence every s bits is a linear feedback having another configuration if the number of bits m for one cycle of the M sequence and the derived value s are relatively prime. Since the shift register becomes an M sequence, this new bit sequence also becomes an M sequence.
  • the configuration of the linear feed-pack shift register 53 is reconfigured based on the new bit string (step S46).
  • the reconstruction of the linear feedback shift register 53 is performed using the Parlay Camp Massey algorithm. According to the burst camping algorithm, if there is a bit string having a bit number of at least two cycles or more, an equivalent minimum linear filter capable of outputting such a bit string is provided. Since the feedback shift register 53 can be obtained, a new characteristic polynomial of the linear feedback shift register 53 is derived from a new bit string having 2 m bits, and reconstruction is performed.
  • the linear feedpack shift register 5 3 ′ after reconstruction has the same order and different connection characteristic polynomials as those before reconstruction, and when given the same initial value, gives an M-sequence different from that before reconstruction. It has a configuration that can output.
  • Step S47 a process of generating a random number bit sequence from the reconfigured linear feedback shift register 53 'based on the initial value is performed.
  • the random number bit string output unit 50 outputs an M sequence random number bit string different from that before the reconstruction.
  • step S46 instead of reconfiguring the configuration of the linear feedback shift register 53 based on the new bit sequence, a second linear feedback shift register having a configuration capable of outputting the new bit sequence is generated.
  • step S47 a random number bit string may be generated based on the initial value by the second linear feedback shift register. According to this, the linear feedback shift register 53 can be divided into two, and confidentiality can be further improved.
  • the selection random number bit string output means 51 can easily and dynamically change the configuration of the linear feedback shift register 53 based on the initial value, and can output an M sequence even after the change. Therefore, the attacker cannot obtain the configuration of the linear feedback shift register 53 before the reconfiguration. As a result, the existing cryptanalysis method that has been conventionally established based on the premise that the configuration of the linear feedback shift register 53 is known no longer holds. Therefore, high encryption strength can be obtained, and confidentiality of information can be maintained.
  • FIG. 10 is a flowchart for explaining a pseudorandom number generation method in the present embodiment.
  • the initial value of the linear feedback shift register 53 before configuration is set (step S21).
  • the linear feedpack shift register 53 is reconfigured based on the initial value (step S22), and the initial value is set in the reconfigured linear feedpack shift register 53 '(step S22). twenty three ) .
  • This initial value is set for all the random number bit string output means 11 i to l 18 .
  • the random number bit string amplifying unit 60 performs an initial setting of the random number table unit 61 (step S24).
  • the secret key K is given to the amplified random number bit string generation means 66, and a process of generating a random number bit string is performed at high speed.
  • the amplified random number bit string generation means 6 6 and the random number bit string output means 51 for selection are shared with the initial value setting means 12 of the random number bit output means 51.Therefore, the random number set output as the initial value of the linear feedback shift register 53 is not output separately. Use the columns as they are.
  • step S21 to S24 When the above initial value setting step is completed (steps S21 to S24), the apparatus enters a standby state. Then, the process shifts to a process of generating a pseudo random number (steps S25 to S27), triggered by an input to a plaintext encryption device (see the related art).
  • a process of outputting a selection random number bit string to each of the selection random number bit string output means 51 to 18 and storing the same in the buffer of the random number bit string amplification unit 60 is performed.
  • the selection random number bit string output means 51 1 to 5 18 output an 8-bit selection random number bit string, respectively (step S 27), and the number is output to each selection random number bit string output means 1.
  • step S 2 In Y es
  • 16 replacement random numbers are generated by the replacement random number generating means 68 based on the secret key KO (step S28), and the order of the random number table is switched (step S29).
  • the replacement of the order of the random number table 62I ⁇ 62 16 on the basis of the granted table number.
  • a process of changing the table numbers in descending order so that the table numbers are arranged in the order of No. 1 to No. 16 is performed on the random number bit string output means for selection 51 to 1 n .
  • the order of the amplified random number bit string in the random number table section 61 is randomly changed in units of random number tapes.
  • step S 30 ⁇ S 32 the process of selecting the amplified random bit sequence corresponding from each random number table 6 Si S 2 within 16 is performed (step S 30 ⁇ S 32).
  • the random number table 62 is referenced using the first selection random number bit string output from the selection random number bit string 11 and stored in the buffer as an argument (step S32). Then, an index number having a value equal to the argument is selected, and an amplified random number bit string stored in the random number bit string storage Ro corresponding to the index number is selected.
  • the selection random number bit string output from the selection random number bit string output means 51 and stored in the buffer as corresponding to the random number table 62i is “000000 11”, this is regarded as an 8-digit binary number, and a decimal number To get the argument "3”.
  • the random number table 62 is referred to, and the amplified random number bit string “0101 10101101 1101 10” stored in the random number bit string storage Ro having the index number R 0 of “3” is selected.
  • step S 31 When each selecting amplified random bit sequence from the random number table 62 i and the random number table 62 2 (Ye s in step S 31), performs an XOR operation processing of these two amplifying random number bit string (step S 33), Generate one new amplified random number bit string with 16 bits.
  • step S 30 the same processing is performed for each of the random number tables 62 3 to 62 16 (Yes in step S 30).
  • the new amplified random number bit string is output to the non-linear conversion unit 80, and the non-linear conversion is performed. Move to the stage.
  • the nonlinear conversion is performed by the nonlinear function f (x) (step S34). Get one random bit string with 16 bits. Then, the necessary number of pseudo-random numbers is obtained by repeatedly executing the processing of steps S25 to S34.
  • the computer used for the experiment was CPU: Pentiun (registered trademark) 4 (1.7 GHz), memory: 256 MB. Each set value is the same as in the above-described embodiment.
  • the experiment was performed with the secret key K 0 used in the replacement random bit string generation means 28 being fixed to the following in hexadecimal notation.
  • FIG. 13 is a table showing the measurement results of the throughput.
  • the conventional type in the table is a conventional non-linear compiler-type pseudo random number generator as shown in FIG. 17 constructed using eight linear feed-pack shift registers 53 and a non-linear conversion section 80. Is shown.
  • the average throughput of the pseudorandom number generator 1 was improved from the average throughput of the linear feedpack shift register 53 itself to the average throughput of the nonlinear conversion unit 80.
  • it can be seen that it is approximately 170 times that of the conventional type (116.4 Mbps / sec800.680 Mbps / sec 171.176 . Therefore, it can be seen from the throughput measurement results that the use of the random number table 62 is effective in increasing the speed of the pseudo random number generator 1.
  • the throughput of the pseudo-random number generator 1 in the present embodiment is represented by the following equation (1). [Formula]
  • T 1 indicates the average throughput of one linear feedback shift register 53
  • T 2 indicates the average throughput of RC 4 (amplified random number bit string generation means 66).
  • T3 indicates the average throughput of the random number table exchange processing by the random number table exchange means 67
  • ⁇ 4 indicates the average throughput of one random number table 62.
  • ⁇ 5 indicates the average throughput of the nonlinear conversion unit 80.
  • NIST pseudorandom number test tool
  • N 1 ST is a tool for testing randomness of data output from physical random numbers and pseudo-random number generators, and is a statistical package consisting of 16 tests. NIST is described in detail at http: crs nist.gov/rug.
  • Figure 14 is a table showing the NIST parameters used in this test. If the p-value output by performing various tests satisfies 0 ⁇ p-value ⁇ 1, it is considered that the test item passed. When the pseudo-random numbers of the pseudo-random number generator 1 according to the present example were tested, it was confirmed that all the test items passed.
  • Fig. 15 shows the NIST test results from this experiment.
  • the linear feedback shift register can be obtained from the bit string having the above number of bits, the configuration of the linear feedback shift register can be dynamically changed based on the initial value. M from feedback shift register A sequence bit string can be output.
  • the reader cannot obtain the configuration of the linear feedback shift register before reconstruction based on the pseudo-random number output from the pseudo-random number generator, and cannot decrypt the initial value or the secret key.
  • a high encryption strength can be obtained, and confidentiality of information can be maintained.
  • a random number bit string for selection having a predetermined number of bits is output based on a secret key, and the random number table is referred to using the random number bit string for selection. Since the corresponding random width bit string is selected from a plurality of amplified random number bit strings and nonlinearly converted by the non-linear conversion means and output as a pseudo-random number, a larger number of bits is provided based on the selection random number bit string having a small bit string. An amplified random number bit string can be obtained.
  • the random number bit string input to the non-linear conversion means can have a larger number of bits.
  • Speed can be increased.
  • FIG. 3 is a diagram illustrating a pseudo random number generator according to the present embodiment.
  • 5 is a flowchart illustrating an operation of the pseudo random number generator according to the present embodiment.
  • FIG. 4 is an explanatory diagram of a random number table part.
  • FIG. 6 It is a conceptual diagram explaining each component comprised in a random number bit string amplification part.
  • FIG. 5 is a flowchart illustrating a pseudo random number generation method according to the present embodiment.
  • FIG. 7 is a flowchart for explaining the reconstruction process of the linear feedback shift register.
  • FIG. 3 is a diagram illustrating a conventional sequential encryption method.
  • FIG. 3 is a diagram illustrating a pseudo random number generator of the encryption device.
  • FIG. 3 is a diagram simply illustrating a configuration of a general linear feedback shift register.
  • Linear feedback shift register reconstructing means Nonlinear converter
  • Linear feedback shift register reconstruction means Random number bit string amplifying unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

出力系列がM系列のビット列をs個ごとにサンプルしたビット列は、そのM系列の1周期分のビット数mと導出値sが互いに素であるときは、他の構成を有する線形フィードバックシフトレジスタのM系列になり、また、パートイキャンプマッセイアルゴリズムによって、少なくとも2周期分以上のビット数を有するビット列から最小で等価の線形フィードバックシフトレジスタを求めることができることを利用して、初期値に基づき線形フィードバックシフトレジスタ11の構成を容易かつ動的に変更する。

Description

明細書
疑似乱数発生方法及び疑似乱数発生器 [発明の属する技術分野]
本発明は、 暗号通信やデジタル署名などで利用する疑似乱数を発生させる疑似 乱数発生方法や、 疑似乱数発生器、 乱数発生プログラムに関する。
[従来の技術]
従来より、 有線や無線により情報通信を行う際に、 内容が第三者に漏れないよ うに情報を暗号ィ匕して送信することが行われている。 この暗号化方式の一つに逐 次暗号方式 (ストリーム暗号方式) がある。 逐次暗号方式は、 送信側と受信側で 同一の疑似乱数を発生させ、 送信側は疑似乱数のビット列と平文のビット列とを 用いて暗号文のビット列を作成し暗号文として受信側に送出し、 受信側は送信側 から受信した暗号文のビット列と疑似乱数のビット列とを用いて平文のビット列 を求め平文に復号化するものである。
第 1 6図は、 従来の逐次暗号方式を説明する図である。 送信側の暗号化装置 1 0 0は、 疑似乱数発生器 1 0 1と論理演算処理部 1 0 2を有しており、 受信側の 復号化装置 1 1 0は、 疑似乱数発生器 1 1 1と論理演算処理部 1 1 2を有してい る。
暗号化装置 1 0 0の疑似乱数発生器 1 0 1と複号化装置 1 1 0の疑似乱数発生 器 1 1 1は、 同一の秘密鍵を与えることによって互いに全く同一の疑似乱数を発 生する論理構造を有している。 また、 暗号化装置 1 0 0の論理演算処理部 1 0 2 と復号化装置 1 1 0の論理演算処理部 1 1 2は、 ビット単位で排他的論理和の演 算処理を行う。
第 1 7図は、 暗号化装置 1 0 0の疑似乱数発生器 1 0 1を説明する図である。 尚、 復号化装置 1 1 0の疑似乱数発生器 1 1 1については、 暗号化装置 1 0 0の 疑似乱数発生器 1 0 1と同一の構成を有するのでその詳細な説明を省略する。 疑似乱数発生器 1 0 1は、 非線形コンパイナ型の疑似乱数発生器 (Nonlinear Combiner Generator) であり、第 1 7図に示すように、並列に配置した複数の線 形フィードパックシフトレジスタ (Linear Feedback Shift Register;LFSR) 1 0 3と、非線形変換部 104とを有しており、各線形フィ一ドバックシフトレジス タ 103から出力したビット列を非線形変換して疑似乱数を発生させる。 本従来 例では、 各線形フィ一ドバックシフトレジスタ 103は、 1回のシフト動作でそ れぞれ 1ビット (Χ1、 Χ2、 · · · XL) を出力し、 非線形変換部 104は、 各 線形フィードバックシフトレジスタ 103から入力されたビット列をもとに 1ビ ットの疑似乱数を出力する構成を有している。 .
第 18図は、 一般的な線形フィードパックシフトレジスタ 103の構成を簡単 に説明する図である。 線形フィ一ドパックシフトレジスタ 103は、 1ビットの 情報を記憶できる複数のシフトレジスタ 105と、 複数の排他的論理和演算回路 106とを有し、 各シフトレジスタ 105の出力と各排他的論理和演算回路 10 6の一方の入力との間にはフィードバックタップ 107が接続されている。 フィ ードバックタップ 107 ( C n—い C n-2、 · · · C n) は、 1のとき結線を示し、
0のとき断線を示し、 それぞれが予め 1または 0に定められている。
このシフトレジスタ 105の個数を nとすると、 1つのシフトレジスタ 105 に注目したとき、 出力系列の最大周期は、 (2 Λ n) — 1となることが知られて おり、 この系列を M系列という。 (尚、 「2 Λ η」 は、 2の η乗 (2η) を意味す る。 以下、 指数部分は、 その前に 「Λ」 を付して示す。 )
例えば、 第 14図に示す線形フィ一ドパックシフトレジスタ 103の場合、 Μ 系列を生成する特性多項式は、 以下の式で表される。
C (X) = (X ^ η) + c η_1 (X Λ (η— 1) ) + · . - + c XX+ 1 上記の特性多項式で第 1項目の指数 nは線形フィ一ドバックシフトレジスタ 1 03の次数、 すなわちシフトレジスタの個数を示し、 2項目以降の指数部分は、 フィードバックタップによる結線位置を示している。 上記の式に示す特性多項式 が原始多項式となるようにすれば、 線形フィ一ドバックシフトレジスタは、 M系 列を出力する。
このような従来の非線形コンパイナ型疑似乱数発生器は、 ビット単位の論理演 算を基にした簡単なロジックで構成できるので、 いわゆるハードウェアでの実装 に適していると考えられている。
尚、 従来より、 線形フィードバックシフトレジスタからの出力を排他的論理和 等の演算処理によって変更することが提案されている(例えば、特許文献 1参照。)。 【特許文献 1】
特開平 6— 3 4 2 2 5 7号
【発明が解決しょうとする課題】
(第 1の解決課題)
しかしながら、 線形フィードバックシフトレジスタ 1 0 3は、 シフトレジスタ 数の 2倍の出力を観測することで、 線形フィ一ドバックシフトレジスタ 1 0 3の 構成、 すなわちシフトレジスタ数及び結線位置と、 初期値の全てを特定すること が可能である。 したがって、 構成が固定された線形フィードバックシフトレジス タ 1 0 3をそのまま疑似乱数努生器 1 0 1に用いるには、 暗号強度が弱く、 安全 性に問題がある。
また、 線形フィードバックシフトレジスタ 1 0 3は、 特性多 式の変更により シフトレジスタの結線位置や結線数を変更すると、 線形フィ一ドバックシフトレ ジスタの出力が M系列ではなく短周期となって暗号強度が低下するおそれがある ことから、 特性多項式は予め M系列を出力する値に固定されており、 線形フィー ドパックシフトレジスタの構成を簡単に変更することはできないと考えられてい る。
(第 2の解決課題)
また、 従来の非線形コンパイナ型疑似乱数発生器は、 線形フィードバックシフ トレジスタ 1 0 3で 1ビット単位の演算を連続して繰り返し実行しなければなら ない。 このような処理は、 ハードウェアでは得意とするところであり、 比較的高 速に処理できるが、 ソフトウェアでは苦手とするものであり、 ハードウェアの場 合と比較して処理速度が極端に遅くなる。
一方、 非線形変換部 1 0 4は、 論理積や排他的論理和などの単純な演算を実行 している。 したがって、 線形フィードバックシフトレジスタ 1 0 3のスループッ トが、 非線形変換部 1 0 4のスループットよりも下回り、発生器全体の中で乱数 ビット列を出力する部分、 すなわち線形フィードバックシフトレジスタ 1 0 3が ボトルネックになってしまう。 このため、 従来の非線形コンバイナ型疑似乱数発 生器は、 ソフトウェアで実装した場合にはハードウェアで実装した場合よりも全 体のスループットが低下するという問題があり、 ソフトウエアでは使用すること が困難であった。
また、 疑似乱数の暗号強度を十分に確保するためには、 線形フィードパックシ フトレジスタ 1 0 3のシフトレジスタ 1 0 5の数や、 線形フィ一ドバックシフト レジスタ 1 0 3の個数をある程度の数以上必要とする。しかし、スループットは、 線形フィ一ドバックシフトレジスタ 1 0 3のシフトレジスタ 1 0 5の数が増加す るほど、 或いは線形フィードバックシフトレジスタ 1 0 3の個数が増加するほど 低くなるという、相反する関係にある。 したがって、高い暗号強度を確保しつつ、 高いスループットを実現することは困難であった。
本発明は、 上述の第 1及び第 2の解決課題の少なくとも一方を解決すべくなさ れたものであり、 その目的は、 強い暗号強度を維持しつつ線形フィードパックシ フトレジスタの構成を容易かつ動的に変更することができ、 また、 十分に高い暗 号強度を確保しつつ、 より高いスループットを実現できる疑似乱数発生方法等を 提供することにある。
[課題を解決するための手段]
上記課題を解決する請求項 1に記載の発明による疑似乱数努生方法は、 n個の シフトレジスタを有し、 1周期分のビット数が (2 Λ η ) — 1個となるビット列 を出力可能な線形フィ一ドバックシフトレジスタの初期値を設定する第 1ステツ プと、 所定の演算処理により初期値から線形フィードバックシフトレジスタの 1 周期分のビット数と互いに素である導出値を求める第 2ステップと、 導出値と線 形フィードパックシフトレジスタの 1周期分のビット数を 2倍以上した値とを乗 算して、 第 1線形フィードバックシフトレジスタにより出力させるビット列のビ ット数を算出する第 3ステップと、 その算出したビット数分のビット列を線形フ イードバックシフトレジスタから初期値をもとに出力させる第 4ステップと、 そ の出力したビット列から導出値の間隔ごとにビット列を取り出して新ビット列を 生成する第 5ステップと、 その新ビット列を出力可能な構成に線形フィードバッ クシフトレジスタの構成を再構成する第 6ステップと、 再構成した後の線形フィ 一ドバックシフトレジスタから初期値をもとに疑似乱数を発生させる第 7ステツ プと、 を有することを特徵とする。 この発明は、 出力系列が M系列のビット列を s個ごとにサンプルしたビット列 は、 その M系列の 1周期分のビット数 (= ( 2 Λ η ) —1 ) と導出値が互いに素 であるときには、 他の構成を有する線形フィードバックシフトレジスタの Μ系列 を構成し、 また、 少なくとも 2周期分以上のビット数を有するビット列から線形 フィードパックシフトレジスタを求めることができることを利用するものである。 この発明によると、 η個のシフトレジスタを有し、 1周期分のビット数が (2 Λ η ) 一 1個となるビット列を出力可能な線形フィードバックシフトレジスタの 初期値を設定し、 所定の演算処理により初期値から線形フィードバックシフトレ ジスタの 1周期分のビット数と互いに素である導出値を求める。
そして、 導出値と線形フィードパックシフトレジスタの 1周期分のビット数を 2倍以上した値とを乗算して、 第 1線形フィ一ドバックシフトレジスタにより出 力させるビット列のビット数を算出し、 その算出したビット数分のビット列を線 形フィードバックシフトレジスタから初期値をもとに出力させ、 その出力したビ ット列から導出値の間隔ごとにビット列を取り出して新ビット列を生成する。 そして、 その新ビット列を出力可能な構成に線形フィードバックシフトレジス タの構成を再構成し、 再構成した後の線形フィードバックシフトレジスタから初 期値をもとに疑似乱数を発生させる。
これによれば、 線形フィードパックシフトレジスタの構成を初期値に基づいて 動的に変更することができ、 変更後の線形フィードバックシフトレジスタから Μ 系列のビット列を出力させることができる。 したがって、 解読者は、 疑似乱数発 生器から出力される疑似乱数に基づいて再構成前の線形フィードバックシフトレ ジスタの構成を得ることができず、 初期値や秘密鍵も解読することができない。 この結果、 高い暗号強度を得ることができ、 情報の秘匿性を保つことができる。 請求項 2の発明は、 請求項 1に記載の疑似乱数発生方法において、 初期値に対 してハッシュ関数を施してハッシュ値を求め、 そのハッシュ値に最も近似した素 数を導出値として採用することを特徴とする。
この発明によると、 初期値に対してハッシュ関数を施してハッシュ値を求め、 そのハッシュ値に最も近似した素数を導出値として採用するので、 導出値の推定 困難度を高めることができ、 より高度な秘匿性を得ることができる。 請求項 3の発明は、 請求項 1または 2に記載の疑似乱数発生方法において、 線 形フィードバックシフトレジスタの再構成は、 パーレイキャンプマッセイァルゴ リズムを用いて行われることを特徴とする。
この発明は、 少なくとも 2周期分以上のビット数を有するビット列から線形フ イードバックシフトレジスタを求めることができるという、 パーレイキャンプマ ッセィアルゴリズムを利用するものである。
請求項 4の発明は、 請求項 1〜 3のいずれかに記載の疑似乱数発生方法におい て、 第 6ステップの発明は、 発生させた疑似乱数を非線形変換する第 7ステップ を有することを特徴とする。 この発明によると、 発生させた疑似乱数を非線形変 換するので、 疑似乱数に非線形 1·生を与えることができ、 暗号強度を更に向上させ ることができる。
請求項 5に記載の発明による疑似乱数宪生器は、 n個のシフトレジスタを有し、 1周期分のビット数が ( 2 Λ n ) — 1個となるビット列を出力可能な線形フィ一 ドバックシフ トレジスタと、 秘密鍵に基づき線形フィ一ドバックシフトレジスタ の初期値を設定する初期値設定手段と、 所定の演算処理により初期値から線形フ イードバックシフトレジスタの 1周期分のビット数と互いに素である導出値を求 める導出値算出手段と、 線形フィ一ドパックシフトレジスタの 1周期分のビット. 数を 2倍以上した値と導出値とを乗算して、 第 1線形フィードパックシフトレジ スタにより出力させるビット列のビット数を算出するビット数算出手段と、 その 算出したビット数分のビット列を線形フィードバックシフトレジスタから初期値 をもとに出力させるビット列出力手段と、 その出力したビット列から導出値の間 隔ごとにビット列を取り出して新ビット列を生成する新ビット列生成手段と、 そ の新ビット列を出力可能な構成に線形フィードパックシフトレジスタの構成を再 構成する線形フィードバックシフトレジスタ再構成手段と、 再構成後の線形フィ 一ドバックシフトレジスタから初期値をもとに疑似乱数を発生させる疑似乱数発 生手段と、 を有することを特徴とする。
この発明は、 出力系列が M系列のビット列を s個ごとにサンプルしたビット列 は、 その M系列の 1周期分のビット数 ( ( 2 ^ η ) 一 1 ) と導出値 sが互いに 素であるときには、 他の構成を有する線形フィードバックシフトレジスタの Μ系 列を構成し、 また、 少なくとも 2周期分以上のビット数を有するビット列から線 形フィ一ドパックシフトレジスタを求めることができることを利用するものであ る。
この発明によると、 n個のシフトレジスタを有し、 1周期分のビット数が (2 Λ η ) 一 1個となるビット列を出力可能な線形フィ一ドバックシフトレジスタの 初期値を設定し、 所定の演算処理により初期値から線形フィードパックシフトレ ジスタの 1周期分のビット数と互いに素である導出値を求める。
そして、 導出値と線形フィードパックシフトレジスタの 1周期分のビット数を 2倍以上した値とを乗算して、 第 1線形ブイ一ドバックシフトレジスタにより出 力させるビット列のビット数を算出し、 その算出したビット数分のビット列を線 形フィードバックシフトレジスタから初期値をもとに出力させ、 その出力したビ ット列から導出値の間隔ごとにビット列を取り出して新ビット列を生成する。 そして、 その新ビット列を出力可能な構成に線形フィードパックシフトレジス タの構成を再構成し、 再構成した後の線形フィードパックシフトレジスタから初 期値をもとに疑似乱数を発生させる。
これによれば、 線形フィードバックシフトレジスタの構成を初期値に基づレヽて 動的に変更することができ、 変更後の線形フィ一ドバックシフトレジスタから Μ 系列のビット列を出力させることができる。 したがって、 解読者は、 疑似乱数発 生器から出力される疑似乱数に基づいて再構成前の線形フィードバックシフトレ ジスタの構成を得ることができず、 初期値や秘密鍵も解読することができない。 この結果、 高い暗号強度を得ることができ、 情報の秘匿性を保つことができる。 請求項 6に記載の発明は、 請求項 5に記載の疑似乱数発生器において、 線形フ イードバックシフトレジスタ再構成手段の代わりに、 新ビット列を出力可能な構 成を有する第 2の線形フィードバックシフトレジスタを生成する線形フィ一ドバ ックシフトレジスタ生成手段を設け、 疑似乱数発生手段は、 第 2の線形フィード パックシフトレジスタによつて初期値をもとに疑似乱数を発生させることを特徴 とする。 この発明によると、 線形フィードバックシフトレジスタを第 1の線形フ イードパックシフトレジスタと第 2の線形フィ一ドパックシフトレジスタの 2つ に分けることができ、 より秘匿性の向上を図ることができる。 請求項 7に記載の発明による疑似乱数発生器は、 秘密鍵に基づいて所定ビット 数を有する選択用乱数ビット列を出力する選択用乱数ビット列出力手段と、 選択 用乱数ビット列よりも大きなビット数を有する増幅乱数ビット列を予め複数格納 した乱数テーブルと、 選択用乱数ビット列出力手段から出力された選択用乱数ビ ット列を用いて乱数テーブルを参照することにより、 乱数テーブル内の複数の增 幅乱数ビット列の中から該当する増幅乱数ビット列を選択可能な増幅乱数ビット 列選択手段と、 増幅乱数ビット列選択手段により選択された増幅乱数ビット列を 非線形関数によつて非線形変換し疑似乱数として出力する非線形変換手段と、 を 有することを特徴とする。
この発明によると、 秘密鍵に基づいて所定のビット数を有する選択用乱数ビッ ト列を出力させ、 その選択用乱数ビット列を用いて乱数テーブルを参照すること により、 乱数テーブル内の複数の増幅乱数ビット列の中から該当する増幅乱数ビ ット列を選択し、 非線形変換手段によって非線形変換して疑似乱数として出力さ せるので、 小さなビット列を有する選択用乱数ビット列に基づいて、 より大きな ビット数を有する増幅乱数ビット列を得ることができる。
したがって、 非線形変換手段に入力される乱数ビット列をより大きなビット数 を有するものにすることができる。 これにより、 従来、 ボトルネックとなってい た非線形変換手段よりも上流側の乱数ビット列を出力する部分のスループットを 向上させ、 非線形変換手段のスループットに近づけることができ、 疑似乱数発生 器全体のスループットを高速化することができる。
請求項 8に記載の発明は、 請'求項 7に記載の疑似乱数発生器において、 秘密鍵 が与えられることにより秘密鍵に基づいて増幅乱数ビット列を発生させ、 乱数テ 一ブルに格納して、 乱数テーブルの初期設定を行う乱数テーブル初期設定手段を 有することを特徴とする。
この発明によると、 秘密鍵が与えられることにより秘密鍵に基づいて増幅乱数 ビット列を発生させ、 乱数テーブルに格納して、 乱数テーブルの初期設定を行う ので、秘密鍵を変更するごとに乱数テーブル内の初期値を変更することができる。 したがって、 暗号強度を増大させることができる。
請求項 9に記載の発明は、請求項 7または 8に記載の疑似乱数発生器において、 選択用乱数ビット列出力手段が複数設けられ、 乱数テーブルが各選択用乱数ビッ ト列出力手段にそれぞれ対応するように設けられ、 増幅乱数ビット列選択手段が 各選択用乱数ビット列出力竽段から各々出力された各選択用乱数ビット列を用い て各選択用乱数ビット列出力手段ごとに対応する乱数テーブルをそれぞれ参照し、 各乱数テーブル内からそれぞれ該当する増幅乱数ビット列を選択し、 非線形変換 手段が各增幅乱数ビット列選択手段によつて各乱数テーブルから選択された各增 幅乱数ビット列を用いて非線形関数により非線形変換し疑似乱数として出力する ことを特徴とする。
この発明によると、 各選択用乱数ビット列出力手段からそれぞれ選択用乱数ビ ット列が出力され、 各選択用乱数ビット列を用いて各乱数テーブルがそれぞれ参 照され、 その参照により各乱数テーブルから選択された各増幅乱数ビット列を用 いて非線形関数により非線形変換することによって疑似乱数を発生させるので、 従来はポトルネックとなっていた乱数ビット列を出力する部分のスループットを 向上させることができ、 疑似乱数発生器全体のスループットを高速化することが できる。
請求項 1 0に記載の発明は、 請求項 9に記載の疑似乱数発生器において、 各選 択用乱数ビット列出力手段ごとにそれぞれ複数の乱数テーブルを設け、 増幅乱数 ビット列選択手段により各乱数テーブル内から選択された各增幅乱数ビット列を 選択用乱数ビット列出力手段ごとに排他的論理和演算して非線形変換手段に出力 する排他的論理和演算処理手段を有することを特徴とする。
この発明によると、 各乱数テーブルから選択された各增幅乱数ビット列が選択 用乱数ビット列出力手段ごとに排他的論理和演算してから非線形変換手段に出力 されるので、 増幅乱数ビット列発生手段によって発生させた乱数ビット列をその まま用いたものよりも、 暗号強度を増大させることができる。
請求項 1 1に記載の発明は、 請求項 9または 1 0に記載の疑似乱数発生器にお いて、 所定のタイミングで各乱数テーブル同士の入れ替えを行う乱数テーブル入 れ替え手段を有することを特徴とする。
この発明によると、,所定のタイミングで各乱数テーブル同士の入れ替えを行う ので、 参照元となる乱数テーブルを変更することができる。 したがって、 固定さ れたものよりも暗号強度を増大させることができる。
請求項 1 2に記載の発明は、 請求項 1 1に記載の疑似乱数発生器において、 乱 数テ一ブル入れ替え手段が、 各乱数テ一ブルを参照するために必要な選択用乱数 ビット列を選択用乱数ビット列出力手段が出力するごとに、 各乱数テーブル同士 の入れ替えを行うことを特徴とする。
この発明は、 上述の請求項に記載した所定のタイミングの一具体例を示したも のである。 これによると、 各乱数テーブルを参照するために必要な選択用乱数ビ ット列を選択用乱数ビット列出力手段が出力するごとに各乱数テーブル同士の入 れ替えを行う。 したがって、 短いサイクルで参照元となる乱数テーブルを変更す ることができ、 暗号強度を更に増大させることができる。
請求項 1 3に記載の発明は、 請求項 1 1または 1 2に記載の疑似乱数発生器に おいて、 乱数テーブル入れ替え手段は、 各乱数テーブルの個数と等しい個数の乱 数テーブル入れ替え用乱数を発生させ、 乱数テーブル入れ替え用乱数を乱数テー ブルのテーブル番号として各乱数テーブルに付与し、 テーブル番号をもとに予め 設定された規則に従つて乱数テーブルの順番を入れ替えることを特徴とする。 この発明は、 上述の乱数テ一ブル入れ替え手段についての具体的な一例を示し たものである。 これによると、 乱数テーブル入れ替え用乱数を発生させ、 乱数テ 一ブルのテーブル番号として各乱数テーブルに付与し、 その付与したテーブル番 号をもとに乱数テーブルの順番を入れ替える。 したがって、 乱数テーブルの順番 を簡単かつ迅速に入れ替えることができ、 非線形変換手段よりも上流側のスルー プットを向上させ、 非線形 ^換手段のスループットに近づけることができ、 疑似 乱数発生器全体のスループットを高速化することができる。
請求項 1 4に記載の発明は、 コンピュータを以下の手段として機能させるため の疑似乱数発生プログラムであり、 秘密鍵に基づいて所定ビット数を有する選択 用乱数ビット列を出力させる選択用乱数ビット列出力手段と、 選択用乱数ビット 列よりも大きなビット数を有する増幅乱数ビット列を予め複数格納した乱数テー ブルと、 選択用乱数ビット列出力手段から出力された選択用乱数ビット列を用い て前記乱数テーブルを参照することにより、 前記乱数テーブル内の複数の増幅乱 数ビット列の中から該当する増幅乱数ビット列を選択可能な増幅乱数ビット列選 択手段と、 増幅乱数ビット列選択手段により選択された增幅乱数ビット列を非線 形関数によって非線形変換し疑似乱数として出力する非線形変換手段として機能 させるためのプログラムである。
この発明によると、 秘密鍵に基づいて所定のビット数を有する選択用乱数ビッ ト列を出力させ、 その選択用乱数ビット列を用いて乱数テーブルを参照すること により、 乱数テーブル内の複数の増幅乱数ビット列の中から該当する増幅乱数ビ ット列を選択し、 非線形変換手段によって非線形変換して疑似乱数として出力さ せるので、 小さなビット列を有する選択用乱数ビット列に基づいて、 より大きな ビット数を有する増幅乱数ビット列を得ることができる。
したがって、 非線形変換手段に入力される乱数ビット列をより大きなビット数 を有するものにすることができる。 これにより、 従来は、 ボトルネックとなって いた非線形変換手段よりも上流側の乱数ビット列を出力する部分のスループット を向上させ、 非線形変換部のスループットに近づけることができ、 疑似乱数発生 器全体のスループットを高速化することができる。
請求項 1 5に記載の発明は、 請求項 1 4に記載の疑似乱数発生プロダラムにお いて、 秘密鍵が与えられることにより秘密鍵に基づいて増幅乱数ビット列を発生 させ、 乱数テーブルに格納して、 乱数テーブルの初期設定を行う乱数テーブル初 期設定手段としてコンピュータを機能させることを特徴とする。
この発明によると、 秘密鍵が与えられることにより秘密鍵に基づいて増幅乱数 ビット列を発生させ、 乱数テーブルに格納して、 乱数テーブルの初期設定を行う ので、秘密鍵を変更するごとに乱数テーブル内の初期値を変更することができる。 したがって、 暗号強度を増大させることができる。
請求項 1 6に記載の発明は、 請求項 1 4または 1 5に記載の疑似乱数発生プロ グラムにおいて、 選択用乱数ビット列出力手段は、 複数設けられ、 乱数テーブル は、 各選択用乱数ビット列出力手段にそれぞれ対応するように設けられ、 増幅乱 数ビット列選択手段は、 各選択用乱数ビット列出力手段から各々出力された各選 択用乱数ビット列を用いて各選択用乱数ビット列出力手段ごとに対応する乱数テ 一ブルをそれぞれ参照し、 各乱数テーブル内からそれぞれ該当する増幅乱数ビッ ト列を選択し、 非線形変換手段は、 各増幅乱数ビット列選択手段によって各乱数 テーブルから選択された各増幅乱数ビット列を用いて非線形関数により非線形変 換し疑似乱数として出力することを特徴とする。
この発明によると、 各選択用乱数ビット列出力手段からそれぞれ選択用乱数ビ ット列が出力され、 各選択用乱数ビット列を用いて各乱数テーブルがそれぞれ参 照され、 その参照により各乱数テーブルから選択された各増幅乱数ビット列を用 レ、て非線形関数により非線形変换することによつて疑似乱数を発生させるので、 従来はポトルネックとなっていた非線形変換手段よりも上流側の乱数ビット列を 出力する部分のスループットを向上させ、 非線形変換手段のスループットに近づ けることができ、疑似乱数発生器全体のスループットを高速化することができる。 請求項 1 7に記載の発明は、 請求項 1 6に記載の疑似乱数発生プログラムにお いて、各選択用乱数ビット列出力手段ごとにそれぞれ複数の乱数テーブルを設け、 増幅乱数ビット列選択手段により各乱数テーブル内から選択された各増幅乱数ビ ット列を選択用乱数ビット列出力手段ごとに排他的論理和演算して非線形変換手 段に出力する排他的論理和演算処理手段としてコンピュータを機能させることを 特徴とする。 ·
この発明によると、 各乱数テーブルから選択された各増幅乱数ビット列が選択 用乱数ビット列出力手段ごとに排他的論理和演算してから非線形変換手段に出力 されるので、 増幅乱数ビット列発生手段によって発生させた乱数ビット列をその まま用いたものよりも、 暗号強度を増大させることができる。
請求項 1 8に記載の発明は、 請求項 1 6または 1 7に記載の疑似乱数発生プロ グラムにおいて、 所定のタイミングで前記各乱数テーブル同士の入れ替えを行う 乱数テーブル入れ替え手段としてコンピュータを機能させることを特徴とする。 この発明によると、 所定のタイミングで各乱数テーブル同士の入れ替えを行う ので、 参照元となる乱数テーブルを変更することができる。 したがって、 固定さ れたものよりも暗号強度を増大させることができる。
請求項 1 9に記載の発明は、 請求項 1 8に記載の疑似乱数発生プログラムにお いて、 乱数テーブル入れ替え手段は、 各乱数テーブルを参照するために必要な選 択用乱数ビット列を選択用乱数ビット列出力手段が出力するごとに、 各乱数テー ブル同士の入れ替えを行うことを特徴とする。 この発明は、 上述の請求項に記載した所定のタイミングの一具体例を示したも のである。 これによると、 各乱数テーブルを参照するために必要な選択用乱数ビ ット列を選択用乱数ビット列出力手段が出力するごとに各乱数テーブル同士の入 れ替えを行う。 したがって、 短いサイクルで参照元となる乱数テーブルを変更す ることができ、 暗号強度を更に増大させることができる。
請求項 2 0に記載の発明は、 請求項 1 8または 1 9に記載の疑似乱数発生プロ グラムにおいて、 乱数テーブル入れ替え手段は、 各乱数テーブルの個数と等しい 個数の乱数テ一プル入れ替え用乱数を発生させ、 乱数テ一ブル入れ替え用乱数を 乱数テーブルのテーブル番号として各乱数テーブルに付与し、 テーブル番号をも とに予め設定された規則に従って乱数テーブルの順番を入れ替えることを特徴と する。
この発明は、 上述の乱数テーブル入れ替え手段についての具体的な一例を示し たものである。 これによると、 乱数テーブル入れ替え用乱数を発生させ、 乱数テ 一ブルのテーブル番号として各乱数テーブルに付与し、 その付与したテーブル番 号をもとに乱数テーブルの順番を入れ替える。 したがって、 乱数テーブルの順番 を簡単かつ迅速に入れ替えることができ、 非線形変換手段よりも上流側のスルー プットを向上させ、 非線形変換手段のスループットに近づけることができ、 疑似 乱数発生器全体のスループットを高速化することができる。
[発明の実施の形態]
(第 1の実施の形態)
次に、 本発明の第 1の実施の形態について図に基づいて説明する。
第 1図は、 本実施の形態における疑似乱数発生器 1を説明する図である。 本実 施の形態では、 非線形コンパイナ型の疑似乱数発生器 1を例に説明する。
疑似乱数発生器 1は、 利用者から与えられる秘密鍵に基づいて初期値を設定す る初期値設定部 (図示せず) と、 初期値設定部から受け取った初期値をもとに疑 似乱数を生成する複数の疑似乱数生成部 1 0と、 これら複数の疑似乱数生成部 1 0の出力側に各々接続され、 各疑似乱数生成部 1 0から出力される疑似乱数を非 線形変換する非線形変換部 2 0を有している。
初期値設定部は、 利用者から与えられる秘密鍵をビット列に変換し、 疑似乱数 生成部 1 0の数に分割して、 後述する疑似乱数生成部 1 0の線形フィ一ドパック シフトレジスタ 1 1にそれぞれ割り当てる初期値を生成する処理を行う。
疑似乱数生成部 1 0は、 L個が互いに並列に配置されており、 それぞれ線形フ イードパックシフトレジスタ 1 1と、 線形フィ一ドパックシフトレジスタ再構成 手段 1 2を有している。
線形フィ一ドバックシフトレジスタ 1 1は、従来技術で説明したものと同様に、 1ビットの情報を記憶できる n個のシフトレジスタと.、、排他的論理和演算回路を 有している。 そして、 本実施の形態では、 1周期分のビット数 が (2 Λ η ) — 1個となるビット歹 IJ、 いわゆる M系列を出力可能な構成に予め設定されている。 第 2図は、 本実施の形態における線形フィードバックシフトレジスタ 1 1の初 期多項式を例示するものである。 初期多項式は、 M系列を出力するように予め設 定されている特性多項式であり、 1項目の指数部 (第 2図では 「Λ」 で表してい る) がシフトレジスタの個数を示し、 2項目以降の指数部が排他的論理和演算回 路に接続された結線位置を示している。 例えば、 1段目の線形フィードバックシ フトレジスタ l l ( L F S R l ) は、 1 3 1個のシフトレジスタを有し、 8番目、 3番目、 2番目のシフトレジスタがフィードバックタップによって排他的論理和 演算回路に接続されていることを示している。 尚、 本実施の形態では、 シフトレ ジスタの個数 nは、 全て素数個に設定されている。
線形フィ一ドバックシフトレジスタ再構成手段 1 2は、 線形フィ一ドバックシ フトレジスタ 1 1の構成を秘密鍵によって動的に変更して再構成するものである。 具体的には、 出力系列が M系列のビット列を s個ごとにサンプルした新ビット列 は、 M系列の 1周期分のビット数 m (= ( 2 ^ n) —1 ) と導出値 sとが互いに 素であるとき、 すなわち、 1以外の共通の約数を持たないときは、 他の構成を有 する線形フィードバックシフトレジスタの M系列になり、 また、 パーレイキャン プマッセイアルゴリズムによって、 少なくとも 2周期分以上のビット数を有する ビット列から、 そのビット列を出力可能な等価で最小の線形フィードパックシフ トレジスタの特性多項式を求めることができることを利用して、 線形フィ一ドパ ックシフトレジスタ 1 1の再構成を行う。
線形フィードパックシフトレジスタ再構成手段 1 2は、 初期値設定部によって 与えられた初期値から導出値 Sを算出し、 導出値 Sと線形フィードバックシフト レジスタ 11の 1周期分のビット数 m (= (2 ^ η) —1) を 2倍した値 2mと を乗算し、 線形フィードバックシフトレジスタ 11から出力させるビット列のビ ット数 2msを算出する。
' そして、 初期値をもとに,線形フィ一ドバックシフトレジスタ 11から 2ms個 のビット列を出力させ、 その 2ms個のビット列から導出値 sの間隔ごとにビッ ト列を取り出して新ビット列を生成し、 その新ビット列を用いてバーレイキャン プマッセイアルゴリズムにより線形フィードバックシフトレジスタ 11の構成を 変更する。
尚、 本実施の形態では、 線形フィードバックシフトレジスタ 11から出力させ るビット列のビット数が 2ms個である場合を例に説明しているが、 新ビット列 のビット数が 2 m個以上であれば、 等価な最小の線形フィ一ドバックシフトレジ スタを求めることができるので、 2m s個以上であればよい。
バーレイキャンプマッセィァルゴリズムとは、 線形フィ一ドバックシフトレジ スタ 11のシフトレジスタの個数 n (線形複雑度) の 2倍以上のビット数を有す るビット列を入手することで、 そのビット列を出力可能な等価な最小の線形フィ 一ドバックシフトレジスタを得ることができるというァルゴリズムである。 バー レイキャンプマッセイアルゴリズムについては、 例えば、 文献 1 「暗号理論入門 (第 2版) 」 、 共立出版社、 岡本栄司著、 2002年 4月 10日発行、 に詳細に 説明されている。
次に、 上記構成を有する疑似乱数発生器 1の動作について第 3図のフローチヤ 一トを用いて以下に説明する。
まず最初に、 初期値設定部によって初期値が設定される (ステップ S 1) 。 初 期値は、 利用者から与えられる秘密鍵を所定の演算処理によつて分割することに よって設定される。
例えば、 秘密鍵の長さが 16バイ トで 「ABCDEFGHI JKLMNOPJ であり、 疑似乱数生成部 10が 8段の場合には、 初期値は下記のように設定され る。
LFSR1 AB + X' FF' 埋め込み文字 (P a d d i n g) LF SR 2 CD + X' F F' 埋め込み文字 (P a d d i n g)
LFSR3 EF + X' F F' 埋め込み文字 (P a d d i n g)
LF SR4 GH + X' F F' 埋め込み文字 (P a d d i n g)
LFSR5 I J +X' F F' 埋め込み文字 (P a d d i n g)
LFSR6 KL + X' F F' 埋め込み文字 (P a d d i n g)
LF SR 7 MN + X' F F' 埋め込み文字 (P a d d i n g)
LF SR 8 OP + X' F F' 埋め込み文字 (P a d d i n g)
ここでは、 初期値は、 秘密鍵 「ABCDEFGHI JKLMN〇P」 を、 「A B」 、 「CD」 、 · · ·、 「OP」 'の 2文字ずつに分割し、 残りのシフトレジス タを埋め込み文字 (P a d d i n g) で埋めることによって設定される。 尚、 上 述の初期値設定方法は、実施例の一つであり、他の方法によつて設定してもよ 、。 初期値設定部において秘密鍵から初期値が設定されると、 各初期値は、 各疑似 乱数生成部 10にそれぞれ入力され、 線形フィ一ドパックシフトレジスタ 11の シフトレジスタ内にセットされる。
次に、 線形フィ一ドバックシフトレジスタ再構成手段 12によって、 線形フィ ードバックシフトレジスタ 1 1の構成を再構成する処理が行われる (ステップ S 2〜ステップ S 6) 。
ここでは、 まず、 所定の演算処理により初期値から線形フィ一ドバックシフト レジスタ 11の 1周期分のビット数 mと互いに素である導出値 sを算出する (ス テツプ S 2 ) 。 導出値 sは、初期値に対して、 例えば MD 5 (Message Digest 5) などのハッシュ関数を施してハッシュ値を求め、 そのハッシュ値に最も近似した 素数が採用される。 したがって、 導出値の推定困難度を高めることができ、 より 高度な秘匿性を得ることができる。 尚、 導出値 sは、 初期値から求めることがで き、 かつビット数 mと互いに素であればよく、 上記の算出方法によって求められ るものに限定されない。但し、秘匿性を維持するために、上記所定の演算処理は、 一方向性を満足しうる演算処理でなければならない。
導出値 sを算出すると、 次に、 線形フィードバックシフトレジスタ 11から出 力させるビット列のビット数 2m sを算出する (ステップ S 3) 。 線形フィード バックシフトレジスタ 11から出力させるビット列のビット数 2 m sは、 線形フ イードパックシフトレジスタ 1 1の 1周期分のビット数 m (= ( 2 " η ) —1 ) を 2倍した値と、 導出値 sとを乗算することによって求められる。
そして次に、 線形フィードバックシフトレジスタ 1 1から初期値をもとに 2 m s個のビット数を有するビット列を出力させ (ステップ S 4 ) 、 そのビット列か ら新ビット列を生成する (ステップ S 5 ) 。 新ビット列は、 2 m s個のビット列 力 ら導出値 sの間隔ごとに取り出したビット列によって構成され、 そのビット数 は 2 m個となる。
ここで、 出力系列が M系列のビット列を s個ごとにサンプルしたビット歹 IJは、 その M系列の 1周期分のビット数 mと導出値 sとが互いに素であれば、 他の構成 を有する線形フィードバックシフトレジスタの M系列となることから、 この新ビ ット歹も、 M系列となる。
そして、 その新ビット列に基づいて線形フィードバックシフトレジスタ 1 1の 構成を再構成する (ステップ S 6 ) 。 線形フィードバックシフトレジスタ 1 1の 再構成は、 バーレイキャンプマッセイアルゴリズムを用いて行われる。 バーレイ キャンプマッセイアルゴリズムによれば、 少なくとも 2周期分以上のビット数を 有するビット列があれば、 かかるビット列を出力可能な等価で最小の線形フィー ドバックシフトレジスタを求めることができるので、 2 m個のビット数を有する 新ビット列から薪たな線形フィードバックシフトレジスタの特性多項式を導出し て、 再構成を行う。
再構成後の線形フィードバックシフトレジスタ 1 1は、 再構成前と同一の次数 及び異なる結線の特性多項式を有し、 同一の初期値を与えた場合に、 再構成前と 異なる M系列を出力可能な構成を有する。
線形フィ一ドバックシフトレジスタ再構成手段 1 2による線形フィ―ドバック シフトレジスタ 1 1の再構成が終了すると、 再構成された線形フィ一ドバックシ フトレジスタ 1 1から初期値をもとに疑似乱数を発生させる処理が行われる (ス テツプ S 7 ) 。 これにより、 疑似乱数生成部 1 0から再構成前とは異なる M系列 の疑似乱数が発生される。
各疑似乱数生成部 1 0から出力された疑似乱数は、 それぞれ非線形変換部 2 0 に入力され、 非線形変換部 2 0で所定の非線形関数 f ( x ) に基づいて非線形変 換される (ステップ S 8 ) 。 これにより、 疑似乱数に非線形性を与えることがで き、 暗号強度を更に向上させることができる。
上記構成を有する疑似乱数発生器 1によれば、 線形フィ一ドバックシフトレジ スタ 1 1の構成を初期値に基づいて容易かつ動的に変更することができ、 変更後 も M系列を出力させることができる。 したがって、 解読者は、 再構成前の線形フ イードバックシフトレジスタの構成を取得することができない。 これにより、 従 来、 線形フィードバックシフトレジスタの構成が既知であることを前提に成り立 つていた既存の暗号解読法は、 成立しなくなる。 したがって、 高い喑号強度を得 ることができ、 情報の秘匿性を保つことができる。
尚、 上述の実施の形態では、 非線形コンパイナ型の疑似乱数発生器 1を例に説 明したが、 非線形コンパイナ型に限定されるものではなく、 線形フィードパック シフトレジスタを用いる疑似乱数発生器であればよく、 例えばプロック型暗号方 式に用いられる疑似乱数発生器に用いてもよい。
また、 上記のステップ S 6で、 新ビット列に基づいて線形フィードパックシフ トレジスタ 1 1の構成を再構成する代わりに、 新ビット列を出力可能な構成を有 する第 2の線形フィードバックシフトレジスタを生成し、 ステップ S 7で、 その 第 2の線形フィ一ドパックシフトレジスタによって初期値をもとに疑似乱数を発 生させてもよい。 これによれば、 線形フィードパックシフトレジスタを 2つに分 けることができ、 より秘匿性の向上を図ることができる。 また、 第 1の実施の形 態における疑似乱数発生器 1は、 ソフトウェアやハードウエアのいずれによって 構成してもよい。
(第 2の実施の形態)
次に、 本発明の第 2の実施の形態について図に基づいて説明する。
第 4図は、 第 2の実施の形態における疑似乱数発生器 1の機能を概略的に示す 説明図である。 本実施の形態における疑似乱数発生器 1は、 疑似乱数発生プログ ラムをコンピュータハードウェア上で実行することによって実現される非線形コ ンパイナ型の疑似乱数発生器 1である。 尚、 本実施の形態では、 暗号化装置 (従 来技術を参照) に組み込まれた場合のものを例に説明し、 復号化装置のものにつ いては同様であるのでその詳細な説明を省略する。 疑似乱数発生器 1は、 第 4図に示すように、 乱数ビット列出力部 5 0と、 乱数 ビット列増幅部 6 0と、 非線形変換部 8 0を有している。 乱数ビット列出力部 5 0は、 α個の選択用乱数ビット列出力手段 5 1を備えている。 選択用乱数ビット 列出力手段 5 1 〜5 1 αは、 利用者から与えられる L kビットの秘密鍵 Kをもと に N iビットを有する選択用乱数ビット列を連続して出力するものであり、 例え ば線形フィードバックシフトレジスタによつて構成される。
乱数ビット列増幅部 6 0は、 N iビットの選択用乱数ビット列を与えることに より N iビットよりも大きなビット数である N oビットの増幅乱数ビット列を出 力するように構成されており、 乱数テーブル部 6 1と排他的論理和演算処理手段 6 3を備えている。
乱数テーブル部 6 1は、 ( 2 八 N i ) 個の乱数ビット列を格納した α Χ β (以 下、 単に 「a j3」 と記す) 個の乱数テーブル 6 2によって構成されている。 そし て、 第 4図に示すように、 各選択用乱数ビット列出力手段 5 1ごとに ;3 (複数) 個の乱数テーブル 6 2が対応するように設けられている。 第 5図は、 一の乱数テ 一ブルの構成を説明する概略図である。 各乱数テーブル 6 2は、 第 5図に示すよ うに、 (2 Λ Ν ί ) 個でかつ 0〜 (2 Λ Ν ί ) _ 1のインデックス番号が付与さ れたインデックス部 R iと、 各インデックス番号に一対一で対応して設けられ上 述の増幅乱数ビット列を格納可能なビット列格納部 R oを有している。
そして、 乱数ビット列出力部 5 0の選択用乱数ビット列出力手段 5 1力 ら出力 された選択用乱数ビット列を引数として、 該当するインデックス部 R iのインデ ックス番号を選択し、 そのインデックス番号に対応する乱数ビット列格納部 R o から N oビットの増幅乱数ビット列を選択できるように構成されている。
排他的論理和演算処理手段 6 3は、 乱数テーブル 6 S i e 2 α の参照によつ て抽出された α 個の増幅乱数ビット列を各選択用乱数ビット列出力手段 5 1ご とに排他的論理和演算処理し、 α個の増幅乱数ビット列とし、 非線形変換部 8 0 に出力するように構成されている。 これにより、 乱数テーブル 6 2 〜 6 2 ^か ら読み出した増幅乱数ビット列をそのまま非線形変換部 8 0に出力するのではな く、 暗号強度が増幅乱数ビット列そのものに依存することを防止し、 暗号強度を 更に向上させている。 第 6図は、 乱数ビット列増幅部 6 0内に構成される各構成要素を説明する概念 図である。 上述の乱数ビット列増幅部 6 0は、 第 6図に示すように、 その内部機 構として増幅乱数ビット列選択手段 6 4を備えている。 增幅乱数ビット列選択手 段 6 4は、 各選択用乱数ビット列出力手段 5 1 ! - 5 1 αから出力された選択用乱 数ビット列を引数として各乱数テーブル 6 2 〜 6 2 をそれぞれ参照し、 引数 と等しい値を有するインデックス番号に対応するビット列格納部 R oから増幅乱 数ビット列をそれぞれ選択するように構成されている。
また、 乱数ビット列增幅部 6 0は、 乱数テーブル部 6 1の初期設定を行う乱数 テーブル初期設定手段 6 5と、 その乱数テーブル初期設定手段 6 5により乱数テ 一ブル部 6 1内に設定される増幅乱数ビット列を発生させる増幅乱数ビット列発 生手段 6 6を備えている。
乱数テーブル初期設定手段 6 5は、 増幅乱数ビット列発生手段 6 6によって発 生させた乱数ビット列を N oビットごとに分割して各乱数テーブル 6 2 6 2 α 0の全ての乱数ビット列格納部 R oに格納する処理を行うものであり、 本実施の 形態では、第 1番目の選択用乱数ビット列出力手段 5 1 に対応する乱数テーブル 6 2 から第 a番目の選択用乱数ビット列出力手段 5 1 αに対応する乱数テープ ル 6 2 まで順番に格納するように構成されている。 '
増幅乱数ビット列発生手段 6 6は、 秘密鍵 Κをもとに乱数ビット列を出力する ものであり、本実施の形態では、 R C 4 S y p p e t r i c S t r e a p C i p h e r (R S A D a t a S e c u r i t y I n c .製)を用いている。 し力 し、 通常の線形フィードパックシフトレジスタなどの疑似乱数ビット列を高 速に出力できるもの (主としてストリーム型暗号) であれば他のものであっても よい。
また、 第 6図に示すように、 乱数ビット列增幅部 6 0は、 所定のタイミングで 乱数テーブル 6 2 〜 6 2 α の順番を入れ替える処理を行う乱数テーブル入れ替 え手段 6 7と、 その乱数テーブル入れ替え手段 6 7が乱数テーブルの順番入れ替 え処理を行うために使用する順番入れ替え用乱数を発生させる入れ替え用乱数発 生手段 6 8を備えている。
乱数テーブル入れ替え手段 6 7は、 入れ替え用乱数発生手段 6 8により発生さ せた入れ替え用乱数を、 乱数テーブルのテーブル番号として、 その発生させた順 番で各乱数テーブル 6 2 i〜6 2 α 0に順次付与し、 ·その付与した乱数をもとに乱 数テーブルの順番を入れ替える処理を行い、 乱数テーブル部 6 1内の増幅乱数ビ ット列の順番をテーブル単位で変更する。
入れ替え用乱数発生手段 6 8は、 任意の秘密鍵 Κ 0をもとに乱数テーブル入れ 替え用乱数を発生させる処理を行うものであり、 乱数ビット列出力部 5 0から Ν iビットを有する α個の選択用乱数ビット列を入力するごとに、 α ]3個の入れ替 え用乱数を発生するように構成されている。 任意の秘密鍵 Κ 0は、 本実施の形態 では、 上述の増幅乱数ビット列発生手段 6 6に秘密鍵 Κを与えて出力させた増幅 乱数ビット列から L kビット分だけ取り出した値を用いている。 しかし、 これに 拘束されるものではなく、 例えば、 他の手段によって発生させたり、 別途にユー ザに入力させてもよい。
非線形変換部 8 0は、 α入力 1出力の 1次無相関な非線形関数 f ( x ) を有し ており、 乱数ビット列増幅部 6 0から出力された α個の増幅乱数ビット列を非線 形変換し、 Ν οビットを有する 1個の乱数ビット列を疑似乱数 Ζとして出力する ように構成されている。
尚、 秘密鍵 Κは、 1 2 8ビット、 2 5 6ビット、 5 1 2ビット、 1 0 2 4ビッ トの中から選択され、 また、 選択用乱数ビット列出力手段 5 1の数 、 各選択用 乱数ビット列出力手段 5 1に対応する乱数テーブルの数 、 及び選択用乱数ビッ ト列のビット数 N iは、 互いにかけ算した値が秘密鍵 Kのビット数 L kに等しい という条件の範囲内で選択される。
次に、 疑似乱数発生方法について第 7図に基づき説明する。 第 7図は、 本実施 の形態における疑似乱数発生方法を説明するフローチヤ一トである。
まず最初に、 乱数ビット列出力部 5 0は、 ユーザから L kビットを有する任意 の秘密鍵 Kの入力を受けると (ステップ S 1 1 ) 、 その秘密鍵 Kを用いて選択用 乱数ビット列出力手段 5 1の初期値を設定する (ステップ S 1 2 ) 。 例えば、 選 択用乱数ビット列出力手段 5 1が線形フィードパックシフトレジスタによつて構 成されている場合には、 その秘密鍵 Kに基づいて各シフトレジスタ内に格納され る初期値の設定が行われる。 各選択用乱数ビット列出力手段 5 1の初期値を設定すると、 次に、 乱数テープ ル初期設定手段 6 5により乱数テーブル部 6 1の初期設定が行われる (ステップ S 1 3 ) 。 ここでは、 まず、 增幅乱数ビット列発生手段 6 6に秘密鍵 Kが与えら れ、 高速で乱数ビット列が発生される。 この増幅乱数ビット列発生手段 2 4によ り発生された乱数ビット列は、 乱数テーブル初期設定手段 6 5によって、 N oビ ットごとに分割され、 増幅乱数ビット列として各乱数テ ブル 6 2 2 α 0の 全ての乱数ビット列格納部 R οに順次格納される。 このように、 秘密鍵 Κが与え られることによって、 乱数テーブル部 6 1の初期設定が予め行われる。
上述のステップ S 1 1〜ステップ S 1 3により選択用乱数ビット列出力手段 5 1と乱数テーブル部 6 1の初期値の設定が行われると、待機状態となる。そして、 平文の暗号化装置 (従来技術を参照) への入力をトリガとして、 乱数ビット列の 増幅処理が開始される (ステップ S 1 4〜S 1 6 ) 。 まず最初に、 各選択用乱数 ビット列出力手段 5 1によって、 それぞれ N iビットを有する選択用乱数ビット 列を乱数テーブルの数である i3個出力させ、 乱数ビット列増幅部 6 0内に記憶さ せる (ステップ S 1 4 ) 。
それから、乱数テーブル順番入れ替え手段 2 6により乱数テーブル 6 2 〜 6 2 α 3の順番入れ替え処理を行う (ステップ S 1 5 ) 。 ここでは、 まず、 入れ替え用 乱数発生手段 6 8により 個の入れ替え用乱数を発生させ、 乱数テーブルの順 番入れ替え用のテーブル番号として、各乱数テーブル 6 2 〜6 2 α βに付与する。 これらのテーブル番号は、その発生の順番で乱数テーブル 6 2 iから順次付与され る。
したがって、 各乱数テーブル 6 2 〜 6 2 には、 1〜α ]3までのテーブル番 号が順不同に付与される。 そして、 その付与したテーブル番号をもとに乱数テー ブル部 6 1内の增幅乱数ビット列の順番を各乱数テーブル単位で入れ替える処理 が行われる。 これにより、 乱数テーブル'部 6 1の乱数ビット列格納部 R οに格納 されている増幅乱数ビット列は、 昇順や降順などの予め設定した規則に従って、 各乱数テーブル単位で入れ替えられる。
乱数テーブル 6 2ェ〜6 2 α βの順番入れ替える処理が終了すると、 増幅乱数ビ ット列選択手段 6 4により、 各乱数テーブル 6 S i S 2 α 内から該当する増幅 乱数ビット列を選択する増幅乱数ビット列選択処理が行われる(ステップ S 1 6 )。 増幅乱数ビット列選択手段 6 4は、 乱数ビット增幅部 2 0に格納されている各選 択用乱数ビット列を用いて、 対応する乱数テーブル 6 2 i〜6 2 α βをそれぞれ参 照し、 各乱数テーブル 6 S S 2 内からそれぞれ該当する増幅乱数ビット列 を選択する。
増幅乱数ビット列の選択処理が終了すると、 次に、 排他的論理和演算処理手段 6 3により排他的論理和演算処理が行われる (ステップ S 1 7 ) 。 排他的論理和 演算処理手段 6 3は、 各乱数テーブル 6 S S 2 α 0から読み出した α jS個の増 幅乱数ビット列を、 各選択用乱数ビット列出力手段 5 1単位で排他的論理和演算 処理する。 これにより、 N oビットを有する α個の新たな増幅乱数ビット列が生 成される。
そして、 これらの新たに生成された増幅乱数ビット列は、 非線形変換部 8 0に 出力され、 非線形変換が行われる (ステップ S 1 8 ) 。 非線形変換部 8 0は、 予 め設定された非線形関数に基づいて N oビットの α 個の増幅乱数ビット列を非 線形変換し、 Ν οビットを有する 1個の乱数ビット列.を疑似乱数として出力する。 非線形変換部 8 0から疑似乱数を出力すると、 再びステップ S 1 4まで戻り、 ステップ S 1 4からステップ S 1 8までの処理を繰り返し行う。 そして、 平文か ら暗号文に変換するために必要な分の疑似乱数を発生させる。
上述の疑似乱数発生器 1によると、 選択用乱数ビット列出力手段 5 1によって 出力した N iビットの選択用乱数ビット列に基づき乱数テーブルを参照すること で、 N i ビットよりも大きなビット数を有する N oビットの増幅乱数ビット列を 非線形変換部 8 0に供給することができる。 したがって、 従来はポトルネックと なっていた非線形変換部 8 0よりも上流側のスループットを向上させることがで き、 非線形変換部 8 0のスループットに近づけることができる。 したがって、 疑 似乱数発生器 1全体のスループットを高速化することができる。
また、 選択用乱数ビット列出力部 2 0からの選択用乱数ビット列の入力に応じ て、 乱数テーブル順番入れ替え処理を行うので、 疑似乱数の暗号強度を増大させ ることができる。 特に、 本実施の形態では、 乱数テーブル 6 2 〜 6 2 α の組合 せパターンを (α ) の階乗個 (以下、 階乗を 「!」 で表す) にすることができ る。 したがって、 乱数テーブル部 6 1の内容を既知と仮定したときに成立する攻 撃では、 (2 Λ (α β ΧΝ ί ) ) X (α β) !の計算量が必要となり、 この計算 量は、 L kビットの秘密鍵を全数探索する場合の計算量よりも多くなることから、 十分な暗号強度を備えていることがわかる。
. また、 上述の疑似乱数発生器 1は、一の選択用乱数ビット列出力手段 5 1から '出力した乱数ビット列を用いて複数 (j3個) の乱数テーブルを参照し、 各乱数テ 一プルから選択した乱数ビット列に排他的論理和演算を施す処理を行っている。 したがって、 乱数テーブル 6 1から読み出した増幅乱数ビット列をそのまま非線 形変換部 80に出力した場合のように暗号強度が増幅乱数ビット列発生手段 6 6 そのものに依存するのを防ぎ、 暗号強度を更に向上させている。
次に、 本実施の形態における具体的な一実施例について説明する。 第 8図は、 本実施例の疑似乱数発生器 1を概略的に示す概念図、 第 9図は、 乱数テーブル部 6 1を概略的に示す概念図である。 尚、 本実施例では、 各設定値 (パラメータ) を以下のように設定した場合を例に説明する。
選択用乱数ビット列出力手段の数: 8個 (α = 8)
各選択用乱数ビット列出力手段に対応した乱数テーブルの数: 2個 ( = 2) 乱数テーブルのインデックス部の長さ : 2 Λ 8個 (N i = 8)
乱数テーブルの乱数ビット列部の長さ : 2 Λ 1 6個 (Ν ο = 1 6)
秘密鍵の長さ: 1 2 8ビット (L k = 1 2 8 )
非線形変換部 8 0の非線形関数 f (x) :
f(x) = xl + x5
+ xlx2 + xlx3 + x2x3 + x2x5 + χ2χ6 + χ3χ6
Figure imgf000026_0001
+ xlx2x3 + xlx2x4 + xlx3x4 + χ2χ3χ4 + xlx2x5
+ χ2χ4χ5 + χ3χ4χ5 + xlx2x6 + χ2χ3χ6 + χ 1x4x6
+ χ4χ5χ6 + 1x2x7 + χ2χ3χ7 + χ 1x4x7 + xlx5x7
+ χ2χ5χ7 + χ4χ5χ7 + xlx6 7 + χ4χ6χ7 + χ5χ6χ7
+ xlx2x8 + xlx3x8 + χ2χ3χ8 + χ3χ4χ8 + xlx5x8
+ χ3χ5χ8 + χ4χ5χ8 + χ3χ6χ8 + χ4χ6χ8 + χ5χ6χ8 + xlx7x8 + x2x7x8
+ X 1x2x4x5 + lx3x4x5 + x2x3x4x5 + lx2x4x6
+ X 1x3x4x6 + χ2χ3χ4χ6 + x 1x4x5x6 + 2x4x5x6
+ Χύχ4χ5χ6 + lx2x3x7 + xlx2x4x7 + 2x3x4x7
+ xlx2x5x7 + xlx4x5x7 + x2x4x5x7 + χ1χ2χ6χ7
+ X丄 XJXW!J + χ2χ3χ6χ7 + 1x4x6x7 + 2χ4χ6χ7
+ Χύχ4χ6χ7 + xlx5x6x7 + χ2χ5χ6χ7 + ύχοχ6χ7
+ 1x2x4x8 + 1x2x5x8 + xlx3x5x8 + χιχ4χοχ8
+ xlx2x6x8 + χ2χ3χ6χ8 + xlx4x6x8 + χ2χ5χ6χ8
+ x 5x5x6x8 + xlx3x7x8 + xlx4x7x8 + 2χ4χ7χ8
Figure imgf000027_0001
+ 1x2x3x4x5 + χ 1x2x3x4x6 + xlx3x4x5x6 '
+ χ2χ3χ4χ5χ6 + xlx2x4x5x7 + χ2χ3χ4χ5χ7
+ X 1x2x4x6x7 + X1X3X4XDX7 + xlx4x5x6x7
+ x2x4x5x6x7 + χ 1x2x3x4x8 + χ 1x2x3x5x8
+ X 1x2x4x5x8 + χ 1x2x3x6x8 + 1x2x4x6x8
+ xlx3x4x6x8 + χ2χ3χ5χ6χ8 + χ 1x4x5x6x8
+ χ2χ4χ5χ6χ8 + xlx2x3x7x8 + xlx3x4x7x8
+ xlx3x5x7x8 + χ2χ3χ5χ7χ8 + χ3χ4χ5χ7χ8
+ xlx3x6x7x8 + χ3χ4χ6χ7χ8
+ xlx2x3x4x5x8 + χ 1x2x3x4x6x8
+ xlx3x4x5x6x8 + χ2χ3χ4χ5χ6χ8
+ xlx2x3x4x7x8 + xlx2x3x5x7x8
+ xlx2x4x5x7x8 + xlx3x4x5x7x8
+ xlx3x4x6x7x8 + χ2χ3χ4χ6χ7χ8
+ χ 1x2x5x6x7x8 + xlx3x5x6x7x8
本実施例では、 各選択用乱数ビット列出力手段 5 1が、 ユーザから与えられる 秘密鍵 Κに基づいて線形フィードバックシフトレジスタ 5 3の再構成を行い、 そ の再構成後の線形フィ一ドバックシフトレジスタ 5 3 ' を用いて選択用乱数ビッ ト列を出力するように構成されている。
まず最初に、 この選択用乱数ビット列出力手段 51の構成及ぴその動作につい て説明する。 選択用乱数ビット列出力手段 51は、 第 8図に示すように、 初期値 設定手段 12、 線形フィ一ドバックシフトレジスタ 53、 線形フィ一ドバックシ フトレジスタ再構成手段 14を有している。
初期値設定手段 12は、 ユーザから与えられる秘密鍵 Kに基づいて初期値を設 定するものであり、 秘密鍵 Kをビット列に変換し、 初期値として線形フィードバ ックシフトレジスタ 53のシフトレジスタ内に割り当てるように構成されている。 初期値設定手段 12は、 本実施例では、 RC4 S y p p e t r i c S t r e a p C i p h e r (RSA Da t a S e c u r i t y I n c. 製) を用 いており、 増幅乱数ビット列発生手段 66と共用している。
線形フィ一ドパックシフトレジスタ 53は、従来技術で説明したものと同様に、 1ビットの情報を記憶できる n個のシフトレジスタと、 排他的論理和演算回路を 有している。 そして、 本実施の形態では、 1周期分のビット数 mが (2 ^ n) — 1個となるビット列、 いわゆる Μ系列を出力可能な構成に予め設定されている。 第 1 1図は、 本実施の形態における線形フィ一ドバックシフトレジスタ 53の 初期多項式を例示するものである。 初期多項式は、 Μ系列を出力するように予め 設定されている特性多項式であり、 1項目の指数部分がシフトレジスタの個数を 示し、 2項目以降の指数部分が排他的論理和演算回路に接続された結線位置を示 している。 例えば、 1段目の線形フィードパックシフトレジスタ (LFSR1) 53は、 129個のシフトレジスタを有し、 80番目、 8番目、 1番目のシフト レジスタがフィードバックタップによって排他的論理和演算回路に接続されてい ることを示している。 尚、 本実施の形態では、 シフトレジスタの個数 ηは、 全て 素数個に設定されている。
線形フィ一ドバックシフトレジスタ再構成手段 14は、 線形フィ一ドバックシ フトレジスタ 53の構成を秘密鍵 Κによって動的に変更して再構成するものであ る。 具体的には、 出力系列が Μ系列のビット列を s個ごとにサンプルした新ビッ ト列は、 Μ系列の 1周期分のビット数 m (= (2 n) — 1) と導出値 sとが互 いに素であるとき、 すなわち、 1以外の共通の約数を持たないときは、 他の構成 を有する線形フィ一ドバックシフトレジスタの M系列になり、 また、 パーレイキ ヤンプマッセイアルゴリズムによって、 少なくとも 2周期分以上のビット数を有 するビット列から、 そのビット列を出力可能な等価で最小の線形フィードバック シフトレジスタの特性多項式を求めることができることを利用して、 線形フィー ドパックシフトレジスタ 5 3の再構成を行う。
線形フィ一ドバックシフトレジスタ再構成手段 1 4は、 初期値設定手段 1 2に よって与えられた初期値から導出値 sを算出し、 導出値 sと線形フィードバック シフトレジスタ 5 3の 1周期分のビット数 m (= ( 2 ^ η ) 一 1 ) を 2倍した値 2 mとを乗算し、 線形フィードバックシフトレジスタ 5 3から出力させるビット 列のビット数 2 m sを算出する。
そして、 初期値をもとに線形フィ一ドバックシフトレジスタ 5 3から 2 m s個 のビット列を出力させ、 その 2 m s個のビット列から導出値 sの間隔ごとにビッ ト列を取り出して新ビット列を生成し、 その新ビット列を用いてバーレイキャン プマッセイアルゴリズムにより線形フィードバックシフトレジスタ 5 3の構成を 変更する。
尚、 線形フイードバックシフトレジスタ 5 3から出力させるビット列のビット 数は、 新ビット列のビット数が 2 m個以上であれば、 等価な最小の線形フィード バックシフトレジスタを求めることができるので、 2 m s個以上であればよい。 バーレイキャンプマッセイアルゴリズムとは、 線形フィ一ドバックシフトレジ スタ 5 3のシフトレジスタの個数 n (線形複雑度) の 2倍以上のビット数を有す るビット列を入手することで、 そのビット列を出力可能な等価な最小の線形フィ 一ドバックシフトレジスタを得ることができるというアルゴリズムである。 バー レイキャンプマッセイアルゴリズムについては、 例えば、 文献 1 「喑号理論入門 (第 2版) 」 、 共立出版社、 岡本栄司著、 2 0 0 2年 4月 1 0日発行、 に詳細に 説明されている。
第 1 2図は、 線形フィ一ドバックシフトレジスタ 5 3の再構成処理を説明する フローチャートである。 まず最初に、 初期値設定手段 1 2によって初期値が設定 される (ステップ S 4 1 ) 。 初期値は、 利用者から与えられる L kビットの秘密 鍵 Kに基づいて設定される。 初期値設定手段 1 2において秘密鍵 Kから初期値が 設定されると、 その初期値は、 線形フィードパックシフトレジスタ 5 3のシフト レジスタ内にセットされる。
次に、 所定の演算処理により初期値から線形フィードパックシフトレジスタ 5 3の 1周期分のビット数 mと互いに素である導出値 sを算出する (ステップ S 4 2 ) 。 導出値 sは、 初期値に対して、 例えば MD 5 (Message Digest 5) などの ハッシュ関数を施してハッシュ値を求め、 そのハッシュ値に最も近似した素数が 採用される。 導出値 sは、 初期値から求めることができ、 かつビット数 mと互い に素であればよく、 上記の算出方法によって求められるものに限定されない。 但
。し、 秘匿性を維持するために、 上記所定の演算処理は、 一方向性を満足しうる演 算処理でなければならなレ、。
導出値 sを算出すると、 次に、 線形フィードバックシフトレジスタ 5 3から出 力させるビット列のビット数 2 m sを算出する (ステップ S 4 3 ) 。 線形フィー ドバックシフトレジスタ 5 3から出力させるビット列のビット数 2 m sは、 線形 フィードバックシフトレジスタ 5 3の 1周期分のビット数 m (= ( 2 Λ n ) 一 1 ) を 2倍した値と、 導出値 sとを乗算することによって求められる。
そして次に、 線形フィードバックシフトレジスタ 5 3から初期値をもとに 2 m s個のビット数を有するビット列を出力させ (ステップ S 4 4 ) 、 そのビット列 から新ビット列を生成する (ステップ S 4 5 ) 。 新ビット列は、 2 m s個のビッ ト列から導出値 sの間隔ごとに取り出したビット列によって構成され、 そのビッ ト数は 2 m個となる。
ここで、 出力系列が M系列のビット列を s個ごとにサンプルしたビット列は、 その M系列の 1周期分のビット数 mと導出値 sとが互いに素であれば、 他の構成 を有する線形フイードバックシフトレジスタの M系列となることから、 この新ビ ット列も、 M系列となる。
そして、 その新ビット列に基づいて線形フィ一ドパックシフトレジスタ 5 3の 構成を再構成する (ステップ S 4 6 ) 。 線形フィードバックシフトレジスタ 5 3 の再構成は、 パーレイキャンプマッセイアルゴリズムを用いて行われる。 バーレ ィキャンプマッセイアルゴリズムによれば、 少なくとも 2周期分以上のビット数 を有するビット列があれば、 かかるビット列を出力可能な等価で最小の線形フィ ードバックシフトレジスタ 5 3を求めることができるので、 2 m個のビット数を 有する新ビット列から新たな線形フィードバックシフトレジスタ 5 3の特性多項 式を導出して、 再構成を行う。
再構成後の線形フィードパックシフトレジスタ 5 3 ' は、 再構成前と同一の次 数及び異なる結線の特性多項式を有し、 同一の初期値を与えた場合に、 再構成前 と異なる M系列を出力可能な構成を有する。
線形フィードバックシフトレジスタ再構成手段 1 4による線形フィードバック シフトレジスタ 5 3の再構成が終了すると、 再構成された線形フィ一ドバックシ フトレジスタ 5 3 ' から初期値をもとに乱数ビット列を発生させる処理が行われ る (ステップ S 4 7 ) 。 これにより、 乱数ビット列出力部 5 0からは再構成前と は異なる M系列の乱数ビット列が出力される。
尚、 上記のステップ S 4 6で、 新ビット列に基づいて線形フィードバックシフ トレジスタ 5 3の構成を再構成する代わりに、 新ビット列を出力可能な構成を有 する第 2の線形フィードバックシフトレジスタを生成し、 ステップ S 4 7で、 そ の第 2の線形フィ一ドバックシフトレジスタによつて初期値をもとに乱数ビット 列を発生させてもよい。 これによれば、 線形フィードバックシフトレジスタ 5 3 を 2つに分けることができ、 より秘匿性の向上を図ることができる。
上記の選択用乱数ビット列出力手段 5 1は、 線形フィードバックシフトレジス タ 5 3の構成を初期値に基づいて容易かつ動的に変更することができ、 変更後も M系列を出力させることができる。 したがって、 攻撃者は、 再構成前の線形フィ ードバックシフトレジスタ 5 3の構成を取得することができない。 これにより、 従来、 線形フィ一ドバックシフトレジスタ 5 3の構成が既知であることを前提に 成り立つていた既存の暗号解読法は、 成立しなくなる。 したがって、 高い暗号強 度を得ることができ、 情報の秘匿性を保つことができる。
次に、 上記の選択用乱数ビット列出力手段 5 1を備えた疑似乱数発生器 1によ る疑似乱教発生方法について説明する。 第 1 0図は、 本実施例における疑似乱数 発生方法を説明するフローチャートである。
まず最初に、 乱数ビット列出力部 5 0は、 ユーザから 1 2 8ビット (L k = 1 2 8 ) を有する任意の秘密鍵 Kの入力を受け取ると、 その秘密鍵 Kに基づいて再 構成前の線形フィードバックシフトレジスタ 5 3の初期値を設定する (ステップ S 2 1 )。
そして、 その初期値に基づいて線形フィ一ドパックシフトレジスタ 5 3を再構 成し (ステップ S 2 2 ) 、 再構成後の線形フィードパックシフトレジスタ 5 3 ' に初期値を設定する (ステップ S 2 3 ) 。 この初期値の設定を、'全ての乱数ビッ ト列出力手段 1 1 i〜l 1 8について行う。
次に、 乱数ビット列増幅部 6 0は、 乱数テーブル部 6 1の初期設定を行う (ス テツプ S 2 4 ) 。 ここでは、 まず、 増幅乱数ビット列発生手段 6 6に秘密鍵 Kを 与え、 高速で乱数ビット列を発生させる処理が行われるが、 本実施例では、 上述 のように、 増幅乱数ビット列発^手段 6 6と選択用乱数ビット列出力手段 5 1の 初期値設定手段 1 2とを共用しているので、 別途出力することはせずに、 線形フ イードバックシフトレジスタ 5 3の初期値として出力した乱数 ット列をそのま ま用いる。
乱数テーブル初期設定手段 6 5は、 その乱数ビット列を 1 6ビット (N o = 1 6 ) 'ごとに分割し、 増幅乱数ビット列として各乱数テープル 6 2 〜 6 2 6の全 ての乱数ビット列格納部 R oに順次格納する。
以上の初期値設定段階が終了すると (ステップ S 2 1〜S 2 4 ) 、 待機状態と なる。 そして、 平文の暗号化装置 (従来技術を参照) への入力をトリガとして、 疑似乱数を発生させる処理 (ステップ S 2 5〜S 2 7 ) に移行する。
ここでは、 各選択用乱数ビット列出力手段 5 1 〜 1 8ごとにそれぞれ選択用 乱数ビット列を出力させ、 乱数ビット列増幅部 6 0のバッファ内にそれぞれ記憶 させる処理が行われる。具体的には、各選択用乱数ビット列出力手段 5 1ェ〜5 1 8から 8ビットの選択用乱数ビット列がそれぞれ出力され(ステップ S 2 7 ) 、そ の数が各選択用乱数ビット列出力手段 1に対して 2個分 ( β = 2 ) であり (ステ ップ S 2 6で Y e s ) 、 各選択用乱数ビット列出力手段 5 1 〜 5 1 8にそれぞれ 対応する分である場合 (ステップ S 2 5で Y e s ) には、 必要数の選択乱数ビッ ト列が得られたとして次の乱数ビット列増幅段階に移行する。 したがって、 ここ までの処理により、 バッファ内には 8ビットを有する 1 6個の選択用乱数ビット 列が記憶される。 次に、 秘密鍵 KOに基づき入れ替え用乱数発生手段 68により 16個の入れ替 え用乱数を発生させ (ステップ S 28) 、 乱数テーブルの順番入れ替え処理が行 われる (ステップ S 29) 。 ここでは、 16個の乱数が順番入れ替え用のテープ ル番号として、 乱数テーブル 62 i〜6216に付与される。 したがって、 1番〜 16番までのテーブル番号が順不同で乱数テーブル 62 i〜62 i 6に付与される。 そして、 その付与されたテーブル番号をもとに各乱数テーブル 62i〜6216の 順番の入れ替えを行う。 ここでは、 選択用乱数ビット列出力手段 51 〜 1 nに 対してテーブル番号が 1番〜 16番に順番に並ぶように降順に入れ替える処理が 行われる。 これにより、 乱数テーブル部 61内の増幅乱数ビット列は、 その順番 が乱数テープノレ単位でランダムに入れ替えられる。
そして次に、 各乱数テーブル 6 Si S 216内から該当する増幅乱数ビット列 を選択する処理が行われる (ステップ S 30〜S 32) 。 例えば、 選択用乱数ビ Vト列 11 から出力されバッファに記憶された 1番目の選択用乱数ビット列を 引数として乱数テーブル 62 が参照される (ステップ S 32) 。 そして、 その引 数と等しい値を有するインデックス番号を選択し、 そのインデックス番号に対応 する乱数ビット列格納部 R oに格納された増幅乱数ビット列を選択する。
例えば、 選択用乱数ビット列出力手段 51 から出力され乱数テーブル 62iに 対応するものとしてバッファに記憶された選択用乱数ビット列が 「000000 11」 である場合、 これを 8桁の 2進数とみなし、 10進数に変換して引数 「3」 を得る。 この引数「3」 を用いて乱数テーブル 62 を参照し、 インデックス部 R 0のインデックス番号が 「3」 の乱数ビット列格納部 Roに格納されている増幅 乱数ビット列 「0101 10101101 1101 10」 を選択する。
そして、 乱数テーブル 62 iと乱数テーブル 622からそれぞれ増幅乱数ビット 列を選択すると (ステップ S 31で Ye s) 、 これら 2つの増幅乱数ビット列の 排他的論理和演算処理を行い (ステップ S 33) 、 16ビットを有する 1個の新 たな増幅乱数ビット列を生成する。
そして、 同様の処理を各乱数テーブル 623〜6216について行い (ステップ S 30で Y e s ) 、 合計で 8個の新たな増幅乱数ビット列を生成すると、 非線形 変換部 80に出力して、 非線形変換段階に移行する。 非線形変換部 8 0では、 乱数ビット列増幅部 6 0よりこれらの N oビットを有 する 8個の増幅乱数ビット列を入力すると、 非線形関数 f ( x ) により非線形変 換し (ステップ S 3 4 ) 、 1 6ビットを有する 1個の乱数ビット列を得る。 そし て、 上記ステップ S 2 5〜ステップ S 3 4の処理を繰り返し実行して必要数の疑 似乱数を得る。
本実施例については、 処理速度の高速化及ぴ乱数性が適切に確保されているか について実験を行っており、 その結果、 従来と比較して 1 7 0倍も処理速度を向 上でき、 同時に適切な乱数性も確保されているとの結果を得た。 以下に、 その実 験内容及び実験結果について説明する。
実験に使用したコンピュータは、 C P U: P e n t i u rn (登録商標) 4 ( 1 . 7 GH z ) 、 メモリ : 2 5 6 MBである。 また、 各設定値は、 上述の実施例と同 —のものとする。 そして、 入れ替え用乱数ビット列発生手段 2 8に用いられる秘 密鍵 K 0は、 1 6進数表記で以下のものに固定した状態として実験を行った。
K0 = (fle2d3c4b5a69788796a5b4c3d2elfl0)16
第 1 3図は、 スループットの計測結果を示す表である。 表中の従来型とは、 8 個の線形フィ一ドパックシフトレジスタ 5 3と、 非線形変換部 8 0を用いて構成 した、 第 1 7図に示すような従来の非線形コンパイナ型疑似乱数発生器を示す。 本実験結果によれば、 第 1 3図に示すように、 疑似乱数発生器 1の平均スルー プットが、 線形フィードパックシフトレジスタ 5 3そのものの平均スループット から、 非線形変換部 8 0の平均スループットに向上しており、 更に、 従来型の約 1 7 0倍 (116.4Mbps/sec÷0.680Mbps/sec=171.176...)になっていることがわか る。 したがって、 このスループット計測結果から、 乱数テーブル 6 2を用いたこ とが疑似乱数発生器 1の高速化に有効であることがわかる。
本実施例における疑似乱数発生器 1のスループットは、次式(1 ) で表される。 【数式】
Figure imgf000034_0001
T 1は、 1つの線形フィ一ドパ クシフトレジスタ 5 3の平均スループットを 示し、 T 2は、 R C 4 (増幅乱数ビット列発生手段 6 6 ) の平均スループットを 示す。 また、 T 3は、 乱数テーブル入れ替え手段 6 7による乱数テーブル入れ替 え処理の平均スループットを示し、 Τ 4は、 1つの乱数テーブル 6 2の平均スル ープットを示す。そして、 Τ 5は、非線形変換部 8 0の平均スループットを示す。 上記式 (1 ) 力 ら乱数テーブル 6 2の計算量が無視できると仮定すると、 N oビ ット ZN iビットを小さくするほど非線形変換部 8 0のスループットに近づける ことができ、 高速化を図ることができる。
疑似乱数の暗号強度の検証については、 N I S Tという疑似乱数検定ツールを 用いて検定を行った。 N 1 S Tとは、 物理乱数及び疑似乱数生成器からの出力デ ータについて乱数性のテストを行うツールであり、 1 6項目からのテストからな る統計のパッケージである。 N I S Tについては、 http:〃 crs nist.gov/rug.に詳 しく説明されている。 第 1 4図は、 本検定に使用した N I S Tのパラメータを示 す表である。各種テストを行うことによって出力された p-valueが 0 <p-value< 1を満たす場合に、 そのテス ト項目をパスしたとみなしている。 本実施例による 疑似乱数発生器 1の疑似乱数を検定したところ、 全てのテスト項目をパスしてい ることが確認できた。 第 1 5図は、 今回の実験による N I S Tの検定結果を示す 図である。
尚、 上述の実施例に示した各設定値は、 暗号の安全性を確認するために設定し たものであり、 これに限定されるものではない。 また、 本発明は、 上述の実施の 形態に限定されるものではなく、 本発明の趣旨を逸脱しない範囲で種々の変更、 組み合わせが可能である。
[発明の効果]
以上説明したように、 本発明に係る疑似乱数発生方法によれば、 出力系列が M 系列のビット列を s個ごとにサンプルしたビット歹【Jは、 その M系列の 1周期分の ビット数 m (= ( 2 ^ n ) 一 1 ) と導出値 sが互いに素であるときには、 他の構 成を有する線形フィードバックシフ トレジスタの M系列を構成し、 また、 バーレ ィキャンプマッセイアルゴリズムによって、 少なくとも 2周期分以上のビット数 を有するビット列から線形フィ一ドバックシフトレジスタを求めることができる ことを利用して、 線形フィードバックシフトレジスタの構成を初期値に基づいて 動的に変更することができ、 変更後の線形フィードバックシフトレジスタから M 系列のビット列を出力させることができる。
したがって、 解読者は、 疑似乱数発生器から出力される疑似乱数に基づいて再 構成前の線形フィードバックシフトレジスタの構成を得ることができず、 初期値 や秘密鍵も解読することができない。この結果、高い暗号強度を得ることができ、 情報の秘匿性を保つことができる。
また、 他の発明によれば、 秘密鍵に基づいて所定のビット数を有する選択用乱 数ビット列を出力させ、 その選択用乱数ビット列を用いて乱数テーブルを参照す ることにより、 乱数テーブル内の複数の増幅乱数ビット列の中から該当する增幅 乱数ビット列を選択し、 非線形変換手段によって非線形変換して疑似乱数として 出力させるので、 小さなビット列を有する選択用乱数ビット列に基づいて、 より 大きなビット数を有する増幅乱数ビット列を得ることができる。
したがって、 非線形変換手段に入力される乱数ビット列をより大きなビット数 を有するものにすることができる。 これにより、 従来、 ボトルネックとなってい た非線形変換手段よりも上流側の乱数ビット列を出力する部分のスループットを 向上させ、 非線形変換手段のスループットに近づけることができ、 疑似乱数発生 器全体のスループットを高速化することができる。
[図面の簡単な説明]
[第 1図]
本実施の形態における疑似乱数発生器を説明する図である。
[第 2図]
本実施の形態における線形フィードバックシフトレジスタの初期多項式を例示 するものである。
[第 3図]
本実施の形態における疑似乱数発生器の動作を説明するフローチャートである。
[第 4図]
疑似乱数発生器の機能を概略的に示す説明図である。
[第 5図]
乱数テ一ブル部の説明図である。
[第 6図] 乱数ビット列増幅部内に構成される各構成要素を説明する概念図である。
[第 7図]
本実施の形態における疑似乱数発生方法を説明するフローチャートである。
[第 8図]
本実施例における疑似乱数発生器を概略的に示す概念図である。
[第 9図]
乱数テ一ブル部を概略的に示す概念図である。
[第 1 0'図]
本実施例における疑似乱数榮生方法を説明するフローチャートである。
[第 1 1図]
本実施の形態における線形フィードバックシフトレジスタの初期多項式を例示 するものである。
[第 1 2図]
線形フィ一ドバックシフトレジスタの再構成処理を説明するフ口一チヤ一トで ある。
[第 1 3図]
スループットの計測結果を示す表である。
[第 1 4図]
本検定に使用した N I S Tのパラメータを示す表である。
[第 1 5図]
N I S Tの検定結果を示す図である。
[第 1 6図]
従来の逐次暗号方式を説明する図である。
[第 1 7図]
暗号化装置の疑似乱数発生器を説明する図である。
[第 1 8図]
一般的な線形フィードバックシフトレジスタの構成を簡単に説明する図である。
[符号の説明]
1 疑似乱数発生器 疑似乱数生成部
線形フィ一ドパックシフトレジスタ
線形フィ一ドバックシフトレジスタ再構成手段 非線形変換部
乱数ビット列出力部
選択用乱数ビット列出力手段
初期値設定手段
線形フィ一ドパックシフトレジスタ
線形フィ一ドバックシフトレジスタ再構成手段 乱数ビット列増幅部
乱数テーブル部
〜6 2 α β 乱数テーブル
排他的論理和演算処理手段
増幅乱数ビット列選択手段 .
乱数テ一ブル初期設定手段
増幅乱数ビット列発生手段
乱数テ一ブル順番入れ替え手段
入れ替え用乱数発生手段
非線形変換部

Claims

請求の範囲
1 . n個のシフトレジスタを有し、 1周期分のビット数が (2 Λ η ) _ 1個 となるビット列を出力可能な線形フィードバックシフトレジスタの初期値を設定 する第 1ステップと、
所定の演算処理により前記初期値から前記線形フィ一ドバックシフトレジスタ の 1周期分のビット数と互いに素である導出値を求める第 2ステップと、 該導出値と前記線形フィードバックシフトレジスタの 1周期分のビット数を 2 倍以上した値とを乗算して、 前記第 1線形フィ一ドバックシフトレジスタにより 出力させるビット列のビット数を算出する第 3ステップと、
前記算出したビット数分のビット列を前記線形フィ一ドバックシフトレジスタ 力 ら前記初期値をもとに出力させる第 4ステップと、
該出力したビット列から前記導出値の間隔ごとにビット列を取り出して新ビッ ト列を生成する第 5ステップと、
該新ビット列を出力可能な構成に前記線形フィードバックシフトレジスタの構 成を再構成する第 6ステップと、
該再構成した後の線形フィ一ドパックシフトレジスタから前記初期値をもとに 疑似乱数を発生させる第 7ステップと、
を有することを特徴とする疑似乱数発生方法。
2 . 前記初期値に対してハッシュ関数を施してハッシュ値を求め、 該ハツシ ュ値に最も近似した素数を導出値として採用することを特徴とする請求項 1に記 載の疑似乱数発生方法。
3 . 前記線形フィ一ドパックシフトレジスタの再構成は、 パーレイキャンプ マッセイアルゴリズムを用いて行われることを特徴とする請求項 1または 2に記 載の疑似乱数発生方法。
4 · 前記第 7ステツプで発生させた疑似乱数を非線形変換する第 8ステップ を有することを特徴とする請求項 1〜 3のいずれかに記載の疑似乱数発生方法。
5 . n個のシフトレジスタを有し、 1周期分のビット数が (2 Λ η ) — 1個 となるビット列を出力可能な線形フィードバックシフトレジスタと、
秘密鍵に基づき前記線形フィ一ドバックシフトレジスタの初期値を設定する初 期値設定手段と、
所定の演算処理により前記初期値から前記線形フィ一ドバックシフトレジスタ の 1周期分のビット数と互いに素である導出値を求める導出値算出手段と、 前記線形フィードバックシフトレジスタの 1周期分のビット数を 2倍以上した 値と前記導出値とを乗算して、 前記第 1線形フィードバックシフトレジスタによ り出力させるビット列のビット数を算出するビット数算出手段と、
前記算出したビット数分のビット列を前記線形フィ一ドバックシフトレジスタ から前記初期値をもとに出力させるビット列出力手段と、
該出力したビット列から前記導出値の間隔ごとにビット列を取り出して新ビッ ト列を生成する新ビット列生成手段と、
該新ビット列を出力可能な構成に前記線形フィードバックシフトレジスタの構 成を再構成する線形フィ一ドバックシフトレジスタ再構成手段と、
該再構成後の線形フィ一ドバックシフトレジスタから前記初期値をもとに疑似 乱数を発生させる疑似乱数努生手段と、 を有することを特徴とする疑似乱数発生 器。
6 . 前記線形フィ一ドバックシフトレジスタ再構成手段の代わりに、 新ビッ ト列を出力可能な構成を有する第 2の線形フィードパックシフトレジスタを生成 する線形フィードバックシフトレジスタ生成手段を設け、 .
前記疑似乱数発生手段は、 前記第 2の線形フィ一ドバックシフトレジスタによ つて初期値をもとに疑似乱数を発生させることを特徴とする請求項 5に記載の疑 似乱数発生器。
7 . 秘密鍵に基づいて所定ビット数を有する選択用乱数ビット列を出力する 選択用乱数ビット列出力手段と、
前記選択用乱数ビット列よりも大きなビット数を有する増幅乱数ビット列を予 め複数格納した乱数テーブルと、
前記選択用乱数ビット列出力手段から出力された選択用乱数ビット列を用いて 前記乱数テーブルを参照することにより、 前記乱数テーブル内の複数の増幅乱数 ビット列の中から該当する増幅乱数ビット列を選択可能な増幅乱数ビット列選択 手段と、
該増幅乱数ビット列選択手段により選択された増幅乱数ビット列を非線形関数 によって非線形変換し疑似乱数として出力する非線形変換手段と、
を有することを特徴とする疑似乱数発生器。
8 . 前記秘密鍵が与えられることにより前記秘密鍵に基づいて前記増幅乱数 ビット列を発生させ、 前記乱数テーブルに格納して、 前記乱数テーブルの初期設 定を行う乱数テーブル初期設定手段を有することを特徴とする請求項 7に記載の 疑似乱数発生器。
9 . 前記選択用乱数ビット列出力手段は、 複数設けられ、
前記乱数テーブルは、 前記各選択用乱数ビット列出力手段にそれぞれ対応する ように設けられ、
前記増幅乱数ビット列選択手段は、 前記各選択用乱数ビット列出力手段から 各々出力された前記各選択用乱数ビット列を用いて前記各選択用乱数ビット列出 力手段ごとに対応する前記乱数テーブルをそれぞれ参照し、 前記各乱数テーブル 内からそれぞれ該当する増幅乱数ビット列を選択し、
非線形変換手段は、 前記各増幅乱数ビット列選択手段によって前記各乱数テー ブルから選択された前記各増幅乱数ビット列を用いて非線形関数により非線形変 換し疑似乱数として出力することを特徴とする請求項 7または 8に記載の疑似乱 数発生器。
1 0 . 前記各選択用乱数ビット列出力手段ごとにそれぞれ複数の乱数テープ ルを設け、
前記増幅乱数ビット列選択手段により前記各乱数テーブル内から選択された各 増幅乱数ビット列を前記選択用乱数ビット列出力手段ごとに排他的論理和演算し て非線形変換手段に出力する排他的論理和演算処理手段を有することを特徴とす る請求項 9に記載の疑似乱数発生器。
1 1 . 所定のタイミングで前記各乱数テーブル同士の入れ替えを行う乱数テ 一ブル入れ替え手段を有することを特徴とする請求項 9または 1 0に記載の疑似 乱数発生器。
1 2 . 前記乱数テーブル入れ替え手段は、
前記各乱数テ一プルを参照するために必要な選択用乱数ビット列を前記選択用 乱数ビット列出力手段が出力するごとに、 前記各乱数テーブル同士の入れ替えを 行うことを特徴とする請求項 1 1に記載の疑似乱数発生器。
1 3 . 前記乱数テーブル入れ替え手段は、
前記各乱数テ一ブルの個数と等しレ、個数の乱数テ一ブル入れ替え用乱数を発生 させ、
該乱数テ一ブル入れ替え用乱数を前記乱数テ一ブルのテ一ブル番号として各乱 数テーブルに付与し、 前記テーブル番号をもとに予め設定された規則に従って前 記乱数テーブルの順番を入れ替えることを特徴とする請求項 1 1または 1 2に記 載の疑似乱数発生器。
1 4 . コンピュータを、
秘密鍵に基づいて所定ビット数を有する選択用乱数ビット列を出力させる選択 用乱数ビット列出力手段と、
前記選択用乱数ビット列よりも大きなビット数を有する増幅乱数ビット列を予 め複数格納した乱数テーブルと、
前記選択用乱数ビット列出力手段から出力された選択用乱数ビット列を用いて 前記乱数テーブルを参照することにより、 前記乱数テーブル内の複数の増幅乱数 ビット列の中から該当する増幅乱数ビット列を選択可能な増幅乱数ビット列選択 手段と、
該増幅乱数ビット列選択手段により選択された増幅乱数ビット列を非線形関数 によって非線形変換し疑似乱数として出力する非線形変換手段として機能させる ための疑似乱数発生プログラム。
1 5 . 前記秘密鍵が与えられることにより前記秘密鍵に基づいて前記增幅乱 数ビット列を発生させ、 前記乱数テーブルに格納して、 前記乱数テーブルの初期 設定を行う乱数テーブル初期設定手段としてコンピュータを機能させることを特 徴とする請求項 1 4に記載の疑似乱数発生プログラム。
1 6 . 前記選択用乱数ビット列出力手段は、 複数設けられ、
前記乱数テーブルは、 前記各選択用乱数ビット列出力手段にそれぞれ対応する ように設けられ、
前記増幅乱数ビット列選択手段は、 前記各選択用乱数ビット列出力手段から 各々出力された前記各選択用乱数ビット列を用いて前記各選択用乱数ビット列出 力手段ごとに対応する前記乱数テーブルをそれぞれ参照し、 前記各乱数テーブル 内からそれぞれ該当する増幅乱数ビット列を選択し、
非線形変換手段は、 前記各増幅乱数ビット列選択手段によつて前記各乱数テー ブルから選択された前記各増幅乱数ビット列を用いて非線形関数により非線形変 換し疑似乱数として出力することを特徴とする請求項 1 4または 1 5に記載の疑 似乱数発生プログラム。
1 7 . 前記各選択用乱数ビット列出力手段ごとにそれぞれ複数の乱数テープ ルを設け、
前記増幅乱数ビット列選択手段により前記各乱数テ一ブル内から選択された各 増幅乱数ビット列を前記選択用乱数ビット列出力手段ごとに排他的論理和演算し て非線形変換手段に出力する排他的論理和演算処理手段としてコンピュータを機 能させることを特徴とする請求項 1 6に記載の疑似乱数発生プログラム。
1 8 . 所定のタイミングで前記各乱数テーブル同士の入れ替えを行う乱数テ 一プル入れ替え手段としてコンピュータを機能させることを特徴とする請求項 1 6または 1 7に記載の疑似乱数発生プロダラム。
1 9 . 前記乱数テーブル入れ替え手段は、
前記各乱数テ一ブルを参照するために必要な選択用乱数ビット列を前記選択用 乱数ビット列出力手段が出力するごとに、 前記各乱数テーブル同士の入れ替えを 行うことを特徴とする請求項 1 8に記載の疑似乱数発生プログラム。
2 0 . 前記乱数テーブル入れ替え手段は、
前記各乱数テ一ブルの個数と等しい個数の乱数テーブル入れ替え用乱数を発生 させ、
該乱数テーブル入れ替え用乱数を前記乱数テーブルのテーブル番号として各乱 数テーブルに付与し、 前記テーブル番号をもとに予め篛定された規則に従って前 記乱数テーブルの順番を入れ替えることを特徴とする請求項 1 8または 1 9に記 載の疑似乱数発生プログラム。
PCT/JP2003/008794 2002-10-07 2003-07-10 疑似乱数発生方法及び疑似乱数発生器 WO2004032098A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/530,574 US20060039558A1 (en) 2002-10-07 2003-07-10 Pseudo-random number generation method and pseudo-random number generator
AU2003252595A AU2003252595A1 (en) 2002-10-07 2003-07-10 Pseudo-random number generation method and pseudo-random number generator
JP2004541207A JP4052480B2 (ja) 2002-10-07 2003-07-10 疑似乱数発生方法、疑似乱数発生器、及び疑似乱数発生プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002294184 2002-10-07
JP2002-294184 2002-10-07

Publications (1)

Publication Number Publication Date
WO2004032098A1 true WO2004032098A1 (ja) 2004-04-15

Family

ID=32064030

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/008794 WO2004032098A1 (ja) 2002-10-07 2003-07-10 疑似乱数発生方法及び疑似乱数発生器

Country Status (5)

Country Link
US (1) US20060039558A1 (ja)
JP (1) JP4052480B2 (ja)
CN (1) CN1714377A (ja)
AU (1) AU2003252595A1 (ja)
WO (1) WO2004032098A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100454236C (zh) * 2004-05-13 2009-01-21 华为技术有限公司 随机数发生装置和软件测试的系统及方法
US7587046B2 (en) * 2004-11-10 2009-09-08 Electronics And Telecommunications Research Institute Method and apparatus for generating keystream
JP2009273054A (ja) * 2008-05-09 2009-11-19 Mitsubishi Electric Corp 暗号化通信システム
JP2010181789A (ja) * 2009-02-09 2010-08-19 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
CN101040306B (zh) * 2005-09-09 2012-01-04 三菱电机株式会社 伪随机数生成装置
WO2016194382A1 (ja) * 2015-06-04 2016-12-08 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
JP2017005697A (ja) * 2015-06-04 2017-01-05 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
JP2019518397A (ja) * 2016-06-06 2019-06-27 アジャイルピーキュー, インコーポレイテッド データ変換システムおよび方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101032592B1 (ko) * 2006-07-21 2011-05-06 호쿠리쿠 니혼 덴키 소프트웨어 가부시키가이샤 암호 장치, 기록 매체, 및 방법
KR100766081B1 (ko) 2006-08-30 2007-10-12 삼성전자주식회사 영상신호처리장치 및 그의 영상신호처리방법
KR101070628B1 (ko) * 2007-05-21 2011-10-07 삼성전자주식회사 영상처리장치 및 그 제어방법
KR100931507B1 (ko) * 2007-12-11 2009-12-11 한국전자통신연구원 Rfid 시스템에서 대칭키 암호화 기반 통신 데이터 보호방법과 이를 수행하기 위한 리더 및 태그
KR101685173B1 (ko) * 2009-07-13 2016-12-12 주식회사 팬택 무선통신 시스템에서의 시퀀스 생성 방법 및 그 장치
US8949493B1 (en) * 2010-07-30 2015-02-03 Altera Corporation Configurable multi-lane scrambler for flexible protocol support
CN102752110B (zh) * 2011-04-19 2015-04-15 中国银行股份有限公司 一种动态密码生成方法及系统
JP5882602B2 (ja) * 2011-05-20 2016-03-09 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
GB2491896A (en) * 2011-06-17 2012-12-19 Univ Bruxelles Secret key generation
CN102314332B (zh) * 2011-07-27 2014-04-09 中国科学院计算机网络信息中心 伪随机数生成装置和方法
US8767954B2 (en) * 2011-12-01 2014-07-01 Colloid, Llc Methods and systems for deriving a cryptographic framework
US20140112469A1 (en) * 2012-10-22 2014-04-24 John M. Layne Novel encryption processes based upon irrational numbers and devices to accomplish the same
US9201629B2 (en) 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US8873750B2 (en) * 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
AT515097B1 (de) * 2014-03-31 2015-06-15 Hödl Josef Verschlüsselungsverfahren und Pseudo-Zufallszahlengenerator
DE102015100760A1 (de) * 2015-01-20 2016-07-21 Infineon Technologies Ag Generieren von Zufallszahlen
US10680810B2 (en) * 2016-10-26 2020-06-09 Nxp B.V. Method of generating an elliptic curve cryptographic key pair
US11055065B2 (en) * 2018-04-18 2021-07-06 Ememory Technology Inc. PUF-based true random number generation system
CN110768785B (zh) * 2019-10-22 2023-05-02 宜人恒业科技发展(北京)有限公司 一种编、解码方法、相关装置及计算机设备
CN113504894B (zh) * 2021-09-09 2021-12-17 华控清交信息科技(北京)有限公司 一种随机数产生器、生成伪随机数的方法和一种芯片
CN115714644B (zh) * 2022-10-31 2023-08-15 北京海泰方圆科技股份有限公司 一种随机数生成方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61246787A (ja) * 1985-03-27 1986-11-04 富士通株式会社 乱数混合処理方式
JPS62144243A (ja) * 1985-12-18 1987-06-27 Nec Corp 乱数発生器
JPH04115616A (ja) * 1990-08-31 1992-04-16 Toshiba Corp ランダム符号発生装置
JPH0736672A (ja) * 1993-07-20 1995-02-07 Canon Inc 乱数発生器、及びそれを用いた通信システム及びその方法
JPH07104976A (ja) * 1993-10-06 1995-04-21 Nec Corp 擬似乱数発生装置
JPH09179726A (ja) * 1995-12-25 1997-07-11 Nec Corp 擬似乱数発生装置
JPH10240500A (ja) * 1997-02-28 1998-09-11 Toshiba Corp 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2845308B2 (ja) * 1993-04-02 1999-01-13 株式会社アドバンテスト 並列疑似ランダムパターン発生器
CA2128115C (en) * 1993-07-20 1999-08-10 Keiichi Iwamura Encryption apparatus, communication system using the same and method therefor
US5910907A (en) * 1997-02-20 1999-06-08 C.K. Chen Shift register based pseudorandom number generator
EP1223506B1 (en) * 2001-01-16 2006-12-13 Telefonaktiebolaget LM Ericsson (publ) Random number generator using compression
FR2832231B3 (fr) * 2001-11-15 2003-12-19 Jean Luc Stehle Procede pour generer des nombres aleatoires

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61246787A (ja) * 1985-03-27 1986-11-04 富士通株式会社 乱数混合処理方式
JPS62144243A (ja) * 1985-12-18 1987-06-27 Nec Corp 乱数発生器
JPH04115616A (ja) * 1990-08-31 1992-04-16 Toshiba Corp ランダム符号発生装置
JPH0736672A (ja) * 1993-07-20 1995-02-07 Canon Inc 乱数発生器、及びそれを用いた通信システム及びその方法
JPH07104976A (ja) * 1993-10-06 1995-04-21 Nec Corp 擬似乱数発生装置
JPH09179726A (ja) * 1995-12-25 1997-07-11 Nec Corp 擬似乱数発生装置
JPH10240500A (ja) * 1997-02-28 1998-09-11 Toshiba Corp 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100454236C (zh) * 2004-05-13 2009-01-21 华为技术有限公司 随机数发生装置和软件测试的系统及方法
US7587046B2 (en) * 2004-11-10 2009-09-08 Electronics And Telecommunications Research Institute Method and apparatus for generating keystream
CN101040306B (zh) * 2005-09-09 2012-01-04 三菱电机株式会社 伪随机数生成装置
JP2009273054A (ja) * 2008-05-09 2009-11-19 Mitsubishi Electric Corp 暗号化通信システム
JP2010181789A (ja) * 2009-02-09 2010-08-19 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
WO2016194382A1 (ja) * 2015-06-04 2016-12-08 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
JP2017005697A (ja) * 2015-06-04 2017-01-05 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
US10708044B2 (en) 2015-06-04 2020-07-07 Quantaglion Co., Ltd. Pulse generation device using a radioisotope and authentication system
JP2019518397A (ja) * 2016-06-06 2019-06-27 アジャイルピーキュー, インコーポレイテッド データ変換システムおよび方法

Also Published As

Publication number Publication date
AU2003252595A1 (en) 2004-04-23
JPWO2004032098A1 (ja) 2006-02-02
US20060039558A1 (en) 2006-02-23
CN1714377A (zh) 2005-12-28
JP4052480B2 (ja) 2008-02-27

Similar Documents

Publication Publication Date Title
WO2004032098A1 (ja) 疑似乱数発生方法及び疑似乱数発生器
US5365588A (en) High speed encryption system and method
US8290148B2 (en) Encryption processing apparatus, encryption processing method, and computer program
JP3339688B2 (ja) 非決定論的ミクスチャー発生器ストリーム暗号化システム
CA2723405C (en) Cryptographic system including a random number generator using finite field arithmetics
CN101040474B (zh) 为提高安全性的置换数据变换
EP2096616A1 (en) Encryption device, encryption method, and computer program
US20110211691A1 (en) Common key block encryption device, common key block encryption method, and program
Kanso Modified self-shrinking generator
KR20110004474A (ko) 갈루아 폐체 암호 시스템
WO1994016509A1 (en) A method and apparatus for generating a cipher stream
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
CN102857337A (zh) 为提高安全性的置换数据变换
US20040096056A1 (en) Method of encryption using multi-key process to create a variable-length key
CN112422272B (zh) 一种防功耗攻击的aes加密方法及电路
KR20180081559A (ko) 암호화 동작을 위한 키 시퀀스 생성
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
JP2004363739A (ja) 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
WO2014013680A1 (ja) ユニバーサルハッシュ関数演算装置、方法およびプログラム
Ghazi et al. Robust and efficient dynamic stream cipher cryptosystem
JPH11298471A (ja) ブロック暗号化方法及び装置
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
KR101131167B1 (ko) 스트림 암호를 위한 키수열 발생 방법 및 장치. 블록 암호를 위한 S-box 및 상기 S-box에서의 치환 방법
Cardell et al. Linear models for high-complexity sequences

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2004541207

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 2006039558

Country of ref document: US

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 10530574

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 20038255723

Country of ref document: CN

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10530574

Country of ref document: US