我正在使用这个实现XTEA加密的引导加载程序将加密的固件上传到小型MCU:
https://github.com/nyholku/diolan-plus2
实际的XTEA代码如下:
https://github.com/nyholku/diolan-plus2/blob/master/fw/xtea.asm
这不是我的代码,但在我看来,它似乎使用了16字节键和64次迭代,并且似乎与wikipedia XTEA C-实现相当。
现在我的问题是,如果我将我的固件同时发布为纯文本和加密的目标代码,那么我的加密密钥安全吗?
固件的大小,如果最大48 be,其中数千字节在结尾将是0xFF。
如果这些年来我发布了( <50 )这样的纯文本/加密文本对的数量如何?
我从互联网上读到,这应该是安全的,但因为主题是如此复杂,我想确保我不会犯一个新手的错误。
发布于 2017-07-19 21:03:08
您所描述的是一种已知的明文攻击。如果对手选择明文加密,现代密码甚至应该是安全的。这将被称为选择性明文攻击(CPA),保护免受攻击的密码称为CPA安全。实际上,它甚至更进一步: IND_CPA意味着,即使对手选择了明文,密文与随机文本也是无法区分的。
基本上,您可以发布任意数量的对,但仍然是安全的。当然,如果密码被破坏了,情况就不再是这样了。如果一个密钥可以通过CPA攻击来检索,那么密码就会被完全破坏。幸运的是,没有发现针对XTEA的此类攻击。但请注意,没有任何密码可以证明是安全的。
然而,XTEA是一种分组密码。块密码本身并不是通用密码。它需要一个操作方式才能变成真正的密码。应使用初始化向量初始化此操作模式。没有唯一的或随机的初始化向量,密文可能泄漏有关明文的信息。例如,如果要对同一固件的两个不同版本进行加密,您可以看到更改的位置。
https://crypto.stackexchange.com/questions/50247
复制相似问题