Рейтинг:-1

Как зашифровать с помощью закрытого ключа для ECC

флаг cn

Как известно, ECC с использованием $C_2 = r \cdot G, C_1 = M + r \cdot G$; и расшифровать с помощью $M=C_1 - К \cdot C_2$. И подпишите, используя точку $Х$: $X = k \cdot G(x_0,y_0)$. $r = x_0 \cdot K; s = 1 / k \cdot (M + r \cdot d) \mod(n)$; здесь $д$ закрытый ключ, $К$ является открытым ключом. а затем проверьте, верно ли $r \cdot G == M \cdot G / s + x \cdot K/s$.

Вот мой вопрос: могу ли я зашифровать с помощью закрытого ключа (или подписать) и получить сообщение $ млн $ напрямую по открытому ключу $К$? Вместо $r \cdot G == M \cdot G / s + x \cdot K/s$, как я могу получить что-то вроде $M = \operatorname{функция}(r,s,K,G)$ ?

Спасибо Эдвард

fgrieu avatar
флаг ng
На самом деле стандартным методом шифрования с использованием ECC является [ECIES](https://www.secg.org/sec1-v2.pdf#subsection.5.1). Стандартные методы подписи с использованием ECC включают [ECDSA](https://www.secg.org/sec1-v2.pdf#subsection.4.1) и [EC-Schnorr](https://crypto.stackexchange.com/q/ 34863/555).
kelalaka avatar
флаг in
Эээ, почему вы хотите шифровать своим закрытым ключом. Поскольку ваш открытый ключ является общедоступным, это означает, что зашифрованное сообщение может расшифровать каждый. В чем ваша настоящая проблема? Кроме того, закрытый ключ — это целое число, а открытый ключ — это точка!
флаг cn
Я пытаюсь заменить RSA на ECC в очень маленьком проекте. Если ECC не может этого сделать, я все равно могу использовать RSA для восстановления этого сообщения.
Maarten Bodewes avatar
флаг in
Если вы не можете жить с 64-байтовыми накладными расходами ECC (при условии, что размер ключа составляет 256 бит), я бы порекомендовал придерживаться RSA, хотя он менее надежен в классическом смысле и что сигнатуры, обеспечивающие восстановление сообщения, обычно не соответствуют состоянию. искусство как PSS.
Рейтинг:5
флаг vu

В криптографии с открытым ключом существует НЕТ ТАКОЙ ВЕЩИ как «зашифровать закрытым ключом». Это неправильное название со времен RSA.

Кроме того, то, что вы описываете как «M = функция (публичный ключ, подпись)», является подписью с восстановлением сообщения. Эти алгоритмы в настоящее время редки и были в значительной степени заменены подписью с приложением (одним из которых является ECDSA).

ECC, как указано в серии стандартов SEC#*, основаны на задаче дискретного логарифмирования по эллиптическим кривым.По своей природе построение перестановки произвольного размера на основе DLog значительно менее эффективно, чем построение формулы подписи, которая использует сложность DLog для предотвращения утечки секретных компонентов. Таким образом, ECC не имеет цифровой подписи с восстановлением сообщений.

флаг cn
В случае, если нам не нужно знать сообщение, прежде чем мы проверим подпись. Если мы сможем вычислить M=function(pubkey,signature), мы сможем напрямую получить M и проверить. RSA может это сделать, почему ECC не может? --- независимо от того, зачем нам это нужно, не могли бы вы рассказать, как решить эту M=func(pub,sign) в ECC?
DannyNiu avatar
флаг vu
@ Эдвард Посмотри, удовлетворительное ли это объяснение.
флаг cn
Приятно знать, что ECC не может восстанавливать сообщения. и я согласен с вами по вопросу эффективности.Тем не менее, это правда, что в некоторых случаях нам необходимо восстановление сообщений. Во-первых, хеш можно сделать, хотя это сложно. Проверенный хэш не на 100% означает, что сообщение является истинным сообщением. В моем другом случае нам нужно восстановление сообщения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.