Skip to content

A very small, very simple, yet very secure encryption tool.

License

Notifications You must be signed in to change notification settings

reimaj/Picocrypt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Picocrypt

Picocrypt is a very small (hence Pico), very simple, yet very secure encryption tool that you can use to protect your files. It's designed to be the go-to tool for encryption, with a focus on security, simplicity, and reliability. Picocrypt uses the secure XChaCha20 cipher and the Argon2id key derivation function to provide a high level of security, even from three-letter agencies like the NSA. Your privacy and security is under attack. Take it back with confidence by protecting your files with Picocrypt.


Picocrypt

Downloads

Make sure to only download Picocrypt from this repository to ensure that you get the authentic and backdoor-free Picocrypt. When sharing Picocrypt with others, be sure to link to this repository to prevent any confusion.

Beware of picocrypt.org, which claims to be the official website for this project! Remember, there is no official website for Picocrypt. Even if this self-proclaimed website is taken down, I will not remove this message; let it be a real-world warning to stay vigilant.

Windows

Picocrypt for Windows is as simple as it gets. To download the latest, standalone, and portable executable for Windows, click here. If Microsoft Defender or your antivirus flags Picocrypt as a virus, please do your part and submit it as a false positive for the betterment of everyone.

macOS

Picocrypt for macOS is very simple as well. Download Picocrypt here, open the container, and drag Picocrypt to your Applications. You may need to manually trust the app from a terminal and control-click on the app if macOS prevents you from opening it:

xattr -d com.apple.quarantine /Applications/Picocrypt.app

Linux

To use Picocrypt on Linux, you can download the raw binary here (you may need to install the packages below). Alternatively, you can try the .deb, Flatpak, run Picocrypt through Wine, or compile from source using the instructions in the src/ directory.

sudo apt install -y libc6 libgcc-s1 libgl1 libgtk-3-0 libstdc++6 libx11-6

Why Picocrypt?

Why should you use Picocrypt instead of VeraCrypt, 7-Zip, BitLocker, or Cryptomator? Here are a few reasons why you should choose Picocrypt:

  • Unlike BitLocker and most cloud services, Picocrypt and its dependencies are completely open-source and auditable. You can verify for yourself that there aren't any backdoors or flaws. In fact, Picocrypt was audited by Radically Open Security in 2024 and no major security issues were discovered (you can read the full report here).
  • Picocrypt is tiny. While Cryptomator is over 50 MiB and VeraCrypt is over 20 MiB, Picocrypt sits at just 3 MiB, about the size of a medium-resolution photo. And that's not all - Picocrypt is portable (doesn't need to be installed) and doesn't require administrator/root privileges.
  • Picocrypt is easier and more productive to use than VeraCrypt. To encrypt files with VeraCrypt, you'd have to spend a minute or two just setting up a volume. With Picocrypt's simple UI, all you have to do is drag and drop your files, enter a password, and hit Encrypt. All the complex procedures are handled by Picocrypt internally. Who said secure encryption can't be simple?
  • Picocrypt is designed for security. 7-Zip is an archive utility and not an encryption tool, so its focus is not on security. Picocrypt, however, is built with security as the number one priority. Every part of Picocrypt exists for a reason and anything that could impact the security of Picocrypt is removed. Picocrypt is built with cryptography you can trust.
  • Picocrypt authenticates data in addition to protecting it, preventing hackers from maliciously modifying sensitive data. This is useful when you are sending encrypted files over an insecure channel and want to be sure that it arrives untouched.
  • Picocrypt actively protects header data from corruption by adding extra Reed-Solomon parity bytes, so if part of a volume's header (which contains important cryptographic components) corrupts (e.g., hard drive bit rot), Picocrypt can still recover the header and decrypt your data with a high success rate. Picocrypt can also encode the entire volume with Reed-Solomon to prevent any corruption to your important files.

Comparison

Here's how Picocrypt compares to other popular encryption tools.

Picocrypt VeraCrypt 7-Zip GUI BitLocker Cryptomator
Free ✅ Yes ✅ Yes ✅ Yes ✅ Bundled ✅ Yes
Open Source ✅ GPLv3 ✅ Multi ✅ LGPL ❌ No ✅ GPLv3
Cross-Platform ✅ Yes ✅ Yes ❌ No ❌ No ✅ Yes
Size ✅ 3 MiB ❌ 20 MiB ✅ 2 MiB ✅ N/A ❌ 50 MiB
Portable ✅ Yes ✅ Yes ❌ No ✅ Yes ❌ No
Permissions ✅ None ❌ Admin ❌ Admin ❌ Admin ❌ Admin
Ease-Of-Use ✅ Easy ❌ Hard ✅ Easy ✅ Easy 🟧 Medium
Cipher ✅ XChaCha20 ✅ AES-256 ✅ AES-256 🟧 AES-128 ✅ AES-256
Key Derivation ✅ Argon2 🟧 PBKDF2 ❌ SHA-256 ❓ Unknown ✅ Scrypt
Data Integrity ✅ Always ❌ No ❌ No ❓ Unknown ✅ Always
Deniability ✅ Supported ✅ Supported ❌ No ❌ No ❌ No
Reed-Solomon ✅ Yes ❌ No ❌ No ❌ No ❌ No
Compression ✅ Yes ❌ No ✅ Yes ✅ Yes ❌ No
Telemetry ✅ None ✅ None ✅ None ❓ Unknown ✅ None
Audited Yes ✅ Yes ❌ No ❓ Unknown ✅ Yes

