
PoC em Python para CVE-2026-23006, demonstrando um canal lateral de comprimento de texto cifrado Kyber que vaza bits da chave secreta por meio de análise estatística de saídas de comprimento variável.
# kyber_length_leak.py - Leaks secret key bit based on ciphertext length
import random
# Simulate encapsulation: ciphertext length depends on message bit
def encapsulate(pk, bit):
# In a flawed implementation, the ciphertext size varies based on a secret bit
if bit:
return b'\x00' * 800 # long ciphertext
else:
return b'\x00' * 768 # short ciphertext
# Attacker observes lengths
lengths = []
for _ in range(100):
ct = encapsulate(None, random.randint(0,1))
lengths.append(len(ct))
# Histogram reveals two clusters -> secret bit leakage
print("Ciphertext lengths leak secret bit.")
Uma implementação defeituosa do mecanismo de encapsulamento de chave Kyber produz textos cifrados de comprimentos diferentes dependendo de um bit secreto no segredo compartilhado. Um atacante que mede o comprimento de vários textos cifrados pode recuperar o bit por meio de análise estatística.
Execute a simulação:
python kyber_length_leak.py
Observe dois agrupamentos distintos de comprimento.