6
$\begingroup$

I am working on a project where I am benchmarking the 5 AES finalists (Rijndael, Twofish, Serpent, MARS and RC6) on CUDA Hardware.

My problem is that I am no experienced CUDA programmer. My approach is to find open source projects that implement these algorithms in CUDA and modify them to match my needs.

It was obviously no big problem to find Rijndael implementations. Twofish and Serpent were also no big problem. But I can't find anything about MARS and RC6. I already heard that with these two algorithms there might be some problems with royalty but I am not sure how serious this is.

Anyway, does anybody know if there is some source where I can find CUDA implementations of these algorithms? If there isn't something I would have to write them myself but I think these won't be good for Benchmarking.

$\endgroup$
4
  • 5
    $\begingroup$ Disagree with the close vote. This question is essentially about implementations of block ciphers on new hardware, which is within the scope of this site as I understand it. $\endgroup$
    – pg1989
    Commented Oct 21, 2013 at 23:40
  • 1
    $\begingroup$ @pg1989 actually the question is asking for references to existing cuda implementations of block ciphers, which is a pretty poor question. it could probably be made much better by focusing more on what you said. $\endgroup$
    – mikeazo
    Commented Oct 22, 2013 at 16:30
  • 1
    $\begingroup$ As a side-note: You should target ATI CPUs as well, those usually have higher performance for crypto. $\endgroup$ Commented Oct 23, 2013 at 7:39
  • $\begingroup$ Good point @CodesInChaos. ATI GPUs have faster on-chip integer arithmetic than NVIDIA's, which are optimized for floating point arithmetic. $\endgroup$
    – pg1989
    Commented Oct 23, 2013 at 18:42

1 Answer 1

6
$\begingroup$

I did something similar last year with SHA-3 finalists. I can tell you from personal experience that the best course of action is to find the C/C++ reference implementations and port them to CUDA. Start naively by writing a kernel that does the entire operation in one GPU thread. Once you have it working, you can optimize for the hardware.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.