Skip to content

MLAuth: Multi-Level Identity Authentication Framework for Resource-Constrained IoT Environment. Originated from a simple prototype for Fine-Grained Multi-Level Identity Authentication Project

License

Notifications You must be signed in to change notification settings

Nexisato/Multi_Level_Authentication_Demo

Repository files navigation

MLAuth: Multi-Level Identity Authentication Framework for Resource-Constrained IoT Environment

     

     

Function

  1. 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.
  2. 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.
  3. 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

Requirements

Operating System

  • Linux: Ubuntu 20.04~24.04, WSL2 (Ubuntu 20.04+)

Development Environment

  • C++17 compatible compiler (GCC 9+ or Clang 10+)
  • Go 1.18+
  • CMake 3.16+

Dependencies

  • 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

Optional

  • 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

Usages

# 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

Install Dev Lib

sudo apt install build-essential
sudo apt install libgmp-dev libjsoncpp-dev

#for OpenGL-supported
sudo apt-get install libgl1-mesa-dev

Docker Images

docker pull registry.cn-hangzhou.aliyuncs.com/nexisato/ubuntu_auth_demo:latest

Logs

  • 2023-12-06: build new version of Docker Image. Use 1024bit RSA Prime instead of Safe 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 and gmp
  • 2023-09-24: RSA Accumulator init
  • 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:

References

Acknowledgements

  • IDEA-ReadPaper Project Group
  • 火山引擎

About

MLAuth: Multi-Level Identity Authentication Framework for Resource-Constrained IoT Environment. Originated from a simple prototype for Fine-Grained Multi-Level Identity Authentication Project

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •