Los números de punto flotante son aproximaciones de números reales. Son apropiados para los cálculos continuos , donde una pequeña variación de la entrada da como resultado una pequeña variación de la salida.
La criptografía generalmente involucra cálculos que están tan lejos de ser continuos. No importa cuán similares sean dos mensajes no idénticos, no deberían tener hashes similares, firmas similares o encriptaciones similares. Los puntos flotantes son totalmente inapropiados para esto.
La criptografía a menudo involucra algún tipo de aleatorización de aspecto irreversible, que solo puede revertir dada una clave secreta (o nada). Los procesos naturales tienden a ser continuos, por lo tanto reversibles. Los procesos caóticos , cuyo pasado no se puede calcular, tienden a incluir enteros en algún punto, a menudo una serie de iteraciones o bucles, donde un umbral se alcanza o se pierde en cada iteración. Los enteros son la forma en que surge la irreversibilidad.
El resultado de las operaciones criptográficas debe ser reproducible. Por ejemplo, el proceso de descifrado tiene que revertir exactamente el proceso de cifrado. Los números de punto flotante están en desventaja porque las operaciones en ellos tienden a tener variaciones entre diferentes arquitecturas de procesador.
Una gran cantidad de criptografía, incluida RSA, se basa en propiedades "agradables" de enteros, a menudo relacionadas con la divisibilidad (que es fundamentalmente una propiedad de enteros). Los números de punto flotante no tienen tales propiedades que hacen que los algoritmos funcionen.
La complejidad no es lo que hace que los algoritmos criptográficos sean seguros. Es una combinación de propiedades matemáticas y de nadie que haya encontrado una manera de romperlas. No hay absolutamente nada que ganar con los cálculos de punto flotante allí, y como hemos visto mucho que perder.