Skip to content

CIcaDA - Quantum-Resistant Cryptographic Identity Management in Julia

License

Notifications You must be signed in to change notification settings

hyperpolymath/cicada

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

80 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

CIcaDA - Crypto Identity

License: PMPL-1.0 Palimpsest

Quantum-Resistant Cryptographic Identity Management

CIcaDA is a comprehensive cryptographic identity management system built in Julia, designed for the post-quantum era. It provides classical SSH key generation, post-quantum cryptography support, automated key rotation, and seamless GitHub integration.

Features

  • πŸ” Classical Key Generation: Ed25519, RSA-2048/4096, ECDSA-P256/P384

  • πŸ›‘οΈ Post-Quantum Cryptography: Dilithium (signatures), Kyber (encryption)

  • πŸ”„ Hybrid Keys: Combine classical + PQC for maximum security

  • ⚑ Automated Key Rotation: Schedule-based and manual rotation

  • πŸ” Security Auditing: Comprehensive key analysis and validation

  • πŸ’Ύ Backup & Recovery: Encrypted backups with retention management

  • πŸ™ GitHub Integration: Upload/manage keys via GitHub API

  • πŸ“Š Detailed Logging: Audit trail for all operations

  • 🎯 CLI Interface: Powerful command-line tool

Quick Start

Installation

git clone https://github.com/Hyperpolymath/CIcaDA.git
cd CIcaDA
git submodule update --init --recursive
./install.sh

Generate Your First Key

= Initialize configuration

julia --project=. src/main.jl init

= Generate Ed25519 key

julia --project=. src/main.jl generate -e your@email.com

= List keys

julia --project=. src/main.jl list

Documentation

  • [Quick Start Guide](docs/QUICKSTART.md) - Get started in 5 minutes

  • [User Guide](docs/USER_GUIDE.md) - Complete documentation

  • [Examples](docs/examples/) - Common workflows

  • [CLAUDE.md](CLAUDE.md) - Development notes

Commands

= Key generation

julia --project=. src/main.jl generate -e user@email.com [-a algorithm]

= Key management

julia --project=. src/main.jl list [--verbose]
julia --project=. src/main.jl info --id KEY_ID
julia --project=. src/main.jl validate --id KEY_ID
julia --project=. src/main.jl audit [--id KEY_ID]

= Backup & rotation

julia --project=. src/main.jl backup [--id KEY_ID]
julia --project=. src/main.jl rotate [--auto | --all]

= GitHub integration

julia --project=. src/main.jl github --action upload --id KEY_ID --token TOKEN

Supported Algorithms

Classical: Ed25519 (recommended), RSA-2048/4096, ECDSA-P256/P384 Post-Quantum: Dilithium2/3/5, Kyber512/768/1024, Hybrid

Note: PQC is currently stub implementation. For production, install NistyPQC.jl

Architecture

CIcaDA/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.jl              # CLI entry point
β”‚   β”œβ”€β”€ config.jl            # Configuration
β”‚   β”œβ”€β”€ keygen/              # Key generation
β”‚   β”œβ”€β”€ storage/             # Storage, backup, rotation
β”‚   β”œβ”€β”€ validation/          # Validation and auditing
β”‚   β”œβ”€β”€ integrations/        # GitHub integration
β”‚   └── utils/               # Utilities
β”œβ”€β”€ test/                    # Test suite
β”œβ”€β”€ docs/                    # Documentation
└── malware-scanner/         # Submodule

Development

git clone https://github.com/Hyperpolymath/CIcaDA.git
cd CIcaDA
git submodule update --init --recursive
julia --project=. -e 'using Pkg; Pkg.instantiate()'
julia --project=. test/runtests.jl

License

Palimpsest License v0.4 - see [LICENSE](LICENSE)

Built with Julia | Securing the post-quantum future