【高级密码学】复习补充Q&A

【HUST】高密复习补充Q&A


参考学习资料:高级密码学-HUST


可证明安全性

1、语义安全性:

如果已知某段未知文段的密文不会泄露任何该文段的其余信息,那么则称该密文是语义安全的。

2、如何定义攻击者与攻击者目标?

攻击者:A.计算能力:多项式计算能力,计算能力可以用一个多项式表达;指数级计算能力,现实中不能实现。B.先验知识:拿到的信息,公钥、密文、等信息。

目标:A.直观目标:获取明文。B.明文语义:明文包含的意思,攻击者想要获得明文的某一语义(对于一个数来说,这个数代表什么含义,工资?年龄?这就是它的语义)。

假设攻击者能够获得最强的信息获取能力,获得所有的公开信息(例如算法的公开参数和算法等);计算能力的最大上限(一般考虑能够具有解决多项式的问题的能力)攻击目标限定于只要能够获得1bit的信息。(可以参考语义安全性的游戏理解)

3、Shannon的语义安全性描述:

对于任意等长的消息m,只要这个m属于消息空间,那么用加密密钥k加密后,加密结果“看起来都一样”,没法看出来这是从m,还是从其他什么消息加密得来的。密码学中证明了唯一能实现的是一次一密。

5、为什么一次一密是绝对安全的呢?

在非一次一密的情况下,密钥并不是绝对随机的,此时有f(明文)=密文,未知数只有一个明文,在数学的角度考虑,这个方程理论上是可解的。而采用了一次一密后,密钥也变成了一个未知数,此时有f(明文,密钥)=密文,未知数有两个,在只有一个关系式的情况下,这个方程在数学上,理论是不可解的。因此一次一密绝对安全。而在实际的情况中,一次一密的开销太大,一般不采用。

6、攻击者、挑战者模型

用计算机的能力来描述语义安全性,由于定义中的消息长度可变,一次不能用一台计算机直接描述。故引入该模型。

4.1 过程描述:(以ElGamal算法为例)
A. 攻击者自己任意选择两个消息m0、m1,使其发挥最大能力
B. 攻击者把这两个消息发送给挑战者。
C. 挑战者运行加密算法,加密任意一个,把加密结果发送给攻击者。
D. 攻击者猜测挑战者加密的是哪个消息。

4.2 攻击者优势:
如果攻击者有1/2的概率猜对,则说这个加密算法是具有语义安全性的。但攻击者拿到了加密结果,因此一定会比1/2高,高出的部分叫做攻击者优势。若攻击者优势是指数级小,如2^(-128),则说加密算法是安全的。

7、什么是安全参数?

量化安全性的重要依据。非对称密码加密需要一个统一的量化标准来衡量它的安全性,就引入了安全参数。安全参数一般和攻击者优势成倒数关系,安全参数越大,破解方案的复杂度会呈指数级升高。RSA 具有1024位的加密密钥,这可以通过量化安全性进行证明,在密码学原理的课程中,我们有了解到破解复杂度是一个密码算法安全性的分水岭,超过这个复杂度的算法才具有实用的安全性。而加密密钥的长度(N=1024)可以直接影响破解的复杂度,越长的加密密钥带来越高的破解复杂度,但同时会带来更大的计算开销。

安全参数是量化安全性的重要依据,所有可证明安全的密码算法都有量化安全性。

8、为什么随机数对加密算法至关重要?

熵代表不确定性,加密算法要求输出的明文的熵要高。从信息论的角度,对于一个确定性的算法(函数),其输出熵不可能大于输入熵,这是不安全的。所以在算法中加入了随机数来提高输入熵,保证安全性,同时增大其随机性。

从信息论的角度首先理解,对于任何一个函数,函数的输入熵一定大于等于函数的输出熵,加密算法也不例外。确定性算法无法增加输出的熵。但密码算法要做到安全性,必须要是输出满足一定的随机性(即熵够大),随机数则作为一个桥梁,引入随机数(高熵)可以增加输入熵,在理论上符合信息论的观点。

9、语义安全性为什么能够作为定义密码算法安全性的标准?

因为语义安全性将攻击者的攻击能力最大化攻击目标最小化,并不考虑攻击者的攻击形式(这样的好处是既不会陷于某种攻击方式而丧失普遍性,又构造了最有利于攻击者的情况,若仍能够说明密码算法的安全,则密码算法是真的安全)

