<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Fiber Optics & Distributed Brute-Force Simulation</title>
<style>
body { font-family: Arial; padding: 20px; }
.box { border: 1px solid #ccc; padding: 15px; margin-bottom: 20px; }
</style>
</head>
<body>
<h2>Fiber Optics Propagation & Distributed Brute-Force Simulation</h2>
<div class="box">
<h3>Fiber Optic Parameters</h3>
<label>Ocean Cable Length (km):</label>
<input type="number" id="cableLength" value="8000"><br><br>
<label>Cluster Nodes:</label>
<input type="number" id="nodes" value="1000"><br><br>
<label>Keys per Second per Node:</label>
<input type="number" id="kps" value="1000000000"><br><br>
<button onclick="simulate()">Simulate</button>
</div>
<div class="box">
<h3>Results</h3>
<p id="latency"></p>
<p id="clusterSpeed"></p>
<p id="aesTime"></p>
</div>
<script>
// Speed of light in fiber (approx)
const FIBER_SPEED = 200000; // km per second
// AES-256 keyspace
const AES256_KEYS = BigInt("115792089237316195423570985008687907853269984665640564039457584007913129639936");
// Format big numbers
function formatBig(n) {
return n.toLocaleString("en-US");
}
function simulate() {
let cableLength = parseFloat(document.getElementById("cableLength").value);
let nodes = parseFloat(document.getElementById("nodes").value);
let kps = parseFloat(document.getElementById("kps").value);
// Fiber latency (one-way)
let latencySeconds = cableLength / FIBER_SPEED;
// Cluster brute-force speed
let clusterSpeed = nodes * kps;
// Time to brute-force AES-256 (worst-case)
let clusterSpeedBig = BigInt(clusterSpeed);
let secondsToCrack = AES256_KEYS / clusterSpeedBig;
// Convert to years
let years = Number(secondsToCrack) / (60 * 60 * 24 * 365);
document.getElementById("latency").innerHTML =
"Fiber Latency (one-way): " + latencySeconds.toFixed(4) + " seconds";
document.getElementById("clusterSpeed").innerHTML =
"Cluster Speed: " + formatBig(clusterSpeed) + " keys/second";
document.getElementById("aesTime").innerHTML =
"Estimated Time to Brute-Force AES-256: " + years.toExponential(4) + " years";
}
</script>
</body>
</html>



No comments:
Post a Comment