侧边栏壁纸
  • 累计撰写 46 篇文章
  • 累计创建 23 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

公钥签名新宠:Ed25519 vs. RSA - 安全性与性能的较量

elthon
2024-03-15 / 0 评论 / 0 点赞 / 96 阅读 / 2345 字

公钥签名算法在信息安全领域中扮演着至关重要的角色,它们用于验证数据的完整性和真实性。

比如最常用的场景就是ssh的免密登录情况,我们需要生成私钥、公钥,以前我们使用的比较多的算法是RSA,但是最近发现新的VPS系统中使用了新的算法,叫做ed25519。查了一下相关的资料,原来这个算法针对intel的CPU还做了优化,可以提供更快、更安全的加解密。

Ed25519 算法

Ed25519 是一种基于椭圆曲线密码学的公钥签名算法。它使用 Curve25519 曲线,是由丹麦密码学家 Daniel J. Bernstein 提出的一种高效安全的算法。

RSA 算法

RSA 算法是一种基于大整数因子分解的公钥加密算法。它由 Ron Rivest、Adi Shamir 和 Leonard Adleman 三位数学家于 1977 年提出,至今仍然被广泛应用。RSA 算法在安全性上有一定优势,但在性能方面相对较低。

Ed25519 与 RSA 的比较

  1. 安全性

    • Ed25519 基于椭圆曲线密码学,其密钥长度较短但安全性较高,抵抗量子计算攻击的能力强。

    • RSA 则基于大整数因子分解,其密钥长度需相对较长才能保证较高的安全性,且在量子计算攻击面前相对脆弱。

  2. 性能

    • Ed25519 在签名和验证过程中通常比 RSA 更快速,尤其在移动设备等资源受限环境下性能表现更为突出。

    • RSA 的加解密速度相对较慢,特别是在处理长文本时性能下降更为明显。

使用 Ed25519 生成密钥对

Ed25519 算法的工具集中包含了生成密钥对的功能。以下是使用 openssl 工具生成 Ed25519 密钥对的示例命令:

openssl genpkey -algorithm ED25519 -out private_key.pem 
openssl pkey -in private_key.pem -pubout -out public_key.pem

这将生成一个私钥文件 private_key.pem 和一个相应的公钥文件 public_key.pem

如果是使用ssh-keygen工具的话,示例如下:

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "[email protected]"

好奇去查了一下Ed25519 名字的由来,为什么是25519呢?

原来"Ed" 表示这个算法是由 Daniel J. Bernstein 设计的,"25519" 则表示 Curve25519 曲线中的素数的位数 p = 2255-19 。

0

评论区