
A medida que la computación cuántica avanza, la comunidad criptográfica está desarrollando proactivamente algoritmos que se cree resistirán los ataques cuánticos: la criptografía post-cuántica (PQC). Entre ellos, los criptosistemas basados en redes se destacan por sus fuertes fundamentos de seguridad y su eficiente rendimiento.
Sin embargo, incluso los problemas matemáticos más sofisticados pueden ser vulnerables si la implementación filtra información de canales laterales. El análisis de canales laterales y los ataques (SCA) son una clase de ataques de implementación que eluden la teoría matemática, explotando fenómenos físicos como el consumo de energía, fugas electromagnéticas y variaciones de tiempo para extraer claves secretas.
Esta publicación de blog proporciona un análisis en profundidad de cómo los ataques de canales laterales amenazan a los esquemas post-cuánticos basados en redes. Cubrimos conceptos fundamentales de SCA, cómo PQC está expuesto, lo más destacado de la investigación reciente y ejemplos prácticos: uniendo conceptos para principiantes con conocimientos avanzados para profesionales experimentados.
Los ataques de canales laterales son una categoría de ataques de seguridad donde los atacantes obtienen información sobre las operaciones criptográficas midiendo parámetros físicos de un dispositivo durante el cálculo.
Ejemplo: Si un dispositivo criptográfico pasa menos tiempo cuando un bit secreto es '0' que cuando es '1', un atacante puede medir repetidamente los tiempos de cálculo en entradas conocidas para reconstruir el secreto.
Las computadoras cuánticas, una vez desarrolladas, pueden romper esquemas de clave pública tradicionales (ej., RSA, ECC) con algoritmos como el de Shor. La criptografía post-cuántica es un esfuerzo para idear esquemas de cifrado/firma inmunes a ataques cuánticos.
Una red es una cuadrícula de puntos en un espacio n-dimensional con un patrón regular. Los criptosistemas usan problemas difíciles de redes:
El proyecto PQC de NIST elige esquemas basados en redes debido a su eficiencia y escalabilidad.
A pesar de su robustez matemática, los esquemas basados en redes se implementan en hardware físico, lo que los hace susceptibles a SCA. A diferencia de los esquemas tradicionales, la criptografía de redes utiliza operaciones como multiplicación de polinomios, muestreo Gaussiano discreto y aritmética modular, todas las cuales pueden filtrar información si no se implementan cuidadosamente.
El mecanismo de encapsulación de clave en Kyber se basa en aritmética de polinomios y reducciones modulares. Investigación (ACM, 2022) ha demostrado:
En la firma Dilithium, se pueden observar fugas de muestreo de rechazo si la lógica de decisión del muestreador depende de datos secretos y no es de tiempo constante.
El análisis SCA convencional requiere experiencia significativa. Con el aprendizaje automático (ML), los atacantes pueden automatizar el proceso de extracción de características y clasificación, potencialmente rompiendo implementaciones más complejas o ruidosas.
Supongamos que tienes un conjunto de datos de trazas de potencia durante un paso de muestreo de un KEM PQC:
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# Supongamos `traces` es un array NxT (N=muestras, T=puntos de tiempo)
# Supongamos `labels` es un array N de bits secretos (0 o 1)
traces, labels = np.load('power_traces.npy'), np.load('labels.npy')
X_train, X_test, y_train, y_test = train_test_split(traces, labels, test_size=0.2)
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
print("Precisión de la prueba:", clf.score(X_test, y_test))
Este enfoque puede revelar bits de coeficientes secretos (ej., segmentos de vectores secretos binarios) de valores polinomiales o secretos LWE.
Ponerse manos a la obra con el análisis de canales laterales ilustra el riesgo real. Echemos un vistazo a las cadenas de herramientas SCA típicas y código.
# Instalar toolkit de software ChipWhisperer
pip install chipwhisperer
Script en Python para adquirir trazas de un microcontrolador que ejecuta un desencriptado de Kyber:
import chipwhisperer as cw
scope = cw.scope()
target = cw.target(scope, cw.targets.SimpleSerial)
traces = []
for i in range(100):
scope.arm()
target.simpleserial_write('d', b'\x00' * 32) # enviar texto cifrado ficticio
ret = scope.capture()
if ret:
traces.append(scope.get_last_trace())
Guardar en disco para análisis posterior con ML.
Supongamos que has exportado datos crudos de trazas.
Bash: Extraer consumo medio de corriente de trazas
grep -oP 'Trace: \K[0-9 .]+' traces.log | awk '{total += $1; count += 1} END {print total/count}'
Python: Parsear trazas CSV para graficar/analizar
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('traces.csv')
plt.plot(df['time'], df['power'])
plt.title('Traza de Potencia - Desencriptado PQC Basado en Redes')
plt.xlabel('Tiempo (ns)')
plt.ylabel('Potencia (mA)')
plt.show()
En el mundo real, los atacantes pueden obtener miles de trazas y usar herramientas estadísticas o ML para extraer bits clave.
Ejemplo CPA (Python):
import numpy as np
from scipy.stats import pearsonr
# traces: array NxT; hypotheses: posibles adivinaciones de clave, input_data: texto plano/cifrados
def cpa(traces, input_data, key_guesses):
max_corr = -1
best_guess = None
for k in key_guesses:
hyp = hamming_weight(pqc_operation(input_data, k)) # modelo de potencia para la adivinación
corrs = [pearsonr(traces[:, t], hyp)[0] for t in range(traces.shape[1])]
if max(abs(corrs)) > max_corr:
max_corr = max(abs(corrs))
best_guess = k
return best_guess, max_corr
Dado el riesgo demostrado, ¿cómo pueden los implementadores proteger la PQC basada en redes de SCA?
Para Kyber, prefiera rutinas de aritmética de polinomios de tiempo constante basadas en AVX2 (ver repo oficial PQClean). Para el muestreo aleatorio, utilice muestreadores endurecidos de tiempo constante, no los simples basados en tablas.
A medida que PQC ve una adopción más amplia:
Mientras que la criptografía post-cuántica basada en redes promete seguridad teórica contra adversarios cuánticos, el análisis de canales laterales expone riesgos prácticos profundos. La fuga física específica a la implementación (potencia, EM, temporalidad) puede permitir a atacantes recuperar secretos con un análisis cuidadoso. Los nuevos métodos de aprendizaje automático automatizan y mejoran estos ataques. Implementaciones robustas y seguras frente a canales laterales requieren diligencia, código de tiempo constante, diseño de hardware/firmware y pruebas rigurosas.
A medida que los esquemas post-cuánticos se despliegan en tarjetas inteligentes, chips móviles y la nube, la resiliencia a canales laterales debe ser tan central como la fortaleza criptográfica de los algoritmos centrales.
Análisis de Canales Laterales de Primitivas Post-Cuánticas Basadas en Redes
https://dl.acm.org/doi/10.1145/3569420
El Riesgo de los Ataques de Canales Laterales en Criptografía Post-Cuántica
https://www.ledger.com/blog-risk-side-channel-attacks-post-quantum-cryptography
Aprendizaje Automático y Ataques de Canales Laterales sobre Criptografía Post-Cuántica
https://eprint.iacr.org/2025/1754
Proyecto PQC de NIST
https://csrc.nist.gov/Projects/post-quantum-cryptography
PQClean: Implementaciones de Referencia Limpias y Seguras frente a Canales Laterales
https://github.com/PQClean/PQClean
ChipWhisperer: Herramientas SCA/FI de Código Abierto
https://chipwhisperer.io/
Si encontraste este contenido valioso, imagina lo que podrías lograr con nuestro programa de capacitación élite integral de 47 semanas. Únete a más de 1.200 estudiantes que han transformado sus carreras con las técnicas de la Unidad 8200.