stringtranslate.com

ROT13

ROT13 ( Rotate13 , " rotar 13 lugares ", a veces escrito con guión ROT-13 ) es un cifrado de sustitución de letras simple que reemplaza una letra con la decimotercera letra después de ella en el alfabeto latino . ROT13 es un caso especial del cifrado César que se desarrolló en la antigua Roma.

Debido a que hay 26 letras (2×13) en el alfabeto latino básico , ROT13 es su propio inverso ; es decir, para deshacer ROT13, se aplica el mismo algoritmo , por lo que se puede utilizar la misma acción para codificar y decodificar. El algoritmo prácticamente no proporciona seguridad criptográfica y a menudo se cita como un ejemplo canónico de cifrado débil . [1]

ROT13 se ha utilizado en foros en línea como un medio para ocultar spoilers , frases ingeniosas , soluciones de acertijos y materiales ofensivos a la vista de los demás. ROT13 ha inspirado una variedad de juegos de letras y palabras en línea, y se menciona con frecuencia en conversaciones de grupos de noticias .

Descripción

La aplicación de ROT13 a un fragmento de texto simplemente requiere examinar sus caracteres alfabéticos y reemplazar cada uno por la letra que se encuentra 13 lugares más adelante en el alfabeto , volviendo al principio si es necesario. [2]A se convierte en N, Bse convierte en O, y así sucesivamente hasta M, que se convierte en Z, luego la secuencia continúa al principio del alfabeto: Nse convierte en A, Ose convierte en B, y así sucesivamente hasta Z, que se convierte en M. Solo se ven afectadas las letras que aparecen en el alfabeto inglés ; los números, símbolos, puntuación, espacios en blanco y todos los demás caracteres no se modifican. Debido a que hay 26 letras en el alfabeto inglés y 26 = 2 × 13, la función ROT13 es su propia inversa : [2]

para cualquier texto básico del alfabeto latino x .

En otras palabras, dos aplicaciones sucesivas de ROT13 restauran el texto original (en matemáticas , esto a veces se llama involución ; en criptografía, cifrado recíproco ).

La transformación se puede realizar utilizando una tabla de búsqueda , como la siguiente:

Por ejemplo, en el siguiente chiste, el final ha sido oscurecido por ROT13:

¿Por qué la gallina cruzó la calle?
¡Gb trg gb gur bgure fvqr!

Transformando todo el texto a través del formato ROT13, se revela la respuesta al chiste:

Jul qvq gur puvpxra pebff gur ebnq?
¡Para llegar al otro lado!

Una segunda aplicación de ROT13 restauraría el original.

Uso

ROT13 es un caso especial del algoritmo de cifrado conocido como cifrado César , utilizado por Julio César en el siglo I a. C. [3]

Johann Ernst Elias Bessler , un relojero y constructor de máquinas de movimiento perpetuo del siglo XVIII , señaló que ROT13 codifica su apellido como Orffyre . Utilizó su forma latinizada , Orffyreus , como seudónimo. [4]

ROT13 se utilizó en el grupo de noticias net.jokes a principios de la década de 1980. [a] Se utiliza para ocultar chistes potencialmente ofensivos o para oscurecer una respuesta a un acertijo u otro spoiler . [2] [7] [ ¿ fuente poco confiable? ] Se eligió un cambio de trece sobre otros valores, como tres como en el cifrado César original , porque trece es el valor para el cual la codificación y la decodificación son equivalentes, lo que permite la conveniencia de un solo comando para ambos. [7] ROT13 generalmente se admite como una función incorporada en el software de lectura de noticias. [7] Las direcciones de correo electrónico también se codifican a veces con ROT13 para ocultarlas de los robots de spam menos sofisticados . [8] [ dudoso - discutir ] También se utiliza para eludir el filtrado de correo electrónico y spam. Al ocultar el contenido de un correo electrónico, el algoritmo de filtrado no puede identificar el correo electrónico como, por ejemplo, un riesgo de seguridad y lo permite en la bandeja de entrada del destinatario.

