1 / 14
文档名称:

信息与网络安全.docx

格式:docx   大小:27KB   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

信息与网络安全.docx

上传人:君。好 2024/5/13 文件大小:27 KB

下载得到文件列表

信息与网络安全.docx

相关文档

文档介绍

文档介绍:该【信息与网络安全 】是由【君。好】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【信息与网络安全 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。信息与网络安全信息与网络安全信息与网络安全信息与网络安全实验报告一、实验名称设计数字签名二、实验目得理解数字签名,学会设计数字签名三、实验原理1:2、0得MAKECERT创建含有私钥得数字证书,并存储到个人证书区;2:将该证书导出为pfx文件,并为其指定一个用来打开pfx文件得password;3:读取pfx文件,导出pfx中公钥和私钥;4:用pfx证书中得公钥进行数据得加密,用私钥进行数据得解密。四、签名算法:usingSystem;usingSystem、Text;信息与网络安全信息与网络安全信息与网络安全using System、Security、Cryptography;namespace DigitalSignature{ //信息和签名得封包 public structDS {publicbyte[]data; publicbyte[]signature; } classProgram { static DSACryptoServiceProviderdsa=new DSACryptoServiceProvider(); //创建了公钥和私钥对 //创建数字签名 DSCreateSignature(stringstrData)信息与网络安全信息与网络安全信息与网络安全 { SHA1Managedsha1 = newSHA1Managed(); { SHA1Managedsha1= new SHA1Managed(); DSASignatureFormattersigFormatter =newDSASignatureFormatter(dsa); byte[] data_Bytes=Encoding、ASCII、GetBytes(strData); byte[]hash_Bytes=puteHash(data_Bytes); sigFormatter、SetHashAlgorithm("SHA1"); byte[]signedHash=sigFormatter、CreateSignature(hash_Bytes); DSds= newDS(); ds、data =hash_Bytes; ds、signature=signedHash; returnds; }信息与网络安全信息与网络安全信息与网络安全 //验证数字签名 boolVerifySignature(DSds) { byte[]remote_HashedValue= ds、data; byte[]remote_SignedHash = ds、signature;DSASignatureDeformattersigDeformatter=newDSASignatureDeformatter(dsa); sigDeformatter、SetHashAlgorithm("SHA1"); if(sigDeformatter、VerifySignature(remote_HashedValue,remote_SignedHash)) { returntrue;} return false; } staticvoidMain(string[]args)信息与网络安全信息与网络安全信息与网络安全 { stringstrMsg= "ADWQKGLBUFOWDT"; //报文文本 DS ds=newDS(); Program prog=new Program(); ds= prog、CreateSignature(strMsg); //模拟签名在传输途中遭到破坏或修改 //、、、 //ds、signature= new byte[40]; if(prog、VerifySignature(ds)) { //验证通过 Console、WriteLine("Thesignatureusedto signthehashhasbeen verified、"); } else信息与网络安全信息与网络安全信息与网络安全 { //验证未通过 Console、WriteLine("The signatureusedtosignthehashdoesn'tmatchthe hash、"); } Console、ReadLine(); } }}五、对数字签名算法得理解 数字签名就就是非对称密钥加密技术与数字摘要技术得应用。数字签名有两种功效:一就就是能确定消息确实就就是由发送方签名并发出来得,因为别人假冒不了发送方得签名。二就就是数字签名能确定消息得完整性。因为数字签名得特点就就是她代表了文件得特征,文件如果发生改变,数字签名得值也将发生变化。不同得文件将得到不同得数字签名。一次数字签名涉及到一个哈希函数、发送者得公钥、发送者得私钥。”信息与网络安全信息与网络安全信息与网络安全一、实验名称PGP算法二、实验目得了解PGP得工作原理,掌握PGP算法得使用三、实验原理发送方创建消息发送方生成消息得160位得散列码用发送方私钥对散列进行RSA加密,加到消息上传输数据接收方用发送方得公钥对加密部分进行RSA解密接收方将剩余数据生成160位散列码生成散列与解密散列进行比较,如果匹配,则认证成功四源程序:importjava、io、*;importjava、security、*;信息与网络安全信息与网络安全信息与网络安全importjava、lang、reflect、*;importjavax、crypto、*;import javax、crypto、spec、*;lassDecryptStartextendsClassLoader{ // 这些对象在构造函数中设置, //以后loadClass()方法将利用她们解密类privateSecretKey key;privateCipher cipher;//构造函数:设置解密所需要得对象 public DecryptStart(SecretKey key)throwsGeneralSecurityException, IOException{ this、key = key; Stringalgorithm ="DES"; SecureRandomsr = newSecureRandom();信息与网络安全信息与网络安全信息与网络安全 System、err、println("[DecryptStart:creatingcipher]" ); cipher=Cipher、getInstance( algorithm); cipher、init(Cipher、DECRYPT_MODE,key, sr);} //main过程:我们要在这里读入密匙,创建DecryptStart得//实例,她就就就是我们得定制ClassLoader。//设置好ClassLoader以后,我们用她装入应用实例,// 最后,我们通过JavaReflection API调用应用实例得main方法static public void main(Stringargs[])throwsException { Stringkey = args[0]; StringappName= args[1]; //这些就就是传递给应用本身得参数String realArgs[] =newString[args、length-2];System、arraycopy(args,2, realArgs, 0,args、length-2); //读取密匙信息与网络安全信息与网络安全信息与网络安全 System、err、println("[DecryptStart:readingkey]"); byte rawKey[]=Util、readFile(key);DESKeySpecdks =newDESKeySpec(rawKey); SecretKeyFactorykeyFactory=SecretKeyFactory、getInstance( "DES");SecretKeykey= keyFactory、generateSecret(dks); //创建解密得ClassLoaderDecryptStart dr = newDecryptStart(key); // 创建应用主类得一个实例 // 通过ClassLoader装入她 System、err、println("[DecryptStart:loading"+appName+"]"); Class clasz= dr、loadClass(appName); //最后,通过ReflectionAPI调用应用实例// 得main()方法 //获取一个对main()得引用