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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 安全多方计算之三:同态加密


1. 同态加密概述

同态加密首次由R.Rivest等人于1978年在《On data banks and privacy homomorphisms》中以隐私同态(Privacy homomorphism)的概念提出。同态性使得可以在加密数据上进行运算,从而保护用户数据隐私。

同态加密体制定义:对于加密体制三元组( G , E , D ) (G,E,D)(G,E,D),其中G GG表示密钥生成算法,E EE表示加密算法,D DD表示解密算法,称该加密体制为同态的,如果对于G GG产生的每一对密钥( e , d ) (e,d)(e,d),满足∀ m 1 , m 2 ∈ M , Pr ⁡ ( D ( E ( m 1 , e ) ⨀ C E ( m 2 , e ) , d ) = m 1 ⨀ M m 2 ) = 1 \forall m_1, m_2 \in \mathcal{M}, \quad \operatorname{Pr}\left(D(E(m_1, e) \bigodot_{\mathcal{C}} E(m_2, e), d)=m_1 \bigodot_{\mathcal{M}} m_2\right)=1m1,m2M,Pr(D(E(m1,e)CE(m2,e),d)=m1Mm2)=1其中,M \mathcal{M}M表示明文集合,C \mathcal{C}C表示对应的密文集合,⨀ M \bigodot_{\mathcal{M}}M⨀ C \bigodot_{\mathcal{C}}C分别表示明文集合与密文集合中的运算符。若对应加法运算符,称其为加同态;若对应乘法运算符,称其为乘同态

2. 乘同态的ElGamal加密方案

系统参数:随机选择一个大素数p pp,且要求p − 1 p-1p1有大素数因子,g ∈ Z p ∗ g \in \boldsymbol Z^{*}_pgZp是一个本原元(Z p Z_pZp是一个有p pp个元素的有限域,Z p ∗ Z^{*}_pZpZ p Z_pZp中的非零元构成的乘法群)

选一个随机数x ( 1 < x < p − 1 ) x(1<x<p-1)x(1<x<p1)作为私钥计算y ≡ g x   m o d   p y \equiv g^x \bmod pygxmodp作为公钥

