Nuevo algoritmo protege datos en ordenamiento

Fuentes: Fast sorting, branchless by design

En el mundo de la informática, el ordenamiento es una operación fundamental, presente en casi todos los lenguajes de programación. Si bien algoritmos como Quicksort y Mergesort son eficientes, su dependencia de datos específicos introduce un riesgo de seguridad: los ataques de canal lateral. Estos ataques explotan las variaciones en el tiempo de ejecución del algoritmo, que pueden revelar información sobre los datos que se están ordenando, comprometiendo la seguridad de sistemas criptográficos como Classic McEliece y NTRU Prime, que dependen de algoritmos de ordenamiento.

La clave para mitigar este riesgo reside en los 'sorting networks' (redes de ordenamiento). A diferencia de los algoritmos tradicionales, las redes de ordenamiento son circuitos fijos de comparaciones y swaps, predefinidos y no dependientes de los valores de los datos. Esto significa que la secuencia de operaciones es constante, independientemente de los datos que se estén ordenando, eliminando la posibilidad de ataques de canal lateral.

Un ejemplo sencillo de red de ordenamiento es el 'bubble sort' (ordenamiento de burbuja), aunque su eficiencia es baja. Una mejora significativa es el 'odd-even transposition sort' (ordenamiento por transposición impar-par), que introduce paralelismo al comparar y permutar pares de elementos en fases alternas. Sin embargo, la verdadera eficiencia se logra con las 'bitonic sequences' (secuencias bitónicas), que permiten ordenar un array en O(log n) pasos utilizando el 'bitonic merger' (fusión bitónica). Este proceso divide recursivamente el array en sub-arrays bitónicos, que luego se fusionan.

Ken Batcher desarrolló el 'Batcher's bitonic sort', una implementación completa de redes de ordenamiento basada en la fusión bitónica. Este algoritmo, aunque con una complejidad de O(n log²n), ofrece una alternativa segura a los algoritmos de ordenamiento tradicionales, ya que su patrón de comparación es fijo y predecible. La compensación es una ligera disminución en la eficiencia, pero la seguridad que proporciona es crucial en aplicaciones sensibles como la criptografía, donde la confidencialidad de los datos es primordial. En resumen, las redes de ordenamiento ofrecen una solución robusta para el ordenamiento seguro, sacrificando una pequeña cantidad de rendimiento a cambio de una protección significativa contra ataques de canal lateral.