Cómo hacer el paso Rijndael MixColumns

0

Estoy tratando de seguir todos los pasos del algoritmo de cifrado Rijndael usando lápiz y papel. He estado usando enlace como ejemplo. El paso de columnas de la mezcla tiene mucho que ver con ello. Para explicarlo mejor, he estado siguiendo enlace . Eso es realmente bueno porque usa los mismos números que en el primer enlace. Mi problema es que cuando llego a la parte que parece dice esto:

Now another thing to remember, there is a rule established in the multiplication of the values as 
written in the book, Cryptography and Network Security[2], that multiplication of a value by x (ie. 
by 02) can be implemented as a 1-bit left shift followed by a conditional bitwise XOR with (0001 
1011) if the leftmost bit of the original value (before the shift) is 1. We can implement this rule in 
our calculation. 
{d4}.{02} = 1101 0100 << 1 (<< is left shift, 1 is the number of shift done, pad on with 0's)
     = 1010 1000 XOR 0001 1011 (because the leftmost is a 1 before shift)
     = 1011 0011 (ans)
    Calculation:
    1010 1000
    0001 1011 (XOR)
    ---------
    1011 0011

Mi pregunta es, ¿de dónde obtienen el 0001 1011 ? Se supone que son XOR 1010 1000 por 02 . ¿Utilizo este número cada vez, incluso para el siguiente paso que es {03} . {bf} ? Parece que usan 0101 1101 para el cálculo de XOR.

Realmente ayuda mirar las imágenes del primer enlace que se debe seguir aquí.

    
pregunta Freiermuth 04.05.2014 - 23:57
fuente

1 respuesta

1

Por el momento, lo que puedo decir es que 0001 1011 es un valor dado y utilizado en el libro Criptografía y Seguridad de red para acelerar el cálculo del valor (que probablemente se usó en la mayoría de los cálculos) Cómo ¿Derivan el número? Bueno, no soy realmente el experto, pero creo que esto implica mucho la teoría de campos finitos GF (2 ^ m). Si pudiera obtener un buen ejemplo, probablemente lo explique (si puedo entender bien la teoría).

Al decir esto, recuerde que cuando utilice este método de cambio de bits y XOR, tenga en cuenta que solo debe XOR 0001 1011 cuando, y SOLO cuando, el primer bit del valor es 1 antes del cambio. Por lo tanto, en el ejemplo, 1101 0100 tiene su primer bit como 1, por lo que al hacer una multiplicación, necesitará hacer un XOR 0001 1011. Además de este criterio, solo se usa cuando se multiplica con el multiplicador de 2. en el segundo ejemplo del documento, {03} se desglosa en {02} XOR {01}, lo que también se sugiere en el libro y se multiplica respectivamente. Creo que se muestra en el documento.

PS. El cálculo está listo para su lectura, avíseme si no está seguro: enlace

    
respondido por el Kit 05.05.2014 - 06:56
fuente

Lea otras preguntas en las etiquetas