大步小步算法

✍ dations ◷ 2025-11-23 08:42:27 #自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版本的代码:

相关

  • 法律多元论法律制度(台湾及大陆地区也称法制),是指一个国家或地区的所有法律原则和规则的总称。法律制度从宏观角度来说,与法系的概念比较接近。而法律多元主义是多种法律制度存在于一个人
  • 美国殖民地美利坚殖民地,又称美国海外属地或美国属地,是指美国除了联邦州与华盛顿特区以外的所有地,它们之间与美国的关系各有不同。阿拉斯加与夏威夷最终成为美国联邦的一州。而现在的美
  • 斯泰茨伯勒 (佐治亚州)斯泰茨伯勒({{lang-en|Statesboro)是美国佐治亚州布洛克县的县治,也是该县的最大城市。根据2010年美国人口普查,斯泰茨伯勒人口数量为28,422人。斯泰茨伯勒是斯泰茨伯勒小都市统
  • 1998年冬季奥林匹克运动会第十八届冬季奥林匹克运动会(英语:the XVIII Olympic Winter Games,法语:les XVIIIes Jeux olympiques d'hiver,日语:第18回オリンピック冬季競技大会),于1998年2月7日至1998年2月22
  • 第二意大利军团第二意大利军团(英语:Legio II Italica)古罗马军队建制名称。由罗马帝国君主马可·奥勒留于公元165年建立,约存在于公元5世纪前后。活动于多瑙河流域并发挥相关之作用,具有重要地
  • 战神象兜虫战神象兜虫(学名:)是象兜虫属中身长最长的一种,雄性身长可达144mm,体重虽不及亚克提恩象兜虫,但若比身长,会比体重较重的亚克提恩象兜虫更胜过一畴。分布在中南美洲,以战神玛尔斯命
  • 袖章袖章 是套在袖子上的标识,多用来表示身份或职务。在中国共产党于1920年代至1940年代进行革命和战争时期,其下属的军事和地方行政组织便曾广泛使用过红袖章。在中华人民共和国
  • 奈特氏不确定性在经济学,奈特氏不确定性(英语:Knightian uncertainty),指无法被衡量期望值、不能被计算或然率、无法被预知的风险。由经济学家法兰克·奈特提出。在他的成名作《风险、不确定性
  • 侯震侯震(1976年7月25日-),北京人。是侯宝林长子侯耀中的儿子,侯家第三代中唯一一位以相声为职业的,2006年加入北京德云社。
  • 绢雀麦绢雀麦(学名:),又名旱雀麦,为禾本科雀麦属下的一个种,原产于欧洲、西南亚和北非,但亦入侵到世界其他地区。