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 .)