La cuadratriz

Este artículo es una colaboración enviada por fede a nuestro mail gaussianos (arroba) gmail (punto) com.

Introducción

La cuadratriz es una curva descubierta por los antiguos matemáticos griegos que resuelve dos de los problemas famosos de la época: la trisección del ángulo y la cuadratura del círculo. No sabemos quienes descubrieron sus propiedades, pero autores antiguos la asocian con Dinóstrato, Nicomedes e Hipias.
En el libro IV de la ‘Colección Matemática’ de Pappus de Alejandría nos ha llegado una demostración de la propiedad de la cuadratriz que permite cuadrar el círculo, que presentamos aquí.

Usamos la notación A:B::C:D para expresar ‘A es a B como C es a D’, en lugar de la notación de igualdad de fracciones, para intentar acercarnos a los conceptos de las antiguas matemáticas griegas.

Generación de la cuadratriz

Generacion de la cuadratriz

Supongamos inscrito en el cuadrado CABF un arco de circunferencia \overset{\frown}{CB} con centro A. Sea D un punto que parte de C y se desplaza por el arco \overset{\frown}{CB} a velocidad uniforme. Sea E un punto que parte de C en el mismo momento que D y se desplaza por el segmento CA a velocidad uniforme y de forma que el tiempo en que E recorre CA es el mismo que el tiempo en que D recorre el arco \overset{\frown}{CB}. Entonces, en cada instante, la longitud del segmento EA es a la longitud del segmento CA como la longitud del arco \overset{\frown}{DB} es a la longitud del arco \overset{\frown}{CB}, lo que expresamos con la notación EA:CA::\overset{\frown}{DB}:\overset{\frown}{CB}. El punto H, en que se cortan la perpendicular a AC por E y la recta AD, describe la curva llamada cuadratriz.

Como con regla y compás podemos bisecar ángulos y obtener el punto medio de segmentos, podemos obtener con regla y compás puntos de la cuadratriz tan cercanos entre sí como queramos.

La división del ángulo

cuadratriz2a

La cuadratriz permite inmediatamente dividir un ángulo en la misma proporción que un segmento y viceversa, es decir, reduce el problema de la división de un ángulo al de la división de un segmento. Se presume que éste fue el uso para el que se inventó en primer lugar la cuadratriz.

Si queremos dividir un ángulo DAB según una razón dada u:v, obtenemos el punto H de intersección del ángulo con la cuadratriz, y a continuación el punto E con HE perpendicular a AC. Obtenemos en AE un punto L de forma que AL:AE::u:v (Elementos VI.9) y a continuación el punto Q, intersección de la cuadratriz con la perpendicular a AC por L. Por último obtenemos el punto J, interseccion de AQ con el arco \overset{\frown}{CB}.
Como por la definición de la cuadratriz EA:CA::\overset{\frown}{DB}:\overset{\frown}{CB} y LA:CA::\overset{\frown}{JB}:\overset{\frown}{CB}, resulta que \overset{\frown}{JB}:\overset{\frown}{DB}::LA:EA::u:v, y hemos dividido el ángulo DAB en la razón u:v requerida.

La cuadratura del círculo

cuadratriz3a

Si primero se concibió la cuadratriz para dividir ángulos, quizá fue una sorpresa descubrir que también resolvía el problema de la cuadratura del círculo. Para ello no hace falta la cuadratriz, sino solo el punto I de intersección de la cuadratriz con la base AB. Ese punto I no se produce como intersección de las rectas AD y EG en la primera figura, porque esas rectas coinciden cuando llegan a I, y por tanto tenemos que definirlo como el punto límite al que tienden los puntos de la cuadratriz cuando AD y EG se acercan a AB.

La propiedad del punto I que permite rectificar la circunferencia y cuadrar el círculo es que \overset{\frown}{CB}:AB::AB:AI, o, dicho en palabras, la longitud del arco \overset{\frown}{CB} es a la longitud del segmento AB como la longitud del segmento AB es a la longitud del segmento AI.

Ello implica que si R es la intersección de la paralela a CI que pasa por B con la prolongación de AC, la longitud AR es igual a la longitud del arco \overset{\frown}{CB} (porque AR:AB::AB:AI).

Entonces, puesto que el área de un sector circular es la mitad de la longitud del arco por el radio, si S es el punto medio de AR, el área del sector circular ACB es igual al área del rectángulo SABT. Por tanto el área del círculo es 4 veces el área de ese rectángulo.

