我正在开发一个电梯项目,只是为了好玩,它实际上是硬件。但我认为这更像是一个软件问题。我不需要有这个功能,事实上它是完全多余的,但我很好奇,所以我还是添加它,所以我可以学习:P
我有一个8位地址,8位数据总线和8位加密代码。 我有一个主设备和许多从设备。 主设备知道从设备的地址并知道加密代码。 奴隶知道他们的地址和加密代码。
我想要一个非常简单的算法:
主设备发送“y”,其中,y =功能(数据,加密代码) 从机接收“y”并可以通过data = function2(y,加密代码)
提取数据我尝试过使用AND,XOR,OR等......以及它们的组合,但无法理解它。
我再次寻找简单的算法。如果你不介意的话,你可以给我一个更大的帮助,并解释一下我如何能够得到这样的解决方案/功能的理论。
非常感谢!
答案 0 :(得分:18)
你可以使用XOR cipher这很简单:
E(x,key)=> y= x XOR key
D(y,key)=> x= y XOR key
非常简单!
您可以升级加密并使其成为密码块链接,这意味着您需要将数据D划分为块,例如块大小为B.你做的第一个块:
E(b0,key)=> y0= b0 XOR key
结果它将成为下一个块加密的关键:
E(b1,y0)=> y1= b0 XOR y0 .... E(bn,yn-1)=> yn= bn XOR yn-1
原始数据为D={b0,b1.....bn}
,加密数据现为E={y0,y1....yn}
解密加密数据,你需要做相反的方式!就这样!