[Resource Topic] 2013/742: CODING - Stream Cipher Methods by Varying Components during Ciphering Data

Welcome to the resource topic for 2013/742

Title:
CODING - Stream Cipher Methods by Varying Components during Ciphering Data

Authors: Jürgen Müller

Abstract:

Kernel of the symmetric block ciphering methods presented here is the coupling of XOR operations and of invertible substitution tables S with all possible 256t byte groups (with t=1, 2, 3, … bytes, fixed at the beginning) being derived from keys: K(block) := S(S(block) \otimes E${o}) \otimes$ E${u} with - E{o} upper and E{u} lower triangular (byte-group-)matrix with (byte-block-length/t)**2 values, value 1 at all non-zero positions, - \oplus$ the byte-group-wise addition without carry (‘xor’; ‘not xor’ is possible too), - \otimes the (vector) multiplication which belongs to \oplus. Variable block lengths (vt or (mod t)>0) are possible. This kernel can be applied n-times: K${n}(block) := K(...K(block)...) with n K-operations, in which n can be variable. Because XOR operations and S-tables 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(ZZ{2} \oplus$ S(Op${E} \oplus$ S(K${n}(Op{A} \oplus$ S(ZZ${1} \oplus$ S(block)))))) with - ZZ${1} and ZZ{2} are the bytes of the 1. and 2. pseudo random number process in block length, - Op{A} and Op{E}$ is the (1./front and 2./back part of the or multiple of the) operation key. An initial key is first expanded to t256t 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 S-table, 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 S-table elements cyclically in accordance with this value, n=2 to 256t. So all such 256t! tables can be generated by the top bits of all possible keys and have length of t256**t bytes. The byte-group-value +1 at a position of a S-table determines the byte-group in the key from which up 27 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 S-tables, new pseudo random processes, and new operation keys during ciphering data. Inspections show that in spite of knowledge of 2 of the 3 components S-table, pseudo random parameters, and operation key as well as the knowledge of original and ciphered data it can not infer the missing 3. component if component modifications are carried out “some time”. As well it is shown that by knowledge of the 3 components generated by a key the key itself can not be inferred (because of usage of interim operation keys). That is compromising of data and with that of components does not concern data ciphered before component-changing to the compromised components. By add-on usage of separate components only for the modifications of keys, it will be guaranteed that data sections ciphered after a component-changing started from compromised components are not compromised automatically. Because of that a safety stream ciphering should be possible as already constructed for t=1,2,3.

ePrint: https://eprint.iacr.org/2013/742

See all topics related to this paper.

Feel free to post resources that are related to this paper below.

Example resources include: implementations, explanation materials, talks, slides, links to previous discussions on other websites.

For more information, see the rules for Resource Topics .