2021-05-05

5.5

实训主题:密码学(后续)

公钥加密算法

RSA算法的数学原理

  1. 阅读RSA.cpp中的代码,了解其实现方法。
  2. 调试运行RSA.cpp,选择两个不同的素数。
  3. 根据生成的d和e验证公式d×e ≡ 1 (mod (p-1)(q-1))。
  4. 输入要加密的数。
  5. 验证密钥是否有效(加密解密的计算过程和结果是否正确)。

利用RSA-Tool加密消息

  1. 运行RSA-Tool,点击Start按钮,滑动鼠标生成一个随机数。
  2. 点击Generate生成一对大质数p、q及N=p×q。
  3. 自己选定一个可用的整数e。
  4. 点击Calc.D生成d。
  5. 至此创建了一对公钥和私钥。
  6. 将公钥(N,e)发送给小伙伴,小伙伴利用该公钥进行消息加密并发回密文。
  7. 利用私钥对小伙伴发来的密文进行解密。

注:加密时仅需要eN,解密时仅需要dN

利用RSA算法实现对称密钥的安全分配

  1. 小A同学准备一些文字(信件),选择一个密钥利用DES-Tool对文字进行加密得到密文1
  2. 小B同学运行RSA-Tool,生成公钥和私钥,将公钥发送给小A同学,私钥自己留存。
  3. 小A同学利用小B同学的公钥对加密信件时使用的对称密钥进行加密,得到密文2。将密文1和密文2一同发送给小B同学。
  4. 小B同学首先用自己的私钥解密密文2,接着利用解密密文2得到的对称密钥在DES-Tool中解密密文1,得到原始文字内容。
  5. 具体流程可参考下图。

利用RSA算法生成数字签名

  1. 小A同学运行Hash-Tool,生成某文件的MD5值。
  2. 小A同学利用RSA Tool对生成的MD5值进行私钥加密(反向使用RSA算法,Generate生成密钥后将D和E交换位置,再用test进行加密)。
  3. 小A同学将公钥、文件和加密后的MD5一起发送给小B同学,由小B同学验证数字签名的正确性(软件中先激活test按钮,再填写公钥进行解密)。
  4. 具体流程可参考下图。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值