Y como podemos construir un cuadrado con área igual a un rectángulo dado (Elementos II.14), podemos cuadrar el círculo con regla y compás si nos dan el punto I de la cuadratriz en el segmento AB.

Demostración

A continuación damos la demostración que da Pappus de la propiedad \overset{\frown}{CB}:AB::AB:AI.

En AB existe un punto P tal que \overset{\frown}{CB}:AB::AB:AP.

Con centro A y radio AP trazamos el arco de circunferencia \overset{\frown}{KP}. Entonces AB:AP::\overset{\frown}{CB}:\overset{\frown}{KP}, porque las circunferencias son proporcionales a sus radios. Y como también AB:AP::\overset{\frown}{CB}:AB, tenemos que AB es igual al arco \overset{\frown}{KP}.
cuadratriz4a
cuadratriz5a
Supongamos que el arco \overset{\frown}{KP} tiene un punto H distinto de P en la cuadratriz (figura de la izquierda). Por definición de la cuadratriz:
\begin{matrix} CA:HL::\overset{\frown}{CB}: \\ :\overset{\frown}{DB}::\overset{\frown}{KP}::\overset{\frown}{HP} \end{matrix}
Como CA es igual a AB y AB es igual a \overset{\frown}{KP}, resulta que HL es igual a \overset{\frown}{HP}, lo que es absurdo. Por tanto
\overset{\frown}{KP} no tiene un punto en común con la cuadratriz, salvo quizá P. Entonces AP no puede ser mayor que AI.
Supongamos ahora que la perpendicular a AB por P tiene un punto H distinto de P en la cuadratriz (figura de la derecha).

Por definición de la cuadratriz, CA:HP::\overset{\frown}{CB}:\overset{\frown}{DB}::\overset{\frown}{KP}:\overset{\frown}{MP}. Como CA es igual a AB y AB es igual a \overset{\frown}{KP}, resulta que HP es igual a \overset{\frown}{MP}, lo que es absurdo. Por tanto la perpendicular a AB por P no tiene un punto en común con la cuadratriz, salvo quizá P. Entonces AP no puede ser menor que AI.
Pero hemos visto que tampoco puede ser mayor, luego el punto P es el punto I, y entonces \overset{\frown}{CB}:AB::AB:AI. como queríamos demostrar.

Obtener la ecuación de la cuadratriz en coordenadas polares y cartesianas no es difícil. A ver quién se atreve.

El teorema de Morley

Este artículo es una colaboración de Fede enviada por mail a gaussianos (arroba) gmail (punto) com

Tenemos en la figura un triángulo ABC en negro, con los trisectores interiores de cada ángulo en gris y los trisectores exteriores de cada ángulo en verde.

morleypres4-r2

En 1899 Frank Morley descubrió el resultado que ahora se conoce como teorema de Morley:

Los puntos de intersección de los trisectores de los ángulos de cualquier triángulo ABC determinan triángulos equiláteros

En la imagen podemos verlos en azul:

- Los trisectores interiores adyacentes a cada lado se cortan en 3 puntos D, E y F que son los vértices de un triángulo equilátero.

- Los trisectores exteriores adyacentes a cada lado se cortan en 3 puntos G, H y I que son los vértices de un triángulo equilátero.

- El trisector interior por A adyacente al lado AB y el trisector exterior por B adyacente al lado AB se cortan en punto J. El trisector interior por A adyacente al lado AC y el trisector exterior por C adyacente al lado AC se cortan en punto K. Los trisectores exteriores por B y C adyacentes al lado BC se cortan en un punto G. Los puntos J, K y G son los vértices de un triángulo equilátero. Análogamente para los otros ángulos.

Podemos encontrar demostraciones del teorema de Morley en esta revista o en este sitio.

Como esas demostraciones son para el triángulo formado por las intersecciones de los trisectores interiores, damos una aquí para el triángulo formado por las intersecciones de los trisectores exteriores.

Si  \angle CBA = 3b, el ángulo entre los lados y los trisectores interiores y entre éstos es igual a b y el ángulo entre los lados y los trisectores exteriores y entre éstos es igual a  \ 60^{\circ} - b.

Trisectores exteriores

morleylema2-r2

Demostramos que el triángulo formado por los trisectores exteriores adyacentes a cada lado es equilátero. Para ello usamos el siguiente lema:

Lema:

