Paper 2013/742
CODING  Stream Cipher Methods by Varying Components during Ciphering Data
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 256**t 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 (bytegroup)matrix with (byteblocklength/t)**2 values, value 1 at all nonzero positions,  $\oplus$ the bytegroupwise addition without carry ('xor'; 'not xor' is possible too),  $\otimes$ the (vector) multiplication which belongs to $\oplus$. Variable block lengths (v*t or (mod t)>0) are possible. This kernel can be applied ntimes: K$_{n}$(block) := K(...K(block)...) with n Koperations, 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(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 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 n1 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 bytegroupvalue +1 at a position of a Stable determines the bytegroup 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 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 componentchanging to the compromised components. By addon usage of separate components only for the modifications of keys, it will be guaranteed that data sections ciphered after a componentchanging 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.
Metadata
 Available format(s)
 Publication info
 Preprint. MINOR revision.
 Keywords
 block cipherspseudorandomnessstream ciphers
 Contact author(s)
 sysjm @ tonline de
 History
 20131205: last of 5 revisions
 20131117: received
 See all versions
 Short URL
 https://ia.cr/2013/742
 License

CC BY
BibTeX
@misc{cryptoeprint:2013/742, author = {Jürgen Müller}, title = {CODING  Stream Cipher Methods by Varying Components during Ciphering Data}, howpublished = {Cryptology ePrint Archive, Paper 2013/742}, year = {2013}, note = {\url{https://eprint.iacr.org/2013/742}}, url = {https://eprint.iacr.org/2013/742} }