微信公众号:龙跃十二
持续更新,欢迎关注!
用心分享,共同成长
没有什么比你每天进步一点点更实在了
本文已经收录至我的GitHub,欢迎大家踊跃star🌟。
GitHub
Hello,小伙伴们,《密码学系列》终于又要更新啦,今天小冯童学(没错,这是除了龙叔以外的另一位小姐姐)认真的分析了分析,发现《密码学系列》从第一期开始到现在已经两个多月了,虽然还有很多知识没有细细道来,但是基础框架已经基本完善了,如果小伙伴们在密码学方面还有别的问题,可以直接在公众号后台私信,随时在线,也欢迎大家多多关注微信公众号【龙跃十二】,龙叔和小冯童学继续为你分享知识。
在公要加密体制的分析之前,我们先聊聊数论…
数论:
数论是密码学特别是公钥密码学的基本工具,也是理解密码学的前提,所以还是要适当的了解一些简单的数论知识。或许当你看完数论知识,再回去看之前的密码学文章会有其他味道哦。
以下几个基本的数论知识,是小冯童学精心挑选出来的,看懂这几个,其他的都不是问题。
模运算 :
设 n 是一正整数,a是整数,如果用 n 除 a,得商为 q, 余数为 r,则
a = qn + r, 0 ≤ r < n, q = [a/ n]
其中 [x] 为小于或等于 x 的最大整数。
用 a mod n 表示余数 r,则 a = [a/ n]· n + a mod n。 ( a mod n也就是常说的a模n取余)
费尔玛定理:
若 p 是素数, a 是正整数且 gcd( a, p) = 1,则 ap - 1 ≡ 1 mod p。(gcd是指最大公约数)
欧拉定理 :
- 欧拉函数:设 n 是一正整数,小于 n 且与 n 互素的正整数的个数称为 n 的欧拉函数,记为 φ( n)。
- 欧拉定理:若 a 和 n 互素, 则 aφ( n) ≡1 mod n
欧几里得算法:
欧几里得算法是数论中的一个基本技术,主要是用来求两个正整数的最大公因子的简化过程。
而推广的欧几里得算法不仅可求两个正整数的最大公因子,而且当两个正整数互素时&#