2016-12-02 12 views
1

Для проекта, над которым я работаю, я должен переработать шифрование зашифрованного зашифрованного AES зашифрованного ключа с помощью части ключа. Оставшееся пространство ключей для зашифрованного текста составляет 2^40.Расшифровка AES с использованием CUDA

Я хотел бы запустить дешифрование с использованием CUDA (разделить пространство ключей над ядрами GPU), но я не могу найти подходящую библиотеку CUDA AES. Мне было интересно, могут ли быть способы обойти это, например, запустить библиотеку C AES в ядре.

Глядя на this question, предполагается, что это может быть невозможно.

Другой вариант - в настоящее время у меня есть реализация в python; было бы целесообразно (учиться и) использовать pyCuda для его параллелизации или я столкнулся бы с той же проблемой, что и выше, используя попытку использовать библиотечную функцию Python AES?

Также любые альтернативные предложения для достижения того, что я пытаюсь сделать, будут очень признательны! Благодаря!

+1

Это может быть немного не по теме для SO, на мой взгляд, но в любом случае я отправляю ответ с двумя предложениями, которые у меня есть. – Taro

ответ

2

Если вы не можете найти библиотеку, которая соответствует вашим потребностям (что означает, что у вас есть реализация функций CUDA, которые вы ожидаете), вы должны выполнить свою собственную реализацию. Однако, если у вас есть источники на любом другом языке, и поскольку эта проблема кажется чистой математикой, вы должны иметь возможность писать «эквивалент» на любом другом языке. Мое предложение:

  • Сначала написать свой собственный C порт реализации Python у вас есть («классический» код CPU)
  • Затем написать адаптацию этого порта с C и CUDA C, чтобы использовать один или несколько Графические процессоры в вычислении

Обратите внимание, я сказал «адаптации» и не «переводить», так как это действительно отличается, чем просто переход от языка к другому: вы создадите проект, который использует графические процессоры в конкретном виде работы и вы должны учитывать все различия между программированием CPU и GPU. В любом случае, это может быть немного не по теме для SO, так как слишком обширна в GPGPU и недостаточно сосредоточена на конкретной проблеме с исходным кодом от вашего собственного.