全同态加密笔记

# 全同态加密技术笔记

本人是个刚入门密码学的小白,这是我的第一篇博文,若有表达不清楚或者理解错误的地方,欢迎大家指正。

 

## 1.什么是同态?

举个栗子,银行在第三方服务器上做一个业务,业务是将用户1和用户2的存款相加。如果此时银行用的是传统的公钥加密算法,由于服务器需要解密数据进行计算,这时的数据就可能会泄露给第三方。因此,这些算法只能建立在第三方可信的基础上,若第三方不可信,无法达到理想的加密效果。如果我们在这个问题上用的是同态加密,那么,银行使用加密算法生成密钥sk,对明文m1和m2进行加密得到密文c1和c2,将c1和c2发送到服务器,服务器直接对c1和c2进行计算,将结果发送到银行,银行再用密钥解密。这个栗子存在许多漏洞,但我们需要知道的是,同态加密主要就是密文与密文之间可以做一些计算,密文的格式仍是乱码,但是得到的明文却是我们想要的计算结果。

目前,同态加密分为单一同态加密(Partially Homomorphic Encryption)、近似同态加密(Somewhat Homomorphic Encryption)、有限级同态加密(Fully Leveled Homomorphic Encryption)、全同态加密(Fully Homomorphic Encryption)。我对这四种加密方案做个简单的介绍:

### 单一同态加密

密文只有一种同态特性,即密文之间仅可以做加法或乘法的其中一种。


### 近似同态加密


可同时计算加法与乘法同态,但是可同时做加法或乘法的次数非常有限。

### 有限级同态加密


进行任意加法乘法组合,并没有次数限制。但是之所以成为有限级,因为这个阶段的算法会引入一个噪音上限的概念。每个密文都带有自己的噪音,在我们进行密文运算时噪音会随之增加,如果结果的噪音值低于噪音值上限,那么解出的明文是正确的,否则可能会解出错误的明文。


### 全同态加密


无限制进行同态操作。

###同态加密算法有以下四个步骤:

密钥生成算法GenKey(1^\lambda)\rightarrow sk:生成加密与解密需要用到的密钥 sk 。为了简单表示,我们这里假设这个加密系统是对称的(即加密密钥等于解密密钥)。


加密算法Enc(sk,m\in (1,0)^{\left | M \right |})\rightarrow c:把原文m加密成密文 c


解密算法Dec(sk,c)\rightarrow m:把密文 c还原为原文m


运算算法Eval(F,c_1,...,c_l):把l 个密文组合起来,通过一个二进制逻辑电路 F,最后得到组合的密文\hat{c} ,使得Dec(sk,\hat{c})=F(m_1,....,m_l)

其中,和传统的加密算法不同的是多了一个运算算法,而运算算法则是同态加密的关键。可能描述的不太准确,在我看来,运算算法Eval是将密文\hat{c}代入到函数式F进行运算并进行解密,得到的是明文\hat{m}代入到函数式F的解密结果。当然,密文运算的结果依旧为乱码,当解密时才能看到实际的运算结果。

## 2.同态的发展历史


然后说说同态加密的历史吧,
同态加密这一概念最早是在1978年Rivest、Adleman和Dertouzos三个天才提出的,也指出了指数函数以及RSA函数来实现加法与乘法的同态。
之后也有很多学者发表了同态加密的论文,可基本都是围绕着单一同态加密进行的,全同态加密一直没有进展。
直到2009年,斯坦福大学的天才Gentry在他的博士毕业论文里提出了一种基于理想格的全同态加密方案,该方案通过一个叫Bootstrapping的程序可以不断的刷新噪音值,达成了世界第一个全同态加密的方案,为密码学开辟了一条新道路。
之后研究者们又不停的改善和创新新的全同态加密方案,例如
2011年,Brakerski和Vaikuntan在CRYPTO上发表了一个基于Ring-LWE假设的便于描述和分析的SWHE方案,其安全性量子归约到理想格上的最坏情形困难问题,且利用Gentry的压缩范式(squashing)和Bootstraping程序将SWHE转化成真正的FHE方案。自此,FHE的研究进入了第二阶段。
2013年,Gentry等人在CRYPTO上发表利用近似特征向量方法来构建FHE方案的论文,及Gentry-Sahai-Waters(GSW)方案,标志着FHE的研究进入第三阶段。
之后也有很多大牛也提出了一些更优秀的方案,我也是刚入门同态加密,没做太多了解,这里就不提了,嘿嘿。

## 3.GSW-LFHE系统

在熟悉真正的GSW-FHE之前,由于GSW-FHE涉及到一种刷新噪声的程序,因此我们得先对GSW-LFHE进行学习,也就是GSW有限级数的全同态技术,GSW这一名字的由来我们在同态的发展历史中已经说过,Gentry-Sahai-Waters这三个大佬的名字首字母,这也属于第三代全同态加密算法。话不多说,先看看算法的思路吧!

### 3.1测试特征值和特征向量

GSW的核心概念就是引入了矩阵的特征值和特征向量的的问题,我们想把公式搬过来瞅瞅

                                                                                               Ax=\lambda{x}

相信大家对这个公式并不陌生,如果我们对这个公式单纯的进行同态加密:

GenKey:随机选取向量\vec{s}作为加密的密钥。

 

Enc(\vec{s},u)\rightarrow C:如果我们要加密数字\mu,我们需要找到一个矩阵C,使得满足:

                           

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值