离散对数的量子计算与基于离散对数的密码学
离散对数问题(DLP)在经典计算机上是难以解决的,目前所有现有的DLP算法效率都不高。不过,这种难解性也被用于构建密码系统。本文将介绍几种计算离散对数的经典算法,以及基于离散对数的密码学方案。
经典离散对数算法
Silver–Pohlig–Hellman算法
1978年,Pohlig和Hellman提出了Silver–Pohlig–Hellman算法,用于计算GF(q)上的离散对数。该算法在q - 1的所有质因数都较小时非常高效。
算法步骤:
1.分解q - 1:将q - 1分解为质因数的乘积,即$q - 1 = \prod_{i = 1}^{k} p_{i}^{\alpha_{i}}$。
2.预计算表:对于给定的域,预计算表$r_{p_{i},j} = a^{j(q - 1)/p_{i}} \bmod q$,其中$0 \leq j < p_{i}$。
3.计算离散对数:
-计算$x \bmod p_{i}^{\alpha_{i}}$:使用类似于小步大步算法的思想,将$x \bmod p_{i}^{\alpha_{i}}$表示为$x \bmod p_{i}^{\alpha_{i}} = x_{0} + x_{1}p_{i} + \cdots + x_{\alpha_{i} - 1}p_{i}^{\alpha_{i} - 1}$,通过计算$b^{(q - 1)/p_{