I numeri in virgola mobile sono un'approssimazione di numeri reali. Sono appropriati per i calcoli continuous , in cui una piccola variazione dell'input produce una piccola variazione dell'output.
La crittografia generalmente comporta calcoli che arrivano al punto in cui arriva da continuo. Non importa quanto siano simili due messaggi non identici, non dovrebbero avere hash simili, firme simili o crittografie simili. I virgola mobile sono del tutto inappropriati per questo.
La crittografia spesso implica una sorta di scrambling dall'aspetto irreversibile, che può essere annullato solo in presenza di una chiave segreta (o non del tutto). I processi naturali tendono ad essere continui, quindi reversibili. I processi caotici , il cui passato non può essere calcolato, tendono a coinvolgere interi in qualche punto - spesso un numero di iterazioni o cicli, dove una soglia viene colpita o persa ad ogni iterazione. I numeri interi sono il modo in cui sorge l'irreversibilità.
Il risultato delle operazioni crittografiche deve essere riproducibile. Ad esempio, il processo di decrittografia deve invertire esattamente il processo di crittografia. I numeri in virgola mobile sono svantaggiati perché le operazioni su di essi tendono ad avere variazioni tra le diverse architetture del processore.
Gran parte della crittografia, inclusa la RSA, si basa su proprietà "belle" di numeri interi, spesso legate alla divisibilità (che è fondamentalmente una proprietà di numeri interi). I numeri in virgola mobile non hanno tali proprietà che fanno funzionare gli algoritmi.
La complessità non è ciò che rende sicuri gli algoritmi crittografici. È una combinazione di proprietà matematiche e nessuno ha trovato un modo per romperle. Non c'è assolutamente nulla da guadagnare con i calcoli in virgola mobile lì, e come abbiamo visto molto da perdere.