Sobre dos lados PQ y PR de un triángulo equilátero PQR construimos hacia el exterior triángulos PQH y PRG como en la figura, de forma que \angle PQH = \angle PRG = a,\ \  \angle RPG = b y  \ \angle QPH = c.
Reflejamos el triángulo PQH sobre PH para obtener el triángulo PQ^\prime H y el triángulo PRG sobre PG para obtener el triángulo PR^\prime G.

Lema:

En la construcción anterior, si a + b + c = 60^{\circ} , los puntos G y H están en la recta R^\prime Q^\prime y \angle PGH = a + b.

Porque como  \angle R^\prime PQ^\prime = 2b + 60^{\circ} + 2c < 180^{\circ} y el triángulo R^\prime PQ^\prime es isósceles, porque PR^\prime y PQ^\prime son iguales al lado del triángulo equilátero, tenemos que  \angle PR^\prime Q^\prime =  \angle PQ^\prime R^\prime = a, porque 2a + 2b + 2c + 60^{\circ} = 180^{\circ}. Pero por construcción también  \angle PR^\prime G = \angle PQ^\prime H = a, luego los puntos G y H están en la recta R^\prime Q^\prime.

Y por tanto  \angle PGH = 180^{\circ} - \angle PGR^\prime = 180^{\circ} - \angle PGR = a+b = 60^{\circ} - c.


morleyteor1-r2

Ahora, si tenemos un triángulo cualquiera ABC, con \ \angle BAC = 3a,\ \angle ABC = 3b,\ \angle BCA = 3c, construimos sobre los lados de un triángulo equilátero PQR , triángulos PRG, PQF y QPH haciendo ángulos a,\ b,\ c,\ a,\ b,\ c con los lados del triángulo equilátero como en la figura.

Entonces, por el lema anterior, como a + b + c = 60^{\circ}, \ \angle PGH = 60^{\circ}-c, \ \angle RGF = 60^{\circ} - c. Pero como \ \angle RGP = 120^{\circ} + c, resulta que \begin{matrix} \ \angle FGH = \angle RGP - \angle PGH - \angle RGF = \\ = 120^{\circ} + c - (60^{\circ}-c) - (60^{\circ}-c) = 3c \end{matrix}.

De la misma forma obtenemos  \angle GFH = 3a y  \angle FHG = 3b. Por lo tanto el triángulo FHG es semejante al triángulo ABC. Pero como \angle PGH = \angle RGF = 60^{\circ}-c , las lineas GP y GR son trisectores exteriores de FHG, y también FR, FQ, HQ y HF. Y estos trisectores exteriores se cortan en P, Q y R que son los vértices de un triángulo equilátero. Y como la semejanza preserva los ángulos, y ABC es semejante a FHG, en nuestro triángulo original ABC también los puntos se intersección de los trisectores exteriores serán vértices de un triángulo equilátero, como queríamos demostrar.


Trigonométricamente se demuestra que el lado del triángulo equilátero formado por la intersección de los trisectores exteriores es  8R \ \mathrm{sen}(a+120^{\circ})\ \mathrm{sen}(b+120^{\circ})\ \mathrm{sen}(c+120^{\circ}), donde R es el radio del círculo circunscrito.

La importancia de este teorema radica en que la trisección de un ángulo no es resoluble con regla y compás. Esta es la razón principal por la cual se cree que el enunciado y demostración de este teorema tan sencillo e intuitivo se le escapó a los griegos, ya que ellos no consideraban los resultados relacionados con operaciones que no pudieran hacerse con regla y compás, y no se publicó hasta finales del siglo XIX, cuando los matemáticos se atreven a considerar propiedades de figuras no construibles con estas normas.

Como última curiosidad, al parecer el propio Morley no estaba demasiado contento con el descubrimiento de este teorema, ya que los matemáticos del momento se centraron en él por su sencillez y por lo inesperado del resultado y dejaron a un lado el resto de sus trabajos.

El seno y el coseno de la suma de ángulos

Este artículo es una colaboración enviada por fede

Introducción

Haciendo uso del hecho de que a cada punto del plano le corresponde un vector y de que los vectores se suman según la regla del paralelogramo, vamos a demostrar las fórmulas para el seno y el coseno de la suma de dos ángulos en función de los senos y cosenos de cada uno de ellos. Concretamente vamos a demostrar las siguientes igualdades:

sen(a+b)=sen(a)cos(b)+cos(a)sen(b)

cos(a+b)=cos(a)cos(b)-sen(a)sen(b)

Demostración

La recta por el origen que hace un ángulo a con el eje X corta al círculo con centro en el origen y radio unidad en un punto de coordenadas (\cos(a), \mathrm{sen}(a) ) = \cos(a)(1,0) + \mathrm{sen}(a)(0,1), por definición de seno y coseno.

