计算机安全的核心 :CIA
1.机密性[防止信息泄露]C
数据机密性
隐私性
2.完整性[防止信息被篡改]I
数据完整性
系统完整性
3.可用性[确保资源可用]A
两个概念:认证性,责任可追踪性
OSI安全框架,X.800
1.为了有效评价一个机构的安全需求,并对各种安全产品和策略进行评估和选择,负责安全的管理员需要以某种系统的方法来定义安全需求并描述满足这些需求的措施
2.ITU-T X.800 “Security Architecture for OSI”即OSI安全框架;
提供了一个定义和提供安全需求的系统化方法;
提供了一个有用的学习研究的概貌。
3.OSI安全框架主要关注信息安全的三个方面:
-安全攻击,security attack
任何危及系统信息安全的活动。
-安全机制,security mechanism
用来保护系统免受侦听、阻止安全攻击及恢复系统的机制。
-安全服务,security service
加强数据处理系统和信息传输的安全性的一种服务。
X.800:为系统协议层提供的服务,用来保证系统或数据的传输有足够的安全性。
三种主要概念
1.安全攻击,security attack
任何危及系统信息安全的活动。
2.安全机制,security mechanism
用来保护系统免受侦听、阻止安全攻击及恢复系统的机制。
3.安全服务,security service
加强数据处理系统和信息传输的安全性的一种服务。
三种基本安全服务
X.800:
为系统协议层提供的服务,用来保证系统或数据的传输有足够的安全性。
RFC 2828[Internet Security Glossary ]:
定义:一种由系统提供的对系统资源进行特殊保护的处理或通信服务;安全服务通过安全机制来实现安全策略。
攻击认证的定义
威胁:威胁是利用脆弱性的潜在危险
攻击:有意违反安全服务和侵犯系统安全策略的智能行为
攻击的类型(X.800和RFC 2828)
被动攻击:试图了解或利用系统的信息但不影响系统资源。
主动攻击:试图改变系统资源或影响系统运作。
两种不同的认证: 实体认证和数据源认证
密码体制分两大类: (重点)
单钥体制(对称算法)
K1=K2
双钥体制(公钥算法)
K1‡K2
对称密码的要求:
一般要求:
1、加密解密用相同的密钥
2、收发双方必须共享密钥
安全性要求:
1、密钥必须保密
2、没有密钥,解密不可行
3、知道算法和若干密文不足以确定密钥
密码学分组:分组密码
1.对称密码(Symmetric Cipher)
明文
密文
密钥
加密算法 解密算法 (互逆)
明文按组(含多个字符)加密。(也称为分组密码,Block Cipher)
分组密码,就是一个明文分组被当作一个整体来产生一个等长(通常)的密文分组的密码,通常使用的是128位分组大小。
分组密码的实质是,设计一种算法,能在密钥控制下,把n比特明文简单而又迅速地置换成唯一n比特密文,并且这种变换具可逆性(解密)。
分组密码设计的基本原则:扩散混淆
1.扩散(diffusion)
将明文及密 钥的影响尽可能迅速地散布到较多个输出的密文中(将明文冗余度分散到密文中)。产生扩散的最简单方法是通过“置换(Permutation)”(比如:重新排列字符)。
2.混淆(confusion)
其目的在于使作用于明文的密钥和密文之间的关系复杂化,是明文和密文之间、密文和密钥之间的统计相关特性极小化,从而使统计分析攻击不能奏效。通常的方法是“代换(Substitution)”(回忆恺撒密码)。
AES算法的基本参数:迭代次数,密钥,分组的长度
1.核心思想:迭代交替地使用代换(S)、置换(P)
2.SPN—代换置换网络
3.Feistel
分组长度足够大(128-256比特)
密钥量要足够大(128)
迭代轮次(16)
子密钥产生算法要足够复杂
轮函数
快速软、硬件实现
简化分析难度(破译是困难的,但算法却简洁清晰)
AES算法的基本过程:四个步骤
字节代换
行移位
列混淆
轮密钥加
分组密码的工作模式
分组密码加密固定长度的数据分组,需要使用一些实际的方法来加密任意数量的明文
分组密码算法是基本构件,如何实际应用需要更多的考虑
五种工作模式:
电码本模式(ECB)
相同的明文对于相同的密文
结构化明文
消息有重复部分
主要用于发送少数量的分组数据
密码分组链接模式(CBC)
密码反馈模式(CFB)
输出反馈模式(OFB)
计数器模式(CTR)
效率
可并行加密
预处理
吞吐量仅受可使用并行数量的限制
加密数据块的随机访问
可证明安全
简单性(只要求实现加密算法)
密码学:公钥
使用两个密钥:公密钥、私密钥
加解密的非对称性
利用数论的方法
是对对称密码的重要补充
解决了密钥交换和数字签名基本问题
公钥密码组成部分
六个组成部分:
明文,密文:
公钥,密钥;
加密,解密算法;
公钥密码体制应该满足哪些要求
一般要求:
1、加密解密算法相同,但使用不同的密钥
2、发送方拥有加密或解密密钥,而接收方拥有另一个密钥
安全性要求:
1、两个密钥之一必须保密
2、无解密密钥,解密不可行
3、知道算法和其中一个密钥以及若干密文不能确定另一个密钥
RSA
加密: C≡Me mod N, where 1<M<N
解密: M≡Cd mod N
公钥为(e,N), 私钥为(d,N)
必须满足以下条件:
Med ≡ M mod N
计算Me和Cd是比较容易的
由e和n确定d是不可行的
[(a mod n) × (b mod n)] mod n = (a × b) mod n
RSA算法的密钥生成过程
随机选择两个不等的大素数 p, q
计算 N=p.q
注意 ø(N)=(p-1)(q-1)
选择 e使得1<e<ø(N),且gcd(e,ø(N))=1
解下列方程求出 d
e.d≡1 mod ø(N) 且 0≤d≤N
公布公钥: KU={e,N}
保存私钥: KR={d,N}
RSA算法的基本运算方法
RSA的使用
发送方要加密明文M:
获得接收方的公钥 KU={e,N}
计算: C≡Me mod N, where 0≤M<N
接收方解密密文C:
使用自己的私钥 KR={d,N}
计算: M=Cd mod N
注意:M必须比N小
RSA公钥体制的安全性建立在哪种事实之上
Diffie-Hellman密钥交换的安全性建立在如下事实之上:求关于素数的模幂运算相对容易,而计算离散对数问题却非常困难;对于大素数,求离散对数问题被认为是计算不可行的。
EGCD
Hash 与MAC 部分
Hash不是加密解密函数
Hash 函数当用来提供消息认证功能时,hash 函数值通常被称为消息摘要
HASH 的功能,安全定义
Hash 函数的定义:
Hash函数是将任意长度的报文映射成一个较短的定长输出报文的函数.
如下形式: h = H(M), M是变长的报文,h是定长的Hash值.
Hash函数的目的是为文件、报文或其它的分组数据产生“数字指纹”.
要求:
单向性
弱抗碰撞性
强抗碰撞性
报文认证码(MAC)的标准构造方法:CMAC,HMAC
认证(Authentication)是防止主动攻击的重要技术,对开放系统安全性起到重要作用.
认证的主要目的
实体认证(发送者非冒充)
报文认证(验证信息的完整性)
CMAC—基于分组加密的MAC
CMAC即CBC-MAC
计算方法:M=M1+M2+…+Mn
C1=E(K,M1)
C2=E(K,[M2+C1])
C3=E(K,[M3+C2])
……
Cn=E(K,[Mn+Cn-1])
Output: T=MSBtlen(Cn)
HMAC--基于hsah函数的消息认证码
HMAC (RFC 2104)
HMACK = H[(K+ + opad) ||
H[(K+ + ipad)|| M]]
报文认证码的应用
SHA-3的基本操作,基本迭代结构
密钥交换
数字签名的基本概念
数字签名是认证的重要工具
为什么需要数字签名:
报文认证用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
目标:防止报文被伪造,用于保证数据的完整性
操作:签名者对改报文产生一串公开且他人无法伪造的数据串
方法:PKC+Hash
密钥交换协议:Diffie-Helfman协议,基本过程
简称DH密钥交换
DH方法针对的是以下困难的局面:Alice和Bob 想共有一个密钥,用于对称加密。但是他们之间的通信渠道是不安全的。所有经过此渠道的信息均会被敌对方:Eve看到。哪他们要如何交换信息,才能不让Eve知道这个密钥呢?
以下是DH协议的方案:
Alice和Bob先对p 和g达成一致,而且公开出来。Eve也就知道它们的值了。
Alice取一个私密的整数a,不让任何人知道,发给Bob 计算结果:A=ga modp. Eve 也看到了A的值。
类似,Bob 取一私密的整数b,发给Alice计算结果B=gb mod p.同样Eve也会看见传递的B是什么。
Alice 计算出S=B a mod p=(gb)a modp=gabmod p.
Bob 也能计算出S=Ab mod p=(ga)bmodp=gabmod p.
Alice 和 Bob 现在就拥有了一个共用的密钥S.
虽然Eve看见了p,g, A and B, 但是鉴于计算离散对数的困难性,她无法知道a和b 的具体值。所以Eve就无从知晓密钥S 是什么了。
认证系统
证书的定义,功能,证书链
认证中心CA:颁发和撤销证书
PKI的基本概念与功能
PKI=Public Key Infrastructure
公钥基础设施
Public Key Infrastructure:用来提供可靠易用的公钥密码操作的系统的总称。
主要目标:保障大型开放式网络环境下网络和信息系统安全。
所采用技术:用非对称密码学原理和技术实现并提供安全服务、具有通用性,并遵循国际标准。
(kerberos,FIM不考)
认证协议(重点)
弱认证(基于口令的认证)
口令弱
强认证(质询-应答协议)
密钥强
弱认证
口令
用户提供一个口令,计算机验证该口令。如果输入的口令是和该用户相对应的口令,则用户的身份得到认证,否则,拒绝该口令,同时认证失败 。
口令认证协议
Alice:g^x. M^pw
Bob: g^y. N^pw
g, M,N是 Z_q 的生成元
x,y是随机数,pw是口令,映射成群Z_q上的元
最后双方得到 g^(xy)
什么是离线字典攻击
攻击者可通过穷举字典中的口令,从而猜测出特定用户的口令。两个条件:
1、口令在字典中;
2、可以判断选用的口令是否正确;
强认证(以公钥体制的协议为主)
密钥
假设用户U想向系统S认证自己。设U和S有个协商好的秘密函数f。质询-应答认证系统就是这样一个系统:S发送一个随机消息m(Challenge)给U,用户U回应以m的变形r=f(m)(Response)。S通过独立计算r来验证r。
(本次以公钥体制的协议为主)
如何求乘法逆元(待解决)
Zn 中的任一整数有乘法逆元,当且仅当该整数与n 互素。
最大公约数
gcd [a(x), b(x)] = gcd [b(x), a(x)mod b(x)]