2. 密钥管理基础:对称加密、非对称加密、哈希函数、数字签名

做联邦学习安全,密钥管理躲不开。

你想想看,模型参数在客户端和服务器之间来回传,没密钥保护,等于裸奔。我个人习惯,先把这四种基本工具摸透,再谈上层协议。嗯,我们来聊聊最核心的几种工具吧。

2.1 对称加密:快,但密钥怎么分?

对称加密,说白了就是加密和解密用同一把密钥。像一把钥匙开一把锁,简洁高效。

我在项目中遇到过,公司内部文件分享,要求性能优先,我就选AES(Advanced Encryption Standard)。它块大小128位,密钥长度128、192或256位。256位的一般人破不动。

核心点:对称加密的瓶颈不是你加密快不快,是你怎么把密钥安全地送给对方。

算法 密钥长度 特点
AES 128/192/256 bit 硬件加速性好,工业标准
DES 56 bit 太老,别用了
SM4 128 bit 国标,国内合规场景必选

避坑:我曾经接手一个联邦学习项目,客户端用DES加密上传本地梯度。你知道的,56位密钥,跑个彩虹表几小时就破了。我建议:AES-256起步,别偷懒。

2.2 非对称加密:公钥加密,私钥解密

非对称加密,一对钥匙:公钥公开,私钥自己藏好。可以解决密钥分发难题。

为什么非对称加密这么重要?你在联邦学习中,服务端发加密参数给客户端,用客户端公钥加密,只有客户端能解密。你想想看,密钥都不用传了。

我的习惯:RSA(Rivest-Shamir-Adleman)经典,但慎用2048位以下长度。ECC(Elliptic Curve Cryptography)更轻量,联邦学习场景里我更喜欢它。


# 伪代码:RSA 密钥生成
key = RSA.generate(2048)
public_key = key.publickey()
private_key = key
# 联邦学习中,服务端用 public_key 加密全局参数
cipher = PKCS1_OAEP.new(public_key)
ciphertext = cipher.encrypt(model_params)

这里有个细节:非对称加密慢,不是一个字节一个字节去加解密的。实际操作,常用混合加密(对称加密内容 + 非对称加密密钥),我就这么搭过。

2.3 哈希函数:数字指纹

哈希函数,把任意数据变成固定长度的摘要。数据变了,摘要一定变。不能逆向还原。这就是数字指纹。

在联邦学习里,我用哈希校验模型是否被篡改。比如客户端上传梯度后,服务端先哈希比较,不一样就直接扔掉。

常用算法:SHA-256,输出256位,碰撞概率极低。MD5就别用了,碰撞攻击太容易。

算法 输出长度 安全性
SHA-256 256 bit 高,推荐
MD5 128 bit 不安全,不要用
SHA-3 可调 新一代,抗攻击性好

避坑:哈希不是加密,它不是用来隐藏数据的。我曾经有位同事,把模型哈希值当成加密密钥去解密,折腾了一下午。记住了,哈希是校验完整性,不是保密的。

2.4 数字签名:确认身份+防抵赖

数字签名,用私钥签名,公钥验证。别人没法伪造你的签名,黑客改数据也能查出来。

流程很简单:对哈希值签名,而不是对原文签。为什么?签名本身也慢,只签摘要就够了。


# 数字签名生成
message = b"federated learning update"
hash = SHA256.new(message)
signature = private_key.sign(hash, padding.PSS(mgf=MGF1(SHA256()), salt_length=32))

# 数字签名验证
try:
    public_key.verify(hash, signature, padding.PSS(mgf=MGF1(SHA256()), salt_length=32))
    print("签名有效")
except:
    print("签名无效")

你在联邦学习里,服务端给客户端下发参数时,带上数字签名。客户端验一下,就知道是不是服务端本人发的。防止中间人调包。

我的经验:联邦学习的聚合服务器,每次下发全局模型前,我都强制加上签名。客户端不认签名的更新,直接拒绝。这套策略拦住了不少恶意注入攻击。

2.5 四种工具如何结合成联邦学习的密钥体系?

嗯,这四个东西不是孤立的。它们通常混着用。对称加密保速度,非对称加密传密钥,哈希保完整性,签名保身份。

联邦学习密钥管理基础工具箱 对称加密 AES-256 非对称加密 RSA / ECC 哈希函数 SHA-256 数字签名 私钥签名 联邦学习密钥生命周期管理 生成 → 分发 → 使用 → 更新 → 销毁 密钥保护准则 私钥绝不出设备 密钥轮换周期 ≤ 30 天 禁止明文存储 / 网络传输 四件套组合出安全联邦

小结:学完这四种工具,密钥管理的框架就立起来了。记住:对称加密负责数据加密,非对称加密负责密钥交换和数字签名,哈希负责完整性验证,数字签名负责身份认证。这四样东西,在联邦学习里缺一不可。