首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RSA分别加密每个数字是否安全?

使用RSA分别加密每个数字是否安全?
EN

Cryptography用户
提问于 2021-12-09 19:16:11
回答 1查看 2.6K关注 0票数 9

假设RSA被认为是加密的“安全”方法。RSA是用来编码一个整数序列的基27。如果我们使用一个很难计算的n=pq,那么如果我们单独编码每个整数(字母)而不是整个短语一次,那么它是否仍然是安全的呢?

编辑:我没想到会得到这么好的答案。谢谢大家!

EN

回答 1

Cryptography用户

发布于 2021-12-09 19:53:18

虽然RSA不是用于加密的,但我们可以使用RSA进行加密。如果使用TextBook RSA,那么它将是不安全的,因为加密是免费的,那么任何攻击者都可以检查这些值。我们称之为加密甲骨文,它在公钥系统上是免费的。

一个简单的RSA加密甲骨文游戏。

代码语言:javascript
复制
def Ind_CPA_RSA(adversary, target):
    (e,n,d,...) = generate_RSA_key()                  //keygen part

    def RSA_encryption_oracle_PKCS#1_v1.5(plaintext): //Encryption oracle
        EM = PKCS#1_v1.5_padding(plaintext)
        ciphertext = EM^e mod n
        return ciphertext

    for each m in possible_message_space:                  //queries
        c = RSA_encryption_oracle_PKCS#1_v1.5(m)
        if c == target
            print(target)
            return succcess
    return failure

因此,对手尽可能地尝试所有可能的信息,以看到平等的胜利。

在教科书中,RSA,如果公共指数e=3,那么立方根攻击工作的所有消息suche,即len(m) < \sqrt[3]{n}

对于所有其他攻击,丹·邦纳的文章是一个很好的起点;

  • 20年来对RSA密码体制的攻击,Dan,1999。

\textbf{Never use Text Book RSA as long as you know what you do!}

为了安全起见,必须使用PKCS#1 v1.5 (RSAES-PKCS1-v1_5)或OAEP (RSAES-OAEP)填充的RSA加密。这些加法增加了随机化来实现概率加密。

每个编码都使用特殊编码来实现这一点,比如PKCS#1 v1.5填充;

EM = 0x00 || 0x02 || PS || 0x00 || M.

M是信息。PS由随机化部分组成。

生成长度为k- mLen -3的八位串PS,该字符串由伪随机生成的非零八元组成.PS的长度至少为8个八位数。

例如,对于2048位RSA;k = 256mLen=4,那么对于一个字母大小的消息,PS长度是249个字节的随机性.因此,攻击者无法使用加密oracle测试这些值。其余的攻击RSA问题

同样,OAEP具有随机性,OAEP已被证明具有IND-CCA1安全性。与PKCS#1 v1.5相比,它更喜欢OAEP,因为它由于实现不当而受到许多攻击。

如果有人想要一篇关于RSA加密度量的学术文章,这里是付费文章;

票数 6
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/96544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档