大步小步算法

✍ dations ◷ 2025-12-10 22:47:14 #自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版本的代码:

相关

  • 潮汐发电站潮汐发电是种水力发电的形式,利用潮汐水流的移动,或是潮汐海面的升降,自其中取得能量。虽然尚未被广泛使用,潮汐发电对于未来的电力供应有很好的潜力。此外它比风能、太阳能都更
  • 肠道病毒EV71型EV71是肠病毒的一种,多见于东南亚地区的夏季期间,主要病征是手足口病的一系列症状,包括发烧、食欲不振、喉咙痛及口腔溃疡等。也可能导致神经感染。EV71肠病毒于1969年在美国加
  • 1804年1804年逝世人物列表:1月 - 2月 - 3月 - 4月 - 5月 - 6月 - 7月 - 8月 - 9月 - 10月 - 11月 - 12月
  • 国立北平大学国立北平大学,是民国时期将数所北平(今北京市)附近的高等学校合并而成的大学,并非北京大学。1927年,北洋政府因为连年军阀混战,国库空虚,且因为各大学科系重复设置,资源重复浪费,下令
  • 弹射椅弹射椅(Ejection seat),或称弹射座椅,是军用飞机及载人太空船飞行员用的座椅,可在紧急情况下将飞行员弹离飞行器并使其安全着陆的航空救生设备,太空船通常是配备逃逸塔,直接将乘员
  • 酮戊二酸脱氢酶复合体酮戊二酸脱氢酶复合体(英语:oxoglutarate dehydrogenase complex,缩写OGDC;或称英语:α-ketoglutarate dehydrogenase complex)是一个复合酶,因其在三羧酸循环中的作用而众所周知。
  • 水车水车,是利用水流产生机械能(位能与动能)的一种原动机。在蒸汽机、电动机发明以前,人类常用它来取水、脱谷、制粉、纺织。水车轮一般以木材制成,也可用金属成型。一个用于发电的水
  • 瓦西里·弗拉基米洛维奇·巴托尔德瓦西里·弗拉基米洛维奇·巴托尔德(俄语:Василий Владимирович Бартольд)俄罗斯东方学学者,在突厥语民族以及中古伊斯兰史等领域研究卓著,一生撰写了
  • 狂蟒之灾2《狂蟒之灾2》(英语:)2004年上映于美国的恐怖片和惊悚片。一群科学家打着寻找神秘植物“血兰”的名号进入尚未开发的婆罗洲地区,科学家相信血兰具有一种神奇的功效,可以使人永保
  • 威廉·格奥尔基耶维奇·柯诺宁威廉·格奥尔基耶维奇·柯诺宁(俄语:Вильгельм Георгиевич Кно́рин;拉脱维亚语:Vilhelms Vilis Knoriņš;1890年8月29日(17日)-1938年7月29日),曾任白俄罗