计算机的安全性
安全等级
计算机系统中的三类安全性是指技术安全性、管理安全性和政策法律安全性。
信息安全五要素
机密性:全包信息不暴露给未授权的实体或进程。
完整性:只有得到允许的人才能够修改数据,并能够判别出数据是否已被篡改。
可用性:得到授权的实体在需要时可访问数据。
可控性:可以控制授权范围内的信息流向及行为方式。
可审查性:对出现的安全问题提供调查的依据和手段。
加密与认证技术
加密技术
对称加密技术
解密与加密使用的密钥相同。常用的对称加密算法有以下几种:
数据加密标准(DES)算法
DES主要采用替换和移位方法加密。
它用56位密钥对64位二进制数据块进行加密,每次加密可对64位的输入数据进行16论编码,进行一系列替换和移位后,输入的64位院士数据转换成完全不同的64位输出数据。
三重DES/TEDA
在DES的基础上采用TEDA,即用两个56位密钥
K
1
K_1
K1和
K
2
K_2
K2。
发送方用
K
1
K_1
K1加密,
K
2
K_2
K2解密,再使用
K
1
K_1
K1加密。接收方则使用
K
1
K_1
K1解密,
K
2
K_2
K2加密,再使用
K
1
K_1
K1解密。
其效果相当于将密钥长度加倍
RC-5
国际数据加密算法(IDEA)
IDEA的密钥长度为128位,每轮加密都使用从完整的加密密钥中生成的一个子密钥。
高级加密算法(AES)
AES算法基于排列和置换运算。
AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。
非对称加密技术
加密和解密使用不同的密钥。
用公有密钥加密,只有对应的私有密钥才能解密,反之亦然。
基本过程
甲方生成一对密钥并将其中的一把作为公用密钥向其他方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把私用密钥对加密后的信息进行解密。
RSA算法
RSA算法是一种公钥加密算法,安全性基于大素数分解的困难性。它按照如下要求选择公钥和私钥:
(1)选择两个大素数
p
p
p和
q
q
q(大于
1
0
100
10^{100}
10100)
(2)令
n
=
p
×
q
n=p\times q
n=p×q和
z
=
(
p
−
1
)
×
(
q
−
1
)
z=(p-1)\times (q-1)
z=(p−1)×(q−1)
(3)选择d与z互质
(4)选择
e
e
e,使
e
×
d
=
1
(
m
o
d
z
)
e\times d=1(mod \ z)
e×d=1(mod z)
加密时对明文P进行以下计算得到密文C:
C
=
P
e
(
m
o
d
n
)
C=P^e(mod \ n)
C=Pe(mod n)
这样公钥为
(
e
,
n
)
(e,n)
(e,n)
解密时计算:
P
=
C
d
(
m
o
d
n
)
P=C^d(mod\ n)
P=Cd(mod n)
这样私钥为
(
d
,
n
)
(d,n)
(d,n)
密钥管理
密钥是有生命周期的,它包括密钥和整数的有效时间,以及已撤销密钥和证书的维护时间。
密钥产生
私钥由用户保管,公钥和其他信息则由CA中心签名,从而产生证书。
密钥备份和恢复
密钥更新
多密钥的管理
认证技术
认证技术主要解决网络通信过程中通信双方的身份认可。认证的过程涉及加密和密钥交换。
认证方法一般有账户/口令认证、使用摘要算法认证和基于PKI(公开密钥体系)的认证。
Hash函数与信息摘要
哈希函数提供了一个计算过程:输入一个长度不固定的字符串,返回一串长度固定的字符串,又称哈希值。
信息摘要可以被看作一份长文件的“数字指纹”,主要用于创建数字签名,对于特定的文件而言,信息摘要是唯一的。它不会透露相应文件的任何内容,因此可以被公开。
数字签名
主要过程:
(1)信息发送者使用一个单向散列函数(哈希函数)对信息生成信息摘要。
(2)信息发送者使用自己的私钥签名信息摘要。
(3)信息发送者把信息本身和已签名的信息摘要一起发送出去。
(4)信息接收者通过使用与信息发送者使用的同一个单向散列函数(哈希函数)对接收的信息生成新的信息摘要,再使用信息发送者的公钥对信息摘要进行验证,以确认信息发送者的身份和信息是否被修改过。
数字签名使用的是发送方的密钥对,发送方用自己的私钥进行加密,接收方用发送方的公开密钥进行解密,这是一个一对多的关系。任何拥有发送方公开密钥的人都可以验证数字签名的准确性。
数字签名只采用了非对称加密算法。
数字加密则使用的是接收方的密钥对,这是多对一的关系,只有唯一拥有接收方私钥的人才能对信息解密。
SSL协议
可以被概括为是一个保证任何安装了安全套接字的客户和服务器间事务安全的协议。
数字时间戳
数字时间戳是数字签名级数的一种变种应用。
计算机的可靠性
计算机的RAS
计算机的可靠性是指从它开始运行(t=0)到某时刻t这段时间内能正常运行的概率,用
R
(
t
)
R(t)
R(t)表示。
失效率用
λ
\lambda
λ表示,是指单位时间内失效的元件数域元件总数的比例。当
λ
\lambda
λ为常数时,可靠性与失效率的关系为
R
(
t
)
=
e
−
λ
t
R(t)=e^{-\lambda t}
R(t)=e−λt
典型的失效率曲线是“浴盆曲线”。
平均无故障时间即为(MTBF)的公式:
M
T
B
F
=
1
λ
MTBF=\frac{1}{\lambda}
MTBF=λ1
通常用平均修复时间(MTRF)来表示计算机的可维修性,即计算机的维修效率,指从故障发生机器修复平均所需要的时间。
计算机的可用性是指计算机的使用效率,它以系统在执行任务的任意时刻能正常工作的概率
A
A
A来表示,即:
A
=
M
T
B
F
M
T
B
F
+
B
T
R
F
A=\frac{MTBF}{MTBF+BTRF}
A=MTBF+BTRFMTBF
计算机的RAS就是指用可靠性R,可用性A和可维修性S三个指标衡量一个计算机系统。
计算机可靠性模型
常见的系统可靠性数学模型有以下三种
1.串联系统
串联由N个子系统组成,当且仅当所有的子系统都能正常工作时,系统才能正常工作。
由于可靠性R是一个概率值,串联系统是并逻辑。故设系统中各个子系统的可靠性度量值分别为
R
1
,
R
2
,
.
.
.
,
R
N
R_1,R_2,...,R_N
R1,R2,...,RN,则系统的可靠性
R
R
R为:
R
=
R
1
R
2
.
.
.
R
N
R=R_1R_2...R_N
R=R1R2...RN
由失效率的定义可知系统的失效率
λ
=
λ
1
+
λ
2
+
.
.
.
+
λ
N
\lambda=\lambda_1+\lambda_2+...+\lambda_N
λ=λ1+λ2+...+λN
2.并联系统
并联系统由N各子系统组成,只要有一个子系统正常工作,系统就能够正常工作。则
R
=
1
−
(
1
−
R
1
)
(
1
−
R
2
)
.
.
.
(
1
−
R
N
)
R=1-(1-R_1)(1-R_2)...(1-R_N)
R=1−(1−R1)(1−R2)...(1−RN)
3.N模冗余系统
N模冗余系统由N(N=2n+1)个相同的子系统和一个表决器组成,表决器把N个子系统中占多数相同结果的输出作为系统的输出。因此,在N个子系统中,只要有n+1个及以上子系统能正常工作,系统就能够正常工作。
假设表决器是完全可靠的,每个子系统的可靠性为
R
0
R_0
R0,则N模冗余系统可靠性度量值为
R
=
∑
i
=
n
+
1
N
C
N
i
×
R
0
i
(
1
−
R
0
)
N
−
i
R=\sum\limits_{i=n+1}^NC_N^i\times R_0^i (1-R_0)^{N-i}
R=i=n+1∑NCNi×R0i(1−R0)N−i