SlideShare una empresa de Scribd logo
Algoritmos básicos para cifrado y descifrado de frases
Encriptar y Desencriptar
Transposición Inversa
El Algoritmo Transposición inversa es el más sencillo de todos,
genera una cadena al revés de cómo fue escrita: es decir, si
escribimos la palabra PANDA el algoritmo debe regresar ADNAP
como cadena cifrada.
La forma de descifrarlo es aplicando el mismo método a la cadena
cifrada, por lo que requiere la creación de un solo método de
programación.
Ejemplo de una función que cifra en Transposición Inversa en C#
private string cifra_inversa(string cadena)
{
string inversa = "";
for (int i = cadena.Length - 1; i >= 0; i--)
{
inversa = inversa + (cadena[i]);
}
return inversa;
}
Transposición Binaria
La Transposición Binaria al igual que la inversa mueve de su
lugar los caracteres de la cadena original, la diferencia radica
en que lo hace en pares de caracteres sin tomar en cuenta los
demás caracteres de la cadena.
Por ejemplo si tecleamos la palabra MEXICO el algoritmo
divide la frase en pares de la siguiente forma: ME|XI|CO, e
intercambia el contenido de cada par, el carácter de la
izquierda lo pone a la derecha y viceversa, al final regresa
EMIXOC como frase cifrada.
La forma de descifrarlo es aplicando de nuevo el mismo
algoritmo por lo que solo requiere crear una rutina en código
de programación
Ejemplo de una función que cifra en Transposición Binaria en C#
private string cifra_binaria(string cadena)
{
string binaria = "";
int i = 0;
while (i < cadena.Length)
{
if ((i + 1) < cadena.Length)
{
binaria = binaria + cadena[i + 1].ToString() +
cadena[i].ToString();
}
else
{
binaria = binaria + cadena[cadena.Length - 1].ToString();
}
i = i + 2;
}
return binaria;
}
Algoritmo Incremental
El Algoritmo Incremental requiere una clave pública entera.
Genera una nueva cadena cifrada sumando carácter por
carácter la cantidad capturada en laclavepública al código ASCII
de la cadena original.
La forma de invertirlo es restando la clave pública, por lo que es
posible que requiera dos métodos para hacer la tarea, uno para
cifrar y otro para descifrar.
Ejemplo de las funciones que cifran y descifran frases con el algoritmo incremental en C#:
private string cifra_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] + cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
private string des_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] - cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
Algoritmo Exponencial
El Algoritmo Exponencial tiene mucha similitud con el
Algoritmo Incremental, en este caso se pide dos claves
numéricas, la clave pública y la clave privada, las cuales son
multiplicadas entre sí, una vez que tenemos el resultado
dicho número entero se utiliza para sumarlo al código ASCII
de cada carácter de la frase que vamos a cifrar, con esto
obtenemos al final una nueva frase ya cifrada.
La forma de descifrarlo es restando el número que
obtuvimos de la multiplicación de las claves, por lo que es
posible que se requieran dos métodos de programación,
uno para cifrar y otro para descifrar la frase.
En este caso las funciones son exactamente las mismas que
en el algoritmo incremental, el único cambio es que al
capturar las dos claves estas se envían ya multiplicadas en el parámetro numérico de cada
función, de esta forma el código es reutilizable.
Ejemplo de funciones donde se usa el algoritmo exponencial en C#:
// llamado a las funciones enviando las claves y amultiplicadas
string cifrado = cifra_incrementa(texto.Text, cPub * cPriv);
string descifrado = des_incrementa(cifrado, cPub * cPriv);
// Se utilizan las mismas funciones que para el algoritmo incremental
private string cifra_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] + cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
private string des_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] - cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
Algoritmo Exponencial Diferido
El algoritmo Exponencial Diferido funciona muy similar al
Exponencial con la diferencia que las claves enteras no se
multiplican al inicio, la clave privada sirve para referenciar
un arreglo en memoria, elcual contiene números enteros en
un rango de 1 a 99 (puede seleccionarse otro rango).
El usuario en la clave privada debe seleccionar un número
entero que se refiere a la posición en el arreglo de la cual
extraemos el número que usaremos para multiplicar con la
clave pública, una vez que obtenemos el resultado el resto
es exactamente igual al algoritmo exponencial.
En este caso, antes de llamar las funciones debemos buscar
en el arreglo el valor correspondiente a la posición enviada
en la clave privada. Para este ejemplo el arreglo es de 20
posiciones.
Ejemplo de funciones donde se usa el algoritmo exponencial diferido en C#:
byte[] diferido = new byte[20] {3, 5, 6, 8, 9, 11, 12, 14, 15, 17,
19, 21, 25, 27, 31, 35, 58, 46, 55, 59};
clave = diferido[cPriv - 1];
string cifrado = cifra_incrementa(texto.Text, cPub * clave);
string descifrado = des_incrementa(cifrado, cPub * clave);
// Llamado a las funciones enviando las claves ya multiplicadas
// Se utilizan las mismas funciones que para el algoritmo incremental
private string cifra_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] + cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
private string des_incrementa(string cadena, int cPub)
{
char remplaza;
string re_incrementa = "";
for (int i = 0; i < cadena.Length; i++)
{
remplaza = (char)((int)cadena[i] - cPub);
re_incrementa = re_incrementa + remplaza.ToString();
}
return re_incrementa;
}
Algoritmos Mixtos
Es posible crear algoritmos mixtos combinando dos o más de los
mencionados anteriormente, por lo que el código fuente requiere
tantos métodos sean necesarios para cifrar y descifrar.
Es recomendable que al combinar dos o más algoritmos para
cifrar frases primero apliquemos el más sencillo y después sobre
la frase resultante aplicamos el de mayor complejidad.
Para descifrar por medio de algoritmos mixtos solo debemos
aplicar los algoritmos en orden inverso a como se usaron en el
cifrado.
Notas: Es necesario ser prudente al momento de seleccionar los
números enteros que utilizaremos para las multiplicaciones ya
que de ser números muy grandes el resultado será un valor
demasiado alto que puede ocasionar problemas de
procesamiento, lo cual no está contemplado en el código de ejemplo mostrado en cada
algoritmo.
-----------------
Mtro. José Antonio Sandoval Acosta.
Docente de Ingeniería en Sistemas Computacionales.
México. 18 de marzo de 2017.

