攻击的种类:中断(Interruption)(干扰)、截取(Interception) (侦听)、修改(Modification)、伪造(Fabrication) 对称密码体制的优缺点 优点:加密速度快 缺点:密钥需要谨慎保管,密钥更新和交换困难、多人通信密钥数量会出现爆炸性增长、不易于实现数字签名 非对称密码体制的优缺点 优点:可以适用网络的开放性要求,密钥管理相对简单;群组通信下,N个用户只需要N对密钥;密钥分配较为简单,不需要秘密信道和复杂协议传送密钥;可以实现数字签名; 缺点:加密速度慢,实现较为复杂;安全性建立在计算复杂性假设下,安全性相对较低 加密系统的安全分析 明文攻击:从密文中得到的有关明文的信息;
密钥攻击:从密文和明文的分析中获取密钥信息 密钥安全:从密文和明文的分析中获取密钥信息,和在没有密文/明文情况下得到的是一样的 语义安全的类型 唯密文攻击:攻击者只有密文串,想求出明文或密钥。 已知明文攻击:攻击者知道明文串及对应的密文串,想求出密钥或解密变换。 选择明文攻击:攻击者不仅知道明文串及其对应密文串,而且可选择用于加密的明文,想求出密钥及解密变换。 选择密文攻击:攻击者不仅知道明文串及对应密文串,且密文串由攻击者选择,想求出密钥及解密变换。 ECC的安全性基于椭圆曲线离散对数问题的难解性。 GF(p)域上的椭圆曲线是对于固定的a、b值,满足形如方程Y^2 =X^3 +aX+b mod(p)的所有点的集合,外加一个零点或无穷远点。 椭圆曲线加密算法:略。 密钥管理的内容现代密码系统的安全是由密钥安全保证的 主密钥(Main Key):又称初始密钥(Primary Key) 或用户密钥(User key),是参与或控制密码变换,在一段时间内不进行更换的密钥。 会话密钥(Session Key):在一次通话或交换数据时使用的临时密钥。通常与主密钥相结合对消息进行加密,且一报一换。 密钥分发:通信一方将会话密钥分发给另一方的过程 密钥协商:通信双方或多方共同形成会话密钥的过程(保证计算结果的一致性和有效性) 交互式证明系统:是一类计算模型,像其它计算模型一样,我们的目标是对一个语言类L,和一个给定的输入x,判断x 是否在L中。它的计算过程:给定了输入x,通过验证者和证明者之间交换信息,最终,由验证者来根据证明者给出的信息,判断给定的输入是不是在语言L中。证明者与验证者之间满足下面性质: 能力假设:验证者具有多项式时间确定图灵机的计算机能力,但是证明者具有无限大的计算能力; 运行规则:博弈双方共走m步,且由验证者(或证明者)先行;
NP-问题:在非确定图灵机M 内多项式时间可解决的问题;NP问题能够转化为确定图灵机M'下的判定问题。 在交互协议中,如果证明者P与验证者V的交互过程中,任何一方不能学习到对方的"知识",那么被称为对方是"零知识"的。"知识"是指具有解决某种问题的能力。如果在证明过程中,验证者能够验证证明者的宣称,但是不能获得证明者所掌握的知识,那么称为零知识证明系统。如何验证协议是零知识证明系统:模型检验(主要通过显式状态搜索或隐式不动点计算来验证有穷状态并发系统的模态/命题性质。) 数字认证过程本质是一个交互证明过程;交互证明过程需要满足两个属性:完整性和完备性;交互证明过程可以在证明者具有无限计算能力下,依然不能进行欺骗;而验证者只需很弱计算能力 消息认证(有问题,看数字签名一章):验证消息没有被改变,即完整性认证 Hash函数一般满足以下几个基本需求:1)输入x可以为任意长度;2)输出数据长度固定;3)容易计算,给定任何x,容易计算出x的Hash值H(x);4)单向函数:即给出一个Hash值,很难反向计算出原始输入;5)碰撞性:即难以找到两个不同的输入会得到相同的Hash输出值(在计算上是不可行的)。 Hash函数的安全要求: • 单向性:已知y ,找出x,使得Hash k (x)=y 困难 • 弱碰撞:已知x ,找出x'≠x,使得Hash k (x')= Hash k (x) 困难 • 强碰撞:找出任意x'≠x,使得Hash k (x')= Hash k (x) 困难 • 困难性具有递增关系 迭代压缩解决无限输入和有限输出的问题 为什么SHA-1是80轮? • 每轮只进行了32比特一个单元的混淆 • 每组5个单元,需要5次 • 每次压缩为16分组,供需要16次才能将所有信息进行处理 • 16*5=80轮 • 前16轮给SHA-1快速"填料",后64轮加速混淆
输入空间有限的hash函数称为压缩函数;输入空间无限的hash函数由压缩函数迭代而成。(链状、树状) MAC:消息认证码带密钥的Hash函数用于消息完整性验证,不要机密性 通过Hash函数构造的通常的方法:MAC key (M)=Hash(key||M) CBC-MAC:将任何工作于CBC模式的常规加密算法作为报文鉴别函数,并将CBC模式产生的最后一个密文分组当作MAC。例如DAA。 盲验证:指在验证者看不到数据情况下对数据进行验证的方法(交互式证明) 盲签名:指在签名者看不到数据情况下对数据进行签名的方法 数字签名:实现用户对消息的认证 消息认证:对信息系统中的数据或通信中的消息来源进行认证。完整性验证用以保护双方之间交换数据不被修改,但它并不保证数据来源的真实性。消息认证是认证消息的确来源于某个实体,即消息来源的正确性。 数字签名方案一般由两部分组成:签名算法、验证算法
• 选择性伪造:给定x,计算y,使得Verify(x,y)=1 • 存在性伪造:产生(x,y),使得Verify(x,y)=1 基于单向陷门的签名通常构造(补充) 单向陷门f(m)=c是公开函数;存在陷门钥匙k,使得f -1 (k;c)=m 验证:如果存在r,使得H(m)=f(H(m)+r),r 是计算困难的 签名:r=H(m)+ f -1 (k;H(m))就为签名 基于身份的签名(IBS):采用标识身份的字符串来验证签名的有效性;身份加密的本质是群组密码。签名:σ=Sign(PP,M,Sk i ,ID i ) 验证:Verify(PP,M, σ,ID i )=1? RSA下的IBS方案: 盲签名的两个要求:待签消息的内容对签名人是盲的;签名接收者能将签名转化为普通的签名。强盲签名、弱盲签名、部分盲签名 盲签名原理:盲化f-签名-去盲g 盲签名的性质:不可连接性(签名者即使依靠保留的签名时信息,也无法与具体的某次签名过程相对应)、匿名性(如果是不可链接的,那么用户可以做到匿名;弱匿名:如果仅给定给定m1和m2是不可链接的(一般盲性);强匿名:给定给定(m1,Sign(m1))和(m2,Sign(m2))是不可链接的;) RSA盲签名:发送者A接收B关于盲消息的签名 B的RSA公钥和私钥分别是(n, e)和d。k是A随机选择的秘密数,且。 (盲化)A计算,将它发送给B (签名)B计算,将它发送给A
代理签名:是指原始签名人授权他的签名权给代理签名人,然后让代理签名人代表原始签名人生成有效签名。安全性要求:不可伪造性:只有原始签名者和指定的代理签名者能够产生有效的代理签名。可验证性:从代理签名中,验证者能够相信原始的签名者认同了这份签名消息。可识别性( 区分性):原始签名者能够从代理签名中识别代理签名者的身份。不可否认性:代理签名者不能否认由他建立且被认可的代理签名。可跟踪性:多个签名者,应该能够区分不同签名者的签名。 完全代理签名:代理者和委托者的签名无法区分,完全授权 部分代理签名:代理者和委托者的签名可以区分 托管式代理签名:委托者能够伪造代理者的签名 非托管式代理签名:委托者不能够伪造代理者的签名 代理签名的组成:1) 初始化过程:签名体制的参数、用户的密钥等2) 权力委托过程:代理者的密钥生成过程3) 代理签名的生成过程:签名4) 代理签名的验证过程:验证 ElGamal的代理签名:略。 基于Elgamal签名函数如下定义: K-P-W代理签名方案(非密钥托管):略。 群签名:群组内每个人都可以签名;多重数字签名:签名需要一组内一定数量的人都签名;不可否认数字签名:需要签名者在线帮助的签名。 身份认证也称为实体认证:一方(证明者A)向另一方(验证者B)证明其身份的过程。 身份认证的要求:可验证性:A能向B证明身份,B成功的接受验证;不可假冒性:任何其他人C不能假冒A;不可传递性:B不能用A的身份证明过程进行欺骗。 身份认证的基础是A所具有的可信任的事物,被称为:信任根,信任凭证。认证过程不能直接传送"信任根",避免重放攻击。对付重放攻击的有效方法:•随机数:每次认证采用不同随机数•序列数:采用序号作为时变参数 •时间戳:采用时间作为时变参数。 安全令牌:每隔固定间隔产生一个基于同步序列的随机数 证书定义:Cert={ID, PK, T, AS, Sign AS (ID,PK, T,AS)} 零知识证明协议通常分为三步: A➡️B:witness B➡️A:challenge A➡️B:response KERBEROS认证系统: OAUTH认证协议 OAuth是一个开放标准,允许用户让第三方应用B访问该用户U在某网站A 上存储的私密的资源,而无需将用户名和密码提供给第三方应用。OAuth 为客户端B提供了一种代表资源拥有者U访问受限资源A的方法: 在客户端B访问受保护资源A之前,必须先从资源拥有者U获取授权/访问许可然后,用访问许可交换访问令牌;客户端B通过向资源服务器A出示访问令牌来访问受保护资源。 1. 服务B向服务A请求临时凭据 2.服务B将用户的请求重定位到服务A,此时在服务A上提供用户操作的明细,并要求用户输入(用户名-密码),授权服务B对服务A上的用户私有数据的访问 3. 用户授权应用后,服务A会将请求重定向到服务B在之前设定的地址,重写向后会提示用户已经完成了授权流程,可以开始访问服务A上的数据,与此同时,服务B在收到oauth_verifier后,再向服务A请求令牌凭证,服务A对服务B的请求授权。 4. 服务B取得服务A上的令牌凭据后,就可以访问用户在服务A上的私有数据,服务B可以一直使用凭据访问服务A中的私有数据,直到用户吊销凭据或超出授权期限。
|
|