数论知识

本文主要介绍整除、质数和合数、同余定理、模逆元素、欧几里得除法、欧拉函数、欧拉定理、费马小定理、中国剩余定理(孙子定理)。


文章目录

  • 数论知识
  • 简介
  • 一、整除
  • 二、质数和合数
  • 三、同余定理
    • 模逆元素
  • 四、Euclid(欧几里得)除法
    • 可以利用辗转相除法求最大公因子
  • 六、欧拉(Euler)函数
    • 欧拉定理
  • 七、费马小定理
  • 八、中国剩余定理CRT
  • 总结

简介

最近学习了公钥算法,涉及了一些数论中的知识。对一些数论的基础知识做一下总结。

  • gcd是最大公约数。
  • lcm是最小公倍数。

一、整除

a,b是任意的两个整数,b不为0,存在整数q,使得a=qb。记作:b|a

二、质数和合数

除了平凡约数±1和±n之外,n没有其他的因数。则n是质数(质数又称为素数),否则是合数。例如(3、7、11、13都是素数)

  • 1既不是素数也不是合数。
  • 两个数互质:没有除1以外的公因子。如果a与n的最大公因子为1,可写成gcd(a,n)=1。
  • 素数有无穷多个

素数在密码学中的地位还是非常高的。


三、同余定理

  • 给定一个正整数,a,b是两个整数,m|a-b,则a、b模m同余,记作a≡b(mod n)。

  • 定理:设m是一个正整数,a,b是两个正整数,则a≡b(modm)的充要条件是存在一个整数k,使得a=b+km。

  • 对于正整数n,整数a1 , a2, b1, b2,如果
    a1≡a2 (mod n). b1≡b2 (mod n)
    则我们可以得到如下性质:
    a1+b1= a2+ b2 (mod n)
    a1·b1= a2·b2 (mod n)

模逆元素

对整数 a 和正整数 n,a 对模数 n 的模逆元素是指满足以下条件的整数 b。
ab≡1(mod n)

a对模数 n 的模逆元素不一定存在,a 对 模数 n 的模逆元素存在的充分必要条件是 a 和 n 互质


四、Euclid(欧几里得)除法

a,b是两个整数,b>0。存在唯一的q、r使得:a=qb+r。可以用欧几里得算法(又称为辗转相除法)求两个数的最大公因子。

可以利用辗转相除法求最大公因子

gcd(a,b)=gcd(a−b,b)

eg:gcd(4864,3458)=38
4864 = 3458+1406
3458 = 21406+646
1406 = 2
646+114
646 = 5114+76
114 = 1
76+38
76 = 2*38

如果用绝对值最小余数代替最小非负余数。运算的次数可能会减少,从而可以减少计算的时间。

六、欧拉(Euler)函数

设n是一个正整数,则n个整数0,1,…,m-1中与m互素的整数的个数,记作Φ(n)
eg:Φ(2)=1;Φ(1)=1

  • 若p是素数则 Φ( p )=p-1
  • 若p和q是不同的素数,则Φ( p*q )=(p-1)(q-1)=Φ( p )Φ( q )

欧拉定理

对于每个互质的a与n,即gcd(a,n)=1,可以得到:a^Φ(n) ≡1(mod)n

七、费马小定理

如果p是一个质数,而整数a不是p的倍数(即gcd(a,p)=1),则有a^(p-1)≡1(mod p)或者a^ϕ(m)≡ 1 mod (m)。
费马小定理是欧拉定理的特殊情况

八、中国剩余定理CRT

最早见于《孙子算经》(中国南北朝数学著作,公元420-589年),叫物不知数问题,也叫韩信点兵问题。又称孙子定理。

今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?

其实是求解一个一次同余方程组

求解的过程可以参考以下链接: 中国剩余定理(CRT )
作者写的非常的简单通俗易懂。

总结

对于这部分的学习,作者也只是简单的入门,里面涉及到的知识点非常的基础。推荐一个好用的工具:sagemath。

参考文章: 密码学基础1:RSA算法原理全面解析
中国剩余定理(CRT )