Si rotamos los puntos del plano alrededor del origen un ángulo b, el punto (1,0) se mueve a la posición (\cos(b), \mathrm{sen}(b) ), y el punto (0,1) se mueve a la posición (-\mathrm{sen}(b) , \cos(b)) (ver figura).

Por lo tanto un punto cualquiera (x,y) = x \cdot (1,0) + y \cdot (0,1) se mueve a la posición x \cdot (\cos(b), \mathrm{sen}(b) ) + y \cdot (-\mathrm{sen}(b) , \cos(b)).

En particular el punto (\cos(a), \mathrm{sen}(a)) se mueve a la posición cos(a) \cdot (cos(b), sen(b)) + sen(a) \cdot (-sen(b),cos(b))

que al multiplicar nos queda:

(cos(a) cos(b) - sen(a)sen(b) , cos(a) sen(b) + sen(a)cos(b)).

Pero el punto (\cos(a), \mathrm{sen}(a) ) se mueve claramente con la rotación a la posición (\cos(a+b), \mathrm{sen}(a+b) ). De donde, igualando coordenadas, resultan las dos fórmulas:

\begin{matrix} \cos(a+b) = \cos(a) \cos(b) -  \mathrm{sen}(a)\mathrm{sen}(b) \\ \mathrm{sen}(a+b) = \mathrm{sen}(a)\cos(b) + \cos(a) \mathrm{sen}(b) \end{matrix}

Algoritmos HASH (II): Atacando MD5 y SHA-1

Este artículo es una colaboración enviada por LordHASH

Algunos de los algoritmos de HASH más utilizados, que son sobre los que trabajaremos, son los siguientes:

  • MD5 (Message-Digest Algorithm 5 o Algoritmo de Firma de Mensajes 5): Desarrollado por Ron Rivest, ha sido hasta los últimos años el algoritmo hash más usado. Procesa mensajes de una longitud arbitraria en bloques de 512 bits generando un compendio de 128 bits. Debido a la capacidad de procesamiento actual esos 128 bits son insuficientes, además de que una serie de ataques criptoanalíticos han puesto de manifiesto algunas vulnerabilidades del algoritmo. Puede ser útil para comprobar la integridad de un fichero tras una descarga, por ejemplo, pero ya no es aceptable desde el punto de vista del criptoanálisis.
  • SHA-1 (Secure Hash Algorithm 1 o Algorimo de Hash Seguro 1): El SHA-1 toma como entrada un mensaje de longitud máxima 264 bits (más de dos mil millones de Gigabytes) y produce como salida un resumen de 160 bits. Este número es mayor que el que se utilizaba en el algoritmo SHA original, 128 bits. Ya existen nuevas versiones de SHA que trabajan con resúmenes de 224,256,384 e incluso 512 bits.

En realidad, lo seguros o inseguros que estos algoritmos sean no depende de los conocimientos informáticos o telemáticos que uno tenga, sino de sus conocimientos matemáticos. Nuestra intención es demostrar por dónde cojean los algoritmos de HASH, la dificultad computacional que presentan, y qué soluciones se dan a los posibles ataques que puedan sufrir por parte de individuos malintencionados.

Desde el año 2004 aproximadamente, cuando saltaron las primeras noticias escandalosas sobre la ruptura de MD5, la seguridad que ofrecen los algoritmos de HASH a nuestros esquemas de cifrado ha sido una cuestión que se ha puesto en entredicho. ¿Qué seguridad ofrecen estos algoritmos? ¿Resulta computacionalmente complejo romper uno de estos algoritmos? ¿Qué solución se debe adoptar? Intentaremos resolver estas cuestiones.

Intentemos dar una descripción algo más matemática de lo que es una función HASH. Supongamos que tenemos un mensaje a, al que aplicamos una función resumen a la que llamaremos h. Decimos entonces que el resultado de esta operación, al que llamaremos b es el HASH de a. Es decir:

h(a)=b

Esta función debe ser sencilla de realizar para un computador, pero debe ser computacionalmente imposible realizar la operación inversa, al menos para usuarios normales.

Además, esta función tiene otra característica: el tamaño de la entrada no es de longitud fija, puede ser de longitud variable. Esto tiene la siguiente consecuencia, que no demostraremos matemáticamente, pero que asumiremos por estar razonado en otros artículos publicados en Internet (al final se indican): es posible que dos mensajes de entrada a produzcan el mismo mensaje de salida b. Es decir, es posible encontrar un mensaje c, tal que:

