gpt4 book ai didi

encryption - RSA 在加密句子时如何工作?

转载 作者:行者123 更新时间:2023-12-05 01:26:56 24 4
gpt4 key购买 nike

我正在学习 RSA 加密,并且已经了解如何加密单个字母。我无法理解 RSA 在加密句子时是如何工作的。

例如:单字母加密:A
加密= A^e (mod n)

但是在一个句子中。例如: 语句加密:Hello World

是每个单词都被加密还是整个句子都被加密?

最佳答案

两者都没有。在实践中,RSA 几乎总是与对称密码(例如 AES)结合来加密更大的密文。

RSA 本身当然不区分单词和句子。 RSA - 加密原语 - 对 数字 进行操作。 PKCS#1 中定义的 RSA,其中模幂运算之前或之后是填充/取消填充,但是对位进行操作。反过来,密码库对字节进行操作,因为字节通常是可以直接在内存中寻址的最小元素。

为了保证 RSA 的安全,它需要与安全填充模式一起使用,例如 PKCS#1 v1.5 兼容填充或 OAEP。但是,这只允许加密相对较小的消息。因此 RSA 通常用于加密随机生成的 AES key (16、24 或 32 字节),然后用于加密几乎任何大小的实际明文消息。也可以使用例如RSA-KEM建立一个特定的 key ,而不是直接加密一个。同时使用 RSA 和 AES 被称为混合密码系统,因为它都包含非对称和对称加密。


如果您想使用 textbook/raw RSA 进行练习,那么您可以加密任何类型的数字,只要它小于模数即可。现在,如何将消息拆分为足够小的组件,以及如何转换为数字/从数字转换完全取决于您 - 只要您可以反转该过程,显然。

通常您只需将几个 8 位拉丁字符(例如 4)放在一起,将它们转换为 32 位无符号数字,然后在 RSA 计算中使用该数字。然后你取接下来的 4 个等。你可以在需要的地方用空格填充。

如果你的数字太小,显然你会遇到直接的问题(公共(public)指数的 1 次方仍然是 1,毕竟即使使用大 key 也不是很安全);为了保护 RSA,需要一种安全的填充方法。同样,通常用于练习 RSA 的 key 大小太小(小于 512 位)而无法提供任何类型的安全性。

关于encryption - RSA 在加密句子时如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57513806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com