10、为什么完善保密性(密码学原理中前两章的内容)中没有引入随机数?

因为完善保密性要求明文尽可能满足均匀分布(输入满足高熵);要求密钥也是随机的(采用一次一密的方法)。从这两点我们也可以看出完善保密性在现实中并不具有实用性。

基于身份加密(IBE)

前言:首先认识到传统公钥密码体制和公钥基础设施PKI的不足,发掘本质问题,萌生IBE的思想,算法远没有思想重要。比如你来设想一个场景,海王杨师傅如果要给他的一千个女朋友发送520的情书,这时候他就得询问PKI一千次关于女朋友公钥,得到PKI的询问之后,他才能将情书发出去(必须等待PKI的响应,因为如果其中一个女朋友的公钥失效了,她就可能解不开情书,她就会生气!!!后果不堪设想。这样消耗的时间和精力太多,这对于杨师傅来说,是绝对不可能允许产生的。

1、基于PKI的公钥加密

在网络上因为彼此不能见面,因此伪造身份是十分容易的。基于这个原因,用户是不能直接把自己的公钥发到网上的,因为他不能证明这个公钥是他自己的,即使是加数字签名也没用,就像身份证不能自己来造一样,自己的数字签名没有可信度,也容易伪造。这时需要一个可信第三方(CA)来管理这些密钥,如政府统一管理身份证一样。

过程:A. Alice想给Bob发消息,她会首先向CA询问Bob的公钥;B. CA用自身的私钥签发Bob的公钥,即生成证书发给Alice;C. Alice验证后即可使用该公钥

CA其他功能:

撤销已经失效的公钥,当接收方公钥不再有效时,告知发送方接收方的公钥已被撤销。

2、PKI存在的实际问题:

实际应用中发送方是非常多的,每次发送方加密数据之前都会询问CA公钥、或者询问接收方的公钥是否依然有效。于是CA成为了PKI性能瓶颈。

3、 PKI存在问题的本质原因:

公钥是随机生成的,因此与用户没有天然的绑定关系。CA的存在就是通过一种外力人为地将公钥和用户身份进行绑定。

4、 IBE如何解决了这个问题:

将公、私钥和用户身份天然绑定,这样发送方就可以通过接收方的身份信息来生成公钥,从而代替了PKI中CA的存在,不仅解决了性能问题,还解决了可信第三方的问题。

4、IBE应用:邮件系统(属性=身份=公钥)

A. 初始阶段
密钥生成中心(KGC)运行Setup算法(输入:安全参数),生成系统公开参数和系统秘密参数。

B. 用户加入阶段
令新加入用户的邮箱地址为ID,KGC运行Extract算法(输入:系统秘密参数,ID),生成并授予其私钥。

C. 邮件安全传输阶段
令接收方的邮箱地址是ID,发送方运行Enc算法加密邮件(输入:系统公开参数,ID,邮件内容),生成密文C并发送给接收方,接收方用私钥解密出邮件内容。

5、IBE的密钥托管问题及解决思路

A. 用户私钥由密钥生成中心生成,因此该中心知道所有用户私钥,若用户私钥泄露,无法通过更新公钥的方式撤销泄露的私钥。

B. 一个用户对应多个私钥(指数个),使密钥生成中心无法知道用户选的是哪个私钥,基于私钥的取证技术,使得若攻击者使用了非用户选定的私钥来解密,可以被发现。

基于属性加密(ABE)

前言:海王杨师傅为了防止女朋友们轮流查手机,他将他和每一位女朋友的合影照片都存储到了云服务器中,但每一位女朋友都想看到自己和杨师傅的合影照片,杨师傅要怎么能让她们看到自己的照片而不是其他女朋友的照片呢(下文会介绍,这是CP-ABE的一个应用场景)

1、ABE是什么?

ABE实现的是密文的访问控制,无论是用户想要查看特定数据,还是数据只对特定用户开放,都可以使用ABE来实现。这两中访问控制需求衍生出本节的两个重要的ABE实现方案。

2、访问控制有哪些?

1.1 自主访问控制,是指由用户有权对自身所创建的访问对象进行访问,并可将对这些对象的访问权授 予其他用户和从授予权限的用户收回其访问权限。

1.2 强制访问控制,是指由系统(通过专门设置的系统安全员)对用户所创建的对象进行统一的强制性 控制,按照规定的规则决定哪些用户可以对哪些对象进行什么样操作系统类型的访问,即使是创建者用户,在创建一个对象后,也可能无权访问该对象。

1.3 基于角色的访问控制,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集 合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。

3、传统的访问控制问题有哪些?
  • 数据库数据以明文形式存放,通过验证用户权限实现数据访问,其安全性完全依赖用户对服务器安全性的信任。

  • 若数据库服务器存在漏洞,导致攻击者获得管理员权限,则该攻击者可以绕开访问控制策略获得数据。

  • 若数据库管理员本身与攻击者合谋,同样可以导致访问控制策略失效。

  • 传统的访问控制方法无法保证云计算环境下的数据安全性。

    • 数据集中的云平台更容易成为攻击目标
    • 云平台缺乏可信性
  • 用户的公钥可以是描述用户身份信息的字符串,也可以是通过这些字符串计算得到的相关信息。

  • 不需要存储公钥字典和处理公钥证书。

  • 加密消息只需要知道解密者的身份信息就可以进行加密,而验证签名也只需要知道签名者的身份就可以进行验证。

    存在问题的本质:数据库管理员拥有最高级别的权限。这将成为攻击者的重点攻击目标。在密码学的很多概念中,具有最高权限的都是密钥生成中心,除此之外,其他的参与角色都是不可信任的。

3、KP-ABE、CP-ABE两者差别理解?
  • KP-ABE:

    KP-ABE适合于加密方与访问控制方分离的场景,能够实现用户对特定数据的访问

    上图中的传感器,可以采集声音、温度、震感等三种信息,我们可以将其视作单一属性1,2,3。由于单一属性天然不具备访问策略,所以采用以明文属性做公钥的KP-ABE加密方式。数据中心负责存储加密的三种信息(声音、温度、震感)。用户如果需要访问某些信息的话,需要向密钥生成中心获取相应的访问控制策略,这样的访问控制方式,便于用户的增减,而不需要改变传感器的设置。用户拿到相应的私钥可以向数据中心获取数据。

  • CP-ABE

    CP-ABE适合于加密方与访问控制方一体的场景,能够实现数据对特定用户的开放。

    上图中的管理员身份其实叫文件上传方更加合适。管理员会让读者误会管理员是不是具有最高级别的权限。其实这里的文件上传方并不具备解密能力(因为他不具有解密者的属性)。文件上传方选择访问控制策略作为公钥加密文件并上传,经理、职员等信息检索方具备的属性满足访问策略的时候,就能够用私钥解密密文。

    如果有耐心的读者看到了这里的话,其实已经可以明白基于角色的访问控制加密和CP-ABE的区别了,在CP-ABE的方案中,文件的上传方没有数据管理员那么高的权限,它只能上传数据,并通过访问策略规定数据的查看人。文件的上传方除了掌握自己上传的文件之外,并不能知道其他文件上传方的文件(除非他具有相应的属性)。

4、ABE的问题

通常,支持访问控制策略的能力越强,那么系统参数的数量越多、密文的长度越长,系统会变得非常复杂。加密方为数据选择访问控制策略,访问控制策略随应用需求不断变化,需要专业人士来做,且维护起来比较复杂。

代理重加密(PRE)

前言:如果机智的小王将一份通知文件上传到了云服务器中,这时候文件在云端是加密的(使用的私钥是"sk王"),但这个时候,他要把这个文件分享给小袁,懒惰的小王不想从云端将文件下载下来, 然后解密,然后用小袁的公钥进行加密,然后再发给她。有没有一种办法能够将这个文件直接从云端以密文的形式直接发给小袁,而且小袁能够用“sk袁”进行解密的呢???

1、PRE是什么?

传统的密码学算法能解决用户数据的安全存储问题,但是无法解决密文数据的安全共享问题。有没有一种办法能将 ”文件下载-文件解密-文件再加密“ 结合呢。PRE就是在云端完成了发送发密钥加密的密文到接收方密钥加密的密文的转化。

PRE就是一种解决密文安全共享的技术

2、PRE实现方法?

直接的思路:先解密再加密。存在两个问题:1、云端不知道解密密钥,2、云端在解密过程中知道了明文信息。

3、PRE是如何做到无泄漏的安全性的呢(核心原理)?

PRE将脱密过程和再加密过程合二为一,不泄露中间结果,同时要注意保证解密密钥的安全。在云端,将发送方公钥加密的密文重加密为接收方公钥加密的密文。其中,先脱密再加密的过程是结合后的一个过程。

4、PRE算法和IBE算法的异同点:

1)关注 H2哈希函数(不同)。

