首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于plaintext+random数据的RSA加密

基于plaintext+random数据的RSA加密
EN

Security用户
提问于 2021-03-12 09:46:59
回答 2查看 417关注 0票数 2

我有一个经过战斗测试的黑匣子密码库,是由业界公认的专家开发的。这个盒子把你的私钥放在一个硬件备份的、防篡改的存储器里。它只做一件事。以8位数字所有的ascii字符作为输入,使用RSA对其进行加密并返回密文。为了防止已知的侧通道攻击,采取了极端措施,加密的信息没有金钱价值。没有人有攻击这个系统的动机。我只是个开发人员。不对称密码学什么都不知道。出于某种原因,我想用这个魔盒反复加密我的名字。一遍又一遍。

如果这是AES,我会使用IV。我不知道IV是什么,但是互联网上的人说增加一些随机性是好的。

现在,我只是想知道,理论上,在加密之前在我的名字上添加一个时间戳是否提高了我的密码的安全性?

原题:

我应该用用户的公钥加密用户的ID。为了加密,我有一个黑盒密码库。图书馆被认为是安全可靠的,我无法控制它。我只选择RSA或EC,给它明文ID,它给我密码文本。每次用户登录时,我都会加密一个用户ID,并且ID永远不会更改。如果在每次加密之前向ID添加一些随机数据或时间戳,会不会使我的实现更加安全?

EN

回答 2

Security用户

回答已采纳

发布于 2021-03-12 22:45:17

沙菲·戈德瓦赛尔和西尔维奥·米卡利( 概率加密,1984年)的开创性工作改变了我们看待安全的方式。我们不再使用/偏好/推荐非概率加密。

为了确保RSA加密填充的安全性,有两个不同的填充被定义为PKCS#1v1.5和OAEP填充,两者都可以在rfc8017中找到。

既然你有PKCS#1v1.5,让我们在这里谈一谈;

PKCS#1v1.5使用以下格式

00 || BT || PS || 00 || D

代码语言:javascript
复制
BT is the block type
PS is the padding string
D is the data

|0x00|0x02|Random non-zero bytes|0x00|data|

  • 第一个字节(也称为八进制)零0x00保证message size < modulus大小为整数值。
  • 下一个字节(块类型) 0x02表示PKCS#1v.5填充。
  • 非零随机字节(填充字符串)保证,当同一消息在同一公钥(实际上是一对(n,e) )下再次加密时,如果每次加密,必须使用新的随机值。这是标准的。当然,我们的生日定在这里。假设一个使用2048 RSA模,那么它就有256个字节。如果数据有8个字节,那么对于非零随机字节,我们就有256-8-3 = 245字节。然后,您需要对sqrt(255^255)周围的相同消息进行加密,以获得与50%概率相同的加密结果。碰撞可以忽略不计。这个非零随机字节的大小不能小于8个字节.所以我们说,PKCS#5v.14至少有11个字节的开销。
  • 下一个0x00是分隔符。
  • 最后一部分数据是您的数据。

注1:我想指出,PKCS#1v1.5的不正确实现导致了许多攻击。OAEP更容易实现,并且两者都有安全性证明(我们等待PKCS#1v1.5已经很久了)

注2:当RSA没有填充时,我们称之为文本-Book。

票数 1
EN

Security用户

发布于 2021-03-12 18:50:53

不,只要您使用的加密是安全的,这将不会真正增加实质性的安全性。

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

https://security.stackexchange.com/questions/246014

复制
相关文章

相似问题

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