Можете ли вы выполнять базовые операции EC в Java 7 без сторонней библиотеки? - PullRequest
4 голосов
/ 30 октября 2011

Java 7 поставляется с SunEC , который обеспечивает операции ECDH и ECDSA.Я пытался выполнить основные операции EC (сложение точек, скалярное умножение).

Я начинаю с

ECParameterSpec p256 = NamedCurve.getECParameterSpec("secp256r1");
ECPoint generator = p256.getGenerator();
BigInteger scalar = new BigInteger("23"); 

Но оттуда я не вижу следующего шага.Нет ECPoint.scalarMultiply() или ECPoint.add() или EllipticCurve.multiply().

Я что-то упустил, или ответ просто "вы не можете сделать это без сторонней библиотеки?"

1 Ответ

2 голосов
/ 03 ноября 2011

Вы не можете сделать это напрямую без сторонней библиотеки.Я думаю, что ситуация с эллиптическими кривыми в JCE в основном аналогична ситуации с RSA.Классы представляют собой экземпляры различных ключей и кодировок.Вы можете переключаться между кодировками и спецификациями ключей, используя KeyFactory, вы можете создавать открытые и закрытые ключи, используя KeyPairGenerator и т. Д. Но так же, как нет RSAPublicKey.exponentiate (), также не существует ECPoint.add ().Эти вещи происходят под капотом в классах Signature, KeyAgreement и Cipher.

...