Bene, per uno, la descrizione del tuo schema non è una descrizione dello schema. Questa è solo una raccolta di intenti vaghi. La descrizione di uno schema crittografico deve essere tale che, leggendo solo la descrizione, potrei scrivere un'implementazione indipendente che interagisce con la tua. Una buona descrizione è simile a questo . O che .
Inoltre, nella tua descrizione, in realtà non dici come tu, sai, crittografa le cose. Sembri alludere a qualche schema di derivazione chiave da cui ottieni "vettori" che sembrano dipendere dal segreto condiviso, ma non dai dati stessi. Ciò che questi vettori fanno e come i dati vengono crittografati e decifrati non è chiaro.
In ogni caso, progettare il proprio algoritmo crittografico è una cattiva idea per il motivo principale per cui è estremamente difficile trovare un algoritmo sicuro. La maggior parte della formazione in crittografia consiste nel comprendere proprio questo: fare un algoritmo sicuro è un'impresa difficile. La ragione concettuale per questo è che non esiste un test per la sicurezza. Il meglio che possiamo fare è scrivere una specifica completa e dettagliata (includendo un'implementazione di riferimento, vettori di test e una motivazione logica per perché potrebbe essere sicuro) e poi inviarla a un gruppo di crittografi e lascia che provino a trovare difetti. Ci vogliono dozzine di crittografi e diversi anni di impegno. Questo è il motivo per cui questo tipo di lavoro viene svolto attraverso "concorsi" organizzati come è stato fatto per AES .
Una domanda su dieci righe su security.SE non può essere considerata un'alternativa ragionevole.
Inoltre, la maggior parte delle situazioni che garantiscono la crittografia (per garantire la riservatezza dei dati) ha bisogno anche di qualcosa per garantire integrità , perché gli attaccanti sono male , non giocano "secondo le regole ", e potrebbe cercare di alterare i dati in transito, possibilmente per apprendere informazioni sui dati e le chiavi in base a come si comportano i sistemi quando si affrontano i dati modificati. L'integrità è ottenuta mediante l'utilizzo di un MAC . La combinazione di crittografia e MAC in modo sicuro è più difficile di quanto sembri , quindi, anche in questo caso, è un lavoro per i crittografi basati sulla competizione (le solite soluzioni raccomandate sono GCM e EAX , ma esiste, in effetti, un competizione per ottenere qualcosa di meglio).
E quando hai un buon protocollo (un assembly sicuro di algoritmi sicuri) che dovrebbe soddisfare i tuoi bisogni, allora non hai ancora finito; devi ancora ottenere un'implementazione che sia corretta, robusta, efficiente e (in modo cruciale) non perda informazioni. Gli attacchi di canale laterale possono essere particolarmente letali per codice imprudente nei sistemi embedded. Ancora una volta, questa è una questione di scienza e anche molta abilità, che non può essere improvvisata.
Per riassumere, hai bisogno, almeno, di un serio aiuto da un crittografo professionista (no, non sono a noleggio al momento). A meno che non ci si trovi in un caso in cui i dati che si desidera proteggere non siano interessanti, il che garantisce la massima sicurezza: nulla protegge i dati più che rendere i dati così noiosi e inutili che nessuno in realtà si preoccupa di provare ad accedervi.