Я реализую апплет Java-карты для 2048-битного RSA. Я хочу знать, как создать пару ключей RSA с открытым показателем (e), отличным от 65537.
Карта генерирует пару ключей RSA и возвращает ее открытую экспоненту (e) и модуль (n). Но публичный показатель всегда равен 65537 (0x10001 в шестнадцатеричном формате). Мой код выглядит следующим образом
// Initialize objects for RSA Keys and Pair
objRSAPriKey = (RSAPrivateCrtKey)KeyBuilder.buildKey(KeyBuilder.TYPE_RSA_CRT_PRIVATE, KeyBuilder.LENGTH_RSA_2048, false);
objRSAPubKey = (RSAPublicKey)KeyBuilder.buildKey(KeyBuilder.TYPE_RSA_PUBLIC, KeyBuilder.LENGTH_RSA_2048, false);
objRSAKeyPair= new KeyPair(KeyPair.ALG_RSA_CRT, KeyBuilder.LENGTH_RSA_2048);
...
// Generate Key Pairs
objRSAKeyPair.genKeyPair();
objRSAPriKey = (RSAPrivateCrtKey)objRSAKeyPair.getPrivate();
objRSAPubKey = (RSAPublicKey)objRSAKeyPair.getPublic();
GetResLen = objRSAPubKey.getModulus(Rb_GetRes, BAS);
GetResLen += objRSAPubKey.getExponent(Rb_GetRes, GetResLen);
Конечно, я знаю, что эти ключи разные, потому что другие значения ключа (n, d, p, q) различаются каждый раз, когда апплет генерирует ключ. Но я хочу знать, как сгенерировать пару ключей RSA с публичной экспонентой размером 2048 бит.
Спасибо.