h(c)=b

Sin embargo, encontrar ese mensaje debe ser, al igual que la particularidad antes mencionada, muy complejo desde el punto de vista computacional. Para los algoritmos de HASH esto es lo que se conoce como colisión: que dos mensajes de entrada produzcan el mismo mensaje de salida.

Así, a priori, podemos establecer dos posibles vulnerabilidades de las funciones HASH:

  • Que sea posible realizar la operación:

    h-1(b)=a

    Habitualmente, a la operación de invertir la función HASH comprobando todas las posibilidades para los bits de salida se le llama ataque de fuerza bruta. Esto es lo que debe ser computacionalmente impracticable. Supondría aplicar la función HASH 2n veces hasta encontrar la coincidencia (n es el número de bits de salida de la función).

  • Que se hallen colisiones:

    h(a)=b y h(c)=b, a distinto de c

    Lo que antes hemos denominado colisión.

Estas dos posibles debilidades dan lugar a cuatro tipos de ataques:

  • Ataque Tipo 1: El atacante es capaz de encontrar dos mensajes al azar que colisionan pero es incapaz de hacerlo de forma sistemática. Si es capaz de dar sólo con dos mensajes que provocan colisión, esta no es razón suficiente para tildar el algoritmo de ineficiente. Índice de peligrosidad: *
  • Ataque Tipo 2: El atacante es capaz de generar dos mensajes distintos de forma que sus HASH colisionen, pero sin saber a priori qué hash resultará. Es decir, el atacante no podría generar “queriendo” el HASH que necesite para fines maliciosos. Índice de peligrosidad: **
  • Ataque Tipo 3: El atacante es capaz de construir un mensaje sin sentido de forma que su HASH colisione con el de un mensaje con sentido. Si éste es el caso, el agente malicioso puede atacar algoritmos de encriptación asimétricos con firma digital, haciendo que se firmen mensajes sin sentido, y que el destinatario los acepte como fidedignos. Índice de peligrosidad: ***
  • Ataque Tipo 4: El atacante es capaz de crear un segundo mensaje falso que tiene sentido y cuyo hash colisiona con el del mensaje verdadero. En este caso, el atacante puede actuar con total impunidad, puede falsificar certificados, firmar mensajes…El resultado sería desastroso. Índice de peligrosidad: ****.

El problema entonces es el siguiente: ¿cómo de difícil es encontrar una solución? ¿Qué ataques reales son practicables? ¿Qué se gana incrementando el número de bits de salida del algoritmo?

En primer lugar, responderemos a la última pregunta. Si aumentamos el número de bits de salida del algoritmo, el ataque de fuerza bruta será más impracticable y también lo será encontrar los mensajes que colisionen, pues teóricamente se cumple que para confiar en que podemos encontrar dos mensajes que colisionen no hay que realizar 2n operaciones, si no sólo 2n/2.

Realicemos algunos cálculos para realizar ataques de fuerza bruta:

  • Para una clave de 12 dígitos, escrita con un teclado con 97 caracteres (base 97), habría que realizar (esto no tiene nada que ver con los algoritmos de HASH):

    9712 = 693.842.360.995.438.000.295.041 comprobaciones.

  • Para MD5, la salida es de 128 bits, sería necesario realizar:

    2128=3′402823669 * 1038 operaciones.

Trabajemos ahora con los ataques basados en búsqueda de colisiones:

  • Para MD5, la salida es de 128 bits, luego hay que operar sobre la mitad de bits, y sería necesario realizar:

    264=18.446.744.073.709.551.616 operaciones.

  • Para el algoritmo SHA 1, cuya salida es de 160 bits:

    280=1.208.925.819.614.629.174.706.176 operaciones.

    Curiosidad: 1.000.000 de ordenadores capaces de procesar en 1 µs cada operación tardarían más de 38.000 años en las 280 operaciones.

Y para los más desconfiados e incluso paranoicos: ¿qué hay de las supercomputadoras y de la gente que sí dispone de los medios necesarios? Cuando saltaron las primeras alarmas sobre estos algoritmos, hace unos dos años, las cifras eran las siguientes:

  • Para romper el SHA-0 completo se ha requerido un supercomputador de BULL de 256 procesadores durante unos 9 años de proceso, pero al supercomputador que está instalando IBM en la UPC (Barcelona) sólo le costaría del orden de 1 año.
  • Otro grupo de investigadores, Wang, Feng, Lai, y Yu han reportado haberlo conseguido con una complejidad aproximadamente 2000 veces menor (240 en vez de 251). Esta reducción equivaldría a una necesidad de cálculo de algo menos de 1 día, si la relación fuese lineal, pero los mismos investigadores han reportado necesitar sólo 1 día con un IBM P690 en cluster, para romper el MD5, que tiene una complejidad equivalente.

