Ho creato una semplice funzione crittografica bidirezionale che consente di crittografare un messaggio e decodificarlo con la stessa chiave. Ecco come funziona.
- Dividi il messaggio in un array di segmenti a 32 bit (o qualcos'altro, a seconda della lunghezza della tua chiave)
- Genera un numero casuale a 32 bit e xo tutti i segmenti con esso e aggiungilo all'inizio della matrice. (Ciò viene fatto per impedire a un utente malintenzionato di riconoscere che lo stesso messaggio o alcune parti di esso sono state inviate due volte)
- Xo tutti i segmenti con un hash della chiave e l'indice del segmento. L'indice è incluso per impedire a un utente malintenzionato di trovare pattern all'interno del messaggio in cui sono presenti 0 o altri dati noti.
Le mie domande sono:
- Esiste già una funzione bidirezionale simile?
- Ci sono dei difetti in esso, e se sì, cosa si può fare per correggerli?
Spiega in termini semplici, non sono un esperto in crittografia.