Más contenido relacionado

La actualidad más candente

Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
Sergio Sanchez
 
Estructura de datos lineales y no lineales
Estructura de datos lineales y no linealesEstructura de datos lineales y no lineales
Estructura de datos lineales y no lineales
los4estatidinamicos
 
DIRECCIONAMIENTO IP: IPv4 y IPv6
DIRECCIONAMIENTO  IP: IPv4 y IPv6DIRECCIONAMIENTO  IP: IPv4 y IPv6
DIRECCIONAMIENTO IP: IPv4 y IPv6
Camilo Parada López
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
eccutpl
 
Fundamentos de redes: 6.3 Direccionamiento de red IPv4
Fundamentos de redes: 6.3 Direccionamiento de red IPv4 Fundamentos de redes: 6.3 Direccionamiento de red IPv4
Fundamentos de redes: 6.3 Direccionamiento de red IPv4
Francesc Perez
 
arboles-b
arboles-barboles-b
MODELO RELACIONAL
MODELO RELACIONALMODELO RELACIONAL
MODELO RELACIONAL
ELSER TARRILLO TORRES
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
tavo_3315_
 
Sql server difference faqs- 4
Sql server difference faqs- 4Sql server difference faqs- 4
Sql server difference faqs- 4
Umar Ali
 
Tablespaces En Oracle
Tablespaces En OracleTablespaces En Oracle
Tablespaces En Oracle
Jesús Armand Calejero Román
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
Boris Salleg
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
gerardo_gauna
 
Array List
Array ListArray List
Array List
Fernando Solis
 
Sql presentacion
Sql presentacionSql presentacion
Sql presentacion
M. Angel Esteban
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
Luis Igoodbad
 
Recursividad
RecursividadRecursividad
Rehashing
RehashingRehashing
Rehashing
rajshreemuthiah
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pila
jefer
 
Comandos c#
Comandos c#Comandos c#
Comandos c#
Heidiie Hdz
 
