Cifrar y descifrar con Porta

BeetVPN

Cifrado Porta:

El cifrado Porta es un cifrado polialfabético descrito en 1563 por el erudito italiano Giovanni Battista della Porta. Fue uno de los primeros métodos en utilizar varios alfabetos y cambiar de alfabeto para cada letra cifrada. Esto lo hacía más robusto que muchos cifrados de su época y se utilizó durante unos tres siglos, hasta el siglo XIX.


El principio es sencillo. Cada pareja de letras del alfabeto tiene su propio alfabeto de sustitución. Como el alfabeto latino contiene 13 parejas, existen 13 alfabetos: AB, CD, EF, GH, IJ, KL, MN, OP, QR, ST, UV, WX y YZ. Estos alfabetos se deducen fácilmente de la tabla. El propio Porta recomendaba utilizar alfabetos aleatorios para aumentar la seguridad y llevarlos consigo para descifrar. Aquí se utilizan los alfabetos normales por simplicidad. Para cifrar, se elige el alfabeto correspondiente a la letra actual de la clave y se busca la letra opuesta. Un ejemplo permite comprenderlo mejor:


AB
a b c d e f g h i j k l m
n o p q r s t u v w x y z
CD
a b c d e f g h i j k l m
z n o p q r s t u v w x y
EF
a b c d e f g h i j k l m
y z n o p q r s t u v w x
GH
a b c d e f g h i j k l m
x y z n o p q r s t u v w
IJ
a b c d e f g h i j k l m
w x y z n o p q r s t u v
KL
a b c d e f g h i j k l m
v w x y z n o p q r s t u
MN
a b c d e f g h i j k l m
u v w x y z n o p q r s t
OP
a b c d e f g h i j k l m
t u v w x y z n o p q r s
QR
a b c d e f g h i j k l m
s t u v w x y z n o p q r
ST
a b c d e f g h i j k l m
r s t u v w x y z n o p q
UV
a b c d e f g h i j k l m
q r s t u v w x y z n o p
WX
a b c d e f g h i j k l m
p q r s t u v w x y z n o
YZ
a b c d e f g h i j k l m
o p q r s t u v w x y z n

Para comprender bien el cifrado Porta, veamos el ejemplo anterior. Queremos cifrar la secuencia «Porta cipher» con la clave «key»:


Chiffre de Porta
cleclec le clecl
optrngq yp dgghv

La clave se repite tantas veces como sea necesario para igualar la longitud del texto. Después, para cada letra se busca su equivalente en el alfabeto indicado por la letra correspondiente de la clave. Para cifrar la primera «p» con la letra de clave «k», se utiliza el alfabeto «KL», donde p corresponde a h. Para la «o», la letra de clave «e» remite al alfabeto «EF», donde o se cifra como d, y así sucesivamente.


Para descifrar Porta basta con invertir el proceso. Normalmente se necesitan la clave y los alfabetos utilizados. El cifrado se consideró seguro hasta que el criptoanalista Kasiski consiguió romperlo en 1863 mediante un sencillo análisis de frecuencias después de determinar la longitud de la clave, por ejemplo mediante la prueba de Friedman. Una clave muy larga y aleatoria y un texto cifrado corto dificultan el análisis, pero el método ya no se considera seguro. Una cifra Porta puede sospecharse por su bajo índice de coincidencia, debido al uso de varios alfabetos.