Por tanto, lo habitual no es que nos ataque desde uno de estos grandes usuarios (tienen cosas más interesantes que hacer, diría yo…) si no que nos ataque un cracker o similares (ACLARACIÓN: No incluyamos a los señores programadores en esto, los hackers. Gracias a Richard Stallman).

Lo habitual es que este tipo de usuarios realicen ataques basados en diccionarios, como la aplicación para Ñu/Linux John the Ripper. Este tipo de aplicaciones tiene una base de datos con claves comunes, que prueban sobre los sistemas a los que queremos acceder (por ejemplo Sistemas basados en UNIX donde se almacenan los resúmenes HASH de el nombre de usuario y su clave para autenticar). Ante esto sólo hay una solución: EVITAR LAS PASSWORDS ABSURDAS. No sirve (marta -tkm ni maria-secreto) ok??

Concluyendo, dependiendo de su nivel de paranoia críptica y de la aplicación que estén utilizando…escojan su algoritmo de HASH, pero no acepten menos de SHA-1. Cuando un algoritmo empieza a presentar vulnerabilidades no tarda mucho en ser aniquilado, así que a algunos de estos les queda poco tiempo de vida.

Fuentes:

Ir a Algoritmos HASH (I): Introducción

Algoritmos HASH (I): Introducción

Este artículo es una colaboración enviada por LordHASH

En primer lugar, trataremos de abordar de forma sencilla este concepto para aquellos que no lo conozcan. Podemos decir que un HASH no es más que un número resumen. De hecho, en muchos sitios web podéis encontrar expresiones como “checksum MD5″, lo que literalmente se traduce por “suma de comprobación”. Así, el concepto no es complicado, pero sí su implementación. Pongamos un ejemplo: supongamos que tenemos un fichero cualquiera. Pues bien, si consideramos dicho fichero como un flujo de bits y le aplicamos un algoritmo de HASH lo que obtenemos es otro conjunto de bits (de longitud fija y que depende del número de bits de salida del algoritmo o función que utilicemos) que depende bit a bit del contenido del flujo original de bits que sirvió como entrada al algoritmo.
Además, cumplen las siguientes propiedades:

• Todos los HASHes generados con una función de hash tienen el mismo tamaño, sea cual sea el mensaje utilizado como entrada.
• Dado un mensaje, es fácil y rápido mediante un ordenador calcular su HASH.
• Es imposible reconstruir el mensaje original a partir de su HASH.
• Es imposible generar un mensaje con un HASH determinado.

Es decir, un algoritmo de HASH no es un algoritmo de encriptación, aunque sí se utiliza en esquemas de cifrado, como algoritmos de cifrado asimétrico (por ejemplo en el RSA).

Ahora bien, tener una función de estas características puede tener muchas aplicaciones. Algunas de ellas pueden ser las siguientes:

  • Comprobación de integridad de ficheros: Supongamos que queremos transmitir un fichero a un amigo. Si antes de realizar este envío calculamos la función HASH del fichero, para nuestro amigo del otro extremo es posible verificar la integridad del fichero aplicando el mismo algoritmo al archivo que recibe. Si ambos coinciden, podemos asegurar que el envío ha sido satisfactorio. Ésta es una aplicación real que se utiliza, por ejemplo, para comprobar la integridad de muchos paquetes que se descargan en distribuciones del sistema operativo GNU/Linux.
  • Seguridad en procesos de identificación en sistemas: Los procesos de identificación (Login+Password) se ven reforzados por estos algoritmos. Se utilizan de la siguiente forma: cuando un usuario accede a su computadora debe introducir su nombre de usuario y su password. Pues bien, si el sistema operativo no registra estos datos como “texto claro”, si no que registra el resultado de aplicarles una función HASH, en el caso de que un usuario malicioso logre acceder a nuestro archivo de registros no conseguirá (a menos que el algoritmo utilizado sea malo o disponga de una supercomputadora) revertir el contenido de dicho registro, y por tanto no puede acceder a nuestro sistema. Esta misma idea se aplica en identificación de usuarios en muchas webs, con la diferencia de que para que este esquema sea seguro debe incluir información adicional y “aleatoria”, como marcas de tiempo y redundancias.
  • Firma digital: Estos algoritmos se utilizan en esquemas de firma digital para verificar la integridad de la información enviada por el canal de comunicaciones. Algoritmos de cifrado asimétrico, como RSA por ejemplo, realizan lo siguiente: calculan la función HASH del contenido del mensaje que se va a enviar y luego se firma dicho checksum con la clave privada del emisor. Así se asegura la integridad de la información y el “no repudio”.
  • En el próximo post veremos algo más sobre ataques a dos algoritmos HASH: MD5 ySHA-1.

    Ir a Algoritmos HASH (II): Atacando MD5 y SHA-1

