CODING - Stream Cipher Methods by Varying Components during Ciphering Data

Kernel of the symmetric block ciphering methods presented here is the coupling of XOR operations and of invertible substitution tables S with all possible 256**t byte groups (with t=1, 2, 3, ... Bytes, fixed at the beginning) being derived from keys: K(block) := S(S(block) ⊗ Eo) ⊗ Eu with-Eo upper and Eu lower triangular (byte-group-)matrix with (byte-block-length/t)**2 values, value 1 at all non-zero positions,-⊕ the byte-group-wise addition without carry ('xor'; 'not xor' is possible too),-⊗ the (vector) multiplication which belongs to ⊕. Variable block lengths (v*t or (mod t)>0) are possible. This kernel can be applied n-times: Kn(block) := K(...K(block)...) with n K-operations, in which n can be variable. Because XOR operations and Stables only operate in a useful manner if 'block' is not to "homogeneous" and for safety, two further components are determined from keys-parameters of 2 pseudo random processes,-operation key used at beginning and at end to get a ciphered block: cblock := S(ZZ2 ⊕ S(OpE ⊕ S(Kn(OpA ⊕ S(ZZ1 ⊕ S(block)))))) with-ZZ1 and ZZ2 are the bytes of the 1. and 2. pseudo random number process in block length,-OpA and OpE is the (1./front and 2./back part of the or multiple of the) operation key. An initial key is first expanded to t*256**t bytes (all further keys have this size too) and can be modified so the result key does not statistically differ from a random key. Using an invertible Stable , the value (modulo n) of only as much consecutive bits of a key as to represent the number n-1 is determined to shift the last n Stable elements cyclically in accordance with this value, n=2 to 256**t. So all such 256**t! tables can be generated by the top bits of all possible keys and have length of t*256**t bytes. The byte-group-value +1 at a position of a Stable determines the byte-group in the key from which up 2*7 bytes are used to initialize two floating point numbers (IEEE 754) for a pseudo random process. Floating point numbers are initialized again if a process will be cyclic. Idea is, to modify (operation) keys similar to data blocks to generate and use more or less continual new Stables , new pseudo random processes, and new operation keys during ciphering data. Inspections show that in spite of knowledge of 2 of the 3 components Stable , pseudo random parameters, and operation key as well as the knowledge of …