密码学基础知识-数论(从入门到放弃)相关推荐

  1. 重力传感器 测重力代码_“重力瀑布”如何帮助您教授孩子的密码学基础知识...

    重力传感器 测重力代码 by Kamil Tustanowski 通过卡米尔·图斯坦诺夫斯基 "重力瀑布"如何帮助您教授孩子的密码学基础知识 (How "Gravity ...

  2. Oracle 12C 基础知识与使用入门(修订版)

    Oracle 12C 基础知识与使用入门 ORACLE数据库系统是美国ORACLE(甲骨文)公司提供的一款关系数据库管理系统,可在所有主流平台上运行.Oracle数据库12c 引入了一个新的多承租方架 ...

  3. [Python图像处理] 一.图像处理基础知识及OpenCV入门函数

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. Java基础题2从入门到放弃的第五天

    Java基础题2从入门到放弃的第5天 小博主也是初学者,肯定有地方可以用更简单的方法,希望可以指点出来.谢谢! 1分支语句 1. 让用户输入一个100以内的整数x,再输入一个100到200之间的整数y ...

  5. 密码学系列(三):区块链+密码学基础知识

    密码学系列(三):区块链+密码学基础知识 一.区块链的概念 区块链概述 区块链的特点 区块链变化 市场现状 二.区块链政策与标准 区块链的特点与发展 三.区块链的定义 区块链的价值 四.区块链开发语言 ...

  6. 音视频开发入门基础知识(视频入门篇)

    RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 一.前言 二.视频采集和显示 三.视频常见的格式 四.RGB转YUV和YUV转R ...

  7. 炒股入门基础知识之炒股入门?炒股入门股票基础知识该掌握哪些

    最近几年越来越多的朋友们开始进入股票市场,为了也是自己在业余的时间,可以有一个事情做,如果能够赚钱的话自然是更好的,但是如果赔钱自己也能够乐观的面对,毕竟投资是有风险的,我们为大家介绍一下<阿尔 ...

  8. 音视频开发入门基础知识(音频入门篇)

    RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 前言 音频的采集和播放 音频常见的格式 音频的编码 前言 在音视频开发入门基础知 ...

  9. Google SEO基础知识,新手入门教学。

    一.什么是搜索引擎优化? 搜索引擎优化 (SEO) 是一种从搜索引擎的自然排名中获取网站目标流量的做法.与 SEO 相关的常见任务包括创建高质量内容.围绕特定关键字优化内容以及构建反向链接. 换句话说 ...

最新文章

  1. 制作OpenStack上使用的CentOS系统镜像
  2. windows Tensorflow cpu版 指令集加速
  3. (总结)Nginx配置文件nginx.conf中文详解
  4. Excel酷炫技能,批量修改工作表名称,让你的工作事半功倍
  5. Mybatis resultMap空值映射问题解决
  6. 【转】Asp.NET大文件上传组件开发总结(二)---提取文件内容
  7. Python-sorted函数
  8. 第7章非线性系统的分析-7.1非线性系统的基本概念
  9. [解读] GuiltyGearXrd‘s Art Style : The X Factor Between 2D and 3D - GGX 3D 渲染 2D 风格
  10. 浅谈敏捷思想-05.精益画布电梯演讲
  11. 九州8508机顶盒安装软件教程记录
  12. 用计算机算出别人多少岁,年龄计算器 年龄计算器查询
  13. 01、u3d自学课程
  14. LeanCloud 一至二月变化
  15. 人工智能、机器学习、深度学习从入门到进阶学习资料整理
  16. 快速分割多段视频,并分离视频和音频
  17. python的内置函数功能[翻译]
  18. 数值计算之 最小二乘法(3)最小二乘的矩阵解法
  19. 信号调理方式(放大、滤波、隔离、调制解调等)
  20. 第77届奥斯卡金像奖完全获奖名单 [附完全提名名单]

热门文章

  1. 针对win10的WiFi网络显示“未连接,连接不可用”,系统诊断修复无效
  2. 搭建 bochs 运行环境
  3. web服务器未能创建类型,WEBSERVICE 分析器错误信息: 未能创建类型
  4. ABAP推送企业微信机器人1-文本类型<转载>
  5. 【观察】西部数据创新存储架构,释放开放计算新力量
  6. 知名猎头告诉你员工离职,企业招聘时的猎头费用,谁来买单?
  7. goahead 用action方式实现动态页面
  8. 区块链+人工智能,如何颠覆我们已知生活
  9. 基础设施主机监控指标
  10. Windows 7 蓝屏代码大全 蓝屏全攻略