“El factor humano” es una novela de Graham Green, que sirvió de guion para la película homónima Otto Preminger, donde la intriga de una trama de espionaje se mezcla con el análisis de los elementos que influyen en el comportamiento humano. Hay también un libro de John Carlin con el mismo título, a su vez llevado al cine como “Invictus” por Clint Eastwood, que cuenta la historia de la capacidad humana de una persona como Nelson Mandela para lograr el acercamiento a quienes eran sus enemigos y acabar así con la discriminación racial en Sudáfrica.

Ese factor, con el que el latín se designa “el que hace” algo, es el elemento o causa que actúa para alcanzar una determinada conclusión (como es el comportamiento o la capacidad humana), para realizar una tarea (como el factor de una estación de transporte, persona que se ocupa de hacer la facturación los equipajes y mercancías), para lograr una acción (como el factor RH, proteína responsable de hacer compatible la transfusión sanguínea) o para configurar un producto (como los factores que componen el Producto Interior Bruto, PIB). No es de extrañar que los matemáticos hayamos acudido entonces a esa palabra, “factor”, para denominar a cada uno de los elementos que hacen posible un número entero. Así, hablamos de los factores (o divisores) de un determinado número entero, como aquellos números en que se puede descomponer (o dividir) como producto (o multiplicación). Por ejemplo, el 12 se puede descomponer como producto de factores 2 y 6.

Eso sí, un número tiene muchas descomposiciones posibles, por un lado porque ya saben ustedes que el orden de los factores no altera el producto (por ejemplo, 12 = 2 x 6 = 6 x 2), y por otro lado porque los divisores de la descomposición podrían a su vez volver a dividirse (por ejemplo, 12 = 2 x 6 = 2 x 2 x 3). Por eso cuando se quieren encontrar los elementos esenciales que hacen posible un número entero, se busca su descomposición en factores que no se puedan dividir más, salvo por sí mismos y por la unidad: esa es la característica de los denominados números primos (del latín “primus”, primero, que precede a los demás en orden). En el ejemplo del 12, sus factores primos son 2 (dos veces) y 3.

En nuestra ayuda para esta tarea contamos con el teorema fundamental de la aritmética, que nos demuestra que un número entero positivo tiene una única descomposición en factores primos, y con una serie de métodos o algoritmos de factorización para encontrar esa única descomposición. El más sencillo de todos ellos, que aprendemos en la escuela, es el método de la división por tentativa: consiste en intentar dividir el número entero entre todos los números primos menores o iguales a su raíz cuadrada (lo que viene a ser su mitad multiplicativa), identificando como factores aquellos que den como resultado una división exacta. Pero a pesar de la facilidad de su ejecución, este método supone emplear un tiempo considerablemente grande para hacer cada posible divisió, o dicho con más precisión: los métodos de factorización alcanzan una gran complejidad computacional, tanta que el tiempo que nos lleva realizar esas divisiones depende exponencialmente (y no polinomialmente) del tamaño (número de cifras) del número a descomponer.

La situación se puede resumir diciendo que, aunque el producto de factores primos sea algo fácil de hacer (sólo hay que multiplicar), el resultado de ese producto es algo muy complejo de deshacer.  O dicho de otra manera, si construimos un número entero como producto de dos números primos suficientemente grandes y retamos a alguien a que descubra cuales son esos dos números primos, le enfrentamos a un problema para el que no se dispone de algoritmos eficientes. A modo de ejemplo, si el número entero tiene 100 cifras, un ordenador que hiciera 1010 operaciones por segundo, tardaría unos 4 * 1012 años en hacer las divisiones para encontrar sus factores primos, lo que supone un tiempo mucho mayor que la actual edad del universo (13,8 * 109 años).

Basándose en esta dificultad, de la factorización surgen uno de los sistemas criptográficos (del griego “kryptós”, oculto) más aplicados en el mundo para proteger nuestras comunicaciones (está detrás, por ejemplo, de la transmisión del pin de nuestro móvil o de nuestra tarjeta de crédito). Consiste en que cada comunicación se oculta mediante una clave pública (un número entero muy grande) que cualquiera puede conocer y que se ha construido como el producto de dos claves privadas (sus dos factores primos) que sólo conoce el receptor autorizado de la comunicación, lo que garantiza que él será el único que pueda acceder para desencriptar su contenido.

06-2016-CriptografiaClavePublica

El más utilizado de estos sistemas criptográficos es el RSA, creado en 1977 por Rivest, Shamir y Adleman, que actualmente se viene utilizando con números primos de 200 cifras.

Eso sí, este tipo de sistemas para proteger las comunicaciones serán seguros mientras nadie encuentre un algoritmo eficiente de factorización de números enteros. Y si en algún momento alguien lo encuentra (y quién sabe si eso ya puede haber ocurrido) ¿ustedes creen que lo publicará para que todos lo conozcamos? ¿O preferirá hacer negocio con su descubrimiento, si es que no lo secuestran antes? Uff… mejor no lo piensen, si quieren seguir utilizando tranquilos su tarjeta de crédito.