第四章 对称密码算法
- 格式:ppt
- 大小:875.00 KB
- 文档页数:62


对称密码算法的基本原理
对称密码算法是一种使用相同的密钥对数据进行加密和解密的算法。
其基本原理是将明文按照一定规则和密钥进行计算,得到密文;将密文按照相同的规则和密钥进行计算,得到明文。
整个过程中,密钥起到了保密数据的作用。
对称密码算法的基本原理可以概括为以下几个步骤:
1. 密钥生成:通信双方在进行加密和解密之前需要共享一个密钥。
密钥可以通过随机数生成算法生成,也可以通过密钥交换协议在通信双方之间进行协商。
2. 加密过程:明文按照一定规则和密钥进行计算,生成密文。
加密算法的设计中通常包括替换、置换、混淆以及迭代等操作,以增强算法的安全性。
3. 解密过程:密文按照相同的规则和密钥进行计算,生成明文。
解密算法与加密算法相反,通过逆向的操作将密文还原为明文。
对称密码算法的优点是计算速度快、实现简单,适用于对大量数据进行加密和解密的场景。
然而,对称密码算法的缺点是通信双方需要提前共享密钥,密钥的管理和分发成为了一个安全性问题。
另外,对称密码算法也不适用于实现安全通信和存储,因为密钥的保密性无法得到保障。
为了解决这些问题,常常将对称密码算法与非对称密码算法相结合,使用非对称密码算法来保证密钥的安全性,然后使用对称密码算法来对通信数据进行加密和解密。
对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。
在大多数对称算法中,加密解密密钥是相同的。
这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。
对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。
只要通信需要保密,密钥就必须保密。
对称算法的加密和解密表示为:Ek(M)=CDk(C)=M对称算法可分为两类[8]。
一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。
另一类算法是对明文的一组位进行运算,这些位组称为分组,相应的算法称为分组算法或分组密码。
现代计算机密码算法的典型分组长度为64位――这个长度大到足以防止分析破译,但又小到足以方便作用。
这种算法具有如下的特性:Dk(Ek(M))=M常用的采用对称密码术的加密方案有5个组成部分(如图3所示):l)明文:原始信息。
2)加密算法:以密钥为参数,对明文进行多种置换和转换的规则和步骤,变换结果为密文。
3)密钥:加密与解密算法的参数,直接影响对明文进行变换的结果。
4)密文:对明文进行变换的结果。
5)解密算法:加密算法的逆变换,以密文为输入、密钥为参数,变换结果为明文。
对称密码术的优点在于效率高(加/解密速度能达到数十兆/秒或更多),算法简单,系统开销小,适合加密大量数据。
尽管对称密码术有一些很好的特性,但它也存在着明显的缺陷,包括:l)迸行安全通信前需要以安全方式进行密钥交换。
这一步骤,在某种情况下是可行的,但在某些情况下会非常困难,甚至无法实现。
2)规模复杂。
举例来说,A与B两人之间的密钥必须不同于A和C两人之间的密钥,否则给B的消息的安全性就会受到威胁。
在有1000个用户的团体中,A需要保持至少999个密钥(更确切的说是1000个,如果她需要留一个密钥给他自己加密数据)。
对于该团体中的其它用户,此种倩况同样存在。
这样,这个团体一共需要将近50万个不同的密钥!推而广之,n个用户的团体需要N2/2个不同的密钥。
说明对称密码算法和非对称密码算法的原理和优缺点
对称密码算法:
原理:对称密码算法是一种加密算法,发送方和接收方使用相同的密钥进行加密和解密。
加密过程中,将明文按照一定的规则和算法进行混淆和置换,以产生密文。
解密过程中,使用相同的密钥和算法对密文进行逆向操作,还原出明文。
优点:
1. 加密和解密速度快,适用于大量数据的加密和解密操作。
2. 密钥长度相对较短,不占用过多的存储空间。
3. 实现简单,操作容易。
缺点:
1. 密钥的分发和管理较为困难,存在安全性问题。
2. 无法有效解决密钥传递问题,即如何确保密钥在发送和接收之间的安全传递。
非对称密码算法:
原理:非对称密码算法是一种加密算法,发送方和接收方使用不同的密钥进行加密和解密。
加密过程中,发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密。
优点:
1. 安全性高,公钥可以随意公开,只有私钥持有者才能解密密文。
2. 解决了对称密码的密钥分发和管理问题。
缺点:
1. 加密和解密速度较慢,适用于少量数据的加密和解密操作。
2. 密钥长度相对较长,占用较多的存储空间。
3. 实现较为复杂,操作稍微复杂。
总结:
对称密码算法的优点在于速度快、实现简单,但安全性相对较低;非对称密码算法的优点在于安全性高,但加密和解密速度较慢、实现较为复杂。
因此,实际应用中常常采用对称密码算法和非对称密码算法的结合,即非对称密码算法用于密钥分发和管理,对称密码算法用于实际的数据加密和解密。
数据加密第四篇:对称密钥密钥分为对称密钥和⾮对称密钥,密钥本质上是加密数据的算法:对称密钥(Symmetric Keys)是指加密和解密的过程使⽤相同的算法,是加密中最弱的算法,但是性能最好。
对于对称密钥,可以使⽤密码或者另⼀个密钥甚⾄⼀个证书来加密。
⾮对称密钥(Asymmetric Keys)使⽤⼀对密钥(算法),⼀个密钥⽤于加密,另⼀个密钥⽤于解密,加密的密钥称为私钥(private key),解密的密钥称为公钥(public key)。
不管对称密钥,还是⾮对称密钥,都不能备份。
在加密体系中,能够备份的只有SMK、DMK和证书。
对称密钥(Symmetric Keys)对称密钥是指数据的加密(encryption)与解密(decryption)⽤的是同样的密钥(secret key)。
不过即使是最弱的算法,也能增加数据防御的能⼒,毕竟不是每个攻击者都是顶级的。
对于对称密钥,可以使⽤密码,或者另⼀个密钥,甚⾄⼀个证书来加密。
⼀,创建对称密钥创建对称密钥时,需要制定对数据进⾏加密的算法,对称密钥必须⽤⾄少⼀个⽅式来加密:certificate, password, symmetric key, asymmetric key, 或 PROVIDER,密钥可以同时有多种加密⽅式。
CREATE SYMMETRIC KEY key_nameWITH ALGORITHM = { AES_128 | AES_192 | AES_256 }, ENCRYPTION BY<encrypting_mechanism>[ , ... n ]<encrypting_mechanism> ::=CERTIFICATE certificate_name| PASSWORD ='password'| SYMMETRIC KEY symmetric_key_name| ASYMMETRIC KEY asym_key_name举个例⼦,创建⼀个对称密钥,使⽤AES_256对数据进⾏加密,并使⽤证书对密钥进⾏加密:CREATE SYMMETRIC KEY JanainaKey09WITH ALGORITHM = AES_256ENCRYPTION BY CERTIFICATE Shipping04;GO⼆,使⽤对称密钥来加密和解密数据的函数在对称密钥创建完成之后,要使⽤对称密钥对数据进⾏加密,⾸先要打开对称密钥,对称密钥的GUID可以通过函数key_GUID('name')来获得:OPEN SYMMETRIC KEY Key_name DECRYPTION BY<decryption_mechanism><decryption_mechanism> ::=CERTIFICATE certificate_name [ WITH PASSWORD = 'password' ]| ASYMMETRIC KEY asym_key_name [ WITH PASSWORD = 'password' ]| SYMMETRIC KEY decrypting_Key_name| PASSWORD ='decryption_password'当对称密钥打开之后,使⽤EncryptByKey ()来对数据进⾏加密,返回值是varbinar,最⼤长度是8000Bytes:EncryptByKey ( key_GUID , { 'cleartext'|@cleartext }[, { add_authenticator | @add_authenticator }, { authenticator | @authenticator } ] )使⽤DecryptByKey ()来对数据进⾏解密:DecryptByKey ( { 'ciphertext'|@ciphertext }[ , add_authenticator, { authenticator | @authenticator } ] )在不使⽤对称密钥时,把密钥关闭:CLOSE SYMMETRIC KEY key_name三,使⽤对称密钥来加密和解密数据的实例创建证书来对对称密钥进⾏加密。