Эллиптические кривые: новый стандарт

RSA служил интернету десятилетиями, но сегодня всё чаще используют эллиптические кривые (ECC). Почему? Разберём идею без сложной математики.

Проблема RSA: длинные ключи

Стойкость RSA опирается на трудность разложения огромных чисел на множители. Чтобы быть надёжным сегодня, ключ RSA должен быть 2048 или 4096 бит. Это много: медленнее на телефонах, тяжелее в трафике, больше расход батареи.

Идея эллиптических кривых

Эллиптическая кривая — это особая плавная кривая, заданная уравнением вида y² = x³ + ax + b. На ней определена хитрая операция «сложения точек»: из двух точек получают третью по геометрическому правилу.

Ключевой фокус: легко вычислить точку P, сложенную саму с собой k раз (это «умножение»). Но по результату практически невозможно узнать, сколько раз складывали — это и есть секрет (приватный ключ). Такая односторонность и даёт защиту.

def curve_point(x, a, b, p):
    # y^2 = x^3 + a*x + b (mod p) — проверим, лежит ли точка на кривой
    rhs = (x**3 + a*x + b) % p
    return rhs

a, b, p = 2, 3, 97
print("Кривая: y^2 = x^3 + 2x + 3 (mod 97)")
print("Точки на кривой:")
found = 0
for x in range(p):
    rhs = curve_point(x, a, b, p)
    for y in range(p):
        if (y*y) % p == rhs:
            print(f"  ({x}, {y})")
            found += 1
    if found >= 6:
        break
print("... таких точек конечное множество, на них и строят ECC")

Главное преимущество: короче ключи

Чтобы получить тот же уровень стойкости, эллиптическим кривым нужно гораздо меньше бит:

Уровень защитыRSAECC
обычный3072 бит256 бит
высокий15360 бит512 бит

256-битный ключ ECC примерно так же надёжен, как 3072-битный RSA. Меньше данных, быстрее вычисления, экономия батареи — поэтому ECC выбирают для мобильных устройств, мессенджеров и современных TLS-соединений.

Криптография эллиптических кривых уже работает в Signal, WhatsApp, Bitcoin и большинстве сайтов с HTTPS. Это не замена идее асимметрии, а более эффективный способ её реализовать.

Вывод:

Эллиптические кривые (ECC) дают ту же стойкость, что RSA, при гораздо более коротких ключах (256 бит ECC ~ 3072 бит RSA). Это быстрее и экономичнее, поэтому ECC вытесняет RSA в мессенджерах, HTTPS и блокчейне.
Проверьте себя
1. В чём главное практическое преимущество эллиптических кривых перед RSA?
AECC не требует никаких ключей
BECC даёт ту же стойкость при гораздо более коротких ключах
CECC можно расшифровать без ключа
DECC работает только на суперкомпьютерах
Поддержать проект