信息安全技术基础_第七章.ppt
其他公钥加密算法简介MH背包公钥加密体制n两个著名的公钥密码体制:背包公钥体制RSA公钥体制n1978年由Merkle 和Hellman首先提出n已经被Shamir等人破译n它的思想和有关理论首先揭示了公钥密码算法的本质,具有重要的理论意义n安全性基于背包问题求解的困难性背包问题例:给定背包长度L=4792,10根棍长度分别是a1=2292,a2=1089,a3=0211,a4=1625,a5=1283,a6=0599,a7=0759,a8=0315,a9=2597,a10=2463问选择哪几根棍子装入L,使长度总和恰好等于L?ECC椭圆曲线加密算法n基于椭圆曲线的离散对数问题n相对RSA算法,ECC密钥长度大大缩短,运算速度加快,安全性更高n具有很大潜力,已经成为一系列加密和签名算法的标准椭圆曲线ny2=x3+ax+b在 VB.net 中进行加密和解密对称加密解密相关的类库n导入库 Import System.Security.CryptographyImport System.IO.Streamn对称加密和解密操作都通过“流”stream 实现生成加密算法对象生成加密器对象密钥Key初始向量IV生 成 流 对 象Stream生成加密流对象一个简单的例子:DES加密Dim desKey()As Byte=&H62,&H42,&H33,&H28,&H62,&H42,&H33,&H28Dim IV()As Byte=&H62,&H42,&H33,&H28,&H62,&H42,&H33,&H28Dim Message()As Byte=&H62,&H42,&H33,&H28,&H62,&H42,&H33,&H28Dim des As New DESCryptoServiceProviderDim ct As ICryptoTransformct=des.CreateEncryptor(desKey,IV)Dim fout As New FileStream(test.out,FileMode.OpenOrCreate,FileAccess.Write)Dim encStream As New CryptoStream(fout,ct,CryptoStreamMode.Write)encStream.Write(Message,0,8)加密算法类提供了很多现成的加密算法(DES,TripleDES,RC2,RSA等)。n对称加密算法都从SymmetricAlgorithm 中继承,n非对称加密算法都从AsymmetricAlgorithm 中继承几个加密算法对象nDESCryptoServiceProvider,实现DESnTripleDESCryptoServiceProvider,实现三重DES加密nRijndaelManaged,实现AES(Rijndeal)nRSACryptoServiceProvider,实现RSA非对称加密解密算法加密算法类中的Padding属性表示什么意思?nPadding属性表示“填充方式”。表示当输入的数据不是完整的块的时候,如何进行填充。None:不填充。当不是整块数据时抛出异常PKCS7:按照PKCS7的标准进行填充。具体的方法较为复杂Zeros:全部使用0进行填充。IV的作用是什么?Mode属性的意义又是什么?n对于各种块密码加密算法,如果存在相同的两个块,那么输出块也必然相同。这将给密码破译者提供更多的信息。为了克服这个问题,FIPS PUB74和FIPS PUB81中给出了四种加密的工作方式,就是ModenECB方式:电子密码本方式该种工作方式就是不加入任何反馈的方式nCBC方式c0=IVci=DESk(mi+ci-1)nCFB方式,OFB方式他们也都需要一个IVCBC的工作方式DES+DES+DES+IVm1m2m3c1c2c3IV称为初始向量,采用不同的IV,加密结果也不相同。但是IV并不需要保密。加密和解密必须使用相同的key 和相同的IV在VB.net 中进行RSA加密解密n使用RSACryptoServiceProvide对象n所使用的密钥是RSAParameters对象作业1._密码体制是最早进行理论研究的公钥密码体制。它的思想和理论首先揭示了公钥加密体制的本质。2.在VB.net 中,利用本身的加密功能,必须倒入的两个类库是_和_。3.在VB.net 中,要进行AES加密和解密,应该创建的加密算法类对象是_。要进行RSA加密和解密,应该创建的加密算法类对象是_。4.填写以下进行DES加密的过程中,VB.net 创建的对象的现有顺序:5.要进行数据加密,可以调用加密流的方法_加密算法类_加密器类型_密钥Key初始向量IV文件流_或内存流_加密流类_