2)私钥的生成方式(相同)加法群到乘法群的映射,和乘法群到乘法群的映射没有本质区别。

3)密文 C 的第二部分,去掉了 H2哈希函数。为什么?为了更好的进行后续计算,如果使用会导致无法重加密。

4)密文 C 的第二部分和密文的解密过程,采用代数运算代替异或运算,保留密文的可计算性质。

5、可解密性:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YbmMvOmI-1670587271370)(assets/image-20221205190828994.png)]
6、PRE待改进的地方

A. 细粒度的控制问题:打破“全或无”的共享模式。

B. 多次重加密的问题:打破一个密文只能以重加密形式共享一次的问题。

C. 双向重加密的问题:打破一次重加密过程只能实现Alice->Bob或者Bob->Alice的单向共享。

D. 复杂多特性PRE方案的设计问题:使得一个PRE方案同时具有多种特性,例如细粒度共享、多次重加密、双向重加密等等。

7、代理重加密的定义、应用
  • **定义:**七中算法

  • **应用:**可以应用在数据共享系统中。一般信息共享的模式是将信息存储在不可信云服务器中,然后由另一来取,从而达到数据共享的目的。这导致一个问题:

    • A存储信息时如果是以密文形式,则会出现被共享方(B)无法解密,这时A就只能先将B所需的密文下载、解密再发送给B,耗时耗资源。
    • 如果不以密文存放在不可信的第三方云服务器中,则容易出现信息泄露。
    • 使用代理重加密则可以解决这个问题,云服务器可以使用预先生成的重加密密钥,将A的密文使用重加密算法,重加密成B可以解密的重加密密文,这样就达到了隐私数据共享的目的。

