SHARE THE PERSPECTIVE
基准测试需要明确设备、工作负载、方法和不确定性,而不只是一个看起来很快的数字。

无法为 Android 上的 ML-KEM-768 给出一个有充分依据、适用于所有情况的电池耗电百分比。其开销取决于具体实现、手机、会话建立过程、密钥刷新频率和网络行为。桌面端加密基准测试速度快,并不能说明完整移动即时通信应用的电池续航表现。

本文说明哪些数据可以依据标准计算,哪些必须通过测量获得。本文未对 Livara 进行任何 Android 电池基准测试。下文介绍的是测试计划,并非声称已经取得的测试结果。

标准能告诉我们什么

ML-KEM 是一种密钥封装机制:它帮助建立共享秘密,协议可将其用于对称加密。根据 FIPS 203,ML-KEM-768 的封装密钥为 1,184 字节,密文为 1,088 字节。这两个对象合计为 2,272 字节。

这个总数并不是消息协议完整握手的大小,也不一定等于新增的网络开销。证书、签名、传统密码学密钥材料、分帧、编码、缓存的密钥和重传,都可能改变实际发送的字节数。“768”是参数集标识符,不是指共享秘密的长度为 768 位;该参数集以 NIST 安全类别 3 为目标。

数据项 由算法确定,还是需要测量?
封装密钥和密文长度 由所选的 ML-KEM 参数集确定
密钥生成、封装和解封装耗时 针对实际实现和设备测量
完整会话建立的字节数 测量整个协议,包括分帧和重试
端到端发送延迟 同时测量应用和网络
每种工作负载的能耗 通过条件受控的设备级实验测量

每个会话只产生一次开销吗?

不一定。协议可能在初始建立时使用 KEM,也可能在定期更新后量子密钥时再次使用。群组成员变更、新设备、会话失败和恢复都可能触发更多工作。正确的计量单位是协议事件,而不是假设每段对话都恰好执行一次 KEM 操作。

Livara 已发布的 LVR1 架构描述了与常规消息链步骤并行存在的周期性 ML-KEM 纪元。因此,有用的基准测试必须同时涵盖稳定状态下的消息传递和密钥刷新事件,不应声称后量子运算永远不会再次发生。

仅凭已存储密文的字节数,也几乎无法判断能耗。额外增加一个数据包对无线通信行为的影响,可能与在已经进行的传输中增加几个字节不同。

可复现的 Android 测量计划

1. 记录环境

记录手机型号、Android 构建版本、应用版本、密码库版本、构建模式、电池状态和温度状态,同时记录网络类型和信号条件。不要在基准测试报告中公开私人账户数据或数据包内容。

2. 区分密码学原语测试和应用测试

原语测试单独测量密钥生成、封装或解封装。完整应用测试则测量建立会话、发送消息以及连接中断后的恢复过程。如果两类结果都有,应分别报告,不要把其中一类标成另一类。

进行多次试验并报告结果的分布情况,例如中位数和较高百分位数,而不是只挑选最快的一次。预热、运行时编译和温度限制导致的降频,都可能影响结果。

3. 定义贴近实际的工作负载

  • 建立新的私信会话。
  • 在已建立的会话中发送数量和大小固定的消息。
  • 测试跨越文档所述密钥刷新边界的情况。
  • 如果支持,在测试群组中添加或移除成员。
  • 在相同条件下发送同一个附件。
  • 让应用空闲一段固定时间,单独测量后台行为。

使用合成内容以及经持有者同意的测试账户。群组测试应说明成员数量,不能不加说明地将双人群组的结果推算到大型群组。

4. 同时测量能耗和时间

Android Studio 的 Power Profiler 可以在支持的硬件上关联活动与电源轨测量数据。Google 提醒,这些属于设备级测量,因此其他活动会引入噪声。不同设备支持的测量方法也有所不同。

控制屏幕亮度、后台任务、网络条件和测试时长。重复相同的工作负载,在相同条件下进行比较。如果所用方法无法单独识别密码运算的贡献,就应明确说明,而不是把所有电池消耗都归因于 ML-KEM。

紫色灯光下,一部手机放在笔记本电脑和小型手表旁。

测量装置示意图,并非已记录的基准测试结果。

有用的结果表应包含什么?

结果字段 应记录的信息示例
工作负载 新会话、已建立会话中的消息传递或密钥刷新
环境 确切的设备、应用构建版本和网络
试验 次数以及预热轮次的处理方式
时间 中位数、变化范围和单位
流量 实测字节数及重传条件
能耗 方法、时间区间和不确定性
局限 测试未能单独识别或未涵盖的内容

尚未测量的单元格应留空,或标注“未测量”。用虚构相对占比绘制的能耗示意条形图并不是证据。

照片和视频呢?

大型附件通常使用对称加密,而不是对每个内容块都使用 ML-KEM。密钥建立仍可能影响初始设置,而文件处理、存储、网络传输和重试逻辑会影响整个操作。各部分的相对贡献必须针对实际工作负载测量;“永远察觉不到”并不是一个站得住脚的普遍性结论。

常见问题

ML-KEM-768 总是比 P-256 慢吗?

不存在适用于所有密码库和硬件的统一比较结果。应在相同条件下比较相同操作,再单独测量完整的混合协议。

APK 校验和能验证性能结果吗?

与可信参考值比较时,校验和可以识别测试所用的确切文件。它不能验证测试方法、实现的安全性或能耗测量的有效性。

用户应该关闭加密来省电吗?

不要因为缺乏依据的性能说法而牺牲必要的安全要求。应先找出电池消耗的真正来源,再使用受支持的设置或更新。

资料来源

在 Proof Lab 中验证 Android APK
CONTINUE THE THREADPost-quantum encryption ↗Android & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