数论与离散数学基础入门
1. 离散对数
对数是指某个底数需要提升的次数以得到另一个数。离散对数则是在有限群的背景下提出相同的问题。正式来说,离散对数是一个整数 $k$,它能解决方程 $x^k = y$,其中 $x$ 和 $y$ 都是有限群的元素。计算离散对数是一个非常困难的问题,这也是离散对数成为一些现代加密算法基础的原因。
2. 模运算
模运算在密码学中,特别是在RSA算法里非常重要。使用模运算符时,只需将 $A$ 除以 $N$ 并返回余数。例如:
- $5 \bmod 2 = 1$
- $12 \bmod 5 = 2$
可以把模运算想象成在进行普通整数运算时,将答案限制在某个数以内。时钟就是一个经典的例子,时钟上的数字范围是1到12,任何算术运算的结果都必须是12或更小。如果现在是4点,10小时后见面,简单计算是14点,但时钟的范围是12,所以用14对12取模,$14 \bmod 12 = 2$,实际上是2点见面。这里的12就是模数,实际上可以使用任何整数作为模数进行模运算。
模运算的基本概念可以追溯到欧几里得,而现代的模运算方法是由卡尔·高斯在1801年提出的。
3. 同余
在模运算中,同余是一个非常重要的话题,在现代加密算法中经常会用到。如果两个数 $a$ 和 $b$ 满足 $a \bmod n = b \bmod n$,则称 $a$ 和 $b$ “模 $n$ 同余”,用符号 $\equiv$ 表示同余。在很多编程语言中,用 $\%$ 符号进行模运算。
如果两个数模 $n$ 同余,那么它们的差是 $n$ 的倍数。例如,14和2模12同余,因为 $
超级会员免费看
订阅专栏 解锁全文
1011

被折叠的 条评论
为什么被折叠?



