Page 97 - 《软件学报》2026年第6期
P. 97
2416 软件学报 2026 年第 37 卷第 6 期
(2)
(1)
(0)
,
,
,
别将输出 [O] 0 [O] 1 [O] 2 [O] 3 发送回 , O = O +O +O +O (3) 对输出进行重构获取检测结果.
C C 通过
MalOD 系统整体可分为离线设置与在线安全推理两个阶段. 在离线设置阶段, 系统首先完成协议初始化及预
计算, 服务器集群与可信第三方交互以建立安全参数 (如公私钥及随机数种子等); 随后, 模型提供方将预训练权重
映射为秘密份额并分发至各计算节点, 完成模型的隐私保护部署. 在在线安全推理阶段, 客户端生成待检测图像的
秘密份额并发送至服务器, 4 台服务器在接收到数据后协同执行隐私保护目标检测协议. 最终, 加密的检测结果返
回至客户端进行重构. 在实际部署中, 可信第三方通常由政府监管机构、公证处或具有公信力的非营利组织担任,
仅负责系统初始化而不参与实时计算; 服务器节点可部署在不同的信任域或跨多云环境中, 以物理隔离保障非合
谋假设; 模型提供方则通过份额化权重, 实现了模型即服务 (MaaS) 的安全范式.
3.2 威胁模型
MalOD 系统采用诚实多数的恶意敌手模型, 假设 4 台服务器中至多存在一个半诚实或恶意节点, 且节点间无
合谋行为. 通过冗余参与方设计的交叉验证机制 (详见第 2.2 节), 系统可实现对于恶意敌手的检测, 并在该安全假
设下实现可中止安全性. 与文献 [14,15] 的半诚实模型 (假设服务器严格遵循协议) 不同, 本文通过增加冗余参与
方, 考虑了更强的威胁, 即参与方可能通过伪造消息、篡改中间结果或偏离协议逻辑来攻击系统, 从而导致隐私泄
露或结果失真. 此外, 本文假设客户端、模型提供者和可信第三方均为诚实实体, 且各实体之间通过安全信道完成
通信, 从而避免通信链路攻击. 在实际部署中, 4 台服务器可由不同信任域的独立组织或第三方机构托管, 如可分
别托管于不同地区的 Google Cloud 平台中 [38] , 从组织和硬件层面降低合谋概率, 从而满足诚实多数的恶意敌手模
型假设.
3.3 设计目标
MalOD 的设计目标是在保护图像和模型数据安全的同时, 高效地实现目标检测. 具体而言, 其目标包括: 正确
性, 即 MalOD 的目标检测结果应与非隐私保护下的目标检测结果一致; 安全性, 即在整个 MalOD 的数据交互和计
算过程中, 各服务器仅能获取自身持有的秘密份额, 无法推断出中间结果, 从而保护客户端图像、模型权重和检测
结果的隐私, 防止数据泄露和篡改; 高效率, 即在确保正确性和安全性的前提下, 尽量降低协议的计算开销和通信
开销.
4 安全计算原语设计
本节设计了若干新的安全计算原语, 具体包括安全向上取整函数、安全双线性插值函数、安全最近邻插值函
数以及安全边界框解码操作 (secure bounding box decoding, SBBDec), 这些原语将应用于第 5 节中.
4.1 安全向上取整函数
向上取整函数用于计算不小于其输入 x 的最小整数, 即 ⌈x⌉ = min{n ∈ Z | n ⩾ x}. 相反, 向下取整函数表示为 ⌊x⌋ =
max{n ∈ Z | n ⩽ x}. 考虑到 ⌈x⌉ = −⌊−x⌋, SCeil 可以基于 Π SFloor 进行构建.
在 SCeil 中, 每个服务器会在 Π SFloor 计算的前后各执行一次本地的符号取反操作. 整个过程中, 除一次 Π SFloor
外不需要额外的通信, 如公式 (2) 所示. SCeil 算法如算法 1 所示.
⌈ ⌉ ⌊ ⌋ ⌊ ⌋
(3)
(0)
(1)
(0)
(1)
(2)
(2)
(0)
(1)
(2)
⌈x⌉ = x + x + x + x (3) = − −(x + x + x + x ) = − −x − x − x − x (3) (2)
算法 1. 安全向上取整函数: SCeil 算法.
,
,
输入: S 0 持有 [x] 0 S 1 持有 [x] 1 S 2 持有 [x] 2 S 3 持有 [x] 3 ;
,
,
,
,
输出: S 0 获取 [z] 0 S 1 获取 [z] 1 S 2 获取 [z] 2 S 3 获取 [z] 3 .
,
,
1. S 0 、 、 S 2 和 S 3 在本地计算 [−x] 0 = −1×[x] 0 [−x] 1 = −1×[x] 1 [−x] 2 = −1×[x] 2 和 [−x] 3 = −1×[x] 3
S 1
2. [y] ,[y] ,[y] ,[y] ← Π SFloor ([−x] 0 ,[−x] 1 ,[−x] 2 ,[−x] 3 ), 其中 y = ⌊−x⌋
0
3
2
1
,
,
3. [z] 0 = −1×[y] [z] 1 = −1×[y] [z] 2 = −1×[y] [z] 3 = −1×[y] , 即 z = −y
,
0
3
1
2

