Nova Patents
CA2179497C

Pseudo-random generator

Abstract

Methodology and concomitant circuitry to generate crytographically strong pseudo-random bit streams utilize secure block cypherencoders. Typically, each block cypher encoder (150) has a first seed (x?) and a random key (k) as an input. In the most basic realization ofthe methodology and circuitry, the ouput of each encoder is fed back (151) to connect to its input. The first seed serves as the initial input,and each subsequent input is the immediate output. Each bit in the crytographically strong pseudo-random bit stream is related (160) toan inner product between each input to the encoder and a second seed (h).

CA2179497C, drawing sheet 1
Sheet 1 of 3

Term

Term ended

Expired 18 January 2015, 11.7 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

31 claims: 16 independent, 15 dependent

  1. 1
    What is claimed is; 1. A method for generating a stream of cryptographically strong pseudorandom bits with:a block cypher encoder having a fixed random encoder key;and first and second seeds of the same length, the method 5 comprising the steps of (a) inputing the first seed as a first input to the block cypher encoder, (b) generating an output bit in the stream in correspondence to an inner product between the input of the block cypher encoder and the second 10 seed, and (c) feeding back the output of the block cypher encoder as a next input to the block cypher encoder, and returning to step (b).
  2. 3
    A method for generating a stream of cryptographically 20 strong pseudo-random bits with:a block cypher encoder having a fixed random encoder key;and a first seed and S second seeds all of the same length, the method comprising the steps of (a) inputing the first seed as a first input to the block cypher encoder, 25 (b) generating S output bits in the stream in correspondence to S inn^r products between the input of the block cypher encoder and the S second seeds, and (c) feeding back the output of the block cypher encoder as a next input to the block cypher encoder, and returning to step (b), 30
  3. 5
    A method for generating a stream of cryptographically strong pseudo-random bits in groups of N with:N block cypher encoders wherein each of the encoders has a different fixed random key;and N first and N second seeds, all of the same length, the method comprising the steDs of 5 (a) inputing a first seed I, 1=1, 2, ..., N, as a first input to the corresponding encoder I, (b) concurrently generating an output bit I in each group in correspondence to an inner product between the input to the encoder Ï and the corresponding second seed I, and 10 (c) feeding back an output of each encoder 1 as its next input, and returning to step (b).
  4. 7
    A method for generating a stream of cryptographically strong pseudo-random bits in groups of NS with:N block cypher encoders 20 wherein each of the encoders has a different fixed random key;N first and NS second seeds, all of the same length, the method comprising the steps of (a) inputing a first seed 1,1=1, 2, ..., N, as a first input to the corresponding encoder I, (b) concurrently generating output bits I,J, J=l, 2, ..., S, in 25 each group of NS bits in correspondence to an inner product between the input to the encoder I and a corresponding second seed I, J, and (c) feeding back the output of each encoder I as its next input, and returning to step (b).
  5. 9
    A method for generating a stream of cryptographically strong pseudo-random bits with:two block cypher encoders wherein a fixed random encoder key is different for each of the encoders;and first and second - 15 2179497 seeds of the game length, the method comprising the steps of (a) interconnecting the two block cypher encoders such that an output of the first encoder serves as an input to the second encoder, (b) inputing the first seed as a first input to the first encoder, 5 (c) generating an output bit in the stream in correspondence to an inner product between the input of the first encoder and the second seed, and (d) feeding back the output of the second encoder as a next input to the first encoder, and returning to step (c).
  6. 11
    A method for generating a stream of cryptographically strong pseudo-random bits with:two block cypher encoders wherein a fixed random encoder key is different for each of the encoders;and a first seed and S second seeds all of the same length, the method comprising the steps of (a) interconnecting the two block cypher encoders such that an 20 output of first encoder serves as an input of a second encoder, (b) inputing the first seed as a first input of the first encoder, (c) generating S output bits in the stream in correspondence to S inner products between the input of the first encoder and the S second seeds, and (d) feeding back the output of the second encoder as a next input 25 to the first encoder, and returning to step (c).
  7. 13
    A method for generating a stream of cryptographically strong pseudo-random bits in sets of N with:a plurality N of two-block cypher encoders wherein a fixed random encoder key is different for each of the 35 encoders in the two-block encoders;and N first seeds and N second seeds all of the same length, the method comprising the steps of (a) interconnecting each of the twoblock encoders such that an A • 16 output of a first encoder serves as an input of a second encoder, (b) inputing a first seed I, 1—1,2, ..., N as a first input to the corresponding first encoder of two-block encoder I, (c) concurrently generating an output bit I in a corresponding one of the sets in correspondence to an inner product between the input to the twoblock encoder I and the corresponding second seed 1, and (d) feeding back an output of each second encoder of the two-block encoder I as a next input to the first encoder of the two-block encoder I, and returning to step (c).
  8. 15
    A method for generating a stream of cryptographically strong pseudo-random bits in sets of NS with:a plurality N of two-block cypher encoders wherein a fixed random encoder key is different for each of the encoders in the two-block encoders;and N first seeds and NS second seeds all of the same length, the method comprising the steps of (a) interconnecting each of the two-block encoders such that an output of first encoder serves as an input of a second encoder, (b) inputing a first seed 1,1=1,2, ..., N as a first input to the corresponding first encoder of two-block encoder I, (c) concurrently generating output bits I,J, J=l,2, ..,, S, in a corresponding one of the sets of NS bits in correspondence to an inner product between the input to the first encoder of the two-block encoder I and the corresponding second seed I, J and (d) feeding back an output of each second encoder of each twoblock encoder I as a next input to the first encoder of each two-block encoder I, and returning to step (c).
  9. 17
    A method for generating a cryptographically strong pseudo-random function wherein a function index ia composed of first and second seeds each of length n and a key for a block cypher encoder, wherein an input to the function is composed of an m bit string, the method comprising the steps of 5 (a) feeding back an output of the block cypher encoder to an input of the block cypher encoder, (b) inputing the key to the block cypher encoder and identifying a current seed as an initial first seed, (c) initializing a bit pointer to point to a least significant bit of 10 a function input, (d) inputing a current seed to the block cypher encoder and generating an output stream of length 2n bits in correspondence to 2n inner products between the 2n successive inputs of the block cypher encoder and the second seed, 15 (e) if the bit pointer does not point to a most significant bit, continuing with step (f);otherwise, proceeding to step (h), (f) if the bit in the function input pointed at by the bit pointer is a first bit value, selecting the first n bits of the output stream as the current seed to the block cypher encoder, incrementing the bit pointer, and returning to step 20 (d), (g) if the bit in the function input pointed at by the bit pointer is a second bit value, selecting the last n bits of the output stream as the current seed to the block cypher encoder, incrementing the bit pointer, and returning to step ( *), 25 (h) if the most significant hit in the function input is a first bit value, selecting the first n bits of the output stream as a function value, or (i) if the most significant bit in the function input is a second bit value, selecting the last n bits of the output stream as the function value.
  10. 18
    Circuitry for generating a stream of cryptographically 30 strong pseudo-random bits utilising first and second seeds of the same length, the circuitry comprising a block cypher encoder having a fixed random encoder key, means, coupled to an input to said block cypher encoder, for inputing the first seed as a first input to said block cypher encoder, 35 means, coupled to the input of said said block cypher encoder, for generating an output bit in the stream in correspondence to an inner product between the input of said block cypher encoder and the second seed, and A - 18 means, coupled to the input and output of gaid block cypher encoder, for feeding back the output of said block cypher encoder to the input of the block cypher encoder.
  11. 20
    Circuitry for generating a stream of cryptographically strong pseudo-random bits utilizing a first seed and S second seeds all of the same length, the circuitry comprising a block cypher encoder having a fixed random encoder key, means, coupled to an input of said block cypher encoder, for inputing the first seed as a first input to said block cypher encoder, means, coupled to the input of said block cypher encoder, for generating S output bits in the stream in correspondence to S inner products between the input of said block cypher encoder and the S second seeds, and means, coupled to the input and an output of said block cypher encoder, for feeding back the output of said block cypher encoder to the input of said block cypher encoder.
  12. 22
    Circuitry for generating a stream of cryptographically strong pseudorandom bits in groups of NS utilising N first and NS second seeds, all of the same length, the circuitry comprising N block cypher encoders wherein each of the encoders has a different fixed random key, means, coupled to inputs of said N block cypher encoders, for inputing a first seed 1,1=1, 2, ..., N, as a first input to the corresponding . 2179497 19 encoder 1, means, coupled to the inputs of each of said N block cypher encoders, for concurrently generating output bits I,J, J=l, 2, ..., S, in each group of NS bits in correspondence to an inner product between an input to each encoder I and the corresponding second seed I, J, and means, coupled to the input and output of each of said encoders, for feeding back an output of each encoder I as its next input.
  13. 24
    Circuitry for generating a stream of cryptographically strong pseudo-random bits utilizing first and second seeds of the same length, the circuitry comprising two block cypher encoders wherein a fixed random encoder key is different for each of the encoders, coupled to the two encoders, for interconnecting the two encoders such that an output of the first encoder serves as an input of the second encoder, means, coupled to the first encoder, for inputing the first seed as a first input of the first encoder, means, coupled to the first encoder, for generating an output bit in the stream in correspondence to an inner product between the input of the first encoder and the second seed, and means, coupled to said encoders, for feeding back the output of the second encoder as a subsequent input of the first encoder.
  14. 26
    Circuitry for generating a stream of cryptographically strong pseudo-random bits utilizing a first seed and S second seeds all of the same length, the circuitry comprising two block cypher encoders wherein a fixed random encoder key is different for each of the encoders, means, coupled to the two encoders, for interconnecting the two encoders such that an output of a first encoder serves as an input of a second encoder, means, coupled to the first encoder, for inputing the first seed as a first input of the first encoder, means, coupled to the first encoder, for generating S output bits in the stream in correspondence to S inner products between the input of the first encoder and the S second seeds, and means, coupled to said encoders, for feeding back the output of the second encoder as a subsequent input the the first encoder.
  15. 28
    Circuitry for generating a stream of cryptographically strong pseudorandom bits in seta of N utilising N first seeds and N second seeds all of the same length, the circuitry comprising a plurality N of two-block cypher encoders wherein for each of the twoblock encoders a fixed random encoder key is different for each of the encoders in the twoblock encoders, means, coupled to the N twoblock encoders, for interconnecting each of the twoblock encoders such that an output of the first encoder serves as an input of the second encoder, means, coupled to the N twoblock encoders, for inputing a first seed 1,1=1,2, ..., N as a first input to the corresponding first encoder of twoblock encoder I, means, coupled to the input of the first encoder of each encoder I, for concurrently generating an output bit I in each of the sets in correspondence to an inner product between the input to the twoblock encoder I and the rZI79497 - 21 corresponding second seed I, and means, coupled to each two-block encoder I, for feeding back the output of the second encoder of each two-block encoder I as a next input to the first encoder of each two-block encoder I. 5
  16. 30
    Circuity for generating a stream of cryptographically strong pseudo-random bits in sets of NS utilizing N first seeds and NS second seeds all of the same length, the circuitry comprising 15 a plurality N of two-block cypher encoders wherein for each of the two-block encoders a fixed random encoder key is different for each of the encoders in the two-block encoders, means, coupled to the N two-block encoders, for interconnecting each of the two-block encoders such that an output of the first encoder serves as 20 an input of the second encoder, means, coupled to the N two-block encoders, for inputing a first seed 1,1=1,2, ..., N as a first input to the corresponding first encoder of twoblock encoder I, means, coupled to the input of the first encoder of each encoder I, 25 for concurrently generating output bits I,J, J=l,2, ..., S, in each of the sets of NS bits in correspondence to an inner product between the input to the first encoder of the two-block encoder I and the corresponding second seed I, J and means, coupled to each two-block encoder I, for feeding back the output of each second encoder of each two-block encoder I as a next input to 30 the first encoder of each two-block encoder I.
Independent claims16