Soluciones sencillas a problemas complejos: criptografía y secuencias binarias

Matemoción

Estaba estos días buscando información sobre criptografía, cuando fui a parar a un libro que podemos considerar ya todo un clásico de divulgación de las matemáticas, publicado un poco antes del año 2.000 –que recordemos que fue el Año Mundial de las Matemáticas– y que lleva muchos años en mi biblioteca, Las matemáticas en la vida cotidiana, de la editorial Addison-Wesley, junto con la Universidad Autónoma de Madrid (en su edición en castellano). Allí encontré un ejemplo bonito de cómo en ocasiones los problemas difíciles, como puede ser la seguridad en las comunicaciones, pueden tener soluciones sencillas. La entrada de hoy quiero dedicarla a mostrar este curioso ejemplo.

Portada del libro Las matemáticas en la vida cotidiana, Addison-Wesley/Universidad Autónoma de Madrid, 1999

En la actual era de la información vivimos rodeados de tecnología digital, desde los ordenadores, las tabletas o los Smartphones, hasta toda la comunicación a través de internet, pasando por la imagen y sonido digitales, la televisión digital o las casas inteligentes. Una de las características de la tecnología digital es que toda la información está en formato “digital”, es decir, codificada en forma de números. Y estos números están representados en la base binaria (véase Una de mates: números binarios), es decir, como secuencias de unos (1) y ceros (0).

A continuación, vamos a explicar un ejemplo en el que las secuencias binarias y la suma digito a dígito de secuencias binarias han permitido a plataformas de televisión por cable, como HBO, Showtime o Canal Disney –por citar las que se mencionan en el libro Las matemáticas en la vida cotidiana–, evitar el acceso a su contenido audiovisual a quienes no han estado abonados a las mismas.

En 1984, cuando el canal de televisión HBO empezó a codificar su señal, los usuarios accedían a la misma –en forma de ondas electromagnéticas– a través de una antena parabólica, aunque hoy en día toda la información nos llega a través de la fibra óptica u otros medios.

Logo de la plataforma HBO

Tres elementos eran necesarios para evitar el acceso pirata a la señal de televisión por cable. Por una parte, una contraseña mensual del canal de televisión –que se enviaba junto con la señal–, una clave para cada usuario y una operación, que explicaremos a continuación, para asegurar que ese usuario era realmente un abonado de la plataforma.

Tanto la contraseña mensual del canal de televisión, como la clave de usuario eran secuencias binarias, en aquellos años de longitud 56, aunque en esta entrada, para simplificar la explicación, utilizaremos solo secuencias de 8 dígitos, es decir, de longitud 8. Por ejemplo, 10101110 es una secuencia binaria de longitud 8.

Ya sabemos que la información –contraseña mensual y clave de usuario– va a estar dada en forma de secuencias binarias, en esta explicación consideradas de longitud 8, por lo que estamos en condiciones de explicar la operación de suma que se utilizaba para asegurar que el usuario era realmente un abonado de la plataforma. Esta suma no es una suma normal de números binarios, sino que es una suma dígito a dígito. Dadas dos secuencias binarias de la misma longitud, se suman los dígitos de las mismas posiciones, teniendo en cuenta que 0 + 0 = 0, 1 + 0 = 0 + 1 = 1 y 1 + 1 = 0, para obtener una nueva secuencia binaria de la misma cantidad de dígitos. Veamos algunos ejemplos:

Ejemplos de sumas, dígito a dígito, de secuencias binarias de longitud 8

Una propiedad importante de esta suma dígito a dígito es que la suma de dos secuencias binarias es 00000000 si, y sólo si, las dos secuencias binarias son la misma. Por ejemplo, esto es lo que ocurre en la última suma de los ejemplos que hemos mostrado, 10001110 + 10001110 = 00000000.

Veamos en qué consistía la solución al problema de que se piratease la señal de televisión de HBO, y otros canales de televisión por cable. Como ya hemos comentado, cada mes el canal de televisión cambiaba la contraseña p. Consideremos, por ejemplo, que un mes la contraseña era p = 11001011.

Por otra parte, cada uno de los abonados del canal disponía de su propia clave. Como cada abonado disponía de una clave distinta, existían tantas claves como abonados, c1, c2, …, ck (donde k = número de abonados de ese mes). Imaginemos que mi clave de usuario de HBO fuese c = 01110101.

