【密码学】大整数分解问题和离散对数问题

2024-07-11 1640阅读

        公钥密码体制的主要思想是通过一种非对称性,即正向计算简单,逆向计算复杂的加密算法设计,来解决安全通信。本文介绍两种在密码学领域内最为人所熟知、应用最为广泛的数学难题——大整数分解问题与离散对数问题

一、大整数分解问题

(1)问题的定义

        假设 𝑁 是一个合数,且 𝑁=𝑝×𝑞,其中 𝑝 和 𝑞 都是大于1的大质数(又叫素数)。大整数分解问题的目标是,仅给定 𝑁,找到 𝑝 和 𝑞。更一般地,问题是找到所有质数因子,而不仅仅局限于两个因子的情况。

【注】质数(Prime Number)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。换句话说,质数只能被1和它自身整除。例如,2、3、5、7、11、13等都是质数。

(2)非对称性的体现

  • 正向计算容易:找到两个大素数并计算它们的乘积是非常简单的。现代计算机可以迅速地找到这样的素数并对它们执行乘法操作。
  • 逆向计算困难:然而,给定𝑛来找出它的两个素数因子𝑝和𝑞是非常困难的。随着𝑛的位数增加,分解𝑛所需的计算资源呈指数级增长。当前的算法,在分解大整数时需要耗费大量的时间和计算能力,这使得在合理的时间内分解大整数变得不切实际。

    (3)密钥生成与加解密简述

    ① 密钥生成算法

            随机选择两个大素数p和q;计算【密码学】大整数分解问题和离散对数问题;计算欧拉函数【密码学】大整数分解问题和离散对数问题;选择一个整数e,使得1

    • 公钥是(N, e),其中N是模数,e是加密指数;
    • 私钥是(d, N),其中d是解密指数,N同样是模数。

      ② 加密算法

      发送方使用接收方的公钥【密码学】大整数分解问题和离散对数问题对明文【密码学】大整数分解问题和离散对数问题进行加密,生成密文【密码学】大整数分解问题和离散对数问题

      加密过程通常表示为 【密码学】大整数分解问题和离散对数问题

      ③ 解密算法

      接收方使用自己的私钥【密码学】大整数分解问题和离散对数问题对密文【密码学】大整数分解问题和离散对数问题进行解密,恢复出明文【密码学】大整数分解问题和离散对数问题

      解密过程表示为 【密码学】大整数分解问题和离散对数问题

      【密码学】大整数分解问题和离散对数问题 以RSA为例

      二、离散对数问题

      (1)问题的定义

              给定一个有限域 G,以及该域中的一个生成元(或称为基)【密码学】大整数分解问题和离散对数问题一个元素 【密码学】大整数分解问题和离散对数问题,离散对数问题可以这样表述:

              对于任意给定的G中的非零元素,找到一个整数【密码学】大整数分解问题和离散对数问题,使得【密码学】大整数分解问题和离散对数问题【密码学】大整数分解问题和离散对数问题次方模上【密码学】大整数分解问题和离散对数问题 等于【密码学】大整数分解问题和离散对数问题,即 【密码学】大整数分解问题和离散对数问题

              如果这样的 【密码学】大整数分解问题和离散对数问题 存在,则称 【密码学】大整数分解问题和离散对数问题 为 【密码学】大整数分解问题和离散对数问题 相对于基 【密码学】大整数分解问题和离散对数问题 的离散对数。这里的“离散”一词,是因为群G通常是一个离散集合,而不是连续的。

      【注】G称为模 𝑝 的有限域,其中 𝑝 必须是一个素数。这样所有加法、减法、乘法和除法运算的结果都会被取模 𝑝 来确保结果仍然在这个有限域内。

      有关离散对数更直观的介绍可以去看可汗学院的视频:The discrete logarithm problem

      也有国内搬运的版本:什么是离散的对数问题? 

      (2)非对称性的体现

      • 正向计算容易:计算【密码学】大整数分解问题和离散对数问题是非常直接且快速的,可以通过快速幂算法在多项式时间内完成。
      • 逆向计算困难:然而,给定𝑔和𝑦,找到𝑥是非常困难的,特别是在𝑝非常大的情况下。目前没有已知的多项式时间算法能够解决这个问题,尽管存在一些算法可以优化搜索过程,但当𝑝足够大时,这些算法仍然需要指数级的时间。

        (3)密钥生成与加解密简述

        ① 密钥生成算法

        以ElGamal加密算法为例。

        1. 选择一个大素数 p 、一个原根 g 和模 p。原根意味着 g 的所有幂次模 p 将遍历所有非零的模 p 的剩余类。

        2. 选择私钥 【密码学】大整数分解问题和离散对数问题,这是一个小于 【密码学】大整数分解问题和离散对数问题 的随机整数。

        3. 计算公钥 【密码学】大整数分解问题和离散对数问题,其中 【密码学】大整数分解问题和离散对数问题

        公钥是【密码学】大整数分解问题和离散对数问题,而私钥是 【密码学】大整数分解问题和离散对数问题

        ② 加密算法

        假设 Alice 想要向 Bob 发送一条消息 【密码学】大整数分解问题和离散对数问题,并且 Bob 的公钥是【密码学】大整数分解问题和离散对数问题

        1. 选择一个随机数 𝑘,其中 1

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]