Exención de responsabilidad obligatoria.
Realmente no debe rodar su propio.
No es como la programación normal, donde puedes reinventar tu propia rueda con una forma o color diferente.
Cualquier pequeño detalle puede introducir una debilidad que ni siquiera conoces, y que puede romper completamente tu esquema.
Como su habilidad para diseñar criptografía es (comprensiblemente) baja, la probabilidad es alta. Cuanto más sensibles sean los datos que confía a su esquema, o cuanto más tiempo los utilice, mayor será el impacto.
Alta probabilidad + alto impacto - > alto riesgo.
Ni siquiera los criptógrafos profesionales inventan esquemas y los usan de inmediato.
Además, incluso los buenos algoritmos pueden implementarse mal. Una vez más, implementar algoritmos (incluso buenos algoritmos) es algo que no debes hacer, a menos que sea realmente necesario. En todo caso, inventar sus propios algoritmos es incluso (por mucho) menos necesario.
No pongas estas cosas en producción, punto.
No uses estas cosas para ninguna información que te importe, punto.
Dicho esto, si desea diseñar algo solo para fines de aprendizaje , el consejo de @HeterHarmann es válido.
Solo voy a ampliar un poco los algoritmos simétricos.
La mayoría de los cifrados de bloque se basan en dos enfoques, SPN o Redes de feistel . Elige uno.
Si vas con SPN, el número redondo puede ser relativamente bajo, pero recuerda que necesitas una caja P bastante grande.
También debe diseñar una forma de obtener la clave redonda.
Ahora viene la parte divertida ... ¡rómpelo!
No diseño criptografía, pero si tuviera que hacerlo, por alguna razón poco probable, verificaría que el esquema sea razonablemente seguro al menos contra el criptoanálisis lineal y diferencial.
No es un pedazo de pastel, pero lo estás haciendo con fines de aprendizaje, ¿no?