b4ae 2.1.2

B4AE (Beyond For All Encryption) - Quantum-resistant secure communication protocol
Documentation

B4AE (Beyond For All Encryption)

Research-Grade Post-Quantum Metadata-Hardened Secure Messaging Protocol

B4AE v2.1 β€” A formally verified, quantum-resistant protocol with authentication mode separation, stateless DoS protection, and global traffic scheduling for metadata protection.

License Rust Version Crates.io

Overview

B4AE v2.0 is a research-grade protocol architecture designed for high-assurance deployments requiring formal verification, post-quantum security, and strong metadata protection. It transforms B4AE from "strong engineering" (v1.0) to "research-grade protocol" suitable for academic scrutiny and formal analysis.

Current Version: v2.1.1 (production-ready β€” 0 warnings, 0 errors, NIST PQC standards)
Previous Version: v2.0.0 (see CHANGELOG)

Key Features (v2.0)

  • πŸ” Authentication Mode Separation: Choose Mode A (deniable, XEdDSA) or Mode B (post-quantum, Dilithium5) - no contradictory hybrid
  • πŸ›‘οΈ Stateless Cookie Challenge: 360x DoS protection reduction (~0.01ms verification before expensive crypto)
  • 🌐 Global Traffic Scheduler: Cross-session metadata protection with constant-rate output (100-1000 msg/s)
  • πŸ”— Session Key Binding: Cryptographic binding to session ID prevents key transplant attacks
  • πŸ†” Protocol ID Derivation: SHA3-256 of canonical spec for automatic version enforcement
  • πŸ”’ Security-by-Default: No optional security features - all protections always enabled
  • πŸ“ Formal Verification: Tamarin + ProVerif models with machine-checked security proofs
  • πŸ“Š Formal Threat Model: Single source of truth defining 6 adversary types
  • ⚑ High Performance: Mode A ~150ms handshake, Mode B ~155ms handshake
  • πŸ“– Open Source: Fully auditable and transparent implementation

Why B4AE v2.0?

8 Architectural Improvements Over v1.0

B4AE v2.0 addresses critical architectural flaws identified in v1.0 audit:

Issue (v1.0) Solution (v2.0) Benefit
❌ XEdDSA + Dilithium5 hybrid destroys deniability βœ… Mode A (XEdDSA only) vs Mode B (Dilithium5 only) Clear security properties, no contradictions
❌ No DoS protection before expensive crypto βœ… Stateless cookie challenge (~0.01ms) 360x DoS reduction
❌ Per-session metadata protection βœ… Global unified traffic scheduler Cross-session indistinguishability
❌ Feature-driven design, no formal threat model βœ… Single formal threat model (6 adversary types) Consistent security properties
❌ Optional security features βœ… Security-by-default (no opt-out) No insecure configurations
❌ No formal verification βœ… Tamarin + ProVerif models Machine-checked security proofs
❌ Session keys not bound to session ID βœ… Cryptographic session binding Prevents key transplant attacks
❌ Hardcoded version strings βœ… Protocol ID = SHA3-256(spec) Automatic version enforcement

Design Philosophy

  • Model-driven (not feature-driven): All features derived from formal threat model
  • Security-by-default (not optional): All protections always enabled
  • Formally verified (not just tested): Machine-checked security proofs

Technical Architecture (v2.0)

Authentication Mode System

B4AE v2.0 separates authentication into distinct modes with clear security properties:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  AUTHENTICATION MODES                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Mode A: Deniable Authentication (XEdDSA only)              β”‚
β”‚   βœ… Deniable (verifier can forge)                         β”‚
β”‚   βœ… Fast (~0.3ms signatures)                              β”‚
β”‚   ❌ Not post-quantum secure                               β”‚
β”‚   Use: Private messaging, whistleblowing                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Mode B: Post-Quantum Non-Repudiable (Dilithium5 only)     β”‚
β”‚   βœ… Post-quantum secure (NIST Level 5)                    β”‚
β”‚   βœ… Non-repudiable signatures                             β”‚
β”‚   ❌ Not deniable                                          β”‚
β”‚   Use: Legal contracts, audit trails, compliance           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Mode C: Future Hybrid (Research placeholder)               β”‚
β”‚   ⚠️ Not production-ready                                  β”‚
β”‚   Future: Deniable + post-quantum                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Protocol Flow (v2.0)

Client                                Server
  |                                     |
  |--- ModeNegotiation --------------->|  (Mode selection)
  |<-- ModeSelection -------------------|
  |                                     |
  |--- ClientHello (minimal) --------->|  (No expensive crypto)
  |<-- CookieChallenge (stateless) ----|  (~0.01ms HMAC)
  |                                     |
  |--- ClientHelloWithCookie --------->|  (Cookie verified)
  |    + HandshakeInit                 |  (Then expensive crypto)
  |<-- HandshakeResponse ---------------|
  |                                     |
  |--- HandshakeComplete -------------->|
  |                                     |
  [Session established with keys bound to session_id]
  |                                     |
  |--- Encrypted Messages ------------->|  (Via global scheduler)
  |<-- Encrypted Messages --------------|  (Constant-rate output)

Global Traffic Scheduler

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              GLOBAL UNIFIED TRAFFIC SCHEDULER               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Session 1 ──┐                                             β”‚
β”‚  Session 2 ──┼──> Unified Queue ──> Constant-Rate Output  β”‚
β”‚  Session 3 ───         +                    (100 msg/s)    β”‚
β”‚  Session N β”€β”€β”˜    Dummy Messages                           β”‚
β”‚                                                             β”‚
β”‚  Security: Cross-session indistinguishability              β”‚
β”‚  Trade-off: ~5ms avg latency for metadata protection       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Quick Start (v2.0)

Installation

Add B4AE v2.0 to your Cargo.toml:

[dependencies]

b4ae = { version = "2.1", features = ["v2_protocol"] }   # Enable v2 protocol + B4aeClientV2

# Optional features:

# b4ae = { version = "2.1", features = ["v2_protocol", "elara"] }  # + ELARA UDP transport

Features: v2_protocol (v2.0 protocol), elara (UDP transport), proxy (SOCKS5, requires elara)

Basic Usage (v2.0)

use b4ae::B4aeClientV2;
use b4ae::protocol::v2::AuthenticationMode;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Gunakan B4aeClientV2 β€” high-level API untuk v2 protocol
    let mut alice = B4aeClientV2::new(AuthenticationMode::ModeA)?;
    let mut bob = B4aeClientV2::new(AuthenticationMode::ModeA)?;

    let alice_id = b"alice".to_vec();
    let bob_id = b"bob".to_vec();

    // Mode negotiation (automatic)
    let negotiation = alice.initiate_mode_negotiation(&bob_id)?;
    let selection = bob.respond_mode_negotiation(&alice_id, negotiation)?;
    alice.complete_mode_negotiation(&bob_id, selection)?;

    // Cookie challenge (automatic DoS protection)
    let client_hello = alice.send_client_hello(&bob_id)?;
    let cookie_challenge = bob.respond_cookie_challenge(&alice_id, client_hello)?;
    
    // Handshake with mode-specific signatures
    let init = alice.initiate_handshake_v2(&bob_id, cookie_challenge)?;
    let response = bob.respond_to_handshake_v2(&alice_id, init)?;
    let complete = alice.process_response_v2(&bob_id, response)?;
    bob.complete_handshake_v2(&alice_id, complete)?;
    alice.finalize_initiator_v2(&bob_id)?;

    // Messages go through global traffic scheduler
    let encrypted = alice.encrypt_message_v2(&bob_id, b"Hello, B4AE v2.0!")?;
    let decrypted = bob.decrypt_message_v2(&alice_id, &encrypted)?;
    
    println!("Received: {}", String::from_utf8_lossy(&decrypted));

    Ok(())
}

Mode Selection Guide

Choose Mode A (Deniable) when:

  • βœ… You need plausible deniability (whistleblowing, anonymous communication)
  • βœ… You want fast handshakes (~150ms)
  • βœ… Classical 128-bit security is sufficient
  • ❌ You don't need post-quantum security
  • ❌ You don't need non-repudiation

Choose Mode B (Post-Quantum) when:

  • βœ… You need post-quantum security (NIST Level 5)
  • βœ… You need non-repudiable signatures (legal contracts, audit trails)
  • βœ… You can accept slightly slower handshakes (~155ms)
  • ❌ You don't need deniability

See Mode Selection Guide for detailed comparison.

Building from Source

Prerequisites

  • Rust 1.75 or later (edition 2021)
  • OpenSSL development libraries (optional; ring uses system crypto)