Direccionamiento ip
Direccionamiento ipDireccionamiento ip
Direccionamiento ip
Koldo Parra
 

La actualidad más candente (20)

Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 
Estructura de datos lineales y no lineales
Estructura de datos lineales y no linealesEstructura de datos lineales y no lineales
Estructura de datos lineales y no lineales
 
DIRECCIONAMIENTO IP: IPv4 y IPv6
DIRECCIONAMIENTO  IP: IPv4 y IPv6DIRECCIONAMIENTO  IP: IPv4 y IPv6
DIRECCIONAMIENTO IP: IPv4 y IPv6
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Fundamentos de redes: 6.3 Direccionamiento de red IPv4
Fundamentos de redes: 6.3 Direccionamiento de red IPv4 Fundamentos de redes: 6.3 Direccionamiento de red IPv4
Fundamentos de redes: 6.3 Direccionamiento de red IPv4
 
arboles-b
arboles-barboles-b
arboles-b
 
MODELO RELACIONAL
MODELO RELACIONALMODELO RELACIONAL
MODELO RELACIONAL
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Sql server difference faqs- 4
Sql server difference faqs- 4Sql server difference faqs- 4
Sql server difference faqs- 4
 
Tablespaces En Oracle
Tablespaces En OracleTablespaces En Oracle
Tablespaces En Oracle
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Array List
Array ListArray List
Array List
 
Sql presentacion
Sql presentacionSql presentacion
Sql presentacion
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Recursividad
RecursividadRecursividad
Recursividad
 
Rehashing
RehashingRehashing
Rehashing
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pila
 
Comandos c#
Comandos c#Comandos c#
Comandos c#
 
Direccionamiento ip
Direccionamiento ipDireccionamiento ip
Direccionamiento ip
 

Destacado

Simulacion - Algoritmo congruencial cuadratico
Simulacion - Algoritmo congruencial cuadraticoSimulacion - Algoritmo congruencial cuadratico
Simulacion - Algoritmo congruencial cuadratico
José Antonio Sandoval Acosta
 
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de EvaluaciónTema 4.3.1. Actividad 2: Instrumentos de Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
José Antonio Sandoval Acosta
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
José Antonio Sandoval Acosta
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
José Antonio Sandoval Acosta
 
Simulación - Algoritmo de productos medios
Simulación - Algoritmo de productos mediosSimulación - Algoritmo de productos medios
Simulación - Algoritmo de productos medios
José Antonio Sandoval Acosta
 
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015 M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
José Antonio Sandoval Acosta
 
Mercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracionMercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracion
José Antonio Sandoval Acosta
 
Como hacer un Mapa Mental
Como hacer un Mapa MentalComo hacer un Mapa Mental
Como hacer un Mapa Mental
José Antonio Sandoval Acosta
 
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacionM4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
José Antonio Sandoval Acosta
 
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluaciónM4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
José Antonio Sandoval Acosta
 
Simulación - Algoritmo lineal
Simulación - Algoritmo linealSimulación - Algoritmo lineal
Simulación - Algoritmo lineal
José Antonio Sandoval Acosta
 
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...
00001  b   1 ing.sistemas   f j 2014 mata ito-ac-po-004-08 formato int didact...00001  b   1 ing.sistemas   f j 2014 mata ito-ac-po-004-08 formato int didact...
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...
Ruber Duck
 
10 ejercicios resueltos en cpp
10 ejercicios resueltos en cpp10 ejercicios resueltos en cpp
10 ejercicios resueltos en cpp
José Antonio Sandoval Acosta
 
Unidad 2. planeación de un ambiente de aprendizaje
Unidad 2. planeación de un ambiente de aprendizajeUnidad 2. planeación de un ambiente de aprendizaje
Unidad 2. planeación de un ambiente de aprendizaje
ROSA IMELDA GARCIA CHI
 
Planificación sobre la reflexión de la luz
Planificación sobre la reflexión de la luzPlanificación sobre la reflexión de la luz
Planificación sobre la reflexión de la luz
ALCIBAR ALMEIDA
 
Programación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 ExcepcionesProgramación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 Excepciones
José Antonio Sandoval Acosta
 
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
José Antonio Sandoval Acosta
 
