ROT13
ROT13 ("rotar 13 lugares", a veces con guión ROT-13) es una simple sustitución de letras cifra que reemplaza una letra con la letra 13 después de ella en el alfabeto. 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 usar 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.
ROT13 se usa en foros en línea como una forma de ocultar spoilers, frases clave, soluciones de acertijos y materiales ofensivos de la mirada casual. 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
Aplicar ROT13 a un fragmento de texto simplemente requiere examinar sus caracteres alfabéticos y reemplazar cada uno por la letra 13 lugares más adelante en el alfabeto, regresando al principio si es necesario. A se convierte en N, B se convierte en O, y así sucesivamente hasta M, que se convierte en Z, luego la secuencia continúa al principio del alfabeto: N se convierte en A, O se convierte en B, y así hasta Z, que se convierte en M. Solo se ven afectadas aquellas 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. Como hay 26 letras en el alfabeto inglés y 26 = 2 × 13, la función ROT13 es su propia inversa:
- ROT13()ROT13()x))=x{fnMicrosoft Sans Serif}=x} para cualquier texto básico de alfabeto latino x.
En otras palabras, dos aplicaciones sucesivas de ROT13 restauran el texto original (en matemáticas, esto a veces se denomina involución; en criptografía, cifrado recíproco).
La transformación se puede realizar utilizando una tabla de búsqueda, como la siguiente:
Input | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz |
Producto | NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm |
Por ejemplo, en el siguiente chiste, ROT13 ha oscurecido el remate:
- ¿Por qué el pollo cruzó el camino?
- Gb trg gb gur bgure fvqr!
Al transformar todo el texto a través del formulario 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.
Johann Ernst Elias Bessler, un relojero del siglo XVIII y constructor de máquinas de movimiento perpetuo, señaló que ROT13 codifica su apellido como Orffyre. Usó su forma latinizada, Orffyreus, como su seudónimo.
ROT13 estaba en uso en el grupo de noticias net.jokes a principios de la década de 1980. Se utiliza para ocultar chistes potencialmente ofensivos o para oscurecer una respuesta a un acertijo u otro spoiler. 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. ROT13 normalmente se admite como una función integrada en el software de lectura de noticias. Las direcciones de correo electrónico también se codifican a veces con ROT13 para ocultarlas de los robots de spam menos sofisticados. También se utiliza para eludir la detección de correo electrónico y el filtrado de correo no deseado. Al oscurecer el contenido de un correo electrónico, el algoritmo de detección 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 texto cifrado normal en inglés de cualquier tamaño significativo, ROT13 se reconoce por algunos patrones de letras/palabras. Las palabras "n", "V" (solo en mayúsculas) y "gur" (ROT13 para "a", "I" y "the"), y palabras que terminan en "yl" ("ly") son ejemplos.
ROT13 no está diseñado para usarse donde la confidencialidad sea motivo de preocupación; el uso de un cambio 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 descifra fácilmente a través del análisis de frecuencia. Debido a su absoluta inadecuación para el secreto real, ROT13 se ha convertido en un eslogan para referirse a cualquier esquema de encriptación notoriamente débil; un crítico podría afirmar que "el DES de 56 bits es un poco mejor que el ROT13 en estos días". Además, en una obra de teatro en términos reales como "doble DES", los términos "doble ROT13", "ROT26" o "2ROT13" surgen con intención humorística (debido al hecho de que, dado que aplicar ROT13 a un texto ya encriptado con ROT13 restaura el texto sin formato original, ROT26 equivale a no encriptar en absoluto), incluido un artículo académico falso titulado "On the 2ROT13 Algoritmo de cifrado". Por extensión, triple-ROT13 (usado en broma por analogía con 3DES) es equivalente a ROT13 regular.
En diciembre de 1999, se descubrió que Netscape Communicator usaba ROT13 como parte de un esquema inseguro para almacenar contraseñas de correo electrónico. En 2001, el programador ruso Dimitry Sklyarov demostró que un proveedor de libros electrónicos, New Paradigm Research Group (NPRG), usaba ROT13 para cifrar sus documentos; se ha especulado que NPRG puede haber confundido el ejemplo de juguete ROT13, provisto con el kit de desarrollo de software Adobe eBook, con un esquema de encriptación serio. Windows XP usa ROT13 en algunas de sus claves de registro. ROT13 también se usa en el programa Fortune de Unix para ocultar dictas potencialmente ofensivas.
Juegos de letras y cultura de la red
abcdefghijklmnopqrstuvwxyz NOPQRSTUVWXYZABCDEFGHIJKLM | |
aha Administración nueces | Ant Administración Nag |
calvo Administración onyx | bar Administración uno |
barf Administración uno | Ser Administración o |
bin Administración ova | ebbs Administración techo |
envidia Administración ferrocarril | er Administración re |
erres Administración Reef | flap Administración sincronización |
fur Administración ella | gel Administración Prueba |
gnat Administración tang | Irk Administración vex |
clerk Administración pyrex | puramente Administración cheryl |
PNG Administración gato | SHA Administración diversión |
furby Administración . | terra Administración verde |
¿Qué? Administración Jung | URL Administración Hey |
purpura Administración Chechen | ♪ Administración FUBAR |
Ares Administración Nerf | abjurer Administración En ninguna parte |
ROT13 ofrece una oportunidad para los juegos de letras. Algunas palabras, cuando se transforman con ROT13, producirán otra palabra. Ejemplos de pares de 7 letras en inglés son abjurer y nowhere, y Chechen y purpura. En la tabla se muestran otros ejemplos de palabras como estas. El par gnat y tang es un ejemplo de palabras que son tanto recíprocas como inversas ROT13.
El Concurso internacional de código C ofuscado de 1989 (IOCCC) incluyó una entrada de Brian Westley. El programa de computadora de Westley se puede codificar en ROT13 o al revés y aun así se compila correctamente. Su operación, cuando se ejecuta, es realizar la codificación ROT13 o invertir su entrada.
El grupo de noticias alt.folklore.urban acuñó una palabra, furrfu, que era la codificación ROT13 de la expresión codificada con frecuencia "sheesh". "Furrfu" evolucionó a mediados de 1992 como respuesta a las publicaciones que repetían mitos urbanos en alt.folklore.urban, después de que algunos carteles se quejaran de que "Sheesh!" como respuesta a los recién llegados estaba siendo usado en exceso.
Variantes
ROT5 es una práctica similar a ROT13 que se aplica a dígitos numéricos (0 a 9). ROT13 y ROT5 se pueden usar 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 usar la secuencia A–Z como alfabeto, ROT47 usa 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 126 '~', 94 en total, tomados en el orden de los valores numéricos de sus códigos ASCII, se rotan 47 posiciones, sin especial consideración de mayúsculas y minúsculas. Por ejemplo, el carácter A se asigna a p, mientras que a se 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-6885 no es obvio a primera vista del resultado codificado Z'c`dgbheggd. Por otro lado, debido a que ROT47 introduce números y símbolos en la mezcla sin discriminación, es más obvio que el texto ha sido codificado.
Ejemplo:
- El Quick Brown Fox salta sobre el Perro Perro Perezoso.
cifra a
- %96 "F:4 made qC@H? u@I yF ConfAD ~G6C %96 {2KJ s@8]
La biblioteca GNU C, un conjunto de rutinas estándar disponibles para su uso en la programación informática, contiene una función: memfrob() , que tiene un propósito similar al de ROT13, aunque está diseñado para usarse con datos binarios arbitrarios. La función opera combinando cada byte con el patrón binario 00101010 (42) usando la operación exclusiva o (XOR). Esto efectúa un cifrado XOR simple. Al igual que ROT13, XOR (y por lo tanto memfrob()) es auto recíproco y proporciona un nivel de seguridad similar, prácticamente inexistente.
Implementación
Tra
El ROT13 y el ROT47 son bastante fáciles de implementar utilizando la aplicación de terminal de Unix tr; para cifrar la cadena "The Quick Brown Fox Jumps Over The Lazy Dog" en ROT13:
$ # Map upper case A-Z to N-ZA-M and lower case a-z to n-za-m$ tr 'A-Za-z ' 'N-ZA-Mn-za-m ' c). "El Zorro Marrón rápido salta sobre el Perro perezoso"Gur Dhvpx Oebja Sbk Whzcf Bire Gur Ynml Qbt
y la misma cadena para ROT47:
$ eco "El Zorro Marrón rápido salta sobre el Perro perezoso" Silencio tr ' ' 'P-~! O '%96 "F:4 identificado qC@H? u@I yF títuloAD ~G6C %96 {2KJ s@8
Emacs y Vim
En Emacs, uno puede ROT13 el búfer o una selección con los siguientes comandos:
M-x toggle-rot13-mode
M-x rot13-other-window
M-x rot13-region
y en el editor de texto Vim, uno puede ROT13 un búfer con el comando:
¿Ggg? G
Pitón
El módulo códecs proporciona 'rot13' transformación de texto.
, titulado s = ""El Zen de Python, por Tim Peters... Hermosa es mejor que fea.... El explícito es mejor que implícito.... Simple es mejor que complejo.... Complejo es mejor que complicado.... El piso es mejor que anidado.... Es mejor que Dense.... La legibilidad cuenta.... Los casos especiales no son lo suficientemente especiales para romper las reglas.... Aunque la practicidad supera la pureza.... Los errores nunca deben pasar silenciosamente.... A menos que se silencia explícitamente.... Frente a la ambigüedad, rechaza la tentación de adivinar.... Debería haber una... y preferentemente sólo una forma obvia de hacerlo.... Aunque esa manera puede no ser obvia al principio a menos que seas holandesa.... Ahora es mejor que nunca.... Aunque nunca es a menudo mejor que *derecha* ahora.... Si la implementación es difícil de explicar, es una mala idea.... Si la implementación es fácil de explicar, puede ser una buena idea.... Los espacios de nombres son una gran idea... ¡hagamos más de esos!... ", titulado importación codecs, titulado impresión()codecs.código()s, 'rot13 ')Gur Mra bs Clguba, ol Gvz CrgrefOrnhgvshy vf orggre guna htyl.Rkcyvpvg vf orggre guna vzcyvpvg.Fvzcyr vf orggre guna pbzcyrk.Pbzcyrk vf orggre guna pbzcyvpngrq.Syng vf orggre guna arfgrq.Fcnefr vf orggre guna qrafr.Ernqnovyvgl pbhagf.Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.Nygubhtu cenpgvpnyvgl orngf chevgl.Reebef fubhyq arire cnff fvyragyl.Hayrff rkcyvpvgyl fvyraprq.Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.Gurer fubhyq o bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.Nygubhtu gung jnl znl abg or boivbhf ng svefg henff lbh'er Qhgpu.Abj vf orggre guna arire.Nygubhtu arire vf bsgra orggre guna *evtug* abj.Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl o n tbbq vqrn.Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!
Contenido relacionado
Cifrado El Gamal
Dispositivo lógico programable
Sobrecarga de operadores