In modalità contatore (CTR) nessun singolo blocco di cifratura dipende da un blocco precedentemente calcolato. Ogni blocco può essere calcolato indipendentemente da ogni altro blocco.
Questo potrebbe essere parallelizzato dividendo il codice in blocchi per i singoli thread da crittografare o decodificare. Supponiamo che tu abbia un blocco di 512 byte di dati che vuoi crittografare. Utilizzando AES128-CTR ci sarebbero 32 blocchi di dati da crittografare (512/16). Di 'che vuoi usare 4 thread. Dovresti inviare 8 blocchi a ciascun thread con nonce e il range di controguardi che desideri elaborare.
Una volta terminato ogni thread, è necessario rimettere insieme i byte dei dati crittografati. Quindi dovresti assicurarti di sapere quale thread ha finito e dove nel blocco di dati crittografati devi posizionarlo. Una volta che tutti i thread sono tornati e hai unito i dati, hai finito.
Se questo viene già eseguito, sarebbe a livello di implementazione. Quindi se OpenSSL ad esempio supporta la parallelizzazione del CTR, allora è possibile. Potrebbe essere necessario configurarlo (lato server) o doverlo inserire in un parametro (lato client).