首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AES128 128/ECB使用填充物防范CPA

AES128 128/ECB使用填充物防范CPA
EN

Cryptography用户
提问于 2023-02-12 03:20:39
回答 1查看 202关注 0票数 2

我本来打算用AES加密,但我注意到了欧洲央行模式对注册会计师不安全。因此,我想通过将输入文本填充到16个字节的倍数来防止CPA。

首先,执行自定义填充系统: pad输入文本和16字节的秘密文本“每个”都是这样,因此输入文本将是16个字节的倍数。

例如,pad 8字节,pad文本是ASCII中"12345678“的一部分:

代码语言:javascript
运行
复制
AAAAA   -> AAAAA123
A       -> A1234567
AAAAAAAA-> AAAAAAAA12345678

在此之后,pad与PKCS#7兼容的填充在此填充输入+填充秘密文本。

最后,用ECB 128/ECB加密填充文本。

然后,将秘密文本与输入文本分开加密。所以..。也许这能阻止注册会计师。

我认为在其他攻击中还是不安全的。但它似乎完全防止获得秘密文本与注册会计师是。

有什么办法可以得到秘密短信吗?还是安全?

换句话说,这种升级的欧洲央行模式是否存在其他可能的攻击或注册会计师?

EN

回答 1

Cryptography用户

发布于 2023-02-12 03:31:59

填充只影响密码文本的最后一部分。因此,从定义上看,前一个区块之前的其他区块仍然是欧洲央行编码的,没有任何特殊的改动。因此--几乎从定义上看--在让欧洲央行成为印度注册会计师的问题上,它什么也不做。如果所有块包含以前遇到的明文/密文组合,则仍然可以很清楚地区分它们。

您提到的方案只不过是一个额外的确定性填充。它不会增加算法的安全性。

大多数其他模式对于欧洲央行所遭受的CPA攻击是无懈可击的,因此,如果你选择其他任何一种方式,你应该没事。现在,我们通常采用一种认证方案,如AES-GCM。

备注:

  • 安全密码总是需要一个独特的IV /密钥组合才能确保CPA的安全(我假设现在是IV的一种类型);
  • IND安全意味着(密文)与所选明文之间的不可区分性。
  • 要能够确认明文块,攻击者必须能够让oracle对明文进行加密,或者攻击者必须事先知道该特定明文的块的加密;如果密码不是IND安全,则攻击者可能只获得某些块相同(或不相同)的信息。
  • 您的方案不安全,无法抵御填充的oracle攻击;您必须使用没有填充的方案或验证密文的方案来实现对填充预言的安全性(在这种情况下,可以构造这样的oracle )。
票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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