Entiendo que una función hash criptográfica es una función que genera una cadena aleatoria de tamaño fijo para una entrada arbitraria.
Sin embargo, ¿es posible utilizar una función de cifrado criptográfico para la firma digital?
¿Es posible utilizar una función de hash criptográfica para la firma digital?
No puede utilizar una función de hash como una firma , pero ya utiliza una función de hash criptográfica como parte del procedimiento para una firma digital.
Primero, mencionemos algunas razones comunes para aplicar una firma digital a las comunicaciones:
Si un mensaje está firmado digitalmente, cualquier cambio en el mensaje después de la firma invalida la firma. Además, no hay una manera eficiente de modificar un mensaje y su firma para producir un nuevo mensaje con una firma válida, ya que la mayoría de las funciones de hash criptográficas todavía consideran que esto no es computacionalmente viable (consulte resistencia a la colisión ).
Una función criptográfica de hash es un algoritmo que toma una cantidad arbitraria de entrada de datos (una credencial) y produce una salida de tamaño fijo de texto cifrado denominado valor de hash, o simplemente "hash". Ese texto cifrado se puede almacenar En lugar de la propia contraseña, y luego se utiliza para verificar el usuario. fuente
Entiendo que una función hash criptográfica es una función que genera una cadena aleatoria de tamaño fijo para una entrada arbitraria.
No; Las funciones de hash no generan una cadena aleatoria. Son funciones deterministas de una sola vía. La salida puede parecer aleatoria, pero no lo es.
Cada función hash tiene colisiones que dos mensajes diferentes1 and
m2 can have same hash value
h (m1) = h (m2) and
m1! = m2 '. Podemos ver esto por el principio de la paloma.
Sin embargo, ¿es posible utilizar una función de cifrado criptográfico para la firma digital?
No;
Su signo es único para usted cuando firma un documento en papel, cheque, etc., los expertos en firmas posteriores pueden decidir si se trata de su firma o no.
Del mismo modo, una firma digital es única para usted. Usted firma digitalmente un documento con su clave privada para que otros puedan verificar su firma digital usando su clave pública.
Deja que hasheado un archivo y lo distribuyes como documento firmado por ti. Usted quiere reclamar que usted es el firmante. Usted pone el archivo en la función hash conocida y genera el hash. Cualquiera, también, puede usar este documento y calcular el hash para reclamar la propiedad o reclamar la propiedad. No hay autenticación .
Veamos, heheado un documento y reclamé que firmaste (hash) este documento. ¿Puedes mostrarme que no eres el firmante? No puedes repudiar .
Desde mi punto de vista, una función criptográfica de hash es una función que, dada una entrada de bytes, genera datos de firma de hash. Estas funciones son, en general, las conocidas sha1, sha256, blake2s, etc. Estos hashes en general verifican la integridad de los datos, por ejemplo
>>> hashlib.sha256("Good morning").hexdigest()
'90a90a48e23dcc51ad4a821a301e3440ffeb5e986bd69d7bf347a2ba2da23bd3'
por lo tanto, si cambia un byte en la fuente, el hash generado cambiará completamente
>>> hashlib.sha256("G0od morning").hexdigest()
'0057a9d2c5921a6a092d172167fa2874dcdf5d3d866667eba5502b7fa20c6fd3'
Esto se puede usar para muchas cosas, como la integridad de los datos, la generación de firmas digitales y muchas otras.
Entonces, cuando se genera una "firma digital", es probable que se trate de una combinación de hash + encriptación de algunos datos y public & Técnicas de clave privada.
Espero que te ayude, pero la pregunta no está del todo clara
Lea otras preguntas en las etiquetas hash cryptography digital-signature