实验二 编程实现离散对数求解 (Python实现)

本文介绍了使用Python编程解决模素数p的离散对数问题,采用中间相遇攻击策略,并对计算过程进行了优化。实验中,通过创建哈希表并检查(gB)x0是否存在来寻找解,同时讨论了如何通过变换公式减少计算时间,以提高效率。
摘要由CSDN通过智能技术生成

一.实验内容

本周的任务是写一个程序来计算模素数p的离散对数。
在这里插入图片描述

二.解题思路

根据实验文档中提供的思路,令 B = q = 2 20 B=\sqrt{q}=2^{20} B=q =220, x = x 0 B + x 1 x=x_0B+x_1 x=x0B+x1,其中 x 0 , x 1 ∈ [ 0 , B ) x_0,x_1\in[0,B) x0,x1[0,B)
经过变换有:
h = g x 0 B + x 1 = ( g B ) x 0 ⋅ g x 1 ( m o d p ) h=g^{x_0B+x_1}=(g^B)^{x_0}·g^{x_1}( mod p) h=gx0B+x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值