Substitution-Cipher

低記憶體使用的高效混淆或加密方法

  • April 30, 2022

我們正在製造一種以 8 字節數據包傳輸的感測器。該感測器將由幾個不同的接收器使用,其中一些可用的備用 RAM 非常少 (< 3 kb)。在某些接收器上,我們將提供軟體,在其他情況下,我們將根據 NDA 向製造商提供程式碼。

這是一個商業應用,感測器可以相對容易地複制。為了給模仿設計製造一個小障礙,我們想給數據包添加一些加密或混淆。

關於無線電數據包的一些細節:

  • 8字節包
  • 每秒發送幾次
  • 感測器測量模擬條件,這些條件可以被想要“破解”加密的人改變。數據包的一部分將是這些數據。有時感測器會重複發送一個空信號。

我曾想過使用 Blowfish,但它的 RAM 比我想分配的要多,而且在加密方面可能有點過頭了。Blowfish 是否有更低 RAM 的替代品?

我知道替換密碼相對容易破解,但由於我只是想讓某人慢下來,它可能合適嗎?有人可以向我指出一種 RAM 高效且需要一些工作才能破解的方法嗎?

為了問題的目的加密一個 8 字節的數據包,比使用應用於 8 字節數據包的 64 位密碼和密鑰更糟糕。

候選人包括

  • TEA,它具有最低的程式碼佔用量並且實現起來非常簡單
  • SpeckSimon(64/128 或 64/96),這可能更有效
  • IDEA,但它需要乘法,這可能很難得到恆定的時間。
  • DES3DES,但程式碼更大並且需要查表,從安全形度來看,這可能會出現問題,尤其是在具有記憶體的 CPU 上。

任何這些都可以用很少的 RAM(64 字節就足夠了)來實現。


注意:此替換提供

  • 強大的機密性(特別是相同的值總是以相同的方式加密)
  • 完整性保護
  • 重放保護
  • 強大的防複製保護,例如通過盲目複製感測器的程式碼和數據,或對感測器或使用它的東西進行逆向工程,這仍然是可能的。

引用自:https://crypto.stackexchange.com/questions/99897