En textos en inglés cifrados, normales y de tamaño considerable, ROT13 se reconoce a partir de algunos patrones de letras y palabras. Las palabras "n", "V" (en mayúscula solamente) y "gur" (ROT13 para "a", "I" y "the"), y las palabras que terminan en "yl" ("ly") son ejemplos.

ROT13 no está pensado para usarse donde el secreto es un problema: el uso de un desplazamiento constante significa que el cifrado no tiene clave y el descifrado no requiere más conocimiento que el hecho de que ROT13 está en uso. Incluso sin este conocimiento, el algoritmo se puede descifrar fácilmente mediante análisis de frecuencia . [2] Debido a su absoluta inadecuación para el secreto real, ROT13 se ha convertido en un eslogan para referirse a cualquier esquema de cifrado notablemente débil; un crítico podría afirmar que " el DES de 56 bits es poco mejor que ROT13 en estos días". Además, en un juego de términos reales como "doble DES", los términos "doble ROT13", "ROT26" o "2ROT13" aparecen con intención humorística (debido al hecho de que, dado que aplicar ROT13 a un texto ya cifrado con ROT13 restaura el texto simple original , ROT26 es equivalente a no tener cifrado en absoluto), incluido un artículo académico falso titulado "Sobre el algoritmo de cifrado 2ROT13". [9] Por extensión, triple-ROT13 (usado en analogía jocosa con 3DES) es equivalente a ROT13 normal.

En diciembre de 1999, se descubrió que Netscape Communicator utilizaba ROT13 como parte de un esquema inseguro para almacenar contraseñas de correo electrónico. [10] En 2001, el programador ruso Dimitry Sklyarov demostró que un vendedor de libros electrónicos, New Paradigm Research Group (NPRG), utilizaba ROT13 para cifrar sus documentos; se ha especulado que NPRG puede haber confundido el ejemplo de juguete ROT13 (proporcionado con el kit de desarrollo de software de libros electrónicos de Adobe ) con un esquema de cifrado serio. [11] Windows XP utiliza ROT13 en algunas de sus claves de registro. [12] ROT13 también se utiliza en el programa fortune de Unix para ocultar dictados potencialmente ofensivos .

Juegos de letras y cultura en la red

ROT13 ofrece la oportunidad de realizar juegos de letras. Algunas palabras, al transformarse con ROT13, producirán otra palabra. Ejemplos de pares de 7 letras en el idioma inglés son abjurer y nowhere , y chechen y purpura . Otros ejemplos de palabras como estas se muestran en la tabla. [13] El par gnat y tang es un ejemplo de palabras que son recíprocas y reversas de ROT13.

El Concurso Internacional de Código C Ofuscado (IOCCC) de 1989 incluyó una propuesta de Brian Westley. El programa informático de Westley se puede codificar en ROT13 o en sentido inverso y aún así compila correctamente. Su operación, cuando se ejecuta, consiste en realizar la codificación ROT13 o en invertir su entrada. [14]

El grupo de noticias alt.folklore.urban acuñó una palabra , furrfu , que era la codificación ROT13 de la expresión frecuentemente codificada "sheesh". " Furrfu" surgió a mediados de 1992 como respuesta a las publicaciones que repetían mitos urbanos en alt.folklore.urban, después de que algunos usuarios se quejaran de que se estaba usando demasiado "Sheesh!" como respuesta a los recién llegados . [15]

Variantes

ROT5 es una práctica similar a ROT13 que se aplica a dígitos numéricos (del 0 al 9). ROT13 y ROT5 se pueden utilizar juntos en el mismo mensaje, a veces llamado ROT18 (18 = 13 + 5) o ROT13.5.

