ANÁLISIS
El algoritmo a seguir para desarrollar el método AFIN es el siguiente:
1. Asignar un valor entero a cada letra del alfabeto español.
A =0 ,B=1 ,C=2 ,D=3 ,E=4 ,F=5 ,G=6 ,H=7 ,I=8 ,J=9 ,K=10 ,L=11 ,M=12 ,N=13 ,Ñ=14 ,
O=15 ,P=16 ,Q=17 ,R=18 ,S=19 ,T=20 ,U=21 ,V=22 ,W=23 ,X=24 ,Y=25Z=26 .
2. Leer la constante de decimación ( a ).
3. Leer la constante de desplazamiento ( b ).
4. Si a = 1 y 1<= b <= 27; será por desplazamiento variable.
A. Comenzar a cifrar.
a. Leer el texto que se desea cifrar ( Mensaje En Claro ).
Nota: Validar que únicamente se ingresen los caracteres aceptados en el alfabeto.
b. Asignar el valor correspondiente a cada letra del texto que se desea cifrar (Mi).
c. Leer el texto que servirá como clave.
d. Asignar el valor correspondiente a cada letra del texto que servirá como clave ( Ki ).
Nota: Pueden recibirse llaves de cualquier tamaño, más grandes o más chicas que el texto que se desea cifrar, sin embargo la llave se adaptará al tamaño del texto a cifrar:
e. Realizar la siguiente operación: ( Mi + Ki ) mod 27
f. Convertir el valor obtenido de la operación anterior a una letra correspondiente.
g. Termina el proceso de cifrado.
B. Comenzar a descifrar.
a. Leer el texto cifrado que desea descifrar ( Ci )
b. Asignar el valor correspondiente a cada letra del texto cifrado ( Ki )
c. Leer el texto que servirá como llave
d. Asignar el valor correspondiente a cada letra del texto que servirá como llave
e. Realizar la siguiente operación: (Ci – Ki ) mod 27
Nota: la operación modulo trabaja bajo las mismas características antes descritas.
5. Si a distinto de 1 y b distinto de cero; decimación pura.
A. Comenzar a cifrar.
a. Leer el texto que se desea cifrar ( mensaje en claro ).
Nota: Validar que únicamente se ingresen los caracteres aceptados en el alfabeto.
b. Asignar el valor correspondiente a cada letra del texto que se desea cifrar (Mi).
Nota: aquí no se necesita de un texto adicional que funcione como clave.
c. Realizar la siguiente operación ( a * Mi ) mod 27.
d. Convertir el valor obtenido de la operación anterior, a su letra correspondiente.
e. Termina el proceso de cifrado.
B. Comenzar a descifrar.
a. Obtener el valor inverso de “a”.
b. Realizar la siguiente operación ( Ci * a-1 ) mod 27.
c. Convertir el valor obtenido de la operación anterior, a su letra correspondiente.
d. Termina el proceso de descifrado.
Diagrama de flujo
Diagramas de clases
Afin
ConvierteaNum
Empieza() : void
main (args: String[]) : void
letraaNum ( a: char ) : int
NumaLetra( c: int ) : char
CifAfin
DesCifAfin
cifrar(cad: String, cve: String) : void
cifrar(cad: String, a: int) : void
Cifrado() : void
descifrar(cif: String, cve: String): void
descifrar(cif: String, a: int): void
Descifrado() : void
DESARROLLO
Para la ejecución del programa correspondiente al algoritmo es necesario tener instalado el jdk y estos serán ejecutables. Se anexan el correspondientes.
Algoritmo Afín: https://www.dropbox.com/s/uilmb9movgpkgri/Afin.jar
Diagrama de flujo
Diagramas de clases
Afin
|
ConvierteaNum
| |
Empieza() : void
main (args: String[]) : void
|
letraaNum ( a: char ) : int
NumaLetra( c: int ) : char
|
CifAfin
|
DesCifAfin
| |
cifrar(cad: String, cve: String) : void
cifrar(cad: String, a: int) : void
Cifrado() : void
|
descifrar(cif: String, cve: String): void
descifrar(cif: String, a: int): void
Descifrado() : void
|
DESARROLLO
Para la ejecución del programa correspondiente al algoritmo es necesario tener instalado el jdk y estos serán ejecutables. Se anexan el correspondientes.
Algoritmo Afín: https://www.dropbox.com/s/uilmb9movgpkgri/Afin.jar
No hay comentarios:
Publicar un comentario