Padlock Encryption

1

Estoy trabajando en una aplicación de tipo editor de texto que ejecuta algo como esto (es una aplicación a pequeña escala):

  1. El cliente puede usar la aplicación durante una hora después de ejecutarla. La aplicación se encuentra en un entorno de caja donde no pueden abandonar la aplicación sin perder todos sus datos.
  2. Una vez que se acabe el tiempo, el programa guardará la entrada de texto del cliente en un archivo en su directorio local.
  3. El cliente puede convertir este archivo.

Es el paso 2 en el que estoy pensando. Quiero diseñar la aplicación para que, una vez que se acabe el tiempo, el archivo en el directorio local de los clientes esté encriptado para que no puedan ver el contenido del texto nuevamente. Sé que puedo usar sumas de comprobación para rastrear cualquier manipulación después de que se acabe el tiempo, pero eso no es lo que estoy preguntando. Los necesito para no poder recuperar la entrada de texto que pusieron en primer lugar.

Mi idea inmediata fue proporcionar a cada cliente una clave pública y almacenar una clave privada del lado del servidor para cada cliente. Cuando se cierra la aplicación, su texto está cifrado RSA utilizando la clave pública provista y solo yo podré cifrar el envío de las claves privadas que tengo.

Sin embargo, sé que RSA no es un buen método para cifrar datos reales. Según tengo entendido, se usa más para cifrar las claves de algún sistema de cifrado simétrico.

¿Debo usar RSA aquí o hay un mejor enfoque?

    
pregunta gowrath 18.04.2017 - 06:38
fuente

1 respuesta

1

Lo que solicita puede hacerse de manera segura con RSA, pero generalmente no se prefiere debido a la cantidad de cómputo que tomaría en comparación con cualquier otra rutina de cifrado simétrico.

Lo que necesita es un cryptosystem híbrido , algo que utiliza tanto la criptografía de clave pública con criptografía simétrica, del lado del cliente.

Ejemplo directamente de la página de Wikipedia:

  

Para cifrar un mensaje dirigido a Alice en un sistema criptográfico híbrido, Bob hace lo siguiente:

     
  • Obtiene la clave pública de Alice.

  •   
  • Genera una nueva clave simétrica para el esquema de encapsulación de datos.

  •   
  • Encripta el mensaje bajo el esquema de encapsulación de datos, utilizando la clave simétrica que se acaba de generar.

  •   
  • Cifre la clave simétrica bajo el esquema de encapsulación de la clave, usando la clave pública de Alice.

  •   
  • Envía ambos cifrados a Alice.

  •   

Para descifrar este texto cifrado híbrido, Alice hace lo siguiente:

     
  • Utiliza su clave privada para descifrar la clave simétrica contenida en el segmento de encapsulación de clave.

  •   
  • Utiliza esta clave simétrica para descifrar el mensaje contenido en el segmento de encapsulación de datos.

  •   

Y lecturas adicionales.

    
respondido por el thel3l 18.04.2017 - 07:17
fuente

Lea otras preguntas en las etiquetas