Portafolio tema 1
Portafolio tema 1Portafolio tema 1
Cuestionario acerca de metodologías ágiles de desarrollo de software
Cuestionario acerca de metodologías ágiles  de desarrollo de softwareCuestionario acerca de metodologías ágiles  de desarrollo de software
Cuestionario acerca de metodologías ágiles de desarrollo de software
José Antonio Sandoval Acosta
 
Planificación de clases fibra optica curricula
Planificación de clases fibra optica curriculaPlanificación de clases fibra optica curricula
Planificación de clases fibra optica curricula
Aldo Thomas
 

Destacado (20)

Simulacion - Algoritmo congruencial cuadratico
Simulacion - Algoritmo congruencial cuadraticoSimulacion - Algoritmo congruencial cuadratico
Simulacion - Algoritmo congruencial cuadratico
 
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de EvaluaciónTema 4.3.1. Actividad 2: Instrumentos de Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
 
Simulación - Algoritmo de productos medios
Simulación - Algoritmo de productos mediosSimulación - Algoritmo de productos medios
Simulación - Algoritmo de productos medios
 
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015 M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
 
Mercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracionMercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracion
 
Como hacer un Mapa Mental
Como hacer un Mapa MentalComo hacer un Mapa Mental
Como hacer un Mapa Mental
 
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacionM4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
 
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluaciónM4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
 
Simulación - Algoritmo lineal
Simulación - Algoritmo linealSimulación - Algoritmo lineal
Simulación - Algoritmo lineal
 
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...
00001  b   1 ing.sistemas   f j 2014 mata ito-ac-po-004-08 formato int didact...00001  b   1 ing.sistemas   f j 2014 mata ito-ac-po-004-08 formato int didact...
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...
 
10 ejercicios resueltos en cpp
10 ejercicios resueltos en cpp10 ejercicios resueltos en cpp
10 ejercicios resueltos en cpp
 
Unidad 2. planeación de un ambiente de aprendizaje
Unidad 2. planeación de un ambiente de aprendizajeUnidad 2. planeación de un ambiente de aprendizaje
Unidad 2. planeación de un ambiente de aprendizaje
 
Planificación sobre la reflexión de la luz
Planificación sobre la reflexión de la luzPlanificación sobre la reflexión de la luz
Planificación sobre la reflexión de la luz
 
Programación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 ExcepcionesProgramación Orientada a Objetos - Unidad 5 Excepciones
Programación Orientada a Objetos - Unidad 5 Excepciones
 
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
 
Portafolio tema 1
Portafolio tema 1Portafolio tema 1
Portafolio tema 1
 
Cuestionario acerca de metodologías ágiles de desarrollo de software
Cuestionario acerca de metodologías ágiles  de desarrollo de softwareCuestionario acerca de metodologías ágiles  de desarrollo de software
Cuestionario acerca de metodologías ágiles de desarrollo de software
 
Planificación de clases fibra optica curricula
Planificación de clases fibra optica curriculaPlanificación de clases fibra optica curricula
Planificación de clases fibra optica curricula
 

Similar a Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)

08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenas
horusblom
 
!Prograc8
!Prograc8!Prograc8
!Prograc8
robertoxe
 
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasTap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
José Antonio Sandoval Acosta
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3
louis
 
Funciones str
Funciones strFunciones str
Funciones str
Sharliemaster
 
Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadores
r0na91
 
Grafos
GrafosGrafos
Grafos
guest987d67
 
Grafos
GrafosGrafos
Grafos
guest987d67
 
Grafos
GrafosGrafos
Grafos
guest987d67
 
Guia final so
Guia final soGuia final so
Guia final so
puracastillo
 
if-while-for.ppsx
if-while-for.ppsxif-while-for.ppsx
if-while-for.ppsx
MULTISERVICIOS INFORMATICOS
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
Ysaac Ruiz
 
Informe tecnico
Informe tecnicoInforme tecnico
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++
Milton Nicolay
 
Funciones C++
Funciones C++Funciones C++
Funciones C++
Jarvis_15
 
Ejercicios programacion cortos
Ejercicios programacion cortosEjercicios programacion cortos
Ejercicios programacion cortos
milanollarves
 
