C-在授权和密文下,计算对称加密的键



作为分配的一部分,我需要制作一种算法,该算法将2个文件作为输入,一个包含明文,一个包含密文。考虑到加密模型是硬编码/已知的,并且是对称的加密,是否有一种方法可以使用OpenSSL来计算用于加密提供的明文的密钥?

为方便起见,我将5段lorem ipsum用作明文,将洪水作为密码。

OpenSL文档和Google证明毫无用处。

谢谢!

否,这样做的能力几乎可以打败密码学的整个目的。可能有一些工具可以使用琐碎的系统来完成这种操作(例如,凯撒密码),但是如果可以在合理的时间计算当前密码系统的键。ANS">

您正在看的是"已知的宣传攻击":如果攻击者同时知道密文和明文,可以找到钥匙吗?

所有优质的现代密码,包括Blowfish,旨在抵抗这一攻击。因此,正如已经说过的,您的问题的答案是:"不,您找不到钥匙。"

不,你不能。
不适合池塘算法。

但是,即使有可能从一对纯文本和密码中得出键,不是这样做很容易。
其余的答案是解释。

,至少有一个加密方案,尽管允许得出密钥,但仍有安全。这是一次一次性PAD加密方案,恰好是唯一已知的真正安全的加密方案,因为它是牢不可破的。
关键是,如果知道一条消息的密钥允许解密所有未来的消息,则得出一条消息的密钥只会破坏加密方案。反过来,这仅在重复使用相同的密钥时才适用。

一次性pad加密的专业是

a)每个键仅用于一条消息,而再也不会使用
(这就是为什么它被称为"垫子",指的是带有许多钥匙的记事本,从中很容易将带有二手钥匙的纸从中取走并销毁)

b)关键只要消息
(否则,使用部分已知的纯文本来推导密码的一部分键,将允许解密消息的其余部分)

使用这些属性,即使使用不起眼的XOR加密也是牢不可破的,在消息中,每个位置都与密钥中其自己的专用位相对应。这也与de/vecryption的速度一样快,而且永远不会增加消息长度。

当然,一次性pad加密(即关键物流)当然是一个巨大的劣势。使用此加密几乎不适用,因为需要提供许多大键的接收器(或者更好的很长的密钥,可以部分用于任何大小的消息)并事先进行。
这就是尽管它比所有其他使用的人都更安全,更快,并且至少具有尺寸效率。

其他加密方案实际上被认为是安全的,否则当然不会使用。
但是,必须与加密分析的任何明显进展并行增加关键大小。没有数学上的证据表明任何其他算法都不可分割(这意味着不可能从纯肋骨对中得出键)。没有数学专家接受"我想不出任何方法。"证明是不可能的。最重要的是,新技术可以减少键推导的时间,或者在没有密钥的情况下找到纯文本的时间,将突然的厄运拼写为常用的键长。

顺便说一句,算法的对称性或不对称性是无关的。两种都可以衍生。

只有与消息长度相关的密钥大小很重要。即使使用一次性pad加密,一个简短的键(消息长度是密钥长度的倍数) 必须不止一次使用。如果Cipherhas的第一部分是已知的纯文本并允许得出键,重用它允许其余消息找到未知的平原。

对于块密码方案而言,这也是如此,该方案会更改每个块的密钥,但如果是相同的话,仍然允许以上一个键的知识找到新键。为了此答案,如果可以派生主键,则使用一个(可能是不对称)主键来创建多个(通常是对称的)块键的混合方案可以被视为可衍生的。当然,没有广泛使用的算法是正确的。

对于任何方案,可衍生的风险随着消息数量的关键数量而增加。密码钻头和普通位对每个关键位越多,可以分析的信息越多。对于一对一的关系,可以将一对一对的一对限制为单个对。

因为任何可衍生的加密需要等于消息长度的密钥长度。
相反,这意味着只有不可衍生的加密才能具有短键。当然,拥有短键是一个优势,尤其是在密钥长度意味着处理持续时间的情况下。大多数加密方案使用更长的键所需的时间更长。但是,对于任何键长度,一次性pad同样快。

因此,任何具有简单关键物流的算法(不需要事先同意大量的关键基准)。此外,任何具有可接受速度的算法都将是不可传点的。
对于任何广泛使用的算法,包括洪水。

都是正确的。

对于所有算法都不是正确的,尤其是对于唯一真正安全的算法,即一次pad加密(XOR)。

所以您的特定问题的答案确实是:
您可能无法想到的池塘和大多数算法。但是...

最新更新