赞
踩
加密(Encryption):对原始数据进行数学变换,使得加密后在网络上公开传输的内容。对于非法接收者来说毫无意义、无法读懂,而合法接收者持有正确的密钥,可以通过解密(Decryption)获得原始数据。
解密(Decryption):对经过加密的数据进行数学逆变换,以恢复原始的、可读的数据内容。解密通常需要使用相应的密钥或算法来还原加密前的数据。
加密前的原始数据称为明文(Plaintext),加密后获得的数据称为密文(Ciphertext)。
加密、解密变换分别是一个依赖于所使用密钥的函数,若加密密钥为 k k k,解密密钥为 k ′ k' k′,明文为 M M M,密文为 M ′ M' M′
两个变换可分别标记为:
加密算法:
M
′
=
E
(
M
,
k
)
解密算法:
M
=
D
(
M
′
,
k
′
)
加密算法:M'=E(M,k) \\ 解密算法:M=D(M',k')
加密算法:M′=E(M,k)解密算法:M=D(M′,k′)
加密通信过程:发送方用加密密钥 k k k将明文 M M M变换成密文 M ′ M' M′,然后把密文 M ′ M' M′发送出去,接收方收到密文 M ′ M' M′后,用解密密钥 k ′ k' k′将密文 M ′ M' M′恢复成明文 M M M
根据加密密钥和解密密钥是否相同,即: k = = k ’ k==k’ k==k’,将加密算法分为对称加密算法和非对称加密算法两种。
古典密码编码方法主要有两种:置换和代换。
置换:把明文中的字符重新排列,字符本身不变,改变其位置。最简单的置换密码是把明文中的字符顺序倒过来,然后截成固定长度的字符组作为密文。
代换:将明文中的字符替代成其他字符。
举例:凯撒密码、美军破译日本军事密电码“海军暗号书D”
算法名称 | 说明 |
---|---|
AES(高级加密标准) | 一种广泛应用的对称加密算法,具有高效、安全的特性,被广泛用于网络通信和数据加密。 |
DES(数据加密标准) | 早期的对称加密算法,已逐渐被AES所取代,但仍然在某些场景下使用。 |
3DES(Triple DES) | 对DES的改进和加强版本,通过多次应用DES算法来提高安全性。 |
算法名称 | 说明 |
---|---|
RSA | 基于大整数因子分解的数学问题,是最常见的非对称加密算法之一,用于数字签名、密钥交换等场景。 |
ECC(椭圆曲线加密 | 利用椭圆曲线上的离散对数问题来实现加密和签名,相比RSA具有更短的密钥长度和更高的安全性。 |
算法名称 | 说明 |
---|---|
MD5(Message Digest Algorithm 5) | 已被广泛认为不安全,不建议用于安全应用。 |
SHA(Secure Hash Algorithm)系列 | 如SHA-1、SHA-256、SHA-512等,被广泛用于数字签名、证书签名、消息认证码等场景。 |
现代密码学是密码学领域的一个重要分支,主要研究在计算机和现代通信技术下的加密和解密算法、协议以及相关安全性理论。
对称加密算法也称为私钥算法或单钥算法,算法的加、解密密钥相同,即 k = k ′ k=k' k=k′。
在对称加密体制下,若 A A A与 B B B通信,他们先通过某种方法安全地共享密钥 k k k, A A A要将明文消息 M M M发送给 B B B,就先用密钥 k k k对 M M M加密,得到密文 M ′ = E ( M , k ) M'=E(M,k) M′=E(M,k),然后把密文 M ′ M' M′发送给 B B B。 B B B收到 M ′ M' M′后,用同样的密钥 k k k解开密文,得到明文 M = D ( M ′ , k ) M=D(M',k) M=D(M′,k)
对称加密算法的加密强度较高,加、解密运算速度较快,但密钥必须安全地创建、共享和保持,密钥管理成为影响通信安全的关键。
常用的对称加密算法主要有数据加密标准DES、高级加密标准AES、国际数据加密算法IDEA等。
DES(Data Encryption Standard,数据加密标准),是1972年美国IBM公司研制的对称加密算法。1977年被美国国家标准局确定为联邦资料处理标准,授权在非密级政府通信中使用,随后该算法在国际上广泛流行。
注意,算法的DES也被称为数据加密算法(Data Encryption Algorithm, DEA)。
在DES算法中,明文按64位进行分组(块),密钥长度也是64位,(事实上只有56位参与DES运算,第8、16、24、32、40、48、56、64位是校验位, 使DES的每个密钥都有奇数个1),分组后的每64位明文组(块)分别与56位密钥进行多轮置换(按位替代/交换),最后生成64位的密文组(块)。
DES算法的入口参数有三个: K e y 、 D a t a 、 M o d e Key、Data、Mode Key、Data、Mode。Key为7个字节56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作模式(有加密、解密两种)。
DES使用分组密码设计的两个基本原则:混淆(confusion)和扩散(diffusion),其目的是抗击敌手对密码系统的统计分析。
混淆是使密文的统计特性与明文、密钥值之间的关系尽可能复杂化,以使密钥和明文以及密文之间的依赖性对密码分析者来说是无法利用的。
扩散是将明文中每一位的影响尽可能迅速作用到较多的输出密文位中,以便在大量的密文中消除明文的统计结构,并且使每一位密钥的影响尽可能迅速地扩展到较多的密文位中,以防对密钥进行逐段破译。
3DES(Triple DES)是DES向AES过渡的加密算法,它使用两个56位密钥对数据进行三重DES运算,是DES的一个更安全的变形算法。
3DES使用两个密钥,执行三次DES算法,加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。
3DES加密过程为
C
=
E
k
3
(
D
k
2
(
E
k
1
(
P
)
)
)
条件
[
k
1
=
k
3
]
C=Ek_3(Dk_2(Ek_1(P))) \quad 条件 [k_1=k_3]
C=Ek3(Dk2(Ek1(P)))条件[k1=k3]
3DES解密过程为:
P
=
D
k
1
(
E
K
2
(
D
k
3
(
C
)
)
)
条件
[
k
1
=
k
3
]
P=Dk_1(EK_2(Dk_3(C))) \quad 条件[k_1=k_3]
P=Dk1(EK2(Dk3(C)))条件[k1=k3]
3DES采用两个密钥、三重加密的好处:
IDEA(International Data Encryption Algorithm,国际数据加密算法),是上海交通大学教授来学嘉(Xuejia Lai)与瑞士学者James Massey在ETH(苏黎世联邦理工学院)共同提出的。
IDEA算法是在DES算法的基础上发展出来的,类似于三重DES。发展IDEA也是因为感到DES具有密钥太短等缺点。
IDEA的数据块为64位、密钥为128位。IDEA在密码学中属于数据块加密算法(Block Cipher)类。从理论上讲,IDEA属于“强”加密算法。
IDEA是作为迭代的分组密码实现的,使用128位的密钥和8个循环。通过需要支付专利使用费(通常约为每个副本$6.00)。
IDEA被认为是极为安全的。使用128位的密钥,暴力攻击中需要进行的测试次数与DES相比会明显增大,甚至允许对弱密钥测试。而且,它本身也显示它尤其能抵抗专业形式的分析性攻击。
非对称加密算法也称为公钥算法或双钥算法,在加密和解密时使用不同的密钥,而且从一个密钥推出另一个密钥在数学上是非常困难的(计算上不可行)。
使用非对称加密算法时,参与通信的每一方都有一对自己的加密/解密密钥。加密密钥是公开的,称为公钥;解密密钥是保密的,只有所有者自己知道,称为私钥。
若 A A A与 B B B通信,他们各有一个公/私钥对 ( A k e , A k d ) (Ak_e,Ak_d) (Ake,Akd)和 ( B k e , B k d ) (Bk_e,Bk_d) (Bke,Bkd), A A A要将明文消息 M M M发送给 B B B,就先用 B B B的公钥 B k e Bk_e Bke对 M M M加密,得到密文 M ′ = E ( M , B k e ) M'=E(M,Bk_e) M′=E(M,Bke),然后把密文 M ′ M' M′发送给 B B B。 B B B收到 M ′ M' M′后,用自己的私钥 B k d Bk_d Bkd解开密文,得到明文 M = D ( M ′ , B k d ) M=D(M',Bkd) M=D(M′,Bkd)。 B B B向 A A A发送消息的过程与此类似,只不过B是用 A A A的公钥 A k e Ak_e Ake加密消息,而 A A A是用自己的私钥 A k d Ak_d Akd来解密。
非对称加密算法优点:具有密钥分配简单(公钥可公开散发);密钥保存量小(n个人相互通信,对称密码算法需要 n ( n − 1 ) / 2 n(n-1)/2 n(n−1)/2个密钥,而非对称加密算法只需 n n n个公/私钥对);可以实现数字签名等,
非对称加密算法缺点:其加、解密的运算速度很慢,因而非对称加密算法往往用于认证和建立初始通信的会话密钥,而大量的通信还是由对称加密算法进行加密。
广泛的非对称加密算法主要有基于大数分解问题的RSA算法、基于离散对数问题的ElGamal算法、基于椭圆曲线双线性对的算法
RSA加密算法是一种基于大整数因数分解的非对称加密算法,在公开密钥加密、网络安全协议和电子商务中广泛应用。
RSA是1977年由Ron Rivest、Adi Shamir和Leonard Adleman共同提出的。
RSA是基于大整数因数分解的加密算法,对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。
假如有人找到一种快速因数分解的算法的话,RSA加密的信息的可靠性会极度下降。今天只有短的RSA钥匙才可能被强力方式解破。到目前为止,世界上还没有可靠的攻击RSA算法的方式。只要其密钥的长度足够长,用RSA加密的信息实际上是不能被解破的。
RSA密钥是(公钥+模值)、(私钥+模值)成组分发的,单独一个公钥或私钥是没有用处,所以所谓的“密钥”其实是它们两者中的一个。“密钥长度”一般只是指模值的位长度。目前主流可选值:1024、2048、3072、4096等
ElGamal算法是一种常见的非对称加密算法,既能用于数据加密,也能用于数字签名。其安全性依赖于计算有限域上离散对数难题。
ElGamal算法在加密过程中,生成的密文长度是明文的两倍,且每次加密后都会在密文中生成一个随机数K。在密码中主要应用离散对数问题的几个性质:求解离散对数(可能)是困难的,而其逆运算指数运算可以应用平方-乘的方法有效地计算。也就是说,在适当的群G中,指数函数是单向函数。
Hash函数的特性
PKI证书主要采用X.509国际标准,包含以下信息:
版本号:证书使用哪个版本的X.509标准;
序列号:CA为该证书分配的唯一序列号,证书被撤消时该序列号将被放入CRL中;
签名算法标识符:所使用的签名算法;
发布者的名称;
有效期:包括证书的生效时间和失效时间;
证书持有者的名称;
证书持有者的公钥信息:包括证书持有者的公钥和公钥算法;
发布者的唯一标识符;
证书持有者的唯一标识符;
扩展信息:X.509 v3和v4可使用一个或多个扩展字段,附加有关该证书的额外说明信息;
发布者的数字签名:CA所使用的签名算法标识和签名值。
在PKI体系中,任何通信实体想成为安全通信中的合法角色,首先必须向CA提出证书申请,经CA验证后,获得CA颁发的证书和一个公/私密钥对,若证书拥有者在证书有效期内将私钥丢失或泄露,可向CA提出证书撤销申请,经CA确认后,予以撤销,CA将被撤消的证书列入证书撤销表(Certificate Revocation List, CRL)中,CRL主要包含多个被撤消证书的序列号和CA的数字签名,CRL通过证书发布系统公开发布。
举例1:利用公钥系统进行对称密钥交换
举例2:利用公钥系统进行对称密钥分发。示例:
密码分析也称密码破译技术,是指在不掌握密钥的情况下,利用密码系统的弱点来恢复明文或获取密钥的技术。
密码系统和密码分析是密码学研究的两个方面,密码分析对于验证加密算法的安全性、提高密码系统的设计质量,具有重要的意义。
从密码学发展史可以清楚地看到,密码分析和密码学是共同演化的。新的密码机制被设计出来,取代已经被破解的设计;同时新的密码分析方法被发明出来,以破解那些改进了的方案。事实上,密码系统和密码分析就像是同一枚硬币的正反两面:为了创建安全的密码系统,就必须考虑可能的密码分析。
对密码系统的攻击方法主要分为:
- 上述攻击的强度是逐次递增的,前三种攻击是为了恢复明文或获取密钥,后两种攻击是为了获取密钥。
惟密文攻击是最困难的,因为分析者可利用的信息最少,一般需要采用穷举攻击的方法。
讨论一个密码系统的安全性,通常是指在前三种攻击下是安全的,因为攻击者一般容易具备进行前三种攻击的条件。
线性分析(Linear cryptanalysis)的分析者利用包含明文、密文和子密钥的线性表达式发生的较大可能性。线性分析的前提是假设攻击者已经知道了大量的明文和相对应的密文。
线性分析最基本的思想是用一个线性表达式来近似表示加密算法的一部分,该表达式是 u u u比特的输入与 v v v比特的输出进行 X O R XOR XOR操作的结果。
线性密码分析的方法是测定上述形式的线性表达式发生的可能性的大小。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。