SHARE THE PERSPECTIVE
Ett prestandatest behöver en enhet, en arbetsbelastning, en metod och en osäkerhetsbedömning — inte bara en siffra som verkar snabb.

Det finns ingen välgrundad, allmängiltig procentsiffra för batteriförbrukningen hos ML-KEM-768 på Android. Kostnaden beror på implementationen, telefonen, hur sessioner upprättas, hur ofta nycklar förnyas och hur nätverket beter sig. Ett snabbt kryptografiskt prestandatest på en stationär dator säger inte hur lång batteritid en komplett mobil meddelandeapp har.

Den här artikeln förklarar vad som kan beräknas utifrån standarden och vad som måste mätas. Inget batteriprestandatest av Livara på Android har utförts för den här artikeln. Förfarandet nedan är en testplan, inte ett påstående om uppmätta resultat.

Vad standarden säger oss

ML-KEM är en mekanism för nyckelinkapsling: den hjälper till att upprätta en delad hemlighet som ett protokoll kan använda för symmetrisk kryptering. Enligt FIPS 203 har ML-KEM-768 en inkapslingsnyckel på 1184 byte och en chiffertext på 1088 byte. Tillsammans omfattar dessa två objekt 2272 byte.

Den summan är inte den fullständiga storleken på en handskakning i ett meddelandeprotokoll och inte heller nödvändigtvis dess extra nätverkstrafik. Certifikat, signaturer, klassiskt nyckelmaterial, inramning, kodning, cachade nycklar och omsändningar kan alla påverka hur många byte som faktiskt skickas. ”768” är en identifierare för en parameteruppsättning, inte längden på en delad hemlighet på 768 bitar; uppsättningen är avsedd att uppnå NIST:s säkerhetskategori 3.

Storhet Fastställd av algoritmen eller uppmätt?
Inkapslingsnyckelns och chiffertextens längd Definieras av den valda parameteruppsättningen för ML-KEM
Tid för nyckelgenerering, inkapsling och dekapsling Mät för den faktiska implementationen och enheten
Byte för hela sessionsupprättandet Mät protokollet, inklusive inramning och nya försök
Sändningsfördröjning från ände till ände Mät appen och nätverket tillsammans
Energi per arbetsbelastning Mät i ett kontrollerat experiment på enhetsnivå

Uppstår kostnaden bara en gång per session?

Inte nödvändigtvis. Ett protokoll kan använda en KEM vid det första upprättandet och sedan igen vid periodiska postkvantuppdateringar av nycklar. Förändringar i gruppmedlemskap, nya enheter, misslyckade sessioner och återställning kan utlösa mer arbete. Rätt enhet är protokollhändelsen, inte antagandet att varje konversation utför exakt en KEM-operation.

Livaras publicerade LVR1-arkitektur beskriver periodiska ML-KEM-epoker vid sidan av de vanliga stegen i meddelandekedjor. Ett användbart prestandatest måste därför omfatta både meddelandehantering i stabil drift och händelser där nycklar förnyas. Det bör inte hävda att det postkvanta arbetet aldrig återkommer.

Antalet byte i en lagrad chiffertext säger i sig inte heller särskilt mycket om energi. Ett extra paket kan påverka radions beteende på ett annat sätt än några fler byte i en redan pågående överföring.

En reproducerbar mätplan för Android

1. Dokumentera miljön

Anteckna telefonmodell, Android-versionens byggnummer, appversion, version av det kryptografiska biblioteket, byggläge, batteriets tillstånd och termiskt tillstånd. Dokumentera nätverkstyp och signalförhållanden. Publicera inte privata kontouppgifter eller paketinnehåll i en prestandarapport.

2. Skilj tester av primitiver från apptester

Ett test av en kryptografisk primitiv mäter nyckelgenerering, inkapsling eller dekapsling isolerat. Ett test av hela appen mäter hur en session skapas, hur meddelanden skickas och hur appen återhämtar sig efter ett anslutningsavbrott. Redovisa båda om de finns tillgängliga; kalla inte det ena för det andra.

