高级密码学

第一章 密码法

1、密码法的核心内容:正式定义了要保护的密码

1.1 对密码实行分类管理:
A.核心密码:保护国家绝密级及以下信息
B.普通密码:保护国家机密级及以下信息
C.商用密码:保护不属于国家秘密的信息
Ps:前两个为国家机密

1.2 明确了密码管理工作如何展开

1.3 明确规定了商用密码的使用与研发

1.4 明确规定了核心密码与普通密码的使用与研发

1.5 明确规定了密码的发展扶持政策

1.6 明确规定了与密码相关的违法犯罪行为及其后果

2、密码法的重要意义

2.1 总体国家安全观在网络空间安全领域的重要体现,从法律和制度层面确保国家安全

2.2明确了党在密码管理工作中的核心领导地位,并对具体的管理措施制定了法理依据

2.3明确了未来密码发展及应用的主要路径,为密码工作者提供了未来工作的方向指导

2.4从法律层面体现了国家对密码产业发展的扶持,对密码工作者是重大利好

第二章 安全

1、什么是安全:

安全就是信任,相信它是安全的它就是安全的。安全在实际中很难证实,证明安全性往往需要很高的代价。

2、信任源:

2.1 信任源具有动态性。在某一时刻或某一地点它是可信的,但环境一改变,它可能就不可信了。因此破坏信任源就可以破坏安全性。

2.2 信任源具有稳健性。稳健性越高,代价越高。

2.3 密码学的信任源是数学难题。

第三章 可证明安全性

1、语义安全性:

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

1.1 如何定义攻击者

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

1.2 定义攻击者目标

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

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

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

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

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

4、攻击者、挑战者模型

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

4.1 过程描述:

A. 攻击者自己任意选择两个消息m0、m1(注意,这个m0、m1是攻击者自己选的)。
B. 攻击者把这两个消息发送给挑战者。
C. 挑战者运行加密算法,加密任意一个,把加密结果发送给攻击者。
D. 攻击者猜测挑战者加密的是哪个消息。

4.2 攻击者优势:

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

5、安全参数:

量化安全性的重要依据。非对称密码加密需要一个统一的量化标准来衡量它的安全性,就引入了安全参数。安全参数一般和攻击者优势成倒数关系,安全参数越大,破解方案的复杂度会呈指数级升高。

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

熵代表不确定性,加密算法要求输出的明文的熵要高。在信息论的角度来看,任何一个函数都不能使输出熵大于输入熵,因此需要引入随机数来增加输入熵,使密文熵大于明文熵。

第四章 基于身份加密(IBE)

1、基于PKI的公钥加密

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

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

1.3 CA其他功能:
撤销已经失效的公钥,当接收方公钥不再有效时,告知发送方接收方的公钥已被撤销。

2、PKI存在的实际问题:

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

2.2 PKI存在问题的本质原因:公钥是随机生成的,因此与用户没有天然的绑定关系。

3、IBE:属性=身份=公钥

1.1 定义:

A. Setup算法
输入:安全参数
输出:系统公开参数和系统秘密参数

B. Extract算法
输入:系统秘密参数,用户的身份信息
输出:用户私钥

C. Enc算法
输入:系统公开参数,接收方的身份信息,明文
输出:密文

D. Dec算法
输入:接收方的私钥,密文
输出:明文

2.2 应用:邮件系统

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

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

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

2.3 IBE的实现:双线性映射

双线性映射可以用五元组(p,G1,G2,GT,e)来描述,G1,G2,GT是三个素数阶循环群,阶数皆为p,定义在这三个三个群上的一个映射关系e:G1*G2 —>GT,满足以下性质:

A. 双线性性
对于任意a,b∈Zp和R,S∈G1,有e(Ra, Sb) =e(R, S)ab
B. 非退化性:
若g1, g2为所在群生成元,则e(g1, g2)为gT生成元
C. 可计算性:
存在有效的算法对任意的R,S∈G1,计算e(R, S)的值

高级密码学_第1张图片

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

