高级密码学复习4-HUST版

函数加密(FE)

前言:聪明而懒惰的杨师傅,在毕业季节参与大厂的面试时,他想向面试官和HR讲述自己在大学期间的代码能力,他想要统计一下自己的大学期间写过多少行代码,根据前面几篇的复习,我们可以知道杨师傅已经将大学中的所有资料(包括写的所有代码)都上传到了云服务器中,那么杨师傅有没有办法在不下载所有文件的情况下,知道这些代码文件总共包含了多少行代码呢?

  1. 函数加密是什么?

    在没有函数加密之前的,密文解密结果的共同特点。要么知道解密的全部结果,要么完全不知道解密的结果。

    即使是在访问控制加密中,我们也只是对信息的接收方进行控制(CP-ABE),或者是控制信息在不同人之间的具有不同的获取情况(KP-ABE)。但没有对解密的结果进行在运算,函数加密可以简单的理解为在解密的结果基础上再进行一个函数的运算,得到一个函数值作为函数加密的返回结果。

image-20211209233457075

  1. 函数加密的思想

    image-20211209234506412

    函数加密的思想和PRE(代理重加密)的思想在一定程度上相似,PRE将用发送方私钥的脱密和用接收方公钥的加密结合成一个步骤,达到了保护明文和发送方私钥的效果;FE将用发送方私钥的脱密和一个函数运算结合在了一起,达到保护明文的效果,由于解密使用一个特殊的(带有f函数)私钥,所以也不会泄露发送方的私钥信息。

  2. 函数加密的大一统特性

    image-20211209234959030

    函数加密涵盖了公钥加密,在本节的后文做讲述。函数加密涵盖了公钥加密的话,那么它必然涵盖了基于身份的加密(基于身份的加密是公钥加密的一种形式)。谓词加密可以用ABE(基于属性的加密)来进行理解,谓词f可以理解为ABE中的访问控制策略,属性向量I可以理解为ABE中的用户属性,如果f(I)=1成立,就是用户满足访问控制策略,那么密文可以正常解密。

    这里考考读者们,哪一种ABE可以规约为谓词加密呢?(CP和KP选一个)

  3. 用FE表达标准的公钥加密系统

    image-20211209235627921

    K = 1 , ϵ K={1,\epsilon} K=1,ϵ定义的是一个键空间,它是一个抽象的概念,在这里 k = 1 k=1 k=1意味着公钥加密系统中输入的解密私钥正确,那么返回明文m,如果 k = 0 k=0 k=0意味着输入的解密私钥不正确,那么返回明文的长度m。

    为什么输入密钥错误的情况下还反馈一个信息呢,这个信息会造成泄露吗?

    这里的明文长度len(m),其实是没有泄露任何信息,因为在一个公钥加密的系统中,加密采用的公共参数和加密算法都是公开的,比如说我们采用RSA(安全参数N取1024),那么我们加密后的密文长度一定是1024的整数倍,这是因为在加密过程中采用了随机非对称填充的方法。即使明文长度不是1024的整数倍,依然可以看作是最近比明文长度大的一个1024的倍数。

    理解用FE的表示谓词加密的一个具体例子

    image-20211210000616610

  4. FE的一个简单构造

    此函数加密构造较为简单,可以看懂,所以也有可能考

image-20211210000723488

​ 从实现的角度上看这个简单FE其实是s个公钥加密体系的缝合,它由s个公开参数和s个主密钥,加密的过程中直接将明文的函数值作为公钥加密的明文输入,那么解密的时候也只能够得到明文的函数值,在式子中用 F ( k i , m ) F(k_i,m) F(ki,m)表示。

​ 我们需要注意这种简单的FE存在的问题,首先,是这种方法产生的密文长度更长,解密一个密文,需要尝试解密所有s个密文。其次,这个方法中将主密钥分成s个发送给用户,泄露的主密钥(虽然没什么用,但感觉这样不太好),再其次,这个方法要求加密方完成 F ( k i , m ) F(k_i,m) F(ki,m)的运算,不能保证发送方有这个函数计算能力,发送方可以直接将这个结果作为明文输入用一个公钥加密方案就可以完成数据传输,也不需要FE的功能了。(个人感觉FE中的F函数运算应该在接收方中运算更加符合实际)

同态加密(HE)

