大步小步算法

✍ dations ◷ 2025-12-10 16:28:19 #自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版本的代码:

相关

  • 图格鲁克王朝图格鲁克王朝(1320年—1413年)是德里苏丹国第三个王朝﹐其创建者为加兹·图格鲁克。图格鲁克王朝在苏丹穆罕默德·宾·图格鲁克时期达到鼎盛。他在位其间发动了4次南征﹐并占领了
  • 小型机迷你电脑(英语:mini computer),也翻译为小型机,是1970年代由迪吉多(DEC)首先开发的一种高性能计算产品,曾经风行一时。中文“小型计算机”(小型机)曾用来表示一种多用户、采用终端/主
  • 鼩负鼠目 Paucituberculata鼩负鼠属(Caenolestes)  秘鲁鼩负鼠属(Lestoros)  智利袋鼠属(Rhyncholestes)鼩负鼠目,学名Caenolestidae,为哺乳纲的一个目,只有鼩负鼠科一科,包括鼩负鼠属、秘鲁鼩负鼠属、
  • 那空是贪玛叻府 small(洛坤府)/small那空是贪玛叻府(泰语:จังหวัดนครศรีธรรมราช,皇家转写:Changwat Nakhon Si Thammarat,泰语发音:)是泰国南部人口最多的府。东面临着泰国湾,邻近府份从南到北按顺
  • 九十九岛九十九岛(日语:九十九島/くじゅうくしま Kujūkushima */?)是日本的溺湾群岛,位于长崎县佐世保市和平户市一带的北松浦半岛(日语:北松浦半島)西侧沿岸。九十九岛全域皆属于西海国
  • 蒂尔曼蒂尔曼县(Tillman County, Oklahoma)是美国奥克拉荷马州西南部的一个县,南邻德克萨斯州。面积2,277平方公里。根据美国2000年人口普查,共有人口9,287人。县治弗雷德里克 (Freder
  • 萨默维尔 (马萨诸塞州)萨默维尔(英语:Somerville),是美国马萨诸塞州米德尔塞克斯县的一个城市,在波士顿以北。根据2000年人口普查,萨默维尔市的人口是77,478,人口密度列新英格兰地区之最。建于1842年。历
  • 加拿大官方反对党领袖女王忠实的反对党领袖(英语:Leader of Her Majesty's Loyal Opposition,法语:Chef de l'Opposition Loyale de Sa Majesté),或简称反对党领袖(英语:Leader of the Opposition,法语:Ch
  • 技嘉科技技嘉科技股份有限公司(英语:GIGABYTE Technology;简称技嘉、技嘉科技、GIGABYTE)是一家发迹于台湾,以制造及售卖电子科技硬件为主的国际企业。技嘉科技提供最小自电脑周边零件、
  • 2019年东南亚运动会2019年东南亚运动会(全称第30届东南亚运动会),是一项从2019年11月30日至12月10日于菲律宾马尼拉举办的区域性综合运动会。这是菲律宾第四次举办东南亚运动会,也是该国自2005年以