证明与计算(2): 离散对数问题(Discrete logarithm Problem, DLP)

离散对数问题,英文是Discrete logarithm Problem,有时候简写为Discrete log,该问题是十几个开放数学问题(Open Problems in Mathematics, [0.a], [0.b])中的一个。为什么要从离散对数问题说起?因为后面的内容中会反复使用到,因此我们希望用独立的一节分析来消除理解上的不确定性。

0x01 背景

对数\(\log_{b}(a)\)是由John Napier发明(1614)的符号([1],[2.a],[2.b]),选择不同的基底,就有不同的对数,例如:

  • 以10为底数的对数是\(\log_{10}(x)\),也叫做常用对数(Common logarithm [5]),常用对数是由Henry Briggs([3])在Napier之后提出的,因此也叫Briggs对数。
  • 以自然对数(Natural logarithm [6])e为底数的对数是\(\log_{e}(x)\),也记做\(\ln(x)\)
  • 以2为底数的二进制对数(Binary logarithm [7])是\(\log_{2}(x)\),也记做\(lb(x)\)

对数\(x=\log_{b}(a)\)等价于\(b^x=a\),给定一个已知的实数x,计算\(b^x\)是容易的,但是反之给定a和b,计算对数\(x=\log_{b}(a)\)则比较麻烦。William Oughtred([4.a])在Napier之后发明了滑尺(Slide rule,[4.b])计算常用对数的方法。在电子计算机出现之前,计算对数依赖于Briggs首先计算的常用对数表(1616)。在电子计算机出现之前,数学上的很多计算都依赖于某种数学表,例如把计算乘法转换成计算加减以及查表([8])。显然查表求值也只是一种限定精度的近似值,计算自然对数和二进制对数,可以通过自然对数和二进制对数与常用对数之间的转换公式来进行:
\[ \log_{10} = \frac{\ln(x)}{\ln(10)}, \log_{10} = \frac{lb(x)}{lb(10)} \]

如果给定整数k,b,则计算\(b^k=a\)是容易的。但是,反过来知道整数a,要精确计算出整数\(k=log_{b}(a)\)则比较麻烦,只有少数一些特殊的情况下有办法精确计算(例如,计算\(9=\log_{3}3^9\)是容易的),没有有效的通用的算法做此类计算(Baby-step giant-step, [18])。

如果整数k,a,b使得\(b^k=a\)。则此时\(k=log_{b}(a)\)称为离散对数(Discrete logarithm, [9])。离散对数问题是定义在一个群上的,对于不同的群,难度不同。

两个相对容易计算的例子是:

  • \(R^*\)\(C^*\)上关于乘法操作构成的群。
  • \(Z/nZ\)关于加法操作构成的群,也就是在这个群里\(b^k\)里的\(b^k\)实际上是k个b相加,此时问题变成 \(kb\equiv a(mod\ n)\)

下面的情况则是难的离散对数问题(也就是经典的离散对数问题):

  • 取素数p,则\(Z/pZ\)关于乘法操作构成的群。

0x02 经典离散对数问题的定义

我们直接给出下面一组预备知识:

  • 欧拉函数\(\varphi(n)\)表示1到n之间和n互素的整数的个数([15.d]),特别是对于素数p来说,\(\varphi(p)=p-1\)
  • 小于n且与n互素的集合是G={1,....,\(P_{\varphi(n)}\)},例如当n=7,G={1,2,3,4,5,6}。
  • 集合{… , a − 2n, a − n, a, a + n, a + 2n, …}构成了a对n的同余类(Congruence class, [15.c])
  • G的元素对n的同余类全体构成了一个新的集合M,把M记做:\(Z/nZ\)
  • \(Z/nZ\)是一个阿贝尓群,直接从阿贝尓群的四个性质入手证明。
  • \(Z/nZ\)是一个循环群,当且仅当n=1,2,4,\(p^k\)或者\(2p^k\)(k>0)

例如,对于n=7,

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值