Тесту производительности нужны устройство, рабочая нагрузка, метод и оценка неопределённости, а не просто число, которое выглядит быстрым.
Для ML-KEM-768 на Android нельзя обоснованно назвать универсальный процент расхода батареи. Затраты зависят от реализации, телефона, установления сеанса, частоты обновления ключей и поведения сети. Высокая скорость криптографического теста на настольном компьютере ничего не доказывает об автономности полноценного мобильного мессенджера.
В этой статье объясняется, что можно рассчитать по стандарту, а что необходимо измерять. Для этой статьи не проводился тест расхода батареи Livara на Android. Описанная ниже процедура — это план испытаний, а не заявленный результат.
Что нам говорит стандарт
ML-KEM — это механизм инкапсуляции ключей: он помогает установить общий секрет, который протокол может использовать для симметричного шифрования. Согласно FIPS 203, в ML-KEM-768 ключ инкапсуляции занимает 1184 байта, а шифротекст — 1088 байт. Вместе эти два объекта занимают 2272 байта.
Это не полный размер обмена при установлении соединения в мессенджере и не обязательно дополнительный объём сетевого трафика. Сертификаты, подписи, классический ключевой материал, формирование кадров, кодирование, кешированные ключи и повторные передачи могут менять число фактически отправленных байтов. «768» — идентификатор набора параметров, а не длина общего секрета в 768 бит; этот набор рассчитан на категорию безопасности 3 по классификации NIST.
| Величина | Задаётся алгоритмом или требует измерения? |
|---|---|
| Длина ключа инкапсуляции и шифротекста | Определяется выбранным набором параметров ML-KEM |
| Время генерации ключей, инкапсуляции и декапсуляции | Измеряется для конкретной реализации и устройства |
| Полный объём данных при установлении сеанса | Измеряется для протокола с учётом формирования кадров и повторных попыток |
| Сквозная задержка отправки | Измеряется для приложения и сети вместе |
| Энергия на выполнение рабочей нагрузки | Измеряется в контролируемом эксперименте на уровне устройства |
Возникают ли эти затраты только один раз за сеанс?
Не обязательно. Протокол может использовать KEM при первоначальном установлении сеанса, а затем снова при периодических обновлениях постквантовых ключей. Изменения состава группы, новые устройства, неудавшиеся сеансы и восстановление могут вызывать дополнительную работу. Правильная единица учёта — событие протокола, а не предположение, что в каждой переписке выполняется ровно одна операция KEM.
В опубликованной архитектуре LVR1 Livara описаны периодические эпохи ML-KEM наряду с обычными шагами цепочек сообщений. Поэтому полезный тест производительности должен охватывать и обмен сообщениями в установившемся режиме, и события обновления ключей. Нельзя утверждать, что постквантовые операции больше никогда не повторяются.
Само по себе число байтов сохранённого шифротекста тоже мало говорит об энергозатратах. Дополнительный пакет может влиять на поведение радиомодуля иначе, чем несколько лишних байтов в уже идущей передаче.
Воспроизводимый план измерений на Android
1. Зафиксируйте окружение
Запишите модель телефона, сборку Android, версию приложения, версию криптографической библиотеки, режим сборки, состояние батареи и температурное состояние устройства. Укажите тип сети и условия приёма сигнала. Не публикуйте личные данные учётных записей или содержимое пакетов в отчёте о тестировании.
2. Разделяйте тесты примитивов и приложения
Тест криптографического примитива отдельно измеряет генерацию ключей, инкапсуляцию или декапсуляцию. Тест полноценного приложения измеряет создание сеанса, отправку сообщений и восстановление после разрыва соединения. Если доступны оба вида тестов, приведите оба; не выдавайте один за другой.
Повторяйте испытания и указывайте разброс, например медиану и высокий процентиль, вместо того чтобы выбирать самый быстрый запуск. Прогрев, компиляция во время выполнения и температурное ограничение производительности могут влиять на результаты.
3. Определите реалистичные рабочие нагрузки
- Установите новый сеанс личной переписки.
- Отправьте фиксированное число сообщений заданного размера в уже установленном сеансе.
- Протестируйте переход через документированную границу обновления ключей.
- Добавьте или удалите участника в тестовой группе, если это поддерживается.
- Отправьте одно и то же вложение в одинаковых условиях.
- Оставьте приложение без действий на фиксированное время и отдельно измерьте его поведение в фоновом режиме.
Используйте синтетическое содержимое и тестовые учётные записи с согласия их владельцев. В групповом тесте нужно указать число участников; результат для двух человек нельзя без оговорок переносить на большую группу.
4. Измеряйте не только время, но и энергию
Power Profiler в Android Studio позволяет сопоставлять активность с измерениями по линиям питания на поддерживаемом оборудовании. Google предупреждает, что это измерения на уровне устройства, поэтому другая активность вносит шум. Поддерживаемые методы измерения различаются в зависимости от устройства.
Контролируйте яркость экрана, фоновую работу, условия сети и длительность теста. Повторяйте одну и ту же рабочую нагрузку и сравнивайте сопоставимые условия. Если ваш метод не позволяет выделить вклад криптографии, прямо укажите это, а не приписывайте весь расход батареи ML-KEM.
Иллюстрация измерительной установки, а не зафиксированные результаты тестирования.
Что должна содержать полезная таблица результатов?
| Поле результата | Пример информации для записи |
|---|---|
| Рабочая нагрузка | Новый сеанс, переписка в установленном сеансе или обновление ключей |
| Окружение | Точное устройство, сборка приложения и сеть |
| Испытания | Количество и порядок учёта прогревочных запусков |
| Время | Медиана, разброс и единицы измерения |
| Трафик | Измеренный объём в байтах и условия повторной передачи |
| Энергия | Метод, интервал и неопределённость |
| Ограничения | Что тест не позволил выделить или не охватил |
Оставляйте ячейки без измерений пустыми или помечайте их «не измерено». Иллюстративная столбчатая диаграмма энергопотребления с выдуманными относительными долями не является доказательством.
А как насчёт фотографий и видео?
Для больших вложений обычно используется симметричное шифрование, а не ML-KEM для каждого блока содержимого. Установление ключа всё ещё может влиять на подготовку передачи, а обработка файлов, хранение, передача по сети и логика повторных попыток — на всю операцию в целом. Относительный вклад нужно измерять на реальной рабочей нагрузке; «никогда не заметно» — необоснованное универсальное утверждение.
Частые вопросы
Всегда ли ML-KEM-768 медленнее P-256?
Универсального сравнения, применимого ко всем библиотекам и оборудованию, нет. Сравните одинаковые операции в одинаковых условиях, а затем отдельно измерьте работу полного гибридного протокола.
Подтверждает ли контрольная сумма APK результаты измерения производительности?
При сравнении с доверенным эталоном она позволяет определить конкретный файл, который тестировался. Она не подтверждает корректность метода тестирования, безопасность реализации или измерение энергии.
Стоит ли пользователям отключать шифрование ради экономии батареи?
Не отказывайтесь от требования безопасности на основании неподтверждённого утверждения о производительности. Сначала установите реальный источник расхода батареи и используйте поддерживаемые настройки или обновления.



