密码学关键概念与算法解析
1. 雅可比符号
雅可比符号将勒让德符号推广到所有奇数。设 (n) 为一个正奇数,其素因数分解为 (n = p_1^{a_1}p_2^{a_2}\cdots p_k^{a_k}),其中 (p_1, \cdots, p_k) 是不同的素数,(x) 为整数。(x) 模 (n) 的雅可比符号等于 (x) 关于每个素数的勒让德符号的乘积:
(\left(\frac{x}{n}\right) = \left(\frac{x}{p_1}\right)^{a_1}\left(\frac{x}{p_2}\right)^{a_2}\cdots\left(\frac{x}{p_k}\right)^{a_k})
若 (n) 为素数,则雅可比符号与勒让德符号相同。通过二次互反律(由高斯证明),即使不知道 (n) 的素因数分解,也能高效计算雅可比符号。
2. 卡拉楚巴算法
- 基本算法 :1962 年提出的卡拉楚巴算法(KA)用于多项式乘法。对于两个一次多项式 (A(x) = a_1x + a_0) 和 (B(x) = b_1x + b_0),引入辅助变量 (D_0 = a_0b_0),(D_1 = a_1b_1),(D_{0,1} = (a_0 + a_1)(b_0 + b_1)),则 (C(x) = A(x)B(x) = D_1x^2 + (D_{0,1} - D_0 - D_1)x + D_0)。该方法需三次乘法和四次加法,而传统方法需 (n^2) 次乘法和 ((n - 1)^2) 次加法((n = 2) 时为四次乘法和一次加法)。此算法也可用于整数乘法。
- 推广