asp网站源码+access+机械移动网站开发技术有哪些
news/
2025/10/1 13:50:32/
文章来源:
asp网站源码+access+机械,移动网站开发技术有哪些,域名的正确书写格式,中国建设网站实验项目#xff1a;RSA公钥加密与签名实验
1.实验目的
本实验的学习目标是让学生获得 RSA 算法的动手经验。 通过课堂学习#xff0c;学生应该已经了解 RSA 算法的理论部分#xff0c; 知道在数学上如何生成公钥、私钥以及如何执行加密、解密和签名生成、验证。 通过使用…
实验项目RSA公钥加密与签名实验
1.实验目的
本实验的学习目标是让学生获得 RSA 算法的动手经验。 通过课堂学习学生应该已经了解 RSA 算法的理论部分 知道在数学上如何生成公钥、私钥以及如何执行加密、解密和签名生成、验证。 通过使用具体数字进行 RSA 算法的每一个基本步骤他们可以应用课堂上学习到的理论 并加深对 RSA的理解。 本质上学生将使用 C 程序语言实现 RSA 算法。
2.实验环境
该实验室已在 SEED Ubuntu 20.04 VM 上进行了测试。您可以从 SEED 网站下载预建映像并在自己的计算机上运行 SEED VM。但是大多数 SEED 实验室都可以在云上进行您也可以按照我们的指示在云上创建 SEED VM。
3.实验内容与步骤
本次实验的具体内容即实验要验证的问题以及验证所依据的原理和设计的实验方案按照实验过程列出实验步骤涉及编程的须首先进行算法设计画出流程图算法源代码在此处仅仅按功能给出核心代码完整源代码将工程项目压缩为一个文件作为附件提交如何不是太长可以在附录中列印。
3.0 实验原理或方案
实验所依据的原理或为完成实验目的而设计的实验方案。
3.0 .1验证例子
接下来我们展示一个完整的例子。 在这个例子中我们初始化三个 BIGNUM 变量 a、b、和 n 然后计算 a*b 和 (a^b mod n)。
3.1 生成私钥
设 p、 q 和 e 为三个素数n p*q。 我们使用 (e, n) 作为公钥。 请计算私钥 d。 p、 q和 e 的十六进制如下。 注意尽管本任务中的p 和q非常的大但它们还没有大到足以保证安全。 为了简单我们有意让这些数比较小。 在实践中这些数应当至少有 512 bit而这里使用的只有 128 bit 。
3.2 加密一条消息
请将(e, n) 作为公钥加密消息 “1818064057!”不包括引号。 我们需要将 ACSII 字符串转换为十六进制字符串 然后用 BN_hex2bn()将十六进制字符串转换为 BIGNUM。 下面的 python 命令可以用于将原始的ASCII 字符串转换为十六进制字符串。
3.3 解密一条消息
本任务中使用的公私钥对与任务2中的相同。 请解密下面的密文 C然后转换回ASCII 字符串。 C 8C0F971DF2F3672B28811407E2DABBE1DA0FEBBBDFC7DCB67396567EA1E2493F3.4 为一条消息签名
本任务中使用的公私钥对与任务2中的相同。 请为下面的消息生成一个签名直接为这条消息签名而不是它的 Hash M I love you 1
稍微改动一下 M例如将 1 改为 2 然后为修改后的消息签名。 比较两个签名并描述你的发现。
3.5 验证一个签名
Bob 从 Alice 那里收到一条消息附带了她的签名S 的消息 M “Launch a missile.”。 我们知道 Alice 的公钥是 (e, n)。 请验证这个签名是否确实是 Alice 生成的。 公钥和签名十六进制如下所示 M Launch a missile. S 643D6F34902D9C7EC90CB0B2BCA36C47FA37165C0005CAB026C0542CBDB6802F e 010001 (this hex value equals to decimal 65537) n AE1CD4DC432798D933779FBD46C6E1247F0CF1233595113AA51B450F18116115
假设上面的签名被破坏了例如签名的最后一个字节从 2F 变成了 3F也就是说只改变了一个 bit。 请重复这个实验描述验证过程中发生了什么。
4、实验结果及分析
4.0 验证例子 4.1 生成私钥 生成的私钥为
d 3587A24598E5F2A21DB007D89D18CC50ABA5075BA19A33890FE7C28A9B496AEB2
4.2 加密一条消息
加密消息1818064057 验证结果发现加密与解密密文一致 4.3 解密一条消息
解密 C 8C0F971DF2F3672B28811407E2DABBE1DA0FEBBBDFC7DCB67396567EA1E2493F 得到结果DEC 50617373776F72642069732064656573
利用Python代码转换成ASCII码结果为Password is dees 4.4 为一条消息签名
为消息M I love you 1.和M I love you 2.签名先利用Python代码转换为16进制得到 得到的签名结果如下 发现两者加密得到的密文不完全一致签名的结果不一致。
4.5 验证一个签名
根据签名S 643D6F34902D9C7EC90CB0B2BCA36C47FA37165C0005CAB026C0542CBDB6802F
和签名S 643D6F34902D9C7EC90CB0B2BCA36C47FA37165C0005CAB026C0542CBDB6803F可以得到两个加密的消息
Message5-1 4B23486C674E5ECDD6C924382DD378C0E997C3A64ED3A32C5864EB4AFECDE524
Message5-2 75134ADADC056D5EC6D1F3828238234B4658028E850E3EDCB269B13A09EB00BB 解密Message 4C61756E63682061206D697373696C652E得到 解密Message 91471927C80DF1E42C154FB4638CE8BC726D3D66C83A4EB6B7BE0203B41AC294得到 可以观察到消息是Alice生成的但是签名被破坏后消息无法被解密也就是签名不是Alice生成的从而避免消息泄露。
5.总结 通过本次实验进一步学习和了解了RSA算法知道了公钥、私钥的产生过程并且能够更加深入的了解到了明文消息的加密以及解密过程同时了解了签名算法的相关信息以及需要运用的密码学知识。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923902.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!