punto de inicio en criptografía y encriptación [cerrado]

14

Recientemente estoy creciendo mi pasión por la seguridad / encriptación / criptografía. Sigo a algunas personas famosas en este dominio en Twitter y leo artículos en la web. Sin embargo, este tema parece profundo y cada vez que leo algo nuevo, obtengo una sobrecarga de información.

Creo que la razón de esto es que no tengo mi base correcta en esto. ¿Cuál es la mejor manera de profundizar en esto? ¿Hay algún libro para principiantes para poner un pie? Apreciaría cualquier punto de partida que me guíe hacia la dirección correcta y elegiría cosas a partir de ahí.

    
pregunta tony9099 07.11.2014 - 07:58
fuente

3 respuestas

19

Una posible ruta hacia la criptografía es a través de implementación . Tome alguna función estándar o conjunto de funciones, por ejemplo, la familia de funciones hash SHA . Desde el estándar, produce tu propio código; El estándar incluye algunos vectores de prueba que le ayudarán a verificar que su implementación sea correcta. Luego compare su código con las bibliotecas existentes, por ejemplo, OpenSSL , Crypto ++ y sphlib ; evalúe su código y vea qué podría hacer para que su código se ejecute más rápido y / o más suave. Aunque obtener una implementación rápida de la función hash no es extremadamente útil por sí mismo (ya que las implementaciones rápidas ya están disponibles gratuitamente), el ejercicio le brindará un conocimiento preciso y profundo de cómo funcionan estas funciones, y eso será una un gran activo para entender los trabajos de investigación sobre ellos.

Las funciones de hash son un buen punto de partida, ya que tienden a especificarse con precisión y no usan ninguna tecla. Una vez que haya dominado algunas funciones hash, pruebe HMAC . Luego continúe con el cifrado simétrico (especialmente RC4 , DES y 3DES , y AES ). En ese momento, tendrá algunas nociones del funcionamiento interno de algunos cifrados simétricos y, quizás más importante, sabrá cómo leer y comprender las especificaciones de algoritmos.

Otros pasos serán incursionar en criptografía asimétrica, básicamente RSA . La criptografía asimétrica requiere algunas matemáticas; Es posible que desee consultar el Manual de criptografía aplicada , que está disponible gratuitamente y es un buen libro de referencia (este libro no tiene relación alguna con la "criptografía aplicada" de Bruce Schneier (este último es un libro de introducción muy citado, pero mucho menos útil como referencia). Si desea implementar su propio RSA, el uso de un lenguaje de programación o una biblioteca que proporcione aritmética de enteros grandes hará las cosas más simples (por ejemplo, Java con java.math.BigInteger , C # / .NET 4.0 con System.Numerics.BigInteger , o alguna biblioteca externa como GMP ). Alternativamente, siga adelante y escriba su propio código de entero grande (de nuevo, un ejercicio saludable); para eso, querrá leer el capítulo 14 del Manual .

Una vez que haya realizado funciones hash, HMAC, cifrado simétrico y RSA, puede escribir su propia biblioteca SSL / TLS, comenzando con TLS 1.0 . Escribir un cliente TLS que pueda conectarse e interactuar con el servidor TLS existente le brindará un conocimiento íntimo del protocolo de enlace SSL / TLS, y podrá comprender toda la investigación sobre los ataques conocidos en SSL y cómo se solucionan (por ejemplo, BEAST, Caniche,...). Use esta respuesta como una guía de lectura sobre TLS.

Implementación no es la única forma de aprender criptografía, pero funciona.

    
respondido por el Thomas Pornin 07.11.2014 - 11:19
fuente
5

Depende de lo que estés buscando exactamente.

Para una introducción general a la seguridad, incluida la criptografía, actualmente estoy en el curso en línea gratuito enlace , que recomiendo encarecidamente. Se organiza como sesiones y la siguiente comienza en enero.

Para una discusión a nivel de principiante sobre criptografía y criptoanálisis, el Libro de códigos de Simon Singh es una buena introducción a la historia de criptografía y los desafíos del campo: enlace

Para un recorrido experto del tema, que también le proporcionará material de referencia si intenta implementar o utilizar algoritmos criptográficos, he escuchado muchas cosas buenas sobre los libros de Bruce Schneier, como Criptografía Aplicada, pero no tengo uno personalmente .

EDITAR: Aparentemente, la criptografía aplicada es antigua y ha demostrado tener muchos defectos, por lo que es mejor usar uno de sus reemplazos más nuevos, como la ingeniería de criptografía ( enlace ). Gracias por el aviso, Xander!

    
respondido por el Hadrien G. 07.11.2014 - 09:02
fuente
3

Recomiendo leer "Criptografía - Una introducción muy breve" de Fred Piper. Un pequeño libro conciso con excelente contenido para comprender los conceptos básicos de la criptografía.

    
respondido por el zyked 07.11.2014 - 10:21
fuente

Lea otras preguntas en las etiquetas