At the end of the day, the exact choice of algorithm is down to you.
First you will need to look at the Java Encryption names spaces to see which asymmetric algo's it supports.
You will then need to look at each of those to ensure it is supported on your chosen platform.
You will then need to look at each and see whay +/-'s exist, e.g. speed, key lengths, rounds, etc. etc.
Then go test them to see which one work well on a mobile given its memory and processor speed.
Here are some articles on J2ME security;
http://developers.sun.com/mobility/allarticles/#security[
^]