Ese mes el canal de televisión transmitía, con la señal de televisión, la contraseña mensual p y las secuencias binarias p + c1, p + c2, …, p + ck. En cada una de las “cajas de descodificación” de los abonados, cada una de las cuales disponía de la correspondiente clave de ese usuario ci, se calculaban las sumas

ci +(p + c1), ci +(p + c2), …, ci +(p + ck).

El microprocesador de la caja de descodificación, después de realizar estas sumas, las comparaba con la contraseña p y si alguna de ellas coincidía con ella se trataba de un abonado y se descodificaba la señal. Observemos que se va a producir esa coincidencia cuando se suma ci con (p + ci), ya que, por la propiedad anterior, ci + ci = 00000000, de donde, ci +(p + ci) = p.

En nuestro ejemplo, la contraseña mensual es p = 11001011 y mi clave de abonado c = 01110101, entre las secuencias binarias que transmite el canal estará p + c = 10111110, que al sumarse en mi descodificador con mi clave c + (p + c) = 11001011, que efectivamente coincide con p, puesto que soy un abonado real del canal de televisión por cable.

Por último, tengamos en cuenta que las secuencias binarias reales son de longitud, al menos, 56, luego la cantidad de posibles claves que existen son 256, más de 72 mil millones, en concreto: 72.057.594.037.927.936. Por lo tanto, piratear una clave no es algo tan sencillo como intentar ir probando diferentes secuencias binarias de 56 dígitos.

La ceramista estadounidense Laura C. Hewitt crea cerámicas con números binarios, con tipografías de máquinas de escribir, como este hermoso plato. La imagen pertenece a su tienda de Etsy

En el libro Contemporary abstract algebra se explica que esta misma sencilla idea puede ser utilizada para proteger las transacciones a través de internet.

Supongamos que alguien quiere comprar mi libro Los secretos de la multiplicación, de los babilonios a los ordenadores (Los libros de la Catarata, 2019) en alguna de las librerías o tiendas online que existen. Para ello, cuando estamos realizando la compra, nos piden nuestra tarjeta de crédito. Pero, por supuesto, no queremos que ningún hacker pueda interceptar nuestro número de la tarjeta de crédito durante la transacción. Para ello el número de la tarjeta de crédito, escrito como una secuencia binaria, tendrá que ser enviado a la tienda online de una forma segura.

Cuando estamos rellenando la orden de compra en la tienda on-line, esta envía a nuestro ordenador, tableta o Smartphone una clave c en forma se secuencia binaria de unos y ceros con tantos dígitos como los que tiene la secuencia binaria p del número de la tarjeta de crédito. Entonces, cuando añadimos nuestra tarjeta de crédito a la orden de compra, las dos secuencias binarias – de la clave enviada por la tienda y de la tarjeta que introducimos– se suman c + p, mediante la suma dígito a dígito de secuencias binarias. El resultado de esa suma es lo que se envía, a través de internet, a la tienda de comercio en línea, de forma que cualquier hacker no accede al número de la tarjeta p, sino a la suma c + p, con lo que no consigue robar nuestra información. Una vez que esa información llega a la tienda de internet, para conocer cuál es el número de nuestra tarjeta de crédito no tienen nada más que sumar de nuevo la clave c, ya que c + (c + p) = p.

¡Están lloviendo números binarios!, ilustración realizada por KHJ y vendida en camisetas, sudaderas, tazas y pegatinas en su página de Teepublic

Veamos un ejemplo concreto, pero para no complicarlo utilizaremos otra vez secuencias binarias de longitud 8. Supongamos que el número de nuestra tarjeta de crédito codificada como una secuencia binaria es p = 10011011, que la clave que nos manda la tienda online es c = 01111101, entonces nuestro ordenador envía a la tienda de internet la información c + p = 01111101 + 10011011 = 11100110. Si algún hacker accede a esa información no puede conocer cuál es la secuencia binaria de nuestra tarjeta de crédito, pero al llegar la información de nuevo a la tienda, se suma la clave c + (c + p) = 01111101 + 11100110 = 10011011, obteniendo así nuestra tarjeta de crédito p = 10011011, para efectuar la compra.

Para terminar, me gustaría agradecer a Paco Roca y a la editorial Astiberri que nos permitieran leer durante el periodo del confinamiento por el coronavirus (marzo-abril 2020), de forma gratuita, el magnífico libro de Paco Roca, publicado en Astiberri, Memorias de un hombre en pijama (2011).

