火星链 火星链
Ctrl+D收藏火星链
首页 > 火必 > 正文

SEC:深入浅出:区块链技术中的非对称加密算法--签名和加密

作者:

时间:1900/1/1 0:00:00

签名是一种非对称加密算法的用法,即使用不同的加密密钥与解密密钥,而由已知加密密钥推导出解密密钥在计算上是不可行的。签名是用非对称算法的私钥签名,然后用私钥对应的公钥来验证签名,的主要作用是确定发送方的身份。

除了签名,非对称加密算法还有一个用处是加密和解密,加密则是用公钥来对信息加密,然后用对应的私钥进行解密,主要作用是向接收方传递加密的信息。签名和加密的作用和算法都不相同,因此需要加以区别。

1签名与验签

签名算法可以在不泄露发送者本身的私钥的情况下,通过公钥和签名信息来确认发送者持有对应的私钥。签名还可将发送者的身份和信息绑定,防止其他人冒充发送者,因此这样处理可保证信息的防篡改的同时认证发送者的身份。目前常用的签名验签算法有RSA数字签名和椭圆曲线数字签名,其中椭圆曲线数字签名是区块链中应用最多的方法。

1.1RSA数字签名

RSA是被研究得最广泛的公钥算法,从提出到现在已有四十年的历史,经历了各种攻击考验。RSA的安全性主要依赖大数分解,优势是秘钥长度可以增加到任意长度。RSA运算方式造成了签名内容如果较短,会被很容易修改为攻击者想要的内容,所以一般还需要将签名内容进行一次哈希运算,并填充至和私钥差不多的长度。此外,随着计算能力的增长,为防止被破解,秘钥长度也需要不断增长,目前认为安全的秘钥长度是2048bit。同时RSA的私钥生成需要两个质数的组合,因此寻找更长私钥的计算速度也更慢。

云南省委宣传部副部长:深入推进区块链与各行业领域的深度融合:8月25日,云南省委宣传部副部长、省新闻出版(版权)局局长杨润,市委常委、市委宣传部部长徐晓梅率队到五华区调研“区块链 ”大文创产业建设情况。云南省区块链中心成立了产业联盟,数十家国内外企业加入,以商招商的产业氛围日渐浓厚。中心成立一年以来,以成熟领先的区块链技术助力数字云南发展。上线云南区块链平台,为企业快速部署应用提供极大便利。杨润表示,五华区要按照“以应用换市场、以市场换产业”思路,以区块链技术应用为突破口,强化政策引领,加大招商引资力度,引进国内外优秀企业落地园区,聚焦场景应用,深入推进区块链与各行业领域的深度融合,把五华区打造成区块链技术应用试验场、产业发展聚集区。(五华区委宣传部)[2021/8/30 22:46:23]

1.2椭圆曲线数字签名

椭圆曲线算法是利用在有限域上的椭圆曲线的离散对数问题来加密或签名的。椭圆曲线的秘钥和RSA不同,有效范围会受椭圆曲线参数的限制,因此不能像RSA一样可以通过增加私钥长度来提高安全性,对于安全性不够的曲线,必须修改椭圆曲线的参数,不如RSA灵活。和RSA算法比,椭圆曲线的优势在于:私钥可以选取有效范围内的任意数,私钥的生成速度远快于RSA算法的私钥。最重要的是相同秘钥长度的椭圆曲线安全性能高很多,因此达到相同安全等级需要的椭圆曲线秘钥的长度远小于RSA秘钥的长度,因此占用的存储空间相对较小,对于存储比较受限的区块链来说,椭圆曲线更适用。这里用椭圆曲线对签名算法进行简单介绍,因为椭圆曲线的签名方法和加解密的方法区别明显,而RSA的签名和加解密算法模式近似,容易引起混淆,在此不做介绍。

加拿大央行正在招聘深入了解数字货币的经济学家:10月19日消息,加拿大央行正在招聘一位对金融技术和数字货币有深入了解的经济学家,这可能是加拿大央行迈向数字货币(CBDC)一系列举措的最新一步。根据官方页面,经济学家的职责将是监测和分析与电子资金和支付有关的最新发展,实施研究项目,编写分析说明并致力于“ CBDC的潜在发展”。申请人必须满足一系列要求,其中包括对比特币、以太坊和其他主要加密货币平台的深入了解,以及熟悉传统支付系统。(Cointelegraph)[2020/10/19]

1.3非对称签名验签算法

签名算法最主要的思路就是利用算法的单向性,使私钥和随机数被隐藏起来,然后用公开信息计算获得一致的结果来验证签名的有效性。

如图所示,蓝线为签名所需要的数据,经过单向门的数据可被隐藏,未经过单向门的数据需要小心处理;红线是验签的数据,这些数据对验签者都是公开的。

央行上海总部:深入推进金融科技创新监管试点:5月12日,央行上海总部发布通知称,下一步将加强对金融科技应用创新试点工程的组织领导,并会同上海市地方金融监管局等单位,深入推进金融科技创新监管试点,提升金融科技支撑能力。中国人民银行于2020年4月26日支持在上海等6市(区)扩大金融科技创新监管试点,这标志着金融科技创新监管工作正式在上海启动,也为加快推进上海金融科技中心建设再添助力。

近年来,人民银行上海总部把大力发展金融科技作为推动上海国际金融中心和科技创新中心联动发展的重要着力点,积极探索设计上海金融科技中心的建设与发展路径,发布了《关于促进金融科技发展 支持上海建设金融科技中心的指导意见》(银总部发〔2019〕67号)。

央行上海总部明确,下一步将以《发展规划》为指引,加强对金融科技应用创新试点工程的组织领导,并会同上海市地方金融监管局等单位,深入推进金融科技创新监管试点,加大试点项目横向交流和成果共享,深化金融市场科技应用,提升金融科技支撑能力,为把上海建设成为与国际金融中心地位相适应的金融科技中心提供有力支撑。(中新经纬APP)[2020/5/12]

下面不考虑乘法在有限域椭圆曲线上的具体算法,以SEC的椭圆曲线签名算法来简单介绍一下签名的过程。SEC是一个椭圆曲线的标准,一些常用的曲线,如secp256k1、secp256r1都是这个标准下的。其他椭圆曲线算法的流程都差别不大,但是签名的方式有区别,如国密SM2的签名和验签计算的方式和SEC的不一样,给消息进行哈希算法的流程也更多。RSA签名则没有随机数的流程。

声音 | 井通科技李军:区块链发展阶段正在深入但预期一致可能引发黑天鹅:12月5日消息,井通科技副总裁李军在谈论区块链未来时表示,区块链发展第一阶段已经过去,第二阶段已经深入场景,随着阶段深入,底层核心技术拥有更加深远的前景,但值得注意的是,预期一致往往会引发黑天鹅,需要各方警惕。[2019/12/5]

1.3.1私钥签名

签名算法多次用到了算法的单向性,可以看做一个单向的门,经过计算相当于从一边穿过单向门,但是并不能通过运算再走回去。比如私钥为k,公钥K可通过椭圆曲线乘法算出:

kG(x,y)=K(x',y'),其中G为椭圆曲线基点,但知道公钥K和基点G是无法反推出私钥k的。椭圆曲线乘法和哈希算法都是这种单向门。签名的过程为(其中有小写字母的为数值,大写字母为点):

取随机数r,计算椭圆曲线乘法:r*G(x,y)=R(x",y");

计算消息m的哈希值h:Hash(m)=h;

3根据随机数r,哈希值h和私钥k,计算s=(h+k*Rx)/r,其中Rx为R点x轴的数值;

动态 | 区块链等技术在物流、营销、质量追溯等领域应用日趋深入:前瞻产业研究院发布《中国零售行业市场前瞻与投资战略规划分析报告》,其显示,近年来,随着电商环境、技术平台和网购习惯的普及与完善,中国的零售业发生了翻天覆地的变化。例如,各大电商平台的线下门店落地,与传统零售商联盟化趋势加强,将线上线下资源进一步整合;人工智能、大数据、区块链等技术在物流、营销、质量追溯等领域应用日趋深入;电商流量加速分化,拼购模式、小程序电商、内容电商等新模式交易规模呈指数增长。[2019/5/10]

将消息m和签名(Rx,s)发送给验证者。

需要注意的是第三步s的计算是数值计算,利用随机数隐藏私钥,并非哈希或椭圆曲线乘法这种单向性的运算。因此每次签名随机数r必须更换,否则对不同信息用相同的随机数签名就可以推算出私钥,而且随机数r的质量将影响私钥的保密性。

1.3.2公钥验签

验签是通过公钥K(x',y')、消息哈希h和签名值(Rx,s)来推算签名值是否由公钥K对应的私钥k签名。验签的过程为:

根据收到的消息m,计算哈希值h:Hash(m)=h;

根据收到的公钥、签名和哈希值h计算:R’=hG(x,y)/s+RxK(x',y')/s;

验证R‘x是否等于Rx。

公钥验签的原理是用公钥、签名和哈希值构造出算法,使计算结果能回到原来选取的随机数上:

R’=h*G(x,y)/s+Rx*K(x',y')/s

=h*G/s+Rx*(k*G)/s=(h+k*Rx)G/s

=(h+k*Rx)G*(r/(h+k*Rx))

=r*G

因此验签是否成功的标志是R'x和Rx是否相同。

这里都是最简化的推导方式,没有把求模运算和具体的椭圆曲线加法和乘法等涉及到的运算考虑进去,实际计算中关于数值的计算要求模,因此最后R’可能算出的是R的对称点,而对称点的y轴坐标不同但是x轴相同。还有,数值除法也并不是常规的运算,而是将除数转换成模逆元再做乘法。

2.加密与解密

非对称加密的作用是将信息通过公钥加密传递给私钥持有者。非对称加密和签名相反,信息是经过隐藏的,发送方也并不和身份绑定,主要的功能是传输信息而不是确定身份。非对称加密的效率比对称加密低很多,主要的优势是接收方不需要将秘钥通过交换协议或者直接传输给信息发送方。和签名类似,非对称加密也有RSA和椭圆曲线的方法。加密同样利用算法的单向性,使消息和随机数被隐藏起来,然后用私钥计算将加密的消息提取出来。

如图所示,蓝线为签名所需要的数据,经过单向门的数据可被隐藏,未经过单向门的数据需要小心处理;红线是验签的数据,这些数据是要传给解密者或者解密者本身持有的。解密流程中私钥为解密方单独持有,随机数和消息由加密方生成和提供。

2.1公钥加密

加密也用到单向门的特性将随机数隐藏,具体流程为:

取随机数r,计算椭圆曲线乘法:r*G(x,y)=R(x',y');

将消息m编码到椭圆曲线上,获取椭圆曲线上的点M(x",y");

用随机数r和接收方的公钥K,计算椭圆曲线乘法:r*K(x,y);

计算椭圆曲线加法得出加密点S(x"',y"')=M(x",y")+r*K(x,y),并和R(x',y')一起发送给接收方;

加密中编码的方式有很多种,比如用M点做对称加密的密钥,然后将用该密钥加密后的信息一起发送给接收方,接收方用私钥解密出M后,再用M解密对称加密的信息。

2.2私钥解密

私钥解密是通过加密内容,随机点R和私钥k来还原出编码M的过程,具体流程为:

根据发送方传输的S(x"',y"'),R(x',y')和接收方自己的私钥k,计算S(x"',y"')-k*R(x',y')还原M(x",y");

用编码M解出消息m;

私钥解密的原理是用私钥和加密相关的消息还原出编码点M:S(x"',y"')-k*R(x',y')=M(x",y")+r*K(x,y)-k*R(x',y')

=M(x",y")+r*k*G-k*r*G(x',y')

=M(x",y")

然后根据M还原出加密的消息。

标签:区块链SEC数字货币HASH区块链技术的特点Wrapped Secret (ERC20)ckt币数字货币Filcoin Standard Full Hashrate Token

火必热门资讯
TER:员工导致Twitter陷入史诗级加密黑客风暴?官方回应来了

北京时间2020年7月16日凌晨三点左右,著名社交网站推特陷入了一场震惊全球的黑客风暴,包括比尔·盖茨、埃隆·马斯克、奥巴马、拜登等知名人士.

1900/1/1 0:00:00
ETH:加强参与度,降低风险,如何改进以太坊2.0的抵押机制?

题图来自以太坊基金会博客刊文Eth2.0的抵押机制需要改进吗?一周前,在查看以太坊reserach论坛的时候,我看到了这个社区提案,因此有此感慨.

1900/1/1 0:00:00
ILY:吴忌寒夺权无望?法院五次中止其变更法人行政诉讼

据Odaily星球日报获取的文件显示,2020年7月10日,北京市第四中级人民法院五次中止吴忌寒要求变更法人的行政诉讼,吴忌寒夺试图通过行政诉讼夺回公司法人的想法失败了.

1900/1/1 0:00:00
加密货币:评论:不能把比特币关在衍生金融的“笼子”

作者:ClaireWu区块链项目如何才能和实体经济相结合,而不是在金融领域空转,是区块链业界有识之士经常自我反省的问题.

1900/1/1 0:00:00
ITF:凉凉,股市吸走了币圈资金?

“一根大阳线改变信仰”。经历了魔幻2020年的上半年,7月份的股市突然大涨,令很多人都措手不及.

1900/1/1 0:00:00
DEF:DeFi 锁仓量破40亿,Uniswap 日成交量破1亿,牛市的发动机?

昨日BTC上涨突破1万美元的关口,市场一片欢声雀跃。???? 朋友圈,随处可见比特币破万的K线图。毕竟市场被压抑的太久,急需一场牛市来解救。于是也有声音说,牛市开启了.

1900/1/1 0:00:00