可搜索对称加密(SSE)

前言:杨师傅在大学毕业之后,将大学期间的所有学习资料都上传到云服务器存储,减少本地的空间占有。但某一天杨师傅想翻出自己在大学期间的学习微积分的相关资料的时候,他面对大量的密文信息,他不知所措。难道他要将所有的密文都下载下来,依次解密再查看吗?

1、产生背景

IBE和PRE都是加密数据的外包存储,此时用户无法对数据进行检索,若用户想取回含特定关键字的文件,只能下载全部密文文件,解密之后再检索出目标文件,这样显然不合理。

2、可搜索加密是什么?

能不能像平时使用word(内容搜索方式)或者是使用浏览器(关键字搜索)一样,对想要查看的关键字信息进行检索呢?可搜索加密就是在密文世界中实现搜索的技术。

3、可搜索对称加密的实现方法?

**直接(非常不安全)**的想法是:使用无随机数参与的加密方式,搜索直接对密文进行密文片段的搜索。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iOkraPcx-1670587271371)(assets/image-20221205192006815.png)]

**注意:**加密的密文主体是关键字而不是文件本身。

4、实际应用流程(SSE应用模型)?

文件(明文)本身使用传统加密方法加密后以密文的形式保存在服务器中。

但在加密之前,先抽取文件内容的关键字,然后使用确定性加密算法生成可搜索关键字保存在服务器中,并将该可搜索关键字与明文加密后生成的密文关联起来。(以上两步应当是在客户端完成的,服务器应当只做存储和搜索之用。)

在用户搜索之前,用户将搜索关键字用可搜索加密算法中定义的搜索陷门生成算法来生成搜索陷门,然后将生成的搜索陷门上传至服务器,服务器使用该搜索陷门与先前生成的搜索关键字进行匹配比较,匹配成功则将与该搜索关键字关联的文件以密文的形式返回给用户,然后用户在本地进行解密来获得文件内容。

B. 存在的问题:

语义安全性要求加密后的密文不能反应明文的任何信息。但由于可搜索性的需要,因此不同关键字加密后的密文必定不同,这使得密文反过来也反映了明文的语义,即不同密文对应的明文必定不同,泄露了明文的语义,导致安全性降低。

C. 解决方案:

引入文件标识,从物理上拆开可搜索密文与文件的常规密文。

标识的引入使得原来的一元函数Enc(W),变成了二元函数Enc(W,id),在关系式只有一个的情况下,二元函数是不可解的,即使是相同的密文,把不同的id带入也会得到不同的关键字。解决了语义安全性问题。

