Bueno, para empezar, la descripción de tu esquema no es una descripción de esquema. Esto es sólo una colección de intenciones vagas. La descripción de un esquema criptográfico debe ser tal que con solo leer la descripción, pueda escribir una implementación independiente que interactúe con la suya. Una buena descripción se parece a this . O that .
Además, en su descripción, en realidad no dice cómo, ya sabe, encripta las cosas. Parece aludir a algún esquema de derivación clave del que obtiene "vectores" que parecen depender del secreto compartido, pero no de los datos en sí. No está claro qué hacen estos vectores y cómo se cifran y descifran los datos.
En cualquier caso, diseñar su propio algoritmo criptográfico es una mala idea por la razón principal de que es extremadamente difícil encontrar un algoritmo seguro. La mayor parte de la capacitación en criptografía consiste en comprender que: hacer un algoritmo seguro es una tarea difícil. La razón conceptual de esto es que no hay pruebas de seguridad. Lo mejor que podemos hacer es anotar una especificación completa y detallada (incluida una implementación de referencia, vectores de prueba y una justificación sólida para por qué podría ser segura) y luego enviarla a un grupo de criptógrafos Y que intenten encontrar defectos. Se necesitan docenas de criptógrafos y varios años de esfuerzo. Es por eso que este tipo de trabajo se realiza a través de "competiciones" organizadas como se hizo para AES .
Una pregunta de diez líneas en security.SE no puede considerarse una alternativa razonable.
Además, la mayoría de las situaciones que requieren cifrado (para garantizar la confidencialidad de los datos) también necesitan algo para garantizar la integridad , porque los atacantes son malos , no juegue "según las reglas ", y puede intentar alterar los datos en tránsito, posiblemente para aprender cosas sobre los datos y las claves en función de cómo se comportan los sistemas cuando se enfrentan a los datos alterados. La integridad se obtiene mediante el uso de un MAC . Combinar el cifrado y un MAC de forma segura es más difícil de lo que parece , así que, de nuevo, es un trabajo para criptógrafos impulsados por la competencia (las soluciones recomendadas habituales son GCM y EAX , pero existe, de hecho, un competencia para obtener algo mejor).
Y cuando tiene un buen protocolo (un conjunto seguro de algoritmos seguros) que debería satisfacer sus necesidades, entonces aún no ha terminado; aún debe obtener una implementación que sea correcta, robusta, eficiente y (de manera crucial) no filtre información. Los ataques de canal lateral pueden ser particularmente mortales para el código descuidado en sistemas integrados. Una vez más, esto es una cuestión de ciencia y también de mucha habilidad, que no se puede improvisar.
Para resumir, necesita, al menos, alguna ayuda seria de un criptógrafo profesional (no, no estoy contratado en este momento). A menos que esté en un caso en el que los datos que desea proteger no sean interesantes, lo que garantiza la máxima seguridad: nada protege los datos más que hacer que los datos sean tan aburridos e inútiles que nadie realmente se moleste en intentar acceder a ellos.