数论概论读书笔记 29.原根与指标(指标也被称为离散对数(#^.^#))

原根与指标(指标也被称为离散对数(#^.^#))

原根我们清楚了。

啥是指标呢?

对于模13,2是它的原根,则 2x mod 13 2 x   m o d   13 会取遍 [1,12] [ 1 , 12 ] x[1,12] x ∈ [ 1 , 12 ]

比如 24=163 mod( 13) 2 4 = 16 ≡ 3   m o d (   13 )

I(3)=4 I ( 3 ) = 4

这就是指标函数 I I

显然,指标函数是双射函数

指标法则 指标满足下述法则:

  • I(ab)I(a)+I(b) (mod p1) 乘积法则

    • I(ak)kI(a) (mod p1) I ( a k ) ≡ k I ( a )   ( m o d   p − 1 ) 幂法则
    • 证明: gI(ab)abgI(a)gI(b)gI(a)+I(b)(mod p) g I ( a b ) ≡ a b ≡ g I ( a ) g I ( b ) ≡ g I ( a ) + I ( b ) ( m o d   p )

      这意味着 gI(ab)I(a)I(b)1 (mod p) g I ( a b ) − I ( a ) − I ( b ) ≡ 1   ( m o d   p )

      g g 是原根,则I(ab)I(a)I(b) p1 p − 1 的倍数

      所以乘积法则得证。

      幂法则同理。

      如果我们现在已经有了指标表( p1 p − 1 对映射),则可以通过指标法则求模和简化解同余式

      比如求 2914 mod37 29 14   m o d 37 ,你可以使用快速幂

      也可以用指标法则。 I(2914)14I(29)14216 mod 36 I ( 29 14 ) ≡ 14 ∗ I ( 29 ) ≡ 14 ∗ 21 ≡ 6   m o d   36

      I(27)=6 I ( 27 ) = 6 ,所以 291427 (mod 37) 29 14 ≡ 27   ( m o d   37 )

      指标法则也可以用来求同余式

      考虑同余式 19x23(mod37) 19 x ≡ 23 ( m o d 37 )

      I(19)+I(x)I(23) (mod 36) I ( 19 ) + I ( x ) ≡ I ( 23 )   ( m o d   36 )

      35+I(x)15 (mod 36) 35 + I ( x ) ≡ 15   ( m o d   36 )

      I(x)16 (mod 36) I ( x ) ≡ 16   ( m o d   36 )

      x9 (mod 37) x ≡ 9   ( m o d   37 )

      不过还是用欧几里得算法方便,因为使用指标你需要知道指标表

      再来看一个式子

      求同余式 3x304 (mod 37) 3 x 30 ≡ 4   ( m o d   37 )

      使用乘积法则与幂法则:

      img

      对于最后一个式子,是一个同余方程,由于 gcd(30,36)=6|12 g c d ( 30 , 36 ) = 6 | 12 ,则其有解,且有6个解

      我们求得

      I(x)4,10,16,22,28,34(mod 36) I ( x ) ≡ 4 , 10 , 16 , 22 , 28 , 34 ( m o d   36 )

      再由表得到对应的值,有6个解16,25,9,21,12,28

      可以看到指标法的优点在于将幂运算转为乘法,将乘法转为加法。

      这一点和对数函数很像:

      log(ab)=log(a)+log(b)log(ak)=klog(a) l o g ( a b ) = l o g ( a ) + l o g ( b ) l o g ( a k ) = k l o g ( a )

      因此,指标也被称为 离散对数

      离散对数在现代密码学中扮演着重要的角色。假设给一个大素数 p p ,以及模p的两个数 a a g

      离散对数问题 (DLP) ( D L P ) ,是指求指数 k k 使得

      gka(mod p)

      这个值在 p p 很大时很难求解。

      因此可用这种方法构造公钥密码体制,它类似于前面所提到的RSA密码体制。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值