Gör upprepade försök och redovisa spridningen, exempelvis medianen och en hög percentil, i stället för att välja den snabbaste körningen. Uppvärmning, kompilering under körning och termisk strypning kan påverka resultaten.

3. Definiera realistiska arbetsbelastningar

  • Upprätta en ny session för direktmeddelanden.
  • Skicka ett bestämt antal meddelanden med bestämd storlek i en etablerad session.
  • Testa en dokumenterad övergång där nycklar förnyas.
  • Lägg till eller ta bort en medlem i en testgrupp, om det stöds.
  • Skicka samma bilaga under samma förhållanden.
  • Låt appen vara inaktiv under ett bestämt tidsintervall och mät bakgrundsbeteendet separat.

Använd syntetiskt innehåll och testkonton vars användare har samtyckt. Ett grupptest bör ange antalet medlemmar; ett resultat för två personer kan inte utan förklaring extrapoleras till en stor grupp.

4. Mät både energi och tid

Android Studios Power Profiler kan korrelera aktivitet med mätningar på matningsskenor i maskinvara som stöds. Google påpekar att detta är mätningar på enhetsnivå, så annan aktivitet tillför brus. Vilka mätmetoder som stöds varierar mellan enheter.

Kontrollera skärmens ljusstyrka, bakgrundsarbete, nätverksförhållanden och testets längd. Upprepa samma arbetsbelastning och jämför likvärdiga förhållanden. Om din metod inte kan isolera kryptografins bidrag ska du säga det, i stället för att tillskriva ML-KEM all batteriförbrukning.

Telefon bredvid en bärbar dator och en liten klocka i lila belysning.

Illustration av en mätuppställning, inte registrerade prestandatestresultat.

Vad bör en användbar resultattabell innehålla?

Resultatfält Exempel på information att dokumentera
Arbetsbelastning Ny session, meddelanden i etablerad session eller nyckelförnyelse
Miljö Exakt enhet, appbygge och nätverk
Försök Antal och hantering av uppvärmningskörningar
Tidsmätning Median, variation och enheter
Trafik Uppmätta byte och förhållanden vid omsändning
Energi Metod, intervall och osäkerhet
Begränsningar Vad testet inte isolerade eller omfattade

Lämna omätta celler tomma eller märk dem med ”inte uppmätt”. Ett illustrativt stapeldiagram över energi med påhittade relativa andelar är inte bevis.

Hur är det med foton och video?

Stora bilagor använder i allmänhet symmetrisk kryptering i stället för ML-KEM för varje innehållsblock. Nyckelupprättandet kan fortfarande påverka startfasen, medan filbearbetning, lagring, nätverksöverföring och logik för nya försök påverkar hela operationen. Det relativa bidraget måste mätas för den faktiska arbetsbelastningen; ”aldrig märkbart” är inte ett välgrundat generellt påstående.

Vanliga frågor

Är ML-KEM-768 alltid långsammare än P-256?

Ingen allmängiltig jämförelse gäller för alla bibliotek och all maskinvara. Jämför samma operationer under samma förhållanden och mät sedan hela hybridprotokollet separat.

Validerar en APK-kontrollsumma prestandaresultat?

Den kan identifiera exakt den fil som testades när den jämförs med en betrodd referens. Den validerar inte testmetoden, implementationens säkerhet eller energimätningen.

Bör användare stänga av kryptering för att spara batteri?

Ge inte upp ett säkerhetskrav på grund av ett prestandapåstående som saknar stöd. Identifiera först den verkliga orsaken till batteriförbrukningen och använd inställningar eller uppdateringar som stöds.

Källor

Verifiera Android-APK:n i Proof Lab
CONTINUE THE THREADPost-quantum encryption ↗Android & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