Seguridad de datos en c#

Páginas: 5 (1102 palabras) Publicado: 1 de diciembre de 2009
Seguridad de datos con C#

La criptografía es la ciencia de usar las matemáticas para encriptar y desencriptar datos. Una vez que la información ha sido encriptado, puede ser almacenada en un medio inseguro o enviada a través de una red insegura (como Internet) y aún así permanecer secreta. Luego, los datos pueden desencriptarse a su formato original.

La encriptación es el proceso en el cual losdatos a proteger son traducidos a algo que parece aleatorio y que no tiene ningún significado (los datos encriptados o cifrados).
La desencriptación es el proceso en el cual los datos encriptados son convertidos nuevamente a su forma original.

Un algoritmo criptográfico, o cifrador, es una función matemática usada en los procesos de encriptación y desencriptación. Un algoritmo criptográficotrabaja en combinación con una llave (un número, palabra, frase, o contraseña) para encriptar y desencriptar datos. Para encriptar, el algoritmo combina matemáticamente la información a proteger con una llave provista. El resultado de este cálculo son los datos encriptados. Para desencriptar, el algoritmo hace un cálculo combinando los datos encriptados con una llave provista, siendo el resultado deesta combinación los datos desencriptados (exactamente igual a como estaban antes de ser encriptados si se usó la misma llave). Si la llave o los datos son modificados el algoritmo produce un resultado diferente. El objetivo de un algoritmo criptográfico es hacer tan difícil como sea posible desencriptar los datos sin utilizar la llave. Si se usa un algoritmo de encriptación realmente bueno,entonces no hay ninguna técnica significativamente mejor que intentar metódicamente con cada llave posible.

Diferentes algoritmos.
Los algoritmos simétricos encriptan y desencriptan con la misma llave. Las principales ventajas de los algoritmos simétricos son su seguridad y su velocidad. Los algoritmos asimétricos encriptan y desencriptan con diferentes llaves. Los datos se encriptan con una llavepública y se desencriptan con una privada, siendo ésta su principal ventaja. Los algoritmos asimétricos, también conocidos como algoritmos de llave pública, necesitan al menos una llave de 3.000 bits para alcanzar un nivel de seguridad similar al de uno simétrico de 128 bits. Y son increíblemente lentos, tanto que no pueden ser utilizados para encriptar grandes cantidades de información. Losalgoritmos simétricos son aproximadamente 1.000 veces más rápidos que los asimétricos.

Hash es un tipo de transformación de datos, es decir es la conversión de determinados datos de cualquier tamaño en un número de longitud fija mediante una función matemática unidireccional llamada "algoritmo hash".

Supongamos que la cadena a encriptar es "mi mama" y quiero que se resulta en un solo numero (valorhash). Para esto vamos a asociar cada carácter con su equivalente a el valor ASCII y veamos cómo queda.

mi mama
m=195
i=105
espacio=32
m=109
a=97
m=109
a=97

Sumamos todos los números 195+105+32+109+97= 685

Es decir 685 es valor hash a nuestra cadena mi mama en código ASCII, y notemos que es unidireccional, es decir si tomamos el numero resultante 685 podríamos desencriptarlo? Es casi imposiblesaber a qué cadena corresponde a menos que probemos con todas las combinaciones posibles. Quiero aclarar que la ecuación que explique es la más sencilla por así decirlo y que en la práctica real son usados algoritmos millones de veces más complejos.

Las funciones de hash más utilizadas :
MD5: Message Digest 5 = digestin de mensaje version 5
SHA-1: Secure Hash Algoritm = algoritmo de hash seguro-revision 1 de 160 bits

Podemos decir que un HASH no es más que un número resumen. De hecho, en muchos sitios web podéis encontrar expresiones como “checksum MD5″, lo que literalmente se traduce por “suma de comprobación”. Así, el concepto no es complicado, pero sí su implementación. Pongamos un ejemplo: supongamos que tenemos un fichero cualquiera. Pues bien, si consideramos dicho fichero como un...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Estructuras de datos en C/C++
  • LOS DATOS EN C++
  • Datos del leguaje c
  • Conexion a base de datos c#
  • Tipos de datos en c
  • Tipos De Datos C++
  • Tipos de datos en c
  • Buesqueda De Datos En C++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS