非对称算法 ECC、RSA、ECDH

ECC

一、阿贝尔群

椭圆曲线也可以有运算,像实数的加减乘除一样,这就需要使用到加群。19世纪挪威的尼尔斯·阿贝尔抽象出了加群(又叫阿贝尔群或交换群)。数学中的群是一个集合,我们为它定义了一个“加法”,并用符号+表示。假定群用 表示,则加法必须遵循以下四个特性:

  • 封闭性:如果a和b都是 的成员,那么a+b也是 的成员;
  • 结合律:(a + b) + c = a + (b + c);
  • 单位元:a+0=0+a=a,0就是单位元;
  • 逆元:对于任意值a必定存在b,使得a+b=0。

如果再增加一个条件,交换律:a + b = b + a,则称这个群为阿贝尔群,根据这个定义整数集是个阿贝尔群。

二、椭圆曲线的加法

过曲线上的两点A、B画一条直线,找到直线与椭圆曲线的交点,交点关于x轴对称位置的点,定义为A+B,即为加法。如下图所示:A + B = C

三、椭圆曲线的二倍运算

上述方法无法解释A + A,即两点重合的情况,因此在这种情况下,将椭圆曲线在A点的切线,与椭圆曲线的交点,交点关于x轴对称位置的点,定义为A + A,即2A,即为二倍运算。

四、同余运算

同余就是有相同的余数,两个整数 a、 b,若它们除以正整数 m所得的余数相等,则称 a, b对于模m同余。

五、乘法逆元

在模7乘法中:

  • 1的逆元为1 (1*1)%7=1
  • 2的逆元为4 (2*4)%7=1
  • 3的逆元为5 (3*5)%7=1
  • 4的逆元为2 (4*2)%7=1
  • 5的逆元为3 (5*3)%7=1
  • 6的逆元为6 (6*6)%7=1

六、有限域

椭圆曲线是连续的,并不适合用于加密;所以必须把椭圆曲线变成离散的点,要把椭圆曲线定义在有限域上。而椭圆曲线密码所使用的椭圆曲线是定义在有限域内,有限域最常见的例子是有限域GF(p),指给定某质数p,由0,1,2...p-1共p个元素组成的整数集合中加法、二倍运算。例如GF(233)就是

七、椭圆曲线加解密算法原理

设私钥、公钥分别为d、Q,即Q = dG,其中G为基点,椭圆曲线上的已知G和dG,求d是非常困难的,也就是说已知公钥和基点,想要算出私钥是非常困难的。

公钥Q加密:选择随机数r,将消息M生成密文C,该密文是一个点对,C = {rG, M+rQ},其中Q为公钥。

私钥d解密:M + rQ - d(rG) = M + r(dG) - d(rG) = M,其中d、Q分别为私钥、公钥。

八、ECDSA签名验签过程

假设要签名的消息是一个字符串:“Hello World!”。DSA签名的第一个步骤是对待签名的消息生成一个消息摘要,不同的签名算法使用不同的消息摘要算法,而ECDSA256使用SHA256生成256比特的摘要。

摘要生成结束后,应用签名算法对摘要进行签名:

1. 签名部分:

已知,A想要把m安全的发送给B,并且使用ECDSA做数字签名。我们在此不讨论它是怎么安全的送过去的,我们就假设反正是安全的保密的送给B了,但是需要验证。

1,首先,对m消息 做一次hash,即H(m),可以使用sha一类的算法实现。

2,我们得构造一个临时的公钥,构造办法还是和之前的相同,我们再次随机安全的产生一个随机数k,以及对应的公钥kG,这一步是必须得有的,并且,每和一个人对话就应该构建一个新的随机数k才能保证安全。k随机才是最安全的。

3,对于这个临时公钥kG,必然存在一个对应的椭圆曲线上的点kG=(x,y),即 ,因为G本身就是一个点,对它自身进行n次的加法,还是在这个椭圆曲线上。

然后取x部分,求它的逆,即:r=x^-1mod n ,

对一个已知数 ,在模 的情况下求逆,也就是使得 ,通常来说,为了保证安全,这个数都是非常大的,直接瞪眼法估计是搞不出来,得采用扩展欧几里得算法求逆,我们不谈,反正只要知道这个是可解的就可以了。同理,在本文里面,我们就默认,所有的基于一个数求逆都是可解的,省略点篇幅。