ROT47 es un derivado de ROT13 que, además de codificar las letras básicas, trata números y símbolos comunes. En lugar de utilizar la secuencia A–Zcomo alfabeto, ROT47 utiliza un conjunto más grande de caracteres de la codificación de caracteres común conocida como ASCII . Específicamente, los caracteres imprimibles de 7 bits, excluyendo el espacio, desde el decimal 33 ' !' hasta el 126 ' ~', 94 en total, tomados en el orden de los valores numéricos de sus códigos ASCII, se rotan 47 posiciones, sin consideración especial de mayúsculas y minúsculas. Por ejemplo, el carácter Ase asigna a p, mientras que ase asigna a 2. El uso de un alfabeto más grande produce una ofuscación más completa que la de ROT13; por ejemplo, un número de teléfono como +1-415-839-6885no es obvio a primera vista a partir del resultado codificado Z'\c`d\gbh\eggd. Por otro lado, debido a que ROT47 introduce números y símbolos en la mezcla sin discriminación, es más inmediatamente obvio que el texto ha sido codificado.

Ejemplo:

The Quick Brown Fox Jumps Over The Lazy Dog.

cifra a

%96 "F:4< qC@H? u@I yF>AD ~G6C %96 {2KJ s@8]

La biblioteca GNU C , un conjunto de rutinas estándar disponibles para su uso en programación informática , contiene una función[16] — que tiene un propósito similar a ROT13, aunque está pensada para su uso con datos binarios arbitrarios. La función opera combinando cada byte con el patrón binario 00101010 ( 42 ) utilizando la operación o exclusiva (XOR). Esto produce un cifrado XOR simple . Al igual que ROT13, XOR (y por lo tanto ) es autorrecíproco y proporciona un nivel de seguridad similar, prácticamente inexistente.memfrob()memfrob()

Implementación

es

ROT13 y ROT47 son bastante fáciles de implementar usando la aplicación de terminal Unix tr; para cifrar la cadena "El rápido zorro marrón salta sobre el perro perezoso" en ROT13:

$ # Asigna mayúsculas AZ a N-ZA-M y minúsculas az a n-za-m $ tr 'A-Za-z' 'N-ZA-Mn-za-m' <<< "El veloz zorro marrón salta sobre el perro perezoso" Gur Dhvpx Oebja Sbk Whzcf Bire Gur Ynml Qbt    

y la misma cadena para ROT47:

$ echo "El veloz zorro marrón salta sobre el perro perezoso" | tr '\!-~' 'P-~\!-O' % 96 "F:4< qC@H? u@I yF>AD ~G6C %96 {2KJ s@8      

Emacs y Vim

En Emacs , se puede realizar una operación ROT13 en el buffer o en una selección con los comandos [17] M-x toggle-rot13-mode , M-x rot13-other-window, o M-x rot13-region.

En el editor de texto Vim , se puede realizar una operación ROT13 en un búfer con el comando [18] ggg?G .

Pitón

El módulo codecs proporciona la transformación de texto 'rot13' . [19]

>>> importar  códecs >>> imprimir ( códecs.codificar ( 'El rápido zorro marrón salta sobre el perro perezoso' , 'rot13' ) ) Gur Dhvpx Oebja Sbk Whzcf Bire Gur Ynml Qbt 

Sin importar ninguna biblioteca, se puede hacer en una lista de comprensión de dos líneas :

