Disclaimer obbligatorio.
veramente non dovrebbe essere il tuo.
Non è come una normale programmazione, in cui puoi reinventare la tua ruota con una forma o un colore diverso.
Ogni piccolo dettaglio può introdurre un punto debole di cui non sei nemmeno a conoscenza e che può interrompere completamente il tuo schema.
Poiché la tua abilità nel progettare crypto è (comprensibilmente) bassa, la probabilità è alta. Più sensibili sono i dati che affidi al tuo schema, o più a lungo lo usi, più alto è l'impatto.
Alta probabilità + alto impatto - > ad alto rischio.
Neanche i crittografi professionisti inventano schemi e li usano subito.
Inoltre, anche i buoni algoritmi possono essere implementati male. Ancora una volta, implementare algoritmi (anche buoni algoritmi) è qualcosa che non dovresti fare, a meno che non sia davvero necessario. Se non altro, inventare i propri algoritmi è addirittura (di gran lunga) meno necessario.
Non mettere questa roba in produzione, punto.
Non usare questa roba per le informazioni che ti interessano, periodo.
Detto questo, se vuoi progettare qualcosa solo a scopo didattico , il consiglio di @ PeterHarmann è valido.
Ho intenzione di espandere un po 'gli algoritmi simmetrici.
La maggior parte dei codici a blocchi si basa su uno dei due approcci, SPN o Feistere reti . Scegline uno.
Se utilizzi SPN, il numero del round può essere relativamente basso, ma ricorda che hai bisogno di una P-box piuttosto grande.
Devi anche progettare un modo per ottenere il tasto rotondo.
Ora arriva la parte divertente ... rompila!
Non disegno crypto, ma se dovessi, per qualsiasi ragione improbabile, controllerei che lo schema sia ragionevolmente sicuro almeno contro la crittoanalisi lineare e differenziale.
Non è un gioco da ragazzi, ma lo stai facendo a scopo di apprendimento, giusto?