3.3 SSE设计思路(2)

A. 引入标识后面临的问题:引入标识后需要逐个对比检索,检索效率和可搜索密文的总数线性相关,效率过低。

B. 解决方案:相同关键字的可搜索密文构建隐藏链式结构。

L是具有寻址作用的数据。怎么使用的?陷门生成L。

5、Song方案的不足?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lG5JjhGS-1670587271371)(assets/image-20221205192305569.png)]

  • song方案的安全性是不能保证的,可以通过简单的频率攻击,对关键字进行猜测。在song的方案中,每一个关键字所对应的搜索陷门是固定的(即关键字和搜索陷门之间存在简单的一一映射关系
6、Song方案不足的本质原因?

针对搜索效率:密文之间没有任何关联,为了提高检索效率,应该让密文间有关系,但这种关系需要隐藏。

针对安全性:song只是简单的认为,将随机数引入到可搜索加密的算法之后就能够保证安全性。其实不然,可搜索加密的安全性和常规的加密的安全性定义是不一样的。在攻击者眼中,可搜索加密比常规的加密多一个检索陷门(信息更多),仅仅保证密文的不可区分,对于可搜索加密的安全性定义来说是远远不够的。(产生问题的本质:忽略了检索陷门对安全性的影响)

7、SSE存在的问题

A. 可搜索密文的删除问题

逻辑删除,易于保证安全性;物理删除,容易破坏安全性

B. 多样化检索的问题

模糊检索、范围检索等等

C. 安全性与效率的博弈

现有提出的SSE无法避免信息泄露;无信息泄露的SSE,也可以称为“隐私信息抽取”,大量的采用了“不经意”随机访问机协议,性能低下

8、使用场景?

用户在云服务器中检索数据

可搜索公钥加密(PEKS)

1、基于PEKS的应用场景
  • 加密邮件系统(多发送方,单接收方),接收方可以针对服务器上的加密邮件进行关键字检索。

  • 安全性需求

    • 未获得任何关键字检索授权之前,任意可搜索密文不泄露其所含关键字的语义
    • 获得某关键字检索授权之后,不包含该关键字的可搜索密文“不可区分”
    • 服务器“半可信”
  • 前述方案(Boneh的方案)的问题:

    • 检索效率低:线性级

    • 陷门安全性:关键字猜测攻击,存在离线KGA,在线KGA
    • 因为传统的公钥密码学算法中,公钥是随机生成的,不含有语义,不与用户身份存在天然绑定关系,因此用户无法证明一个公钥是他的公钥。所以需要可信第三方(CA)来证明这个公钥是他的公钥。
  • Bellare的效率解决办法:将具有相同关键字的密文串成一条隐藏链(没有链头查找具体实现方案,只是提了找到链头后应该如何寻找后续可搜索密文,不太行)

2、PEKS存在的问题?

检索效率与可搜索密文的总数线性相关。

(明文关键字的检索方式:相同关键字直接合并、为不同关键字构建二叉树。

A. 相同关键字的密文能否合并

常规加密属于随机化加密,使得相同关键字的密文相互独立(或者截然不同),因此不能合并。可以采用确定化的加密,使得相同的关键字具有相同的密文,因此可以合并,但降低了安全性。

B. 不同关键字的密文能否建立二叉树
只有确定化的加密,才能建立二叉树。)

在公钥可搜索加密体系之中,接收方的公钥是公开的,攻击者可以生成所有关键字对应的索引密文,所以在监听到关键字陷门之后,攻击者可以使用Test算法,对每一个关键字对应的索引密文和关键字陷门进行运算。进而暴力破解出陷门背后的关键字信息。

3、解决方法?

Camenisch等描述了一种方法,使具有相同关键字的密文形成一条隐式链。如果服务器正确查找到第一条匹配的密文,他们的方法将会提高检索的效率,该方案不能快速查找到第一条匹配的密文,检索效率和整个密文相关。

4、如何理解可搜索加密至少泄露了1bit的信息?

在第一章的语义安全性的定义中,攻击者无法区分被加密的是还是 ,即要求加密算法不泄露任何一比特的信息。对于可搜索加密来说,服务器需要根据检索陷门来判断哪个文件是用户所找的文件,服务器可以知道搜索陷门与对应文件标识符之间的关联关系。即:服务器在获取到关键字检索陷门之后**, 可搜索密文可以被服务器区分泄露的1bit信息是搜索陷门与对应文件标识符之间的关联关系**

5、可搜索加密攻击的其他方式?

对于对称可搜索加密来说,攻击者往往定义为带有恶意的服务器。

已知信息:泄露的部分已知文件,关键字提取算法,搜索陷门,每次的查询和查询结果。

攻击目标:搜索陷门所包含的关键字信息。

攻击思路:根据可搜索加密泄露的搜索陷门与对应文件标识符之间的关系以及关键字与对应文件标识符之间的关系推出搜索陷门与关键字之间的对应关系,对于可搜索公钥加密来说,攻击者可以是服务器、发送方。攻击者是服务器或窃听者的话,存在暴力攻击方式,见本节第三点。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9pGEaWhi-1670587271372)(assets/image-20221205193210300.png)]

