大步小步算法

✍ dations ◷ 2025-09-16 13:09: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版本的代码:

相关

  • 成瘾成瘾(英语:addiction)是指一种重复性的强迫行为,即使这些行为已知可能造成不良后果的情形下,仍然被持续重复。这种行为可能因中枢神经系统功能失调造成,重复这些行为也可以反过来
  • 频谱分析仪频谱分析仪是在其频率范围内测量输入信号的频谱(幅值-频率关系)的仪器。它的主要作用是测量信号的功率谱。频谱分析仪的输入信号是电信号。但是若配合合适的传感器,也可以测量
  • 葡萄酒产量下面是一个各国及地区2014年葡萄酒产量列表,数据来自联合国粮农组织。数量显示,全球葡萄酒总产量为29,105,843公吨,当中头十名的总产量占总产量的84.73%。
  • 钟山钟山县(邮政式拼音:Chungshan)在中国广西壮族自治区东部偏北、贺江上游富川江流域,是贺州市所辖的一个县。总面积为1472平方公里,2011年人口为42.3万。钟山历史悠久,自新石器后期,
  • 共生体学说共生体学说(英语:Symbiogenesis),又称内共生学说(英语:endosymbiotic theory),是关于真核生物细胞中的一些自主细胞器ㄧ线粒体和叶绿体起源的学说。根据这个学说,它们起源于共生于真
  • 双头动物双头动物,顾名思义,就是拥有两个头的动物。是一个近年来并不少见的现象,个中有不少是经加工过的照片所虚构的情况,但亦有部分是真实存在的个案。多发生于爬行类动物和两栖类动物
  • 格雷戈里·扬·勒强努格雷戈里·扬·勒强努(罗马尼亚语:Grigore Ion Răceanu;1906年-1996年),罗马尼亚共产党的政治家、外交家,罗马尼亚驻美国和联合国大使,是1989年的六人上书公开信的退休元老之一。
  • 雷蒙德·斯普鲁恩斯第一次世界大战 第二次世界大战雷蒙德·艾姆斯·斯普鲁恩斯(Raymond Ames Spruance,1886年7月3日-1969年12月23日,或译为雷蒙德·史普劳恩斯),第二次世界大战时期美国海军将领(最终
  • 赝势赝势(pseudopotential),或有效势(effective potential),是指在对能带结构进行数值计算时所引入的一个虚拟的势。引入赝势有助于实现一个复杂的系统的近似计算。事实上,赝势近似法是
  • 科尔多瓦多科尔多瓦多(意大利语:Cordovado),是意大利波代诺内省的一个市镇。总面积12.12平方公里,人口2732人,人口密度225.4人/平方公里(2009年)。ISTAT代码为093018。