Si el archivo es unicode / ansi / etc, puede crear un algoritmo para analizar algo como el primer carácter de un archivo y ver si hay más caracteres latinos que otros caracteres.
Recuerdo que me molesté bastante cuando probé el ataque de fuerza bruta XOR en un ejercicio simple de euler-project, pero fue fácil y solo tuve que buscar palabras comunes en inglés.
Leí en alguna parte que en el software de encriptación, la implementación es muy importante, a veces más importante que los algoritmos. Cuando leo eso, todavía me pregunto si uno está hablando de temas obvios como los generadores pseudoaleatorios, o detalles menos obvios como cómo ocultar el formato del archivo que cifras.
Por ejemplo, si cifra un archivo, si es un archivo PNG o GIF, asegúrese de eliminar el número / cadena mágica que contienen esos formatos de archivo, y si es un archivo de texto, no use una tabla ASCII : use su propia tabla de caracteres, por ejemplo, simplemente ponga todos los caracteres latinos en 0, los números en 245-255, y así sucesivamente. también podría permutar, o rot13, o bien.
Algoritmos como AES o Blowfish / TwoFish son "matemáticamente" seguros, porque se ha comprobado que no hay ataques OTROS QUE BRUTEFORCE ha sido probado como suficientemente eficiente: solo puedes descifrar el texto encontrando la clave real.
Pero esos algoritmos solo son teóricamente eficientes, DEBES implementarlos considerando otros factores de práctica como el tamaño del archivo, el uso de compresión, la codificación de texto, etc.
Por ejemplo, debes saber que sería simplemente estúpido almacenar el nombre del archivo en texto plano junto a tu archivo cifrado.