International Association for Cryptologic Research

International Association
for Cryptologic Research

IACR News item: 16 November 2013

Jürgen Müller
ePrint Report ePrint Report
{\\begin{tabbing}

\\hspace{0,3 cm}\\=\\hspace{0,7 cm}\\=\\hspace{8 cm}\\=\\kill

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:\\\\

\\>\\>\\textbf{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 (v$\\cdot$t or (mod t)$>$0) are possible. This kernel can be applied n-times:\\\\

\\>\\>\\textbf{K}$_{\\textbf{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:\\\\

\\>\\>\\textbf{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.

\\end{tabbing}

An initial key is first expanded to t$\\cdot$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 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 256$^{t}$. So all such 256$^{t}$! tables can be generated by the top bits of all possible keys and have length of t$\\cdot$256$^{t}$ bytes.

The byte-group-value +1 at a position of a S-table determines the byte-group in the key from which up 2$\\cdot$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 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.

}

Expand

Additional news items may be found on the IACR news page.