También necesita autenticación y verificación de integridad con un MAC fuerte que se envía con el texto cifrado para evitar ataques de volcado de bits. Cifre el MAC también con algunos de los datos aleatorios también (utilizando el mismo proceso de cifrado).
Necesitarás una forma de mantenerte en sincronía con el otro usuario para no reutilizar datos aleatorios accidentalmente. Piense en cómo manejará la pérdida de paquetes, la pérdida de un mensaje o la interferencia de un atacante. Echa un vistazo al protocolo SSH para algunas pistas de diseño. Una vez que haya utilizado parte de los datos aleatorios, debe eliminarse inmediatamente para evitar que se reutilicen. Debe designar partes separadas de los datos para que cada parte los envíe, de manera que ambos usuarios no envíen accidentalmente utilizando los mismos datos aleatorios.
Asegúrese de que su entropía sea correctamente aleatoria. Definitivamente no debería confiar ciegamente en lo que sea que el sistema operativo le brinda, especialmente con la nueva solución en chip desarrollada en connivencia con la NSA y la NSA insertando puertas traseras en todo. Incluya también alguna entrada de usuario aleatoria. Probablemente necesitará una fuente física de aleatoriedad, tal vez una solución de hardware y recopilación de múltiples fuentes de entropía. Asegúrese de ejecutar toda la entropía a través de un extractor de aleatoriedad antes de usarlo también. Por ejemplo, tendría que generar 128 GB de entropía y luego ejecutarlo a través del proceso de blanqueo de Von Neumann, que le dará 64 GB de entropía utilizable. No uses un CSPRNG si puedes evitarlo, los patrones sutiles podrían revelar la semilla utilizada para generar los datos aleatorios completos.
Para 64GB que tomará un tiempo crear. Si realmente quisiera usar un CSPRNG, potencialmente podría generar 3 claves largas (1024 bits +). Ejecute cada uno a través de un algoritmo CSPRNG separado para generar 3 salidas separadas de 128GB. A continuación, ejecute las salidas separadas a través del extractor de entropía para obtener 64 GB para cada salida, y finalmente, XORUE las salidas juntas (salida 1 salida XOR 2 salida XOR 3 ). La salida final debería ser buena para 64 GB de datos aleatorios seguros e impredecible para cualquier atacante.
La belleza del teclado de una sola vez es que el texto cifrado se puede descifrar a cualquier texto plano de la misma longitud. Un atacante puede probar todas las claves que desee, solo revelará todos los plaintexts posibles. Si mantiene la administración de claves adecuada (eliminando las claves después del uso) y otra seguridad en torno a la implementación, entonces tiene una negación plausible. Si un atacante te obliga a revelar tu llave (con una manguera o una llave de goma), ya no tienes la llave para ayudarlos. Y cualquier cosa que envíes se puede cambiar a cualquier cosa que quieras decir. Hay una razón por la cual los militares y los gobiernos todavía lo usan. Una vez que el intercambio de claves de criptografía cuántica se haga más disponible, el pad de una sola vez se utilizará aún más. Hasta entonces, resuelva los problemas prácticos menores y disfrute de la libertad y el secreto perfecto.