A criptografia negável descreve os métodos de criptografia, permitindo usar a negação plausível das mensagens criptografadas existentes, o que significa que não há como provar a existência de dados no texto simples.
Em muitos países em todo o mundo (por exemplo, no Reino Unido ou nos EUA), você pode ser preso ou enfrentar questões legais por se recusar a fornecer sua senha, conforme exigido pelas agências policiais, mesmo que você não seja suspeito de violações da lei.
Além disso, se um poderoso grupo de pessoas (governo, uma gangue de bandidos) tiver uma suspeita de que você armazena as informações necessárias em seu laptop (documentos confidenciais, carteira de bitcoin), procure uma pesquisa ou assalto e encontre um arquivo criptografado, eles provavelmente não o analisarão para possíveis vulnerabilidades, mas simplesmente torturará você até que os conte a senha.
O FractalCrypt permite um arquivo criptografado com um número arbitrário de chaves. Se algum conjunto de homens pedir uma senha e você disser que não há informações no contêiner criptografado ou você esqueceu a senha, é muito mais provável que eles não acreditem em você. Considerando que, usando o FractalCrypt, você pode dar com segurança as chaves para os volumes não classificados, e não há como provar que há realmente mais volumes do que você divulgou.
Além disso, um arquivo criptografado de tal maneira, ao contrário, digamos, um cripto -domínio em um espaço de acionamento não alocado, pode ser transferido pela Internet, copiado para um bastão USB, etc.
Primeiro, ele cria um cripto-domínio de um tamanho especificado pelo usuário, preenchido com caracteres aleatórios. Para criar o primeiro volume, o programa arquiva os arquivos especificados pelo usuário até o início do Cryptocontainer e o criptografa usando a primeira chave. Assim, conhecendo a primeira chave, você pode acessar os arquivos de primeira camada e o restante do Cryptocontainer.
Para criar o segundo volume, o programa arquivará os arquivos no restante do criptocontroiner e o criptografará com a segunda chave; Portanto, também é necessária a primeira chave para criar ou acessar dados do segundo volume.
A capacidade de negação plausível é que o arquivo criptografado seja indistinguível do ruído; Não há como descobrir a quantidade de dados armazenados no criptocontroiner.
Para obter arquivos da camada N, o usuário deve inserir as senhas N.
Para adicionar uma nova camada (também chamada de volume) sem riscos (ou seja, substituindo o ruído), você deve inserir todas as teclas; Caso contrário, se você inserir apenas uma parte das teclas, a nova camada será gravada sobre os dados criptografados.
O usuário também pode excluir uma camada, neste caso, é substituído por ruído; Todas as camadas também são removidas, portanto, apenas a camada superior pode ser removida com segurança.
Janela de inicialização
Criando um novo contêiner
Janela principal. Duas senhas são inseridas, por isso é possível obter os arquivos do segundo volume ou criar um terceiro
Janela de criação do arquivo
O AES-256 é usado para criptografia no modo XTS. Argon2id é usado para gerar uma chave com 4 iterações, custo de memória de 128 MB e 1 thread
Cada camada, quando descriptografada, tem o seguinte cabeçalho:
8 bytes-assinatura de cordas C "fractal" (terminada em nulo)
8 bytes - o comprimento do arquivo postal subsequente em Big Endian, alinhado a 16 bytes
PRs e contribuições são bem -vindos. Se você tiver uma contribuição em mente, consulte o Guia de Contribuição para obter informações sobre como fazê -lo.
O FractalCrypt usa a estrutura QT (o download do site oficial requer registro), a biblioteca OpenSSL para criptografia e a biblioteca Quazip para arquivos ZIP de criação e processamento.
Quazip é um invólucro sobre o pacote Minizip do Gilles Vollant (de acordo com os termos da licença, informamos que os arquivos dessas bibliotecas foram alterados em nosso projeto), que usa a biblioteca ZLIB.
Para Windows, o Zlib vem com QT.
Você deve baixar e instalar individualmente apenas o OpenSSL, por exemplo, seguindo o link.
O OpenSSL deve estar disponível em C: OpenSSL-WIN64, você pode alterar isso no seu arquivo fractalcrypt.pro.
Por padrão, o QT tentará vincular o OpenSSL dinamicamente, nesse caso, você pode precisar do arquivo C: OpenSSL-win64 bin libcrypto-1_1-x64.dll no diretório com arquivo executável.
Você deve instalar individualmente as bibliotecas Zlib e OpenSSL se elas não estiverem incluídas na sua distro.
Em sistemas baseados em APT, isso pode ser feito com os seguintes 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