密钥相关知识

上传人:ji****72 文档编号:35812595 上传时间:2018-03-20 格式:DOCX 页数:8 大小:43.75KB
返回 下载 相关 举报
密钥相关知识_第1页
第1页 / 共8页
密钥相关知识_第2页
第2页 / 共8页
密钥相关知识_第3页
第3页 / 共8页
密钥相关知识_第4页
第4页 / 共8页
密钥相关知识_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《密钥相关知识》由会员分享,可在线阅读,更多相关《密钥相关知识(8页珍藏版)》请在金锄头文库上搜索。

1、密钥密钥密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据 密钥分为两种:对称密钥与非对称密钥对称密钥加密对称密钥加密,又称私钥加密或会话密钥加密算法,即信息的发送方和接收方用同一个密 钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密 钥管理困难。 非对称密钥加密系统非对称密钥加密系统,又称公钥密钥加密。它需要使用不同的密钥来分别完成加密和解密 操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送 者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密 速度却比对称密钥加密慢得多。 所以在实

2、际的应用中,人们通常将两者结合在一起使用,例如,对称密钥加密系统用于存 储大量数据信息,而公开密钥加密系统则用于加密密钥。对称密钥对称密钥对称密钥加密对称密钥加密又叫专用密钥加密专用密钥加密,即发送和接收数据的双方必使用相同的密钥对明文 进行加密和解密运算。对称密钥加密算法主要包括:DES、3DES、IDEA、FEAL、BLOWFISH 等。 DES.DES 是美国国家标准和技术局(NIST)在 1977 年才有的数据加密标准,文件编号 为 FIPS PUB46。 算法本身称为 DEA(数据加密算法) 。DES 是最常用的对称加密算法。DES 密匙长度为 56 位,分组长度为 64 位。 TD

3、EA(3DES) (三重(三重 DEA)最初是由 Tuchman 提出的,在 1985 年的 ANSI 标准 X9.17 中第一次为金融应用进行了标准化。1999 年,TDEA 合并到数据加密标准中,文献编号问 哦 FIPS PUB46-3 ,TDEA 使用三个密匙,并执行三次 DES 算法。TDEA 密匙长度是 168 比特。 IDEA . IDEA 是在 1991 年由瑞士联邦技术协会的 Xuejia Lai 和 James Massey 开发的。 IDEA 以 64 位的明文块进行分组,密匙长度为 128 位,主要采用 3 中运算:异或、模加、 模乘。 对称密钥对称密钥是双方使用相同的密

4、钥,在网络条件下就存在相应的不安全性。 对称加密的要求对称加密的要求 (1)需要强大的加密算法。算法至少应该满足:即使分析人员知道了算法并能访问一 些或者更多的密文,也不能译出密文或得出密匙。通常,这个要求以更强硬的形式表达出 来,那就是:即使分析人员拥有一些密文和生成密文的明文,也不能译出密文或者发现密 匙。即,加密算法应足以抵抗已知明文类型的破译。 (2)发送方和接收方必须用安全的方式来获得保密密匙的副本,必须保证密匙的安全。 如果有人发现了密匙,并知道了算法,则使用此密匙的所有通信便都是可读取的。 从数学角度理解从数学角度理解以一个具体例子来说明有助于真正理解对称加密这概念。假设 A 需

5、要把一份明文为 M 的资料发给 B,但是因为怕资料在传输的中途被窃听或者篡改,A 用了对称加密法将 M 经 过一个加密函数 Fk 处理后生成 M加密文,而 B 接受到加密文后通过事先商定好的 Fk 再次 处理 M便可以还原成明文 M,从而达到安全传输信息的目的。 A 处: M = Fk(M) B 处: M = Fk(M) 对称加密算法对称加密算法对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算 法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出 来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为 秘密密钥算法

6、或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对 称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解 密,所以密钥的保密性对通信性至关重要。 对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。 不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使 用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的 钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上 使用较为困难,主要是因为密钥管理困难,使用成本较高。而与公开密钥加密算法比起来, 对称加密算法能够提供加密和认

7、证却缺乏了签名功能,使得使用范围有所缩小。在计算机 专网系统中广泛使用的对称加密算法有 DES 和 IDEA 等。美国国家标准局倡导的 AES 即将作 为新标准取代 DES。具体算法具体算法DES 算法,3DES 算法,TDEA 算法,Blowfish 算法,RC5 算法,IDEA 算法。 原理及应用原理及应用对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户 需要使用对称加密方法加密然后交换数据,则用户最少需要 2 个密钥并交换使用,如果企 业内用户有 n 个,则整个企业共需要 n(n-1) 个密钥,密钥的生成和分发将成为企业信息 部门的恶梦。对称加密算法的安全性取决

8、于加密密钥的保存情况,但要求企业中每一个持 有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去如果一个 用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整 个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。 DESCryptoServiceProvider RC2CryptoServiceProvider RijndaelManaged TripleDESCryptoServiceProvider /例加密文本文件(RijndaelManaged ) byte key = 24, 55, 102,24, 98, 26, 67, 29, 84,

9、 19, 37, 118, 104, 85, 121, 27, 93, 86, 24, 55, 102, 24,98, 26, 67, 29, 9, 2, 49, 69, 73, 92 ; byte IV = 22, 56, 82, 77, 84, 31, 74, 24,55, 102, 24, 98, 26, 67, 29, 99 ; RijndaelManaged myRijndael = new RijndaelManaged(); FileStream fsOut = File.Open(strOutName, FileMode.Create,FileAccess.Write);/st

10、rOutName文件名及路径 FileStream fsIn = File.Open(strPath, FileMode.Open,FileAccess.Read); CryptoStream csDecrypt=new CryptoStream(fsOut,myRijndael.CreateEncryptor(key, IV),CryptoStreamMode.Write);/读加密文本 BinaryReader br = new BinaryReader(fsIn); csDecrypt.Write(br.ReadBytes(int)fsIn.Length),0, (int)fsIn.Le

11、ngth); csDecrypt.FlushFinalBlock(); csDecrypt.Close(); fsIn.Close(); fsOut.Close(); /解密文件 byte key = 24, 55, 102, 24, 98, 26, 67, 29, 84, 19, 37, 118,104, 85, 121, 27, 93, 86, 24, 55, 102, 24, 98, 26, 67, 29, 9, 2, 49, 69, 73, 92; byte IV = 22, 56, 82, 77, 84, 31, 74, 24, 55, 102, 24, 98, 26,67, 29,

