HElib
Crypto++
HElib | Crypto++ | |
---|---|---|
3 | 6 | |
3,092 | 4,579 | |
0.4% | - | |
3.5 | 7.7 | |
10 months ago | 19 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
HElib
-
The Rise of Fully Homomorphic Encryption
For clarity, let's assume the hospital stores its records in plaintext. For the pharma company, the hospital encrypts the patient records with a secret key. Now they let the pharma company run their homomorphic algorithm and send the values back. Only problem is the pharma company can not read those results without having access to the key. FHE is completely redundant in this use case - the hospital could have simply run the pharma company's SQL and audited the code and outputs.
What is FHE actually good for then? Let's imagine you are a top secret agent and you get instructions to fly to Bulgaria as a part of your mission. You have other hostile agents constantly monitoring you, trying to understand your next move. But there's a problem - to buy a plane ticket to Bulgaria you need to know the name of it's capital city. You can't just type it to Google, because these other agents have infiltrated the Google servers and see what you search (assume once you actually know the name of the capital, you somehow buy the actual ticket without "them" knowing..)
Lukcily though, CloudCorp offers a public homomorphic query service for all world capitals. This service allows you to send a query for the capital of any country over an intercepted connection, and get back the result. Even if the hostile agents had infiltrated CloudCorp and were monitoring all your comms, they would not be able know which country's capital you just queried.
How such service would be implemented is explained in good detail in this tutorial: https://github.com/homenc/HElib/tree/master/examples/BGV_cou...
P.S. The capital of Bulgaria is Sofia.
-
C++ members chaining
While I was searching for homomorphic encryption tools/libs, I stumbled upon this.
-
Fully Homomorphic Encryption by Google
FHE has been around for a while now, IBM: https://github.com/homenc/HElib and Microsoft: https://www.microsoft.com/en-us/research/project/microsoft-seal/ both have their own (much more mature) FHE implementations.
Crypto++
-
And the Earn It act is back in the US. Third times the charm to crush privacy?
I'm one of the maintainers of Crypto++, https://cryptopp.com/.
-
How to use a static library in g++
Hello, Im new to c++ and wanted to make a project from scratch, so far I understand how to compile multiple .cpp files using g++ (and visual studio code). The only thing that gives me a headache is trying to include open source libraries into my project, basically i want to use Cryptopp library (https://github.com/weidai11/cryptopp).
- Information and learning resources for cryptography newcomers
-
Libraries
cryptopp
- Crypto++ 8.6
- C++: library for encryption and decryption with AES algorithm
What are some alternatives?
SEAL - Microsoft SEAL is an easy-to-use and powerful homomorphic encryption library.
OpenSSL - TLS/SSL and crypto library
Seal - 🦭 Video/Audio Downloader for Android, based on yt-dlp, designed with Material You
Botan - Cryptography Toolkit
fully-homomorphic-encryption - An FHE compiler for C++
libsodium - A modern, portable, easy to use crypto library.
securefs - Filesystem in userspace (FUSE) with transparent authenticated encryption
Bcrypt - Modern(-ish) password hashing for your software and your servers
react-native-quick-crypto - ⚡️ A fast implementation of Node's `crypto` module written in C/C++ JSI
LibTomCrypt - LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
moebiustoolkit
mbedTLS - An open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API. Releases are on a varying cadence, typically around 3 - 6 months between releases.