走进算法:ECDSA算法如何保护你的数据(上) – 作者:beikatech

大家好呀,我卡卡博士今天来安利一下ECDSA算法,也就是椭圆曲线数字签名算法。

首先我们了解一下,什么是数字签名。

什么是数字签名?

在现实工作与生活中,我们一般使用签名的方式表达对一份重要文件的认可,而其他人通过识别你的签名,来确定你是否已确认/同意这份文件。

571aff4ea19a4bc2b8ff634d29e55f19.jpeg

但是通过临摹等方式,有些人可以伪造出相似度达99%的字迹,假装你的签名,这时候非专业人员可能无法分辨出,是否为你本人所签署。

而数字签名就是对现实签名以电子的方式实现,它不仅可以完全达到现实签名的特点,甚至能够做的更好。数字签名的主要作用就是,数字签名的主要作用就是保证了数据的有效性(验证是谁发的)、完整性(证明信息没有被篡改,而这是手写签名不具备的功能)以及抗抵赖性(人们不能否认自己发送信息的行为和内容)。

52a8253e209d4f278ece9cfd098fa57f.jpeg

与手写的签名不同,数字签名与被签名信息有着很强的关联,对输入信息的轻微改动,都会产生完全不同的数字签名。

一般来说,数字签名不会对信息直接进行加密,而是选择对信息的Hash值(Hash值是根据信息内容计算出来的一个指定长度数字,可以验证数据传递的完整性)进行加密,并把加密结果附加到被签名的信息后面。

用户如果需要确定信息的完整性或真实性,可对原Hash值进行解密,得出第一个Hash值,再对接收到的信息使用Hash函数得出第二个Hash值,将两个Hash值进行对比,如果相同,说明收到的内容确实来自合法用户,并且在传输过程中没有被篡改

d211f1e6176740b08239a9c884a5c2d1.jpeg

如今,常用的数字签名算法有基于RSA的数字签名、DSA、ECDSA等,我们今天就要谈谈基于椭圆曲线密码学的ECDSA算法。

什么是ECDSA?

ECDSA,全称为椭圆曲线数字签名算法,主要用于对数据(比如一个文件)创建数字签名,以保障信息在传递和使用过程中的完整性、真实性和不可抵赖性

ECDSA 是基于椭圆曲线密码(ECC,Eliptic Curve Cryptography)的数字签名算法,即使用基于ECC的公钥密码算法对信息的Hash值进行加密。

ECDSA的优势

那么同为数字签名,为什么现在ECDSA成为了新潮?

因为它是目前已知的公钥体制中,加密强度最高的一种。相较于目前最为普及的RSA算法,ECDSA算法使用更短的密钥,就可以实现和密钥长度数倍于自己的RSA相同的安全性能。

以下是ECC和RSA安全性比较

0d323e5d19904e2eb756a59cff4bed5e.jpeg

随着安全等级的增加,当前加密法的密钥长度也会成急剧增加,而 ECC 密钥长度 却只是成线性增加。

以下是ECC和RSA速度比较:

41d19f935ac44ddb9b1d92d873ed035a.jpeg

通过两者的对比可以得出,ECDSA算法与RSA算法相比,具有以下优势:

a.在相同密钥长度下,安全性能更高。例如,160位ECDSA已经与1024位的RSA有着相同的安全强度。

b.计算量小,处理速度快。在私钥的处理速度上(解密和签名),ECC远比RSA快得多。

c.存储空间占用小。ECC的密钥尺寸和系统参数与RSA相比要小得多, 占用的存储空间更小,占用带宽更少,因此ECDSA非常适用于移动互联网。

如果要说ECDSA算法有什么缺点的话,那就是:理论难以理解,实现技术复杂

那么我们来探讨一下ECDSA的原理,看看到底有多么“折磨人”吧~

ECDSA的原理

首先,需要注意ECDSA的两个词:Curve(曲线)与 Algorithm(算法),这意味着ECDSA基本上是基于数学原理的,而且涉及非常复杂的数学原理

b612f46f1576411298edf786bbca03f7.jpeg

既然ECDSA的原理这么复杂,我们今天也说得够多了,具体的原理我们下期再见吧~

来源:freebuf.com 2020-10-19 09:06:46 by: beikatech

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论