您知道哪种易于使用的嵌入式设备认证算法?

时间:2012-10-12 09:48:43

标签: authentication cryptography embedded

我有一个代码大小有限的嵌入式设备(E)。它使用UART(USB,串行,...)与主机处理器(H)通信。我需要实现一个简单的主机处理器验证来解锁功能是我的嵌入式设备。

重要的问题是可以嗅探USB /串行/ UART,因此通道不安全。

用法应如下: 在制造过程中我们生成了一对钥匙Ke和Kh。 E商店Ke E生成N个随机字节R,用密钥Ke将R加密成秘密S并发送给H. H应该使用Kh来揭示R来揭示R. H将R发送给E并且E解锁某些功能

所以,

S = u(R, Ke)
R = v(S, Kh)

其中u()v()是一些加密函数(可能是u = v,但u必须易于在嵌入式设备中实现小型代码空间。

最好找一个alog,允许有多个Kh用于同一个Ke,以便将它们提供给不同的用户。但这是可选的。

如上所述,频道不安全,所以我们不希望USB(带有USB嗅探器)的邪恶只是从R和S显示Ke或Kh(或从S生成R的方式)

所以,XOR不起作用;)

请提出一些建议

3 个答案:

答案 0 :(得分:0)

您可以查看CHAP,PPP支持的身份验证协议之一。 Check out Wikipedia's page about CHAP.

答案 1 :(得分:0)

您的设备可以使用一些轻量级加密算法(例如RC5)为处理器提供一些nonce并验证答案为加密nonce吗?这还可以帮助您在设备和处理器之间建立安全通道。例如,答案可以是RC5_CBC( CONCAT(key_for_secure_channel, nonce) )。注意:必须在结尾处写入nonce,因此新的密钥完整性将由他们验证。

答案 2 :(得分:0)

你需要多少次这样做,每对K_h和K_e是唯一的?最简单的方法是在设备和主机上生成随机的预共享密钥(在制造期间),然后将其用作一次性密码。

一次性打击垫的基本思想是你接受你的信息并且XOR带有秘密。只要你的秘密与你的信息一样长,而你只做一次,那么你就没事了。在你的频道上嗅探的人不应该弄清楚消息是什么,因为他们也不知道秘密是什么。当然,当你发送解密的回复时,有人在频道上嗅探就能解密所有内容。