# 安全多方计算之三：同态加密

## 2. 乘同态的ElGamal加密方案

ElGamal加密方案具有乘同态特性，对于E ( m 1 , r 1 ) = ( c 1 , c ’ 1 ) = ( g r 1   m o d   p , m 1 y r 1   m o d   p ) E\left(m_1, r_1\right)=\left(c_1, c’_1\right)=(g^{r_1} \bmod p, m_1y^{r^1} \bmod p)E(m1,r1)=(c1,c1)=(gr1modp,m1yr1modp)E ( m 2 , r 2 ) = ( c 2 , c ’ 2 ) = ( g r 2   m o d   p , m 2 y r 2   m o d   p ) E\left(m_2, r_2\right)=\left(c_2, c’_2\right)=(g^{r_2} \bmod p, m_2y^{r^2} \bmod p)E(m2,r2)=(c2,c2)=(gr2modp,m2yr2modp)E ( m 1 , r 1 ) E ( m 2 , r 2 ) = ( g r 1   m o d   p , m 1 y r 1   m o d   p ) × 模  p  笛卡尔积  ( g r 2   m o d   p , m 2 y r 2   m o d   p ) = ( g r 1 + r 2   m o d   p , ( m 1 m 2 ) y r 1 + r 2   m o d   p ) = E ( m 1 m 2 , r 1 + r 2 ) \begin{aligned} E\left(m_1, r_1\right) E\left(m_2, r_2\right) &= \left(g^{r_1}\bmod p, m_1y^{r_1} \bmod p\right) \times_{\text {模 } \mathrm{p} \text { 笛卡尔积 }} \left(g^{r_2}\bmod p, m_2y^{r_2} \bmod p\right) \\ &=\left(g^{r_1+r_2} \bmod p, (m_1 m_2)y^{r_1+r_2} \bmod p\right) \\ &=E\left(m_1 m_2, r_1+r_2\right) \end{aligned}E(m1,r1)E(m2,r2)=(gr1modp,m1yr1modp)× p 笛卡尔积 (gr2modp,m2yr2modp)=(gr1+r2modp,(m1m2)yr1+r2modp)=E(m1m2,r1+r2)D ( E ( m 1 , r 1 ) E ( m 2 , r 2 ) ) = m 1 m 2 D\left(E\left(m_1, r_1\right) E\left(m_2, r_2\right)\right)=m_1 m_2D(E(m1,r1)E(m2,r2))=m1m2

Eg

## 3. 加同态的Paillier加密方案

Paillier加密方案的安全性依赖于合数剩余判定假设（DCRA，Decisional Composite Residuosity Assumption），即没有多项式时间算法来区分一个模数是否是模n 2 n^2n2n nn次剩余。

Paillier加密体制如下：

Paillier加密方案具有加同态特性, 对于E ( m 1 , r 1 ) = g M 1 r 1 n   m o d   n 2 E\left(m_{1}, r_{1}\right)= g^{M^{1}} r_{1}^{n} \bmod n^{2}E(m1,r1)=gM1r1nmodn2E ( m 2 , r 2 ) = g M 2 r 2 n   m o d   n 2 E\left(m_{2}, r_{2}\right)=g^{M_{2}} r_{2}^{n} \bmod n^{2}E(m2,r2)=gM2r2nmodn2E ( m 1 , r 1 ) E ( m 2 , r 2 ) = ( g m 1 r 1 n   m o d   n 2 ) ( g m 2 r 2 n   m o d   n 2 ) = g ( m 1 + m 2 ) ( r 1 r 2 ) n   m o d   n 2 = E ( m 1 + m 2 , r 1 r 2 ) \begin{aligned} E\left(m_{1}, r_{1}\right) E\left(m_{2}, r_{2}\right) =&\left(g^{m_{1}} r_{1}^{n} \bmod n^{2}\right)\left(g^{m_{2}} r_{2}^{n} \bmod n^{2}\right) \\ = & g^{(m_{1}+m_{2})}\left(r_{1} r_{2}\right)^{n} \bmod n^{2} \\ = & E\left(m_{1}+m_{2}, r_{1} r_{2}\right) \end{aligned}E(m1,r1)E(m2,r2)===(gm1r1nmodn2)(gm2r2nmodn2)g(m1+m2)(r1r2)nmodn2E(m1+m2,r1r2)D ( E ( m 1 , r 1 ) E ( m 2 , r 2 ) ) = m 1 + m 2 D\left(E\left(m_1, r_1\right) E\left(m_2, r_2\right)\right)=m_1+m_2D(E(m1,r1)E(m2,r2))=m1+m2

## 4. 全同态加密方案

E v a l u a t e ε Evaluate_{\varepsilon}Evaluateε 表示在加密数据集上进行的运算, 输人是公钥, 许可电路集C ε C_{\varepsilon}Cε 上的电路C CC以及密文集合 Ψ = ⟨ ψ 1 , … , ψ t ⟩ \Psi=\left\langle\psi_{1}, \ldots, \psi_{t}\right\rangleΨ=ψ1,,ψt , 输出为密文ψ \psiψ

|
14天前
|

227 0
|
14天前
|

SSH：加密安全访问网络的革命性协议
SSH：加密安全访问网络的革命性协议
48 9
|
14天前
|
NoSQL 安全 MongoDB
MongoDB安全机制：认证、授权与加密
【4月更文挑战第30天】MongoDB提供全面的安全机制，包括认证（用户名/密码、LDAP、Kerberos、x.509证书）、授权（基于角色的访问控制，RBAC）和加密（TLS/SSL、透明数据加密TDE、字段级加密FLE），确保数据保密性、完整性和可用性。通过合理配置这些机制，企业可保障数据安全，应对不断变化的安全威胁。
34 0
|
14天前
|

【Go语言专栏】Go语言中的加密与安全通信
【4月更文挑战第30天】本文介绍了Go语言中的加密与安全通信。通过使用golang.org/x/crypto/ssh/terminal库实现终端加密，以及golang.org/x/net/websocket库实现WebSocket安全通信。文章展示了安装库的命令、加密操作及WebSocket通信的示例代码。此外，还列举了安全通信在数据传输加密、用户认证、密码保护和文件加密等场景的应用。掌握这些知识对开发安全的Web应用至关重要。
20 0
|
14天前
|

【专栏】保护数据安全的重要性以及安全加密算法在数据保护中的应用
【4月更文挑战第27天】在数字化时代，数据安全至关重要，关系到个人隐私、企业商业机密、国家安全及经济发展。安全加密算法（如对称加密、非对称加密和哈希算法）在保护数据方面发挥关键作用。它们应用于电子商务、金融、物联网、云存储和数字签名等领域，确保信息传输和存储的安全。面对日益复杂的挑战，我们需要持续研究和应用加密技术，提高数据安全意识，共同维护数字世界的繁荣与安全。
32 2
|
14天前
|

RSA加密算法：构筑数字世界的安全基石
【4月更文挑战第21天】
35 0
|
14天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
112 0
|
14天前
|

【现代密码学】笔记 补充7-- CCA安全与认证加密《introduction to modern cryphtography》
【现代密码学】笔记 补充7-- CCA安全与认证加密《introduction to modern cryphtography》
142 0
|
14天前
|

java MD5 32位加密
java MD5 32位加密
23 0
|
14天前
|
Java 数据安全/隐私保护
Java实现最电话号码的简单加密源码
Java实现最电话号码的简单加密源码
23 0