密码学基础知识-数论(从入门到放弃)
数论知识
本文主要介绍整除、质数和合数、同余定理、模逆元素、欧几里得除法、欧拉函数、欧拉定理、费马小定理、中国剩余定理(孙子定理)。
文章目录
- 数论知识
- 简介
- 一、整除
- 二、质数和合数
- 三、同余定理
- 模逆元素
- 四、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 = 2646+114
646 = 5114+76
114 = 176+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 )
密码学基础知识-数论(从入门到放弃)相关推荐
- 重力传感器 测重力代码_“重力瀑布”如何帮助您教授孩子的密码学基础知识...
重力传感器 测重力代码 by Kamil Tustanowski 通过卡米尔·图斯坦诺夫斯基 "重力瀑布"如何帮助您教授孩子的密码学基础知识 (How "Gravity ...
- Oracle 12C 基础知识与使用入门(修订版)
Oracle 12C 基础知识与使用入门 ORACLE数据库系统是美国ORACLE(甲骨文)公司提供的一款关系数据库管理系统,可在所有主流平台上运行.Oracle数据库12c 引入了一个新的多承租方架 ...
- [Python图像处理] 一.图像处理基础知识及OpenCV入门函数
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- Java基础题2从入门到放弃的第五天
Java基础题2从入门到放弃的第5天 小博主也是初学者,肯定有地方可以用更简单的方法,希望可以指点出来.谢谢! 1分支语句 1. 让用户输入一个100以内的整数x,再输入一个100到200之间的整数y ...
- 密码学系列(三):区块链+密码学基础知识
密码学系列(三):区块链+密码学基础知识 一.区块链的概念 区块链概述 区块链的特点 区块链变化 市场现状 二.区块链政策与标准 区块链的特点与发展 三.区块链的定义 区块链的价值 四.区块链开发语言 ...
- 音视频开发入门基础知识(视频入门篇)
RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 一.前言 二.视频采集和显示 三.视频常见的格式 四.RGB转YUV和YUV转R ...
- 炒股入门基础知识之炒股入门?炒股入门股票基础知识该掌握哪些
最近几年越来越多的朋友们开始进入股票市场,为了也是自己在业余的时间,可以有一个事情做,如果能够赚钱的话自然是更好的,但是如果赔钱自己也能够乐观的面对,毕竟投资是有风险的,我们为大家介绍一下<阿尔 ...
- 音视频开发入门基础知识(音频入门篇)
RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 前言 音频的采集和播放 音频常见的格式 音频的编码 前言 在音视频开发入门基础知 ...
- Google SEO基础知识,新手入门教学。
一.什么是搜索引擎优化? 搜索引擎优化 (SEO) 是一种从搜索引擎的自然排名中获取网站目标流量的做法.与 SEO 相关的常见任务包括创建高质量内容.围绕特定关键字优化内容以及构建反向链接. 换句话说 ...
最新文章
- 制作OpenStack上使用的CentOS系统镜像
- windows Tensorflow cpu版 指令集加速
- (总结)Nginx配置文件nginx.conf中文详解
- Excel酷炫技能,批量修改工作表名称,让你的工作事半功倍
- Mybatis resultMap空值映射问题解决
- 【转】Asp.NET大文件上传组件开发总结(二)---提取文件内容
- Python-sorted函数
- 第7章非线性系统的分析-7.1非线性系统的基本概念
- [解读] GuiltyGearXrd‘s Art Style : The X Factor Between 2D and 3D - GGX 3D 渲染 2D 风格
- 浅谈敏捷思想-05.精益画布电梯演讲
- 九州8508机顶盒安装软件教程记录
- 用计算机算出别人多少岁,年龄计算器 年龄计算器查询
- 01、u3d自学课程
- LeanCloud 一至二月变化
- 人工智能、机器学习、深度学习从入门到进阶学习资料整理
- 快速分割多段视频,并分离视频和音频
- python的内置函数功能[翻译]
- 数值计算之 最小二乘法(3)最小二乘的矩阵解法
- 信号调理方式(放大、滤波、隔离、调制解调等)
- 第77届奥斯卡金像奖完全获奖名单 [附完全提名名单]