Hace 2 años | Por --682766-- a microsiervos.com
Publicado hace 2 años por --682766-- a microsiervos.com

Si la definición del SHA-256 suena un poco rara y marciana es porque si no estás muy puesto en criptografía y las matemáticas relacionadas lo es. En lenguaje llano se podría decir que es una función que transforma un fichero cualquiera en un valor de longitud fija único, llamado hash. Y ese valor, que es una especie de suma de control, valor de verificación o firma única tiene ciertas propiedades interesantes en múltiples aplicaciones en criptografía y seguridad. La utilidad es que a partir de ese valor, que en el caso del SHA-256 son 256 bits,

Comentarios

uyquefrio

#10 En realidad todo depende de la potencia de cálculo disponible. Lo que hoy es robusto o seguro mañana dejará de serlo.

Ainhoa_96

#13 Con la potencia suficiente la cadena podría ser atacada pero no se destruiría, sólo se desviarían intecionadamente los bloques por un falso consenso.

sorrillo
D

#0 El enlace que se hace referencia
xone.gg

D

#2 Gracias. No tengo claro la razón, pero copie ese otro enlace. Gracias por la clarificación.

La_patata_española

Para entender un poco mejor el último párrafo del envío, pego esto sacado de Stackoverflow en inglés (https://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions-in-practice):

The usual answer goes thus: what is the probability that a rogue asteroid crashes on Earth within the next second, obliterating civilization-as-we- know-it, and killing off a few billion people? It can be argued that any unlucky event with a probability lower than that is not actually very important.

If we have a “perfect” hash function with output size n, and we have p messages to hash (individual message length is not important), then probability of collision is about p2/2n+1 (this is an approximation which is valid for “small” p, i.e. substantially smaller than 2n/2). For instance, with SHA-256 (n=256) and one billion messages (p=10^9) then the probability is about 4.3*10^-60.

A mass-murderer space rock happens about once every 30 million years on average. This leads to a probability of such an event occurring in the next second to about 10^-15. That’s 45 orders of magnitude more probable than the SHA-256 collision. Briefly stated, if you find SHA-256 collisions scary then your priorities are wrong.


Edito: Me había hecho gracia la palabra "sólo" en esta frase: sólo hay 2256 hashes distintos.

Corrección en la última frase de #8: "2256" --> "2 elevado a 256".

D

Que puta guapada y que frikazo el que lo ha hecho.

M

Majo el programa. Al principio creía que era una imagen pero no, es código de verdad.

ElPerroDeLosCinco

Alguien que chane de esto: ¿un ordenador cuántico podría desencriptar (rápidamente) un fichero encriptado con SHA-256? ¿Hay algún algoritmo de encriptación a prueba de ordenadores cuánticos?

d

#17 El SHA-256 no encripta.... Sólo genera un hash prácticamente único.

Dejando ese detalle de lado, suponiendo un ordenador infinitamente rápido, dado un hash podría generar por fuerza bruta todos los documentos (son INFINITOS) cuyo hash es éste.
Despues, busca el documento original entre esos infinitos documentos que se generaron.

Suerte.

#17, ten en cuenta que sha-256 no es un método de encriptación. Es solo un algoritmo de "hashing", que es como una "suma" de comprobación. Esto significa que a cualquier fichero le asignas un hash determinado. Pero el hash no contiene la información del fichero. Solamente es, digamos, un identificador. No es unan operación reversible.

Es como si a ti te asignan el DNI 99.999.999-X (aunque el caso del hash es un método matemático, y el DNI no). Si en una base de datos tienes guardado que ese DNI pertenece a Fulanito, pues lo miras y lo encuentras. Pero no tienes ninguna información real de Fulanito en ese número 99.999.999-X. No puedes localizar su domicilio, ni saber sus opiniones, ni recomponer su ADN si solo tienes el numerito y nada más.

Vaya explicación más chunga... no sé si se entiende.

Una aplicación práctica: te digo que he hecho una predicción de un resultado deportivo, la he metido en un fichero y tiene hash "7af7d9s87gdsa". Si el algoritmo es bueno, y no está roto, es imposible que sepas mi predicción, a menos que la adivines tú exacta y al sacar el hash veas que es el mismo. Yo tendría que poner palabras rebuscadas y que el fichero sea largo para que eso no ocurra.

Bien. Pues se produce el evento deportivo. Una vez terminado, te paso mi predicción. Le compruebas que el hash es "7af7d9s87gdsa" y efectivamente así te demuestro que esa predicción es la que te dije antes del evento. Estás seguro de que no te he mentido, pero sin embargo no has sabido la predicción hasta después.

sorrillo

#17 Uno de los usos del sha256 es poder demostrar que un documento existe sin tener que enseñarlo, publicas el sha256 y más adelante cuando te interese puedes mostrar el documento original y cualquiera puede comprobar que el sha256 de ese documento coincide con el que publicaste originalmente. Lo cual demuestra que cuando publicaste ese sha256 ya estabas en posesión de ese documento.

Si el sha256 fuera vulnerable a ataques lo que podrías crear es un documento nuevo y luego añadir ruido en alguna parte del documento, por ejemplo en una imagen incrustada, de forma que ese nuevo documento tuviera el mismo hash que el otro documento original, y luego podrías mostrar el documento nuevo y hacerlo pasar por el original.

S

Que bonito me recuerda cuando hice un simulador completo de la Rom3 implementado opcode a opcode y cargando la ROM y la EEPROM podías visualizar como ejecutaba los comandos y visualizar la RAM en """''tiempo real"""'' que tiempos

Bapho

Está muy chulo la verdad.

selina_kyle

Muy bonito pero no se entiende nada.

Ionlyread

Bonito y currado.

Dejo un video que ayuda a entender cómo funciona y cómo se implementa SHA (1, 2... ):

pedrobz

Yo a esos algoritmos los llamo "batidoras" porque cogen cualquier cosa y la destrozan, eso si, para una misma entrada la destroza exactamente igual siempre, dependiendo de que tan fino quieres el puré pues ya eliges una batidora u otra

o

#6 En el mismo artículo:

En el fondo, es como meter todos los bits del mensaje original en fila en una batidora, que tiene la curiosa propiedad de mantener la mezcla consistente si se repite la operación, porque el azar no interviene.

pedrobz

#11 Se nota que soy meneante pro... he ido directamente a la web con el código

d

Es curioso pensar que si calculas el hash de todo internet con sus post vídeos y música cada segundo siempre se obtendrá uno distinto y no repetido durante un tiempo similar a la edad del universo