网络安全_密码学实验_非对称加密算法RSA
网络安全_密码学实验_非对称加密算法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相关推荐
- 网络安全_密码学实验_对称加密算法DES
网络安全_密码学实验_对称密码非对称密码_加密算法DES RSA 一.实验环境 二.对称加密DES 1.理解DES算法原理 2.加密过程 3.解密过程 三.运行结果 一.实验环境 PyCharm 20 ...
- 非对称加密算法RSA公钥私钥的模数和指数提取方法
生成非对称加密算法RSA公钥.私钥的方法: 1. 通过OpenSSL库生成,可参考 https://github.com/fengbingchun/OpenSSL_Test/blob/master/ ...
- python实现非对称加密算法_Python3非对称加密算法RSA实例详解
本文实例讲述了Python3非对称加密算法RSA.分享给大家供大家参考,具体如下: python3 可以使用 Crypto.PublicKey.RSA 和 rsa 生成公钥.私钥. 其中 python ...
- 迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践(1)
迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践 0.相关文章 1.导入所使用的包 2. 定义迷宫 3.定义迷宫动作 4.策略参数θ转换为行动策略π 5.定义随机移动函数 6.定义使智 ...
- Java加密技术(四)——非对称加密算法RSA
转自:http://snowolf.iteye.com/blog/381767 接下来我们介绍典型的非对称加密算法--RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能 ...
- java js 非对称加密算法_Java加密技术(四)——非对称加密算法RSA
Java非对称加密算法rsa 接下来我们介绍典型的非对称加密算法--RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字 ...
- Java进阶(七)Java加密技术之非对称加密算法RSA
Java加密技术(四)--非对称加密算法RSA 非对称加密算法--RSA 基本概念 非对称加密算法是一种密钥的保密方法. 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(priv ...
- 非对称加密算法-RSA
2019独角兽企业重金招聘Python工程师标准>>> 1.概述 RSA有两个密钥,一个是公开的,称为公开密钥:一个是私密的,称为私密密钥. 特点: 公开密钥是对大众公开的,私密密钥 ...
- 在非对称加密算法RSA中,假设“大”素数p=5,q=11,试给出计算过程。
文章目录 1. 题目在非对称加密算法RSA中,假设"大"素数p=5,q=11,试给出计算过程. 2. 分析步骤 3. 抄作业简单粗暴看这里 4. 参考 1. 题目在非对称加密算法R ...
最新文章
- 《AI系统周刊》第4期:DNN模型压缩之剪枝(Pruning)
- java 中 Object XML 互转,最终选择Xstream
- serial driver 1
- Java常见Jar包的用途
- 百度推出挖掘机自动驾驶技术:操作不输蓝翔
- Statement violates GTID consistency: CREATE TABLE ... SELECT.
- linux下opengl开发环境,Ubuntu 16.04 OpenGL 开发环境配置指南
- zookeeper管理mysql_Mysql系列九:使用zookeeper管理远程Mycat配置文件、Mycat监控、Mycat数据迁移(扩容)...
- 实习踩坑之路:LocalDateTime计算间隔天数,compareTo/Period的beetween方法导致的bug
- mtkwin10驱动_联发科MTK刷机驱动(支持WIN10)驱动
- Java固定资产管理系统源码
- wps word设置级别多级目录标题
- AD7705和压力传感器的计算
- 智能衣橱控制系统的设计
- 基于长短期记忆神经网络和卷积神经网络(convLSTM)的股票涨跌预测模型(附代码)
- mysql 时区时间_MySql的时区(serverTimezone)引发的血案
- TensorFlow实现语音识别
- HIVE基础知识及优化(面试必备)
- 《Python核心编程》第5章 数字 练习
- SaltStack技术入门与实践
热门文章
- 投影、坐标系统、基准面和椭圆体、空间参考几个概念的详述
- 计算机编辑学,计算机常识及电文档编辑学习.doc
- 通信工程和计算机考研哪个好,通信工程考研还是就业
- jenkins api使用_使用管理API和Jenkins作为IBM App Connect Professional部署自动化的持续集成引擎
- 关于安装anaconda错误:failed to create anaconda menus
- 计算机远程桌面连接实验报告,实验二 常见网络测试命令使用实验
- Observability:Wavefront
- 「PAT乙级真题解析」Basic Level 1033 旧键盘打字 (问题分析+完整步骤+伪代码描述+提交通过代码)
- 仿宋小二在html中怎么设置,CSS 网页中正确设置字体的方法 - 文章教程
- 虚拟机无法ping通物理机解决方案