Cadenas y punteros.ppt
Cadenas y punteros.pptCadenas y punteros.ppt
Cadenas y punteros.ppt
Jacqueline Villarroel Valenzuela
 
Trabajo programacion 1 jose silva
Trabajo programacion 1 jose silvaTrabajo programacion 1 jose silva
Trabajo programacion 1 jose silva
Jhosse Ant Siilva
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
Andy Otañez
 
Módulo 4 (sin estilo)
Módulo 4 (sin estilo)Módulo 4 (sin estilo)
Módulo 4 (sin estilo)
Emiliano Siracusa
 

Similar a Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar) (20)

08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenas
 
!Prograc8
!Prograc8!Prograc8
!Prograc8
 
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasTap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3
 
Funciones str
Funciones strFunciones str
Funciones str
 
Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadores
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Guia final so
Guia final soGuia final so
Guia final so
 
if-while-for.ppsx
if-while-for.ppsxif-while-for.ppsx
if-while-for.ppsx
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++
 
Funciones C++
Funciones C++Funciones C++
Funciones C++
 
Ejercicios programacion cortos
Ejercicios programacion cortosEjercicios programacion cortos
Ejercicios programacion cortos
 
Cadenas y punteros.ppt
Cadenas y punteros.pptCadenas y punteros.ppt
Cadenas y punteros.ppt
 
Trabajo programacion 1 jose silva
Trabajo programacion 1 jose silvaTrabajo programacion 1 jose silva
Trabajo programacion 1 jose silva
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
Módulo 4 (sin estilo)
Módulo 4 (sin estilo)Módulo 4 (sin estilo)
Módulo 4 (sin estilo)
 

Más de José Antonio Sandoval Acosta

Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
José Antonio Sandoval Acosta
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
José Antonio Sandoval Acosta
 
croquis de aulas UAIM topolobampo FEB 2024
croquis de aulas UAIM topolobampo  FEB 2024croquis de aulas UAIM topolobampo  FEB 2024
croquis de aulas UAIM topolobampo FEB 2024
José Antonio Sandoval Acosta
 
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
José Antonio Sandoval Acosta
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
José Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujo
José Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
José Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
José Antonio Sandoval Acosta
 
Manual de prácticas y antología para POO
Manual de prácticas y antología para  POOManual de prácticas y antología para  POO
Manual de prácticas y antología para POO
José Antonio Sandoval Acosta
 
Aplicaciones móviles intro.
Aplicaciones móviles intro.Aplicaciones móviles intro.
Aplicaciones móviles intro.
José Antonio Sandoval Acosta
 
Economia
EconomiaEconomia
ISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptxISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptx
José Antonio Sandoval Acosta
 
Plantilla presentación.pptx
Plantilla presentación.pptxPlantilla presentación.pptx
Plantilla presentación.pptx
José Antonio Sandoval Acosta
 
kitchenham.pptx
kitchenham.pptxkitchenham.pptx
Diagrama de Casos de Uso UML
Diagrama de Casos de Uso UMLDiagrama de Casos de Uso UML
Diagrama de Casos de Uso UML
José Antonio Sandoval Acosta
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
José Antonio Sandoval Acosta
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
José Antonio Sandoval Acosta
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
José Antonio Sandoval Acosta
 
Tema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdfTema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdf
José Antonio Sandoval Acosta
 
Tema 1 - Intro.pdf
Tema 1 - Intro.pdfTema 1 - Intro.pdf
Tema 1 - Intro.pdf
José Antonio Sandoval Acosta
 

Más de José Antonio Sandoval Acosta (20)

Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
 
croquis de aulas UAIM topolobampo FEB 2024
croquis de aulas UAIM topolobampo  FEB 2024croquis de aulas UAIM topolobampo  FEB 2024
croquis de aulas UAIM topolobampo FEB 2024
 
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujo
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Manual de prácticas y antología para POO
Manual de prácticas y antología para  POOManual de prácticas y antología para  POO
Manual de prácticas y antología para POO
 
Aplicaciones móviles intro.
Aplicaciones móviles intro.Aplicaciones móviles intro.
Aplicaciones móviles intro.
 
Economia
EconomiaEconomia
Economia
 
ISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptxISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptx
 
