Skip to content
This repository was archived by the owner on Apr 4, 2026. It is now read-only.

Commit 5d84300

Browse files
committed
feat: update website for V3.4 — PQXDH post-quantum encryption
- Layout: meta, keywords, OG/Twitter, JSON-LD updated for PQXDH - Hero: post-quantum pitch, PQXDH + Double Ratchet typing text - Features: PQXDH (X25519 + ML-KEM-768) + AES-256-GCM - Security: PQXDH section with hybrid key formula - Crypto deep dive: new PQXDH card, updated descriptions - Comparison table: new Post-Quantum (PQXDH) row - Roadmap: V3.4 completed, V3.5 next - Download: version bumped to 3.4.0 - FAQ: 2 new post-quantum entries (FR+EN) - How-it-works: X3DH → PQXDH, ML-KEM-768 key generation - Live demo: AES key derived from PQXDH Double Ratchet
1 parent 1f9ee3d commit 5d84300

3 files changed

Lines changed: 51 additions & 38 deletions

File tree

src/layouts/Layout.astro

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ const siteUrl = 'https://devbot667.github.io/SecureChat-Website';
1414
<head>
1515
<meta charset="UTF-8" />
1616
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
17-
<meta name="description" content="SecureChat — La messagerie chiffrée de bout en bout qui ne sait rien de vous. Double Ratchet X25519, Tor, zéro métadonnée." />
17+
<meta name="description" content="SecureChat — La messagerie chiffrée post-quantique de bout en bout. PQXDH (X25519 + ML-KEM-768), Double Ratchet, AES-256-GCM, Tor intégré, zéro métadonnée." />
1818
<meta name="theme-color" content="#7B2D8E" />
1919
<meta name="author" content="DevBot667" />
20-
<meta name="keywords" content="SecureChat, encrypted messaging, E2E encryption, Tor, Double Ratchet, X25519, privacy, anonymous chat, zero metadata" />
20+
<meta name="keywords" content="SecureChat, encrypted messaging, E2E encryption, Tor, Double Ratchet, X25519, PQXDH, ML-KEM-768, post-quantum, privacy, anonymous chat, zero metadata, AES-256-GCM, Ed25519, StrongBox" />
2121

2222
<!-- Open Graph -->
2323
<meta property="og:title" content={title} />
24-
<meta property="og:description" content="End-to-end encrypted messenger with Double Ratchet, Tor integration, and zero metadata." />
24+
<meta property="og:description" content="Post-quantum E2E encrypted messenger. PQXDH (X25519 + ML-KEM-768), Double Ratchet, AES-256-GCM, Tor integration, zero metadata." />
2525
<meta property="og:type" content="website" />
2626
<meta property="og:url" content={siteUrl} />
2727
<meta property="og:image" content={`${siteUrl}/og-image.png`} />
@@ -34,7 +34,7 @@ const siteUrl = 'https://devbot667.github.io/SecureChat-Website';
3434
<!-- Twitter Card -->
3535
<meta name="twitter:card" content="summary_large_image" />
3636
<meta name="twitter:title" content={title} />
37-
<meta name="twitter:description" content="End-to-end encrypted messenger with Double Ratchet, Tor integration, and zero metadata." />
37+
<meta name="twitter:description" content="Post-quantum E2E encrypted messenger. PQXDH (X25519 + ML-KEM-768), Double Ratchet, AES-256-GCM, Tor integration, zero metadata." />
3838
<meta name="twitter:image" content={`${siteUrl}/og-image.png`} />
3939

4040
<!-- Favicons -->
@@ -56,7 +56,7 @@ const siteUrl = 'https://devbot667.github.io/SecureChat-Website';
5656
"name": "SecureChat",
5757
"applicationCategory": "CommunicationApplication",
5858
"operatingSystem": "Android",
59-
"description": "End-to-end encrypted messenger with Double Ratchet protocol, Tor integration, and zero metadata collection.",
59+
"description": "Post-quantum end-to-end encrypted messenger with PQXDH (X25519 + ML-KEM-768), Double Ratchet, AES-256-GCM, Tor integration, and zero metadata collection.",
6060
"url": siteUrl,
6161
"author": {
6262
"@type": "Person",
@@ -70,11 +70,14 @@ const siteUrl = 'https://devbot667.github.io/SecureChat-Website';
7070
"priceCurrency": "USD"
7171
},
7272
"featureList": [
73+
"Post-quantum key exchange PQXDH (X25519 + ML-KEM-768)",
7374
"End-to-end encryption (AES-256-GCM)",
74-
"Double Ratchet protocol (X25519)",
75+
"Double Ratchet protocol with PFS & self-healing",
76+
"Ed25519 message signatures",
7577
"Tor network integration",
7678
"Zero metadata collection",
7779
"Ephemeral messages",
80+
"StrongBox hardware security",
7881
"SQLCipher local storage"
7982
]
8083
})} />

