La introducción en la criptografía

La traducción del artículo Tatu Ylonen "Introduction to Cryptography"

El prefacio

Las personas diferentes comprenden bajo la cifración las cosas diferentes. Los niños juegan en las cifras de juguetes y las lenguas secretas. Esto no tiene nada de común, sin embargo, con la criptografía presente. La criptografía presente (strong cryptography) debe abastecer tal nivel de la confidencialidad que era posible firmemente proteger la información crítica del desciframiento por las grandes organizaciones--- tales como la mafia, las corporaciones transnacionales y los grandes estados. La criptografía presente en pasado se usaba sólo en los objetivos militares. Es ahora sin embargo, con el proceso de formación de la sociedad informativa, ella se hace por el instrumento central para el mantenimiento de la confidencialidad.

Con la formación de la sociedad informativa, a los grandes estados se les hacen accesibles los medios tecnológicos de la vigilancia total detrás de unos millones de personas. Por eso la criptografía se hace unos de los instrumentos básicos que abastecen las confidencialidades, la confianza, la autorización, los pagamentos electrónicos, la seguridad corporativa y la multitud innumerable de otras cosas importantes.

La criptografía no es más придумкой de los militares, de que no vale la pena comunicarse. Ha llegado es hora de quitar de la criptografía los mantos del misterio y usar todas sus posibilidades a la utilidad a la sociedad moderna. La difusión ancha de la criptografía es un de pocos modos proteger a la persona de la situación, cuando él descubre de repente que vive en el estado totalitario, que puede controlar su cada paso.

La terminología básica

Presenten que tenéis que enviar el mensaje al destinatario. Queréis que nadie excepto el destinatario no pueda leer la información enviada. Sin embargo siempre hay una probabilidad que alguien abrirá el sobre o interceptará la misiva electrónica.

En la terminología criptográfica la misiva inicial llaman por el texto abierto (plaintext o cleartext). El cambio del texto inicial así para esconder de otros su contenido, llaman la cifración (encryption). El mensaje cifrado llaman шифротекстом (ciphertext). El proceso, a que de шифротекста se extrae el texto abierto llaman la descodificación (decryption). Habitualmente durante el cifrado y la descodificación se usa cierta llave (key) y el algoritmo abastece que se puede hacer la descodificación sólo sabiendo esta llave.

La criptografía--- es la ciencia como abastecer la confidencialidad del mensaje. Криптоанализ--- es la ciencia como abrir el mensaje cifrado, es decir como sacar el texto abierto sin saber la llave. De la criptografía se ocupan los criptógrafos, а криптоанализом se ocupan криптоаналитики.

La criptografía cubre todos los aspectos prácticos del cambio secreto con los mensajes, incluyendo аутенфикацию, las firmas digitales, dinero electrónico y mucho otro. La criptología--- es la sección de los matemáticas que estudia las bases matemáticas de los métodos criptográficos.


 Los algoritmos básicos de la cifración



El método del cifrado/descodificación llaman la cifra (cipher). Algunos algoritmos de la cifración son fundados en lo que el método mismo las cifraciones (algoritmo) es secreto. Ahora tales métodos representan el interés sólo histórico y no tienen el significado práctico. Todos los algoritmos modernos usan la llave para la dirección del cifrado y la descodificación; el mensaje puede ser con éxito descifrado solamente si es conocida la llave. La llave usada para la descodificación puede no coincidir con la llave usada para la cifración, sin embargo en la mayoría de los algoritmos las llaves coinciden.

Los algoritmos con el uso de la llave comparten a dos clases: simétrico (o los algoritmos por la clave secreta) y асиметричные (o los algoritmos con la llave abierta). La diferencia en lo que los algoritmos simétricos usan la misma llave para la cifración y para la descodificación (o la llave para la descodificación es calculada simplemente por la llave del cifrado). Mientras que los algoritmos asimétricos usan las llaves diferentes, y la llave para la descodificación no puede ser calculada por la llave del cifrado.

Los algoritmos smmetrichnye subdividen en потоковые las cifras y las cifras de bloques prefabricados. Потоковые permiten cifrar la información побитово, mientras que de bloques prefabricados trabajan con algún juego de las palas dado (habitualmente la dimensión del bloque compone 64 pala) y cifran este juego como una unidad.

