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

博客介绍了原根与指标(离散对数)的概念,指标函数是双射函数,还阐述了指标满足的乘积法则和幂法则,并给出证明。说明了可通过指标法则求模、简化解同余式,其优点是将幂运算转为乘法、乘法转为加法,离散对数在现代密码学中很重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

原根我们清楚了。

啥是指标呢?

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

比如24=163 mod( 13)24=16≡3 mod( 13)

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

这就是指标函数II

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

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

  • I(ab)I(a)+I(b) (mod p1) 乘积法则
    • I(ak)kI(a) (mod p1)I(ak)≡kI(a) (mod p−1) 幂法则

    证明: gI(ab)abgI(a)gI(b)gI(a)+I(b)(mod p)gI(ab)≡ab≡gI(a)gI(b)≡gI(a)+I(b)(mod p)

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

    gg是原根,则I(ab)I(a)I(b)p1p−1的倍数

    所以乘积法则得证。

    幂法则同理。

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

    比如求2914 mod372914 mod37 ,你可以使用快速幂

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

    I(27)=6I(27)=6,所以291427 (mod 37)2914≡27 (mod 37)

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

    考虑同余式19x23(mod37)19x≡23(mod37)

    I(19)+I(x)I(23) (mod 36)I(19)+I(x)≡I(23) (mod 36)

    35+I(x)15 (mod 36)35+I(x)≡15 (mod 36)

    I(x)16 (mod 36)I(x)≡16 (mod 36)

    x9 (mod 37)x≡9 (mod 37)

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

    再来看一个式子

    求同余式3x304 (mod 37)3x30≡4 (mod 37)

    使用乘积法则与幂法则:

    img

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

    我们求得

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

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

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

    这一点和对数函数很像:

    log(ab)=log(a)+log(b)log(ak)=klog(a)log(ab)=log(a)+log(b)log(ak)=klog(a)

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

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

    离散对数问题(DLP)(DLP),是指求指数kk使得

    gka(mod p)

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值