InicioLinuxProgramación: método de cifrado Gronsfeld (parte II)

Programación: método de cifrado Gronsfeld (parte II)

Linux2/5/2017
Este artículo trata sobre la implementación del método de cifrado Gronsfeld del tipo conocido como polialfabéticos, usando el lenguaje de programación C#, esto con fines educativos, teniendo en cuenta que este cifrado data de mediados de XVII (usado mucho en Europa) siendo un método de baja seguridad por el poder de computo que existe actualmente pero podría ser usado en aplicaciones donde se quiera cifrar datos como directorios, nombres, recursos, etc sin recurrir a los métodos convencionales de cifrado dados por el Net Framework .


La parte detallada sobre como funciona el cifrado Gronsfeld la puede encontrar mi artículo:



A modo de repaso, solo mencionare que este método de cifrado se basa en una tabla (pre establecida) y que para encriptar un mensaje hace uso de una clave numérica (dada por el usuario), con un ejemplo se puede entender mejor:

Programación: método de cifrado Gronsfeld (parte II)



La tabla es la base del cifrado Gronsfeld y para desarrollar el programa hay que verla a detalle:


deela

- Primero los términos que integran la tabla no son al azar sino van rotando (filas) por una serie de progresión de números primos. Este factor lo usaremos para generar todos los valores de la tabla Gronsfeld .

- Segundo cada fila es usada como indice numérico para buscar cada termino.

Inicialmente pensé almacenar todos los valores de la tabla en una matriz vectorial pero al hacerlo, al buscar cada termino en la correspondiente tabla tendría que recorrerla toda (26 x10) 260 elementos cada vez, es decir cada bucle tendría que recorrerla 260 términos por cada termino que se busque su correspondencia, haciendo lento el proceso y gastando recursos de sistema.

Para evitarlo utilice una matriz de dos términos para el almacenamiento de los valores de la tabla :

geela

La importancia de hacerlo de esta manera radica en que el indice < i > (del gráfico) coincide con el indice de la tabla Gronsfeld (filas), es decir que al buscar con la clave (dada por el usuario) un número dado este coincidirá con el termino < i > lo siguiente seria buscar su coincidencia en letras (25 elementos), Es decir por cada termino que busca su correspondencia tendría que recorrer un bucle de 25 elementos

El desarrollo de la aplicación

La aplicación la he desarrollado en c# usare la interface de consola (sin ventanas ni botones) esto para simplificar código, haré uso de una clase eso para que sea escalable, es decir que pueda ser importada a cualquier aplicación

La concepción se puede visualizar en el diagrama de clases:

meela

El código por partes

El método < generar > de la clase < Class__Gronsfeld >:

seea

El método < Encriptado > de la clase < Class__Gronsfeld >:

Programación: método de cifrado Gronsfeld (parte II)

El método < Des_encriptado> de la clase < Class__Gronsfeld > :

deela

el <main > de la interface de consola :

geela

Imagen del visor de depurador:

meela

RESULTADO AL COMPILAR LA APLICACIÓN

seea



Mejoras

- Esta aplicación tiene la limitación de cifrar palabra por palabra y para cifrar frases completas seria necesario que capture los espacios en blanco y darles un símbolo al cifrar tal como @@.

- Se puede mejorar con un control de la clave y si es menor que la frase/palabra repetirla cuantos caracteres tenga la frase/palabra.

- Cambios menores como controlar mayúsculas/minúsculas y numéricos ingresados por teclado.

OTROS ARTÍCULOS

-

-

-

-

-
Datos archivados del Taringa! original
0puntos
4visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

k
kuwaychinita🇦🇷
Usuario
Puntos0
Posts5
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.