SlideShare una empresa de Scribd logo
1 de 6
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

Estructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafosEstructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafosMiguel Rodríguez
 
Bases de datos orientadas a grafos
Bases de datos orientadas a grafosBases de datos orientadas a grafos
Bases de datos orientadas a grafosAbraham Paez
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionJosé Antonio Sandoval Acosta
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++EdsonRc
 
Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en cJessica Suarez
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUrban Skate House
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesMago Julio Cesar
 
Integracion de visiones
Integracion de visionesIntegracion de visiones
Integracion de visionesdarwing1992
 
Estructuras de datos osvaldo cairo
Estructuras de datos   osvaldo cairoEstructuras de datos   osvaldo cairo
Estructuras de datos osvaldo cairoYossLu Molina
 
Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaTAtiizz Villalobos
 

La actualidad más candente (20)

Estructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafosEstructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafos
 
Abstracción de datos
Abstracción de datosAbstracción de datos
Abstracción de datos
 
Bases de datos orientadas a grafos
Bases de datos orientadas a grafosBases de datos orientadas a grafos
Bases de datos orientadas a grafos
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++
 
Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en c
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Unidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datosUnidad 1 introducción a las estructuras de datos
Unidad 1 introducción a las estructuras de datos
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Hashing
HashingHashing
Hashing
 
Recuperación de-datos-en-my sql
Recuperación de-datos-en-my sqlRecuperación de-datos-en-my sql
Recuperación de-datos-en-my sql
 
Estructuras de datos fundamentales
Estructuras de datos  fundamentalesEstructuras de datos  fundamentales
Estructuras de datos fundamentales
 
Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 
Listas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas CircularesListas Doblemente Enlazadas y Listas Circulares
Listas Doblemente Enlazadas y Listas Circulares
 
Cherokee
CherokeeCherokee
Cherokee
 
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
 
Integracion de visiones
Integracion de visionesIntegracion de visiones
Integracion de visiones
 
Estructuras de datos osvaldo cairo
Estructuras de datos   osvaldo cairoEstructuras de datos   osvaldo cairo
Estructuras de datos osvaldo cairo
 
Mapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benitaMapa conceptual unidad 1 benita
Mapa conceptual unidad 1 benita
 

Destacado

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ónJosé 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 movilJosé Antonio Sandoval Acosta
 
Mercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracionMercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracionJosé 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 evaluacionJosé 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ónJosé 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
 
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 aprendizajeROSA 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 luzALCIBAR 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 ExcepcionesJosé 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
 
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 softwareJosé 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 curriculaAldo 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)

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

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 estructurasJosé 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 flujoJosé 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 programacionJosé 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 algoritmosJosé 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

Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfssuser202b79
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologicaJUDITHYEMELINHUARIPA
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALEdwinC23
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJOJimyAMoran
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxjhorbycoralsanchez
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptNombre Apellidos
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfGabrielCayampiGutier
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potableFabricioMogroMantill
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxwilliam801689
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOeldermishti
 
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdfFUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdfalfredoivan1
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)Ricardo705519
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfELIZABETHCRUZVALENCI
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptKelinnRiveraa
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEduardoBriones22
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheElisaLen4
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptRobertoCastao8
 

Último (20)

Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdfFUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 

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.