Las cifras assimetrichnye (también llamado por los algoritmos con la llave abierta, o--- en un plan más general--- la criptografía con la llave abierta) permiten que la llave abierta sea доступн todo (diremos, es publicado en el periódico). Esto permite cifrar el mensaje. Sin embargo descifrar este mensaje puede solamente la persona necesaria (el que posee la llave de la descodificación). La llave para la cifración llaman la llave abierta, а la llave para la descodificación--- la llave cerrada o la clave secreta.

Los algoritmos modernos del cifrado/descodificación son bastante difíciles ellos es imposible pasar a mano. Los algoritmos presentes criptográficos son elaborados para el uso por los ordenadores o los mecanismos especiales duros. En la mayoría de las aplicaciones la criptografía es hecha por el software y hay una multitud de paquetes accesibles criptográficos.

En general, los algoritmos simétricos trabajan más rápidamente, que ассиметричные. En практке los dos como los algoritmos se usan a menudo juntos: el algoritmo con la llave abierta se usa para entregar por casualidad clave secreta generada, que luego se usa para la descodificación del mensaje.

Muchos algoritmos cualitativos criptográficos son accesibles ampliamente - en la librería, la biblioteca, la oficina de patente o en el Internet. A los algoritmos ampliamente conocidos simétricos se refieren DES e IDEA, Probable el mejor algoritmo asimétrico es RSA.

Las firmas digitales

Algunos de los algoritmos asimétricos pueden usarse para la generación de la firma digital. La firma digital llaman el bloque de los datos generados con el uso de alguna clave secreta. Además por medio de la llave abierta es posible comprobar que los datos eran realmente generados por medio de esta clave secreta. El algoritmo de la generación de la firma digital debe abastecer que era imposible sin clave secreta crear la firma, que durante la comprobación se encuentra correcta.

Las firmas digitales se usan para confirmar que el mensaje ha llegado realmente del remitente dado (en la suposición que sólo el remitente posee la clave secreta correspondiente a su llave abierta). También las firmas se usan para проставления de la estampilla del tiempo (timestamp) sobre los documentos: la parte, a que nos confiamos, firma el documento con la estampilla del tiempo con помошью de la clave secreta y confirma, así, que el documento existía ya en el momento de, declarado en la estampilla del tiempo.

Las firmas digitales es posible usar también para el certificado (la certificación--- to certify) lo que el documento pertenece a una cierta persona. Esto se hace así: la llave abierta y la información sobre aquel, a quien él pertenece se firman por la parte, por que se es confiado. Además confiarse a la parte que firma nosotros podemos en razon de lo que su llave era firmada por la tercera parte. Surge así la jerarquía de la confianza. Es evidente que alguna llave debe ser la raíz de la jerarquía (es decir nos le confiamos no porque él por alguien es firmado, y por eso que creemos a-priori que es posible confiarle). En la infraestructura centralizada de las llaves hay una cantidad muy pequeña de las llaves radicales de la red (por ejemplo, investido por los poderes estatal агенства; los llaman también de certificación агенствами--- certification authorities). En la infraestructura distribuida no hay necesidad de tener universal para todos las llaves radicales, y cada uno las partes puede confiarse al juego de las llaves radicales (diremos a propia llave y las llaves, ella firmado). Esta concepción lleva el nombre de la red de la confianza (web of trust) y es realizada, por ejemplo, en PGP.

La firma digital del documento se crea habitualmente así: del documento es generada la selección así llamada (message digest) y a él es añadida la información sobre el que firma el documento, la estampilla del tiempo etc. La línea que ha resultado más es cifrada por la clave secreta de uno u otro algoritmo, que firma con el uso. El juego que ha resultado cifrado de las palas representa la firma. A la firma se acerca habitualmente la llave abierta que firma. Si el destinatario decide primero para se confía él a lo que la llave abierta pertenece a aquel, a quien debe pertenecer (por medio de la red de la confianza o el conocimiento apriorístico), y luego descifra la firma por medio de la llave abierta. Si la firma era descifrada normalmente, y su contenido corresponde al documento (la selección etc.), el mensaje se considera confirmado.

