EC ElGamal в надувном замке для Явы

(это чисто для академических целей)

У меня есть RSA и ElGamal, реализованные с использованием надувного замка, но я не уверен, как реализовать EC ElGamal. в разделе 4.4 спецификации надувного замка говорится: «Пакет org.bouncycastle.crypto.ec содержит реализации для различных криптографических преобразований EC, таких как EC ElGamal». Однако здесь не объясняется, как его использовать.

Я дошел до использования названных кривых в генерации пары ключей

ECNamedCurveTable.getParameterSpec("prime192v1")

Но я не знаю ссылки на алгоритм, например. «AES», «RSA» для установки вызовов инициализации

KeyPairGenerator kpg = KeyPairGenerator.getInstance(algorithm, provider);

Или нужно ли что-то еще изменить при использовании ECC? Я так понимаю, ограничение размера сообщения в ECC зависит от размера кривой? приведенный выше пример - 192-битный.


person colobusgem    schedule 21.02.2015    source источник
comment
См. Соответствующий ответ о криптографии, в котором показано, как сообщение можно преобразовать в точку.   -  person Maarten Bodewes    schedule 22.02.2015
comment
И этот ответ Расмуса должен дать вам последний кусок головоломки.   -  person Maarten Bodewes    schedule 22.02.2015
comment
Эта вторая ссылка была полезной. Итак, bouncy castle не имеет встроенной кодировки, такой как метод koblitz?   -  person colobusgem    schedule 23.02.2015
comment
Я не знаю, я этого не видел, но похоже, что криптовалюта ec подверглась серьезной переработке. Лучше спросите в списке рассылки крипто-разработчиков bouncy Castle, а не здесь.   -  person Maarten Bodewes    schedule 23.02.2015
comment
Посмотрел исходный код. Я видел упоминания о кривых Коблица и поддержку точечного сжатия, но не упоминал о методе Коблица как таковом. Я попытался сделать это, используя трюк с точечным сжатием, но у меня ничего не вышло.   -  person Maarten Bodewes    schedule 23.02.2015
comment
Я присоединился к списку рассылки разработчиков и спросил там. Я посмотрю, что из этого получится. Я предполагаю, что, поскольку использование EC El Gamal напрямую обычно не используется, возможности для этого могут быть не столь развиты.   -  person colobusgem    schedule 23.02.2015
comment
Поскольку нет ничего, что напрямую нацелено на шифрование EC ElGamal (вообще нет ссылок, даже в редкой библиотеке тестирования), я думаю, что это может быть более правдой, чем вы могли ожидать ...   -  person Maarten Bodewes    schedule 23.02.2015


Ответы (1)


С ECElGamalEncryptor вы можете зашифровать только точку на кривой. На самом деле это то же самое с учебником RSA (то есть модульным возведением в степень), где вы можете зашифровать только большое целое число (меньше модуля).

Вы должны использовать такую ​​схему, как ECIES, для шифрования с помощью криптографии Elliptic Curve. ECIES в основном использует статический алгоритм Диффи-Хеллмана для шифрования сообщений.

person Maarten Bodewes    schedule 21.02.2015
comment
Я знаю, что такое ECIES. Как я уже сказал, это чисто академический вопрос, я провожу тесты на разных реализациях. Как использовать ECElGamalEncryptor? Есть ли в надувном замке функция кодирования, чтобы превратить сообщение в точку? или это встроено в двигатель? - person colobusgem; 22.02.2015
comment
Хорошо, должен признать, что я тоже сейчас застрял в этом. - person Maarten Bodewes; 22.02.2015