man7iss/rosenpass-bench

GitHub: man7iss/rosenpass-bench

提供 Rosenpass 后量子密钥交换在 WireGuard 上的首次系统级性能基准测试及可复现脚本。

Stars: 0 | Forks: 0

# rosenpass-bench [Rosenpass](https://github.com/rosenpass/rosenpass)(WireGuard 的后量子密钥交换)的性能基准测试。 首次发布系统级测量结果。在此之前,不存在 Rosenpass 在真实条件下的端到端基准测试。 ## 结果 | 指标 | 值 | |--------|-------| | 单节点握手 | **76 ms** | | 数据路径吞吐量开销 | **零**(通过 SIGSTOP 确认) | | PSK 轮换对吞吐量的影响 | **无**(300 秒测量) | | 50 节点握手(并行) | **619 ms**(12 ms/节点) | | 100 节点握手(2 vCPU 满载) | **2,093 ms**(21 ms/节点) | | 每节点内存占用 | **~560 KB** | | MTU 1400 时的分片 | **正常**(13 ms) | | McEliece 公钥大小 | 524,160 字节(460896 参数集) | ## 脚本 用于在任何安装了内核 WireGuard 和 Rosenpass 的 Linux 机器上重现基准测试的 Shell 脚本。 - `setup-topology.sh` — 创建两个网络命名空间,并建立内核 WireGuard 隧道 - `setup-rosenpass.sh` — 生成 Rosenpass 密钥,并在两个命名空间中启动守护进程 - `bench-baseline.sh` — 阶段 0:仅 WireGuard 的吞吐量与握手延迟 - `bench-rosenpass.sh` — 阶段 1:使用 Rosenpass 的吞吐量,300 秒轮换稳定性测试 - `bench-scaling.sh` — 阶段 2:具有 N 个节点的星型拓扑(用法:`./bench-scaling.sh 50`) - `teardown.sh` — 清理所有命名空间和守护进程 ## 环境要求 - Linux 内核 5.6+(WireGuard 模块) - `wireguard-tools`、`iperf3`、`jq` - [Rosenpass](https://github.com/rosenpass/rosenpass)(`cargo install rosenpass`) - Root 权限(网络命名空间需要 `CAP_NET_ADMIN`) ## 硬件 基准测试运行于 Hetzner CX23(2 vCPU AMD EPYC,4 GB 内存),内核 6.8,Rosenpass v0.2.2。 博客文章:[man7iss.com/posts/rosenpass-wireguard](https://man7iss.com/posts/rosenpass-wireguard)
标签:Cutter, iperf3, Linux网络命名空间, McEliece, Rosenpass, Shell脚本, VPN安全, WireGuard, 加密算法评测, 可扩展性测试, 后量子密码学, 吞吐量测试, 密钥交换, 延迟测量, 性能基准测试, 抗量子计算, 点对点加密, 系统级测试, 网络基准测试