前言:简单回顾一下已经复习过的几章,我们可以说已经将密文从原始的加密目标,推进到了密文的搜索,密文读权限的可控可管,上节的FE已经有了密文可计算的初步思想,本节的HE就是实现密文的可计算。

  1. HE的思想?

    实现的是无密钥方对密文的计算,等价于对明文的计算

  2. 为什么同态具有什么性质?

    image-20211210150704021

    同时拥有普遍公钥加密的两个特征:正确性和语义安全性。

    正确性表示明文经过加密和解密之后,能够得到正确的结果。

    语义安全性表示明文经过加密之后,得到的密文是不可区分的。

  3. 同态加密相比公钥加密的不同之处?

    在公钥加密的基础上增加了一个对密文的运算算法

    image-20211210150957970

    **注意:**计算前后的密文向量并不一定是维度相同的。计算前是t元组,计算后可以是s元组。 f f f函数涉及到的所有运算均需要对加密函数具有同态性,也正是因为如此所以同态加密是在公钥加密的基础上演化而来,而不是在对称加密的基础上演化而来(对称加密算法不具有同态性)

  4. 同态性是什么?

    image-20211210151622951

    注意:说一个加密算法满足何种同态性,是针对计算后的密文具有什么明文含义而言的。与密文进行了什么运算无关。

    对于这个式子有必要做一些说明。
    E n c ( m 1 ) ∗ E n c ( m 2 ) = E n c ( m 1 ∗ m 2 ) Enc(m_1)*Enc(m_2)=Enc(m_1*m_2) Enc(m1)Enc(m2)=Enc(m1m2)
    中间的“=”是含义上的相同,它们都表示 m 1 和 m 2 两 个 明 文 乘 积 的 密 文 m_1和m_2两个明文乘积的密文 m1m2,并不是密文完全相等,由于加密算法有随机数参与运算的原因,所以及时是对相同的明文 m 1 m_1 m1进行加密,那么它得到了密文仍然是不同的。

  5. 思考Paillier 加密方法具有什么样的同态运算?

    image-20211210152521079
    加 法 同 态 性 : E n c ( m 1 , r 1 ) g m 2 = g m 1 + m 2 r 1 n ( m o d   n 2 ) = E n c ( m 1 + m 2 ) 乘 法 同 态 性 : E n c ( m 1 , r 2 ) m 2 = g m 1 ∗ m 2 ∗ r 1 n ∗ m 2 ( m o d   n 2 ) = E n c ( m 1 ∗ m 2 ) 纯 量 乘 法 : E n c ( m 1 , r 1 ) k = g m 1 ∗ k ∗ r n k = E n c ( m 1 ∗ k ) 加法同态性:Enc(m_1,r_1)g^{m_2}=g^{m_1+m_2}r_1^n(mod \ n^2)=Enc(m_1+m_2) \\ 乘法同态性:Enc(m_1,r_2)^{m_2}=g^{m_1*m_2}*r_1^{n*m_2}(mod \ n^2)= Enc(m_1*m_2) \\ 纯量乘法:Enc(m_1,r_1)^k=g^{m_1*k}*r^{nk}=Enc(m_1*k) Enc(m1,r1)gm2=gm1+m2r1n(mod n2)=Enc(m1+m2)Enc(m1,r2)m2=gm1m2r1nm2(mod n2)=Enc(m1m2)Enc(m1,r1)k=gm1krnk=Enc(m1k)

  6. HE的应用

    image-20211210150112140

    1)将具有隐私性的数据保存在本地,将数据的运算通过同态加密的方式加密之后交给云服务器计算,这样保证了云服务器在运算的时候对数据的不泄露。

    2)安全多方计算:paillier的乘法同态性可以体现这一点。

    3)零知识证明:

img

访问控制加密(ACE)

前言:一天海王杨师傅的女朋友不满于只能够在云服务器上看到自己和杨师傅的合照,她也想自己上传和杨师傅的照片,这让杨师傅一下子难住了,因为女朋友在上传照片的时候故意使用别的杨师傅给他的访问策略的话,那么照片很有可能被其他的女朋友看到的呀,但是杨师傅又不能够阻止女朋友上传照片,因为如果阻止的话,可能又会惹女朋友生气啦。这可怎么办呀?

  1. ACE是什么?

    ACE是访问控制加密,和我们已经学习过的ABE等对密文的访问进行控制听上去很为相似呀,那么他们有什么区别的,其实通过前言的小故事大家可以知道,ABE等对密文的访问进行限制,只是停留在读权限上,如何管理用户的写权限呢。那么ACE就是在兼顾写权限安全和读权限安全的完善的访问控制技术。

  2. 读写权限控制的实现?
    S 好 → E n c r y p t R 坏 S_{好}\xrightarrow{Encrypt}R_{坏} SEncrypt R

    S 坏 → S i g n a t u r e R 好 S_{坏}\xrightarrow{Signature}R_{好} SSignature R

    S 坏 → R 坏 S_{坏}\xrightarrow{}R_{坏} S R

    对于第一种情况,我们应该采用加密的方式让恶意的接收方无法解密密文,对于第二种情况,我们应该采用数字签名的方式让善意的接收方能够区分恶意文件,对于第三种情况,我们需要防范两个恶意收发方,在网络种传播恶意文件(也可以采用ACE)解决。

  3. ACE的实现方法

    image-20211210160749659

image-20211210160821936

​ 1)ACE中的净化器类似于计算机中的防火墙

​ 2)为什么访问控制中要降低第三方(净化器)的可信度?

​ 因为它长时间在线,可信度较高的话,其运行维护的的难度会加大;由于其可信度较高,收到攻击的可能性会更多,降低第三方的可信度,即使被攻破仍然不会造成对数据安全性的威胁。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值