Keep in mind that while Picocrypt does most things better than other tools, it's not a one-size-fits-all and doesn't try to be. There are use cases such as full-disk encryption where VeraCrypt and BitLocker would be a better choice. So while Picocrypt is a great choice for the majority of people, you should still do your own research and use what's best for you.

Features

Picocrypt is a very simple tool, and most users will intuitively understand how to use it in a few seconds. On a basic level, simply dropping your files, entering a password, and hitting Encrypt is all that's needed to encrypt your files. Dropping the output back into Picocrypt, entering the password, and hitting Decrypt is all that's needed to decrypt those files. Pretty simple, right?

While being simple, Picocrypt also strives to be powerful in the hands of knowledgeable and advanced users. Thus, there are some additional options that you may use to suit your needs.

  • Password generator: Picocrypt provides a secure password generator that you can use to create cryptographically secure passwords. You can customize the password length, as well as the types of characters to include.
  • Comments: Use this to store notes, information, and text along with the file (it won't be encrypted). For example, you can put a description of the file you're encrypting before sending it to someone. When the person you sent it to drops the file into Picocrypt, your description will be shown to that person. Comments are not authenticated, meaning it can be freely modified by an attacker. Thus, it should only be used for informational purposes in trusted environments.
  • Keyfiles: Picocrypt supports the use of keyfiles as an additional form of authentication (or the only form of authentication). Any file can be used as a keyfile, and a secure keyfile generator is provided for convenience. Not only can you use multiple keyfiles, but you can also require the correct order of keyfiles to be present for a successful decryption to occur. A particularly good use case of multiple keyfiles is creating a shared volume, where each person holds a keyfile, and all of them (and their keyfiles) must be present to decrypt the shared volume. By checking the "Require correct order" box and dropping your keyfile in last, you can also ensure that you'll always be the one clicking the Decrypt button.
  • Paranoid mode: Using this mode will encrypt your data with both XChaCha20 and Serpent in a cascade fashion, and use HMAC-SHA3 to authenticate data instead of BLAKE2b. Argon2 parameters will be increased significantly as well. This is recommended for protecting top-secret files and provides the highest level of practical security attainable. For a hacker to break into your encrypted data, both the XChaCha20 cipher and the Serpent cipher must be broken, assuming you've chosen a good password. It's safe to say that in this mode, your files are impossible to crack. Keep in mind, however, that this mode is slower and isn't really necessary unless you're a government agent with classified data or a whistleblower under threat.
  • Reed-Solomon: This feature is very useful if you are planning to archive important data on a cloud provider or external medium for a long time. If checked, Picocrypt will use the Reed-Solomon error correction code to add 8 extra bytes for every 128 bytes of data to prevent file corruption. This means that up to ~3% of your file can corrupt and Picocrypt will still be able to correct the errors and decrypt your files with no corruption. Of course, if your file corrupts very badly (e.g., you dropped your hard drive), Picocrypt won't be able to fully recover your files, but it will try its best to recover what it can. Note that this option will slow down encryption and decryption speeds significantly.
  • Force decrypt: Picocrypt automatically checks for file integrity upon decryption. If the file has been modified or is corrupted, Picocrypt will automatically delete the output for the user's safety. If you would like to override these safeguards, check this option. Also, if this option is checked and the Reed-Solomon feature was used on the encrypted volume, Picocrypt will attempt to recover as much of the file as possible during decryption.
  • Split into chunks: Don't feel like dealing with gargantuan files? No worries! With Picocrypt, you can choose to split your output file into custom-sized chunks, so large files can become more manageable and easier to upload to cloud providers. Simply choose a unit (KiB, MiB, GiB, or TiB) and enter your desired chunk size for that unit. To decrypt the chunks, simply drag one of them into Picocrypt and the chunks will be automatically recombined during decryption.
  • Compress files: By default, Picocrypt uses a zip file with no compression to quickly merge files together when encrypting multiple files. If you would like to compress these files, however, simply check this box and the standard Deflate compression algorithm will be applied during encryption.
  • Deniability: Picocrypt volumes typically follow an easily recognizable header format. However, if you want to hide the fact that you are encrypting your files, enabling this option will provide you with plausible deniability. The output volume will indistinguishable from a stream of random bytes, and no one can prove it is a volume without the correct password. This can be useful in an authoritarian country where the only way to transport your files safely is if they don't "exist" in the first place. Keep in mind that this mode slows down encryption and decryption speeds, requires you to manually rename the volume afterward, renders comments useless, and also voids the extra security precautions of the paranoid mode, so you should only use it if absolutely necessary.
  • Recursively: If you want to encrypt and/or decrypt a large set of files individually, this option will tell Picocrypt to go through every recursive file that you drop in and encrypt/decrypt it separately. This is useful, for example, if you are encrypting thousands of large documents and want to be able to decrypt any one of them in particular without having to download and decrypt the entire set of documents. Keep in mind that this is a very complex feature that should only be used if you know what you are doing.

Security

For more information on how Picocrypt handles cryptography, see Internals for the technical details. If you're worried about the safety of me or this project, let me assure you that this repository won't be hijacked or backdoored. I have 2FA (TOTP) enabled on all accounts with a tie to Picocrypt (GitHub, Reddit, Google, etc.), in addition to full-disk encryption on all of my portable devices. For further hardening, Picocrypt uses my isolated forks of dependencies and I fetch upstream only when I have taken a look at the changes and believe that there aren't any security issues. This means that if a dependency gets hacked or deleted by the author, Picocrypt will be using my fork of it and remain completely unaffected. You can feel confident about using Picocrypt as long as you understand:

Picocrypt operates under the assumption that the host machine it is running on is safe and trusted. If that is not the case, no piece of software will be secure, and you will have much bigger problems to worry about. As such, Picocrypt is designed for the offline security of volumes and does not attempt to protect against side-channel analysis.

Donations

When I was actively developing Picocrypt, I accepted donations, but now that Picocrypt is complete and production-ready, there's no need anymore. Instead, take your time and effort to share the love of Picocrypt with others. Donations are nice, but being able to help others is a lot more valuable to me than a few spare dollars. Knowing that Picocrypt is helping people secure their files is plenty enough for me.

FAQ

Does the "Delete files" feature shred files?

No, it doesn't shred any files and just deletes them as your file manager would. On modern storage mediums like SSDs, there is no such thing as shredding a file since wear leveling makes it impossible to overwrite a particular sector. Thus, to prevent giving users a false sense of security, Picocrypt doesn't include any shredding features at all.

Is Picocrypt quantum-secure?

Yes, Picocrypt is secure against quantum computers. All of the cryptography used in Picocrypt works off of a private key, and private-key cryptography is considered to be resistant against all current and future developments, including quantum computers.

Acknowledgements

A thank you from the bottom of my heart to the significant contributors on Open Collective:

  • Mikołaj ($1674)
  • Guest ($842)
  • YellowNight ($818)
  • Incognito ($135)
  • akp ($98)
  • JC ($90)
  • evelian ($50)
  • jp26 ($50)
  • guest-116103ad ($50)
  • Guest ($27)
  • Gittan Pade ($25)
  • Pokabu ($20)
  • oli ($20)
  • Bright ($20)
  • Incognito ($20)
  • Guest ($20)
  • JokiBlue ($20)
  • Guest ($20)
  • Markus ($15)
  • EN ($15)
  • Guest ($13)
  • Tybbs ($10)
  • N. Chin ($10)
  • Manjot ($10)
  • Phil P. ($10)
  • Raymond ($10)
  • Cohen ($10)
  • EuA ($10)
  • geevade ($10)
  • Guest ($10)
  • Hilebrinest ($10)
  • gabu.gu ($10)
  • Boat ($10)
  • Guest ($10)

Also, a huge thanks to the following people who were the first to donate and support Picocrypt:

  • W.Graham
  • N. Chin
  • Manjot
  • Phil P.
  • E. Zahard

Finally, thanks to these people/organizations for helping me out when needed:

  • [ REDACTED ] for helping me create an AppImage for Picocrypt
  • u/Upstairs-Fishing867 for helping me test PGP signatures
  • u/greenreddits for constant feedback and support
  • u/Tall_Escape for helping me test Picocrypt
  • u/NSABackdoors for doing plenty of testing
  • @samuel-lucas6 for feedback, suggestions, and support
  • @AsuxAX and @Minibus93 for testing new features
  • @mdanish-kh and @stephengillie for WinGet package
  • @Retengart for helping create the Flatpak
  • Privacy Guides for listing Picocrypt
  • Radically Open Security for auditing Picocrypt
  • You?

About

A very small, very simple, yet very secure encryption tool.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%