就算法看来,到底选择的是 还是 似乎没有什么区别。

4,开始构造签名。令:

处理结束,把(r , sign)发送过去,签名的工作就结束了。

2. 验证过程

这个ECC算法应该也是公开的,因此它的G就是已知的,同样,这个公钥部分本身就应该公开,也就是dG。

已知

构造

那么,

得到kG,即可计算kG=(x,y),得到x,再顺着签名过程计算r,最后核对r是否一致即可。

3. 不能用相同的k

因为有:

所有知道k之后就可以计算出私钥d。

两次使用相同的k,对不同的H签名,既可以计算k:

sign1=k^(-1)(H1+dr)

sign2=k^(-1)(H2+dr)

求得:

k=(H1-H2)/(sign1-sign2)

RSA

RSA 算法的数学基础

RSA 算法的安全性依赖于数论中的一些重要概念和定理,主要包括:

质数与互质

  • 质数:大于 1 的自然数,除了 1 和它本身外,不能被其他自然数整除。
  • 互质:两个整数的最大公约数为 1,称为互质。

欧拉函数

欧拉函数 ϕ(n),ϕ(n) 表示小于或等于 n 的正整数中与 n 互质的数的个数。对于质数 p,有:ϕ(p)=p−1;ϕ(p)=p−1对于两个不同的质数 p和 q,有:ϕ(p×q)=(p−1)×(q−1)

模运算

模运算是指求一个数除以另一个数的余数。RSA 算法中大量使用了模运算的性质,例如:

  • (a×b)modn=[(a mod n)×(b mod n)]modn
  • a^bmodn可以通过快速幂算法高效计算。

欧拉定理

欧拉定理指出,如果两个正整数 a 和 n互质,则:a^ϕ(n)≡1modn 欧拉定理是 RSA 算法的核心数学基础。

一、密钥计算方法

1.选择两个大素数p和q(典型值为1024位)

2.计算n=p×q和z=(p-1)×(q-1) // z是n表示欧拉函数

3.选择一个与z互质的数,令其为d

4.找到一个 e 使满足e*d= 1 (mod z)

5.公开密钥为(e,m),私有密钥为(d,m)

二、加密方法

1.将明文看成比特串,将明文划分成k位的块 P 即可,这里k是满足 2*k<n 的最大整数。

2.对每个数据块 P,计算 C= P^e(mod n),C 即为P的密文。

加密

C = P^e (mod n)

三、解密方法

对每个密文块 C,计算 P=C^d(mod n),P即为明文

解密:

P = (P^e)^d (mod n)=P^(ed) (modn)=

P=P^(ed)(mod n)

ECDH共享参数

Alice和Bob进行ECDH密钥协商之前双方要有共同的ECDH共享参数即必须选择相同的椭圆曲线方程、大素数p、生成源G,实际中这些椭圆曲线已经被相关组织标准,比如上边的secp256r1、secp384r1,通过这个双方就确定了这些共享参数

ECHD密钥协商

1.Alice选择一个比椭圆曲线阶小的随机数dA作为私密参数,计算QA=dA G=(xA,yA)发送给Bob

2.Bob选择一个比椭圆曲线阶小的随机数dB作为私密参数,计算QB=dB G=(xB,yB)发送给Alice

3.Bob收到QA并计算得到共享密钥参数KB=dB QA=dB(dA G)

4.Alice收到QB并计算得到共享密钥参数KA=dA QB=dA(dB G)

根据椭圆曲线结合律dB(dA G) = dA(dB G) = (xQ,yQ),即获得共享密钥KA=KB,KA和KB是一个坐标点,所以共享密钥可以是xQ,yQ两部分也可以是xQ单一部分,若共享曲线是secp256r1,则xQ,yQ长度均256比特,如共享曲线是secp384r1,则xQ,yQ长度均384比特

如下图:

Read more

二手平台出现OpenClaw卸载服务,299元可上门“帮卸”;2026年春招AI人才身价暴涨:平均月薪超6万;Meta辟谣亚历山大·王离职 | 极客头条

