大步小步算法

✍ dations ◷ 2025-07-31 07:07:59 #自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版本的代码:

相关

  • 行书行书,分为行楷及行草,是汉字书法中的一种手写字体风格,相传是在东汉年间刘德升所创。唐朝张怀瓘《书断》对行书的来源有如此看法:“行书即正书(楷书)小伪,务从简易,相间流行,故谓之行
  • 伊勒-维莱讷省伊勒-维莱讷省(法语:Ille-et-Vilaine)是法国布列塔尼的一个省。这个省和莫尔比昂省、阿摩尔滨海省、大西洋卢瓦尔省、曼恩-卢瓦尔省、马耶纳省、芒什省六个省接壤。气象观测站:
  • 阿兹特克阿兹特克,又译阿兹台克、阿兹提克,是存在于14世纪至16世纪的墨西哥古文明,主要分布在墨西哥中部和南部,因阿兹特克人而得名。阿兹特克人包括墨西哥谷地的多个民族,以操纳瓦特尔语
  • 有翅亚纲见内文有翅亚纲(学名:Pterygota)为昆虫纲下的一个亚纲阶层。此类的昆虫拥有翅膀,也包含在演化过程中失去了飞行能力和翅膀的物种。这个亚纲包括昆虫中的大多数物种,至今尚存的仅
  • 胎龄胎龄可以指:
  • 道真仡佬族苗族自治县道真仡佬族苗族自治县是中华人民共和国贵州省遵义市下属的一个自治县,位于遵义市东北部,地处黔北通往成渝的交通要道,是中国仅有的3个仡佬族自治县之一。相传汉儒尹珍(字道真)先
  • 欧洲民主党欧洲民主党(英语:European Democratic Party,缩写为EDP)是一个支持欧洲整合的中间派欧洲政党。欧洲民主党在2004年4月16日开始运作,12月9日在布鲁塞尔正式成立。法国民主联盟的弗
  • 谢纶辉谢纶辉,字楞徽,清朝末年民国时期金融家、银行家。中国通商银行的第二任中方总经理。子谢光甫,民国大藏书家。生于浙江省余姚县(今宁波余姚市)泗门镇。光绪初年,谢纶辉到上海谋生,在
  • 伊朗阿拉伯裔伊朗阿拉伯裔指在伊朗定居的阿拉伯社区,而他们大多数居住于伊朗西南部比邻伊拉克的胡齐斯坦省。在胡齐斯坦省,这些阿拉伯裔主要聚居于其首府阿瓦士,所以这些阿拉伯裔又被称为阿
  • 伊娃 (阿拉巴马州)伊娃(英文:Eva),是美国阿拉巴马州下属的一座城市。面积约为4.07平方英里(约合 10.54平方公里)。根据2010年美国人口普查,该市有人口519人,人口密度为127.49/平方英里(约合49.24/平方