Plantilla presentación.pptx
Plantilla presentación.pptxPlantilla presentación.pptx
Plantilla presentación.pptx
 
kitchenham.pptx
kitchenham.pptxkitchenham.pptx
kitchenham.pptx
 
Diagrama de Casos de Uso UML
Diagrama de Casos de Uso UMLDiagrama de Casos de Uso UML
Diagrama de Casos de Uso UML
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 
Tema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdfTema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdf
 
Tema 1 - Intro.pdf
Tema 1 - Intro.pdfTema 1 - Intro.pdf
Tema 1 - Intro.pdf
 

Último

Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
michiotes33
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 
DIAGRAMA SIPOC INGENIERIA INDUSTRIAL HERRAMIENTA
DIAGRAMA SIPOC INGENIERIA INDUSTRIAL HERRAMIENTADIAGRAMA SIPOC INGENIERIA INDUSTRIAL HERRAMIENTA
DIAGRAMA SIPOC INGENIERIA INDUSTRIAL HERRAMIENTA
MayDaniel2
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
sebastianpech108
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
jhunior lopez rodriguez
 
Medicion-Del-Agua-de-Riego-Aforo 2023.pptx
Medicion-Del-Agua-de-Riego-Aforo 2023.pptxMedicion-Del-Agua-de-Riego-Aforo 2023.pptx
Medicion-Del-Agua-de-Riego-Aforo 2023.pptx
MONICADELROCIOMUNZON1
 
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTINilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
OrlandoRomanEcheandi
 
Clase de termodinamica sobre cabios de fase
Clase de termodinamica sobre cabios de faseClase de termodinamica sobre cabios de fase
Clase de termodinamica sobre cabios de fase
EmilyLloydCerda
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
raul958375
 
GRAFICAS AÑOSsssssssss (2022 - 2023).pdf
GRAFICAS AÑOSsssssssss (2022 - 2023).pdfGRAFICAS AÑOSsssssssss (2022 - 2023).pdf
GRAFICAS AÑOSsssssssss (2022 - 2023).pdf
Jose Calderas
 
AUTOCAD 2D - UA1 DE NIVEL INTERMEDIO CON
AUTOCAD 2D - UA1 DE NIVEL INTERMEDIO CONAUTOCAD 2D - UA1 DE NIVEL INTERMEDIO CON
AUTOCAD 2D - UA1 DE NIVEL INTERMEDIO CON
FreddyJuniorOrtechoC
 
1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf
raulnilton2018
 
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docxINFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
LuzdeFatimaCarranzaG
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
FernandoRodrigoEscal
 
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
KarinToledo2
 
Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
jahirrtorresa
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
JuanCarlos695207
 
MECÁNICA DE SUELOS I - Comportamiento suelos granulares
MECÁNICA DE SUELOS I - Comportamiento suelos granularesMECÁNICA DE SUELOS I - Comportamiento suelos granulares
MECÁNICA DE SUELOS I - Comportamiento suelos granulares
Fernando878837
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
ssuser8827cb1
 

Último (20)

Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 
DIAGRAMA SIPOC INGENIERIA INDUSTRIAL HERRAMIENTA
DIAGRAMA SIPOC INGENIERIA INDUSTRIAL HERRAMIENTADIAGRAMA SIPOC INGENIERIA INDUSTRIAL HERRAMIENTA
DIAGRAMA SIPOC INGENIERIA INDUSTRIAL HERRAMIENTA
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
 
Medicion-Del-Agua-de-Riego-Aforo 2023.pptx
Medicion-Del-Agua-de-Riego-Aforo 2023.pptxMedicion-Del-Agua-de-Riego-Aforo 2023.pptx
Medicion-Del-Agua-de-Riego-Aforo 2023.pptx
 
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTINilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
 
Clase de termodinamica sobre cabios de fase
Clase de termodinamica sobre cabios de faseClase de termodinamica sobre cabios de fase
Clase de termodinamica sobre cabios de fase
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
 
GRAFICAS AÑOSsssssssss (2022 - 2023).pdf
GRAFICAS AÑOSsssssssss (2022 - 2023).pdfGRAFICAS AÑOSsssssssss (2022 - 2023).pdf
GRAFICAS AÑOSsssssssss (2022 - 2023).pdf
 
