El método de la aguja en un pajar que estás empleando es precisamente lo que hago con TrueCrypt. Hay alrededor de 600 archivos clave en un directorio en una memoria flash, y se utilizan ~ 10 de ellos.
El flash stick tiene un interruptor de solo lectura de hardware, que evita que el sistema operativo actualice los metadatos de "Último acceso". Tenga esto en cuenta si está utilizando un medio grabable para el almacenamiento: los archivos clave a los que tiene acceso se entregarán (probablemente) en la fecha de acceso. También agregué algunos "chaff" adicionales a esto al asignar al azar las fechas creadas / modificadas / a las que se accedió en los archivos, para que todas las fechas no sean confiables.
Esto hace que sea muy difícil encontrar los archivos clave correctos: 1,545,269,050,000,000,000,000,000 combinaciones posibles, suponiendo 10 elegidas de entre 600 archivos, si el orden no importa y cualquier archivo de clave solo puede usarse una vez. Cada combinación debe probarse con todas las contraseñas potenciales, haciendo que esa fuerza bruta sea completamente inviable. Mientras esté utilizando archivos de claves aleatorias de tamaño suficiente (por lo general uso 4kB o más), tampoco hay una forma viable de forzar el contenido. La clave es (generalmente) generada por un hash del contenido del archivo, o un compuesto de esos hashes si se usa más de un archivo de clave, combinado con el hash de la contraseña. Tenga en cuenta que "hash" podría significar un hash simple como SHA256, o la salida de un algoritmo de derivación de clave como PBKDF2 o bcrypt. Como tal, calcular la clave sin los archivos de claves es imposible. A la inversa, es imposible identificar el archivo de claves del volumen, ya que necesitaría saber la clave para deducir tal cosa.
Para abordar el posible ataque de tiempo de caché mencionado en los comentarios de fatfredyy, esto es altamente improbable. El ataque propuesto implica leer varios archivos y comparar sus tiempos de acceso. Un archivo leído recientemente debería leer más rápido que los demás, ya que estaría en el caché. Sin embargo, los tiempos de lectura del disco son ruidosos en los discos duros (los tiempos de búsqueda de los sectores actuales desconocidos hacen que las cosas sean interesantes) y el acceso a la memoria caché tiene un efecto Heisenberg. en términos de potencial para los ataques de tiempo. Un problema similar ocurre en los SSD, que emplean relativamente poco almacenamiento en caché de lectura y un montón de almacenamiento en caché de escritura. En algunos sistemas, es posible que la lectura secuencial de archivos en un directorio provoque que los archivos posteriores sean recuperados previamente, lo que complica aún más el ataque de sincronización. Aparte de extraer físicamente los datos de caché de hardware de la unidad, no creo que esto sea factible.