第5章非对称密码体制与典型算法教程
- 格式:ppt
- 大小:3.00 MB
- 文档页数:123
对称密码体制和⾮对称密码体制⼀、对称加密 (Symmetric Key Encryption)对称加密是最快速、最简单的⼀种加密⽅式,加密(encryption)与解密(decryption)⽤的是同样的密钥(secret key)。
对称加密有很多种算法,由于它效率很⾼,所以被⼴泛使⽤在很多加密协议的核⼼当中。
⾃1977年美国颁布DES(Data Encryption Standard)密码算法作为美国数据加密标准以来,对称密码体制迅速发展,得到了世界各国的关注和普遍应⽤。
对称密码体制从⼯作⽅式上可以分为分组加密和序列密码两⼤类。
对称加密算法的优点:算法公开、计算量⼩、加密速度快、加密效率⾼。
对称加密算法的缺点:交易双⽅都使⽤同样钥匙,安全性得不到保证。
此外,每对⽤户每次使⽤对称加密算法时,都需要使⽤其他⼈不知道的惟⼀钥匙,这会使得发收信双⽅所拥有的钥匙数量呈⼏何级数增长,密钥管理成为⽤户的负担。
对称加密算法在分布式⽹络系统上使⽤较为困难,主要是因为密钥管理困难,使⽤成本较⾼。
⽽与公开密钥加密算法⽐起来,对称加密算法能够提供加密和认证却缺乏了签名功能,使得使⽤范围有所缩⼩。
对称加密通常使⽤的是相对较⼩的密钥,⼀般⼩于256 bit。
因为密钥越⼤,加密越强,但加密与解密的过程越慢。
如果你只⽤1 bit来做这个密钥,那⿊客们可以先试着⽤0来解密,不⾏的话就再⽤1解;但如果你的密钥有1 MB⼤,⿊客们可能永远也⽆法破解,但加密和解密的过程要花费很长的时间。
密钥的⼤⼩既要照顾到安全性,也要照顾到效率,是⼀个trade-off。
分组密码:也叫块加密(block cyphers),⼀次加密明⽂中的⼀个块。
是将明⽂按⼀定的位长分组,明⽂组经过加密运算得到密⽂组,密⽂组经过解密运算(加密运算的逆运算),还原成明⽂组,有 ECB、CBC、CFB、OFB 四种⼯作模式。
序列密码:也叫流加密(stream cyphers),⼀次加密明⽂中的⼀个位。
第一章非对称加密算法第二章编辑非对称加密算法(asymmetric cryptographic algorithm)又名“公开密钥加密算法”,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
1.目录1简介2起源3工作原理4主要应用5主要功能6主要算法7算法区别加密后的信息进行解密。
对密钥,并分发n个公钥。
由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。
同时,由于每个用户的私钥是唯一的,其他用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。
非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。
DSACryptoServiceProvider非对称加密算法RSACryptoServiceProvider//加密UnicodeEncoding encoding = new UnicodeEncoding();byte[] PasswordBytes = encoding.GetBytes(password);//将密码转换为字节数组RSACryptoServiceProvider crypt=newRSACryptoServiceProvider();//RSA加密算法,非对称PasswordBytes=crypt.Encrypt(password ,false);//加密字节数组,这是加密后的密码值,放入数据库中的表字段中。
string key=crypt.ToXmlString(true);//输出密钥为XML格式的字符串,且包含私钥,这个字符串要作为数据库表中的一个字段同用户的密码放在一起。
//解密RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();//已随机生成了一个密钥对crypt.Clear();//毁掉当前密钥对crypt.FromXmlString(key)//输入密钥对,key是从数据库表字段中读取的那个XML格式的字符串,即密钥字段PasswordBytes=crypt.Decrypt(password ,false);//解密字节数组,返回原始密码给用户上面方法的一个特点是每个用户对应一个密钥(包含公钥和私钥),它们都是随机生成的,所以各不相同。