Patent ID: 8122075
Filing Date: 2012-02-21
Classification: G06F,H04L

Abstract:
1. A pseudorandom number generator comprising: a state storage unit of a capacity of two blocks (one block is n bits); a buffer of a capacity of a plurality of blocks; a nonlinear transformation unit for receiving stored content in the buffer in response to a clock input, and outputting data of the same size as the received data; a first linear transformation unit for receiving content of the state storage unit as well as the output from the nonlinear transformation unit, and storing an output into the state storage unit; a second linear transformation unit for receiving the stored content in the buffer as well as the stored content in the state storage unit in response to the clock input, and storing an output into the buffer; and an output unit for outputting the stored content of the state storage unit as a random number sequence, wherein the nonlinear transformation unit includes a nonlinear substitution unit for receiving 1 block and outputting 1 block, to perform the following process: X(1)←S1 [B(i1)], X(2)←S2 [B(i2)], X(3)←S3 [B(i3)], X(4)←S4 [B(i4)], wherein B(i) represents the i-th block of the buffer, X(i) represents the output block of the nonlinear transformation unit, Sj[W] represents the substitution operation by the nonlinear substitution unit, and the arrow represents the substitution of data, respectively, wherein the first linear transformation unit receives 2 blocks data A(0), A(1) output from the state storage unit and 4 blocks data X(1), X(2), X(3), X(4) output from the nonlinear transformation unit, and outputs 2 blocks data R(0), R(1), wherein the first linear transformation unit includes a small linear transformation unit which receives 2 blocks data P(0), P(1), performs (Q(0), Q(1)←L(P(0), P(1)), and outputs 2 blocks data Q(0), Q(1), wherein the first linear transformation unit further performs the following operations: P(0)←A(0) XOR X(1), P(1)←A(1) XOR X(2), R(0)←Q(0) XOR X(3), R(1)←Q(1) XOR X(4), wherein A(i) represents the i-th block output from the state storage unit, X(i) represents the i-th block output from the nonlinear transformation unit R(i) represents the output block from the first linear transformation unit, L represents an operation by the small linear transformation unit L, the arrow represents the substitution of data, P(i) represents the i-th block input into the small linear transformation unit L, and Q(i) represents the i-th block output by the small linear transformation unit L.