A. 用户私钥由密钥生成中心生成,因此该中心知道所有用户私钥,若用户私钥泄露,无法通过更新公钥的方式撤销泄露的私钥。
B. 一个用户对应多个私钥(指数个),使密钥生成中心无法知道用户选的是哪个私钥,基于私钥的取证技术,使得若攻击者使用了非用户选定的私钥来解密,可以被发现。

第五章 基于属性加密(ABE)

1、访问控制:

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

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

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

2、传统的访问控制问题:

数据库数据以明文形式存放,通过验证用户权限实现数据访问,其安全性完全依赖用户对服务器安全性的信任。

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

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

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

3、ABE

3.1 提出:

起源于模糊加密,不同的基于身份公钥能被同一个私钥解密

3.2 KP-ABE:

以明文的属性做公钥,以访问控制策略生成对应的私钥。密文则是和属性相关,而密钥与访问策略相关联。适合数据安全采集与共享。
高级密码学_第2张图片

3.3 CP-ABE:

以访问控制策略做公钥加密明文,以用户的属性生成对应的私钥。密文和加密者定义的访问策略相关联,密钥则是和属性相关联。适合企业数据安全存储与共享。
高级密码学_第3张图片

3.4 ABE定义

A. Setup算法
输入:安全参数
输出:系统公开参数和系统秘密参数

B. Extract算法
输入:系统秘密参数,用户的访问控制策略(KP-ABE)/属性(CP-ABE)
输出:私钥

C. Enc算法
输入:系统公开参数,明文的属性(KP-ABE)/访问控制策略(CP-ABE),明文
输出:密文

D. Dec算法
输入:私钥,密文
输出:明文

4、CP-ABE

4.1 基于CP-ABE的云存储系统

高级密码学_第4张图片

4.2 CP-ABE的实例

高级密码学_第5张图片

5、ABE的问题

通常,支持访问控制策略的能力越强,那么系统参数的数量越多、密文的长度越长,系统会变得非常复杂。

加密方为数据选择访问控制策略,访问控制策略随应用需求不断变化,需要专业人士来做,且维护起来比较复杂。

第六章 代理重加密(PRE)

1、PRE

1.1 PRE定义

高级密码学_第6张图片

2.2 基于PRE的安全云数据存储与共享

高级密码学_第7张图片

2.3 PRE实例

高级密码学_第8张图片

2.4 PRE待改进的地方

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

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

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

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

3、PRE小结:

相比于ABE,PRE以用户为中心,实现了用户自主可控的访问控制过程。

PRE的公钥类型与传统公钥体制一致,因此从工业的角度来说,更容易应用到现有密码系统中。

第七章 可搜索加密

1、产生背景:

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

2、密文外包检索

高级密码学_第9张图片

3、基于对称加密的密文检索方案(SSE)

3.1 基本模型

高级密码学_第10张图片

3.2 SSE设计思路(1)

A. 基本结构:

在这里插入图片描述

B. 存在的问题:

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

C. 解决方案:

引入文件标识,从物理上拆开可搜索密文与文件的常规密文。
高级密码学_第11张图片

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

3.3 SSE设计思路(2)

A. 引入标识后面临的问题:

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

B. 解决方案:

相同关键字的可搜索密文构建隐藏链式结构。
高级密码学_第12张图片

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

3.4 SSE设计思路(3)

高级密码学_第13张图片

3.5 SSE的定义(1)

高级密码学_第14张图片

3.6 SSE的定义(2)

高级密码学_第15张图片

3.7 SSE存在的问题

A. 可搜索密文的删除问题
逻辑删除,易于保证安全性
物理删除,容易破坏安全性

B. 多样化检索的问题
模糊检索、范围检索等等

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

4、PEKS

4.1 PEKS定义

高级密码学_第16张图片

4.2 基于PEKS的应用场景

高级密码学_第17张图片

4.3 PEKS实例

高级密码学_第18张图片

4.4 PEKS存在的问题

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

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

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

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

4.5 解决方法

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

5、SPCHS

5.1 简述