6、可搜索加密必然会泄露信息,那么它还是安全的吗?

可搜索加密的安全性需要控制在一个合理的范围内,它有自己的安全性定义方式。我们只需要理解,好的可搜索加密在泄露信息之后,仍然可以证明其安全性。

7、SPCHS

同一个关键字的所有可搜索密文具有隐藏的链式结构,链头与公共头部构成了一个隐藏的星型结构。

8、SPCHS存在的问题

A. 本地私有状态问题。为了隐藏结构的生成,用户需要存储和更新私有信息。

B. 仅支持关键字的精确查找。快速的模糊搜索、范围搜索、子集检索等等不能实现。

C. 学术界提出的可搜索加密难以适用于数据库。两者索引的建立模式截然不同

9、陷门安全性问题:DEKS方案
  • 为传统的PEKS增加延迟正确性,确保加密单个可搜索密文至少消耗规定的时间

  • 两种公开执行方式:

    • 1、公开计算路径,消耗较多资源
    • 2、私密计算捷径,知道某一秘密时可以容易计算出结果
  • 实现:采用 扩展欧拉定理

    • 计算目标: y = x 2 T m o d N   ,   N = p ∗ q     ( p 、 q    i s    p r i m e ) y=x^{2^T}modN\ ,\ N = p*q\ \ \ (p、q\ \ is\ \ prime) y=x2TmodN , N=pq   (pq  is  prime)

    • 1、公开计算路径:模重复平方

    • 2、秘密计算捷径:扩展欧拉定理,先算 2 T ( m o d ϕ ( N ) ) 2^T(mod\phi(N)) 2T(modϕ(N))

      ​ 再算 y = x 2 T m o d ( ϕ ( N ) ) m o d N y=x^{2^Tmod(\phi(N))}modN y=x2Tmod(ϕ(N))modN

    • 当T越来越大时,两种计算方法开销差距越来越大

    • ϕ ( N ) \phi(N) ϕ(N)的安全性由N的素因子分解困难性保证

10、小结

可搜索加密是加密数据外包存储的重要支撑技术。

可搜索加密研究的博弈焦点:性能、安全性、检索多样性。

可搜索加密应用的博弈焦点:基于数据语义的数据库索引建立模式与可搜索加密的隐藏结构索引模式不兼容。

九、函数加密(FE)

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

1、函数加密是什么?

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

解决了all-or-nothing的问题,现实生活中可能存在对密文的特殊访问

  • 完成了:解密只解密部分函数,而不是直接泄露明文

  • FE的密钥是预先生成的,一个密钥对应一种函数值

2、函数加密的思想?

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

3、函数加密的大一统特性

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

函数加密的流程就是公钥加密私钥解密,pke就是f(m)=m的特殊情况,ibe就是个公钥特殊的情况。

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

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

5、FE的一个简单构造

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mAwQYhmA-1670587271372)(assets/image-20221205195048395.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yLCmzHQv-1670587271373)(assets/image-20221205195107745.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D79AhfL4-1670587271373)(assets/image-20221205195114252.png)]

十、同态加密(HE)

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

1、 HE的思想?

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

目标:

  • 客户端输入x,服务器有运算f
  • 客户端想知道f(x),但不想把x泄露给服务器
  • 服务器不想把f泄露给客户端

应用场景:外包服务器利用客户端加密后密文的上运算的同态性,通过对密文的运算完成对明文的等效运算,将运算后的密文发送给客户端,客户端对其解密后即可得到运算后的明文。

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ApjgS8X1-1670587271374)(assets/image-20221205195207581.png)]

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

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

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

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

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

