离散对数

写在前面:

  学习笔记,方便复习

  非原创标明出处

我们都在努力奔跑,我们都是追梦人

离散对数

by skecchiart

概念

对数

  在数学中,对数是对求幂的逆运算,正如除法是乘法的倒数,反之亦然。 这意味着一个数字的对数是必须产生另一个固定数字(基数)的指数

  如果ax次方等于N(a>0,且a不等于1),那么数x叫做以a为底N的对数,记作x==logaN

  其中,a叫做对数的底数,N叫做真数

——bia度百科

  设ap是整数,ap互素,那么:使an ≡ 1 (mod p)成立的最小正整数n叫做ap的阶

——bia度百科

原根

  设m是正整数,a是整数,若am的阶等于φ(m),则称a为模m的一个原根

——bia度百科

  即:aφ(m) ≡ 1 (mod m)

  此处am的阶为φ(m)

 

  循环节见:

  [◹]同余定理

  [◹]费马-欧拉定理

离散对数

  在整数中,离散对数是一种基于同余运算和原根的一种对数运算

  任何群G([◹]初等群论)中可为所有整数k定义一个幂数为bx,而离散对数logba是指使得bx a的整数k

  离散对数在一些特殊情况下可以快速计算,然而,通常没有具非常效率的方法来计算它们

  公钥密码学中几个重要算法的基础,是假设寻找离散对数的问题解,在仔细选择过的群中,并不存在有效率的求解算法

——bia度百科

  The discrete log problem is of fundamental importance to the area of public key cryptography. Many of the most commonly used cryptography systems are based on the assumption that the discrete log is extremely difficult to compute; the more difficult it is, the more security it provides a data transfer

  One way to increase the difficulty of the discrete log problem is to base the cryptosystem on a larger group

——Wikipedia

译:

  离散对数问题在公钥密码领域具有重要意义,许多最常用的密码系统都是基于这样一个现象:离散对数极难计算,而它越困难,提供数据传输的安全性就越高

  提高离散对数问题难度的一种方法是将密码建立在一个较大的群上

举个例子:

对数

8==23

log28==3

离散对数

8+n*k ≡ 23 (mod k)

log2(8+n*k) ≡ 3 (mod φ(k))

  指数循环节见[◹]同余定理

 

实现

  • [◹]Baby-step giant-step算法

  • [◹]拓展Baby-step giant-step算法