En este libro tenemos además dos momentos matemáticos. El primero cuando el hombre en pijama, el Paco Roca de la ficción, está pensando en qué profesiones le habría gustado tener si no hubiese dedicado su vida a “dibujar y contar historias”. En la segunda viñeta leemos que piensa “Recuerdo que quería ser un gran científico. Un matemático famoso que resolvería la conjetura de Poincaré”, como podemos ver en la siguiente imagen.

Mientras que el segundo es el final del mismo. El Paco Roca de ficción, el hombre en pijama, decide dejar de enviar más entregas de Memorias de un hombre en pijama al periódico en el que salían estas (esta historieta fue publicada por primera vez, por entregas, en el periódico Las provincias, en 2010). La idea para la última entrega se le ocurrió en una fiesta en la que bebió mucho, por lo que la apuntó en su móvil, ya que no tenía a mano su libreta, para no olvidarse. Pero cuando va a mirar cuál es esa idea que había apuntado…

Bibliografía

1.- VV. AA. (director del proyecto Solomon Garfunkel), Las matemáticas en la vida cotidiana, Addison-Wesley/Universidad Autónoma de Madrid, 1999.

2.- Joseph A. Gallian, Contemporary abstract algebra, Brooks/Cole, 2012 (octava edición).

Sobre el autor: Raúl Ibáñez es profesor del Departamento de Matemáticas de la UPV/EHU y colaborador de la Cátedra de Cultura Científica

10 comentarios

  • Avatar de Juan Clemente

    Me ha gustado mucho su artículo, pero no llegó a captar el final, el del número pi.
    Me podría dar una pista para ver si aterrizó.
    Gracias

  • Avatar de pepe

    En el ejemplo de comprar con la tarjeta de crédito, «nuestro ordenador envia a la tienda de internet la información c + p = 01111101 + 10011011 = 11100110. Si algún hacker accede a esa información no puede conocer cuál es la secuencia binaria de nuestra tarjeta de crédito»
    Si el supuesto hacker es capaz de leer el dato c+p, entonces también es capaz de leer el dato inicial que la tienda nos envía «c = 01111101», echando por tierra tanto el saldo de nuestra cuenta bancaria como la finalidad didactica del ejemplo.

    • Avatar de Jose

      Exactamente. El reto es trasmitir el dato c al cliente de forma segura. O cambiar totalmente el esquema y recurrir a la criptografía asimétrica, donde se utiliza una clave para cifrar y otra distinta para descifrar (aunque estén relacionadas).

      Por otro lado, la operación que se describe en el artículo no es más que la operación binaria XOR, que forma parte del conjunto de instrucciones más básico que tienen todos los procesadores.

    • Avatar de carlos

      Exacto. La solución que funciona para HBO no sirve para la tienda. Puesto que en HBO se entiende que la clave de abonado se entrega por otro canal y por cable le llegan todas las posibles claves cifradas. Es unidireccional.

  • Avatar de Enrique

    En la práctica lo que se hace hoy en día es utilizar el algoritmo de Diffie-Hellman muy bien explicado en el libro https://www.crypto101.io/.

    Ambos extremos se las apañan mediante Diffie-Hellman para compartir una nueva clave privada (nueva para cada nueva conexión) sin llegar a transmitir dicha clave privada a la red en ningún momento, solamente «pistas» que cada extremo puede utilizar para calcular la clave privada compartida, sin que estas «pistas» sirvan a un atacante para calcularla por su cuenta.

  • Avatar de Beauséant

    Me estaba preguntado lo mismo que pepe en el comentario anterior. El problema de las conexiones de internet es la «facilidad» para poder leer las tramas de información. Por eso, entiendo, se usan algoritmos asimétricos que cifran esa información sin necesidad de usar una clave que debe enviarse de alguna forma.

    En el caso de HBO es el decodificador el que guarda la clave y nunca sale de ahí. No conocía el sistema y es muy inteligente, siempre me sorprenden esas soluciones tan fáciles cuando las conoces.

  • […] Soluciones sencillas a problemas complejos, criptografía y secuencias binarias: “A continuación, vamos a explicar un ejemplo en el que las secuencias binarias y la suma digito a dígito de secuencias binarias han permitido a plataformas de televisión por cable, como HBO, Showtime o Canal Disney –por citar las que se mencionan en el libro Las matemáticas en la vida cotidiana–, evitar el acceso a su contenido audiovisual a quienes no han estado abonados a las mismas.” […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *