ecc在线加密解密工具aescbc在线加密解密
这篇文章给大家聊聊关于ecc在线加密解密工具,以及aes cbc在线加密解密对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
本文目录
ECC椭圆曲线加密算法(一)AES和ECC的混合加密什么是SSL加密ECC(椭圆曲线加密算法)公私钥生成方法ECC椭圆曲线加密算法(一)btcaddress:1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf
ethaddress:0xd91c747b4a76B8013Aa336Cbc52FD95a7a9BD3D9
随着区块链的大热,椭圆曲线算法也成了密码学的热门话题。在Bitcoin生成地址中使用到了椭圆曲线加密算法。
椭圆曲线的一般表现形式:
椭圆曲线其实不是椭圆形的,而是下面的图形:
Bitcoin使用了secp256k1这条特殊的椭圆曲线,公式是:
这个东西怎么加密的呢?
19世纪挪威青年尼尔斯·阿贝尔从普通的代数运算中,抽象出了加群(也叫阿贝尔群或交换群),使得在加群中,实数的算法和椭圆曲线的算法得到了统一。是什么意思呢?
我们在实数中,使用的加减乘除,同样可以用在椭圆曲线中!
对的,椭圆曲线也可以有加法、乘法运算。
数学中的群是一个集合,我们为它定义了一个二元运算,我们称之为“加法”,并用符号+表示。假定我们要操作的群用𝔾表示,要定义的加法必须遵循以下四个特性:
如果在增加第5个条件:
交换律:a+b=b+a
那么,称这个群为阿贝尔群。根据这个定义整数集是个阿贝尔群。
岔开一下话题,伽罗瓦与阿贝尔分别独立的提出了群论,他们并称为现代群论的创始人,可惜两位天才都是英年早逝。
如上文所说,我们可以基于椭圆曲线定义一个群。具体地说:
在椭圆曲线上有不重合且不对称的A、B两点,两点与曲线相交于X点,X与x轴的对称点为R,R即为A+B的结果。这就是椭圆曲线的加法定义。
因为椭圆曲线方程存在项,因此椭圆曲线必然关于x轴对称
曲线:,
坐标:A=(2,5),B=(3,7)
A、B正好在曲线上,因为坐标满足曲线公式
那如何找到相交的第三个点呢?
通过A、B两点确定直线方程,
设直线方程:,m为直线的斜率
进一步得到c=1。
联立方程:
X(-1,-1)的x坐标-1代入方式正好满足方程,所以A、B两点所在直线与曲线相交于X(-1,-1),则点X的关于x轴的对称点为R(-1,1),即A(2,5)+B(3,5)=R(-1,1)。
根据椭圆曲线的群律(GROUPLAW)公式,我们可以方便的计算R点。
曲线方程:
当A=(x1,y1),B=(x2,y2),R=A+B=(x3,y3),x1≠x2时,
,m是斜率
x3=
y3=m(x1-x3)-y1
A=(2,5),B=(3,7),R=(-1,1)符合上面的公式。
椭圆曲线加法符合交换律么?
先计算(A+B),在计算A+B+C
先计算B+C,在计算B+C+A
看图像,计算结果相同,大家手动算下吧。
那A+A呢,怎么计算呢?
当两点重合时候,无法画出“过两点的直线”,在这种情况下,
过A点做椭圆曲线的切线,交于X点,X点关于x轴的对称点即为2A,这样的计算称为“椭圆曲线上的二倍运算”。
下图即为椭圆曲线乘法运算:
我们将在ECC椭圆曲线加密算法(二)介绍有限域,椭圆曲线的离散对数问题,椭圆曲线加密就是应用了离散对数问题。
参考:
https://eng.paxos.com/blockchain-101-foundational-math
https://eng.paxos.com/blockchain-101-elliptic-curve-cryptography
https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/
AES和ECC的混合加密在上面对AES加密的初步认知中,我们知道AES加密需要一个key,加减密双方都需要知道,那这个key怎么设定好?看一下下面的一种场景:
在社交的APP中,一般对聊天内容都会是加密的,A和B聊天,A和C聊天。如果这个Key都是固定的,那么是不是意味着:如果B通过蛮力等方法破解某段聊天信息,拿到了和A之间的AES_Key,再抓包劫持了A和C的传输内容,就可以轻易的破解A和C之间的内容,显然这种做法是不安全的。
所以安全的模式是A和B,A和C,B和C,他们聊天内容加密的key都是不同的(再安全点加密方式也可以有区别)。那样即使A和B的加密被破解了,A和C,B和C等其他的聊天记录都不会被轻易破解。
那怎么传送这个key,肯定不是明文传送,那用哪一种加密方式更好点,一般都是非对称加密,如RSA、ECC等。
非对称加密:加减密的密钥不同,分私钥和公钥。
主流的非对称加密方式如:RSA和ECC
这边为什么选用ECC,客观因素有很多:
安全性高
有研究表示160位的椭圆密钥与1024位的RSA密钥安全性相同,256位相当于3072位。
加密效率比较
1)计算负荷:在私钥的加密解密速度上,速度更快。
2)密钥大小:存储空间占用小。
3)带宽:带宽要求低.
AES的Key经过接收方公钥加密和AES加密的内容一起发送
给接收方,接收方通过自己私钥先将加密后的AES_KEY解密,再通过解密得到的原始AES_KEY,并用该key解密发送方发送的内容,得到明文。
如下图所示:
上面这种加密方式性能上绝对是杠杠的,虽然自己没有用具体的数据测试过,但也找过很多资料看了,加密算法速度高于
扩展:AES和ECC的混合加密还有一种特殊的场景,先来看一下ECC数学函数Q=dG;(Q是公钥d是私钥G是他们之间的关系);Q1=d1G1;Q2=d2G2;那么能推出key=Q1d2G2=Q2d1G1;
有没有亮点1的公钥和2的私钥2的公钥和1的私钥他们能得到一个相同的值key。那么我们能不能把这个相同的key作为他们之间AES加减密的key呢?
那我们是不是可以在这个发送过程少传一个AES密钥key‘的参数,那在传输的过程透露的信息是不是有可以少,安全性是不是会高一点呢?
32位的ECC加密和32位AES解密,经实践可以使用上述方法。
什么是SSL加密SSL是一个安全协议,它提供使用TCP/IP的通信应用程序间的隐私与完整性。因特网的超文本传输协议(HTTP)使用SSL来实现安全的通信。
在客户端与服务器间传输的数据是通过使用对称算法(如DES或RC4)进行加密的。公用密钥算法(通常为RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。有了服务器的SSL数字证书,客户端也可以验证服务器的身份。SSL协议的版本1和2只提供服务器认证。版本3添加了客户端认证,此认证同时需要客户端和服务器的数字证书。
非对称加密
那么什么是SSL使它对在线安全如此重要?应该探索的一个方面称为非对称加密。当您访问网站时,浏览器会与网站建立连接。目标是在站点和浏览器之间的任何数据流之前确定SSL证书是否有效。所有这一切发生得如此之快,以至于您没有发现延迟。
换句话说,连接的加密是在您看到任何内容之前确定的。如果出现问题,浏览器会阻止您进入您的轨道并让您有机会从网站迁移。
什么是非对称加密很重要?它使用私钥和公钥。公钥加密数据,而私有密钥解密数据。只有在两个键确定功能后才能继续。
对称加密
那么对称加密呢?这对验证SSL证书的过程也很重要。在安全会话建立后,一旦浏览器和站点相互通信,这就是保持连接的原因。
由于使用了这种类型的加密,会话密钥能够加密和解密数据。你看到的是来回的数据流畅,仍然是安全的。
他们如何共同合作形成SSL
将非对称加密视为检查,确认和验证浏览器和网站可以通信的手段。从某种意义上说,它会检查SSL证书并确保通信安全。从那里开始,对称加密接管并允许通信流动不减,直到一方或另一方结束对话。
深入挖掘:RSA和ECC
当您了解有关SSL和加密的更多信息时,您可能会听到两个术语。其中之一称为RSA加密。
这个名字基于提出这种加密理念的三个人:Rivest,Shamir和Adelman。它侧重于公钥加密,并且只要使用浏览器连接网站,就会使用特定的数学公式生成两个大的素数。素数在任何时候都是保密的,最终导致公钥和私钥的发展。一旦完成该过程,就不再需要两个素数。
这是浏览器和站点之间“握手”的另一层保护。与一般的加密一样,它发生得如此之快,以至于您没有时间看到它发生。它做的是保持连接安全。
您还将听到ECC加密。这代表EllipticCurveCryptography。它已经使用了十多年,通常被认为比SSL的其他方面更复杂。它是如何参与建立连接的验证过程的。
与RSA一样,ECC也是关于评估和确定站点与浏览器之间的连接是安全可靠的。一旦验证,就会有来回沟通的基础。将其视为防止第三方闯入用户与您访问的网站之间的对话的另一种方式。
ECC(椭圆曲线加密算法)公私钥生成方法曲线方程为:
()
modp(moduloprimenumberp)表示该曲线位于素数阶p的有限域上,那么曲线形状可以近似为下图:
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。