Tengo algunas restricciones de tamaño inusuales para mis datos que pueden ser relevantes para la solución prescrita.
El escenario es el siguiente. El servidor seguro A genera 240 bytes de datos que deben ser consumidos por un cliente fuera de línea B. El cliente B debe asegurarse de que el mensaje de 240 bytes no haya sido alterado. Tiendo a tropezar sin gloria en la semántica y la terminología del mundo de la seguridad, pero creo que lo que busco es "integridad de los datos".
Si sigo este proceso, ¿garantiza la "integridad de los datos"? (Me doy cuenta de que la garantía podría ser una palabra fuerte)
- Genere un par de claves públicas / privadas en el servidor A
- Realice un cifrado asimétrico en el mensaje de 240 bytes usando la clave privada (una operación de firma si lo entiendo correctamente)
- El cliente B recibe la clave pública y el mensaje cifrado (firmado)
Si el Cliente B logra descifrar el mensaje, ¿esto garantiza, al menos académicamente, que los datos no se han alterado?
Nota 1: la cantidad de bytes disponibles en el medio de transferencia al Cliente B es una prima, se podría tolerar un aumento de hasta un 40% debido al cifrado, por ejemplo, una firma RSA con un 2048 la clave de bits que da como resultado 256 bytes de mi mensaje de 240 bytes sería aceptable.
Nota 2: No hay expectativa de privacidad. No me importa si los datos pueden ser leídos por alguien. Solo que el esquema puede detectar si el mensaje ha sido manipulado.
Pregunta auxiliar: ¿Existe un algoritmo recomendado? He estado jugando con RSA usando claves de 2048 bits.
Gracias, magos de la seguridad, no sé cómo lo hacen.