Poliedros regulares: el Tetraedro

El siguiente artículo es una colaboración enviada por snipfer

Comenzamos con este post el primero de lo que esperamos sea una serie dedicada a tratar los cinco poliedros regulares.
Los poliedros son entes de razón que, como su propio nombre indica, están formados por muchas caras. Específicamente cuatro o más y sin límite superior. Si nos restringimos a los poliedros regulares, entonces las caras deben ser polígonos regulares, es decir, aquellos formados por segmentos de igual longitud que formen el mismo ángulo entre segmentos contiguos.
Si imponemos esta restricción ya no podemos construir ilimitados poliedros, sino que nos limitamos a 5, los poliedros regulares, también conocidos como sólidos platónicos, que son conocidos por los hombres desde tiempos de la Grecia antigua.
Antes de continuar dejemos clara la nomenclatura que se usará en este post:

  • Cara: Cada uno de las porciones de plano limitadas por las aristas.
  • Arista: Son segmentos de recta, convergen entre si en los vértices.
  • Vértices: Puntos en común de las aristas, como mínimo deben converger tres aristas y tres caras en un mismo vértice.
  • Sección: Polígono resultante de la intersección de un plano cualquiera con las caras del poliedro
  • Verdadera magnitud: Elemento que se ve sobre el plano del cuadro (papel o pantalla) sin deformaciones. Sin rigor: es aquella representación que se puede medir sobre el papel.

La limitación del número de poliedros regulares se puede razonar de la siguiente manera: Cada uno de los vértices de un poliedro, y las aristas que en el concurren, sea el poliedro regular o no, forma un ángulo sólido. Por esta razón, la suma de los ángulos que forman los lados que convergen en un mismo vértice debe ser menor de 360º (2π radianes).
Esto sólo sucede con seis polígonos regulares: El triángulo, con 60º entre lados, dará lugar a tres poliedros(60·3=180<360; 60·4=240<360; 60·5=300<360); el cuadrado, con lados en ángulo recto y el pentágono, cuyos lados están separados 108º, darán lugar a un poliedro cada uno.

En esta entrada sólo trataremos el tetraedro, que es el más simple de los poliedros y está formado por cuatro triángulos equiláteros. Como hemos demostrado antes con la suma de ángulos, en cada vértice convergen tres caras.


El desarrollo de dicho cuerpo, es decir colocar desplegadas todas las caras sobre un mismo plano, tiene forma de triángulo equilátero de superficie cuatro veces la de cada una de las caras que lo conforman. Tiene un aspecto similar al logotipo de Fischer o el Triforcio de los juegos Zelda.

Para construir el cuerpo basta con doblar los tres extremos por las líneas discontinuas hasta que los tres vértices converjan en un mismo punto. Se obtiene una pirámide triangular de altura H=a(2/3)(1/2), siendo a, la longitud de la arista.

Para una mejor comprensión de lo aquí expuesto, he aquí unos dibujos:

En el primero, podemos ver un tetraedro apoyado sobre una de sus caras sobre el plano horizontal usando el sistema diédrico. Obsérvese que la cara que hace las veces de base (el triángulo ABC) se ve en verdadera magnitud en su vista en planta, y que en esa misma vista, el vértice superior D se encuentra sobre el centro de su cara opuesta. Esto nos da una idea de su regularidad, pues pasaría lo mismo independientemente de qué cara hiciese las veces de base.
Absolutamente todos los parámetros de todos los poliedros (distancias entre caras opuestas, ángulos, altura…) se pueden deducir de las propiedades geométricas de sus caras, bien gráficamente o utilizando matemática simbólica y como la única diferencia entre dos sólidos del mismo tipo es el tamaño de su arista y su orientación, nos basta con estudiar uno en función de su arista.

