大步小步算法

✍ dations ◷ 2025-12-05 00:09:35 #自2020年4月需要从俄语维基百科翻译的条目,算法,群论

在群论中,大步小步算法(英语:baby-step giant-step)是丹尼尔·尚克斯(英语:Daniel Shanks)发明的一种中途相遇算法,用于计算离散对数或者有限阿贝尔群的阶。其中离散对数问题在公钥加密领域有着非常重要的地位。

许多常用的加密系统都基于离散对数极难计算这一假设——计算越困难,这些系统提供的数据传输就越安全。增加离散对数计算难度的一种方法,是把密码系统建立在更大的群上。

这是一种空间换时间(英语:space–time tradeoff)的算法,实质上是求解离散对数的朴素算法(枚举并试乘)的一个相当简单的改进。

给出一个 n {\displaystyle n} 阶循环群 G {\displaystyle G} 、该群的一个生成元 α {\displaystyle \alpha } 和一个元素 β {\displaystyle \beta } 。试找到一个整数 x {\displaystyle x} 满足

大步小步算法把 x {\displaystyle x} 代换成:

于是,我们有:

该算法先对 j {\displaystyle j} 的不同取值计算出 α j {\displaystyle \alpha ^{j}} 的值,然后固定一个 m {\displaystyle m} ,并对 i {\displaystyle i} 尝试不同的取值,带入上面同余式的右边,看是否与某个(已经预先算出的)同余式左边的值相匹配。

给出C++17版本的代码:

相关

  • 陆间海陆间海(英语:mediterranean sea)也称地中海或自然内海,在海洋学上是指被陆地环绕,形成一个形似湖泊但具有海洋特质的海洋,一般与大洋之间仅以较窄的海峡相连。由于难以与大洋底层
  • 西弗兰克西法兰克王国(法语:Francie occidentale)为西欧的一个君主制国家,存在时间为843年至987年。843年,法兰克国王虔诚者路易的三个儿子,洛泰尔、日耳曼人路易及秃头查理签署《凡尔登条
  • 滨野弥四郎滨野弥四郎(1869年9月9日-1932年12月30日),日本千叶县人,曾任台湾总督府土木部技师,誉为“台湾水道之父”。毕业于旧制第一高等学校(今东京大学)和东京帝国大学工学部土木学科(今东京
  • 刘安道家系列条目刘安(前179年-前122年),西汉沛郡丰(今江苏省徐州市丰县)人,刘邦之孙,刘长之子,淮南王,都寿春,现留名著《淮南子》,是古代科学思想的总合代表著作。刘安在中国文学史上有重要
  • 大兜虫属大兜虫属()是金龟科兜虫亚科的一属。根据2018年黄仁磐博士的论文,本属可分为2亚属:
  • 田际云田际云(1864年-1925年),原名麟瑞,后改名瑞麟,乳名虎儿,艺名响九霄(原为想九宵,又作想九霄、响九箫),原籍河北高阳县,出生于河北省定兴县。河北梆子演员、戏剧活动家。田际云幼时就渎于村
  • 谭莉·欧布莱特谭莉·艾玛·欧布莱特(Tenley Emma Albright,1935年7月18日-)美国花样滑冰运动员,退役后成为外科医生。生于马萨诸塞州纽顿,曾获1956年冬季奥运会(英语:Figure skating at the 1956
  • 查尔斯·兰姆查尔斯·兰姆是英国作家。其父是律师的书记员。在校时成绩优良,本来打算进入剑桥大学深造,因口吃未能通过大学先修班之考试,15岁即缀学工作。初入南海公司(South Sea House),17岁
  • H square2或H-square是数学及控制理论的用语,是指有平方范数的哈代空间,是2空间的子集合,因此也是希尔伯特空间。特别的是,2空间也是再生核希尔伯特空间(英语:Reproducing kernel Hilbert
  • SPOT卫星SPOT卫星(法语:Satellite pour l’observation de la Terre)是法国发射的一种地球观测卫星。卫星由Spot Image公司负责运营。从1986年起一共发射了6颗SPOT卫星。卫星在太阳同步