本文介绍了椭圆曲线在密码学中的应用,解释了椭圆曲线如何通过特定的群操作(如弦切线规则)形成密码学所需的数学结构。文章详细讨论了椭圆曲线群的定义、有限域上的点运算、群单位元的引入以及点加倍操作,并指出这些数学结构为加密和数字签名提供了难以破解的难题基础。
这是密码学系列文章的一部分。如果这是你第一次阅读本系列,强烈建议从系列的开篇开始。
在前文中,我们简要讨论了支撑当前广泛使用的密码学技术的一些基本概念。
我们尚未讨论_为什么_群和模算术在密码学中如此有用。但你可能已经猜到,核心思想是它们允许我们构建_极难解决_的问题——即使投入惊人的计算资源,实际上也无法破解。例如,为什么数字签名有效?因为掌握私钥时生成有效签名相对简单,但没有私钥时则难如登天。
我们稍后会深入探讨这些细节。现在,我认为聚焦于能够使待解决问题_更加困难_的_其他群结构_更有意义——这正是_椭圆曲线_的登场时刻。
_曲线_通常由_方程_定义。对于椭圆曲线,方程E(实际是简化形式,但我们会沿用这个表述)如下所示:
曲线 y² = x³ - x 的图示
但等等... 这和群有什么关系?这毕竟只是一条曲线!
让我们快速回顾已学内容。群由集合(记为𝔾)和_二元运算_定义,该运算接收两个𝔾元素并生成另一个𝔾元素。如果我们能找到利用椭圆曲线构造有效_集合_和_二元运算_的方法,就能得到一个群。
而确实存在这样的方法!
取椭圆曲线上任意两点_P_和Q,绘制穿过它们的直线。通过基本代数运算可知,(几乎总是)存在第三个交点。取该点,以x轴为镜面进行垂直翻转。恭喜,你得到了点R = P + Q!
此过程称为弦切线规则(chord-and-tangent rule),正是我们寻找的群运算。
第一次接触这个概念时,我的反应是"多么奇特的流程"。我不禁自问:究竟为何需要翻转第三个交点?深入探究后,只能说:解释其合理性的原因远超本文范畴。目前请相信一切逻辑都是严密自洽的。
椭圆曲线 y² = x³ -x + 1(红色)及运算 P + Q = R 的演示
至此完成了一个要素,还需构建集合。由于_弦切线规则_将椭圆曲线上的两个点映射为另一个点,自然我们需处理椭圆曲线上的点集。但存在两个问题:
如何解决这些问题?
事实证明,某些椭圆曲线存在无限个整数值点(如P = (1,2))。通过_恰当选择_椭圆曲线,第一个问题神奇消失。假设我们已掌握选择方法,聚焦第二个问题。
将无限整数集转换为有限集有个巧妙技巧——我们早已见识过。猜到了吗?没错,就是模运算!
椭圆曲线取模23后的点集
例如,若选择q = 11,则曲线上点P' = (11, 13)在群中实际对应元素P = (0, 2)!注意我们对每个坐标应用了模运算
形式上,我们称椭圆曲线定义在_有限域_上,任何"越界"点都通过模运算映射回域内。表示为:
大功告成!现在有了_集合_和"加法"运算方法。但似乎遗漏了什么...
观察下图。当尝试计算_P + Q_时会发生什么?
明显不存在第三个交点!恐慌随之而来。这是否意味着构造失败?
幸运的是,通过定义新群元素O(视为无穷远点,虽不准确但便于理解)即可化解危机。该元素具有关键特性:对曲线上任意点P,满足:
是否似曾相识?这与任何数加_零_的结果是否如出一辙?
这正是群论中的_单位元_概念——整数群中的_零_与椭圆曲线中的_O_扮演相同角色。添加该元素后,集合完备性得以保证,任意两点的加法运算总能获得有效结果。
但仍有细节待完善。
计算_P + P_时会发生什么?根据弦切线规则:需要穿过两点的直线,但此处仅有一点!此时需考虑点_P_处的曲线切线。
按惯例找到第三个交点,翻转得到P + P,记为[2]P。这个操作被命名为点加倍。
点加倍操作演示
计算_P + [2]P的流程依旧:绘制穿过两点的直线,翻转第三个交点,即可得到[3]P。重复该过程得[4]P_。此时可观察到奇特现象:四次相加P(P + P + P + P)与两次相加_[2]P_的结果相同!
这个看似简单的现象,实为椭圆曲线应用中的最强大工具。假设需要计算[12384162178627301263]P,逐点相加耗时极长——但正确应用_点加倍_可_指数级加速_运算!
这正对应本文开头提及的极难问题。后续将讨论,此类难题正是基于群的密码学构造得以存在的根基!
我们定义了椭圆曲线群。它们是由可进行加法运算的整点构成的集合,通过模运算限定在特定范围内。文献中提及椭圆曲线时,通常指代的是_群_而非曲线本身。若需特指曲线,常称为仿射曲线。
如果你此刻的感受是:
每日清晨的我
初次接触确实难以理解,但一旦掌握就会觉得自然。给自己些时间消化,欢迎随时提问!
可通过此网站进行椭圆曲线交互实验。
基础铺垫已完成。在下一篇文章中,我们将探讨如何应用椭圆曲线知识,研究_非对称加密_方案和_数字签名_方案。敬请期待!
- 原文链接: medium.com/@francomangon...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,在这里修改,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!