【发布时间】:2011-03-01 12:11:27
【问题描述】:
void rijndael_enc(RIJNDAEL_context *ctx,
UINT8 *input, int inputlen, UINT8 *output)
{
int i, nblocks;
nblocks = inputlen / RIJNDAEL_BLOCKSIZE;
for (i = 0; i<nblocks; i++)
{
rijndael_encrypt(ctx, input, output);
input+= RIJNDAEL_BLOCKSIZE;
output+= RIJNDAEL_BLOCKSIZE;
}
我想并行执行这个 for 循环(使用 pthreads..),即每个块都由一个线程执行,线程数 = nblocks。我不知道如何继续..在输入和输出增加之前放置一个互斥锁是否有用?
【问题讨论】:
-
这看起来像 ECB 模式加密,你应该避免这种情况。有关图形说明,请参阅 wikipedia。
-
是的,它是 ECB 模式……我知道不建议这样做……这仅用于教育目的……我以前在这种情况下使用过 Open MP,但我不确定如何使用 pthreads..in OpenMP 我会使用#pragma omp for
标签: dependencies for-loop pthreads