加密C = ( c , c ′ ) C = (c,c^{'})C=(c,c),其中c ≡ g r   m o d   p , c ′ ≡ m y r   m o d   p c \equiv g^{r} \bmod p, c^{'} \equiv m y^{r} \bmod pcgrmodp,cmyrmodp

解密m ≡ ( c ′ / c x )   m o d   p m \equiv (c^{'}/c^{x}) \bmod pm(c/cx)modp

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

系统参数: p = 23 , g = 5 p=23, g=5p=23,g=5,选择x = 2 x=2x=2作为私钥,公钥y = 5 2   m o d   23 = 2 y=5^2 \bmod 23=2y=52mod23=2

对于明文消息 M = 5 M=5M=5, 选择随机数 r = 5 r=5r=5,E ( 5 , 5 ) = ( 5 5   m o d   23 , 2 5 ⋅ 5   m o d   23 ) = ( 20 , 22 ) E(5,5)=\left(5^5 \bmod 23,2^5 \cdot 5 \bmod 23\right)=(20,22)E(5,5)=(55mod23,255mod23)=(20,22)选择随机数 r = 6 r=6r=6,E ( 5 , 6 ) = ( 5 6   m o d   23 , 2 6 ⋅ 5   m o d   23 ) = ( 8 , 21 ) E(5,6)=\left(5^6 \bmod 23,2^6 \cdot 5 \bmod 23\right)=(8,21)E(5,6)=(56mod23,265mod23)=(8,21)E ( 5 , 5 ) E ( 5 , 6 ) = ( 20 × 8   m o d   23 , 22 × 21   m o d   23 ) = ( 22 , 2 ) E(5,5)E(5,6)=(20 \times 8 \bmod 23,22 \times 21 \bmod 23)=(22,2)E(5,5)E(5,6)=(20×8mod23,22×21mod23)=(22,2)可验证E ( 5 × 5 , 5 + 6 ) = ( 22 , 2 ) E(5\times 5,5+6) = (22,2)E(5×5,5+6)=(22,2)因此E ( 5 × 5 , 5 + 6 ) = E ( 5 , 5 ) E ( 5 , 6 ) E(5\times 5,5+6) = E(5,5)E(5,6)E(5×5,5+6)=E(5,5)E(5,6)

3. 加同态的Paillier加密方案

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

Paillier加密体制如下:

系统参数: 选取n = p q n=pqn=pq , 其中 p ppq qq 为两个大素数, 并且 n nn 满足 gcd ⁡ ( n , ϕ ( n ) ) = 1 \operatorname{gcd}(n, \phi(n))=1gcd(n,ϕ(n))=1, 选取 随机整数 g ∈ ( Z / n 2 Z ) g \in\left(Z / n^{2} Z\right)g(Z/n2Z) , 满足g c d ( L ( g λ   m o d   n 2 ) , n ) = 1 gcd \left(L\left(g^{\lambda} \bmod n^{2}\right), n\right)=1gcd(L(gλmodn2),n)=1 , 则公钥( n , g ) (n, g)(n,g) , 私钥λ ( n ) = lcm ⁡ ( ( p − 7 ) , ( q − 7 ) ) \lambda(n)= \operatorname{lcm}((p-7) ,(q-7))λ(n)=lcm((p7)(q7)), M MM 为明文消息。

加密: 选择随机数r ∈ Z P ∗ , E ( M ) = g m r n   m o d   n 2 . r \in Z_{P}^{*}, E(M)=g^{m} r^{n} \bmod n^{2} .rZP,E(M)=gmrnmodn2.

解密:M = L ( C λ ( N )   m o d   n 2 ) L ( g λ ( N )   m o d   n 2 )   m o d   n M=\frac{L\left(C^{\lambda(N)} \bmod n^{2}\right)}{L\left(g^{\lambda(N)} \bmod n^{2}\right)} \bmod nM=L(gλ(N)modn2)L(Cλ(N)modn2)modn

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. 全同态加密方案

全同态加密体制使得可以在加密数据上进行任意计算与分析,可应用于加密云存储服务,隐私信息检索,隐私数据挖据等许多重要领域。比如许多企业需要委托第三方(云计算数据中心)对数据进行处理分析,但是数据中含有商业机密等敏感信息,可以首先使用全同态加密算法对数据加密后再发送给第三方,这样云端服务器不用解密就可以直接处理数据,完成后返给用户。用户再对数据进行解密,得到处理结果。

全同态加密方案是指, 对于n nn个明文消息$ m_{1}, m_{2}, \ldots, m_{n}$ , 及对应的密文$ c_{1}, c_{2}, \ldots, c_{n}$ , 其加密算法E EE与解密算法D DD满足, 对于有限域上的任意可计算函数f ffD ( f ( E ( m 1 ) , E ( m 2 ) , … , E ( m n ) ) = f ( m 1 , m 2 , … , m n ) D\left(f\left(E\left(m_{1}\right), E\left(m_{2}\right), \ldots, E\left(m_{n}\right)\right)=f\left(m_{1}, m_{2}, \ldots, m_{n}\right)\right.D(f(E(m1),E(m2),,E(mn))=f(m1,m2,,mn)Gentry, C. 于2009年在《Fully homomorphic encryption using ideal lattics》给出了全同态的定义,并基于理想格构造了一系列全同方案。

一个同态的公钥加密方案 ε \mathcal{\varepsilon}ε 中包含以下四种算法: K e y G e n ε , E n c r y p t ε , D e c r y p t ε , E v a l u a t e ε KeyGen_{\varepsilon}, Encrypt_{\varepsilon} ,Decrypt_{\varepsilon} , Evaluate_{\varepsilon}KeyGenε,Encryptε,Decryptε,Evaluateε

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ψ

以上四种的计算复杂度是关于安全参数λ \lambdaλ和电路C CC的大小的多项式函数。

同态加密(Homomorphic Encryption):对于许可电路集C ε C_{\varepsilon}Cε上的电路 C CC,方案ε \rm{\varepsilon}ε是同态的,如果在 C ε C_{\varepsilon}Cε 上对于由K e y G e n ε KeyGen_{\varepsilon}KeyGenε 产生的公钥私钥对( P u , P r ) (Pu, Pr)(Pu,Pr) , 电路C ∈ C ε C \in C_{\varepsilon}CCε , 任意明文 Π 1 , … , Π t \Pi_{1}, \ldots, \Pi_{t}Π1,,Πt 以及任意密 文 Ψ = ⟨ ψ 1 , … , ψ t ⟩ , ( \Psi=\left\langle\psi_{1}, \ldots, \psi_{t}\right\rangle, \quad\left(\right.Ψ=ψ1,,ψt,( 其中ψ i ← E n c r y p t ε ( p k , Π i ) ) \left.\psi_{i} \leftarrow E n c r y p t_{\varepsilon}\left(p k, \Pi_{i}\right)\right)ψiEncryptε(pk,Πi)) 满足:ψ ←  Evaluate  ε ( P u , C , Ψ ) ⇒  Decrypt  ε ( P r , ψ ) = C ( Π 1 , … , Π t ) \psi \leftarrow \text { Evaluate }_{\varepsilon}(Pu, C, \Psi) \Rightarrow \text { Decrypt }_{\varepsilon}(Pr, \psi)=C\left(\Pi_{1}, \ldots, \Pi_{t}\right)ψ Evaluate ε(Pu,C,Ψ) Decrypt ε(Pr,ψ)=C(Π1,,Πt)

并且 D e c r y p t ε Decrypt_{\varepsilon}Decryptε可以被表示为大小为p o l y ( λ ) poly(\lambda)poly(λ)的电路 D ϵ D_{\epsilon}Dϵ

全同态加密(Fully Homomorphic Encryption):方案E \mathcal{E}E是全同态的,如果该方案对于许可电路集上的所有电路都是同态的。

同等全同态加密(Leveled Fully Homomorphic Encryption):方案集合{ ε ( d ) : d ∈ Z + } \left\{\varepsilon^{(d)}: d \in Z^{+}\right\}{ε(d):dZ+} 是同等全同态加密的,如果这些方案都使用相同的解密电路,且ε ( d ) \varepsilon^{(d)}ε(d)对于这些最大深度为d dd的所有电路 (这些电路中门的类型集合是相同的) 都是同态的,ε ( d ) \varepsilon^{(d)}ε(d)上算法的计算复杂度是关于 λ , d \lambda, dλ,d以及电路C \mathrm{C}C的规模的多项式函数。

相关文章
|
26天前
|
安全 网络安全 区块链
网络安全与信息安全:构建数字世界的防线在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的重要屏障。随着网络攻击手段的不断升级,从社交工程到先进的持续性威胁(APT),我们必须采取更加严密的防护措施。本文将深入探讨网络安全漏洞的形成原因、加密技术的应用以及提高公众安全意识的重要性,旨在为读者提供一个全面的网络安全知识框架。
在这个数字信息日益膨胀的时代,网络安全问题成为了每一个网民不可忽视的重大议题。从个人信息泄露到企业数据被盗,再到国家安全受到威胁,网络安全漏洞如同隐藏在暗处的“黑洞”,时刻准备吞噬掉我们的信息安全。而加密技术作为守护网络安全的重要工具之一,其重要性不言而喻。同时,提高公众的安全意识,也是防范网络风险的关键所在。本文将从网络安全漏洞的定义及成因出发,解析当前主流的加密技术,并强调提升安全意识的必要性,为读者提供一份详尽的网络安全指南。
|
2月前
|
存储 SQL 安全
网络安全与信息安全:守护数字世界的坚盾在这个高度数字化的时代,网络安全和信息安全已经成为个人、企业乃至国家安全的重要组成部分。本文将深入探讨网络安全漏洞、加密技术以及安全意识的重要性,旨在为读者提供一个全面的网络安全知识框架。
随着互联网技术的飞速发展,网络安全问题日益凸显。从个人信息泄露到企业数据被盗,再到国家安全受到威胁,网络安全事件层出不穷。本文将从网络安全漏洞的定义与分类入手,探讨常见的网络攻击手段;随后深入解析加密技术的原理及其在保护信息安全中的作用;最后强调提升公众与企业的安全意识的重要性,并提出具体的建议。通过综合运用这些知识点,我们可以更好地构建起一道道坚固的防线,守护我们的数字世界。
|
16天前
|
存储 安全 5G
|
22天前
|
安全 算法 网络安全
网络安全与信息安全:守护数字世界的坚盾在这个高度数字化的时代,网络安全和信息安全已成为全球关注的焦点。无论是个人隐私还是企业数据,都面临着前所未有的风险和挑战。本文将深入探讨网络安全漏洞、加密技术以及安全意识的重要性,旨在为读者提供实用的知识,帮助构建更加安全的网络环境。
【10月更文挑战第4天】 在数字化浪潮中,网络安全与信息安全成为不可忽视的议题。本文通过分析网络安全漏洞的类型与成因,探讨加密技术的原理与应用,并强调提升安全意识的必要性,为读者提供一套全面的网络安全知识框架。旨在帮助个人和企业更好地应对网络威胁,保护数字资产安全。
107 65
|
12天前
|
存储 安全 前端开发
端到端加密:确保数据传输安全的最佳实践
【10月更文挑战第12天】端到端加密(E2EE)是确保数据传输安全的重要手段,通过加密技术保障数据在传输过程中的隐私与完整性,防止第三方窃听和篡改。本文介绍E2EE的工作原理、核心优势及实施步骤,并探讨其在即时通讯、文件共享和金融服务等领域的应用,强调了选择加密协议、密钥管理、数据加密及安全接口设计的重要性,旨在帮助企业和开发者有效保护用户数据,满足数据保护法规要求。
|
2月前
|
人工智能 供应链 安全
网络安全与信息安全:构建数字世界的坚固防线在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的重要基石。本文旨在探讨网络安全漏洞、加密技术及安全意识等关键领域,通过深入浅出的方式,引导读者理解网络安全的核心要素,并分享实用的防护策略,共同守护我们的数字世界。
随着互联网技术的飞速发展,网络安全威胁日益凸显,成为全球关注的焦点。本文聚焦网络安全的三大核心议题——网络安全漏洞、加密技术与安全意识,旨在揭示它们之间的相互关联与重要性。通过剖析真实案例,展现网络攻击的复杂性与破坏力;解析加密技术的原理与实践,强调其在保护数据安全中的关键作用;同时,倡导提升公众安全意识,构建多层次的网络安全防护体系。本文不仅为专业人士提供技术参考,也旨在提高普罗大众的网络安全认知,共同筑牢数字世界的安全防线。
123 10
|
2月前
|
SQL 安全 算法
网络安全与信息安全的守护之道在数字化时代,网络安全和信息安全已成为企业和个人不可忽视的重要议题。本文将探讨网络安全漏洞、加密技术以及安全意识等方面的知识,帮助您建立更安全的网络环境。
随着互联网技术的飞速发展,网络安全问题日益凸显,如何保护个人及企业的敏感信息成为亟待解决的难题。本文从网络安全漏洞、加密技术和安全意识三个方面展开,详细介绍了当前面临的主要安全威胁及应对策略,旨在提升公众的安全意识和防护能力。
32 1
|
18天前
|
安全 大数据 网络安全
网络安全与信息安全:守护数字世界的坚盾在数字化浪潮席卷全球的今天,网络安全已成为维系社会稳定、促进经济发展的重要基石。本文旨在深入探讨网络安全漏洞、加密技术及安全意识等核心议题,通过分享前沿知识与实用策略,助力构建更加安全可靠的网络环境。
【10月更文挑战第8天】 本文聚焦网络安全领域的关键要素,包括安全漏洞的识别与防御、加密技术的演进与应用,以及安全意识的培养与提升。通过对最新研究成果和实际案例的分析,文章揭示了网络安全威胁的多样性和复杂性,强调了综合防护策略的重要性。同时,倡导社会各界共同参与,形成全民网络安全意识,共筑数字空间的安全防线。
39 0
|
2月前
|
存储 安全 数据库
Uno Platform 安全数据存储秘籍大公开!加密、存储、读取全攻略,让你的数据固若金汤!
在软件开发中,安全的数据存储至关重要。本文介绍如何在跨平台开发框架 Uno Platform 中实现安全数据存储,包括选择合适的数据存储方式(如本地文件或 SQLite 数据库)和使用 Bouncy Castle 加密库对数据进行 AES 加密。通过示例代码展示了数据的加密、存储及解密过程,帮助开发者保护用户敏感信息,防止数据泄露。
42 3
|
25天前
|
存储 安全 数据库
Uno Platform 安全数据存储秘籍大公开!加密、存储、读取全攻略,让你的数据固若金汤!
在 Uno Platform 中实现安全的数据存储需要选择合适的数据存储方式,并对存储的数据进行加密。通过加密数据,可以保护用户的敏感信息,防止数据泄露。同时,在读取和使用数据时,需要进行解密操作,确保数据的可用性。希望本文对你在 Uno Platform 中实现安全的数据存储有所帮助。
27 0