当前位置: 首页 > news >正文

注册做网站的营业执照福建省城乡住房建设厅网站

注册做网站的营业执照,福建省城乡住房建设厅网站,代加工订单,营销方案效果评估范文实验项目:RSA公钥加密与签名实验 1.实验目的 本实验的学习目标是让学生获得 RSA 算法的动手经验。 通过课堂学习,学生应该已经了解 RSA 算法的理论部分, 知道在数学上如何生成公钥、私钥以及如何执行加密、解密和签名生成、验证。 通过使用…

实验项目: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 = 8C0F971DF2F3672B28811407E2DABBE1DA0FEBBBDFC7DCB67396567EA1E2493F

3.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.yayakq.cn/news/345405/

相关文章:

  • 天津工程建设招标网站天津市建设交易中心网站
  • 服务器做内网网站珠宝商城网站模板免费下载
  • 网站设计的原则不包括织梦网站流动广告代码
  • 深圳建设网站个人如何用服务器做网站
  • 正规接单赚佣金的app网站建设与优化推广方案内容
  • 菜鸟是什么网站怎么让自己做的网站让别人看到
  • 辽宁省城乡建设网站php钓鱼网站开发
  • 廊坊做网站优化的公司微信注册平台
  • 装修大全南宁seo排名优化
  • 好的网页设计网站推荐简网app工场官网免费
  • 怎么查看网站disallowwordpress引入js
  • 免费资料网站网址下载wordpress seven
  • 怎样建设简单的网站优质网站建设服务
  • 漯河市城市建设投资公司网站青岛网站排名哪家公司好
  • 外汇平台网站建设找兼职h5网站开发人员
  • 苏州网站搭建公司lnmp wordpress 伪静态
  • 婚庆网站源码网页设计答辩流程
  • 芜湖网站建设哪家好如何向alexa提交网站
  • 微网站自己怎么做的吗土木建筑网站
  • 网站建设需要了解哪些方面仿淘宝网站源码 php
  • 长春网站建设方案优化足球比赛直播
  • 2016网站设计js 插件html转换wordpress
  • 制作ppt的软件免费无锡网站seo
  • 怎么做告白网站棋牌网站建设多少钱
  • 网站关键词在哪里添加网站建设需要投资多少
  • 找人做的网站推广被坑阿里云做网站麻烦吗
  • 佛山设计网站设计价格广州市网站建设制作设计平台
  • 网站模板 寻模板上海做网站内容检查的公司
  • 手上有一个好网站怎么做赚钱文章博客媒体网站模板
  • 网站ico门户地方网站 策略