Comportamiento inusual con un rar con contraseña que no es válida en winrar pero se acepta falsamente en 7zip

Comportamiento inusual con un rar con contraseña que no es válida en winrar pero se acepta falsamente en 7zip

Encontré un archivo .rar antiguo en mi computadora pero no recordaba la contraseña exactamente. Tenía una idea aproximada de lo que era, así que escribí un programa usando 7ziplib en C# para aplicar fuerza bruta a un montón de permutaciones.

Después de unos cuantos miles encontró una coincidencia. Cuando abro el archivo en 7zip usando la contraseña que encontré, se abre pero no muestra ningún archivo. Cuando intento abrirlo en Winrar, dice archivo dañado o contraseña no válida.

7ziplib informa que el tamaño del archivo sin comprimir es -1.

Ejecuté el mismo programa de fuerza bruta para otro zip en la misma carpeta que tenía una contraseña similar pero no idéntica, y se muestra el mismo comportamiento.

Hay otros archivos rar en la misma carpeta que no están protegidos con contraseña y se abren bien.

¿Existe alguna explicación algorítmica para esto? ¿Podría ser que encontré una contraseña que pasa una etapa de la verificación de contraseña pero no otra? ¿O el archivo está dañado?

El formato se informa como Rar4 si eso ayuda, que según Google usa AES-128 pero según Wikipedia no sale, ya que salta de la versión 2.9 a 5.

Respuesta1

Hasta donde yo sé, RAR usa valores CRC de 32 bits para todos sus valores de suma de verificación, tanto los de los archivos como los del encabezado del archivo. Entonces, cuando se fuerzan contraseñas de forma bruta, tiene una probabilidad de 1 entre 2^32 (~ 1 entre 4 mil millones) de que la suma de verificación del encabezado coincida, aunque los datos del encabezado decodificados (y cualquier dato del archivo siguiente) sean basura, porque la contraseña y, en consecuencia, la clave de descifrado es realmente incorrecta. Mi experiencia con RAR de fuerza bruta parece confirmar esto.

¿Existe alguna explicación algorítmica para esto? ¿Podría ser que encontré una contraseña que pasa una etapa de la verificación de contraseña pero no otra?

Eso es más o menos lo que pasó.

información relacionada