Математические байки – Telegram
Математические байки
4.3K subscribers
1.44K photos
15 videos
27 files
914 links
Рассказы про разную математику.

Архив: http://dev.mccme.ru/~merzon/mirror/mathtabletalks/
Download Telegram
Оказывается, что будет — и при этом образуется красивая конфигурация из 9 точек, через которых проходят три кривых, задаваемых уравнением 3 степени: это произведение трёх « вертикальных » прямых, трёх « горизонтальных », и собственно наша эллиптическая кривая.
(картинка из Цфасмана-Острика)
А доказательство ассоциативности основано на таком факте:
Пусть есть восемь точек достаточно общего положения, и мы возьмём две проходящие через них кривые третьего порядка,
F_1(x,y)=0 и F_2(x,y)=0.
Они пересекаются в девяти ( =3*3, « теорема Безу ») точках, восьми наших, плюс ещё одна девятая. Так вот, тогда любая другая кривая третьего порядка
F(x,y)=0,
проходящая через исходные восемь точек, проходит и через девятую.

И происходит это по очень простой причине: уравнения тех кривых, которые проходят через эти 8 точек, это линейные комбинации F_1 и F_2. Которые, конечно, все обращаются в ноль в общих корнях F_1 и F_2, включая девятую точку.
А вот эта картинка из статьи Н. Васильева в Кванте —
http://kvant.mccme.ru/1987/08/geksagrammy_paskalya_i_kubiche.htm
Математические байки
А вот эта картинка из статьи Н. Васильева в Кванте — http://kvant.mccme.ru/1987/08/geksagrammy_paskalya_i_kubiche.htm
Эта статья называется "Гексаграммы Паскаля и кубические кривые" — потому что из этой же "теоремы о 9 точках" следует теорема Паскаля: три точки пересечения пар прямых, продолжающих противоположные стороны вписанного шестиугольника, лежат на одной прямой.
Что, собственно, правда не только для шестиугольника, вписанного в окружность, но и в любую другую конику [=кривую второго порядка].
И получается теорема Паскаля очень просто: девять точек это шесть вершин и три точки пересечения пар противоположных сторон, а три кривых третьего порядка это (совсем вырожденные) произведения уравнений сторон
l_1 l_3 l_5 =0 и l_2 l_4 l_6 =0
и чуть менее вырожденная
S*L=0,
где S — уравнение коники (на которой лежат 6 вершин), а L=0 — уравнение прямой, проходящей через две из трёх точек пересечения (и потому по теореме о девяти точках проходящей и через третью — что и доказывает теорему Паскаля).
(Картинка из всё той же статьи Н. Васильева)
Итак, точки на эллиптической кривой можно складывать. Причём — и это важно — эта операция рациональная: если у нас есть координаты двух складываемых точек (и уравнение самой кривой), то координаты суммы через них выражаются как рациональные функции, безо всяких там корней. Потому что нахождение третьего корня кубического уравнения при известных первых двух делается через теорему Виета про коэффициент при x^2, и там нужно только складывать/вычитать/делить, но не извлекать корни.
(Кстати, удвоение точки тоже оказывается "рациональной" операцией — единственное, что нужно сказать, это что прямая PQ в этом случае заменяется на касательную к кривой.)
А раз все операции рациональные — значит, всё то же самое можно делать и над конечными полями. (Давайте на всякий случай вынесем за скобки поля характеристик 2 и 3 — чтобы не контролировать, не могли ли двойки и тройки где-нибудь пробраться в знаменатели наших выражений)...
(Продолжая вчерашнее:)
Ну и теперь понятно, как через эллиптические кривые устроить протокол Диффи-Хеллмана. Пусть у нас публично объявлена эллиптическая кривая над большим конечным полем и точка P на ней. Для создания общего секретного ключа А и Б выбирают по большому числу a и b и вычисляют aP и bP соответственно. После этого А посылает Б точку aP (открыто), а Б посылает А точку bP (тоже открыто). И А вычисляет a(bP), а Б – b(aP), и вот они получили общий секретный ключ abP. Ура!
Да — естественно, поскольку степень a (я буду писать именно «степень», а не «множитель», потому что хочу думать о точках эллиптической кривой как о группе, пусть и коммутативной) большая, то aP вычисляется не как P+P+…+P сложением a раз, а так же, как любая другая большая степень в группе — чередой удвоений (2^100 P =2 (2(…(2 P))) ), разложением a в двоичную запись и сложением соответствующих удвоений.

Собственно, если бы степень a была столь маленькой, что можно было бы до неё «досчитать» просто сложением P+P+…+P, то это же мог бы проделать и атакующий — складывать P, пока не увидит совпадающий с переданным по открытому каналу результатом aP. И всё, атакующий знает секрет a.
Естественно, что за всем этим стоит ещё безумное количество деталей — в которые я вдаваться не буду; оставлю тут только ещё две ссылки:
https://en.wikipedia.org/wiki/Curve25519 — одна конкретная эллиптическая кривая. Вот прямо явно выписанная:
https://en.wikipedia.org/wiki/Dual_EC_DRBG — а это к тому, что выбор публичной точки/кривой это вопрос тонкий... Цитата из Брюса Шнайдера, https://www.schneier.com/blog/archives/2013/12/nsa_spying_who.html :
Я не знаю, и не могу знать, так ли это — повторюсь, совсем не моя область — и что специалисты знают сейчас, шесть лет спустя. Но возможности "плохих кривых" как минимум вполне обсуждаемы: