由区块链引发的密码技术讨论(三)一些数学问题

老子叫甜甜 提交于 2019-12-11 07:44:00

第三章 一些数学问题

在上一章复习了计算机基础中的编码和进制问题后,我们开始讨论一下密码技术中的数学。数学博大精深,本文作者水平有限,没有什么循序渐进的知识逻辑可言,只是零散地介绍一些现代密码技术常用的数学概念,且都是点到即止,尽量能够让你阅读后“知其然而不知其所以然”,因人而异,可能有趣,也可能烧脑。

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换成是上百位的质数,使用超级快速的计算机,要遍历所有可能的情况也需要上百年上千年,当然还有很多数学方法可以减少遍历提高计算的成功率,但是能够快速求出离散对数的算法至今还没有被发现。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!