Son con soltura accesibles algunos métodos de la creación y comprobación de las firmas digitales. Más conocido es el algoritmo RSA.

Las hesh-funciones criptográficas

Las hesh-funciones criptográficas se usan habitualmente para la generación de la selección del mensaje a la creación de la firma digital. Las Hesh-funciones representan el mensaje en el hesh-significado, que tiene la dimensión fijado, (hash value) así que toda la multitud de mensajes posibles se distribuye es uniforme por la multitud de hesh-significados. Además la hesh-función criptográfica lo hace así que es prácticamente imposible llevar el documento al hesh-significado dado.

Las hesh-funciones criptográficas hacen habitualmente los significados de la longitud de 128 y más palas. Este número es significativo más que la cantidad собщений, que existirán alguna vez en el mundo.

Muchas hesh-funciones buenas criptográficas en una forma accesible gratis. Ampliamente conocido incluyen MD5 y SHA.

Los generadores criptográficos de los números casuales

Los generadores criptográficos de los números casuales hacen los números casuales, que se usan en las aplicaciones criptográficas, por ejemplo - para la generación de las llaves. Los generadores regulares de los números casuales que hay en muchas lenguas de la programación y los ambientes de programa, no se acercan para las necesidades de la criptografía (se creaban con el objetivo recibir es estadística la distribución casual, криптоаналитики pueden predecir la conducta de tales generadores casuales).

En el ideal los números casuales deben fundarse en la fuente presente física de la información casual, que es imposible predecir. Los ejemplos de tales fuentes incluyen los aparatos de semiconductor que hacen ruido, las palas menores del sonido digitalizado, los intervalos entre las interrupciones de los mecanismos o las presiones de las teclas. El ruido, recibido de la fuente físico, luego "es destilado" por la hesh-función criptográfica así que cada uno las palas dependa de cada uno la pala. Bastante a menudo para el almacenaje de la información casual se usa el fondo común bastante grande (algunos mil de palas) y cada uno las palas del fondo común se hace por dependiente de cada uno pala шумовой информаци y cada uno de otro la pala del fondo común криптографически seguro (strong) por el modo.

Cuando no hay fuente presente física del ruido, cae usar los números seudocasuales. Tal situación es indeseable, pero surge a menudo en los ordenadores del destino general. Siempre es deseable recibir cierto ruido del ambiente--- diremos de la cantidad de las demoras en los mecanismos, la cifra de la estadística del uso de los recursos, la estadística de red, las interrupciones del teclado o algo de otro. La tarea es recibir los datos, imprevisible para el observador exterior. Para el logro de esto el fondo común casual debe contener como mínimo 128 palas presente энтропии.

Los generadores criptográficos de los números seudocasuales usan habitualmente el fondo común (seed-significado) grande que contiene la información casual. Las palas es generado por medio del extracto del fondo común con la carrera posible a través de la hesh-función criptográfica para esconder el contenido del fondo común del observador exterior. Cuando es necesaria una nueva porción de palas, el fondo común se mezcla por medio del cifrado con la llave casual (de ello es posible tomar de no usado mientras las partes del fondo común) así que cada uno las palas del fondo común dependa de cada uno de otro la pala. Un nuevo ruido del ambiente debe ser añadido al fondo común ante las mezclas para hacer la predicción de los nuevos significados del fondo común aún más difícil.

A pesar de que al diseñado exacto криптографически es tampoco difícil realizar el generador seguro de los números casuales, esta pregunta pierden a menudo del tipo. Así, debe hacer resaltar el generador criptográfico de los números casuales--- si él es hecho mal, él puede es fácil hacerse el elemento más vulnerable del sistema.

 

El grado, abastecido de la cifra, de la defensa

Los sistemas buenos criptográficos se crean así para hacer su apertura por un asunto lo más posible difícil. Se puede construir los sistemas, que en la práctica es imposible abrir (aunque demostrar el hecho este no es posible habitualmente). No es necesario Además los esfuerzos muy grandes para la realización. La única cosa que es necesario--- es la exactitud y los conocimientos básicos. No hay perdón al elaborador, si él ha dejado la posibilidad para la apertura del sistema. Todos los mecanismos, que pueden usarse para la fractura del sistema es necesario задокументировать y hacer saber a los usuarios finales.

