Files
Camilou.fr/HTML/TN/Crypto/test5.html
T
Camilla Schoeser ec81bcd634 ajout tout
2026-05-29 21:10:04 +02:00

239 lines
8.8 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>DATA_STREAM // PROTOCOLS_ANALYSER</title>
<style>
:root {
--cyan: #00ffff;
--magenta: #ff00ff;
--yellow: #ffff00;
--bg: #02050a;
}
body, html {
margin: 0; padding: 0;
height: 100%; overflow: hidden;
background: var(--bg);
color: white;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
/* Effet de grille de fond animée */
#grid-bg {
position: fixed;
width: 200%; height: 200%;
top: -50%; left: -50%;
background-image:
linear-gradient(to right, rgba(0, 255, 255, 0.05) 1px, transparent 1px),
linear-gradient(to bottom, rgba(0, 255, 255, 0.05) 1px, transparent 1px);
background-size: 50px 50px;
transform: perspective(500px) rotateX(60deg);
animation: move-grid 20s linear infinite;
z-index: -1;
}
@keyframes move-grid {
from { transform: perspective(500px) rotateX(60deg) translateY(0); }
to { transform: perspective(500px) rotateX(60deg) translateY(50px); }
}
.presentation-space {
position: relative;
width: 100vw; height: 100vh;
display: flex; justify-content: center; align-items: center;
perspective: 2000px;
}
.frame {
position: absolute;
width: 900px; height: 600px;
border: 2px solid var(--cyan);
background: rgba(0, 20, 40, 0.8);
backdrop-filter: blur(10px);
padding: 40px;
box-sizing: border-box;
box-shadow: 0 0 50px rgba(0, 255, 255, 0.2), inset 0 0 20px rgba(0, 255, 255, 0.1);
clip-path: polygon(0% 0%, 95% 0%, 100% 5%, 100% 100%, 5% 100%, 0% 95%);
opacity: 0;
transform: translateZ(-1000px) rotateY(45deg);
transition: all 0.8s cubic-bezier(0.19, 1, 0.22, 1);
pointer-events: none;
}
.frame.active {
opacity: 1;
transform: translateZ(0) rotateY(0deg);
pointer-events: auto;
}
/* Éléments HUD */
.hud-corner {
position: absolute; width: 40px; height: 40px;
border: 4px solid var(--magenta);
}
.top-left { top: -10px; left: -10px; border-right: none; border-bottom: none; }
.bottom-right { bottom: -10px; right: -10px; border-left: none; border-top: none; }
h1 { font-size: 4rem; text-transform: uppercase; color: var(--cyan); margin: 0; }
h2 { border-left: 5px solid var(--magenta); padding-left: 15px; text-transform: uppercase; }
.scan-line {
width: 100%; height: 2px;
background: var(--cyan);
position: absolute; left: 0;
animation: scan 4s linear infinite;
opacity: 0.3;
z-index: 10;
}
@keyframes scan {
0% { top: 0%; }
100% { top: 100%; }
}
.data-point {
display: flex; align-items: center; margin: 15px 0;
font-family: 'Courier New', monospace;
}
.data-point::before {
content: ""; width: 10px; height: 10px;
background: var(--magenta); margin-right: 15px;
box-shadow: 0 0 10px var(--magenta);
}
.tab-cyber {
width: 100%; border-collapse: collapse; margin-top: 20px;
}
.tab-cyber th { background: rgba(0, 255, 255, 0.2); padding: 10px; color: var(--cyan); }
.tab-cyber td { padding: 10px; border: 1px solid rgba(0, 255, 255, 0.2); text-align: center; }
.nav-controls {
position: fixed; bottom: 40px; right: 40px;
display: flex; gap: 20px;
}
.btn-cyber {
background: transparent; border: 1px solid var(--cyan);
color: var(--cyan); padding: 10px 25px; cursor: pointer;
text-transform: uppercase; font-weight: bold;
transition: 0.3s;
}
.btn-cyber:hover { background: var(--cyan); color: var(--bg); box-shadow: 0 0 20px var(--cyan); }
</style>
</head>
<body>
<div id="grid-bg"></div>
<div class="presentation-space" id="space">
<div class="frame active" id="f1">
<div class="hud-corner top-left"></div>
<div class="hud-corner bottom-right"></div>
<div class="scan-line"></div>
<p style="color: var(--magenta)">[ DATA_STREAM_INIT ]</p>
<h1>Analyse des Protocoles</h1>
<p style="font-size: 1.5rem">Signal, Matrix & Discord</p>
<div style="margin-top: 50px;">
<p>> AUTH_USER: TOM</p>
<p>> LOCATION: TELECOM_NANCY</p>
<p>> STATUS: ENCRYPTED</p>
</div>
</div>
<div class="frame" id="f2">
<h2>Définitions Systèmes</h2>
<div class="data-point">PFS : Confidentialité Persistante</div>
<div class="data-point">RATHECT : Auto-guérison des clés</div>
<div class="data-point">E2EE : Chiffrement de bout en bout</div>
<div class="data-point">DENIABILITY : Déniabilité plausible</div>
<p style="margin-top: 30px; border: 1px solid var(--cyan); padding: 15px;">
La sécurité moderne ne repose plus sur le secret de l'algorithme, mais sur la gestion éphémère des clés.
</p>
</div>
<div class="frame" id="f3">
<h2>Historique & Villes</h2>
<table class="tab-cyber">
<tr><th>Année</th><th>Tech</th><th>Vulnérabilité</th></tr>
<tr><td>1982</td><td>SMTP</td><td>Texte en clair</td></tr>
<tr><td>1992</td><td>SMS</td><td>Interception opérateur</td></tr>
<tr><td>2004</td><td>OTR</td><td>Synchronicité obligatoire</td></tr>
<tr><td>2013</td><td>SIGNAL</td><td>[ OPTIMAL ]</td></tr>
</table>
<p style="color: var(--yellow); margin-top: 20px;">> Evolution vers l'asynchronisme sécurisé (X3DH).</p>
</div>
<div class="frame" id="f4">
<h2>Focus : Protocole Signal</h2>
<div style="display: flex; gap: 20px;">
<div style="flex: 1">
<h3>X3DH</h3>
<p>Établissement de session sans que Bob soit en ligne grâce aux Pre-keys.</p>
</div>
<div style="flex: 1">
<h3>DOUBLE RATCHET</h3>
<p>Chaque message possède sa propre clé dérivée d'une racine secrète.</p>
</div>
</div>
<div style="text-align: center; margin-top: 40px;">
<p class="data-point">Adopté par : WhatsApp, Google, Facebook.</p>
</div>
</div>
<div class="frame" id="f5">
<h2>Benchmark Sécurité</h2>
<table class="tab-cyber">
<tr><td>Protocole</td><td>E2EE</td><td>Souveraineté</td><td>Usage</td></tr>
<tr><td>Signal</td><td>MAX</td><td>Moyenne</td><td>Privé</td></tr>
<tr><td>Discord</td><td>LOW</td><td>Nulle</td><td>Social</td></tr>
<tr><td>Matrix</td><td>MAX</td><td>TOTALE</td><td>Pro/Etat</td></tr>
</table>
<p style="margin-top: 20px;">Discord utilise <strong>DAVE</strong> pour la voix, mais le texte reste lisible par l'entreprise.</p>
</div>
<div class="frame" id="f6">
<h2 style="color: var(--magenta)">Menace : Post-Quantique</h2>
<p>> Signal déploie <strong>PQXDH</strong>.</p>
<p>> Objectif : Résister à l'algorithme de Shor.</p>
<div style="background: rgba(255, 0, 0, 0.1); padding: 20px; border: 1px solid red;">
CRITICAL : "Harvest Now, Decrypt Later" est une réalité.
</div>
<h1 style="font-size: 2rem; margin-top: 40px; text-align: center;">Questions ?</h1>
</div>
</div>
<div class="nav-controls">
<button class="btn-cyber" onclick="change(-1)">RETOUR</button>
<button class="btn-cyber" onclick="change(1)">SUIVANT</button>
</div>
<script>
let current = 1;
const total = 6;
const frames = document.querySelectorAll('.frame');
function change(dir) {
frames[current-1].classList.remove('active');
current += dir;
if(current > total) current = 1;
if(current < 1) current = total;
frames[current-1].classList.add('active');
}
// Effet parallaxe à la souris
document.addEventListener('mousemove', (e) => {
const x = (window.innerWidth / 2 - e.pageX) / 25;
const y = (window.innerHeight / 2 - e.pageY) / 25;
document.getElementById('space').style.transform = `rotateY(${x}deg) rotateX(${-y}deg)`;
});
document.addEventListener('keydown', (e) => {
if(e.key === 'ArrowRight' || e.key === ' ') change(1);
if(e.key === 'ArrowLeft') change(-1);
});
</script>
</body>
</html>