El SHA-3 no está decidido aún, pero el concurso ha llegado a su final donde sólo quedan cinco candidatos posibles. Los nombres de los algoritmos son:
- BLAKE
- Grøstl
- JH
- Keccak
- Skein
Edit: El ganador fue Keccak. Así que ahora el SHA-3 es ese algoritmo.
Información aleatoria proveniente de un ser racional
Sigo buscando y encontrando algoritmos curiosos para manipular bits. Éste cuenta el número de bits puestos a uno. Es decir, el peso de Hamming. Realmente hay muchísimas variantes y mejoras, pero esta es la más elegante desde mi punto de vista.
int bitcount (unsigned int n) {
int count = 0 ;
while (n) {
count++ ;
n &= (n - 1) ;
}
return count ;
}
Estudiar y aprender es llevarse sopresas. Una de las sorpresas que nos llevamos al aprender teoría de la información es que un bit no es lo que crees que es un bit. Algo que está a uno o a cero, encendido o apagado, pasando corriente o cortándola, ¿no? Pues no. Un bit es algo que está a uno o a cero el 50% de las veces. Si no, no llega a bit. Será medio bit o un cuarto de bit.
La siguiente gráfica indica cuál es la entropía (información en bits) de un binit según la probabilidad de estar a uno o a cero. (Tomada de Wikipedia)
La idea es que el bit es una unidad de información y no de almacenamiento. La unidad de almacenamiento es el binit. Es un hueco donde poder guardar un uno o un cero. Si siempre se guarda un cero o siempre se guarda un uno la información es nula y por tanto ese binit guarda cero bits de información.
Hoy por hoy el concepto de binit se ha fusionado con el concepto de bit y hablamos de megabits por segundo en vez de megabinits por segundo lo cual permite a algunos hacer trampa y "comprimir la información" como si eso fuera posible. En todo caso comprimes la representación de la información. Los binits, no los bits. Pero eso ya son otras divagaciones de las que no vamos a hablar hoy.