二手平台出现OpenClaw卸载服务,299元可上门“帮卸”;2026年春招AI人才身价暴涨:平均月薪超6万;Meta辟谣亚历山大·王离职 | 极客头条

「极客头条」—— 技术人员的新闻圈! ZEEKLOG 的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。(投稿或寻求报道:[email protected]) 整理 | 苏宓 出品 | ZEEKLOG(ID:ZEEKLOGnews) 一分钟速览新闻点! * 微信员工辟谣“小龙虾可自动发红包”:不要以讹传讹 * 蚂蚁集团启动春招,超 70% 为 AI 相关岗位 * 受贿 208 万!拼多多一员工被抓 * 2026 年春招 AI 人才身价暴涨: 平均月薪超 6 万元 * 二手平台出现 OpenClaw 上门卸载服务 * 权限太高,国家互联网应急中心发布 OpenClaw 安全应用的风险提示 * 字节豆包内测 AI 电商功能:无需跳转抖音,日活用户数超

By Ne0inhk
星标超 28 万,OpenClaw 两天两次大更!适配GPT 5.4,告别“抽卡式 Prompt”

星标超 28 万,OpenClaw 两天两次大更!适配GPT 5.4,告别“抽卡式 Prompt”

整理 | 梦依丹 出品 | ZEEKLOG(ID:ZEEKLOGnews) “We don’t do small releases.” 这是 OpenClaw 在发布 2026.3.7 版本时写下的一句话。 刚刚过去的周六与周日,这个 GitHub 星标已超 28 万 的 AI Agent 开源项目再次迎来两轮重量级更新。 两天两次更新:OpenClaw 做了一次“真正的大版本升级” 打开 OpenClaw 的 GitHub 更新日志,你会发现这次版本更新的规模确实不小。在 3 月 7 日发布更新后,第二天又迅速推出 2026.3.8-beta.1 和

By Ne0inhk
为省5-10美元差点毁库!Claude一条指令删光200万条数据、网站停摆24小时,创始人坦言:全是我的错

为省5-10美元差点毁库!Claude一条指令删光200万条数据、网站停摆24小时,创始人坦言:全是我的错

编译 | 屠敏 出品 | ZEEKLOG(ID:ZEEKLOGnews) AI 时代,一次看似普通的操作,竟能让整套生产环境与近 200 万条数据瞬间「归零」。 近日,数据科学社区 DataTalks.Club 创始人 Alexey Grigorev 就遭遇了这样的惊魂时刻,他在使用 AI 编程工具 Claude Code 管理网站服务器时,意外清空了平台积累 2.5 年的核心数据,甚至连数据库快照也未能幸免,导致网站停摆整整 24 小时。 这起事故不仅在开发者社区引发热议,更给所有依赖 AI 工具与自动化运维的从业者敲响了警钟。事后,Alexey Grigorev 公开复盘了整个过程,并揭露了此次事故的核心问题。让我们一起看看。 一次看似很普通的网站迁移 这场“删库”事件的前因,其实并不复杂。

By Ne0inhk
苹果最贵手机要来了!折叠屏iPhone将于9月亮相;部分高校严禁校内使用OpenClaw;黄仁勋预言:传统软件和APP或将消失 | 极客头条

苹果最贵手机要来了!折叠屏iPhone将于9月亮相;部分高校严禁校内使用OpenClaw;黄仁勋预言:传统软件和APP或将消失 | 极客头条

「极客头条」—— 技术人员的新闻圈! ZEEKLOG 的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。(投稿或寻求报道:[email protected]) 整理 | 郑丽媛 出品 | ZEEKLOG(ID:ZEEKLOGnews) 一分钟速览新闻点! * 多所高校要求警惕 OpenClaw 安全风险,部分严禁校内使用 * 荣耀 CEO 李健:荣耀机器人全栈自研,将聚焦消费市场 * 马化腾凌晨 2 点发声:还有一批龙虾系产品陆续赶来 * 前快手语言大模型中心负责人张富峥,已加入智源人工智能研究院,负责 LLM 方向 * 最新全球 AI 应用百强榜发布,豆包/DeepSeek/千问上榜 * 苹果折叠 iPhone 将于九月亮相,融合 iPhone 与 iPad 体验

By Ne0inhk