Es teorético, cualquiera шифровальный el algoritmo con el uso de la llave puede ser abierto por el método del exceso de todos los significados de la llave. Si la llave se forma por el método de la fuerza bruta (brute force), la potencia exigida del ordenador crece экспоненциально con el aumento de la longitud de la llave. La llave de la longitud en 32 pala exige 2^32 (cerca de 10^9) los pasos. Tal tarea bajo la fuerza se decide a cualquier diletante en el ordenador de casa. Los sistemas con la llave 40-de bit (por ejemplo, la variante de exportación americana del algoritmo RC4) exigen 2^40 pasos--- tales potencias informáticas hay en la mayoría de las universidades y hasta en las compañías pequeñas. Los sistemas con las llaves 56-de bit (DES) exigen para la apertura de los esfuerzos visibles, pueden ser fácilmente abiertos sin embargo por medio de los aparatos especiales. El coste de tales aparatos es considerable, pero es accesible para la mafia, las grandes compañías y los gobiernos. Las llaves de la longitud 64 pala en el momento presente, probablemente, pueden ser abiertas por los grandes estados y ya en próximo algunos años serán accesibles para la apertura criminal организацими, las grandes compañías y los estados pequeños. Las llaves de la longitud de 80 palas pueden hacerse en el futuro vulnerables. Las llaves de la longitud de 128 palas se quedarán es probable inaccesible para la apertura el método de la fuerza bruta en el futuro visible. Se puede usar y unas llaves más largas. En el límite es fácil conseguir que la energía exigida para la apertura (contando que a un paso gasta mínimo квантовомеханический el cuanto de la energía) supere la masa del sol o el universo.

Sin embargo, la longitud de la llave esto todavía no todo. Se puede abrir muchas cifras y sin escoger todas las combinaciones posibles. En general, es muy difícil inventar la cifra, que no es posible abrir por otro modo más eficaz. La elaboración de propias cifras puede hacerse el pasatiempo agradable, pero para las aplicaciones reales usar las cifras improvisadas no es recomendable si no sois al experto y no están seguro a 100 por ciento que hacéis.

En general, debe tenerse aparte de los algoritmos inéditos o secretos. A menudo el elaborador de tal algoritmo no está seguro de su seguridad, o seguridad depende de la confidencialidad del algoritmo. En general, ni un algoritmo, que confidencialidad depende de la confidencialidad del algoritmo no явяется seguro. En particular, teniendo el programa que cifra, se puede emplear прграммиста, que дизассемблирует ella y restablecerá el algoritmo por el método de la ingeniería de vuelta. La experiencia muestra que la mayoría de los algoritmos secretos que se han hecho posteriormente de los bienes a la comunidad, se encontraban hasta ridículo poco seguros.

Las longitudes de las llaves usadas en la criptografía con la llave abierta habitualmente considerablemente más que en los algoritmos simétricos. Aquí el problema consiste no en la selección de la llave, а en la reconstitución de la clave secreta por abierto. En caso de RSA el problema es equivalente a la descomposición en el multiplicador del número grande entero, que es la obra de los par de los números simples desconocidos. En caso de algunos otros криптосистем, el problema es equivalente al cálculo del logaritmo discreto por el módulo del número grande entero (tal tarea se considera aproximadamente a la tarea, análoga por las dificultades, de la descomposición en el multiplicador). Hay криптосистемы, que usan otros problemas.

Para dar la representación sobre el grado de la complicación de la apertura RSA, digamos, que los módulos de la longitud de 256 palas fácilmente факторизуются por los programadores regulares. Las llaves en 384 pala pueden ser abiertas por el grupo de investigación de la universidad o la compañía. Las llaves 512-de bit se encuentran al alcance de los grandes estados. Las llaves de la longitud de 768 palas no serán seguro es probable el largo tiempo. Las llaves de la longitud de 1024 palas pueden considerarse seguro hasta que sea el progreso esencial en el algoritmo факторизации; las llaves de la longitud de 2048 mayoría cuenta seguro a las décadas. Se puede sacar una información más detallada sobre las longitudes de las llaves RSA del artículo de Bruce Shnajera (Bruce Scheier).

