Criptográfia
|
Los Principios de la CriptografiaFirmas digitalesAlgunos cifres públicos pueden usar algoritmos para generar firmas digitales. Una firma digital es una cantidad pequeña de datos que se crearon usando alguna llave confidencial, y hay una llave pública que puede usarse para verificar que la firma que usó la llave privada correspondiente realmente se generó. El algoritmo generaba la firma debe ser tal que sin saber la llave confidencial no es posible crear una firma que verificaría como válida. Se usan firmas digitales para verificar que un mensaje realmente viene del remitente exigido (asumiendo a sólo el remitente sabe la llave confidencial que corresponde al su llave pública). Ellos también pueden ser usados por tiempo-estampar los documentos: persona de confianza firma el documento y tiempo-estampar con su llave confidencial, así testificando que el documento existió en el momento declarado. También pueden usarse firmas digitales para testificar (o certifica) que una llave pública pertenece a una persona particular. Esto es hecho firmando la combinación de la llave y la información sobre su dueño por una llave confidencial. La firma digital por una tercera persona (dueño de la llave confidencial), se llaman a menudo la llave pública y información sobre el dueño de la llave pública los certificados. La razón por confiar en la llave de tercera persona puede ser que de nuevo fue firmada por una llave confidencial. Eventualmente alguna llave debe ser una raíz de la jerarquía de confianza (es decir, en él no se confía porque fue firmada por alguien, pero porque usted cree a prior que en esta llave puede confiarse). En una infraestructura de llave centralizada hay menos raíces en la red de confianza (ej. en agencias gubernamentales se llaman tales raíces las autoridades de la certificación). En una infraestructura distribuida allí no se necesita universalmente aceptados raíces, y cada persona puede tener diferentes raíces de confianza (tal la propia llave de la persona y cualquier llave firmada por él). Éste es el tejido de concepto de confianza usado en PGP. Una firma digital de un documento arbitrario es creada típicamente computando un compendio del mensaje del documento, y encadenándolo con información sobre el firmante, una tiempo-estampa, etc. El hilo resultante es entonces encriptado usando la llave privada del firmante que usa un algoritmo conveniente. El resultante encriptado bloque de bits es la firma. Es a menudo distribuido junto con la información sobre la llave pública que fue usada para firmarlo. Para verificar una firma, el destinatario determina primero si confía que la llave pertenece a la persona que él se supone que pertenece a (usando la red de confianza o el previo conocimiento), y entonces el decripta la firma usando la llave pública de la persona. Si la firma decripta propiamente y la información empareja el mensaje (compendio del mensaje apropiado etc.), la firma se acepta como válido. Varios métodos por hacer y verificar firmas digitales están libremente disponible. El algoritmo ampliamente conocido es RSA. Las funciones de hash criptográficoLas funciones de hash criptográfico se usan en varios contextos, por ejemplo para computar el compendio del mensaje al hacer una firma digital. Una función de hash compresa los bits de un mensaje a un valor de hash de fijo-tamaño en cierto modo que distribuye los posibles mensajes uniformemente entre los posibles valores de hash. Una función de hash criptográfico hace esto en cierto modo que le hace sumamente difícil proponer un mensaje que hash a un valor de hash particular. Los funciones de hash criptográfico típicamente produzcan valores de hash de 128 o más bits. Este número (2128) probablemente es inmensamente más grande que el número de diferentes mensajes ser intercambiado en la vida en el mundo. La razón por requerir más de 128 bits es basada en la paradoja de cumpleaños. La paradoja de cumpleaños establece que dado una función de hash que calcula un compendio de hash de 128-bit de cualquier mensaje, nosotros podemos esperar que el mismo compendio se computara dos veces cuando se calcula un compendio de hash de 264 mensajes seleccionados al azar. Como la memoria más barata para las computadoras esta disponible puede ponerse necesario requerir el compendio de hash de mensaje más grande que 128-bits (como 160 bits que se ha puesto estándar recientemente). Muchas buenas funciones de hash criptográfico están libremente disponibles. Las funciones de hash criptográfico más famosas son de la familia de MD, en particular MD4 y MD5. MD4 ha estado fracturado, y MD5, en el uso extendido, todavía debe ser considerado seguro hasta también está fracturado. SHA-1 y MD-160 son dos ejemplos que todavía son considerados seguros. Los generadores de número aleatorioLos generadores de número aleatorio generan el azar numero para el uso en las aplicaciones de criptografía, como para generar las llaves. Los generadores de número de azar convencionales disponible en la mayoría de idiomas de no son convenientes para el uso en las aplicaciones de criptografía (ellos se diseñan para la aleatoriedad estadística, para no resistirán la predicción de criptoanálisis). En el caso óptimo, los números del azar son basados en las verdaderas fuentes físicas de aleatoriedad que no puede predecirse. Las tales fuentes pueden incluir el ruido de un dispositivo del semiconductor, los bits significantes de una entrada del audio, o los intervalos entre interrupciones del dispositivo o pulsaciones del usuario. El ruido obtenido de una fuente física es entonces "destiló" por una función de hash criptográfico haciendo cada bit depender de cada otro bit. A menudo una grande cuantidad (varios mil bits) se usa para contener aleatoriedad, y toda la cuantidad se hace depender del ruido de la entrada y cada otro bit de la cuantidad en una manera criptográfica fuerte. Cuando la verdadera aleatoriedad física no está disponible, deben usarse números pseudo-aleatorios. Esta situación es indeseable, pero a menudo se levanta en computadoras del propósito generales. Siempre es deseable obtener algún ruido medioambiental - incluso de las latencias del dispositivo, estadísticas de utilización de recurso, estadísticas de la red, el movimiento del ratón, o cualquier cosa. El punto es que los datos deben ser imprevisibles para cualquier observador externo; para lograr esto, la cuantidad del azar debe contener 128 bits de verdadera entropía por lo menos. Los generadores de número aleatorio tienen típicamente una grande cuantidad ("valor de la semilla") conteniendo aleatoriedad. Se vuelven bits de esta cuantidad tomando datos de la cuantidad, opcionalmente ejecutando los datos a través de una función de hash criptográfico por evitar de revelar los volúmenes de la cuantidad. Cuando más momentos se necesitan, la cuantidad es revuelta por encription sus volúmenes por un cifre conveniente con una llave del azar (eso puede tomarse de una parte del non revuelto de la cuantidad) en un modo que hace todo de la cuantidad dependienta de cada bit de la cuantidad. El nuevo ruido medioambiental debe mezclarse en la cuantidad antes de revolver para hacer prediciendo antes de o los valores futuros más aun imposible. Aunque los generadores de número de azar fuertes no son muy difíciles a construir si diseñó propiamente, ellos a menudo son débil. La importancia del generador de número de azar debe darse énfasis a así - si hecho mal, se volverá fácilmente el punto más débil del sistema. Varios ejemplos de generadores criptográficos de número aleatorio están públicamente disponibles. [INDEX La Página Previa La Siguiente Página] Informacion:
Herramientas:
Jougetes:
adaptado por ing. Rafal Swiecki correo Noviembre, 2004, |