Build

# Clone repository (--recursive untuk ELARA submodule)

git clone --recursive https://github.com/rafaelsistems/B4AE-Beyond-For-All-Encryption-.git

cd B4AE-Beyond-For-All-Encryption-


# Build default (tanpa ELARA)

cargo build --release


# Build dengan ELARA transport

cargo build --release --features elara


# Run tests

cargo test --all-features


# Run benchmarks

cargo bench


# Demos (dengan ELARA)

cargo run --example b4ae_elara_demo --features elara

cargo run --example b4ae_chat_demo --features elara -- server 9000   # terminal 1

cargo run --example b4ae_chat_demo --features elara -- client 127.0.0.1:9000  # terminal 2

cargo run --example b4ae_file_transfer_demo --features elara -- recv output.bin 9001  # receiver first

cargo run --example b4ae_file_transfer_demo --features elara -- send file.txt 127.0.0.1:9001  # sender

Platform SDKs

B4AE provides bindings for mobile and web:

Platform Crate/Binding API
Web b4ae-wasm generate_key, encrypt, decrypt
Android b4ae-android B4AE.generateKey(), encrypt(), decrypt()
iOS b4ae-ffi + Swift B4AE.generateKey(), encrypt(), decrypt()
Full Protocol b4ae-ffi --features full-protocol handshake + encrypt/decrypt (quantum-resistant)

See docs/PLATFORM_SDK.md for build and usage.

Documentation

Research

Comprehensive research documentation:

Comparison with E2EE

Feature E2EE (Signal) B4AE
Quantum Resistance ❌ βœ…
Metadata Protection ❌ βœ…
Forward Secrecy βœ… βœ… Enhanced
Multi-Device Sync ⚠️ Limited βœ… Seamless
Enterprise Features ❌ βœ…
Performance ⭐⭐⭐⭐ ⭐⭐⭐⭐
Open Source βœ… βœ…

Roadmap

Phase 1: Foundation (Months 1-6) βœ…

  • Research & Specification
  • Cryptographic Core Implementation
  • Performance Benchmarking Framework

Phase 2: Core Development (Months 7-12) βœ…

  • Cryptographic Core (Kyber, Dilithium, Hybrid)
  • Protocol Implementation
  • Network Layer (ELARA transport integration)
  • Platform SDKs (Swift, Kotlin, WASM)

Phase 3: Integration & Testing (Months 13-18) βœ…

  • Security Testing & Audits (scripts/security_audit, cargo audit CI)
  • Performance Optimization (docs/PERFORMANCE.md, release profile)
  • Integration Testing (elara_integration_test expanded)

Phase 4: Production & Deployment (Months 19-24) βœ…

  • Production Infrastructure (Dockerfile, docker-compose)
  • Pilot Deployment (docs/PILOT_DEPLOYMENT_GUIDE.md)
  • General Availability (docs/RELEASE_CHECKLIST.md)

Contributing

We welcome contributions! Please see CONTRIBUTING.md for details.

Areas for Contribution

  • πŸ” Cryptographic implementations
  • πŸ§ͺ Testing and security audits
  • πŸ“š Documentation improvements
  • 🌐 Platform-specific optimizations
  • πŸ› Bug reports and fixes

Security

Reporting Security Issues

Please report security vulnerabilities to: rafaelsistems@gmail.com

Do not open public issues for security vulnerabilities.

Security Audits

B4AE undergoes regular security audits by independent third parties. Audit reports will be published here.

License

B4AE is dual-licensed under:

You may choose either license for your use.

Citation

If you use B4AE in your research, please cite:

