签名文件时密钥长度有何不同?

问题描述 投票:0回答:1

我从未上过任何有关加密或安全的课程,我正在尝试自学一些基础知识,所以如果这是一个愚蠢的问题,请原谅我(别担心,我不会做任何敏感的事情)

所以,我正在使用 Crypto++,以便我可以对文件进行签名,以查看该文件是否已被除我之外的其他人编辑过。该库附带的测试应用程序看起来有选项(rs 和 rv),它们完全可以在我自己的程序中执行我想要执行的操作(验证文件签名的完整性)。当然,在此之前我需要生成公钥和私钥。当使用测试应用程序的 g 选项执行此操作时,它要求我指定密钥长度(以位为单位)。密钥长度有什么区别?

rsa public-key private-key crypto++
1个回答
3
投票

密钥长度决定了某人破解您的密码的难度。对于数字签名,这意味着某人生成假签名有多困难。

对于 RSA,1024 位的密钥长度足以满足非敏感信息,但它只能使用几年,然后更换为新密钥。 2048 位更强,4096 位更强。

对于天真的暴力攻击者来说,在密钥长度中添加一位会使他们破坏密钥所需的工作量增加一倍。然而,像 RSA 这样的算法不会以这种方式扩展:2048 位 RSA 密钥的破解难度不是 1024 位密钥的 2^1024 倍。

通常,公钥算法(例如 RSA)需要比对称密钥算法(例如 AES)更大的密钥,因为它们依赖于不同的数学属性。

想要了解密码学的入门知识,您应该查看 Peter Gutmann 的哥斯拉加密教程。它非常易读,可以让您很好地了解加密货币如何以各种形式工作。

© www.soinside.com 2019 - 2024. All rights reserved.