string  =  "Trabajo de glifo de cuarzo vext cwm porshrop finks?!"para  abcd  en  [ "abcdefghijklmnopqrstuvwxyz" ,  "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ]: cadena  =  '' . join ([ abcd [( abcd . index ( char )  +  13 )  %  26 ]  si  char  en  abcd  de lo contrario  char  para  char  en  cadena ])imprimir ( cadena )# ¡¿Dhnegm tylcu wbo irkg pjz cbefuebc svaxf?!

Véase también

Referencias

  1. ^ Los primeros usos de ROT13 encontrados en el archivo USENET de Google se remontan al 8 de octubre de 1982, publicados en el net.jokesgrupo de noticias. [5] [6]
  1. ^ Christopher Swenson (17 de marzo de 2008). Criptoanálisis moderno: técnicas para descifrar códigos de manera avanzada. John Wiley & Sons. p. 5. ISBN 978-0-470-13593-8Archivado desde el original el 24 de junio de 2016 . Consultado el 5 de octubre de 2015 .
  2. ^ abcd Schneier, Bruce (1996). Criptografía aplicada (segunda edición). John Wiley & Sons. pp. 11. ISBN 0-471-11709-9.
  3. ^ Kahn, David . Los descifradores de códigos: la historia de la escritura secreta . Nueva York: Macmillan. ISBN 0-684-83130-9.
  4. ^ Simanek, Donald E. (2012). «Perpetual Futility: A short history of the search for perpetual motion» (Futilidad perpetua: una breve historia de la búsqueda del movimiento perpetuo). El Museo de los Dispositivos Impracticables . Archivado desde el original el 10 de octubre de 2020. Consultado el 28 de octubre de 2020 .
  5. ^ desoto!gog (8 de octubre de 1982). "chiste muy ligeramente obsceno, shift=13". Grupo de noticias : net.jokes.
  6. ^ utcsrgv!dave (8 de octubre de 1982). "chistes encriptados". Grupo de noticias : net.jokes.
  7. ^ abc Raymond, Eric S. , ed. (29 de diciembre de 2003). "ROT13". The Jargon File, 4.4.7 . Archivado desde el original el 13 de enero de 2012 . Consultado el 19 de septiembre de 2007 .
  8. ^ Ferner, Matt (9 de diciembre de 2010). "Cómo ocultar direcciones de correo electrónico de los robots de spam". PracticalEcommerce. Archivado desde el original el 8 de mayo de 2016. Consultado el 12 de junio de 2014 .
  9. ^ "Sobre el algoritmo de cifrado 2ROT13" (PDF) . Prüfziffernberechnung in der Praxis. 25 de septiembre de 2004. Archivado (PDF) desde el original el 15 de abril de 2012. Consultado el 20 de septiembre de 2007 .
  10. ^ Hollebeek, Tim; Viega, John . "Criptografía incorrecta en el navegador Netscape: un estudio de caso". CiteSeerX 10.1.1.15.9271 . 
  11. ^ Perens, Bruce (1 de septiembre de 2001). "Dimitry Sklyarov: ¿enemigo o amigo?". ZDNet News . Archivado desde el original el 17 de octubre de 2014. Consultado el 3 de febrero de 2011 .
  12. ^ "ROT13 se utiliza en Windows". 24 de julio de 2006. Archivado desde el original el 20 de diciembre de 2016. Consultado el 15 de diciembre de 2016 .
  13. ^ De Mulder, Tom. "Palabras de ROT13". Furrfu! . Archivado desde el original el 2 de abril de 2012 . Consultado el 19 de septiembre de 2007 .
  14. ^ Westley, Brian (1989). "westley.c". IOCCC . Archivado desde el original el 9 de junio de 2012 . Consultado el 13 de agosto de 2007 .
  15. ^ "Furrfu". Foldoc . 25 de octubre de 1995. Archivado desde el original el 14 de julio de 2014 . Consultado el 3 de octubre de 2016 .
  16. ^ "5.13 Ofuscación de datos". Manual de referencia de la biblioteca C de GNU . Free Software Foundation . 3 de diciembre de 2006. Archivado desde el original el 2 de agosto de 2019. Consultado el 2 de agosto de 2019 .
  17. ^ "Rmail Rot13 – Manual de GNU Emacs" Archivado el 24 de marzo de 2016 en Wayback Machine . www.gnu.org .
  18. ^ "Lo mejor de los consejos de VIM, características clave de gVIM zzapper". rayninfo.co.uk . 3 de marzo de 2016. Archivado desde el original el 3 de marzo de 2016.
  19. ^ "codecs – Registro de códecs y clases base – Documentación de Python 3.9.6". ww6.python.org . 2 de noviembre de 2023. Archivado desde el original el 6 de octubre de 2020 . Consultado el 7 de octubre de 2020 .

Enlaces externos