增加了一个Eval算法,Eval(c,f)——>c’。Dec(c’)——>f(m)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FiVMNO7F-1670587271374)(assets/image-20221205195239018.png)]

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

4、函数加密和同态加密的区别?

函数加密实现的是对密文的灵活访问控制。

同态加密实现的是对明文操作的外包,通过将对密文的操作映射到明文上,实现在不泄露明文的前提下实现对明文的操作,并且这一操作可以交给不受信任的服务器来进行。

5、同态性是什么?

(ppt)

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Sf5YCv4-1670587271374)(assets/image-20221205195349191.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jZYCFwss-1670587271375)(assets/image-20221205195412172.png)]

6、HE不符合予以安全性定义?

因为私钥绑定了一个函数,不符合可证明安全性

7、分类?

根据支持的加法、乘法运算个数,对HE分类

  • 部分同态加密,仅支持一种运算:加or乘
  • 仅支持有限次数的加or乘同态
  • 有限技术全同态加密:对密文任意的加法乘法组合,没有次数限制。但有复杂度上限来约束函数f
  • 全同态加密:没有密钥的情况下,把密文任意组合,形成新密文,无复杂度上限
8、应用

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

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

3)零知识证明:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-psIgnfUF-1670587271375)(assets/image-20221205195823683.png)]

访问控制加密(ACE)

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

1、 ACE是什么?

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

2 、读写权限控制的实现?

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

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

因为它长时间在线,可信度较高的话,其运行维护的的难度会加大;

由于其可信度较高,收到攻击的可能性会更多,降低第三方的可信度,即使被攻破仍然不会造成对数据安全性的威胁。

受攻击可能性高,降低可信度能提高安全性,即使被攻破也不会有致命影响,最多回到没有它的状态(说明:这里说的可信度应该是指对净化器的信任度,比如高可信度就是指对他信任度很高,使他能访问明文,低可信度就是不信任,使他只能访问密文形式的数据)

4、传统加密系统的不足?

仅考虑了读权限,未考虑写缺陷,如:

上级不能向下级泄露机密,加密电子钱包的私钥不能泄露给别人,系统核心消息不能泄露给别人,防火墙恶意流量不能正常通过

5、加密系统中读写权限重要的原因?

阻止恶意信息的发送:

  • 接收者可能坏——加密

  • 发送者可能坏——数字签名

  • 双方都可能坏——ACE

虽然电子签名可以解决写权限问题,但是恶意接收方可以绕过签名直接获取信息内容

6、净化器?
  • 传统访问控制中的净化器

    • 知道明文
    • 知道用户信息
    • 知道访问控制策略
  • ACE中的净化器

    • 在发送者匿名的情况下识别恶意、合法发送者
    • 在接收者匿名的情况下识别恶意、合法接收者

因为它长时间在线,可信度较高的话,其运行维护的的难度会加大;

由于其可信度较高,收到攻击的可能性会更多,降低第三方的可信度,即使被攻破仍然不会造成对数据安全性的威胁。

受攻击可能性高,降低可信度能提高安全性,即使被攻破也不会有致命影响,最多回到没有它的状态(说明:这里说的可信度应该是指对净化器的信任度,比如高可信度就是指对他信任度很高,使他能访问明文,低可信度就是不信任,使他只能访问密文形式的数据)

4、传统加密系统的不足?

仅考虑了读权限,未考虑写缺陷,如:

上级不能向下级泄露机密,加密电子钱包的私钥不能泄露给别人,系统核心消息不能泄露给别人,防火墙恶意流量不能正常通过

5、加密系统中读写权限重要的原因?

阻止恶意信息的发送:

  • 接收者可能坏——加密

  • 发送者可能坏——数字签名

  • 双方都可能坏——ACE

虽然电子签名可以解决写权限问题,但是恶意接收方可以绕过签名直接获取信息内容

6、净化器?
  • 传统访问控制中的净化器

    • 知道明文
    • 知道用户信息
    • 知道访问控制策略
  • ACE中的净化器

    • 在发送者匿名的情况下识别恶意、合法发送者
    • 在接收者匿名的情况下识别恶意、合法接收者
    • 在不知道明文的情况下进行访问控制

你可能感兴趣的:(课内,密码学,同态加密)