• 离散对数


    写在前面:

      学习笔记,方便复习

      非原创标明出处

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

    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算法

     

  • 相关阅读:
    git 获取领先落后的命令
    django orm 时间字段讲解
    在SAE上同步djanogo的mysql数据库
    使用JS来实现验证码功能
    一个基于python的即时通信程序
    关于python多线程编程中join()和setDaemon()的一点儿探究
    Django1.6添加comments应用的简单过程
    使用saltstack批量部署服务器运行环境事例——批量部署nagios客户端
    Web服务器集群搭建关键步骤纪要
    关于rsync的密码问题
  • 原文地址:https://www.cnblogs.com/Antigonae/p/10262342.html
Copyright © 2020-2023  润新知