1,数论基础

1.1,欧几里得算法:

如果a=bq+r, b≠0且a、b、q、r为整数,则 gcd(a, b)=gcd(b, r);

其实这就是除法求余的过程:我们令a=b,b=a/b®;也叫辗转相除法啊。

于是,我们还有另外一种形式:gcd(a, b)=gcd(b, a (mod b))

//这里贴一下欧几里得算法
//递归形式的更加清晰
int ojld(int m,int n){if(m%n==0){return n;}return ojld(n,m%n);
}

1.2,扩展欧几里得算法

问题引入:

对于整数a和正整数b,当gcd(a, b)=1时存在整数c, 使得ac ≡ 1 (mod b);称c为a关于模b的乘法逆元,记为a−1a^{-1}a−1。

对于给定的整数a和b,扩展的欧几里得算法不仅可以计算出最大公因子d,而且还有另外两个整数s和t,使得满足如下方程:

as+bt = d = gcd(a, b)。

另外,根据互素的性质,存在s和t,使得as+nt=1,而nt≡0 (mod n),所以s是a关于模n的乘法逆元,即a−1=sa^{-1}=sa−1=s。由此,我们可以使用扩展欧几里得算法求解逆元了。注意,乘法逆元不唯一,但在mod n下是唯一的。

计算方法:采取添加单位矩阵的方式,进行列变换,直到某列出现1。此时我们将当前列中的绝对值大数乘以原式中的小数,类似即可得到我们想要的结果。

如果(a mod n) = (b mod n),那么称a,b模n同余,记为 a≡bmodna \equiv b \bmod na≡bmodn;

费马定理:如果p是素数,并且a是不能被p整除的正整数,则ap−1≡1(modp)a^{p-1}≡1 (mod p)ap−1≡1(modp);

另一等价形式:如果p是素数,a是任意的正整数且gcd(a, p)=1,则有ap≡a(modp)a^{p}≡a (mod p)ap≡a(modp)。

欧拉函数:欧拉函数φ(n)表示比n小且与n互素的正整数的个数。

欧拉函数具有如下性质:

1,当n是素数时,有φ(n)=n-1;因为素数与每一个小于他的数都是互素关系
2,当n=pq,且p和q是互异的素数时,则有φ(n)=φ(pq)=φ§×φ(q)=(p-1)×(q-1);

证明:φ(pq)=φ( p)×φ(q)

参考中国剩余定理:

设a与p互素,b与q互素,c与pq互素;则c与(a,b)一一对应关系;

又由于a的值有φ§种可能,b的值有φ(q)种可能,c的值有φ(pq)种可能,而(a,b)有φ( p)φ(q)种可能;所以φ(pq)=φ( p)×φ(q)。

3,φ(pk)=pk−pk−1=pk(1−1p)φ(p^{k})=p^{k}-p^{k-1}=p^{k}(1-\frac{1}{p})φ(pk)=pk−pk−1=pk(1−p1​),因为pkp^{k}pk个数减去所有p的倍数即为p的质数;

欧拉定理:

任意互素的两个整数a(a≠0)和n(n>1),且gcd(a, n)=1,则:

aφ(n)≡1(modn)a^{φ(n)}≡1 \pmod {n}aφ(n)≡1(modn)或aφ(n)+1≡a(modn)a^{{φ(n)+1}}≡a \pmod naφ(n)+1≡a(modn)

如果n为素数p,则φ(n)=φ§=p-1,即为费马定理ap−1≡1(modp)a^{p-1}≡1 \pmod pap−1≡1(modp)。

离散对数:

(一)密码学之数论基础相关推荐

  1. 浅谈密码学中数论基础

    1.模运算(mod) 模运算也可以称为取余运算,例如 23≡11(mod12),因此如果a=kn+b,也可以表示为a ≡ b(mod n),运算规则: (a+b) mod n = ((a mod n) ...

  2. 密码学数论基础部分总结之 有限域GF(p) Galois Fields

    今天花了一下午的时间学习密码学的数论部分,下面将学到的内容进行一下总结,也算是加深记忆.我本身对密码学这方面比较感兴趣,而且本节出现了许多数学公式,使用刚刚学习的LaTex公式来呈现出来,练习练习,何 ...

  3. 你也可以手绘二维码(二)纠错码字算法:数论基础及伽罗瓦域GF(2^8)

    摘要:本文讲解二维码纠错码字生成使用到的数学数论基础知识,伽罗瓦域(Galois Field)GF(2^8),这是手绘二维码填格子理论基础,不想深究可以直接跳过.同时数论基础也是 Hash 算法,RS ...

  4. RSA加密原理详解,以及RSA中的数论基础

    文章目录 1. RSA加密算法介绍 2. RSA密钥生成 3. RSA加密和解密 4. RSA的安全性 5.涉及到的数论基础 5.1. 模的逆元 5.1.1. 扩展欧几里得算法计算模逆元 5.1.2. ...

  5. 数论基础,从入门到入门

    数论基础,从入门到入门 文章目录 数论基础,从入门到入门 一.常用算法 1.素数筛法 2.线性筛 3.快速幂 4.矩阵快速幂 5.辗转相除法/欧几里得算法 6.扩展欧几里得 7.中国剩余定理/CRT ...

  6. 数论基础:模奇素数的二次剩余 (1)

    注意: 本文讨论的是模奇素数的二次剩余 目前不打算写二次互反律,不易写明白 什么是二次剩余 求解模小素数的二次同余方程 求解模小素数的二次方程,只需要遍历 Zp⋆\mathbb{Z}_p^{\star ...

  7. 密码学复习(密码学及其信息安全基础)(陈小松)

    密码学复习(密码学及其信息安全基础)(陈小松) 整除与同余 1 2 经典密码 概念 凯撒密码 仿射密码 维吉尼亚密码 费尔南密码 普莱费尔密码 希尔密码 现代密码 1 2 整除与同余 1 2 经典密码 ...

  8. 【考研—密码学数论基础】环、群、域、多项式运算

    注:下述笔记根据 学习通公开课程<数学的思维方式与创新>,部分内容并非严谨数学定义,个人理解居多. 注2:第一遍学的时候理解得太片面了,面试被问到了才意识到理解得有问题,特此重新更正 Pr ...

  9. 【数论】ACM数论基础知识总结

    文章目录 一.质数 1.定义 2.质数的判断 3.质数的筛选 4.质因子分解 5.互质 二.同余 1.模运算 2.同余 3.欧拉定理 4.同余方程 5.同余方程组 6.原根 7.高次同余方程 数论是数 ...

  10. 紫薯第10章数学 kaungbin专题14数论基础

    杂谈 kuangbin14数论Harmonic Number LightOJ - 1234 分段打表 + 欧拉爷爷o(1).(第一次触及了欧拉常熟) 10.1.1 && 10.1.2 ...

最新文章

  1. ios在textview禁用tab的代码
  2. mysql体系结构:
  3. python列表切片口诀-Python-100例(7-8) 复制列表 打印乘法口诀
  4. innodb_monitor
  5. view.performClick()触发点击事件
  6. mysql导入数据load data infile用法整理
  7. 点评老师freeeim
  8. linux同步数据库,Linux两台服务器mysql数据库同步
  9. 降低深度学习开发门槛,“动态图+高层API”能带来多大的便利?
  10. Javaweb网易云音乐
  11. IDEA 2018下载及破解
  12. 解决VS 2017/2019社区版无法登陆的方法
  13. win10隐藏网络计算机,连接隐藏网络,教你win10系统电脑连接隐藏网络的方法
  14. 语言的流变_拔剑-浆糊的传说_新浪博客
  15. Outlook-没有自动回复-使用规则创建外出邮件
  16. java后台报错cant found font [times New Roman] installed on the system
  17. 05.python学习系列——画图库turtle(啥是小猪佩奇)
  18. Excel中同一单元格设置不同颜色的字体
  19. 如何把一组计算机做成云,怎样才能把旧电脑变成云电脑呢?
  20. 算法基础:快速排序题

热门文章

  1. [Windows] 蜂巢收纳盒 V2.0.4---桌面分类整理
  2. java电信面试问题及答案_大唐电信java笔试题及答案
  3. .net Reactor 使用说明详解
  4. jquery表单美化组件实例
  5. python爬去学校_利用Python如何爬取自己学校的官网?用这招就行!
  6. 用HTML5编写日历,js编写当天简单日历效果【实现代码】_javascript技巧
  7. Java+MySQL 基于ssm的宠物商店领养管理系统#毕业设计
  8. 计算机快捷方式app卸载,一打开电脑就自动出现的快捷方式软件删不掉怎么办
  9. contos7 方舟私服搭建
  10. WinForm超市商品管理系统