我有一个学校项目,我还有一个星期的时间来完成,这是按照规范完成的。该项目的一部分是加密部分,我们被指示执行简单的XOR"加密"对于。 (我意识到这几乎不符合加密条件)
这已经完成了,但我想我有一个星期,我也可能挑战自己,试图把加密的东西放在一起并不是很糟糕。寻找有关从哪里开始的建议。我看了几个(AES,RC5),发现自己完全在我头上。寻找一个地方开始围绕这些东西开始包裹。
由于
答案 0 :(得分:2)
您可以使用一次性密码(OTP)进行加密。这很简单。首先创建并分发(带外)一个非常大的,完全随机的密钥。然后在同一位置用一点非常大的键对明文的每一位进行异或。这个方案非常安全(除了泄漏明文的大小)。
在实践中,由于密钥大小,这是非常不切实际的。此外,几乎不可能创建完全随机的键。但您可以简单地使用任何加密安全随机数生成器来实现实际的安全级别。
解密与加密相同:只需将密钥与密文进行异或,即可检索明文。
我稍微误解了这个问题,给你XOR加密(虽然现在完全安全)。您可以创建一个简单的流密码。在这种情况下,您使用另一种算法,比如RC4,从较小的密钥创建密钥流。然后使用密钥流基本上创建用于执行OTP加密的密钥。请注意,RC4有点不安全。你可能想看看例如Spritz(在RC4维基百科条目中提到)应该几乎同样容易实现。
或者,正如zaph已经提到的那样,您也可以尝试XTEA。
或者,您可以采用AES实现并使用modes of operation。实现密码很有趣,但一般而言,了解如何使用密码对开发人员来说更实用。