2015-03-24 6 views
1

Я читал эту статью на эллиптической кривой крипто и как она работает: http://arstechnica.com/security/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/Что делает функцию люка в криптографии с эллиптической кривой трудно отменить?

В статье они заявляют:

Оказывается, что если у вас есть две точки [на эллиптическая кривая], начальная точка «пунктирная» сама по себе n раз, чтобы прийти к конечной точке [на кривой], обнаружив n, когда вы знаете только конечную точку, а первая точка тяжелая.

Далее указывается, что единственный способ узнать n (если у вас есть только первая и конечная точки, и вы знаете кривую eqn), состоит в том, чтобы многократно рассчитать начальную точку, пока вы, наконец, не получите сопоставив конечный пункт.

Я думаю, что все это понимаю, но меня смущает - если n является закрытым ключом, а конечная точка соответствует открытому ключу (что, на мой взгляд, так и есть), то не принимает ли он точный такой же объем работы для вычисления открытого ключа у частного лица, так как он является частным от общественности (оба просто должны рекурсивно разделить точку на кривой)? я что-то не понимаю о том, что говорится в статье?

+0

[crypto.se] гораздо лучше подходит для такого типа вопросов. Это особенно не по теме для StackOverflow, потому что это не связано напрямую с программированием. –

+1

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он принадлежит http://crypto.stackexchange.com/ – erickson

+1

Если вы наивно вычислили B + B + B + ... n раз, это было бы слишком дорого , Но вы можете вычислить 2B = B + B, а затем 4B = 2B + 2B и т. Д., Уменьшая количество добавлений точек к логарифму экспоненты. См. Http://en.wikipedia.org/wiki/Exponentiation_by_squaring – CodesInChaos

ответ

0

EDIT: Я ранее заявил, что n не является закрытым ключом. В вашем примере n является либо личным ключом сервера, либо клиентом.

Как это работает, так это то, что для кого-то есть начальная точка.

  • Вы выбираете случайное целое K и сделать "Расставить операцию" к -кратного. Затем вы отправляете эту новую точку на сервер. (k - это ваш личный ключ)
  • Сервер делает то же самое с начальной точкой, но q -times и отправляет его вам. (q является закрытым ключом сервера)
  • Вы берете точку, которую вы получили от сервера, и «dot» это k -times. Конечной точкой будет отправная точка «пунктирная» k * q -times.
  • Сервер делает то же самое с точкой, полученной от вас. И снова его конечной точкой будет отправная точка «пунктирная» q * k -times.

Это означает конечную точку (= начальная точка «точечно» к * д шрифт Times) является общим секретом, так как все, что любой злоумышленник будет знать, является отправной точкой, отправной точкой пунктирные к-раз и начальная точка пунктирна q-раз. И, учитывая только эти данные, практически невозможно найти конечную точку как произведение k * q, если только это не известно.

EDIT: Нет, он не принимает то же самое время, чтобы вычислить K от G = Kp данных известных значений G (отправлено точка) и P (начальная точка).Подробнее в разделе комментариев и:

+0

Это звучит как Elliptic-Curve Diffie-Hellman - есть ли также асимметричный криптоалгоритм криптографии с эллиптической кривой? - Кроме того, возможно, я не полностью сформулировал свой вопрос полностью, но я предполагаю, что я хочу спросить: в вашем примере - что должно помешать злоумышленнику просто прослушивать первую передачу от меня на сервер, а затем просто усеивая известную начальную точку, пока они не достигнут правильной конечной точки? разве это еще не все операции k? – user1971524

+0

1) Нет чистого алгоритма ECC (по крайней мере, это то, что я знаю), потому что для дешифрования любого сообщения вам нужно сделать «обратную точку», но посмотрите на [ElGamal ES] (http: //en.wikipedia. орг/вики/ElGamal_encryption). – user2781994

+0

@ user1971524 2) Представьте, что ** k ** аналогично размеру самой точки. Учитывая вычислительную мощь современных компьютеров (около 10^9 операций в секунду), просто пытаемся определить k из [G = kP] (http://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication), учитывая известные значения G (отправленные точка), а P (начальная точка) займет больше времени, чем срок службы Земли; это называется проблемой дискретного логарифма эллиптической кривой. Если вы знаете, какую мощность вы хотите поднять (ваш закрытый ключ), вы можете использовать [2P = P + P; 4P = 2P + 2P ...] (http://en.wikipedia.org/wiki/Exponentiation_by_squaring) – user2781994

 Смежные вопросы

  • Нет связанных вопросов^_^