Шифрование/дешифрование с использованием Эллиптических Кривых
ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх
Рассмотрим самый простой подход к шифрованию/дешифрованию с использованием эллиптических кривых. Задача состоит в том, чтобы зашифровать сообщение М, которое может быть представлено в виде точки на эллиптической кривой Pm (x,y).
Как и в случае обмена ключом, в системе шифрования/дешифрования в качестве параметров рассматривается эллиптическая кривая Ep (a,b) и точка G на ней. Участник B выбирает закрытый ключ nB и вычисляет открытый ключ PB = nB * G. Чтобы зашифровать сообщение Pm используется открытый ключ получателя B Pb. Участник А выбирает случайное целое положительное число k и вычисляет зашифрованное сообщение Cm, являющееся точкой на эллиптической кривой.
Cm = {k * G, Pm + k * Pb}
Чтобы дешифровать сообщение, участник В умножает первую координату точки на свой закрытый ключ и вычитает результат из второй координаты:
[COLOR="#0000ff"]PS: Cm состоится из двух точек, а значить там четыре точки есть, правильно было бы написать "умножать первую не координату а точку" [/COLOR]
Pm + k * Pb - nB * (k * G) =
Pm + k * (nB * G) - nB* (k * G) = Pm
ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх
когда дешифруют, идет вычитание, а как знаю вычитание не возможно над точками Эллиптических Кривых. Или это обычное арифметическое вычитание?
что бы не было, буду рад за любую профессиональный ответ.
Таким образом, если грубо говоря, размер кольца у вас 5, т.е. доступны числа: 0, 1, 2, 3, 4; то число -2 будет равно 3.
Т.е. преобразуете вычитание в сложение по модулю 5.
Цитата: UAS
Я, честно скажу, плохо помню криптографию. Но здесь вычитание заменяется умножением. Насколько я помню, то числа относятся к абелевой группе, а значит там применимы кольца вычета.
Таким образом, если грубо говоря, размер кольца у вас 5, т.е. доступны числа: 0, 1, 2, 3, 4; то число -2 будет равно 3.
Т.е. преобразуете вычитание в сложение по модулю 5.
Таким образом, если грубо говоря, размер кольца у вас 5, т.е. доступны числа: 0, 1, 2, 3, 4; то число -2 будет равно 3.
Т.е. преобразуете вычитание в сложение по модулю 5.
вычитание заменяется умножением или сложением?
можно еще поподробнее, например мне не нужна -2, а надо 4-2=?..
p - это как раз количество числе в группе.
Т.е. если p = 11, то
1) 2+2 = 4
2) 10+4 = 14%p = 14%11 = 3
3) 2-5 = -3 = p - 3 = 11 - 3 = 8
спасибо, это я понял. просто над отчками эллиптические кривых, вычитание вообще не делается или я не знаю.
Разницу чувствуете? Вычитания вообще, как такого, не существует. Вычитание - это то же самое, что сложение с отрицательным числом. Смотрите на это с этой стороны, а не со стороны "раз вычитание на эллиптической кривой => вычитания не существует".
Когда-то я вручную рассчитывал что-то по алгоритму Схоуфа (страниц 14 вот таких расчётов от руки), так там у меня везде было и вычитание, и сложение. Всё прекрасно считалось.
На этапе дешифрования из (Pm + k * Pb) арифметически вычитается координата X точки nB* (k * G), получаем Pm
Да, кстати, непонятно как автор собирался представлять сообщение M в виде точки Pm. Скорее всего данные арифметически добавляются на этапе шифрования как обычное число.
Да, и операции вычитания точек эллиптических кривых не существует