【发布时间】:2010-11-25 19:53:46
【问题描述】:
目前我正在做一个嵌入式项目。客户端是一个 8 位的 MCU,服务器端是计算机。
作为目标的一部分,我想尽量减少人们复制我们产品的机会。在初始化阶段,服务器将其序列号发送给客户端,客户端对其序列号进行一些简单的计算,然后将结果发送回服务器。如果匹配客户端是真实的,服务器将结果检查为预先计算的硬编码值。
问题是发送回服务器的计算序列号始终是固定的。任何山寨公司都可以用逻辑分析仪轻松搞定。我想让传输的序列号不时看起来是随机位,但仍然能够解密回其原始值。 A good example using AES encryption(请注意,每次按下加密按钮时,都会生成看似随机的文本,但当你解密它时,它会恢复为原始文本。)
由于 8 位 MCU 中的 ROM/RAM 和处理功率限制,我无法在其中安装完整的 AES 例程,因此 AES 没有解决方案。是否有一种简单高效的算法来随机传输?
【问题讨论】:
-
客户端(8bits MCU)端使用 C 语言编码,提供数学库和真随机数生成器 (TRNG)。
标签: authentication encryption microcontroller