<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=zRg6jPAex2gzAEtkX92R1vMB3PY9">Kyber-OTP-Distributor</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=zRg6jPAex2gzAEtkX92R1vMB3PY9">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zRg6jPAex2gzAEtkX92R1vMB3PY9&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zRg6jPAex2gzAEtkX92R1vMB3PY9&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zRg6jPAex2gzAEtkX92R1vMB3PY9&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zRg6jPAex2gzAEtkX92R1vMB3PY9&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        

    <div class="list-group">
    <div class="list-group-item">
    <div style="font-size:1.3rem;">Kyber-OTP-Distributor</div>
    <div class="repo-item">Quantum-safe distribution system for One-Time Pad keys</div>
    <div>rad:zRg6jPAex2gzAEtkX92R1vMB3PY9</div>
    </div>
    <div class="list-group-item">
    <div>Visibility</div>
    <div class="repo-item">public</div>
    </div>
    <div class="list-group-item">
    <div>Delegates</div><div class="repo-item">did:key:z6MkkzoSd5p9d5ZKFf3BRrG247towTjepZtER71QFFkMvgs6</div>
    </div>
    <div class="list-group-item">
    <div>Default branch</div>
    <div><span class="repo-item">master &#8594 99c0a561146078a263c36d8fb51eb1c321582401</span> (Thu Jan 29 00:39:30 2026)</div>
    </div>
    <div class="list-group-item">
    <div>Threshold</div>
    <div class="repo-item">1</div>
    </div>
    </div>
    
        <div class="list-group mt-3">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-book"></i> README.md</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;"># Kyber-OTP-Distributor

**Kyber-OTP-Distributor** is a post-quantum–secure key distribution system designed for **GhostLine**, a multi-participant chat platform based on **information-theoretic One-Time Pad (OTP) encryption**.

The project addresses the primary unsolved problem of practical OTP deployment: **securely distributing identical key material to multiple participants without physical key exchange**, while preserving both **perfect secrecy** and **post-quantum resilience**.

The system enables a single administrator to distribute *cryptographically identical OTPs* to multiple participants. Each participant receives a **unique cryptographic package** which deterministically decrypts to the same shared OTP, enabling group communication with provable secrecy guarantees.

![GUI and QR code Image](images/kiber2.jpg)

---

## 🚀 Why Kyber-OTP-Distributor?

- **Information-theoretic secrecy** via One-Time Pads  
- **Post-quantum secure distribution** using Kyber-1024  
- **No physical meetings or couriers required**  
- **Per-recipient cryptographic isolation**  
- **Single-distribution, multi-recipient OTP delivery**  

---

## 🔐 Problem Statement

GhostLine requires all participants to share an *identical OTP* to maintain information-theoretic security. Traditional OTP distribution relies on physical exchange or trusted couriers, which do not scale and fail under realistic threat models.

Kyber-OTP-Distributor enables secure, network-based OTP distribution without weakening OTP assumptions.

---

## 🧠 Cryptographic Design: Wrap-Then-Encrypt

### Construction Overview

1. **Session Key Generation**  
   Generate a fresh random AES-256 session key (`K_session`).

2. **OTP Encryption**  
   Encrypt OTP material once using **AES-256-GCM**, producing `E_otp` (shared by all recipients).

3. **Per-Recipient Key Encapsulation**  
   - Kyber-1024 KEM establishes a unique shared secret  
   - SHAKE256 derives a wrapping key  
   - `K_session` is encrypted per recipient  

4. **Distribution**  
   Each participant receives a unique wrapped session key plus the common OTP ciphertext.

---

## 🛡 Security Model &amp; Threat Assumptions

### Adversary Capabilities

- Full network interception and modification  
- Long-term ciphertext storage  
- Post-quantum computational resources  

### Security Guarantees

- Perfect secrecy of OTPs (under correct usage)
- Post-quantum confidentiality via Kyber-1024
- Recipient compromise isolation
- Distribution-level forward secrecy

### Non-Goals

- Endpoint compromise protection
- OTP misuse mitigation
- Identity authentication beyond key possession

---

## 🧪 Cryptographic Review Alignment

- No custom primitives  
- Conservative parameter choices  
- Explicit threat model  
- No entropy amplification claims  
- Clean separation of cryptographic roles  

---

## 🛠 Installation

### Prerequisites

- Rust 1.70+
- True entropy source

### Build

```bash
git clone https://github.com/yourusername/kyber-otp-distributor
cd kyber-otp-distributor
cargo build --release
```

---

## 💻 Usage

### Participant Key Generation

```bash
cd client-tool
cargo run --bin keygen -- --name alice
```

### Administrator Distribution

```bash
cd admin_tool
cargo run --   --otp /path/to/entropy.bin   --pubkeys /directory/of/keys   --output ./distribution
```

### Participant Decryption

```bash
cd friend_tool
cargo run --bin decrypt --   --secret alice_secret.key   --package ./alice   --common ./common   --output ghostline_otp.bin
```

---

## 📜 License

Unrestricted use, modification, and redistribution.

---

## 📬 Contact

- Website: https://enkryp.duckdns.org
- Email: battosai@dnmx.su
- PGP: public-key.asc

### LXMF

```
1b634f9ac2aee34bec3276ad17f52d11
```

### Briar

```
briar://ac4jkk7rqcb7vbvjudzvoav64lcypoo3qaj3b5wnndcvvsdpz3fvs
```
</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

