http://github.com/zorggish/FractalCryptGUI Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Issues - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} zorggish / FractalCryptGUI Public * Notifications * Star 210 * Fork 3 Free cross-platform deniable encryption cryptoarchiver MIT License 210 stars 3 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 1 branch 2 tags Code * Clone HTTPS GitHub CLI [https://github.com/z] Use Git or checkout with SVN using the web URL. [gh repo clone zorggi] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @zorggish zorggish Merge pull request #4 from dark0ghost/patch-1 ... e197607 Sep 9, 2021 Merge pull request #4 from dark0ghost/patch-1 fix readme e197607 Git stats * 28 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .gitignore Create .gitignore Sep 3, 2021 core Noize generator optimization Sep 9, 2021 quazip Cross-platform includes and other fixes Sep 4, 2021 ui Interface fix Sep 4, 2021 widgets Project restructing Sep 4, 2021 .travis.yml Connect travis Sep 2, 2021 CONTRIBUTING.md Create CONTRIBUTING.md Sep 4, 2021 FractalCrypt.pro Add executable file icon and description for windows Sep 4, 2021 LICENSE Create LICENSE Sep 3, 2021 README.md Readme: cd FractalCrypt -> cd FractalCryptGUI Sep 9, 2021 logo.ico Add executable file icon and description for windows Sep 4, 2021 logo.png Cross-platform includes and other fixes Sep 4, 2021 main.cpp Project restructing Sep 4, 2021 resources.qrc Add icon Sep 3, 2021 View code [ ] FractalCrypt Free cryptoarchiver permitting any number of hidden volumes for deniable encryption What is deniable encryption, and what is it used for? How does FractalCrypt work? How to use FractalCrypt? Screenshots Technical details Contributing Building from sources Windows Linux How to build FractalCrypt without Qt Creator: README.md logo FractalCrypt Free cryptoarchiver permitting any number of hidden volumes for deniable encryption Made with C++ badge Powered by QT badge Built with love badge Travis autobuild shield Star counter shield Code grade shield License shield Code size shield Contribuions shield What is deniable encryption, and what is it used for? Deniable cryptography describes encryption methods, enabling to use plausible denial of existing encrypted messages, which means there is no way to prove the existence of data in the plain text. In many countries worldwide (for example, in the UK or the US) you may be jailed or face legal issues for refusing to provide your password as required by law enforcement agencies, even if you are not suspected of any law violations. Moreover, if a powerful group of people (government, a gang of bandits) have a suspicion that you store the necessary information on your laptop (confidential papers, bitcoin wallet), come to you for a search or robbery and find an encrypted file, they most likely will not analyze it for potential vulnerabilities, but will simply torture you until you tell them the password. FractalCrypt permits an encrypted file with an arbitrary number of keys. If any set of men ask you for a password, and you say that there is no information in the encrypted container or you have forgotten the password, it is far more likely that they will not believe you. Whereas, using FractalCrypt you can safely give away the keys to unclassified volumes, and there is no way to prove that there are actually more volumes than you have disclosed. In addition, a file encrypted in such a way, unlike, let us say, a cryptocontainer on an unallocated drive space, can be transferred over the Internet, copied to a USB stick, etc. How does FractalCrypt work? First, it creates a cryptocontainer of a user-specified size, filled with random characters. To create the first volume, the program archives the user-specified files to the beginning of the cryptocontainer and encrypts it using the first key. Thus, knowing the first key, you can access the first-layer files and the rest of the cryptocontainer. Cryptocontainer structure To create the second volume, the program will archive the files in the rest of the cryptocontainer and encrypt it with the second key; So, the first key is also needed to create or access data from the second volume. The capability of plausible deniability is that the encrypted file is indistinguishable from noise; There is no way you can find out the amount of data stored in the cryptocontainer. How to use FractalCrypt? In order to get N-layer files, the user must enter N passwords. To add a new layer (also referred to as a volume) without risk (i.e., overwriting the noise), you should enter all the keys; otherwise, if you enter only a part of the keys, the new layer will be written over the encrypted data. The user can also delete a layer, in this case it is overwritten with noise; All layers over it are removed as well, so only the top layer can be safely removed. Screenshots Show Startup window Startup window screenshot Creating new container Creating new container window screenshot Main window. Two passwords are entered, so it is possible to get the files of the second volume or create a third one Main window screenshot Archive creation window Archive creation window screenshot Technical details AES-256 is used for encryption in XTS mode. PBKDF2 is used to generate a key (10k iterations) and an initialization vector (25k iterations). Each layer, when decrypted, has the following header: 8 bytes - "fractal" c-string signature (null-terminated) 8 bytes - the length of the subsequent zip archive in big endian, aligned to 16 bytes Contributing PRs and contributions are welcomed. If you have a contribution in mind, please check out the Contribution Guide for information on how to do so. Building from sources FractalCrypt uses the Qt framework (downloading from the official site requires registration), the OpenSSL library for encryption, and the QuaZip library for creation and processing ZIP archives. QuaZip is a wrapper over the Gilles Vollant's Minizip package (according to the license terms, we inform that the files of these libraries have been changed in our project) which uses the zlib library. Windows For Windows, zlib comes with Qt. You should individually download and install only OpenSSL, for instance, by following the link. OpenSSL is supposed to be available at C:\OpenSSL-Win64, you can change this in your file FractalCrypt.pro. By default, Qt will try to link OpenSSL dynamically, in this case you may need the file C:\OpenSSL-Win64\bin\libcrypto-1_1-x64.dll in the directory with executable file. Linux You should individually install the zlib and openssl libraries if they are not included in your distro. On apt-based systems, this can be done with the following commands: sudo apt-get install zlib1g-dev libssl-dev How to build FractalCrypt without Qt Creator: 1. Install Qt libs sudo apt-get install qt5-default qt5-qmake qtbase5-dev-tools qtchooser libqt5core5a qtbase-abi-5-12-8 2. Clone this repo git clone https://github.com/zorggish/FractalCryptGUI.git cd FractalCryptGUI 3. Build and run the project qmake -project qmake FractalCrypt.pro make ./FractalCrypt About Free cross-platform deniable encryption cryptoarchiver Topics security qt cryptography aes cross-platform cpp openssl zlib qt5 aes-256 steganography aes-encryption openssl-library qt5-gui minizip quazip plausible-deniability deniable-crypto deniable-encryption Resources Readme License MIT License Releases 2 FractalCrypt 2.0 Latest Sep 9, 2021 + 1 release Contributors 2 * @zorggish zorggish Ivan Serov * @dark0ghost dark0ghost Languages * C++ 52.5% * C 47.0% * QMake 0.5% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.