¿Cómo funciona el proceso de firma digital?

2

Estoy tratando de entender el proceso de verificación de firma digital, sin embargo, no obtengo la explicación en mi libro.

Si A quiere enviar un mensaje a B con una firma digital, el proceso es aparentemente como sigue:

  • El mensaje que se envía tiene un algoritmo de hash público aplicado. para crear un hash
  • El hash se cifra mediante la clave privada de A y luego se adjunta al mensaje que también será encriptado. Este hash encriptado es la firma digital
  • B luego descifra el hash usando la clave pública de A
  • El mensaje original se descifra y se pasa a través del mismo algoritmo de hashing para producir un hash
  • Si los dos hashes son iguales, el mensaje se autentica, de lo contrario no puede ser autenticado

En primer lugar, ¿es correcta esta explicación?

Segundo, ¿cómo puede B descifrar el hash usando la clave pública de A? El propósito de una clave pública es que los datos se puedan cifrar.

¿Por qué A cifraría algo con su clave privada? Si envía un mensaje a B, ¿A no usaría la clave pública de B?

¿Cómo se puede pasar el mensaje original a través del mismo algoritmo de hash para producir el mismo hash si A inicialmente usó su clave privada para producir el primer hash (la clave privada de A no será conocida por B)?

Si esta explicación no es correcta, ¿dónde va mal?

    
pregunta Logan545 21.06.2017 - 15:58
fuente

3 respuestas

3

El cifrado y la firma (digital) son diferentes aplicaciones de PKI.

Primero (solo) los conceptos más relevantes:

  • Cifrado (para que un tercero no vea el contenido): use la clave pública del receptor (B-PubKey). Cifrar el contenido. Conoces el contenido porque se originó en ti. El receptor puede descifrar usando su clave privada (B-PvtKey) y ver el contenido.
  • Firma digital (para que cualquiera de las partes pueda comprobar si el documento es exactamente como era, cuando usted lo firmó; y asegúrese de que solo usted haya podido firmado): use la clave privada del remitente (A-PvtKey) para cifrar el hash. NO el contenido.

En tu ejemplo, uno de los problemas es que combinaste ambos. Un proceso de firma digital normal implica

  1. Hashing the Message Plain Text usando un algoritmo de hashing conocido (público).
  2. Encriptándolo con la clave privada del remitente (A-PvtKey).
  3. Anexar el hash cifrado al mensaje de texto sin formato y enviar / almacenar / ...
  4. Los receptores pueden ser uno / muchos / cualquiera. Ninguna de las claves de los receptores se utiliza.
  5. Cualquier persona que desee verificar el documento simplemente sigue el proceso inverso. es decir,
  6. Separe el hash cifrado del mensaje
  7. Descifre con la clave pública del remitente (A-PubKey) (generalmente de un certificado de firma digital emitido por un CA confiable / legalmente aceptable).
  8. Genere el hash a partir del Texto sin formato del mensaje de forma independiente y compárelo con el hash descifrado del # 7 anterior.

Que B pudo descifrar el hash con A-PubKey establece el aspecto técnico del no repudio. Que (si) los hashes eran los mismos establece la integridad del documento.

Debería poder ver ilustraciones de estos en una serie de artículos / videos disponibles gratuitamente en la web.

    
respondido por el Sas3 21.06.2017 - 16:25
fuente
1

El proceso hash y el proceso de cifrado son dos cosas diferentes.

Hay dos formas de cifrar el mensaje 1) usar la clave privada del remitente para cifrar y luego el destinatario usa la clave pública del remitente para descifrar 2) usar la clave pública del receptor para cifrar y luego el receptor usa la clave privada para descifrar.

La parte de hash ... el hashing del mensaje es un proceso independiente donde el remitente envía el mensaje y envía el resultado. El receptor también tiene el mensaje descifrado y luego compara el resultado. Si hay una coincidencia, el receptor está seguro de que se verificó el mensaje descifrado.

    
respondido por el Kc0pah 21.06.2017 - 16:18
fuente
1

Esta descripción es correcta.

Editar: agregó esto para aclarar con suerte las operaciones técnicas Cuando envía un mensaje firmado, está enviando el texto sin formato Y un bloque de texto cifrado que es la salida de hash del texto sin formato. El hash-output tiene que estar protegido de la alteración, es por eso que está cifrado con la clave privada. Sólo la clave pública puede descifrarla correctamente. El destinatario puede realizar la función hash en el texto sin formato y comparar la salida con la salida hash descifrada que adjuntó al mensaje. Si ambos coinciden, el mensaje puede considerarse "genuino". fin de la edición

El punto que parece confundirlo es el rol de la clave Privada frente a la Pública. Estas teclas son funcionalmente las mismas. Con el cifrado simétrico, se utilizan dos claves para cifrar y descifrar texto sin formato. Es una función unidireccional de una tecla a otra, pero en cualquier dirección .

Aquí es donde la parte técnica y matemática de la criptografía transfiere la parte administrativa / política de la infraestructura de clave pública. Cuando se genera un par de claves, una clave se designa como "privada" y la otra "pública"; no importa qué clave se utiliza para qué, son intercambiables. En lo que respecta al algoritmo (al menos, en una parte funcional de las cosas ... No soy muy grande en la parte técnica de matemáticas, solo en la teoría).

Firmas cosas con tu clave privada porque, en teoría, SOLO TÚ tienes acceso a esa clave. Es la "garantía" de que usted envió el mensaje. La clave pública está teóricamente disponible para todos y cada uno. Si un mensaje está firmado / encriptado y la clave pública lo valida / descifra, puede estar bastante seguro de que la clave privada firmó / cifró el mensaje.

Por lo tanto, usar la clave privada para enviar cosas no es realmente efectivo desde el punto de vista criptográfico de "ocultar el mensaje", pero es MUY efectivo a partir de una "garantía de autenticidad / originación del mensaje".

Por esta razón, con PKI y el cifrado simétrico, si desea mantener una conversación privada bidireccional, ambas partes necesitan su propio par de claves.

    
respondido por el 0xSheepdog 21.06.2017 - 16:19
fuente

Lea otras preguntas en las etiquetas