Ciò che cerchi è chiamato codice commutativo . Questo è non la stessa cosa di "una cifra che è commutativa" (la terminologia è confusa). Un cifrario che è commutativo è facilmente ottenibile con, ad esempio, la grande classe di cifrari di flusso che generano un flusso pseudocasuale dipendente dalla chiave e crittografa i dati da XORing che trasmettono in streaming con i dati da crittografare. Poiché XOR è commutativo, due istanze di tale crittografia possono essere applicate successivamente e quindi rimosse in qualsiasi ordine. Tuttavia , l'osservazione delle versioni crittografate fornisce troppe informazioni a chiunque non lo desideri: questa crittografia non è crittografata come credi.
In generale, un codice commutativo è un metodo di crittografia che è commutativo e eppure è abbastanza sicuro quando usato in Il protocollo a tre passaggi di Shamir . In senso lato, una tale cifra commutativa non può essere "sicura" come una normale cifra simmetrica (vedi questo ) , ma può ancora essere "abbastanza sicuro" per il protocollo a tre passaggi. Gli algoritmi noti che sembrano essere cifrari commutativi in questo senso (Pohlig-Hellman e SRA) si basano sullo stesso tipo di strumento matematico degli algoritmi di crittografia asimmetrica e di scambio di chiavi come RSA o Diffie-Hellman; corrispondentemente, non offrono alcun vantaggio prestazionale effettivo rispetto a questi tipi di algoritmi più usati.