¿Cómo se puede usar la función zeta de Riemann para generar números pseudoaleatorios?

Para comenzar, lea esta carta del autor:
Neal Stephenson sobre la criptografía de la función Zeta
Básicamente, dice que, aparte de SOLITAIRE, todas las “nuevas” cosas de la criptografía están ficticiadas hasta el punto de no haber pensado demasiado en ello.

Entonces, ¿cómo podría uno generar números pseudoaleatorios a partir de zeta? Un montón de formas fáciles. Por ejemplo, uno podría evaluar zeta (n) donde n es su frase de contraseña (un número entero) y usar su expansión de base 26 como OTP. Como zeta (n) es solo un número racional multiplicado por una potencia de pi, es irracional, por lo que se podría obtener un número arbitrario de bits de esta manera. También se podría usar siempre zeta (3), pero comenzar a leer bits en un desplazamiento dado por una función de su frase de contraseña.

Sin embargo, dado que Stephenson, dirigiéndose a Anshel y Goldfeld, dijo específicamente que evitó intencionalmente mencionarlos por su nombre, sabemos que ya estaba al tanto de su esquema para generar números pseudoaleatorios usando funciones zeta unidireccionales. Puede leer su patente en el siguiente enlace, pero el documento que lo describe requiere una suscripción a una revista paga: Generador de secuencias multipropósito de alta velocidad criptográficamente seguro basado en funciones zeta de un solo sentido Parece ser un conocimiento intenso de la teoría de grupos. Lo único que puedo decir al respecto es que es una forma de generar números pseudoaleatorios utilizando una función zeta, y que no fue el método que utilizó LP Waterhouse.

Advertencia, no soy un criptógrafo. Sin embargo, los ceros de la función zeta de Riemann se producen en números primos. Los números primos son difíciles de calcular y son la base de muchos algoritmos criptográficos. El “propósito” de la criptografía es traducir texto fácil de leer en algo que parece ruido aleatorio si no conoce la clave (o el teclado). Los números generados por su función zeta se verían aproximadamente como ruido aleatorio debido a su uso de la función zeta, técnicamente serían ruido pseudoaleatorio y eso es importante en un momento. Por lo tanto, en la medida en que su número fuera ruido aleatorio, serían una almohadilla adecuada de una sola vez y el simple hecho de copiarlos con sus datos lo convertiría en algo que parecía ruido aleatorio.

Ah, y por cierto su frase de contraseña se habría convertido en números, eso es trivial, ya que internamente en una computadora todos los datos se almacenan como números [binarios]. Por lo tanto, los caracteres en su frase de contraseña ya son números para la computadora.

Ahora, a la parte pseudoaleatoria y esto es importante en cuanto a si funcionaría. La función zeta usa números REALES complejos. Una computadora no puede manejar todos los números reales, solo un subconjunto de ellos que se llaman coma flotante, que se aproximan a los números reales (u otros subconjuntos de los reales que corresponden a números enteros o racionales, y solo aquellos hasta límites fijos). Por lo tanto, su computadora solo se aproximaba a la función zeta y lo hacía en un subconjunto de números llamados “reales computables”. Este conjunto es finito (limitado). Por lo tanto, eventualmente los números que estaba calculando se repetirían, aunque la función zeta real no lo haga (y no puede hacerlo si tiene ceros en todos los números primos). Además, su aproximación tendría errores, ya que algunos de los resultados de la función zeta no se pueden expresar (con precisión) como un número de coma flotante (u otro número computable). Estos errores (y especialmente el caso en que se repiten sus resultados) filtrarían información, es decir, sus números pseudoaleatorios tendrían patrones en ellos, y esos patrones permitirían que un criptógrafo deduzca eventualmente tanto su frase de contraseña como los datos que estaba encriptando. La única pregunta sería si utilizó la almohadilla de tiempo único lo suficiente para que los patrones se revelaran a un criptógrafo. Si lo usó solo para algunos mensajes cortos, muy probablemente no, si lo usó continuamente durante años, probablemente así sea. Al no ser un criptógrafo, no estoy seguro de cuánto tiempo sería ese período. Probablemente dependerá de cómo usó la almohadilla de una sola vez.

Entonces, funcionaría, sí, pero no sería más seguro que los métodos criptográficos reales, especialmente no, si alguien descubriera incluso aproximadamente lo que estaba haciendo, es decir, no intente esto en casa.