Encryption 用C语言实现简单加密

Encryption 用C语言实现简单加密,encryption,rsa,blowfish,des,publicdomain,Encryption,Rsa,Blowfish,Des,Publicdomain,我以前使用过一个很好的公共域,但现在我需要一些简单、基本、快速的嵌入式系统加密技术 它不需要是牢不可破的,但它确实需要挫败偶然的黑客(即,任何东西都不能用于金钱或身份盗窃,但其他个人信息传输到存储卡上,可能会丢失或落入坏人之手) 由于这个处理器上的内存有限,我更喜欢能够以离散块(512字节或更少)编码的东西 该项目不是开源的,也不会使用库,我知道这会进一步限制选项-公共域是最好的,但BSD/apache/etc可能可以接受 我很犹豫是否要推出自己的(每个人都应该如此) -Adam如果您只是在寻找

我以前使用过一个很好的公共域,但现在我需要一些简单、基本、快速的嵌入式系统加密技术

它不需要是牢不可破的,但它确实需要挫败偶然的黑客(即,任何东西都不能用于金钱或身份盗窃,但其他个人信息传输到存储卡上,可能会丢失或落入坏人之手)

由于这个处理器上的内存有限,我更喜欢能够以离散块(512字节或更少)编码的东西

该项目不是开源的,也不会使用库,我知道这会进一步限制选项-公共域是最好的,但BSD/apache/etc可能可以接受

我很犹豫是否要推出自己的(每个人都应该如此)


-Adam

如果您只是在寻找模糊处理,那么带有秘密常量的XOR是一个非常小的实现。它也将是微不足道的打破,因为它容易受到频率分析,以寻找最常见的英文字母

如果你需要一个更强大的算法,我建议你看看河豚,它往往又小又快。它仍然需要表的内存,但希望它能适用于您的应用程序


Bruce Schneier明确将河豚算法纳入公共领域,否认专利。您可以从中获得他的C实现(以及其他实现)。此来源没有版权声明。我怀疑源代码也在公共领域,但是可能需要更多的检查。

< P>发布C++的DES实现的同一个人也发布了一个-I,应该在他的网站上多拨一点,()也有非常小的C实现占用。 看起来不错,就安全性而言,它可能是这三者中最好的

我将从TEA(较小的代码和内存占用)开始,但将其包装起来,以便稍后在需要时可以转到另一个算法。它在早期的实现中有明显的弱点,但对于这个项目来说,甚至可能有些过分

-Adam既简单又快速。

您可以使用(PRNG)生成一个可重复的单词序列,然后将其与数据流中相应的单词异或。(发射机和接收机需要提前知道用于生成伪随机序列的参数。)

这种方法不是牢不可破的,但它比使用一个常数进行异或运算有了很大的进步,而且PRNG的实现非常简单,通常每个字都有一个乘法和模运算