当前位置:首页 > 物联网 > 区块链
[导读] 对于RSA这套公私钥加密的思路,我以为我挺明白的,运用的娴熟自如。 当然现在RSA用的不多,而是基于ECC曲线来做签名验签,最大名鼎鼎的莫过于比特币。 可是前两天和别人讲代码,被

对于RSA这套公私钥加密的思路,我以为我挺明白的,运用的娴熟自如。

当然现在RSA用的不多,而是基于ECC曲线来做签名验签,最大名鼎鼎的莫过于比特币

可是前两天和别人讲代码,被问了ECC为什么可以用来做验签,发现自己讲不清楚。

所以做了点功课,来把这个问题讲清楚。

首先我们跳过ECC曲线是个啥这个话题。

这部分我觉得对理解这个逻辑,帮助并不大,黑盒掉就好了。

因为我们是程序员,有类型这样的表述神器,非常清晰,你一点都不用害怕。

只说原理,非伪代码,比如关于曲线阶数不说不影响理解原理,我就不说了。

ECC曲线加密核心原理

下面我们讲的,都在同一条曲线上,这条曲线上的点支持一种乘法运算

设 Q 为曲线上一点

若点R = Q * Q,也可以记为 R=2.Q

若点R =Q*Q*Q,可以记为 R =3.Q

若点R =Q*Q*……*Q ,一共n个Q,则可以记为R=n.Q

然后原理来了

给定n 和 Q 求 R 很容易,给定R 和 Q,则非常难求出n

就这一条原理,然后其他的都是证明出来的。

公钥和私钥

先复习一下原理

设Q为曲线上一点,k为一个整数

令点K = k.Q,若给定 k 和 Q,很容易求出 K

若给定 K 和 Q ,很难求出k

我换个说法给你看

设G为曲线上一点,k为私钥

令公钥K=k.G, 若给定私钥和G,很容易求出公钥

若给定公钥和G,很难求出私钥

是不是有点意思了,从这里我们也可以看出,ECC的私钥就是一个整数,一个很大很大的整数,Int64 别提了,常用的ECC算法,私钥是一个256bit的整数

而ECC的公钥是一个点,虽然平常看到他们不是字符串就是bytearray,但是私钥是整数,公钥是一个点(二维坐标)

ECC曲线有很多应用,最常用的是加密解密和签名验证

加密原理

加密步骤

先设 K=k.G,(公钥=约定点G阶乘私钥)。

1. 欲传递的数据m,先把他编码为一个坐标点M(怎么编码是你的事,比如一个字符串,你把他先bytes,然后变成大整数,当坐标的x坐标,纯属举例)

2. 整个随机整数r

3. 计算点 C1 = M+r.K看到这里肯定有点晕,这里出现了点的加法,还有r.K,r.K 就是 r 个 K相乘,K是公钥。就是 点C1 等于 r个公钥相乘加上坐标点M

4. 计算点C2 = r.G G是曲线上面约定好的一点,就是k=k.G(公钥=约定点G阶乘私钥)那个G,r是前面的随机整数

加密完成,可以看出加密需要公钥,加密将坐标点M 加密为 C1 C2 两个坐标点

加密者只需发送C1 C2 给对方

解密步骤

1. 由C1=M+r.K 可知 M =C1-r.K

2. 由K=k.G(公钥=私钥)将K代入上式可得 M=C1-r.k.G

3. 由C2=r.G 带入上式,可得 M=C1-k.(r.G)=C1-k.C2

4. 据上面推导的结论 M=C1-k.C2,则解密者根据收到的C1,C2,用自己的私钥,可以计算出加密坐标点M

签名验证原理

签名步骤

先设 K=k.G,(公钥=约定点G阶乘私钥),设欲签名数据为m,签名用私钥

1. 对欲签名数据进行处理 e=hash(m),e是一个巨大整数,Hash 算法不用解释了吧,m是必选,ECSDA实现中还把一个坐标放进去一起算hash,为了便于理解原理,我就不代入那些了,只说e

2. 整个随机整数r

3. 计算s=r-e*k,这个式子纯粹是整数运算,结果s当然也是整数 ,s=随机数减去 hash*私钥,就这个意思。

