- Elliptic Curve Cryptography provides efficient authentication and key generation mechanisms. By leveraging the mathematical properties of elliptic curves, the system achieves high security with shorter key lengths compared to traditional cryptographic solutions, resulting in faster operations and reduced computational overhead.
- Bilinear Pairings enable sophisticated functionality such as trusted delegation and fine-grained access control. These mathematical mappings allow for advanced cryptographic protocols that support complex trust relationships, attribute-based encryption schemes, and context-sensitive authorization that can adapt to varying security requirements.
- RSA Accumulators deliver membership proofs and revocable anonymous credentials. This component allows the system to efficiently verify whether an element belongs to a set without revealing the entire set, supporting privacy-preserving identity management with the ability to selectively revoke credentials when necessary
- Linux: Ubuntu 20.04~24.04, WSL2 (Ubuntu 20.04+)
- C++17 compatible compiler (GCC 9+ or Clang 10+)
- Go 1.18+
- CMake 3.16+
-
Core Libraries:
- PBC Library v0.5.14+ (for pairing-based cryptography)
- OpenSSL v3.X (v3.2.0 recommended, v1.1.1 also works)
- GMP/GMPXX v6.2.0+ (GNU Multiple Precision Arithmetic Library)
- jsoncpp v1.9.0+ (JSON data exchange format)
-
For Go Implementation:
- PBC Go Wrapper: github.com/Nik-U/pbc
-
For UI Components:
- Qt v5.14.2+
- linuxdeployqt (for packaging)
-
For Perf Utils:
- gprof (Define in CMakeLists.txt)
- Valgrind
- Docker (for containerized deployment)
- Git (for version control)
Electron may be supported in future versions OpenMP is not required as parallel computation is not implemented
OpenSSL
need to be compiled from source: https://github.com/openssl/openssl/releases V3.0.x version recommended. (1.1.1x version also worked)PBC Library
also need to be compiled from source: https://crypto.stanford.edu/pbc/
# Define the KGC and Entity params in src/KGC*.cpp and src/Process*.cpp respectively.
mkdir build
cd build
cmake ..
make -j
# Verify the process in you local logs and terminal
sudo apt install build-essential
sudo apt install libgmp-dev libjsoncpp-dev
#for OpenGL-supported
sudo apt-get install libgl1-mesa-dev
docker pull registry.cn-hangzhou.aliyuncs.com/nexisato/ubuntu_auth_demo:latest
- 2023-12-06: build new version of Docker Image. Use
1024bit
RSA Prime instead ofSafe Prime
. - 2023-11-25: Update WSL2 dev to Ubuntu-22.04.
- 2023-11-17: Tidy Project structure.
- 2023-11-17: CLS-Pair-free method validated (except for aggregate sig&ver)
- 2023-11-03: Refactor PBC with Go Wrapper.version(Serialize Supported): https://github.com/Nik-U/pbc
- 2023-10-30: PBC Wrapper aborted (NO DOCS, FUCKING USELESS)
- 2023-10-25: fix CL-PKS bug & add PBC Wrapper Version
- 2023-10-25: Performance Optimized (just shut down omp)
- 2023-10-23: release portable CA application
- 2023-10-13: entityID NO NEED to be SAFE PRIME (less time cost!)
- 2023-10-11: Packed to Docker Image on Ubuntu 22.04
- 2023-10-05: Code Splitting Success.
- 2023-10-02: Accumulator Revocation Success
- 2023-09-28: RSA Accmulator Verification Success
- Only rely on
jsoncpp
andgmp
- Only rely on
- 2023-09-24: RSA Accumulator init
- References: https://github.com/etremel/crypto-accumulators
- Dependencies (DO NOT MAKE INSTALL, PUT HERE):
flint-2.9.0: (local docs)- compile the docs manually
- gmp-6.3.0: https://gmplib.org/
mpfr-4.2.1: https://www.mpfr.org/
cryptopp880(INSTALLED in /usr/local)- jsoncpp (INSTALLED in /usr/local)
- OpenSSL (INSTALLED in /usr/local/openssl):
- 2023-09-23: finish batch compute of MD5 checksum stored in JSON
- ignore all built target dirs
- 2023-09-17: finish CL_Auth_Demo with PBC:
- https://github.com/v0y4g3r/rsa-accumulator-java
- https://jeza-chen.com/2020/06/04/PBC-Library/
- https://zhuanlan.zhihu.com/p/461896034
- IDEA-ReadPaper Project Group
- 火山引擎