12、 99 ; RijndaelManaged myRijndael = new RijndaelManaged(); FileStream fsOut = File.Open(strPath, FileMode.Open, FileAccess.Read); CryptoStream csDecrypt = new CryptoStream(fsOut, myRijndael.CreateDecryptor(key,IV), CryptoStreamMode.Read); StreamReader sr = new StreamReader(csDecrypt);/把文件读出来 StreamWr

13、iter sw = new StreamWriter(strInName);/解密后文件写入一个新的文件 sw.Write(sr.ReadToEnd(); sw.Flush(); sw.Close(); sr.Close();f sOut.Close(); 用图片加密(RC2CryptoServiceProvider ) FileStreamfsPic = new FileStream(pictureBox1.ImageLocation,FileMode.Open, FileAccess.Read); /加密文件流(textBox1.Text 是文件名及路径) FileStream fsTex

14、t = new FileStream(textBox1.Text, FileMode.Open,FileAccess.Read); byte bykey = new byte16; /初始化 Key IVbyte byIv = new byte8; fsPic.Read(bykey, 0, 16); fsPic.Read(byIv, 0, 8); RC2CryptoServiceProvider desc = newRC2CryptoServiceProvider();/desc 进行加密 BinaryReader br = new BinaryReader(fsText);/从要加密的文件中

15、读出文件内容 FileStream fsOut = File.Open(strLinPath,FileMode.Create, FileAccess.Write); / strLinPath 临 时加密文件路径 CryptoStream cs = new CryptoStream(fsOut, desc.CreateEncryptor(bykey,byIv), CryptoStreamMode.Write);/写入临时加密文件 cs.Write(br.ReadBytes(int)fsText.Length),0, (int)fsText.Length);/写入加密流 cs.FlushFinal

16、Block(); cs.Flush(); cs.Close(); fsPic.Close(); fsText.Close(); fsOut.Close(); 用图片解密 FileStream fsPic = new FileStream(pictureBox1.ImageLocation, FileMode.Open, FileAccess.Read); /图片流 FileStream fsOut = File.Open(textBox1.Text,FileMode.Open, FileAccess.Read);/解密文件流 byte bykey = new byte16; /初始化 Key IVbyte byIv = new byte8; fsPic.Read(bykey, 0, 16); fsPic.Read(byIv, 0, 8); string strPath = textBox1.Text;/加密文件的路径 int intLen

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号