View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Criptografía

Cosas a leer para tener una dea sobre criptografía.

Lo primero es que hay dos tipos de cifradores, stream cyphers y block ciphers.

Son más sencillos los stream. Para comprender los stream, se recomienda entender primero el

En caso de usar block ciphers:

Para digest:

Otros temas interesantes:

Conceptos a tene en cuenta:

Para la arquitectura de un protocolo encriptado, no parece mala idea el seguir el método de SSH2 (más información sobre los RFCs del SSH):

Para continuar estudiando sobre el tema, se puede usar como guía esta ponencia sobre "Modern Stream Ciphers".

Comparativas entre diferentes ciphers:


NOTA: la idea inicial del orden de estudio es de aquí.

Implementaciones:



Notas adicionales sobre el uso de ciphers simétricos:
  • Según el pdf de serpent (pg.8) (de aquí), hay que cambiar de clave (rekeying) antes de 2^64 bloques encriptados (es una limitación por usar bloques de 128bits, por lo que esto también ha de hacerse para AES y twofish, no sólo serpent)


Notas adicionales para passwords (de login):
  • Para guardar passwords para hacer login, se hacen aplicando una funcion hash (para no tener el "clear text"). Estas se mejoran con ciertas técnicas:
    • Usar hashes lentos (scrypt) -- NO usar md5 ni pbkdf2 (ver). scrypt es una función más moderna (y más resistente a ataques) que el bcrypt, por lo que es recomendable usar scrypt en vez de bcrypt.
    • Usar un salt antes de pasar el hash (esto es, anteponer una cadena larga conocida a cada uno de los passwords antes de calcular el hash), para evitar que funcionen las rainbow-tables genéricas.
    • Hacer "n" ciclos de hash para mejorar su comportamiento (key streching).

Recomendacioines de ciphers actuales (a Oct.2013):
Se consideran legacy los siguientes ciphers: 3DES, Kasumi, Blowfish
Se consideran legacy los siguientes hash algorithms: SHA-1, SHA-2 y RIPEMD-160