Описание тега ed25519
Ed25519 - это система подписи с открытым ключом.
Ed25519 - это система подписи с открытым ключом с несколькими привлекательными функциями:
- Быстрая проверка единой подписи. Программному обеспечению требуется всего 273364 цикла для проверки подписи на широко распространенных линейках процессоров Intel Nehalem/Westmere. (Это измерение производительности предназначено для коротких сообщений; для очень длинных сообщений время проверки зависит от времени хеширования.) Nehalem и Westmere включают все процессоры Core i7, i5 и i3, выпущенные в период с 2008 по 2010 год, и большинство процессоров Xeon, выпущенных в то же время. период.
- Еще более быстрая проверка партии. Программное обеспечение выполняет пакет из 64 отдельных проверок подписей (проверка 64 подписей из 64 сообщений с использованием 64 открытых ключей) всего за 8,55 миллионов циклов, то есть менее 134000 циклов на подпись. Программное обеспечение легко помещается в кэш L1, поэтому конкуренция между ядрами незначительна: четырехъядерный процессор Westmere 2,4 ГГц проверяет 71000 подписей в секунду, сохраняя при этом максимальную задержку проверки ниже 4 миллисекунд.
- Очень быстрое подписание. Для подписи сообщения программе требуется всего 87548 циклов. Четырехъядерный процессор Westmere с частотой 2,4 ГГц подписывает 109000 сообщений в секунду.
- Генерация быстрого ключа. Генерация ключей происходит почти так же быстро, как и подписание. Существует небольшой штраф за создание ключа для получения безопасного случайного числа из операционной системы; /dev/urandom под Linux стоит около 6000 циклов.
- Высокий уровень безопасности. Эта система имеет цель безопасности 2^128; его взлом имеет ту же сложность, что и взлом NIST P-256, RSA с ~3000-битными ключами, надежные 128-битные блочные шифры и т. д. Лучшие известные атаки на самом деле требуют в среднем более 2^140 битных операций и при успехе ухудшаются квадратично вероятность по мере уменьшения количества битовых операций.
- Надежные сеансовые ключи. Подписи генерируются детерминированно; генерация ключей потребляет новую случайность, а новые подписи - нет. Это не только функция скорости, но и функция безопасности, имеющая прямое отношение к недавнему краху системы безопасности Sony PlayStation 3.
- Устойчивость к столкновениям. Коллизии хеш-функций не нарушают эту систему. Это добавляет уровень защиты от возможности слабости выбранной хеш-функции.
- Никаких секретных индексов массива. Программа никогда не считывает и не записывает данные с секретных адресов в ОЗУ; структура адресов полностью предсказуема. Таким образом, программное обеспечение невосприимчиво к атакам с синхронизацией кеша, атакам с использованием гиперпотоков и другим атакам по побочным каналам, основанным на утечке адресов через кэш ЦП.
- Никаких секретных условий отделения. Программа никогда не выполняет условных переходов на основе секретных данных; схема прыжков полностью предсказуема. Таким образом, программное обеспечение невосприимчиво к атакам по побочным каналам, основанным на утечке информации через блок предсказания ветвлений.
- Маленькие подписи. Подпись умещается в 64 байта. Эти подписи на самом деле представляют собой сжатые версии более длинных подписей; время сжатия и декомпрессии включено в подсчет циклов, указанный выше.
- Маленькие ключи. Открытые ключи занимают всего 32 байта. Снова включены времена сжатия и декомпрессии.