public abstract class X9_31 extends FIPS140_2Compliant
The algorithm described below employs symmetric cipher encryption using a symmetric key, represented as ede*K. It also requires a seed value V, and a date/time vector DT which is updated for each iteration of the algorithm. The symmetric key, seed value, and any parameters used with the cipher MUST be kept secret.
I = ede*K(DT) R = ede*K(I xor V) V = ede*K(R xor I)
All values in the algorithm above are the same size as the block size of the cipher that is used. The algorithm is initialized upon instantiation; it is then repeatedly executed as random bytes are requested.
engineGenerateSeed, engineNextBytes, engineSetSeed