La criptografía negable describe los métodos de cifrado, que permite usar la negación plausible de los mensajes cifrados existentes, lo que significa que no hay forma de probar la existencia de datos en el texto plano.
En muchos países de todo el mundo (por ejemplo, en el Reino Unido o en los Estados Unidos) puede ser encarcelado o enfrentar problemas legales por negarse a proporcionar su contraseña según lo requerido por las agencias de aplicación de la ley, incluso si no se sospecha de ninguna violación de la ley.
Además, si un poderoso grupo de personas (gobierno, una pandilla de bandidos) sospecha que almacena la información necesaria en su computadora portátil (documentos confidenciales, billetera de bitcoin), venga a usted para una búsqueda o robo y encuentre un archivo encriptado, lo más probable es que no lo analizarán para obtener posibles vulnerabilidades, pero simplemente le torturarán hasta que le cuente hasta que les cuente la contraseña.
FractalCrypt permite un archivo encriptado con un número arbitrario de claves. Si algún conjunto de hombres le pide una contraseña, y usted dice que no hay información en el contenedor cifrado o que ha olvidado la contraseña, es mucho más probable que no se lo crean. Mientras que, usando fractalcrypt, puede regalar de forma segura las llaves a volúmenes no clasificados, y no hay forma de demostrar que en realidad hay más volúmenes de los que ha revelado.
Además, un archivo encriptado de tal manera, a diferencia de, digamos, un criptocontainer en un espacio de transmisión no asignado, puede transferirse a través de Internet, copiado a un Stick USB, etc.
Primero, crea un criptocontainer de un tamaño especificado por el usuario, lleno de caracteres aleatorios. Para crear el primer volumen, el programa archiva los archivos especificados por el usuario al comienzo del criptocontainer y lo cifra usando la primera clave. Por lo tanto, conociendo la primera clave, puede acceder a los archivos de primera capa y al resto del criptocontainer.
Para crear el segundo volumen, el programa archivará los archivos en el resto del criptocontainer y lo encriptará con la segunda clave; Por lo tanto, la primera clave también es necesaria para crear o acceder a datos desde el segundo volumen.
La capacidad de la negación plausible es que el archivo encriptado es indistinguible del ruido; No hay forma de que pueda averiguar la cantidad de datos almacenados en el criptocontainer.
Para obtener archivos de la capa N, el usuario debe ingresar N contraseñas.
Para agregar una nueva capa (también denominada volumen) sin riesgo (es decir, sobrescribir el ruido), debe ingresar todas las teclas; De lo contrario, si ingresa solo una parte de las claves, la nueva capa se escribirá sobre los datos cifrados.
El usuario también puede eliminar una capa, en este caso se sobrescribe con ruido; También se eliminan todas las capas sobre ella, por lo que solo la capa superior se puede eliminar de manera segura.
Ventana de inicio
Creando un nuevo contenedor
Ventana principal. Se ingresan dos contraseñas, por lo que es posible obtener los archivos del segundo volumen o crear un tercero
Ventana de creación de archivo
AES-256 se usa para el cifrado en modo XTS. Argon2Id se usa para generar una clave con 4 iteraciones, costo de memoria de 128 MB y 1 hilo
Cada capa, cuando se descifró, tiene el siguiente encabezado:
8 bytes-firma de cadena C "fractal" (terminado nulo)
8 bytes: la longitud del archivo postal posterior en Big Endian, alineado con 16 bytes
Los PR y las contribuciones son bienvenidas. Si tiene una contribución en mente, consulte la Guía de contribución para obtener información sobre cómo hacerlo.
FractalCrypt utiliza el marco QT (la descarga del sitio oficial requiere registro), la biblioteca OpenSSL para el cifrado y la biblioteca Quazip para la creación y el procesamiento de los archivos zip.
Quazip es un envoltorio sobre el paquete Minizip de Gilles Vollant (de acuerdo con los términos de la licencia, informamos que los archivos de estas bibliotecas se han cambiado en nuestro proyecto) que usa la biblioteca ZLIB.
Para Windows, Zlib viene con Qt.
Debe descargar e instalar individualmente solo OpenSSL, por ejemplo, siguiendo el enlace.
Se supone que OpenSSL está disponible en C: OpenSSL-Win64, puede cambiar esto en su archivo FractalCrypt.pro.
De forma predeterminada, QT intentará vincular OpenSSL dinámicamente, en este caso es posible que necesite el archivo C: openssl-win64 bin libcrypto-1_1-x64.dll en el directorio con archivo ejecutable.
Debe instalar individualmente las bibliotecas ZLIB y OpenSSL si no están incluidas en su distribución.
En los sistemas basados en APT, esto se puede hacer con los siguientes comandos:
sudo apt-get install zlib1g-dev libssl-dev
sudo apt-get install qt5-default qt5-qmake qtbase5-dev-tools qtchooser libqt5core5a qtbase-abi-5-12-8
git clone https://github.com/zorggish/FractalCryptGUI.git
cd FractalCryptGUI
qmake -project
qmake FractalCrypt.pro
make
./FractalCrypt