src/pages/how-it-works.astro

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,24 +68,25 @@ const base = import.meta.env.BASE_URL.replace(/\/?$/, '/');
6868
<h2 class="text-3xl font-bold font-['Space_Grotesk']" data-lang="en">Key Exchange</h2>
6969
</div>
7070
<div class="space-y-4 text-text-secondary">
71-
<p data-lang="fr">Quand Alice et Bob se connectent pour la première fois, ils scannent leurs <strong class="text-white">QR codes</strong> contenant leurs clés publiques X25519.</p>
72-
<p data-lang="en">When Alice and Bob connect for the first time, they scan each other's <strong class="text-white">QR codes</strong> containing their X25519 public keys.</p>
73-
<p data-lang="fr">Un <strong class="text-white">X3DH handshake</strong> (Extended Triple Diffie-Hellman) crée le secret partagé initial. À partir de là, le <strong class="text-phantom-light">Double Ratchet</strong> démarre.</p>
74-
<p data-lang="en">An <strong class="text-white">X3DH handshake</strong> (Extended Triple Diffie-Hellman) creates the initial shared secret. From there, the <strong class="text-phantom-light">Double Ratchet</strong> begins.</p>
71+
<p data-lang="fr">Quand Alice et Bob se connectent pour la première fois, ils scannent leurs <strong class="text-white">QR codes v2</strong> contenant leurs clés publiques X25519 et ML-KEM-768.</p>
72+
<p data-lang="en">When Alice and Bob connect for the first time, they scan each other's <strong class="text-white">v2 QR codes</strong> containing their X25519 and ML-KEM-768 public keys.</p>
73+
<p data-lang="fr">Un <strong class="text-white">PQXDH handshake</strong> (Post-Quantum Extended Diffie-Hellman) crée le secret partagé initial en combinant X25519 et ML-KEM-768 (NIST FIPS 203). À partir de là, le <strong class="text-phantom-light">Double Ratchet</strong> démarre.</p>
74+
<p data-lang="en">A <strong class="text-white">PQXDH handshake</strong> (Post-Quantum Extended Diffie-Hellman) creates the initial shared secret by combining X25519 and ML-KEM-768 (NIST FIPS 203). From there, the <strong class="text-phantom-light">Double Ratchet</strong> begins.</p>
7575
</div>
7676
</div>
7777
<div class="glass rounded-2xl p-8">
7878
<div class="space-y-4 font-['JetBrains_Mono'] text-sm">
79-
<div class="flex items-center gap-3"><span class="text-accent-green">Alice</span><span class="text-text-muted">→ génère (SK_a, PK_a)</span></div>
80-
<div class="flex items-center gap-3"><span class="text-phantom-light">Bob</span><span class="text-text-muted">→ génère (SK_b, PK_b)</span></div>
79+
<div class="flex items-center gap-3"><span class="text-accent-green">Alice</span><span class="text-text-muted">→ génère (X25519_a, ML-KEM_a)</span></div>
80+
<div class="flex items-center gap-3"><span class="text-phantom-light">Bob</span><span class="text-text-muted">→ génère (X25519_b, ML-KEM_b)</span></div>
8181
<div class="border-t border-white/5 pt-4">
82-
<div class="text-text-muted mb-2">X3DH Handshake :</div>
82+
<div class="text-text-muted mb-2">PQXDH Handshake :</div>
8383
<div class="text-xs text-phantom-light/70 space-y-1">
8484
<div>DH1 = X25519(IK_a, SPK_b)</div>
8585
<div>DH2 = X25519(EK_a, IK_b)</div>
8686
<div>DH3 = X25519(EK_a, SPK_b)</div>
8787
<div>DH4 = X25519(EK_a, OPK_b)</div>
88-
<div class="text-accent-green mt-2">SK = HKDF(DH1 ‖ DH2 ‖ DH3 ‖ DH4)</div>
88+
<div class="text-accent-green">ct = ML-KEM.Encaps(pk_b) → (ss, ct)</div>
89+
<div class="text-accent-green mt-2">SK = HKDF(DH1 ‖ DH2 ‖ DH3 ‖ DH4 ‖ ss)</div>
8990
</div>
9091
</div>
9192
</div>
@@ -134,8 +135,8 @@ const base = import.meta.env.BASE_URL.replace(/\/?$/, '/');
134135
<h2 class="text-3xl font-bold font-['Space_Grotesk']">Double Ratchet</h2>
135136
</div>
136137
<div class="space-y-4 text-text-secondary">
137-
<p data-lang="fr">À chaque <strong class="text-white">tour de conversation</strong> (Alice parle, puis Bob répond), un nouvel échange X25519 est effectué — c'est le <strong class="text-phantom-light">DH Ratchet</strong>.</p>
138-
<p data-lang="en">Each <strong class="text-white">conversation turn</strong> (Alice speaks, Bob replies) triggers a new X25519 exchange — the <strong class="text-phantom-light">DH Ratchet</strong>.</p>
138+
<p data-lang="fr">À chaque <strong class="text-white">tour de conversation</strong> (Alice parle, puis Bob répond), un nouvel échange X25519 est effectué — c'est le <strong class="text-phantom-light">DH Ratchet</strong>. L'échange initial PQXDH garantit une résistance post-quantique.</p>
139+
<p data-lang="en">Each <strong class="text-white">conversation turn</strong> (Alice speaks, Bob replies) triggers a new X25519 exchange — the <strong class="text-phantom-light">DH Ratchet</strong>. The initial PQXDH exchange ensures post-quantum resistance.</p>
139140
<p data-lang="fr">Pour chaque message individuel, une <strong class="text-white">KDF Chain</strong> dérive une clé unique via HKDF. Résultat : même si un attaquant capture une clé, il ne peut lire <strong class="text-phantom-light">ni les messages passés ni futurs</strong>.</p>
140141
<p data-lang="en">For each individual message, a <strong class="text-white">KDF Chain</strong> derives a unique key via HKDF. Result: even if an attacker captures one key, they can't read <strong class="text-phantom-light">past or future messages</strong>.</p>
141142
</div>

0 commit comments

Comments
 (0)