大步小步算法

✍ dations ◷ 2025-11-25 13:39:01 #自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版本的代码:

相关

  • 设计保障安全设计保障安全(Safety by design)是一个概念及运动,鼓励营建管理者及产品设计者在设计开发阶段就将健康及安全风险纳入设计考量。此概念支持品质、程序及成本的观点,安全性在设计
  • 重型猎鹰猎鹰重型运载火箭(英语:FH, Falcon Heavy),先前称为猎鹰9号重型运载火箭,是SpaceX研发和制造的一款可重复使用超重型运载火箭。猎鹰重型运载火箭是猎鹰9号运载火箭的一个衍生构型
  • span class=nowrapHosub2/sub(SOsub4/sub)sub&g硫酸钬是一种无机化合物,化学式为Ho2(SO4)3。用硫酸溶解氧化钬,可以得到硫酸钬。
  • 菊糖菊糖(Inulin),也叫菊粉是FDA 认可的可溶性纤维,一种果聚糖,由果糖分子聚合而成,(请勿与甜菊糖苷混淆)多含在菊科和桔梗科植物的细胞中(如洋姜)。菊糖是一种天然的多糖体,由许多种植
  • 热功当量热功当量是指热力学单位卡与作为功的单位焦耳之间存在的一种当量关系,由于用传递热量或作功的方法都能改变物质系统的能量,所以他们的单位之间存在着一定换算关系。英国物理学
  • 一级和二级抗体一级和二级抗体是两种不同的抗体,前者直接与抗原结合,而后者则与已经和抗原结合的前者相结合。一级抗体是针对抗原目标,如蛋白质、多肽、糖类或其它小分子等特异性结合的抗体。
  • 真驰龙类见内文真驰龙类(学名:Eudromaeosauria)是兽脚亚目驰龙科的一个演化支,它们是群体型较大的驰龙类恐龙,是主要猎食其他陆地脊椎动物的肉食性动物。真驰龙类繁盛于白垩纪,具有高度多
  • 干细胞技术干细胞技术包括了所有与干细胞相关的生物工程学技术,它包含了干细胞的生成及诱导演化所需技术的研究。这些技术,可以把各种干细胞透过不同的手段,使它们表现出不同的特性。例如
  • 马来西亚最高元首宪法 - 法律 - 国家元首 - 政府首脑 -马来西亚最高元首(马来语:Yang di-Pertuan Agong Malaysia;英语:Supreme Head of Malaysia)是马来西亚的选举君主立宪制国家元首、马来西
  • 菜系菜系是指依据各地饮食风味差异对中国菜进行区分的体系,本身是当代出现的汉语新词。古代文献中所记载的中国各地饮食差异,仅有物产、食材不同。至宋代经济繁荣,带动餐饮业,方使人