Lista de palabras PGP


La Lista de palabras de PGP (" Lista de palabras de bastante buena privacidad ", también llamada lista de palabras biométricas por las razones que se explican a continuación) es una lista de palabras para transmitir bytes de datos de una manera clara e inequívoca a través de un canal de voz. Son análogos en propósito al alfabeto fonético de la OTAN usado por los pilotos, excepto que se usa una lista más larga de palabras, cada palabra corresponde a uno de los 256 valores distintos de bytes numéricos.

La lista de palabras de PGP fue diseñada en 1995 por Patrick Juola , un lingüista computacional, y Philip Zimmermann , creador de PGP . [1] [2] Las palabras se eligieron cuidadosamente por su distinción fonética , utilizando algoritmos genéticos para seleccionar listas de palabras que tenían separaciones óptimas en el espacio de fonemas . Las listas de palabras candidato fueron extraídas al azar de Grady Ward 's Moby Pronunciator lista como materia prima para la búsqueda, sucesivamente modificado por los algoritmos genéticos. La búsqueda automatizada convergió en una solución optimizada en aproximadamente 40 horas en un DEC Alpha, una máquina particularmente rápida en esa época.

La lista Zimmermann-Juola se diseñó originalmente para usarse en PGPfone , una aplicación segura de VoIP, para permitir que las dos partes comparen verbalmente una cadena de autenticación corta para detectar un ataque de intermediario (MiTM). Se le llamó lista biométrica de palabras porque la autenticación dependía de que los dos usuarios humanos reconocieran las voces distintas de los demás mientras leían y compararon las palabras en el canal de voz, uniendo la identidad del hablante con las palabras, lo que ayudó a proteger contra el ataque MiTM. . La lista se puede utilizar en muchas otras situaciones en las que no se necesita un enlace biométrico de identidad, por lo que llamarla lista de palabras biométricas puede ser impreciso. Posteriormente, se utilizó en PGP para comparar y verificar PGP huellas dactilares de clave pública a través de un canal de voz. Esto se conoce en las aplicaciones PGP como la representación "biométrica". Cuando se aplicó a PGP, la lista de palabras se refinó aún más, con contribuciones de Jon Callas . Más recientemente, se ha utilizado en Zfone y el protocolo ZRTP , el sucesor de PGPfone.

En realidad, la lista se compone de dos listas, cada una de las cuales contiene 256 palabras fonéticamente distintas, en las que cada palabra representa un valor de byte diferente entre 0 y 255. Se utilizan dos listas porque la lectura en voz alta de largas secuencias aleatorias de palabras humanas suele conllevar el riesgo de tres tipos de errores: 1) transposición de dos palabras consecutivas, 2) palabras duplicadas o 3) palabras omitidas. Para detectar los tres tipos de errores, las dos listas se utilizan alternativamente para los bytes de desplazamiento par y los bytes de desplazamiento impar en la secuencia de bytes. Cada valor de byte está representado en realidad por dos palabras diferentes, dependiendo de si ese byte aparece en un desplazamiento par o impar desde el comienzo de la secuencia de bytes. Las dos listas se distinguen fácilmente por el número de sílabas; la lista par tiene palabras de dos sílabas, la lista impar tiene tres. Las dos listas tienen una longitud máxima de palabra de 9 y 11 letras, respectivamente. Zhahai Stewart sugirió el uso de un esquema de dos listas.

Cada byte de una cadena de bytes se codifica como una sola palabra. Una secuencia de bytes se representa en orden de bytes de red , de izquierda a derecha. Por ejemplo, el más a la izquierda (es decir, el byte 0) se considera "par" y se codifica utilizando la tabla PGP Even Word. El siguiente byte a la derecha (es decir, el byte 1) se considera "impar" y se codifica utilizando la tabla PGP Odd Word. Este proceso se repite hasta que se codifican todos los bytes. Así, "E582" produce "Estambul superior", mientras que "82E5" produce "parodia avaro".

Hay varias otras listas de palabras para transmitir datos de una manera clara e inequívoca a través de un canal de voz: