continuación hace referencia a mi solución hobbiest usando mi propio programa de cifrado en C#. el programa y la fuente son gratuitos y están disponibles.
¿Recuerdas el 'rompecabezas de caja cerrada' que se encuentra en un podcast de SECURITY NOW?
aquí está el episodio ... Episodio # 33 | 30 de marzo de 2006 | 43 min. simétricas de bloque cifrados
https://www.grc.com/sn/sn-033.txt
Steve dice ... ... Leo y contesto de la semana pasada Puzzler/enigma que explora la idea de usar dos privadas one-time pad "claves", como dos candados, para transmitir de forma segura un mensaje entre dos partes, ninguno de que tendría la clave del otro. Luego continuamos nuestro recorrido continuo de tecnología fundamental cripto por que describe el funcionamiento de sistemas de cifrado simétrico de bloques ...
Steve y Leo de acuerdo en que un espía ver texto cifrado de ALICE antes y después de de encripción para XOR los dos juntos y derivamos su llave secreta Sin embargo, si se utiliza un cifrado complejo y conmutativo que no usa el simple XORing para encriptar, entonces I cree que el intercambio de claves sería seguro y el intercambio de claves funcionaría.
por ejemplo ... BOB encripta el mensaje con su clave. ALICE encripta el mensaje de arriba cifrado de BOB con su clave. ALICE envía de vuelta el mensaje cifrado a BOB. BOB descifra el mensaje anterior de ALICE con su clave. BOB envía arriba a ALICE. ALICE descifra arriba con su clave. ALICE ahora puede leer el texto descifrado original de BOB y no necesitan para intercambiar claves. Un ataque de espía no funcionará si el algoritmo no es un simple 'xor'ing de texto sin formato y clave.
este cifrado es un algoritmo complejo conmutativo.
comenzando con el archivo de texto del bloc de notas que contiene un carácter, una 'm'. m es hexadecimal 6d 01101101.  es hex c2 11000010 está 'm' encriptado por bob y luego enviado a alice. ø es hexadecimal d8 11011000 es el cifrado de alice de '' que bob descifra a '£' y lo envía a alice. £ es hex a3 10100011 que alice descifra a 'm' con su clave. m es el resultado del descifrado de alice un espía ve el msg de alice antes de su cifrado. el espía ve el mensaje de ø alice después de su cifrado. the eavesdropper xors  y ø. 11000010 '' 11011000 'ø' 00011010 el resultado xor de eavesdropper = 1a en hexadecimal. si un ataque de espía trabajó, habría encontrado 'E' hex 45 01001001 que es la primera letra de
clave de alice.
esto parece un cambio de clave más simple que PGP etc. Todo lo que se necesita es que las dos partes usen el mismo programa criptográfico y acuerden un autenticador.
Confieso ser un hobbiest. Si alguien quiere el programa WINDOWS C# .NET y/o el código fuente del cifrado, pueden tenerlo.
a continuación se muestra un ejemplo con teclas aleatorias más largas.
TEXTO SENCILLO esto es una prueba.
BOB CLAVE kZtOfS0kKqcRLjTNPh7OjcJKZZFLjmm5OVm02YlrBQN0zI9SxOD1zJjQcpetUbX
BOB CIPHER TEXTO A ALICE. 1IÎ.8Ío # "ëìAùJ'
ALICE CLAVE O1yfuV7MpX3n4wtefUhr6YctRaeCcrrzH7LqLNRUQCMVZuL5Mr0Bw3qMeIT92hg
ALICE CIPHER TEXTO DE BOB μRÖ³ # ioO, fzkÆaå
BOB decodifica ALICE ARRIBA QUE = por debajo. øqqøð < ª> P & @ <, Y ENVÍA POR ENCIMA DE ARRIBA A ALICE, QUE ALICE DECODES RENDIMIENTO ... esta es una prueba.
¿Hay algún motivo serio por el cual Alice no puede simplemente retener K0 y descifrar el token con K0 solo después de descifrarlo con la clave recibida de Bob? –
@Lunatic Experimentalist: Sí. Esta es solo una descripción de protocolo simplificada. Lo que sucede después es que Alice genera un montón de claves y encripta cada token ella misma. Cada token ahora está doblemente encriptado. Si Bob quiere revelar el token X a Alice, le envía su Kx. Si Alicia quiere revelar el token X a Bob, ella le envía su Kx. – camh