1,前言概述
- 信息加密技术是利用密码学的原理与方法对传输数据提供保护的手段,它以数学计算为基础,信息论和复杂性理论是其两个重要组成部分。
- 信息论主要包括香农关于保密系统的信息理论。
- 密码学复杂性理论主要讨论算法复杂性和问题复杂性两个方面。
- 密码技术主要由密码编码技术和密码分析技术组成。
- 密码编码技术主要解决产生安全有效的密码算法问题,实现对信息的加密或认证。
- 密码分析技术主要解决破译密码或伪造认证码问题,从而获取保密信息或进行破坏活动。
1,密码学基础概念
- 密码学(Cryptology)是研究信息系统安全保密的科学,是密码编码学和密码分析学的统称。
- 密码编码学(Cryptography)是关于消息保密的技术和科学。从事此行业的人员被称为密码编码者(Cryptographer)。
- 密码分析学(Cryptanalysis)是与密码编码学相对应的技术和科学,即研究如何破解密码的科学和技术。密码分析者(Cryptanalyst)是从事密码分析的专业人员。
- 密码学五元组:{明文,密文,密钥,加密算法,解密算法},对应的加密方案称为密码体系或密码。
- 明文(Plaintext)
- 消息的原始形式,通常用m或p表示。所有可能明文的有限集称为明文空间,通常用M或P表示。
- 密文(Ciphertext)
- 消息被加密处理后的形式,通常用c表示。所有可能密文的有限集称为密文空间,通常用C表示。
- 密钥(Key)
- 参与密码变换的参数,通常用k表示。一切可能的密钥构成的有限集称为密钥空间,通常用K表示。
- 加密算法(Encryption Algorithm)
- 将明文转换成密文的函数,相应的变化过程称为加密,即编码,通常用E表示,即
c
=
E
k
(
p
)
c=E_k(p)
c=Ek?(p)。
- 解密算法(Decryption Algorithm)
- 将密文恢复为明文的函数,相应的变换过程称为解密,即解码,通常用D表示,即
p
=
D
k
(
c
)
p=D_k(c)
p=Dk?(c)。
- 对于有实用意义的密码体制而言,要求它满足
p
=
D
k
(
E
k
(
p
)
)
p=D_k(E_k(p))
p=Dk?(Ek?(p)),即用加密算法得到的密文总是能用一定的解密算法恢复出原始的明文。
2,加密体系类别
- 从原理上可分为两类,单钥或对称密码体制(One-Key or Symmetric Cryptosystem)和双钥或非对称密码体制(Two-Key or Asymmetric Cryptosystem)
1,单钥密码体制
-
使用的加密密钥和解密密钥相同,或实质上等同,从一个可以推出另一个。 -
主要应用于数据加密,消息认证等。最有影响力的单钥密码是DES算法。 -
系统的保密性主要取决于密钥的安全性,因此如何将密钥安全可靠的分配给通信对方,其中包括密钥产生,分配,存储和销毁等多方面的问题统称为密钥管理(Key Management),这是影响系统安全的关键因素。 -
单钥密码体制基本元素包括原始的明文,加密算法,密钥,密文及攻击者。
- 发送方通过加密算法根据输入的消息P和密钥K生成密文C=[
C
1
C_1
C1?,
C
2
C_2
C2?,…,
C
N
C_N
CN?],即==
C
=
E
k
(
P
)
C=E_k(P)
C=Ek?(P)==。
- 接收方通过解密算法根据输入的密文C和密钥K恢复明文P=[
P
1
P_1
P1?,
P
2
P_2
P2?,…,
P
M
P_M
PM?],即==
P
=
D
K
(
C
)
P=D_K(C)
P=DK?(C)==。
- 攻击者(密码分析者)能够基于不安全的公开信道观察密文C,但不能接触到明文P或密钥K,可以试图恢复明文P或密钥K。
-
单钥密码的安全性主要取决于两个因素;
- 加密算法必须足够安全。
- 密钥必须保密并保证有足够大的密钥空间。
-
单钥密码优缺点
- 优点:
- 缺点:
- 密钥是保密通信的关键,发信方必须安全的把密钥发送到接收方,不能泄露其内容。
- 多人通信时密钥组合的数量会剧增,密钥分发更加复杂化。
- 通信双方必须统一密钥,才能发送保密信息。
- 数字签名困难。
2,双钥密码体制
- 将加密和解密能力分开,因而可以实现多个用户加密的消息只能由一个用户解读,或只能由一个用户加密消息而使多个用户可以解读。
- 原理:
- 加密密钥与解密密钥不同,两个密钥形成一个密钥对,用其中一个密钥加密的结果,可以用另一个密钥来解密。
- 产生的原因:
- 解决常规密钥密码体制的密钥管理与分配的问题。
- 满足对数字签名的需求。
- 双钥密码体制中,公开密钥是可以公开的信息,而私有密钥是需要保密的。加密算法E和解密算法D也都是公开的。用公开密钥对明文加密后,仅能用与之对应的私有密钥解密,才能恢复出明文,反之亦然。
- 使用双钥密码时,用户有一对选定的密钥:一个是可以公开的,用
k
1
k_1
k1?表示;一个是秘密的,用
k
2
k_2
k2?表示。因此双钥密钥体制又称为公钥体制(Public Key System)。
- 双钥密码体制既可用于公共通信网的保密通信,也可用于认证系统中对消息进行数字签名。
- 双钥密钥最为代表性的为RSA密码体制
- 双钥密码优缺点
- 优点:
- 可公开加密密钥,密钥管理较为简单。
- 可用于数字签名。
- 缺点:
2,加密算法
1,古典密码算法
- 古典密码算法主要有代码加密,代替加密,变位加密和一次性密码薄加密等几种算法。
- 代码加密使用通信双方预先设定的一组有确切含义的代码来发送消息,一般只能用于传送一组预先约定的消息。
- 代替加密将明文中的每个字母或每组字母替换成另一个或一组字母,可用来发送任何信息,但安全性不及代码加密。
- 变位加密不隐藏明文的字符,即明文的字母保持相同,但其顺序被打乱重新排列成另一种不同的格式,由于密文字符与明文字符相同,密文中字母的出现频率与明文中字母的出现频率相同,分析者可以容易地由此进行判别。
- 一次性密码薄加密具有代码加密的可靠性,又保持了代替加密的灵活性,密码薄每页都是不同的代码表,可用一页上的代码来加密一些词,用后销毁,再用另一页加密另一些词,直至全部的明文完成加密,破译的唯一办法就是获取一份相同的密码薄。该方法可操作性不强,很少使用。
- 代替加密常用算法实现
1,简单代替密码或单字母密码
- 将明文字母表M中的每个字母用密文字母表C中的相应字母来代替。包括移位密码,替换密码,仿射密码,乘法密码,多项式代替密码和密钥短语密码等。
- 移位密码
- 将字母表的字母右移k个位置,并对字母表长度进行模运算,为:
e
k
(
m
)
=
(
k
+
m
)
=
c
m
o
d
??
q
e_k(m)=(k+m)=c \mod q
ek?(m)=(k+m)=cmodq,解密变换为:
d
k
(
c
)
=
(
m
?
k
)
=
m
m
o
d
??
q
d_k(c)=(m-k)=m \mod q
dk?(c)=(m?k)=mmodq。
- 凯撒密码是对英文26个字母进行移位代替的密码,其q=26。
- 替换密码
- 对明文字母表进行q个字符的所有可能置换得到密文字母表。
- 乘法密码
- 将每个字母乘以一个密钥k,即
e
k
(
m
)
=
k
m
m
o
d
??
q
e_k(m)=km \mod q
ek?(m)=kmmodq,其中,k和q互素。
- 仿射密码
- 替换密码的特例,加密形式为
e
k
(
m
)
=
(
k
1
m
+
k
2
)
=
c
m
o
d
??
q
e_k(m)=(k_1m+k_2)=c \mod q
ek?(m)=(k1?m+k2?)=cmodq,其中,
k
1
k_1
k1?和
q
q
q互素。
- 简单代替密码由于使用从明文到密文的单一映射,明文字母的单字母出现频率分布与密文中相同,可以通过使用字母频率分析法进行唯密文攻击。
2,多名或同音代替
- 每个明文字母可以加密成多个密文字母。同音代替密码比简单代替密码更难破译。
- 若明文字母的其他统计信息在密文中仍很明显时,那么同音代替密码仍然是可破译的。
3,多表代替
- 由于单字母出现频率分布与密文中相同,因此多表代替密码使用从明文字母到密文字母的多个映射来隐藏单字母出现的频率分布,每个映射是简单代替密码中的一对一映射。
- 多表代替密码最为常见的为维吉尼亚密码(Vigenere)和博福特密码(Beaufort)。
- 多表代替密码有多个单字母密钥,每一个密钥被用来加密一个明文字母。第一个密钥加密明文的第一个字母,第二个密钥加密明文的第二个字母,所有密钥用完后,密钥再循环使用。
4,多字母或多码代替
- 多字母代替密码将明文字符划分为长度相同的消息单元,称为明文组,对字符块成组进行代替,因而使密码分析更加困难。
- 多字母代替的优点是容易将字母的自然频度隐蔽或均匀化,从而有利于抗击统计分析。
2,单钥加密算法
- 加密模式主要有序列密码(也称为流密码)和分组密码两种方式。
- 流密码(Stream Cipher)是将明文划分成字符(如单个字母),或其编码的基本单元(如0,1数字),字符分别与密钥流作用进行加密,解密时以同步产生的同样的密钥流解密。流密码的强度完全依赖于密钥流序列的随机性和不可预测性,其核心问题是密钥流生成器的设计,流密码主要用于政府和军事等要害部门。
- 根据密钥流是否依赖于明文流,可将流密码分为同步流密码和自同步流密码。
- 分组密码(Block Cipher)是将明文消息编码表示后的数字序列
x
1
,
x
2
,
.
.
.
,
x
i
,
.
.
.
x_1,x_2,...,x_i,...
x1?,x2?,...,xi?,...划分为长为
m
m
m的组
x
=
(
x
0
,
x
1
,
.
.
.
,
x
m
?
1
)
x=(x_0,x_1,...,x_{m-1})
x=(x0?,x1?,...,xm?1?),各组(长为m的矢量)分别在密钥
k
=
(
k
0
,
k
1
,
.
.
.
,
k
1
?
1
)
k=(k_0,k_1,...,k_{1-1})
k=(k0?,k1?,...,k1?1?)控制下变换成等长的输出数字序列
y
=
(
y
0
,
y
1
,
.
.
.
,
y
n
?
1
)
y=(y_0,y_1,...,y_{n-1})
y=(y0?,y1?,...,yn?1?)(长为n的矢量),其加密函数E:
V
n
?
K
→
V
n
V_n *K \to V_n
Vn??K→Vn?,
V
n
V_n
Vn?是n维矢量空间,K为密钥空间。
- 分组密码最为代表性的为DES和IDEA算法。
1,数据加密标准DES
- 数据加密标准(Data Encryption Standard,DES)
- 一种对二元数据进行加密的分组密码,数据分组长度为64bit,密文分组长度64bit,没有数据扩展。密钥长度为64bit,其中有效密钥长度56bit,其余8bit为奇偶校验。
- 系统的安全性主要依赖于密钥的保密,其算法主要由初始置换IP,16轮迭代的乘积变换,逆初始置换
I
P
?
1
IP^{-1}
IP?1及16个子密钥产生器构成。
- 初始置换IP及逆初始置换
I
P
?
1
IP^{-1}
IP?1
- 初始置换IP是将64bit明文的位置进行置换,得到一个乱序的64bit明文组,而后分为左右两个32bit的分段,以
L
0
L_0
L0?和
R
0
R_0
R0?表示,为随后进行的乘积变换做准备。
- 逆初始置换
I
P
?
1
IP^{-1}
IP?1是将16轮迭代后给出的64bit组进行置换,得到输出的密文组。
- 乘积变换
- 乘积变换是DES算法的核心部分,主要完成DES的迭代运算过程,将经过IP置换后的数据分成32bit的左右两组,在迭代过程中彼此左右交换位置。每次迭代时只对右边的32bit进行一系列的加密变换,在此轮迭代快结束时,将左边的32bit与右边得到的32bit逐位模2运算,作为下一轮迭代时右边的分段,并将原来右边未经变换的段直接送到左边的寄存器中作为下一轮迭代时左边的段。
2,国际数据加密算法IDEA
- 国际数据加密算法(International Data Encryption Algorithm,IDEA)
- 明文和密文块都是64bit,密钥长度为128bit,作为单钥体制的密码,其加密与解密过程雷同,只是密钥存在差异。
- IDEA的密钥长度为128bit,若采用穷搜索进行破译,需要
2
128
2^{128}
2128次尝试,是用同样方式对付DES的
2
72
2^{72}
272倍。
3,单钥算法性能分析
名称 | 实现方式 | 运算速度 | 安全性 | 改进措施 | 应用场合 |
---|
DES | 40~56bit密钥 | 一般 | 完全依赖于密钥,易受穷举攻击 | 双重,三重DES,AES | 适用于硬件实现 | IDEA | 128bit密钥,8轮迭代 | 较慢 | 军事级,可抗差值分析和相关分析,没有DES意义下的弱密钥 | 加长字长为32bit,密钥为256bit,采用
2
32
2^{32}
232模加,
2
32
+
1
2^{32}+1
232+1模乘 | 适用于ASIC设计 | GOST | 256bit密钥,32轮迭代 | 较快 | 军事级 | 以长密钥S盒代换盒,加大迭代轮数 | S盒可随机秘密选择,便于软件实现 | Blowfish | 256~448bit密钥,16轮迭代 | 最快 | 军事级,可通过改变密钥长度调整安全性 | / | 适合固定密钥场合,不适合常换密钥场合和智能卡 | RC5 | 密钥长度和迭代轮数均可变 | 速度可根据三个参数的取值进行选择 | 六轮以上时即可抗线性攻击,通过调整字长,密钥长度和迭代轮数可以在安全性和速度上取得折中 | 引入数据相倚旋转 | 适用于不同字长的微处理器 | RC4 | 密钥长度可变 | 快DES 10倍 | 对差分攻击和线性攻击具免疫能力,无短循环且具高度非线性 | 密钥长度放宽到64bit | 算法简单,易于编程实现 | CAST128 | 密钥长度可变,16轮迭代 | 较快 | 强度取决于S盒,抗线性和差分攻击,具有SAC和BIC,没有弱密钥和半弱密钥等特性 | 增加密钥长度,形成CAST256 | 适用于PC和UNIX工作站 |
3,双钥加密算法
- 双钥密码体制的特点是加密能力和解密能力是分开的,即加密和解密的密钥不同,很难由一个推出另一个。
- 其应用模式有两种:
- 一是多个用户用公钥加密的消息可由一个用户用私钥解读。
- 二是一个用户用私钥加密的消息可被多个用户用公钥解读。
- 双钥密码体制简化了密钥分配管理问题,但是公钥算法比私钥算法慢很多(约1000倍)。在实际通信中,双钥密码体制主要用于认证(如数字签名,身份识别等)和密钥管理等,而信息加密仍然采用私钥密码体制。
1,RSA算法
- 可用于加密,也可用于数字签名。
- RSA算法的安全性建立在数论中“大数分解和素数检测”的理论基础上。
1,大数分解
- 双钥密码体制算法按由公钥推算出密钥的途径可以分为两类:
- 基于素数因子分解问题(如RSA算法),安全性基于100位十进制数以上的所谓“大数”的素数因子分解难题。
- 基于离散对数问题(如EIGamal算法),其安全性基于计算离散对数的困难性。
2,RSA安全性分析
- 理论上,RSA的安全性取决于模n分解的困难性。但是数学上至今未证明分解模就是攻击RSA的最佳方法。
2,EIGamal算法
- EIGamal算法是基于离散对数问题的一种双钥密钥,可用于加密,也可用于签名。
1,EIGamal算法方案
- 令
z
p
z_p
zp?是一个有P个元素的有限域,p是素数,令g是
z
p
?
z^*_p
zp??(
z
p
z_p
zp?中除去0元素)中的一个本原元或其生成元。明文集m为
z
p
?
z^*_p
zp??,密文集e为
z
P
?
?
z
p
?
z^*_P*z^*_p
zP???zp??。
- 公钥为:选定p(g<p的生成元),计算公钥
β
≡
g
α
m
o
d
??
p
\beta \equiv g^{\alpha} \mod p
β≡gαmodp。
- 私钥为:
α
<
p
\alpha < p
α<p。
2,EIGamal安全性
- ELGamal算法的安全性是基于
z
p
?
z^*_p
zp??中有限群上的离散对数的困难性。研究表明,mod p生成的离散对数密码可能存在陷门,这会造成有些“弱”素数p下的离散对数较容易求解,但密码学家也可以较容易地找到这类陷门,以避免选用可能会产生脆弱性的这些素数。
3,双钥算法性能分析
算法 | 运算速度 | 安全性 | 改进措施 | 适用场景 |
---|
RSA | 很慢,RSA最快时也比DES慢100倍 | 安全性完全依赖大数分解,产生密钥麻烦,n至少要600bit以上 | 改用2048bit长度的密钥 | 只用于少量数据加密 | EIGamal | 较慢 | 主要基于
z
p
?
z^*_p
zp??中的有限群上的离散对数的困难性 | 将EIGamal方案推广到
z
n
?
z^*_n
zn??上的单元群 | 适用于加密密钥或单重或多重签名 | LUC | 较慢 | 由求
d
d
d和
p
p
p的难度决定,比RSA难破译 | 采用各种置换多项式取代指数运算 | 适用于少量数据加密场合 | Rabin | 最快 | 安全性相当于分解大整数,在选择明文攻击下不安全 | 用
M
3
M^3
M3代替
M
2
M^2
M2,即williams体制 | 可用于签名系统 | DSA | 比RSA慢,有预计算时远快于RSA | 基于整数有限域离散对数难题,安全性与RSA接近 | 密钥加长到512~1024中可被64除尽的数 | 可用于数字签名中,电子邮件,电子转账等认证系统中。 |
3,信息加密技术应用
1,链路加密
- 链路加密是对网络中两个相邻节点之间传输的数据进行加密保护,所有消息在被传输之前进行加密,在每个节点对接收到的消息进行解密后,然后先使用下一个链路的密钥对消息进行加密,再进行传输。
- 链路加密通常用在点对点的同步或异步线路上,要求先对链路两端的加密设备进行同步,然后使用一种链路模式对链路上传输的数据进行加密,给网络的性能和可管理性带来了副作用。带来的后果是数据丢失或重传,即使一部分数据需要进行加密,也会使得所有传输数据需要重新加密。
- 链路加密仅在通信链路上提供安全性,消息以明文形式存在,因此所有节点在物理上必须是安全的,否则就会泄露明文内容。
2,节点加密
- 节点加密是指在信息传输路过的节点处进行解密和加密。
- 节点加密不允许信息在网络节点以明文形式存在,它先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,此过程在节点上的一个安全模块中进行。
- 节点加密要求报头和路由信息以明文形式传输,因此这种方法对于防止攻击者分析通信业务是脆弱的。
3,端到端加密
- 端到端加密是指对一对用户之间的数据连续地提供保护。
- 端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。
- 采用端到端加密,消息在被传输到达终点之前不会进行解密,因为消息在整个传输过程中均受到保护,即使有节点被损坏也不会使消息泄露。
- 端到端加密避免了其他加密系统固有的同步问题,因为每个报文包均是独立被加密的,所以一个报文包所发生的传输错误不会影响后续的报文包。
- 端到端加密通常不允许对消息的目的地址进行加密,因为每个消息所经过的节点都要用此地址来确定如何传输消息。
4,认证技术
- 认证的目的:
- 消息完整性认证:验证信息在传送或存储过程中是否被篡改。
- 身份认证:验证消息的收发者是否持有正确的身份认证符。
- 消息的序号和操作时间等的认证:防止消息重放或延迟等攻击。
1,认证技术的分层模型
-
分为三个层次:
- 安全管理协议:在安全体制支持下,建立,强化和实施整个网络系统的安全策略。
- 认证体制:在安全管理协议的控制和密码体制的支持下,完成各种认证功能。
- 密码体制:认证技术的基础,为认证体制提供数学方法支持。
2,认证体制的安全与模型
- 安全的认证体制应满足以下要求
- 接收者能够检验和证实消息的合法性,真实性和完整性。
- 消息的发送者对所发的消息不能抵赖,消息的接收者不能否认收到的消息。
- 除了合法的消息发送者外,其他人不能伪造发送消息。
- 认证体制的基本模型
3,数字签名技术
- 数字签名技术是实现消息完整性认证和身份认证的重要技术。
- 数字签名方案有安全参数,消息空间,签名,密钥生成算法,签名算法和验证算法等成分构成。
- 从接收者验证签名的方式可将数字签名分为:
- 真数字签名
- 签名者直接把签名消息传送给接收者,接收者无须求助于第三方就能验证签名。
- 公证数字签名
- 签名者把签名消息经由被称为公证者的第三方发送给接收者,接收者不能直接验证签名,签名的合法性是通过公证者作为媒介来保证的。
- 数字签名算法分为普通数字签名算法,不可否认数字签名算法,Fail-Stop数字签名算法,盲数字签名算法和群数字签名算法等。
4,身份认证技术
- 身份认证的目的是验证信息收发方是否持有合法的身份认证符(口令,密钥和实物证件等)。
- 身份认证技术分为两类:
- 专门进行身份认证的直接身份认证技术。
- 在消息签名和加密认证过程中,通过检验收发方是否持有合法的密钥进行的认证,称为间接身份认证技术。
1,身份认证方式
- 主要有两种,通行字(口令)方式和持证方式。
- 通行字方式
- 使用最广泛的一种身份认证技术。
- 通行字一般为数字,字母和特殊字符等组成的长度为5~8的字符串。
- 被认证者先输入他的通行字,然后计算机确定他的正确性。被认证者和计算机都知道通行字,每次登陆时,计算机都要求输入通行字,这样就要求计算机存储通行字,一旦通行字文件暴露,攻击者就有机可乘。为此,采用单向函数来克服此问题,此时计算机存储通行字的单向函数值而不是存储通行字,认证过程如下:
- 被认证者将他的通行字输入计算机。
- 计算机完成通行字的单向函数值计算。
- 计算机把单向函数值和存储的值比较。
- 持证方式
- 持证是一种个人持有物。
- 智能卡已经成为目前身份认证的一种更有效,更安全的方法。
2,身份认证协议
- 大多数为询问-应答式协议。
- 工作过程:认证者提出问题,由被认证者回答,然后认证者验证其身份的真实性。询问-应答式协议可分为两类:
- 基于私钥密码体制:认证者知道被认证者的秘密。
- 基于公钥密码体制:认证者不知道被认证者的秘密,又称为零知识身份认证协议。
5,消息认证技术
- 消息认证是指通过对消息或消息相关信息进行加密或签名变换进行的认证,其目的包括消息内容认证(消息完整性认证),消息的源和宿认证(身份认证)以及消息的序号和操作时间认证等。
1,消息内容认证
1,杂凑函数
- 杂凑(Hash)函数是将任意长的数字串M映射成一个较短的定长数字串H的函数,以h表示,h(m)易于计算,称H=h(m)为M的杂凑值,也称杂凑码,杂凑结果等。
- 若杂凑函数h为单向函数,则称为单向杂凑函数。用于消息认证的杂凑函数都是单向杂凑函数。单向杂凑函数按其是否有密钥控制划分为两大类:
- 有密钥控制以**h(k,M)**表示。为密码杂凑函数。
- 无密钥控制,为一般杂凑函数。
- 构造杂凑函数的方法有两种:
- 一种是直接构造:如MD5杂凑算法,可以将任意长度的明文,转换为128bit的数据摘要。
- 一种是间接构造:主要是利用现有的分组加密算法,如DES,AES等,对其稍加修改,采用它们加密的非线性变换构造杂凑函数。
- 杂凑函数的安全性取决于抗击各种攻击的能力。为了抵抗各种攻击,采用的杂凑函数应该满足单向性,伪随机性,非线性性及杂凑速率的高效性等密码学性质。
2,消息内容认证
- 消息内容认证常用的方法是:消息发送者在消息中加入一个鉴别码(MAC,MDC等),经加密后发送给接收者(有时只需加密鉴别码即可),接收者利用约定的算法对解密后的消息进行鉴别运算,若获得的鉴别码与原鉴别码相等则接收,否则拒绝接收。
2,源和宿的认证
- 消息源和宿的认证常用方法有两种:
- 通信双方事先约定发送消息的数据加密密钥,接收者只需证实发送来的消息是否能用该密钥还原成明文就能鉴别发送者。如果双方使用同一个数据加密密钥,那么只需在消息中嵌入发送者识别符即可。
- 通信双方事先约定用于各自发送消息的通行字,发送消息时将通行字一并进行加密,接收者只需判别消息中解密的通行字是否与约定通行字相符就可鉴别发送者。
3,消息序号和操作时间的认证
- 主要用于阻止消息的重放攻击。常用的方法有消息的流水作业,链接认证符随机数认证法和时戳等。
6,数字签名与消息认证
- 杂凑函数产生的杂凑值可直接用于消息认证,也可通过数字签名方法间接用于消息认证。
- 数字签名与消息认证的区别:消息认证可以帮助接收方验证消息发送者的身份及消息是否被篡改。当收发者之间没有利害冲突时,这种方式对于防止第三方破坏是有效的,但是存在利害冲突时,单纯采用消息认证技术就无法解决纠纷,就需要借助于数字签名技术来辅助进行更有效的消息认证。
5,公开密钥基础设施(PKI)
1,PKI基本概念
-
公钥基础设施(Public Key Infrastructure,PKI) -
PKI是一个用公钥密码算法原理和技术来提供安全服务的通用性基础平台,用户可利用PKI平台提供的安全服务进行安全通信。 -
PKI采用标准的密钥管理规则,能够为所有应用透明地提供加密和数字签名等服务需要的密钥和证书管理。
1,认证机构
- 公钥证书是用户(接收方)的身份标识与其持有公钥的结合,在生成公钥证书之前,由一个可信任的权威机构CA(认证机构,也称认证中心)来证实用户的身份,然后CA对由该用户身份标识及对应公钥组成的证书进行数字签名,以证明公钥的有效性。
- CA是PKI的核心技术,是数字证书的签发机构。PKI首先必须具有可信任的权威CA,然后在公钥加密技术基础上,实现证书的产生,管理,存档及作废管理等功能。
2,身份识别
- PKI采用公钥技术,高级通信协议和数字签名等方式进行远程登录,既不需要事先建立共享密钥,也不必在网上传递口令等敏感信息。
- 口令的保密性较高,计算机对用户身份识别的可靠性高。与简单的身份识别机制相比,PKI的身份识别机制称为强识别。
3,透明性
- PKI对终端用户的操作是透明的,即所有安全操作在后台自动地进行,无须用户的干预,也不应由于用户的错误操作对安全造成危害。
- 除初始登录操作之外,PKI对用户是完全透明的。
4,一致性
- PKI最大的优势是,在整个应用环境中使用单一可信的安全技术,如公钥技术,能保证数目不受限制的应用程序,设备和服务器无缝地协调工作,安全地传输,存储和检验数据,安全地进行事务处理等。
5,相关的标准
- X.509
- X.500
- LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)
2,PKI认证技术的组成
- 主要包括认证机构CA,证书库,密钥备份(恢复系统),证书作废处理系统和PKI应用接口系统等。
1,CA
- 是PKI的核心,是PKI应用中权威的,可信任的,公正的第三方机构。
- 证书是公开密钥体制的一种密钥管理媒介,是一种权威的电子文档,形同网络计算环境中的一种身份证,用于证明某一主体(如用户,服务器等)的身份及其公开密钥的合法性。
- CA的主要职责如下:
- 验证并标识证书申请者的身份。
- 确保用于签名证书的非对称密钥的质量。
- 确保整个鉴别过程中的安全性,确保签名私钥的安全性。
- 证书资料信息(包括公钥证书序列号,CA标识等)的管理。
- 确保并检查证书的有效期限。
- 发布并维护作废证书列表。
- 对整个证书签发过程进行日志记录。
- 向申请人发出通知。
- 最重要的是CA自己的一对密钥的管理,它必须确保其高度的机密性,防止他人伪造证书。CA的公钥在网上公开,整个网络系统必须保证完整性。CA的数字签名保证了证书的合法性和权威性。主体的公钥有以下两种产生方式。
- 用户自己生成密钥对,然后将公钥以安全的方式传送给CA。该过程必须保证用户公钥的可验证性和完整性。
- CA替用户生成密钥对,然后将其以安全的方式传送给用户。该过程必须确保密钥对的机密性,完整性和可验证性。
- 用户A获取用户B的证书和公钥的方式:
- 由B将证书随同发送的正文信息一起传送给A。
- 将所有的证书集中存在于一个证书库中,用户A通过网络从该库中获取B的证书。
- 公钥不仅可以用于加密信息,还可以用于数字签名。系统中需要配置用于数字签名/验证的密钥对和用于数据加密/脱密的密钥对,分别称为签名密钥对和加密密钥对。
- 签名密钥对
- 签名密钥对由签名私钥和验证公钥组成。为保持其唯一性,签名私钥不能存档备份,丢失后须重新生成新的密钥对,原来的签名可以使用旧公钥的备份来验证,验证公钥需要存档备份,以用于验证旧的数字签名。
- 加密密钥对
- 加密密钥对由公钥和脱密私钥组成。为防止密钥丢失时不能脱密数据,脱密私钥应该进行存档备份,以便在任何时候脱密密文数据。加密公钥无须存档备份,加密公钥丢失时,需要重新产生密钥对。
2,证书库
- 证书库是CA颁布证书和撤销证书的集中存放地,是网上的一种公共信息库,供广大用户进行开放式查询。
- 证书及证书撤销信息的分发办法是发布,基本思想是将PKI的信息放在一个广为人知的,公开的且易于访问的地点。
- 由于证书的不可伪造性,因此,可以在数据库中公布,而无须其他的安全措施来保护这些证书。
- 证书库支持分布式存放。
3,证书撤销
- 利用周期性的发布机制,如CRL(证书撤销列表)。
- 在线查询机制,如在线证书状态协议OCSP。
4,密钥备份和恢复
- 密钥备份与恢复只针对解密密钥,签名密钥是不能进行备份的。
- 证书的生命周期包括三个阶段,证书初始化注册阶段,颁发阶段和取消阶段。
1,密钥/证书生命周期
- 密钥/证书的生命周期分为初始化,颁布和取消三个阶段。
- 初始化阶段指终端用户在使用PKI服务之前,必须经过初始化程序进行PKI,由以下几步组成:
- 终端实体注册。
- 密钥对产生。
- 证书创建和密钥/证书分发。
- 证书分发。
- 密钥备份。
- 颁布阶段
- 证书检索—远程数据库的证书检索。
- 证书验证—确定一个证书的有效性。
- 密钥恢复—不能正常解读加密文件时,从CA中恢复。
- 密钥更新—当一个合法的密钥对将要过期时,新的公/私密钥对会自动产生并颁布。
- 取消阶段
- 证书过期—证书的自然过度。
- 证书撤销—宣布一个合法证书不再生效。
- 证书历史—维护一个有关密钥资料的连续记录,以便对以后过期的密钥所加密的数据可以被解密。
- 密钥档案—为了解决密钥历史恢复,审计和解决争议。
2,密钥备份
- 用户在申请证书的初始阶段,如果声明公/私密钥对是用于数据加密的,则CA对该用户的密钥和证书进行备份,备份设备的位置可以从一个PKI域变到另一个PKI域。
3,密钥恢复
- 密钥恢复功能发生在颁布阶段,其功能是将终端用户丢失的加密密钥予以恢复,这种恢复由可信任的密钥恢复中心或CA完成。密钥恢复的手段可以从远程设备恢复,也可由本地设备恢复。
5,自动更新密钥
- 为避免密钥更新的复杂性和人工操作的烦琐,PKI支持自动密钥或证书更新。
- 基本思想是,无论用户的证书用于何种目的,认证时都会在线自动检查有效期,在失效日期到来之前的某段时间内,自动启动更新程序,生成一个新的证书来代替旧证书,新旧证书的序列号也不相同。
1,密钥更新
- 密钥更新发生在证书的颁布阶段。当证书”接近“过期时,必须颁发一个新的公/私密钥和相关证书,称为密钥更新。
- 通常规定这个提前量为整个密钥生存期的**20%**左右。
2,证书更新和证书恢复
- 证书更新是在证书中产生了一个新的公钥/私钥对。
- 证书恢复是保持最初的公钥/私钥对。
3,PKI的特点
- 节省费用。
- 互操作性
- 开放性。
- 一致的解决方案。
- 可验证性。
- 可选择性。
|