2015年我们提出了结构化公钥可搜索加密(SPCHS)概念,首次实现了检索复杂度只取决于包含查询关键字的可搜索密文的数量,而不是所有密文的数量,大幅提高了PEKS的效率。

5.2 核心思路

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

5.3 结构图

高级密码学_第20张图片

5.4 SPCHS的定义

高级密码学_第21张图片

5.5 基于SPCHS的应用场景

高级密码学_第22张图片

5.6 SPCHS存在的问题

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

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

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

6、小结

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

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

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

第八章 加密云邮件系统

1、背景

邮件的安全性十分重要,云邮件平台发展迅速,其安全性收到关注

2、SSL协议存在的问题

高级密码学_第23张图片

3、PGP和IBE协议存在的问题

高级密码学_第24张图片

4、加密云邮件的群发和群转发

SSL的群发和群转发均由云平台以明文方式处理。

PGP和IBE不支持加密邮件的群发,更严重的是不支持群转发。

5、CIBPRE

常规PRE方案。代理方重加密次数与接收者人数成正比,消耗较多的网络资源;发送者不能对云端的重加密对象做细粒度控制,换句话说,无法控制云端对密文的重加密范围。

基于身份广播代理重加密方案CIBPRE,实现用户细粒度控制远程密文数据的代理重加密过程,加强用户对自己密文数据的控制能力;实现群加密,为一组接收者生成一条初始密文或重加密密文,减少系统通信开销;实现身份信息做公钥,避免PKI的使用。

6、CIBPRE的定义

高级密码学_第25张图片

7、基于CIBPRE的邮件系统

基于CIBPRE的云邮件系统包括:可信的密钥生成中心(KGC)、云服务提供商、用户。

基于CIBPRE云邮件系统的具体工作流程如下:

A. 初始化阶段:KGC初始化CIBPRE方案生成系统参数。

B. 密钥管理阶段:当一个新用户加入到系统中,KGC为其生成一个私钥。

C. 发送加密邮件:发送者可以发送一封加密邮件给多个接收者,并且此加密邮件会在云端保存。

D. 转发历史加密邮件:发送者为新的多个接收者生成指定邮件的重加密密钥;根据该密钥,云端重加密指定的历史邮件密文,并发送给新的接收者。

8、异构加密邮件系统之间的安全性通信问题

实际应用中,不同的公司会选择不同参数、或者不同体质的密码算法来保障各自系统的安全性。

邮件系统是一种跨服务器、跨域的通信系统。

9、PRE间如何安全通信

思路一:针对两两不同的PRE分别提出解决方法。

思路二:提出通用的方法,使得任意两个PRE方案之间都可以通信。

10、加密邮件系统的其它问题

加密邮件的安全云检索。

加密垃圾邮件的云过滤。

第九章 总结

1、安全性

1.1 绝对安全:不依赖信任源

1.2 相对安全:依赖信任源、信任源具有动态性

1.3 可证明安全是现代密码学的核心

面向密码算法的特点,定义攻击者、攻击目标和安全指标。

基于数学难题,利用反证法证明密码算法的安全性。

2、安全通信

2.1 对称加密是完成安全通信的基础

2.2 公钥加密是完成对称密钥分发的基础

2.3 传统公钥密码体制需要PKI的支持

2.4 基于身份加密是新一代的公钥密码体制,避免了PKI的使用

以用户身份信息做公钥,实现了用户与其公钥的天然绑定。

3、安全控制

3.1 安全的外包数据提取、流转和共享的控制过程

3.2 基于属性加密

CP-ABE以访问控制策略为公钥,用户属性生成私钥。

KP-ABE以数据属性为公钥,用户的访问控制策略生成私钥。

3.3 代理重加密

公钥与传统的或基于身份的相同。

允许不可信第三方在授权条件下,将密文的已有公钥转换成另一个公钥。

云盘链接

链接:https://pan.baidu.com/s/1TcQLEwBtiJ2MxacYVw_1BA
提取码:hq33

你可能感兴趣的:(高级密码学)