Ya que es mucho más fácil de ver las propiedades de estos cuerpos de forma gráfica, este será el método que usaremos. Para ello, nos valdremos de una sección particular que nos proporcionará todos los datos del tetraedro. La llamada sección principal.

Todos los poliedros regulares tienen una sección principal que cumple unas características muy concretas, pero dada la singularidad del tetraedro, que se pone de manifiesto en el hecho de que no tiene aristas paralelas, dejaremos pues su definición para cuando tratemos el hexaedro y el octaedro.

En el tetraedro la sección principal contiene una arista y dos alturas de las dos caras a las que la arista no pertenece. En la perspectiva de la derecha es el polígono dibujado en rojo, se trata de un triángulo isósceles.

Su construcción es muy sencilla y basta saber manejar el compás y la escuadra y el cartabón (o un programa de CAD en su defecto).

Entender la sección principal de cualquier poliedro supone poder dibujar el poliedro colocado en cualquier posición Debido a su importancia vayamos paso a paso analizando el dibujo de más abajo.

El triángulo azul es la cara del tetraedro en verdadera magnitud, un triángulo equilátero de lado a. Trazando una perpendicular a un lado por el vértice opuesto se obtiene la altura h, en rojo.

Usando uno de los lados del triángulo y el segmento h se construye la sección principal, en el dibujo regruesada en negro. En esta sección se puede observar en verdadera magnitud una arista, el lado desigual del triángulo, así como dos alturas de cara h.

Haciendo un ejercicio mental, podemos ver cómo cada uno de los lados h, es la proyección de una cara sobre el plano del cuadro, (nuestra pantalla), por lo que una recta perpendicular a esa cara resulta perpendicular a nuestra proyección h. Trazando la perpendicular por un vértice a una cara, obtenemos la altura H del tetraedro, en verde en el dibujo. También se obtiene el centro del poliedro y los radios ri y rc de las circunferencias inscrita y circunscrita respectivamente.

El que tratemos en solitario el tetraedro, no es un mero capricho, sino que hemos decidido ordenar la explicación en función de una propiedad de los poliedros regulares llamada dualidad. Esta dice que todo poliedro regular, engendra otro poliedro, también regular, si tomamos como nuevos vértices los centros de las caras del poliedro original. En el caso particular del tetraedro, es dual de si mismo, hecho que se debe a que tenga tanto cuatro vértices como cuatro caras (cosa que no pasa con el resto de los poliedros).

Como podemos ver en el dibujo de la derecha, si unimos los centros de las caras del tetraedro verde, obtenemos otro tetraedro más pequeño. Como ya se ha comentado más arriba, ambos tetraedros son esencialmente el mismo; por tanto bastaría girar el verde π/2 radianes y reducir el tamaño de sus aristas a un tercio, manteniendo fijo el centro, para obtener el tetraedro rojo. El que la arista se reduzca a un tercio, se puede demostrar muy rápidamente haciendo uso de la sección principal.

Obsérvese que la arista roja horizontal situada debajo de la arista 8-6 está sobre la sección principal con sus extremos en el centro de las caras. Llevamos los datos a la sección principal teniendo en mente que el centro de un triángulo equilátero dista 1/3 de la altura, medida desde el lado correspondiente a dicha altura. Usando un poco de trigonometría o dibujando sobre el papel, obtenemos la relación antes expresada.

La perspectiva isométrica en la que se muestra la dualidad también resulta interesante para ilustrar una propiedad geométrica curiosa del tetraedro. Fijémonos que las aristas opuestas de cualquier tetraedro están contenidas en caras opuestas de un hexaedro regular (un cubo). Es más, son dos diagonales de las caras formando entre si por lo tanto un ángulo recto. De esto se puede deducir que la proyección horizontal del tetraedro verde del ejemplo sería el cuadrado 1-2-3-4 y sus dos diagonales. Os proponemos a modo de problema que nos digáis en los comentarios el ángulo que forman dos caras del tetraedro. Y no os pedimos el valor numérico, que es 70.528779°, sino una expresión explícita del ángulo en función de los datos de una cara. Fijáos en que no hace falta que demos ningún valor pues los únicos parámetros que afectan a cualquier dato del tetraedro son los de un triángulo regular. Aun así aclararemos que trivialmente el ángulo no depende del tamaño de la arista y que los ángulos de un triángulo equilátero valen todos 60º. El problema ya está prácticamente resuelto en una de las figuras anteriores y lo único que tenéis que hacer es aplicar unos elementales conocimientos de trigonometría.