签名完成

通常说签名(signdata)就是指s和r两个整数。

签名者发送 s、r、公钥K,欲签名数据m,则任何人可以验签。

验签步骤,验签用公钥

1. 对欲签名数据进行处理 e=hash(m)

2. 计算点V1=r.G(就是算公钥那个点G 阶乘随机数 r)

3. 计算点V2=s.G+e.K ( 点G阶乘签名数据s 加上 公钥阶乘 )

4. 若V1=V2 则验签成功,接下来证明

5. 若数据都是对的,则s =r-e*k成立

6. 此时设s=r-e*k,V2=s.G+e.K 将s展开 得 V2=(r-e*k).G+e.K

7. V2 =r.G-e.k.G+e.K

8. 因为K=k.G,代入上式,可得V2 = r.G – e.(k.G)+e.K = r.G -e.K+e.K

9. 上式抵消e.K之后得V2=r.G,可知假设s=r-e*k时,V2=r.G =V1

10. 反之,当V1=V2时,s=r-e*k成立,数据正确

没有什么太深得东西,只是把这个原理表述出来,加深自己的理解,对得起区块链从业者这个身份。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

物联网设备数量呈指数级增长,其身份认证安全与区块链智能合约的可靠性成为制约行业发展的关键瓶颈。本文将从区块链物联网身份认证的底层原理出发,结合Hyperledger Fabric智能合约漏洞扫描与性能基准测试技术,系统阐...

关键字: 区块链 物联网 身份认证

在万物互联的M2M(机器对机器)通信时代,设备间的安全交互成为核心挑战。传统中心化认证体系因单点故障、数据泄露风险及高运维成本,难以满足物联网设备指数级增长的安全需求。区块链技术凭借去中心化、不可篡改和智能合约自动执行等...

关键字: 区块链 M2M

据报道,全球前三大比特币和加密货币矿机制造商比特大陆、嘉楠耘智和比特微电子为规避美国关税政策影响,都计划在美国设立制造工厂并建立供应链。

关键字: 加密货币 比特币

当前电力行业正经历着前所未有的变革。新型电力系统的建设加速推进,分布式新能源、电动汽车、储能设备等新型电力元素大规模接入,使得电力系统的供需互动更加复杂。与此同时,区块链技术凭借其去中心化、不可篡改、可追溯等特性,在金融...

关键字: 电力鸿蒙 区块链

香港2025年4月13日 /美通社/ -- 香港应用科技研究院 (应科院) 于第50届“日内瓦国际发明展”中成绩斐然,荣获16个奖项,其中包括1项评审团嘉许金奖、4项“金奖”、7项“银奖”及4项铜奖。今届获奖项目涵盖人工...

关键字: 人工智能 感测器 区块链 模型

在马来西亚获得政府间(G2G独特 认可的人工智能实验室将汇聚全球领先区块链、人工智能及机器人企业的合作 马来西亚吉隆坡2025年4月11日 /美通社/ -- 马来...

关键字: 人工智能 智能实验室 区块链 身份验证

在数字化时代,物联网(IoT)和区块链技术都备受关注,前者将无数设备连接成庞大网络,后者则以去中心化、不可篡改等特性重塑信任机制。当这两者相遇,碰撞出了创新的火花,区块链技术在物联网领域展现出巨大的应用潜力,为物联网的发...

关键字: 物联网 区块链 数字化

对于奢侈品牌,假冒伪劣产品和恶意灰色市场交易是一个长期存在的挑战。事实上,如今假冒市场被视为全球最大的非法贸易领域。经合组织(OECD)估计,2019 年其规模约为 4640 亿美元,占世界贸易总额的 2.5%,显然,对...

关键字: NFC防伪技术 半导体 区块链

区块链科普系列活动(一) 北京2024年12月24日 /美通社/ -- 在这个日新月异的科技时代,区块链与先进计算正以前所未有的速度推动着各行各业的变革。为了助力区块链及先进计算领域的创业者、从业人员把握时代脉搏,引领...

关键字: 区块链 亚马逊 数字化 AWS
关闭