【问题标题】:Obtaining an AES "salt" from the encrypted text and the unencrypted text从加密文本和未加密文本中获取 AES“盐”
【发布时间】:2013-06-07 09:28:09
【问题描述】:

所以,如果有这样的事情,我正在尝试使用安全的 python 编程 :D)。这一半是一个真实世界的项目,一半只是一个训练练习。因此,理论和实践建议都值得赞赏。

我正在使用 AES 加盐加密脚本,它以...的方式加密文本...

data = "hello"
encrypted_text = encryption(data, salt_word)
print encrypted_text (responds with "huio37*\xhuws%hwj2\xkuyq\x#5tYtd\xhdtye")
plain_text =  decryption(encrypted_text, salt_word)
print plain_text (responds with "hello")

问题:如果您知道“encrypted_text”和“plain_text”的值......您可以对“salt_word”进行逆向工程吗?如果是这样,它有多难(PC 上 12 秒,Cray 上 20 年?)

我对 AES 的整体理解是,不,你不能。但我只是没那么熟悉。


我在这里使用了一个经过轻微修改的脚本版本: Encrypt / decrypt data in python with salt

基本上,它使用“盐”来加密“数据”。 salt 是一个字符串,数据以一串加密字符的形式出现。

使用解密,使用相同的盐字符串,将数据返回为普通文本。

【问题讨论】:

  • “盐”是什么意思?您是否要对密码进行加盐以生成 AES 密钥?
  • 如果不知道您使用的是什么encrypt 方法,这有点难以分辨。我似乎错过了注入密钥或密码的部分。 salt 通常仅用于基于密码的密钥派生函数 (PBKDF) 或 - 对于不太安全的实现 - 加盐哈希值。

标签: encryption aes salt


【解决方案1】:

当您说 AES 加盐时,您具体指的是什么?这是 IV 到 CBC 还是 CTR 模式?它是用于使用密码(PBKDF2)生成密钥的盐吗?

在任何一种情况下,盐通常都不会保密。 IV 可以明文传输,并且使用散列方案通常与散列一起存储(否则将不可能第二次计算散列)。

我已经给出了关于为什么以明文方式传输 IV 是安全的答案,您可以找到 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-02
    • 2019-08-18
    • 2015-05-27
    • 1970-01-01
    • 2021-09-27
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多