第三章 一些数学问题
在上一章复习了计算机基础中的编码和进制问题后,我们开始讨论一下密码技术中的数学。数学博大精深,本文作者水平有限,没有什么循序渐进的知识逻辑可言,只是零散地介绍一些现代密码技术常用的数学概念,且都是点到即止,尽量能够让你阅读后“知其然而不知其所以然”,因人而异,可能有趣,也可能烧脑。
3.1 质数
又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。如:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71
3.2 最小公倍数和最大公约数
最小公倍数:指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数,其中除0以外最小的一个公倍数,叫做这几个数的最小公倍数。
最大公约数:也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。
3.3 互质
公约数只有1的两个整数,叫做互质整数。若N个整数的最大公因数是1,则称这N个整数互质。
例如:
8,10的最大公因数是2,不是1,因此不是整数互质。
7,11,13的最大公因数是1,因此这是整数互质。
5和5不互质,因为5和5的公因数有1、5。
1和任何数都成倍数关系,但和任何数都互质。
3.4 mod运算
mod运算,叫模运算,即求余运算,是在整数运算中求一个整数 x 除以另一个整数y的余数的运算。
例如:27除以12的余数等于3,我们可以写成 27 mod 12 = 3,可以说非常简单。
一些运算规则如下:
对于正整数p和整数a,b,定义如下运算:
(1)取模运算:a mod p 表示a除以p的余数。
(2)模p加法:(a + b) mod p ,其结果是a+b算术和除以p的余数。
(3)模p减法:(a-b) mod p ,其结果是a-b算术差除以p的余数。
(4)模p乘法:(a × b) mod p,其结果是 a × b算术乘法除以p的余数。
例如:7的4次方 mod 12 = 7×7×7×7 mod 12 = ((7×7 mod 12)×(7×7 mod 12)) mod 12 =((49 mod 12) ×(49 mod 12)) mod 12 =(1×1) mod 12 = 1 mod 12 =1
3.5 对数
我们都知道指数如:
这个叫做x的5次方。
我们将“10的5次方”记作:
它的值为
对数就是和乘方是互逆关系,下面两句话说的就是一件事:
“10的5次方为100000”等于“以10为底,100000的对数为5”
记作
3.6 欧拉函数
欧拉是科学史上最多产的一位杰出的数学家,烧脑的问题开始了。
3.7 离散对数
这个问题,我们一看都能够看出x=3
如果用数学运算推导,可以是下面的方式:
即使数字很大,求对数也并不是很难,但是加入mod运算,mod运算中的对数称为离散对数,例如:
这个时候x的值我们只能使用试错法,求出匹配的x,上式中x应该等于几呢?我们依次尝试一遍
我们尝试到x=11时,才求出了解。所以,
当数字很大时,求离散对数非常困难,也非常耗时,如mod 17 中的17换成是上百位的质数,使用超级快速的计算机,要遍历所有可能的情况也需要上百年上千年,当然还有很多数学方法可以减少遍历提高计算的成功率,但是能够快速求出离散对数的算法至今还没有被发现。
来源:CSDN
作者:蔡菜子
链接:https://blog.csdn.net/cd4836/article/details/103363429