¿Recuerdas la historia del iPhone encriptado que Apple no quería desencriptar a pesar de que se lo había pedido el FBI? ¿Has visto que tus mensajes de Whatsapp ahora anuncian que van encriptados? ¿Qué significa que un mensaje está encriptado? ¿Qué tiene que ver esto con los números primos? ¿Y por qué la posesión de un número primo puede ser delito?
Empecemos por el principio, aunque si ya sabes lo que es un primo, te puedes saltar este párrafo e ir directo a jugar a Is this prime? Si no lo tienes del todo claro, o te han eliminado porque no recordabas que 1 no es primo, te recuerdo que decimos que un número natural mayor que uno es primo cuando solo se puede dividir por uno y por sí mismo. Escrito como multiplicación, un número es primo cuando solo tiene dos factores, uno y el propio número.
Por ejemplo el 17, solo se puede poner como 1x17 o como 17x1 (que vale lo mismo). Un número que claramente no es primo como el 16 tiene más factores: 2x8, 4x4, 16x1…
La lista de los primeros números primos es más o menos conocida: 2, 3, 5, 7, 11..., pero cuando la cosa avanza todo se vuelve más complicado. De hecho, muchos números tienen apariencia de primos, como el 57, que aunque es el triple de 19 se cuenta que Grothendiek -uno de los matemáticos más brillantes del siglo XX- lo dio en una ocasión como ejemplo de primo. No es consuelo, pero el autor del juego Is this prime? ha hecho sus propias estadísticas y ha encontrando que la mayoría de los fallos vienen de pensar que el 51, que es 3 veces 17, es primo, seguido de cerca por el 57.
Para poder discriminar primos de compuestos “solo” hace falta hacer divisiones. Por ejemplo, si no te queda claro si el 101 es primo, solo tienes que probar a dividirlo entre 2, entre 3, entre 4, entre 5, entre 6, entre 7… Nadie dijo que fuera a ser rápido. Este proceso se puede optimizar. En realidad, solo es necesario dividir entre los primos menores que 101, porque si no es divisible entre 2, ya descarto que sea divisible entre ningún múltiplo de dos (4, 6, 8, 10… ) Piénsalo al revés, si fuera divisible entre diez se podría repartir entre diez, y por tanto también se podría repartir entre dos (y ojo, que dividir no siempre es repartir).
Esto conduce a un bonito método para encontrar primos pequeños, la criba de Eratóstenes. Tampoco habrá que pasar de 10, ya que de tener un divisor mayor que 10 el otro factor -primo o no- tiene que ser menor que 10 y ya los hemos descartado. Aunque se pueda acelerar no tiene efecto en números verdaderamente grandes: el mayor primo que se conoce tiene más de veintidós millones de dígitos. Mucha de la seguridad en las comunicaciones en la red se apoya en que encontrar esa factorización con los equipos actuales tomaría más tiempo que el que lleva brillando el Sol.
¿Qué tiene todo esto que ver con la seguridad? Como ya explicamos en Verne, cuando apenas había gente que supiera leer bastaba con ofuscar un poco el mensaje, por ejemplo, sustituir unas letras por otras (por ejemplo aquello de C en lugar de A, D en lugar de B, E en lugar de C y todas las demás). Pero como en castellano la letra más frecuente es la E, si en tu mensaje la letra más frecuente es la Ñ, puedo empezar a pensar que esa es a la que ha ido la E y luego ir tirando del hilo, así que ese sistema no resiste un análisis estadístico.
El siguiente paso en el camino de la seguridad de los mensajes además de sustitución aplica una operación: cambias primero unas letras por otras siguiendo un patrón, escribes eso en números, empaquetas esos números en grupos de cifras, le aplicas a cada paquete una transformación, una operación matemática que solo tú y tu destinatario conocéis y que para resolverla probando con todos los números tomaría mucho esfuerzo de computación con los ordenadores actuales.
Como ya explicamos hace unos meses en un artículo sobre encriptación, "las claves pública y privada dependen justo de la factorización de números “grandes” (de más de 500 cifras) y ese es uno de los problemas abiertos -sin solución a día de hoy en matemáticas-. Factorizar un número de este tamaño necesita más tiempo de computación que el que ha pasado desde el origen del universo: se trata de un número grande".
Y aquí llega la explicación de los primos ilegales: ¿recuerdas en el siglo pasado cuando utilizábamos el CD e incluso había gente que los pirateaba? Estoy hablando de 1999, en Estados Unidos se promulgó una ley, la Digital Milennium Copyright Act, en la que no solo se castigaban las violaciones de la propiedad intelectual, sino también cualquier software o desarrollo que pudiera ser utilizado para sortear las protecciones criptográficas de CDs y DVDs. Y esto incluye a los números primos muy grandes que se usan en encriptación y que no se pueden tener anotados o guardados ni distribuirse.
Como denunció la Fundación para las Fronteras Electrónicas, la ley dificulta la investigación en teoría de números y criptografía, y podría servir para multar y detener a alguien por tener en su posesión un número primo grande, por lo menos en Estados Unidos. Esto lo ha explicado con bastante gracia el youtuber Wendover en un vídeo que ha superado las 800.000 reproducciones en dos semanas.