密码学硬核笔记——特殊离散对数问题

本文深入探讨Pohlig-Hellman算法在解决离散对数问题上的应用,特别是在阶为光滑数的有限阿贝尔群中。通过实例演示算法步骤,并分析其理论依据。

最喜欢的lora

前言

前几天参加了网鼎杯的比赛,第一道题就是简单粗暴的离散对数问题(DLP)。当时自己是用sagemath的discrete_log()函数的直接秒解的(另外第三题必须要用cmd打开flag才出来就很坑)。赛后发现这道离散对数题应该是用Pohlig–Hellman algorithm 做的,所以针对这次的题目学习了一遍该算法。


  • 定义6.7:设 H H H是群 G G G的一个子集合,如果对于群 G G G的二元运算, H H H也构成一个群,就称 H H H为群 G G G子群,记作 H ≤ G H ≤ G HG
  • 定义6.8: 若群 G G G包含的元素个数有限,则称 G G G有限群,否则称为无限群。有限群 G G G所包含的元素个数称为 G G G,记为 ∣ G ∣ | G | G
  • 定义6.9 :设 a a a是群 G G G中的一个元素,若存在正整数 n n n使得 a n = e a^n = e an=e,则称 a a a为有限阶元素,满足 a n = e a^n = e an=e的最小正整数 n n n叫做 a a a,记为 ∣ a ∣ | a | a。若不存在正整数 n n n使得 a n = e a^n = e an=e,则称 a a a为无限阶元素。
  • 定义6.10 设 G G G为群,若存在 G G G的一个元素 a a a,使得 G G G中的任意元素均由 a a a的幂组成,即
    G = { a n ∣ n ∈ Z } G = \{ a^n | n ∈ Z\} G={ annZ}
    则称群 G G G循环群,元素 a a a为循环群 G G G的生成元,记为 G = < a > G = < a > G=<a>

后面的内容都是围绕循环群的子群以及群和元素的阶展开的。


Pohlig–Hellman algorithm

维基百科解释如下:is a special-purpose algorithm for computing discrete logarithms in a finite abelian group whose order is a smooth integer.
是一种特殊算法,在阶为光滑数的有限阿贝尔群上解决离散对数问题。

同时

先看普遍情况下的算法:
在这里插入图片描述

大致流程如下:
(假设阶为 ϕ ( m ) \phi(m) ϕ(m))

首先,要解决的问题是
g x ≡ h   m o d   m   a n d   n = ϕ ( m ) = ∏ i = 1 r p i e i g^x\equiv h \ mod\ m\ and\ n=\phi(m)=\prod_{i=1}^r p_i ^ {e_i} gxh mod m and n=ϕ(m)=i=1rpiei

等式两边同乘上一个指数 n p i e i \frac{n}{p_i ^ {e_i}} piein,可以得到:
{ ( g x 1 ) n p 1 e 1 ≡ h n p 1 e 1   m o d   m ( g x 2 ) n p 2 e 2 ≡ h n p 2 e 2   m o d   m ( g x 3 ) n p 3 e 3 ≡ h n p 3 e 3   m o d   m . . . ( g x r ) n p r e r ≡ h n p r e r   m o d   m \begin{cases} (g^{x_1})^\frac{n}{p_1 ^ {e_1}}\equiv h^\frac{n}{p_1 ^ {e_1}} \ mod\ m\\ (g^{x_2})^\frac{n}{p_2 ^ {e_2}}\equiv h^\frac{n}{p_2 ^ {e_2}} \ mod\ m\\ (g^{x_3})^\frac{n}{p_3 ^ {e_3}}\equiv h^\frac{n}{p_3 ^ {e_3}} \ mod\ m\\ ...\\ (g^{x_r})^\frac{n}{p_r ^ {e_r}}\equiv h^\frac{n}{p_r ^ {e_r}} \ mod\ m\\ \end{cases} gx1)p1e1nhp1e1

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值