¿Cuál es su tipo favorito de codificación (encriptación)?

No sé si hay un nombre apropiado para él, pero mis amigos y yo lo llamamos “Shifty”. No es muy seguro, pero es una excelente manera de ofuscar un mensaje si solo quieres evitar espiar casual. Sin embargo, requiere que seas un mecanógrafo táctil. Así es como funciona:

Comience con los dedos en la fila de inicio de su teclado, como si se estuviera preparando para escribir, y luego mueva los dedos una tecla hacia la derecha. Entonces, en lugar de su mano izquierda sentada en ‘asdf’, ahora está sentada en ‘sdfg’; la mano derecha se mueve de “jkl;” a “kl; ‘”. Luego, simplemente escriba su mensaje.

“Este es un cifrado de muestra” se convierte en “yjod od s ds, [; r rmvtu [yopm”

Para descifrar un mensaje, puede hacer un decodificador de cifrado de sustitución para esta clave, o puede mover los dedos una tecla hacia la izquierda y escribir lo que ve. Lo que me gusta es que puede usar este cifrado en cualquier máquina con un teclado, por lo que si está en un terminal público puede ofuscar un mensaje sin tener que instalar ningún software en él.

Mi tipo favorito es “cualquiera que sea la mejor práctica actual” para la seguridad de TI, de modo que cumpla con los estándares más estrictos impuestos por los órganos rectores (por ejemplo, cumplimiento de PCI-DSS).

Para el cifrado asimétrico, el descifrado y las firmas digitales, todavía uso RSA, pero hoy en día elijo usar una clave de 4096 bits si es posible, o como segunda opción, una clave de 2048 bits. Estas claves * deben * ser generadas por una fuente de entropía de alta calidad (aleatoriedad).

Para el cifrado simétrico, mi elección actual es utilizar AES-256, en modo de encadenamiento de bloques cifrados (CBC) con un vector de inicialización (IV) generado aleatoriamente.

Para algoritmos de hashing, mi elección actual es SHA-256 o SHA-512. En el pasado, usé MD5 y SHA-1, pero estos ya no se consideran seguros porque la gente ha encontrado formas de crear “colisiones hash” (es decir, diferentes archivos que tienen el mismo valor).

Para la codificación (que es diferente del cifrado), usualmente uso Base64 para poder representar un archivo ejecutable binario, un archivo comprimido o un archivo cifrado como una cadena de caracteres “seguros” que pueden imprimirse. una sesión de terminal de texto sin estropearla, y puede incluirse de forma segura y confiable en medios de transporte ASCII de 7 bits como el correo electrónico. (Detrás de escena, los archivos adjuntos de correo electrónico casi siempre están codificados en Base64).

Un problema con todos estos tipos favoritos de cifrado y codificación es que es extremadamente difícil y poco práctico intentar hacer alguno de ellos con solo lápiz y papel. Los algoritmos son computacionalmente lo suficientemente complejos (y operan en grandes cantidades de datos) que necesito la ayuda de una computadora para usarlos. Para cantidades muy pequeñas de datos, podría hacer la codificación y decodificación Base64 con solo lápiz y papel, pero no quisiera intentarlo con RSA, AES-256, SHA-256 o SHA-512 de 4096 bits.

Soy fanático de la criptografía de curva elíptica, pero la NSA ha comenzado a cambiar (un acertijo envuelto en una curva).

Ahora estoy sentado con todos los demás esperando un consenso sobre la criptografía post-cuántica.