Criptografía de curva elíptica y uso compartido de claves

1

Quiero saber si en la criptografía de curva elíptica es posible que 2 partes tengan una parte de la clave privada. La idea es cifrar (para DSA) los datos con las 2 claves sub sin que ninguna de las partes obtenga la clave privada original

Por ejemplo:

  • Emitir una clave privada
  • Dividir de alguna manera la clave privada en 2 claves privadas secundarias
  • Encripta los datos con la primera clave
  • Cifrar con la segunda clave
  • El resultado final debería ser como si los datos se cifraran con la clave privada original

¿Es esto posible? Idealmente, las 2 subclaves deben ser del tamaño de la clave privada original y no deben filtrar ninguna información.

Gracias

editar: perdón por no ser claro, cuando se habla de cifrado, estaba destinado a DSA

    
pregunta John L. Jegutanis 10.06.2014 - 01:05
fuente

4 respuestas

3

Con la criptografía asimétrica, normalmente se cifra con la clave pública, no con la clave privada; Con la clave privada, descifras. Además, el cifrado asimétrico suele ser aleatorio, por lo que puede ser difícil decir que se obtiene "el mismo resultado" que con un solo clave privada, ya que en realidad se puede obtener un rango completo de valores (que se descifrarían a el mismo mensaje, sin embargo). Tal vez quieras hablar sobre firmas ?

En cualquier caso, hay muchos protocolos posibles para cálculos multipartitos (ese es el término para ese tipo de cosas). Consulte este sitio para ver muchos enlaces. En su caso, supongo que tiene dos partes que necesitan usar una clave privada para que sus acciones combinadas sean equivalentes en algún sentido a lo que podría lograrse con un solo valor secreto, que ninguno de los dos conoce. Los protocolos que logran eso dependen de la extensión exacta del conocimiento y la acción de ambas partes:

  • ¿Se considera que los dos titulares de clave son atacantes activos , o solo pasivos ? Es decir. ¿Queremos proteger el secreto del esquema si una de las partes comienza a enviar mensajes incorrectos y cuidadosamente diseñados a la otra?
  • ¿Cuál es el nivel de control que los titulares de claves tienen sobre los datos de entrada? ¿Pueden modificarlo de alguna manera para revelar información sobre la otra mitad clave?
  • ¿Debería cada parte poder asegurarse de que la otra parte cumplió fielmente el protocolo?
  • ¿Dicha prueba debe ser revelada a un tercero sin revelar nada sobre los datos procesados o las claves? (Este es el tipo de prueba que es muy importante, por ejemplo, en los protocolos de votación electrónica).
  • ¿Qué pueden hacer los titulares de claves? Por ejemplo, si pueden cifrar , ¿está bien si también pueden descifrar (suponiendo que colaboren en la tarea)?

Como ejemplo ilustrativo, suponga que tiene una curva elíptica E con orden primario n . Las partes A y B conocen las claves secretas a y b respectivamente; ambas teclas se eligen uniformemente en el rango 1..n-1 . Supongamos que puede asignar algún mensaje de entrada m a un punto de la curva M . Luego, A puede "cifrar" el mensaje multiplicando M por a ; de manera similar, B multiplica los puntos por b . Si tanto A como B procesan el mensaje en el debido orden:

  • A recibe M y genera aM .
  • B recibe aM y genera (ba) M .

El resultado final es entonces igual a (ab) M , el resultado del "cifrado" de M mediante la clave ab ( el producto es módulo n ), que ni A ni B saben. Se puede mostrar que A no puede aprender ab a pesar de lo que envíe a B ; y lo mismo se aplica a B si B es el villano. Por supuesto, si A y B revelan sus claves privadas entre sí, entonces pueden calcular ab .

(Esta es una variante de curva elíptica del cifrado Pohlig-Hellman, que no debe confundirse con el otro Pohlig-Hellman algorithm . También se conoce como SRA .)

    
respondido por el Tom Leek 10.06.2014 - 04:30
fuente
1

¿Hay alguna razón por la que el cifrado con dos claves públicas no resuelva su problema? Esto requiere dos partes para que cada uno descifre el contenido para poder acceder. Un enfoque alternativo sería cifrar simétricamente la carga útil, dividir la clave a la mitad, cifrar cada mitad con la clave pública de un usuario. Cada usuario tendría que descifrar la mitad de la clave de ese mensaje y compartirla con el otro para descifrar el mensaje.

    
respondido por el AJ Henderson 10.06.2014 - 16:39
fuente
0

En general, un cifrado asimétrico utilizará la clave pública para cifrar y la privada para descifrar los datos. No sé qué propósito quieres aquí para cifrar los datos con privado. Aunque si lo requiere, puede generar los pares de claves ECC y puede utilizar el algoritmo secreto de shamir para dividir las claves como partes M y N. Siempre que desee cifrar el daa utilizando la clave privada, u puede combinar la clave y hacerlo. p>     

respondido por el user45475 10.06.2014 - 08:06
fuente
0

No puedo ver cómo su pregunta se relaciona con ecc, o cifrado asimétrico en absoluto, pero una solución simple para la tarea de "dividir" una clave es utilizar dos claves separadas en primer lugar.

Más específicamente, para el cifrado simétrico: produzca 2 claves y considere el par como lo que llama la "clave privada" y las claves individuales como las "subclaves". (Tenga en cuenta que estas palabras tienen un significado diferente cuando realmente se habla de criptografía asimétrica .)

Para la versión asimétrica, haga lo mismo para la simétrica, solo cree dos pares de claves, cifre secuencialmente con ambas claves públicas y necesitará ambas claves privadas para descifrar.

Sobre el tamaño individual: depende del clima del algoritmo de cifrado específico y a qué cantidad de cifrado dos veces con una clave de la mitad de la longitud será menos seguro que cifrar una vez con la clave larga. (Consulte, por ejemplo, 3DES )

    
respondido por el Echsecutor 11.06.2014 - 09:50
fuente

Lea otras preguntas en las etiquetas