Hola adastra, gracias por tu respuesta.
El funcionamiento de la criptografia asimetrica lo entiendo, solo que mi duda es mas puntual.
Siempre que lei sobre firmas digitales, me percate de que primero se crea la huella digital del documento a firmar.
Lo que me gustaria saber es si este paso es obligatorio y por que.
Por cierto, ya habia visto tu sitio antes de que me pasaras el link, esta muy bueno.
Saludos y gracias otra vez.
Ah, vale, ahora entiendo tu duda...
Cuando se firma un documento, es necesario crear una huella de dicho documento, la razón? por integridad de los datos y no repudio, que quiere decir esto? cuando se cifra cierto volumen de datos, (por ejemplo, documentos de texto) las técnicas de cifrado de mensajes habituales resultan poco practicas (por el tamaño que puede generar el mensaje cifrado) por esta razón, se utilizan algunas funciones matemáticas que generan la huella digital del documento, que normalmente es conocida como "hash" del documento.
Este tipo de funciones son interesantes principalmente por 3 características:
1. Cuando se aplica a grandes volúmenes de datos, el resultado es una huella con un tamaño relativamente pequeño (una huella (o hash) tiene entre 128 y 160 bits).
2. Aunque teóricamente es posible encontrar dos mensajes con idéntica huella, la probabilidad de que esto ocurra es realmente pequeña. Si se manipulan los datos, la huella cambia, esto quiere decir que es fácil darse cuenta que un documento ha cambiado si su hash es distinto del documento original.
3. Se trata de un mecanismo "pesado" lo que hace que los ataques de fuerza bruta sean computacionalmente exhaustivos y dificultosos.
Si no se creará un hash del documento, firmar un documento "crudo" daría como resultado streams de bytes con tamaños inmanejables y probablemente poco consistentes, además de que alguien podría manipular el documento y no habría constancia de dicho cambio, ya que no hay una huella que lo demuestre.
Por ese motivo, siempre que se firmen documentos o mensajes con un cierto tamaño, es necesario generar el hash del documento.