zoukankan      html  css  js  c++  java
  • 离散对数

    写在前面:

      学习笔记,方便复习

      非原创标明出处

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

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

     

  • 相关阅读:
    Django rest_framework实现增删改查接口
    文件的三种打开方式知识点回顾
    Django中基表的创建、外键字段属性简介、脏数据概念、子序列化
    drf序列化与反序列化作业1
    rest_framework序列化与反序列化1
    APIview的请求生命周期源码分析
    sql
    正则上面的一个坑
    多线程与多进程---方法对比与使用
    网络编程----踩坑篇
  • 原文地址:https://www.cnblogs.com/Antigonae/p/10262342.html
Copyright © 2011-2022 走看看