AUTOCAD 2D - UA1 DE NIVEL INTERMEDIO CON
AUTOCAD 2D - UA1 DE NIVEL INTERMEDIO CONAUTOCAD 2D - UA1 DE NIVEL INTERMEDIO CON
AUTOCAD 2D - UA1 DE NIVEL INTERMEDIO CON
 
1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf1. Introduccion a las excavaciones subterraneas (1).pdf
1. Introduccion a las excavaciones subterraneas (1).pdf
 
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docxINFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
INFORME DE LABORATORIO MECANICA DE FLUIDOS (1).docx
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
 
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
 
Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
 
MECÁNICA DE SUELOS I - Comportamiento suelos granulares
MECÁNICA DE SUELOS I - Comportamiento suelos granularesMECÁNICA DE SUELOS I - Comportamiento suelos granulares
MECÁNICA DE SUELOS I - Comportamiento suelos granulares
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
 

Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)

  • 1. Algoritmos básicos para cifrado y descifrado de frases Encriptar y Desencriptar Transposición Inversa El Algoritmo Transposición inversa es el más sencillo de todos, genera una cadena al revés de cómo fue escrita: es decir, si escribimos la palabra PANDA el algoritmo debe regresar ADNAP como cadena cifrada. La forma de descifrarlo es aplicando el mismo método a la cadena cifrada, por lo que requiere la creación de un solo método de programación. Ejemplo de una función que cifra en Transposición Inversa en C# private string cifra_inversa(string cadena) { string inversa = ""; for (int i = cadena.Length - 1; i >= 0; i--) { inversa = inversa + (cadena[i]); } return inversa; }
  • 2. Transposición Binaria La Transposición Binaria al igual que la inversa mueve de su lugar los caracteres de la cadena original, la diferencia radica en que lo hace en pares de caracteres sin tomar en cuenta los demás caracteres de la cadena. Por ejemplo si tecleamos la palabra MEXICO el algoritmo divide la frase en pares de la siguiente forma: ME|XI|CO, e intercambia el contenido de cada par, el carácter de la izquierda lo pone a la derecha y viceversa, al final regresa EMIXOC como frase cifrada. La forma de descifrarlo es aplicando de nuevo el mismo algoritmo por lo que solo requiere crear una rutina en código de programación Ejemplo de una función que cifra en Transposición Binaria en C# private string cifra_binaria(string cadena) { string binaria = ""; int i = 0; while (i < cadena.Length) { if ((i + 1) < cadena.Length) { binaria = binaria + cadena[i + 1].ToString() + cadena[i].ToString(); } else { binaria = binaria + cadena[cadena.Length - 1].ToString(); } i = i + 2; } return binaria; }
  • 3. Algoritmo Incremental El Algoritmo Incremental requiere una clave pública entera. Genera una nueva cadena cifrada sumando carácter por carácter la cantidad capturada en laclavepública al código ASCII de la cadena original. La forma de invertirlo es restando la clave pública, por lo que es posible que requiera dos métodos para hacer la tarea, uno para cifrar y otro para descifrar. Ejemplo de las funciones que cifran y descifran frases con el algoritmo incremental en C#: private string cifra_incrementa(string cadena, int cPub) { char remplaza; string re_incrementa = ""; for (int i = 0; i < cadena.Length; i++) { remplaza = (char)((int)cadena[i] + cPub); re_incrementa = re_incrementa + remplaza.ToString(); } return re_incrementa; } private string des_incrementa(string cadena, int cPub) { char remplaza; string re_incrementa = ""; for (int i = 0; i < cadena.Length; i++) { remplaza = (char)((int)cadena[i] - cPub); re_incrementa = re_incrementa + remplaza.ToString(); } return re_incrementa; }
  • 4. Algoritmo Exponencial El Algoritmo Exponencial tiene mucha similitud con el Algoritmo Incremental, en este caso se pide dos claves numéricas, la clave pública y la clave privada, las cuales son multiplicadas entre sí, una vez que tenemos el resultado dicho número entero se utiliza para sumarlo al código ASCII de cada carácter de la frase que vamos a cifrar, con esto obtenemos al final una nueva frase ya cifrada. La forma de descifrarlo es restando el número que obtuvimos de la multiplicación de las claves, por lo que es posible que se requieran dos métodos de programación, uno para cifrar y otro para descifrar la frase. En este caso las funciones son exactamente las mismas que en el algoritmo incremental, el único cambio es que al capturar las dos claves estas se envían ya multiplicadas en el parámetro numérico de cada función, de esta forma el código es reutilizable. Ejemplo de funciones donde se usa el algoritmo exponencial en C#: // llamado a las funciones enviando las claves y amultiplicadas string cifrado = cifra_incrementa(texto.Text, cPub * cPriv); string descifrado = des_incrementa(cifrado, cPub * cPriv); // Se utilizan las mismas funciones que para el algoritmo incremental private string cifra_incrementa(string cadena, int cPub) { char remplaza; string re_incrementa = ""; for (int i = 0; i < cadena.Length; i++) { remplaza = (char)((int)cadena[i] + cPub); re_incrementa = re_incrementa + remplaza.ToString(); } return re_incrementa; } private string des_incrementa(string cadena, int cPub) { char remplaza; string re_incrementa = ""; for (int i = 0; i < cadena.Length; i++) { remplaza = (char)((int)cadena[i] - cPub); re_incrementa = re_incrementa + remplaza.ToString(); } return re_incrementa; }
  • 5. Algoritmo Exponencial Diferido El algoritmo Exponencial Diferido funciona muy similar al Exponencial con la diferencia que las claves enteras no se multiplican al inicio, la clave privada sirve para referenciar un arreglo en memoria, elcual contiene números enteros en un rango de 1 a 99 (puede seleccionarse otro rango). El usuario en la clave privada debe seleccionar un número entero que se refiere a la posición en el arreglo de la cual extraemos el número que usaremos para multiplicar con la clave pública, una vez que obtenemos el resultado el resto es exactamente igual al algoritmo exponencial. En este caso, antes de llamar las funciones debemos buscar en el arreglo el valor correspondiente a la posición enviada en la clave privada. Para este ejemplo el arreglo es de 20 posiciones. Ejemplo de funciones donde se usa el algoritmo exponencial diferido en C#: byte[] diferido = new byte[20] {3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 19, 21, 25, 27, 31, 35, 58, 46, 55, 59}; clave = diferido[cPriv - 1]; string cifrado = cifra_incrementa(texto.Text, cPub * clave); string descifrado = des_incrementa(cifrado, cPub * clave); // Llamado a las funciones enviando las claves ya multiplicadas // Se utilizan las mismas funciones que para el algoritmo incremental private string cifra_incrementa(string cadena, int cPub) { char remplaza; string re_incrementa = ""; for (int i = 0; i < cadena.Length; i++) { remplaza = (char)((int)cadena[i] + cPub); re_incrementa = re_incrementa + remplaza.ToString(); } return re_incrementa; } private string des_incrementa(string cadena, int cPub) { char remplaza; string re_incrementa = ""; for (int i = 0; i < cadena.Length; i++) { remplaza = (char)((int)cadena[i] - cPub); re_incrementa = re_incrementa + remplaza.ToString(); } return re_incrementa; }
  • 6. Algoritmos Mixtos Es posible crear algoritmos mixtos combinando dos o más de los mencionados anteriormente, por lo que el código fuente requiere tantos métodos sean necesarios para cifrar y descifrar. Es recomendable que al combinar dos o más algoritmos para cifrar frases primero apliquemos el más sencillo y después sobre la frase resultante aplicamos el de mayor complejidad. Para descifrar por medio de algoritmos mixtos solo debemos aplicar los algoritmos en orden inverso a como se usaron en el cifrado. Notas: Es necesario ser prudente al momento de seleccionar los números enteros que utilizaremos para las multiplicaciones ya que de ser números muy grandes el resultado será un valor demasiado alto que puede ocasionar problemas de procesamiento, lo cual no está contemplado en el código de ejemplo mostrado en cada algoritmo. ----------------- Mtro. José Antonio Sandoval Acosta. Docente de Ingeniería en Sistemas Computacionales. México. 18 de marzo de 2017.