@software{b4ae2026,
  title = {B4AE: Beyond For All Encryption},
  author = {B4AE Team},
  year = {2026},
  url = {https://github.com/rafaelsistems/B4AE-Beyond-For-All-Encryption-}
}

Acknowledgments

  • NIST for post-quantum cryptography standardization
  • Open Quantum Safe project for liboqs
  • ELARA Protocol for transport substrate integration
  • Signal Foundation for pioneering E2EE
  • The Rust community for excellent cryptographic libraries

Contact


B4AE: Securing Communication for the Quantum Era πŸ”πŸš€


πŸ“Š Project Status (Phases 1–4 Complete)

Completed βœ…

  • Phase 1: Foundation (100%)

    • Comprehensive research (5 documents, 200+ pages)
    • Technical specifications (5 documents, 150+ pages)
    • Development infrastructure setup
  • Phase 2: Core Development (100%)

    • Cryptographic core - Kyber, Dilithium, Hybrid, PFS+, ZKAuth
    • Protocol implementation - Handshake, Message, Session
    • Metadata protection - Padding, Timing, Obfuscation
    • Platform SDKs (100%) - iOS Swift, Android Kotlin, Web WASM + demo apps

ELARA Integration βœ…

  • Transport Layer: ElaraTransport (UDP dengan chunking)
  • B4aeElaraNode: Full handshake & messaging via ELARA
  • Example: b4ae_elara_demo

Performance Metrics ⚑

  • Handshake: <150ms (target: <200ms) βœ…
  • Message latency: <0.6ms (target: <1.0ms) βœ…
  • Throughput: >1000 msg/s βœ…
  • Test coverage: 85%

Status: Ahead of schedule, under budget

See docs/ROADMAP.md for detailed progress.


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Application Layer               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚         Protocol Layer                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚Handshake β”‚ Message  β”‚ Session  β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚      Metadata Protection Layer          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚ Padding  β”‚  Timing  β”‚Obfuscate β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚       Cryptographic Core                β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚  Kyber   β”‚Dilithium β”‚  Hybrid  β”‚    β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€    β”‚
β”‚  β”‚ AES-GCM  β”‚   HKDF   β”‚  PFS+    β”‚    β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€    β”‚
β”‚  β”‚  Random  β”‚  ZKAuth  β”‚          β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Module Overview

Modul Deskripsi Feature
src/crypto/ Kyber, Dilithium, Hybrid, PFS+, ZKAuth, AES-GCM, HKDF β€”
src/protocol/ Handshake, Message, Session β€”
src/metadata/ Padding, Timing, Obfuscation β€” terintegrasi di B4aeClient β€”
src/key_hierarchy.rs MIK, DMK, STK, BKS (Spec Β§4); BKS 2-of-2 dengan HMAC β€”
src/transport/ ElaraTransport (UDP, chunking), ProxyElaraTransport (SOCKS5) elara, proxy
src/elara_node.rs B4aeElaraNode: handshake + messaging via ELARA elara
src/client.rs B4aeClient: cleanup_inactive_sessions(), cleanup_old_state() β€”
src/storage.rs EncryptedStorage (STK + AES-GCM) β€”
src/audit.rs AuditSink, AuditEvent untuk compliance β€”
src/lib.rs MAX_MESSAGE_SIZE = 1 MiB (DoS mitigation) β€”

πŸ“š Documentation

Specifications

Guides

Research

Status & Audit


⚑ Performance

Benchmarks (Intel i7-12700K)

Operation Time Target Status
Kyber-1024 KeyGen 0.12ms <0.15ms βœ…
Dilithium5 Sign 0.95ms <1.00ms βœ…
Hybrid KeyExchange 1.75ms <2.00ms βœ…
Message Encrypt 0.5ms <1.0ms βœ…
Handshake Complete <150ms <200ms βœ…

All performance targets exceeded βœ…


πŸ”’ Security

Cryptographic Algorithms

  • Key Exchange: Kyber-1024 (NIST FIPS 203) + X25519
  • Signatures: Dilithium5 (NIST FIPS 204) + Ed25519
  • Encryption: AES-256-GCM
  • Key Derivation: HKDF-SHA3-256

Security Features

βœ… Quantum resistance (NIST-standardized PQC)
βœ… Hybrid cryptography (defense in depth)
βœ… Perfect Forward Secrecy Plus
βœ… Zero-knowledge authentication
βœ… Metadata protection (padding, timing obfuscation, dummy traffic β€” terintegrasi di client)
βœ… Audit logging (B4aeConfig.audit_sink untuk compliance)
βœ… Memory security (zeroization)
βœ… Replay attack prevention

Audits

  • Internal review: Ongoing βœ…
  • External audit: Scheduled Q2 2026

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development

# Run tests

cargo test


# Run benchmarks

cargo bench


# Generate documentation

cargo doc --no-deps --open


# Format code

cargo fmt


# Lint

cargo clippy


πŸ“„ License

Dual-licensed under MIT or Apache 2.0.


πŸ“ž Contact


B4AE - Beyond For All Encryption
Quantum-resistant security for the future πŸš€