Entonces, por ejemplo, tengo una cadena cuyo valor binario tiene exactamente una longitud de 512 a 64 bits, por lo que no es necesario rellenar la conversión binaria de la cadena. Entonces eso significa que tengo una cadena de 56 caracteres.
El equivalente binario de 56 es 00111000
, que es 64 - 8 corto de 64 bits. ¿Cómo se llenan los bits restantes? ¿También están acolchados?
Esto es lo que sucede cuando se rellena la cadena:
El mensaje está "rellenado" (extendido) para que su longitud (en bits) sea congruente con 448, módulo 512. Es decir, el mensaje se extiende para eso es solo 64 bits menos de ser un múltiplo de 512 bits de largo. El relleno se realiza siempre, incluso si la longitud del mensaje es Ya congruente con 448, modulo 512.
El relleno se realiza de la siguiente manera: se agrega un solo "1" bit a la mensaje, y luego se agregan "0" bits para que la longitud en bits de el mensaje rellenado se convierte en congruente con 448, módulo 512. En total, en como mínimo se agrega un bit y, como máximo, 512 bits.
desde aquí .
Sin embargo, en el mismo documento, no se proporciona ninguna aclaración sobre los bits 'vacíos' restantes (512 - 56 * 8 - 8):
Una representación de 64 bits de b (la longitud del mensaje antes de la Se agregaron bits de relleno) al resultado de la anterior. paso. En el improbable caso de que b sea mayor que 2 ^ 64, entonces solo Se utilizan los 64 bits de orden inferior de b. (Estos bits se añaden como dos Palabras de 32 bits y palabras de orden inferior agregadas primero de acuerdo con el convenciones anteriores.)
En este punto, el mensaje resultante (después de rellenar con bits y con b) tiene una longitud que es un múltiplo exacto de 512 bits. Equivalentemente, este mensaje tiene una longitud que es un múltiplo exacto de 16 (32 bits) palabras. Sea M [0 ... N-1] las palabras del mensaje resultante, donde N es un múltiplo de 16.
Espero que mi pregunta sea entendida?
Mi opinión es que los 64 bits ( 00111000
) 0's se rellenan frente a la representación de 64 bits de la longitud.