网络安全_密码学实验_非对称加密算法RSA

  • 一、实验环境
  • 二、非对称加密RSA
    • 1.理解RSA算法原理
    • 2.加密过程
    • 解密过程

一、实验环境

PyCharm 2019.2.4 (Professional Edition) & Python 3.7

二、非对称加密RSA

1.理解RSA算法原理

2.加密过程

2.1 首先随机生成两个素数p,q(保密)
在这里使用random库就可以生成一个随机数,然后判断是否为一个素数,如果是一个素数,返回True,如果不是,返回False。
2.2 计算n=pq(公开),欧拉函数值f(n) = (p-1)(q-1)(保密)

2.3 随机选取正整数 1<e<f(n),满足gcd(e,f(n))==1
2.4 计算d,满足 d*e≡1(mod f(n))

2.5 由此得到公钥(N,E),私钥(N,D)
2.6 加密变换:对于明文 m∈Zn,密文为c=m^e mod n.
这里使用了大数的幂次取模,将幂指数转换成二进制求解,该算法是由高德纳提出的。算法如下图:

解密过程

解密变换:对于明文 c∈Zn,明文为m=c^d mod n.
解密过程同样运用了大数的幂次取模,和加密过程的基本原理相同,此处不过多赘述。

#三、 运行结果

运行本程序,显示功能清单,选择RSA加密、RSA解密或者退出。首先,选择1,随机生成两个素数p,q,计算n,f(n),随机选取正整数e,计算d,从而得到公钥和私钥。输入明文(明文长度不受限制),回车,生成密文。
然后,选择2,接着输入私钥,回车,显示明文。最后,选择q,退出。

网络安全_密码学实验_非对称加密算法RSA相关推荐

  1. 网络安全_密码学实验_对称加密算法DES

    网络安全_密码学实验_对称密码非对称密码_加密算法DES RSA 一.实验环境 二.对称加密DES 1.理解DES算法原理 2.加密过程 3.解密过程 三.运行结果 一.实验环境 PyCharm 20 ...

  2. 非对称加密算法RSA公钥私钥的模数和指数提取方法

    生成非对称加密算法RSA公钥.私钥的方法: 1. 通过OpenSSL库生成,可参考  https://github.com/fengbingchun/OpenSSL_Test/blob/master/ ...

  3. python实现非对称加密算法_Python3非对称加密算法RSA实例详解

    本文实例讲述了Python3非对称加密算法RSA.分享给大家供大家参考,具体如下: python3 可以使用 Crypto.PublicKey.RSA 和 rsa 生成公钥.私钥. 其中 python ...

  4. 迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践(1)

    迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践 0.相关文章 1.导入所使用的包 2. 定义迷宫 3.定义迷宫动作 4.策略参数θ转换为行动策略π 5.定义随机移动函数 6.定义使智 ...

  5. Java加密技术(四)——非对称加密算法RSA

    转自:http://snowolf.iteye.com/blog/381767 接下来我们介绍典型的非对称加密算法--RSA RSA     这种算法1978年就出现了,它是第一个既能用于数据加密也能 ...

  6. java js 非对称加密算法_Java加密技术(四)——非对称加密算法RSA

    Java非对称加密算法rsa 接下来我们介绍典型的非对称加密算法--RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字 ...

  7. Java进阶(七)Java加密技术之非对称加密算法RSA

    Java加密技术(四)--非对称加密算法RSA 非对称加密算法--RSA 基本概念 非对称加密算法是一种密钥的保密方法. 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(priv ...

  8. 非对称加密算法-RSA

    2019独角兽企业重金招聘Python工程师标准>>> 1.概述 RSA有两个密钥,一个是公开的,称为公开密钥:一个是私密的,称为私密密钥. 特点: 公开密钥是对大众公开的,私密密钥 ...

  9. 在非对称加密算法RSA中,假设“大”素数p=5,q=11,试给出计算过程。

    文章目录 1. 题目在非对称加密算法RSA中,假设"大"素数p=5,q=11,试给出计算过程. 2. 分析步骤 3. 抄作业简单粗暴看这里 4. 参考 1. 题目在非对称加密算法R ...

最新文章

  1. 《AI系统周刊》第4期:DNN模型压缩之剪枝(Pruning)
  2. java 中 Object XML 互转,最终选择Xstream
  3. serial driver 1
  4. Java常见Jar包的用途
  5. 百度推出挖掘机自动驾驶技术:操作不输蓝翔
  6. Statement violates GTID consistency: CREATE TABLE ... SELECT.
  7. linux下opengl开发环境,Ubuntu 16.04 OpenGL 开发环境配置指南
  8. zookeeper管理mysql_Mysql系列九:使用zookeeper管理远程Mycat配置文件、Mycat监控、Mycat数据迁移(扩容)...
  9. 实习踩坑之路:LocalDateTime计算间隔天数,compareTo/Period的beetween方法导致的bug
  10. mtkwin10驱动_联发科MTK刷机驱动(支持WIN10)驱动
  11. Java固定资产管理系统源码
  12. wps word设置级别多级目录标题
  13. AD7705和压力传感器的计算
  14. 智能衣橱控制系统的设计
  15. 基于长短期记忆神经网络和卷积神经网络(convLSTM)的股票涨跌预测模型(附代码)
  16. mysql 时区时间_MySql的时区(serverTimezone)引发的血案
  17. TensorFlow实现语音识别
  18. HIVE基础知识及优化(面试必备)
  19. 《Python核心编程》第5章 数字 练习
  20. SaltStack技术入门与实践

热门文章

  1. 投影、坐标系统、基准面和椭圆体、空间参考几个概念的详述
  2. 计算机编辑学,计算机常识及电文档编辑学习.doc
  3. 通信工程和计算机考研哪个好,通信工程考研还是就业
  4. jenkins api使用_使用管理API和Jenkins作为IBM App Connect Professional部署自动化的持续集成引擎
  5. 关于安装anaconda错误:failed to create anaconda menus
  6. 计算机远程桌面连接实验报告,实验二 常见网络测试命令使用实验
  7. Observability:Wavefront
  8. 「PAT乙级真题解析」Basic Level 1033 旧键盘打字 (问题分析+完整步骤+伪代码描述+提交通过代码)
  9. 仿宋小二在html中怎么设置,CSS 网页中正确设置字体的方法 - 文章教程
  10. 虚拟机无法ping通物理机解决方案