2012-06-22 3 views
3

Как создать базовую точку или генератор для эллиптической кривой в Java?Создать базовую точку (G) эллиптической кривой для криптографии эллиптической кривой

Я работаю над разработкой пакета Java, который может быть использован для реализации алгоритмов криптографии с эллиптической кривой, и я хочу использовать свои собственные кривые. Тем не менее, я застрял в точке, где мне нужно получить базовую точку генератора для кривой, чтобы я мог иметь набор параметров домена.

Любая помощь очень ценится.

ответ

3

Учитывая эллиптическую кривую "почти прайм" порядка u = kr, вы должны:

  1. Сформировать случайная точка P
  2. Set G = kP
  3. Если G = 0 Гото 1
  4. Убедитесь, что rG не равно 0 (если оно равно 0, кривая di d не имеет порядка kr).
  5. В противном случае G является порядковой номером r.
+0

Спасибо! Не могли бы вы уточнить, что именно есть k и r? Мощность или количество очков или кофактора? В статьях, которые я читал об эллиптических кривых, использовались различные соглашения об именах. Из того, что я изображаю, k - это порядок, а r - количество очков. Я прав? Также, как установить G = kP? Извините за то, что вы такой noob. –

+1

k * r - порядок группы эллиптических кривых. r - большое простое число, k - малый множитель. Вам нужна точка порядка r, и процедура, предоставленная Rasmus, дает вам один. –

0

это то же самое для Java, C или что-то ....

Позвольте мне сначала предположим, что вы создали домен ECC с премьер-группы порядка д сами и хотите использовать его для шифрования. Затем выберите случайную координату x, затем вычислите y^2 из уравнения эллиптической кривой в форме weierstrass. Надеюсь, вы выбрали простой модуль p, который равен 3 mod 4. В этом случае определение квадратичного mod p является тривиальным, если оно существует. Если он не существует, попробуйте другой x. Мне редко требуется более двух попыток, в основном первая попытка приводит к действительному генератору уже во вновь созданных доменах.

Для этого вы можете использовать мою программу с открытым исходным кодом «Академическая подпись». Manual and link to download page. Если вы импортируете новый домен в список доменов, вы можете попробовать произвольный генератор для этого домена. Генератор проверяется при импорте в Академическую подпись. Если это не является допустимой точкой на эллиптической кривой, x-координата контрольной точки увеличивается до тех пор, пока не встретится действительная x y -координатная пара. Если впоследствии вы экспортируете домен, новый генератор будет включен в файл открытого текста параметров домена.

На этой странице ECC Domain page вы можете найти некоторые домены, которые я создал, я использовал вышеупомянутую процедуру для получения генераторов, содержащих некоторый «hex wordart».

Если вы не создали домен самостоятельно, если он имеет порядок, и если у вас уже есть генератор, используемый для него в некоторой реализации, это еще проще: Умножьте старый генератор реализаций со случайным числом, и вы получил себе новый генератор, который вы можете использовать, чтобы отделить ваше пространство ключей от других реализаций.

С уважением Michael Anders