Traductor

martes, 2 de septiembre de 2014

Encriptacion y Desencriptacion (Encrypt & Decrypt)

Buenas tardes amig@s, en esta oportunidad hablaremos de un punto muy importante en la construccion de sistemas informaticos (paginas web, soluciones para desktop, intranet, etc.), lo cual es la ENCRIPTACION Y DESENCRIPTACION (ENCRYPT Y DECRYPT). Primero que nada debemos decir la encriptación (Encript) es la forma de cifrar datos y/o mensajes, con el fin de hacerlos intangibles a receptores no autorizados por nuestro sistema informático. La desencriptación viene siendo a pocas palabras el proceso de reversión de la encriptación para que pueda ser leído con claridad el mensaje. Para llegar al proceso final de la encriptación  se debe tomar en cuenta el tipo de algoritmo a utilizar para el cifrado del mismo, existen muchos algoritmos y a continuación les mencionare algunos y su forma de implementación. Cabe destacar que los ejemplos fueron realizados en Visual Studio 2012 y para la realización de las pruebas unitarias de cada uno de los ejemplos se utilizo el namespace System.Security.Cryptography, asi que se requiere hacer using del mismo.

RIJNDAEL

Definición Fuente Wikipedia: Es un esquema de cifrado por bloques adoptado como un estándar de cifrado por el gobierno de los Estados Unidos. Se transformó en un estándar efectivo el 26 de mayo de 2002. Desde 2006, es uno de los algoritmos más populares usados en criptografía simétrica. El cifrado fue desarrollado por dos criptólogos belgas, Joan Daemen y Vincent Rijmen, ambos estudiantes de la Katholieke Universiteit Leuven, y enviado al proceso de selección AES bajo el nombre "Rijndael". Ahora vamos a lo que nos interesa a la practica jejeje. En la imagen mostrada abajo se puede notar su implementación

  


SHA-1

Es un algoritmo que forma parte del grupo "SHA" sinónimo de "Algoritmos de hash seguro", los cuales dentro de este grupo se encuentran SHA-0, SHA-1, SHA-2 y SHA-3. SHA-0 es la versión original de la función hash de 160 bits publicado en 1993 bajo el nombre de " SHA " y no fue adoptada por muchas aplicaciones. SHA-1 es muy similar a SHA-0, Publicado en 1995 pero altera la especificación original de hash SHA para corregir debilidades. SHA-2 publicado en 2001, es significativamente diferente de la función hash SHA-1. SHA-3 es implementado en el 2002, utiliza la construcción esponja en el que los bloques de mensajes se XOR en un subconjunto del estado, que se transforma luego en su conjunto. La mas utilizada es SHA-1 porque utiliza un bloque de 160 bits lo cual es ideal para VPN's por ejemplo. Luego de algo de teoría regresemos a la practica. Abajo se muestra su implementación.



Nota: Cabe destacar que este algoritmo no utiliza un método de desencriptación, para poder comparar sus valores se debe hacer la comparación del proceso de generación, ya que cada texto encriptado genera un modelo único del mismo.


MD5

Es una función hash de 128 bits y no es de mucha utilidad para el cifrado de mensajes, su mayor utilización es en base a firmas digitales, fue desarrollado por Ronald Rivest (profesor del MIT) en el año 91. La implementación de este algoritmo al mundo de la programación de sistemas es similar a la antes expuesta en el algoritmo de SHA-1. La cual veremos a continuación y se podrá apreciar la misma secuencia de lineas de código pero con resultado distintos ya que Sha-1 maneja un bloque de 160 bits y MD5 maneja 128 bits.



Nota: Cabe destacar que este algoritmo no utiliza un método de desencriptación, para poder comparar sus valores se debe hacer la comparación del proceso de generación, ya que cada texto encriptado genera un modelo único del mismo.

RSA

Definición fuente Wikipedia: Es un sistema criptográfico de clave pública desarrollado en 1977. Es el primer y más utilizado algoritmo de este tipo y es válido tanto para cifrar como para firmar digitalmente. Tiene 
dificultades para encriptar grandes volúmenes de información pero es muy utilizado para el cifrado de passwords, nombres, números de tarjeta y otros conjuntos usados de corto almacenaje de información. A continuación se presenta su forma de implementan.



Espero sea de utilidad la información brindada, para mas información aquí les dejo el link: http://msdn.microsoft.com/Encrypting&Decrypting información oficial del portal de microsoft msdn y tambien les dejo el link para que puedan descargar el proyecto creado para cada uno de las implementaciones de los algoritmos: UnitTest-Encrypt&Decrypt  Saludos y hasta otra próxima oportunidad.