I was wondering if a smartcard/Javacard is able to perform ElGamal cryptography? Is it implemented anywhere, i.e. is there an API that can be used for such purposes?
Cheers!
This is certainly not certified and it's not secure against side-channel attacks but if it's for prototyping or side-channel attacks are not in the threat model, here is our implementation.
The SmartMX family of NXP supports ElGamal, it's in their public data sheets. I don't think I've seen in mentioned in any Java Card implementation though, it's not in the standard so if present, it must be in vendor supplied libs.
Probably any Smart Card with a Montgomery multiplier will be able to support ElGamal relatively efficiently. Then somebody needs to create a library (with side channel protection, certification etc.).