¿Cómo se mantiene secreta la clave privada en las firmas digitales?

-2

Una firma digital se verifica mediante un algoritmo que toma tres entradas: el mensaje, la firma digital (mensaje cifrado con clave privada) * y la clave pública. Si la clave pública se usa para verificar el mensaje original de la firma, entonces, lógicamente el algoritmo debe contener un método para transformar la clave pública en la clave privada, de modo que se pueda realizar la verificación. Esto implicaría un método para obtener la clave privada de la clave pública, que anula el propósito .

¿Puede alguien explicarme cómo se implementa el algoritmo para evitar este problema?

* como se explica a continuación por Mike, la firma es en realidad un resumen del mensaje cifrado con la clave privada

EDIT

Creo que "lógicamente" fue una mala elección de palabras. Quise decir que parecía "intuitivo" que la única forma de descifrar la firma sería convertir la clave pública en la clave privada. Obviamente, esto comprometería la confidencialidad de la clave privada y "anularía el propósito". A la luz de eso, intentaba entender cómo la clave pública verifica la firma sin la conversión a clave privada. Necesito ayuda con las matemáticas porque la asimetría no es intuitiva.

Las firmas digitales no son lo mismo que el intercambio de claves. Hasta donde puedo decir, en un sentido amplio, el primero usa la clave pública para "descifrar / verificar" el mensaje, mientras que el segundo usa la clave privada para "descifrar" la clave simétrica intercambiada (que fue "cifrada" usando clave pública asociada).

    
pregunta RamBam 29.06.2016 - 22:10
fuente

4 respuestas

3

Intentaré simplificar todo lo posible

La dificultad proviene de algunas operaciones "difíciles de calcular" en matemáticas. Por ejemplo, algunas operaciones son de dos maneras fáciles de calcular. Si calculo 5 * 6 = 30, es fácil calcular x * 6 = 30 (30/6 = 5).
Algunas otras operaciones son solo unidireccionales fáciles de calcular: 5 ^ 6 = 15625. Ok, pero si te doy x ^ 6 = 15625 ... ¿cómo diablos logras encontrar x? Tienes que intentar con 1, 2, 3, 4, 5 (ho este es este).
Entonces para calcular 5 ^ 6 tienes una operación. Para calcular 15625 ^ (1/6) tiene cinco operaciones.
En la criptografía asimétrica, hablamos de este tipo de problemática.

Le propongo una vista muy simple sobre el problema:

Digamos que x ^ y significa "x power y"
Sabes que en matemáticas (x ^ y) ^ z == x ^ (y * z)
sabes lo que es un módulo (13% 7 == 6)
Y sabes que x ^ 1 == x

En la criptografía asimétrica, la operación se realiza con un módulo N. muy grande. Y su clave privada A y su clave pública B son dos grandes números diseñados para ser iguales a 1 cuando se multiplican.
Entonces, cuando quiere cifrar un mensaje claro M, realiza M ^ B% N = C, que es un número muy grande.
Cuando quiere firmar un mensaje M, calcula M ^ A% N = S, que también es un número muy grande.

Cuando desea descifrar C, ejecuta C ^ A% N = (M ^ B) ^ A% N = M ^ (B * A)% N y he dicho que B y A están diseñados para ser iguales a 1 (con el módulo grande N) así que M ^ (B * A) = M ^ 1 = M

Cuando quieres verificar la firma, ejecutas S ^ B = (M ^ A) ^ B = M ^ (A * B) = M ^ 1 = M

La belleza es que, incluso si conozco M, B y S, y sé que S == M ^ x y B * x == 1 ... es absolutamente terrible tratar de encontrar x, especialmente cuando el módulo están involucrados.

Prueba un poco de ejercicio: imagine un tipo de mundo en el módulo 13. Cada vez que llega a 13, vuelve a 0. Así que cuenta como: 1,2,3,4,5,6,7,8,9,10,11,12, 0,1,2,3 ...
5 + 5 = 10
5 + 7 = 12
5 + 9 = 1
5 + 11 = 3
...
Si digo que 7 ^ x% 13 = 4 (una operación para calcular eso) ... encuentre x.
Al probar todas las posibilidades, verá que no tiene absolutamente ninguna idea de estar cerca de la solución o no. Por ejemplo, 7 ^ 4% 13 == 9 y 7 ^ 8% 13 == 3 ... ¿tienes idea de si x está entre 4 y 8? esta operación se llama logaritmo discreto. Y esto es muy doloroso de computar. Con números muy grandes, esto se convierte en una pesadilla.

Entonces, la respuesta es SÍ al conocer una firma, el mensaje original y la clave pública, puede saber cómo calcular la clave privada (puede saber qué cálculo se debe hacer). De hecho, solo la clave pública es suficiente para saber qué cálculo se necesita.
Pero no, no alcanzarás el resultado antes de morir ... muchas, muchas veces

    
respondido por el Sibwara 30.06.2016 - 01:35
fuente
1

La pieza que parece faltar es que, para algunos algoritmos de criptografía de clave pública, las claves pública y privada son inversas criptográficas entre sí. Entonces, encripte con una clave pública, desencripte con la clave privada; cifrar con una clave privada, descifrar con la clave pública.

Entonces, si cifro un mensaje, o más probablemente, un resumen del mensaje, con mi clave privada , cualquiera puede descifrarlo con mi clave pública. No hay confidencialidad, pero el mensaje solo pudo haber sido cifrado por alguien con acceso a mi clave privada.

Puede confiar en tal firma digital exactamente tanto como confía en que a) No he permitido que mi clave privada se vea comprometida yb) confía en que realmente tiene la clave pública mi y no De Eva.

    
respondido por el Bob Brown 30.06.2016 - 00:57
fuente
0

Donde te estás perdiendo es la segunda entrada al algoritmo.

Para firmar un mensaje, no cifra el mensaje en sí, sino que crea un resumen del mensaje utilizando una función criptográfica hash. Este resumen se cifra con su clave privada y luego se envía junto con el mensaje.

Para verificar, el destinatario calcula el mismo resumen del mensaje, descifra la firma con la tecla su pública y compara los dos resúmenes. Si son idénticos, eso prueba que el mensaje vino de usted porque fue cifrado con su clave privada y descifrado con su clave pública.

La razón por la que la firma se considera opuesta a la encriptación se debe a que, al cifrar el mensaje, el remitente usa la clave pública del destinatario para cifrar y el destinatario usa su propio privado Clave para descifrar.

Para resumir:

  • Cifrar con la clave pública del otro
  • Firmar con su clave privada
  • Descifre con su clave privada
  • Verificar con la clave pública del otro
respondido por el Mike McManus 30.06.2016 - 00:17
fuente
-1

No es posible obtener una clave privada de la clave pública. ¿Por qué? Porque deberías encontrar dos números primos que sean términos de un gran número y este es un cálculo que consume mucho tiempo

    
respondido por el MSD561 30.06.2016 - 01:28
fuente

Lea otras preguntas en las etiquetas