Форматы ключей
Иногда открытый ключ нужно буквально вводить руками, например, через “воздушный зазор”. Открытый ключ в ECDSA (и, кстати, в ГОСТ-подписи, но не только там) – это точка на кривой, заданной в параметрах. Речь тут про кривые, используемые в криптосистемах на практике, например, P-256. Координаты точки – это два числа X, Y (сторого говоря, два элемента соответствующего конечного поля, но это технические детали). Если разрядность 256 бит, то может показаться, что для передачи ключа придётся руками вводить 2*32 == 64 байта, что в hextext составит аж 128 знаков. Однако обычно можно ограничиться одной координатой X, а Y – вычислить из уравнения кривой. Такой способ кодирования называется сжатым представлением ключа. Единственная хитрость в том, что, так как в уравнение кривой Y входит в квадрате, координат, соответствующих данному X, пара. Это обратные по сложению элементы (всем привычные +/-). Поэтому нужно передать знак элемента, но для передачи знака достаточно одного дополнительного бита. Поэтому сжатое представление в два раза короче, но “разрядность ключа” при этом никак не страдает (страдают вычислительные затраты на принимающей ключ стороне, но этим часто можно пренебречь; иногда, впрочем, приключаются проблемы с обработкой заведомо неверных значений). Кстати, по этим же причинам ключи криптосистем с ed25519 короче в записи – они изначально “в сжатой форме”.
Адрес записки: https://dxdt.ru/2022/12/01/9345/
Похожие записки:
- Сорок лет Интернету
- Квантовая криптография и стойкость
- Автомобили-роботы из "обязательной" сети такси
- "Интеллект" LLM в повторах
- ИИ на модных LLM/VLM и задачи-картинки
- Перспективный ИИ в "разработке кода"
- Несколько комментариев "около 3d-печати"
- Набеги ботов под прикрытием AI
- ИИ с превышением
- Port knocking как инструмент управления доступом к скрытым сервисам
- Циклы и логические формулы
Написать комментарий