Выбрать главу

Немецкий математик Карл Теодор Вильгельм Вейерштрасс (1815–1897) доказал, что любая эллиптическая кривая определяется кубической кривой вида

у2 = х3 + ах2Ьх + с,

где a, b, с — вещественные числа. Для с = 0 и различных значений а и b эллиптические кривые обладают особым свойством, которое продемонстрировано на следующей странице.

Эллиптические кривые для с = 0 и различных значений а и Ь.

Важной задачей теории чисел, которую пытался решить еще Диофант, является поиск целых решений для уравнений подобного типа. Например, кубическое уравнение

у2 = x3 — 2

также можно записать в виде

x3у2 = 2.

Целое положительное решение этого уравнения равносильно тому, что натуральное число или числа находятся ровно «посередине» куба и квадрата любых других натуральных чисел. Первым из математиков на этот вопрос ответил не кто иной, как Пьер де Ферма, который доказал, что 26 — единственное число, которое удовлетворяет указанному условию, то есть х3 = 27 и у2 = 25, следовательно, единственными целыми положительными решениями этого уравнения будут у = 5 и х = 3. Чтобы продолжить эту удивительную цепочку, связывающую главных героев нашей истории, добавим, что одним из современных математических инструментов, используемых при изучении эллиптических кривых, является теория Ивасавы — тема докторской диссертации Эндрю Уайлса. Последний неспроста говорил: «В некотором смысле все мои рассуждения следуют пути, проложенному Ферма».

Немецкий математик Карл Теодор Вильгельм Вейерштрасс, внесший важный вклад в теорию эллиптических кривых. Картина Конрада Фера.

Найти решения эллиптического уравнения в большинстве случаев практически невозможно, поэтому математики изучают их на «ограниченных» пространствах чисел, которые называются модулями. Чтобы понять, о чем идет речь, вспомним о том, как мы представляем часы в сутках. Если, например, речь идет о событии, которое произошло спустя 30 часов после полуночи, то очевидно, что это событие произошло в 6 утра (следующего дня). В уме мы подсчитали 24 целых часа (сутки), перешли к следующим суткам, а затем прибавили разницу, 30–24 = 6, чтобы точно определить час, когда произошло событие. На языке математики говорят, что часы в сутках описываются арифметикой по модулю 24 (по числу часов в сутках), и в этой арифметике, как мы уже увидели, выполняется равенство 30  6. Если вместо 30 часов мы будем говорить о 38, то событие произойдет в 14 часов, следовательно, в арифметике по модулю 24 верно равенство 38  14 (и, аналогично, 24  0). Вне зависимости от того, сколько часов прошло с определенного момента, 36 или 36000, значение часа всегда будет лежать в интервале от 0 до 23. В подобной арифметике определены привычные операции сложения, вычитания, умножения и деления и результатом любой такой операции опять-таки будет одно из 24 чисел, расположенных на интервале от 0 до 23.

* * *

ЭЛЛИПТИЧЕСКИЕ КРИВЫЕ И КРИПТОГРАФИЯ

Существуют математические операции, для которых очень сложно произвести обратные операции, например, поиск простых множителей для очень больших целых чисел. В алгоритме RSA, одном из основных алгоритмов современной криптографии, это действие используется для создания ключей, которые практически невозможно взломать. Другая операция, которая считается «необратимой», — нахождение дискретного логарифма для эллиптической кривой. В 2009 году правительство США начало применять определенные алгоритмы шифрования, в которых используется это свойство, для передачи сверхсекретной информации.

* * *

Вернемся к эллиптическим уравнениям. Какие решения может иметь одно из таких уравнений, например, по модулю 2? Их может быть не более 4, а именно:

х = 0, у = 0,

х = 0, у = 1,

х = 1, у = 0,

х = 1, у = 1.

С помощью такого мощного инструмента, как модулярная арифметика, можно говорить не только об «абсолютных» решениях кубических уравнений, которые сложно обнаружить, но и о числе решений по каждому модулю. Так, любое эллиптическое уравнение определяется бесконечным E-рядом, где значением каждого элемента E1, Е2, Е3… является число решений этого уравнения по модулю 1, 2, 3 и так далее. Для уравнения, имеющего два решения по модулю 2, например (0; 0) и (1; 0), член этого ряда Е2 = 2.