Форматы ключей
Иногда открытый ключ нужно буквально вводить руками, например, через “воздушный зазор”. Открытый ключ в ECDSA (и, кстати, в ГОСТ-подписи, но не только там) – это точка на кривой, заданной в параметрах. Речь тут про кривые, используемые в криптосистемах на практике, например, P-256. Координаты точки – это два числа X, Y (сторого говоря, два элемента соответствующего конечного поля, но это технические детали). Если разрядность 256 бит, то может показаться, что для передачи ключа придётся руками вводить 2*32 == 64 байта, что в hextext составит аж 128 знаков. Однако обычно можно ограничиться одной координатой X, а Y – вычислить из уравнения кривой. Такой способ кодирования называется сжатым представлением ключа. Единственная хитрость в том, что, так как в уравнение кривой Y входит в квадрате, координат, соответствующих данному X, пара. Это обратные по сложению элементы (всем привычные +/-). Поэтому нужно передать знак элемента, но для передачи знака достаточно одного дополнительного бита. Поэтому сжатое представление в два раза короче, но “разрядность ключа” при этом никак не страдает (страдают вычислительные затраты на принимающей ключ стороне, но этим часто можно пренебречь; иногда, впрочем, приключаются проблемы с обработкой заведомо неверных значений). Кстати, по этим же причинам ключи криптосистем с ed25519 короче в записи – они изначально “в сжатой форме”.
Адрес записки: https://dxdt.ru/2022/12/01/9345/
Похожие записки:
- ИИ и формулы окружностей
- Квантовая криптография и криптосистемы электронной подписи
- Рендеринг для 3D-печати - пример
- Синхронное время и "тики"
- Gitea и омоглифы не в ту сторону
- TLS и подмена сертификата на jabber.ru
- Квантовая криптография и металлический контейнер
- Фольклор и квантовый компьютер
- Реплика: превращение словарных имён королей - Чарльз/Карл
- Задержки пакетов, СУБД, TCP и РЛС
- ChatGPT и Volkswagen
Написать комментарий