SHARE THE PERSPECTIVE
Тесту продуктивності потрібні пристрій, робоче навантаження, метод і оцінка невизначеності, а не просто число, яке здається швидким.

Для 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 результати вимірювання продуктивності?

Порівняння з довіреним еталоном дає змогу визначити саме той файл, який тестували. Контрольна сума не підтверджує правильність методу тестування, безпеку реалізації або вимірювання енергії.

Чи варто користувачам вимикати шифрування заради економії заряду?

Не відмовляйтеся від вимоги безпеки на підставі непідтвердженого твердження про продуктивність. Спочатку визначте справжнє джерело споживання заряду й використовуйте підтримувані налаштування або оновлення.

Джерела

Перевірте Android APK у Proof Lab
CONTINUE THE THREADPost-quantum encryption ↗Android & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