隐私保护外卖配送服务方案解析
在当今数字化的时代,外卖服务已经成为人们生活中不可或缺的一部分。然而,随着外卖服务的普及,用户的隐私保护问题也日益凸显。为了解决这一问题,一种隐私保护外卖配送服务方案应运而生。本文将详细介绍该方案的核心技术和实现流程。
核心技术基础
- 曼哈顿距离 :曼哈顿距离常用于计算标准坐标系中两点的绝对轴距之和。对于两点 (A(x_1, y_1)) 和 (B(x_2, y_2)),其曼哈顿距离计算公式为 (dis(A, B) = |x_1 - x_2| + |y_1 - y_2|)。根据公式定义,曼哈顿距离必然是非负的,当两点重合时距离最小,为 0。
- 改进的点位置判断 :假设多边形 (L) 的顶点按逆时针顺序编号为 (P_0(x_0, y_0), \cdots, P_{n - 1}(x_{n - 1}, y_{n - 1})),首先找出多边形范围内的法向量 (n_1),确定多边形 (L) 的顶点,包括顶部顶点 (P_0(x_0, y_0))、底部顶点 (P_d(x_d, y_d))、最左顶点 (P_l(x_l, y_l)) 和最右顶点 (P_r(x_r, y_r))。若给定点 (P(x_p, y_p)) 满足 (x_l \leq x_p \leq x_r) 且 (y_d \leq y_p \leq y_0),选择多边形中最接近给定点 (P) 的两个顶点 (P_i(x_i, y_i)) 和 (P_{i + 1}(x_{i + 1}, y_{i + 1}))((0 \leq i \leq n - 1)),找出由 (\overrightarrow{P_iP_{i + 1}}) 和 (\overrightarrow{P_{i + 1}P}) 所围成三角形区域的法向量 (n_2)。若 (k) 为实数且 (k \geq 0),则表示点 (P(x_p, y_p)) 在多边形范围内;否则,点在多边形范围外。
系统架构与隐私威胁
- 系统组成 :服务配送系统主要由普通用户(User)、商家(TM)、配送员(DS)、边缘服务器(ES)和服务平台(SP)组成。其中,边缘服务器仅负责计算和临时存储,可作为地图提供商的位置服务器。用户通过服务平台下单,商家准备商品,配送员将商品从商家送到用户手中。服务平台保证三方的真实性,并在不泄露用户和配送员位置的情况下,选择距离给定用户和商家最近的配送员。
-
隐私威胁模型
:在该系统中,假设服务平台、商家和配送人员是半诚实且好奇的,他们在完成自身任务的同时希望了解更多信息。以下是不同实体之间的隐私威胁类型及风险等级:
| 描述 | 隐私威胁 | 风险 |
| ---- | ---- | ---- |
| SP→User/DS | 位置收集 | 高 |
| TM→User | 位置收集 | 高 |
| DS→User | 个人身份信息收集 | 中 |
| User→DS | 个人身份信息收集 | 低 |
| OutAttack→SP | 个人身份信息收集和行程数据泄露 | 高 |
为了保护用户信息,方案提出了 PP - TDS 方案,旨在实现以下安全属性:
-
数据机密性
:传输和存储在服务器上的数据进行加密,以保证数据机密性。
-
身份验证
:确保订单来自系统用户。
-
隐私保护
:商家可获取用户订单内容信息,但不获取用户的送货地址信息。服务平台在满足用户服务需求的前提下,尽量少存储用户数据信息。配送员尽量少获取用户的个人信息。
PP - TDS 协议流程
PP - TDS 协议的设计步骤如下:
1.
商家操作
:商家根据自身能力设置订单范围,并将餐饮列表上传到服务平台,同时将其位置上传到边缘服务器。
2.
配送员操作
:配送员上线后,定期将其位置上传到边缘服务器,以便系统为其分配订单。
3.
用户操作
:用户查看商家信息并登录平台完成订单操作。选择商品信息后,使用基于 ID 的非交互式密钥协商协议计算密钥对所选商品信息进行加密并上传。
4.
平台验证
:服务平台验证用户是否在商家设定的范围内,若是则为其生成订单并发送给商家。
5.
商家处理
:商家通过非交互式密钥协商协议进行密钥验证和解密,确定是否接受订单并返回结果。
6.
订单分配
:若商家成功接收订单,服务平台计算最小曼哈顿距离,选择距离用户和商家最近的配送员,并将双方的联系信息分别返回给双方。
7.
安全通信
:用户和配送员使用基于 ID 的非交互式密钥协商协议建立安全通信,用户将收货地址信息发送给配送员。
以下是 mermaid 格式的流程图展示 PP - TDS 协议流程:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(商家设置范围并上传信息):::process
B --> C(配送员上传位置):::process
C --> D(用户下单并加密信息):::process
D --> E{平台验证用户范围}:::decision
E -->|是| F(生成订单发送给商家):::process
E -->|否| D
F --> G(商家处理订单):::process
G --> H{商家接受订单}:::decision
H -->|是| I(平台选配送员):::process
H -->|否| D
I --> J(用户与配送员通信):::process
J --> K([结束]):::startend
在实现该方案时,使用了 BGN 加密和 Paillier 加密。在 BGN 实现中,用户、商家和配送人员需要计算以下组件:
[
E_i(a) = \langle a_{i1}|a_{i2}\cdots|a_{i6} \rangle = \langle E(x_i^2)|E(T - 2x_i)|E(1)|E(T - 2y_i)|E(y_i^2)|E(1) \rangle
]
[
E_i(b) = \langle b_{i1}|b_{i2}\cdots|b_{i6} \rangle = \langle E(1)|E(x_i)|E(x_i^2)|E(y_i)|E(1)|E(y_i^2) \rangle
]
其中,(E()) 是使用 BGN 方案进行的加密,然后交给边缘服务器进行计算,便于验证。
[
E_i(a) \cdot E_j(b) = E(x_i^2 + x_j(T - 2x_i) + x_j^2 + y_i^2 + y_j(T - 2y_i) + y_j^2) = E(d_{ij}^2 \bmod T)
]
这里 (T) 的选择需满足 (\forall i, j \in {1, \cdots, N}, d_{ij}^2 < T, i \neq j)。以下是基于 Paillier 的一些符号描述:
| 符号 | 描述 |
| ---- | ---- |
| (x) | 主密钥(非交互式密钥交换) |
| (s, P_{pub}) | 全局私钥和公钥(基于 IDE 的 Elgamal 签名) |
| (ID_u, ID_{tm}, ID_{ds}) | 用户、商家、配送员的身份标识 |
| (r, r_1, r_2) | 随机数 |
| ((pku, sku)) | 用户的公私钥对(非交互式密钥交换) |
| ((pktm, sktm)) | 商家的公私钥对(非交互式密钥交换) |
| ((pkds, skds)) | 配送员的公私钥对(非交互式密钥交换) |
| ((pksp, sksp)) | 服务平台的公私钥对(Paillier 加密) |
| ((pkes, skes)) | 边缘服务器的公私钥对(RSA 加密) |
| (dID_u) | 用户的签名私钥(基于 IDE 的 Elgamal 签名) |
| ((x, y)) | 坐标 |
系统初始化与业务处理
- 系统初始化 :假设存在一个可信中心(TC),负责创建相关系统参数,并在实体响应注册请求时为每个实体生成公私钥。可信中心根据安全参数 (\kappa_1) 随机选择一个长度为 (\kappa_1) 的大素数 (q),生成两个阶为 (q) 的循环群 (G_1) 和 (G_2),构建双线性对映射 (e: G_1 \times G_1 \to G_2)。选择三个安全哈希函数:(H : {0, 1}^ \to G_1),(H_1 : {0, 1}^ \to G_1),(H_2: G_1 \to Z_q^ )。随机选择 (x, s \in Z_q^ ) 分别作为主密钥和全局私钥,并安全保存,计算相应的全局公钥 (P_{pub})。公共参数为 ({G_1, G_2, e, H, H_1, H_2})。同时,可信中心根据安全参数 (\kappa_2) 计算 Paillier 加密算法的公钥 (N = p’ \cdot q’) 和私钥 ((\lambda, \mu)),其中 (p’) 和 (q’) 是根据安全参数选择的大素数,(g) 是 (Z_{N^2}^*) 的生成元。((N, g)) 和 ((\lambda, \mu)) 分别作为服务平台的公钥 (pksp) 和私钥 (sksp)。在这个阶段,可信中心完成系统中所有实体的注册,使用非交互式密钥交换协议为用户、商家和配送员生成公私钥,使用 RSA 加密为边缘服务器生成公私钥,并通过安全通道将私钥发送给相应实体。
-
业务信息生成与处理
:商家在服务平台上发布产品信息,如餐饮类型,并根据自身业务需求设置服务平台上商品的订购范围,该订购范围抽象为多边形,用顶点序列 ((x_0, y_0), (x_1, y_1), \cdots, (x_{n - 1}, y_{n - 1})) 表示。当用户登录服务平台购买商家商品时,服务平台将多边形顶点序列返回给用户。商家的位置表示为 (P_{tm}(x_{tm}, y_{tm})),商家使用相应边缘服务器的公钥对其进行加密:
[
C’ {x {tm}} = Enc_{pkes}(x_{tm}),
]
[
C’ {y {tm}} = Enc_{pkes}(y_{tm}).
]
用户信息提交与服务器处理
-
用户提交信息
:用户根据服务平台返回的多边形区域,使用上述的曼哈顿距离方法在本地判断其当前位置是否在商家的配送范围内。以用户当前实际位置 (P_u(x_u, y_u)) 为中心,选择合适的半径画圆,在圆内随机选择位置信息 (P(x_p, y_p)),确保所选位置信息和用户当前实际位置要么都在该区域内,要么都不在该区域内,用 (P(x_p, y_p)) 替换用户的实际位置 (P_u)。用户使用服务平台的公钥 (pksp) 对其位置信息 ((x_p, y_p)) 进行加密:
[
C_{-x_p} = g^{(N - x_p)} \cdot r_x^N \bmod N^2,
]
[
C_{-y_p} = g^{(N - y_p)} \cdot r_y^N \bmod N^2.
]
用户使用相应边缘服务器的公钥 (pkes) 对最接近 (P(x_p, y_p)) 的多边形顶点编号(假设为 (i))进行加密,得到密文 (C_i)。因此,用户生成的与位置相关的密文为 (C_p = C_{-x_p} || C_{-y_p} || C_i)。用户根据其私钥 (sku = xH(ID_u)) 和商家公钥 (pktm = H(ID_{tm})) 计算共享密钥 (k_{utm} = e(sku, pktm)),使用 (k_{utm}) 对其订单内容消息 (m) 进行加密得到密文 (C_m),并使用其签名私钥 (dID_u) 计算相应的签名 (\sigma)。最后,用户将 (C_p || C_m || \sigma) 发送给相应的边缘服务器。 -
服务器处理
:边缘服务器收到用户的 (C_p || C_m || \sigma) 后,使用其私钥 (skes) 解密 (C_i) 得到 (i) 的值。根据 (i) 找到两个顶点 (P_i(x_i, y_i)) 和 (P_{i + 1}(x_{i + 1}, y_{i + 1})) 并计算:
[
C_{x’} = (C_{-x_p} \cdot C_{x_{i + 1}})^{r_1} = g^{(x_{i + 1} - x_p) \cdot r_1} \cdot ((r_x \cdot r’)^{r_1})^N \bmod N^2,
]
[
C_{y’} = (C_{-y_p} \cdot C_{y_{i + 1}})^{r_2} = g^{(y_{i + 1} - y_p) \cdot r_2} \cdot ((r_y \cdot r’‘)^{r_2})^N \bmod N^2,
]
[
C_{x’‘} = C_{(x_i - x_{i + 1}) / r_1},
]
[
C_{y’‘} = C_{(y_i - y_{i + 1}) / r_2},
]
[
C = C_{x’} || C_{x’‘} || C_{y’} || C_{y’‘},
]
其中 (r_1) 和 (r_2) 是边缘服务器生成的随机数。边缘服务器将 (C || C_m || \sigma) 发送给服务平台。服务平台使用其私钥 (sksp) 解密 (C) 并计算向量 (n_2 = (x_i - x_{i + 1})(y_{i + 1} - y_p) + (x_{i + 1} - x_p)(y_{i + 1} - y_i)),使用上述改进的点位置判断方法检查用户是否在给定范围内。如果用户实际上在给定范围内,服务平台为用户生成服务订单,包括用户姓名、联系信息、订单号、取货号和密文 (C_m) 等信息,然后将订单发送给相应的商家。
商家接单与订单分配
- 商家接受用户订单 :商家收到新订单后,使用全局公钥 (P_{pub}) 验证签名 (\sigma)。如果 (\sigma) 有效,商家利用其自身私钥 (sktm) 和用户公钥 (pku) 计算共享密钥 (k_{utm} = e(xH(ID_{tm}), H(ID_u))) 来解密 (C_m),获取用户的订单内容 (m)。根据 (m),商家决定是否接受订单,并将决策结果报告给服务平台。特别地,在商家备货过程中,产品包装上的订单收据不允许打印任何关于产品的信息,而是使用相关编号代替。
-
订单分配
:服务平台收到商家确认订单的反馈后,应选择一名配送员来配送货物。根据平台服务策略,配送员应定期(例如每 5 分钟)将其当前位置 ((x_{ds}, y_{ds})) 以以下密文形式上传到边缘服务器:
[
C_{x_{ds}^2} = g^{x_{ds}^2} \cdot (r_{x_{ds}^2})^N \bmod N^2,
]
[
C_{y_{ds}^2} = g^{y_{ds}^2} \cdot (r_{y_{ds}^2})^N \bmod N^2,
]
[
C_{-x_{ds}} = g^{(N - x_{ds})x_{tm}} \cdot (r_{-x_{ds}})^N \bmod N^2,
]
[
C_{-y_{ds}} = g^{(N - y_{ds})y_{tm}} \cdot (r_{-x_{ds}})^N \bmod N^2,
]
[
C_{ds} = C_{x_{ds}^2} || C_{y_{ds}^2} || C_{-x_{ds}} || C_{-y_{ds}}.
]
边缘服务器帮助服务平台选择当前订单最合适的配送员,这里选择当前位置与商家的曼哈顿距离最小的配送员作为最合适的人选。因为边缘服务器通过使用其私钥 (skes) 解密密文 (C’ {x {tm}}) 和 (C’ {y {tm}}) 获得了商家的位置 (P_{tm}(x_{tm}, y_{tm}))。为了便于边缘服务器在已知商家位置和配送员位置密文的情况下计算商家与配送员之间的曼哈顿距离,对曼哈顿距离进行如下变换:
[
|x_1 - x_2| = \sqrt{(x_1 - x_2)^2} = \sqrt{x_1^2 - 2x_1x_2 + x_2^2}
]
[
|x_1 - x_2|^2 = x_1^2 - 2x_1x_2 + x_2^2
]
[
D = |x_{ds} - x_{tm}|^2 + |y_{ds} - y_{tm}|^2
]
边缘服务器首先使用服务平台的公钥 (pksp) 计算 (x_{tm}^2) 和 (y_{tm}^2) 的密文,得到 (C_{x_{tm}^2}) 和 (C_{y_{tm}^2}),然后通过计算以下式子得到曼哈顿距离:
[
L(DS) = (C_{x_{ds}^2} \cdot (C_{N - x_{ds}})^{2x_{tm}} \cdot C_{x_{tm}^2}) \cdot (C_{N - y_{ds}})^{2y_{tm}} \cdot C_{y_{tm}^2}).
]
假设给定范围内有 (t) 名配送员,边缘服务器应计算 (t) 个曼哈顿距离 (L(DS_1), L(DS_2), \cdots, L(DS_t)),然后将这些 (t) 个密文发送给服务平台。服务平台收到 (L(DS_1), L(DS_2), \cdots, L(DS_t)) 后,使用其私钥 (sksp) 解密得到 (t) 个曼哈顿距离,选择与商家曼哈顿距离最短的配送员承担配送任务。随后,服务平台将与配送相关的订单信息,包括订单号、昵称和取货号,传达给配送员,同时将当前订单结果,即由谁完成配送服务,告知用户。
订单配送与安全通信
- 订单配送 :用户根据自身私钥 (sku) 和配送员的公钥 (pkds) 计算临时会话密钥 (k_{uds}),同时,配送员根据自身私钥 (skds) 和用户的公钥 (pku) 计算 (k_{uds}),并通过会话密钥与用户建立安全通道。用户使用会话密钥将配送员所需的收货地址信息传达给配送员,从而完成整个外卖配送的隐私保护流程。
通过上述的核心技术和详细的流程设计,该隐私保护外卖配送服务方案在保证用户隐私的同时,实现了外卖配送服务的高效运行。从系统的各个环节来看,无论是用户信息的提交、商家的处理,还是订单的分配和配送,都充分考虑了隐私保护和数据安全,为外卖配送行业的隐私保护提供了一种可行的解决方案。
隐私保护外卖配送服务方案解析
方案优势与创新性分析
-
隐私保护优势
- 位置信息保护 :用户在下单时,通过在以自身实际位置为中心的圆内随机选取位置信息,并对其进行加密上传,避免了服务平台、商家和配送员直接获取用户的真实位置。同时,服务平台在选择配送员时,通过计算加密后的曼哈顿距离,在不泄露用户和配送员位置的情况下完成订单分配,有效防止了位置信息的泄露。
- 个人身份信息保护 :商家只能获取用户的订单内容信息,无法获取用户的送货地址信息。配送员也尽量少获取用户的个人信息,在整个配送过程中,用户的个人身份信息得到了较好的保护。
-
技术创新性
- 加密算法的应用 :方案中使用了 BGN 加密和 Paillier 加密,通过对用户、商家和配送员的相关信息进行加密处理,确保了数据在传输和存储过程中的机密性。同时,基于 ID 的非交互式密钥协商协议的使用,使得各方能够在不进行复杂交互的情况下安全地生成共享密钥,提高了系统的效率和安全性。
- 曼哈顿距离的应用 :将曼哈顿距离作为选择配送员的判断标准,并对其进行加密计算,既满足了选择最近配送员的需求,又保护了用户和配送员的位置隐私。
实际应用场景与挑战
-
实际应用场景
- 外卖配送 :该方案适用于各种外卖配送服务,能够有效保护用户的隐私,提高用户的满意度。同时,对于商家和配送员来说,也能够在不侵犯用户隐私的前提下,高效地完成订单处理和配送任务。
- 其他配送服务 :除了外卖配送,该方案还可以应用于其他需要保护用户隐私的配送服务,如快递配送、生鲜配送等。
-
面临的挑战
- 计算复杂度 :方案中使用了多种加密算法和复杂的计算过程,如曼哈顿距离的加密计算、密钥协商和验证等,这可能会增加系统的计算复杂度,导致处理时间延长,影响系统的性能。
- 安全漏洞风险 :虽然方案采用了多种安全措施,但仍然可能存在安全漏洞。例如,加密算法可能被破解,密钥可能被泄露等,这些都可能导致用户隐私信息的泄露。
未来发展趋势与展望
-
技术优化方向
- 降低计算复杂度 :未来可以研究更高效的加密算法和计算方法,降低系统的计算复杂度,提高系统的处理速度和性能。
- 增强安全性能 :不断改进加密算法和安全机制,提高系统的安全性,防止各种安全漏洞的出现。
-
应用拓展方向
- 与其他技术融合 :可以将该方案与人工智能、大数据等技术融合,进一步优化订单分配和配送路径规划,提高配送效率和服务质量。
- 拓展应用领域 :除了外卖和配送服务,还可以将该方案应用于更多需要保护用户隐私的领域,如共享出行、智能家居等。
总结
本文详细介绍了一种隐私保护外卖配送服务方案,包括核心技术、系统架构、隐私威胁模型、PP - TDS 协议流程以及各个环节的具体操作步骤。该方案通过使用多种加密算法和技术,在保证用户隐私的同时,实现了外卖配送服务的高效运行。同时,分析了方案的优势、创新性、实际应用场景和面临的挑战,并对未来的发展趋势进行了展望。
以下是整个方案的主要流程总结表格:
| 阶段 | 操作主体 | 操作内容 |
| ---- | ---- | ---- |
| 系统初始化 | 可信中心 | 创建系统参数,为各方生成公私钥 |
| 业务信息处理 | 商家 | 发布产品信息,设置服务范围,加密位置信息 |
| 用户信息提交 | 用户 | 判断位置范围,选择替代位置,加密信息并上传 |
| 服务器处理 | 边缘服务器、服务平台 | 边缘服务器处理并转发信息,服务平台验证用户范围并生成订单 |
| 商家接单 | 商家 | 验证签名,解密订单内容,决定是否接单 |
| 订单分配 | 服务平台、边缘服务器 | 配送员上传位置密文,边缘服务器计算曼哈顿距离,服务平台选择配送员 |
| 订单配送 | 用户、配送员 | 双方计算会话密钥,建立安全通道,用户传达收货地址 |
以下是 mermaid 格式的整体流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([系统初始化]):::startend --> B(商家发布信息并设置范围):::process
B --> C(用户查看信息并下单):::process
C --> D{用户位置是否在范围}:::decision
D -->|是| E(边缘服务器处理信息):::process
D -->|否| C
E --> F(服务平台生成订单):::process
F --> G(商家验证并决定接单):::process
G --> H{商家接单}:::decision
H -->|是| I(配送员上传位置):::process
H -->|否| C
I --> J(边缘服务器计算距离):::process
J --> K(服务平台选择配送员):::process
K --> L(用户与配送员建立通道):::process
L --> M(用户传达地址,完成配送):::process
M --> N([结束]):::startend
通过该方案,外卖配送行业能够在保护用户隐私的基础上,提升服务质量和效率,为用户提供更加安全、便捷的外卖配送体验。同时,该方案也为其他需要保护用户隐私的领域提供了有益的参考和借鉴。
超级会员免费看
10万+

被折叠的 条评论
为什么被折叠?



