Para el desarrollo de esta aplicación, se implementó un método de encriptación propio:
- Basado en encriptación de flujo XOR.
- Generador pseudoaletoario caótico.
- Claves para el generador pseudoaleatorio de hasta 16K bits.
- El límite de combinaciones lo pone la fortaleza de la contraseña, de la que se usa una hash de 32 bytes.
- Se puede configurar para que se haga una reordenación de bytes durante la encriptación (cosa que hace el ataque por fuerza bruta penosamente lento).
- El usuario tiene la opción de cancelar la encriptación / desencriptación en cualquier momento.
Está implementada sobre la librería de plataforma v1.4 que incluye mucha funcionalidad común a todas las aplicaciones
Con la versión v1.7, se aumenta mucho el tiempo de computación necesario para romper la encriptación por fuerza bruta, sin incrementar el tiempo de desencriptación que experimenta el usuario.
El tipo de encriptación que se utiliza en esta aplicación, se basa en el uso de un flujo de bits pseudoaleatorios que se utiliza para la reordenación de caracteres y luego para la encriptación / desencriptación con el método de la máscara XOR. Esto se hace por rodajas.
El incremento del tiempo necesario para romper la encriptación por fuerza bruta, se consigue haciendo absolutamente necesario que la primera rodaja se reordene totalmente antes de proceder con la desencriptación de los caracteres con la XOR
Y eso se consigue, haciendo que la encriptación / desencriptación XOR, haga uso del mismo generador pseudoaleatorio usado en el proceso de reordenación, empezando la fase de XOR desde el estado del generador justo después de la reordenación
De esta forma, no hay posibles atajos para intentar desencriptar por fuerza bruta.