¿Es seguro un cifrado de turno para el uso de la red?

No. Esto no está en lo más mínimo. No hagas esto (ni ninguna otra cosa que inventes).

Un sistema muy débil
Parece que ha reinventado el cifrado Vigenère de siglos pasados, pero el suyo está adaptado para bytes en lugar de letras. Este sistema fue rompible (con algo de esfuerzo y práctica) usando papel y lápiz hace más de 100 años. Claramente, cualquier cosa que pueda romperse hace más de un siglo, puede romperse extremadamente fácilmente hoy con las herramientas que tiene la gente.

Le enseñé a mi hija cómo romperlas cuando estaba en la secundaria. (Ahora es un éxito en algunos de los grupos de discusión de Gravity Falls hoy como consecuencia de esta habilidad).

No uses algo que inventes

Existe el eslogan de que cualquiera puede diseñar un sistema criptográfico que ellos mismos no pueden romper. Pero nadie que no sepa cómo se rompen los códigos hoy tendrá la más mínima posibilidad de desarrollar algo remotamente seguro.

Si quieres jugar con sistemas criptográficos de juguete, no dudes en hacerlo. Es divertido y puedes aprender de ello. Pero nunca, nunca despliegue tales sistemas.

No tienes que usar algo que inventas

Afortunadamente, existen sistemas criptográficos que han sido desarrollados por equipos de personas con gran experiencia tanto en la creación de códigos como en la ruptura de códigos. Y algunos de estos sistemas han sido estudiados con mucho cuidado por personas con una sólida trayectoria en la búsqueda de debilidades en los sistemas. Por lo tanto, los mejores sistemas criptográficos están disponibles para su uso hoy.

Eche un vistazo a libsodium [1], por ejemplo. Pero hay otros.

Notas al pie

[1] Introducción · libsodium

No, eso es muy inseguro, muy desaconsejable.

La clave para el cifrado seguro es la aproximación a una plataforma única (el único método de cifrado seguro demostrable). Los cifrados de bloque y los cifrados de flujo hacen esto de maneras ligeramente diferentes, pero se reduce al mismo principio básico.

El primer sistema de encriptación que escribí involucraba el hash de la frase de contraseña, usándola para generar un PRNG, tomando los primeros bytes por cuánto tiempo fue válida esa semilla, siendo los próximos bytes la próxima semilla. Todo después de eso durante la duración de la semilla se grabó con los datos.

No es un gran algoritmo, la principal fuente de fragilidad es el PRNG. La mayoría son débiles, razón por la cual este enfoque es evitado por los algoritmos fuertes que existen. Sin embargo, para un texto corto en un sistema de mensajería instantánea, tome una copia del Mersenne Twister. Con este enfoque, siempre que la vida útil de la semilla nunca sea superior a 512 bytes, tiene la seguridad suficiente para defenderse de los ataques de script kiddy.

Esquivando las cifras más importantes, eres más inteligente con el cifrado adecuado: la última versión de SALSA, AES192 y otros grandes bateadores. Las cosas de bricolaje de Cheapo no tienen valor fuera del mundo de los aficionados, necesitas este tipo de algoritmos.

Su método propuesto se puede descifrar fácilmente. No te sientas mal; a menos que seas un especialista en criptografía, es casi seguro que cualquier algoritmo criptográfico que se te ocurra será débil. Use un algoritmo existente y una biblioteca de implementación existente.

Si. Si su mensaje es lo suficientemente largo (aproximadamente 50 caracteres), es fácil calcular la frecuencia de cada letra. Al comparar la frecuencia de las letras de su mensaje y la frecuencia de las letras en un idioma determinado, es posible determinar su turno y, por lo tanto, encontrar su mensaje. Esto se llama análisis de frecuencia.

Pruebe Hill Cipher, que es resistente al análisis de frecuencia.

No, el cifrado de cambio no es seguro para el uso en red porque es un tipo de cifrado de sustitución y una computadora moderna puede descifrarlo muy rápidamente.