Есть такая тема
[C++] Advanced Encryption Standard (Rijndael)Автор: gear nuke
Дата: 07.05.07
.
В ней выложены
исходникиАвтор: gear nuke
Дата: 07.05.07
. При первом задании ключа происходит построение
статических таблиц! Поэтому параллельно из нескольких потоков такую реализацию использоваться нельзя (речь идет об отдельном экземпляре, а не о параллельном доступе)!
Если вы хотите использовать шифрование в нескольких потоках одновременно, необходимо функцию init_tables() вынести в public и сделать статиком, а проверку
if( ! s_box[0] ) init_tables();
убрать из cpp.
Теперь вначале программы вызывайте aes::init_tables() и можете использовать реализации aes в нескольких потоках.
PS. К сожалению тема закрыта для комментариев, пришлось отдельную делать.