【零基础】学python数据结构与算法笔记15-欧几里得、RSA
创始人
2024-05-13 20:36:39
0

文章目录

  • 前言
  • 95.欧几里得算法
  • 96.RSA算法介绍
  • 97.RSA算法测试
  • 98.算法课程总结
  • 总结


前言

学习python数据结构与算法,学习常用的算法,
b站学习链接

95.欧几里得算法

在这里插入图片描述

求最大公约数
欧几里得算法:gcd(a,b) = gcd(b,a mod b) #mod取余
例:gcd(60,21) = gcd(21,18) = gcd(18,3) = gcd(3,0) = 3

相同的部分拿掉,就相当于取余
在这里插入图片描述
然后继续拿掉相同的部分
在这里插入图片描述
在这里插入图片描述
最后只剩下一个21,几个21就相当于几个这个。
在这里插入图片描述
在这里插入图片描述
可以简单用欧几里得写一个分数的四则运算。
这里只写了加法python3:魔法函数__add__
在这里插入图片描述

96.RSA算法介绍

RSA是非对称加密。
传统密码是别人不知道加密方法,比方说说以前罗马皇帝发明了个加密算法,把字符都往后移三位,abc 发成def
以前的传统密码可以通过暴力枚举来求出来,而现在密码是加密算法是公开的,但没有密钥是解不出这个密文的。
在这里插入图片描述
Bob给Alice发密文,钥匙有两份,公钥大家都知道,是公开的,私钥是只有收件人才有的,只有它才可以破译知道密文是什么,窃密者不知道密文是什么。
在这里插入图片描述

97.RSA算法测试

RSA加密算法过程
在这里插入图片描述
首先我们取两个质数
p = 53
q = 59
n = pq = 3127
fai = (p-1)
(q-1) = 3016
取与fai互质的小奇数e = 3
第四步 略过计算,这些需要数论知识来求解 ,得出d = 2011
(3*2011%3016 = 1)
e和n组成公钥,d和n组成私钥,m是原文,因为所有数据通过电脑都能转换成01流,所以不是数字也没关系。
在这里插入图片描述
这里原文是m = 87,m可以随便换
密文c = 873%3127 = 1833 (加密过程)
m = 1833
2011%3127 = 87(解密过程)

到目前为止,市面上大多数加密都是RSA算法来加密的,像https里的s,linux系统里的加密都是RSA算法,目前没有人破解这个算法。
因为两个质子相乘很简单,求一个大数由哪两个质子相乘很难,数越大越难破解,因为只能一个一个枚举,如果你能拆开,只能说是这一对密钥你破解了,而不是算法能破解,破解了再生成一个新的密钥就需要重新来破。

98.算法课程总结

贪心算法和动态规划在《算法导论》里属于高级设计与分析的思想了,但在真正的算法领域还算是沧海一粟。

总结

学习了补充的两个算法,欧几里得和RSA

文章目录

  • 前言
  • 95.欧几里得算法
  • 96.RSA算法介绍
  • 97.RSA算法测试
  • 98.算法课程总结
  • 总结


相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
ChatGPT 怎么用最新详细... ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...