轻量级实用隐私保护图像掩码方案解析
立即解锁
发布时间: 2025-08-31 01:04:50 阅读量: 8 订阅数: 20 AIGC 

### 轻量级实用隐私保护图像掩码方案解析
#### 1. 相关概念与缩写
| 符号 | 描述 |
| --- | --- |
| TA | 可信权威机构 |
| ids | 物联网设备身份 |
| pkD, skD | 数据所有者的私钥和公钥 |
| pkU, skU | 数据用户的私钥和公钥 |
| rkD→U | 重加密密钥 |
| SA | 敏感区域 |
| SAx, SAy | 敏感区域左上角坐标 |
| x, y | 敏感区域的宽度和长度 |
| oriimg | 原始图像 |
| enimg | 加密图像 |
| reimg | 重加密图像 |
#### 2. 图像隐私保护流程
##### 2.1 准备与图像预处理阶段
- **系统初始化**:可信权威机构(TA)生成安全参数 n、主公共参数和主秘密密钥。然后根据主秘密密钥和物联网设备、监控云服务器以及社区数据中心的身份(ids),创建两对公私钥:{pkD, skD} 和 {pkU, skU}。此外,还需根据物联网设备和社区数据中心的密钥生成重加密秘密密钥 rkD→U,并发送给监控云服务器。
- **敏感属性设置**:摄像头所有者可根据自身需求(如车牌、人脸等)和物联网摄像头的部署位置设置需要覆盖的敏感属性。例如,家中部署的摄像头可能将人脸作为隐私区域,而门口部署的摄像头可能将车牌设置为敏感区域。然后将设置发送给物联网摄像头。
- **图像收集与敏感区域识别**:物联网设备持续运行收集图像,并通过执行 Yolo v5 识别敏感区域的位置,保存敏感区域的坐标。
##### 2.2 膜生成与图像掩码阶段
物联网设备在图像预处理阶段获取敏感区域的大小和坐标点后,根据参数 (SAx, SAy, x, y),使用 ChaCha20 - Poly1305 流加密算法生成与敏感区域大小相同的掩码膜。该算法专为移动设备设计,物联网设备计算速度快,且实验结果表明其时间消耗小于 Yolo v5,适合在物联网设备上运行。
以下是图像加密算法:
```python
# 输入:原始图像 oriimg,敏感区域的四个坐标点 (SAx, SAy, x, y)
# 输出:加密图像 enimg
def image_encryption(oriimg, SAx, SAy, x, y):
mem = [[0] * y for _ in range(x)]
for i in range(x):
for j in range(y):
mem[i][j] = ChaCha20_Poly1305(SA[i][j])
for i in range(SAx):
for j in range(SAy):
if i == SAx and j == SAy:
find_SA()
enimg = img
for i in range(x - 1):
for j in range(y - 1):
enimg[SAx + i][SAy + j] = mem[i][j]
return enimg
```
具体步骤如下:
1. 物联网设备运行 Yolo v5 对象检测算法,识别图像 oriimg 的敏感区域 SA,获取四个坐标点 SAx, SAy, x, y。敏感区域 SA 表示如下:
\[
SA =
\begin{bmatrix}
I_{SAx,SAy} & \cdots & I_{SAx,SAy+y} \\
I_{SAx + 1,SAy} & \cdots & I_{SAx + 1,SAy+y} \\
\vdots & \cdots & \vdots \\
I_{SAx + t,SAy} & \cdots & I_{SAx + t,SAy+y} \\
\vdots & \cdots & \vdots \\
I_{SAx + x,SAy} & \cdots & I_{SAx + x,SAy+y} \\
\end{bmatrix}
\]
2. 物联网设备生成与敏感区域大小相同的膜,并使用 ChaCha20 - Poly1305 流加密算法及其公钥 pkD 进行加密。
3. 物联网设备根据上述算法将膜放入图像的敏感区域,生成加密图像 enimg,然后将加密图像和四个坐标点上传到监控云服务器。
```mermaid
graph TD;
A[图像预处理] --> B[生成掩码膜];
B --> C[图像加密];
C --> D[上传加密图像和坐标];
```
##### 2.3 代理重加密阶段
监控云服务器接收到带有敏感区域大小和坐标的加密图像后,定位加密图像的敏感区域,然后对敏感区域进行代理重加密(见以下算法),将 enimg 加密为 reimg。重加密完成后,监控云服务器保存重加密图像 reimg 以供后续处理和使用。
```python
# 输入:加密图像 enimg,重加密秘密密钥 rkD→U
# 输出:第二次加密图像 reimg
def proxy_re_encryption(enimg, rkD_U):
for i in range(SAx):
for j in range(SAy):
if i == SAx:
if j == SAy:
find_SA()
for
```
0
0
复制全文
相关推荐