Es importante subrayar que el grado de seguridad del sistema criptográfico está determinado por su eslabón más débil. No es posible perder del tipo ni un aspecto de la elaboración del sistema--- de la elección del algoritmo hasta la política del uso y la difusión de las llaves.

Криптоанализ y el ataque en криптосистемы

Криптоанализ es una ciencia sobre la descodificación de los mensajes codificados sin saber las llaves. Hay mucho криптоаналитических de los accesos. Algunos de más importante para los elaboradores son llevados más abajo.
  • El ataque con el conocimiento del texto sólo cifrado (ciphertext-only attack): Es la situación, cuando que ataca no sabe nada el contenido del mensaje, y a ello приходтся trabajar sólo con el texto cifrado. En la práctica, es a menudo posible hacer las suposiciones verosímiles de la estructura del texto, ya que muchos mensajes tienen los encabezamientos estandartizados. Hasta las cartas regulares y los documentos comienzan con fácilmente предсказумой la información. Es a menudo posible suponer también que algún bloque de la información contiene la palabra dada.
  • El ataque con el conocimiento del contenido del cifrado (known-plaintext attack): que Ataca sabe o puede adivinar el contenido de todo o las partes del texto cifrado. La tarea consiste en el desciframiento del otro mensaje. Se puede hacerlo o por medio del cálculo de la llave del cifrado, o pasándolo.
  • El ataque con el texto dado (chosen-plaintext attack): que Ataca tiene возможнот recibir el documento cifrado para cualquier texto, necesario a ello, pero no sabe la llave. La tarea es la posición de la llave. Algunos métodos de la cifración y, en particular, RSA, son muy vulnerables para los ataques de este tipo. Al uso de tales algoritmos es necesario escrupulosamente seguir que que ataca no pueda cifrar el texto, dado por ello.
  • El ataque con el soporte (Man-in-the-middle attack): el Ataque es dirigido al cambio para los mensajes cifrados y, en particular, a la acta del cambio para las llaves. La idea consiste en lo que cuando dos partes cambian las llaves para la comunicación secreta (por ejemplo, usando la cifra De Diffi-Helmana, Diffie-Hellman), el adversario se introduce entre ellos en la línea del cambio para los mensajes. Más el adversario da cada parte las llaves. En resultado, cada uno las partes tendrá las llaves diferentes, cada uno de que es conocido al adversario. Ahora el adversario descifrará cada mensaje por la llave y luego cifrarlo por medio de otra llave ante el envío al destinatario. Las partes tendrán la ilusión de la correspondencia secreta, mientras que en realidad el adversario lee todos los mensajes.

    Por un de los modos prevenir tal tipo de los ataques consiste en lo que las partes al cambio para las llaves calculan la hesh-función criptográfica del significado de la acta del cambio (o por lo menos los significados de las llaves), firman por su algoritmo de la firma digital y mandan la firma a otra parte. El destinatario comprobará la firma y que el significado de la hesh-función coincide con el significado calculado. Tal método se usa, en particular, en el sistema Foturis (Photuris).

  • El ataque por medio del temporizador (timing attack): Este nuevo tipo de los ataques es fundado en la medida consecutiva de los tiempos gastados a la ejecución de la operación de la edificación en стенень por el módulo del número entero. Le son sujetas por lo menos las cifras siguientes: RSA, Diffi-Hellman y el método de las curvas elípticas. La información adicional miráis en el artículo original y en la multitud de artículos que han seguido.
Hay una multitud de otros ataques criptográficos y криптоаналитических de los accesos. Sin embargo llevado son más arriba, aparentemente, más importante para la elaboración práctica de los sistemas. Si alguien va a crear el algoritmo de la cifración, tiene que comprender cuestiones considerablemente más profundamente. Un de los lugares, donde es posible comenzar el estudio sistemático de la información--- es el libro admirable de Bruce Shnejera "la criptografía Aplicada" (Bruce Schneier, Applied Cryptography).

Disclaimer. Todas las opiniones llevadas aquí y las conclusiones son el punto de vista subjetivo del autor, y el autor no puede tener la responsabilidad de ellos ильность.

Discutir en el foro»



Яндекс цитирования

Subscribe Subscribe.Ru
The Family Tree of Family