首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过CAN-FD传输RSA加密和签名的消息,如何处理消息长度?

通过CAN-FD传输RSA加密和签名的消息,如何处理消息长度?
EN

Security用户
提问于 2020-05-24 14:03:38
回答 2查看 91关注 0票数 0

正如标题中所说的,我必须用RSA加密一条消息,生成一个签名,并通过CAN传输所有信息(假设密钥已经交换)。问题是,一个CAN-FD帧支持总共64字节的有效负载,但是在加密(使用2048位密钥)和签名之后,我会有多少字节呢?这取决于要传输的消息长度吗?

EN

回答 2

Security用户

回答已采纳

发布于 2020-05-24 14:21:31

使用RSA加密消息本身是错误的做法。你应该使用混合加密。

使用接收方的长期RSA密钥进行加密是错误的做法,因为它不提供前向保密。泄漏长期密钥允许对所有过去的消息进行追溯解密。这在上世纪90年代被认为是可以接受的,但今天是不允许的。在新协议中,您必须使用Diffie (通常是现在的X25519)来建立随机的每个会话或每个消息密钥,这些密钥本身没有使用您的长期密钥进行加密。长期标识密钥只应用于身份验证。

首先,选择要用于对称部件的AEAD模式。

AES-GCM很受欢迎。AES-EAX是谷歌优先考虑的硬件,有AES电路.

如果您的硬件没有AES硬件电路,则建议使用ChaCha20-Poly1305。我会使用XChacha20-Poly1305 (扩展的nonce版本),因为这样我就不需要担心现在的重用和不安全的软件AES了。

如果您不能使用这些,您可以使用AES-CTR与HMAC-SHA2,与MAC覆盖的现在(如果你使用CTR与现在和计数器,而不仅仅是计数器),在加密-然后-MAC,MAC-然后-解密模式。这也是安全的。

带有随机IV和HMAC-SHA2的AES-CBC也是安全的,MAC覆盖IV,并再次以加密-然后-MAC,MAC-然后解密模式。这是比较慢的加密,但你可能不在乎。

在您有了AEAD模式之后,您将查看加密消息所需的随机字节数。生成那么多随机字节,并使用它们加密明文。你需要把密文,现在和MAC发送到另一边。您使用RSA加密随机字节(RSA PKCS#1 v1.5是错误的)。您可以使用RSA签署整个项目(RSA PKCS#1 v1.5是不好的)。

您发送消息本身的密文。如果您选择CBC,您的消息将被填充到16个字节。否则,就没有垫子了。

你需要发送nonce或IV,所以添加这个。大小取决于AEAD模式。

你需要发送MAC,所以加上这个。大小取决于AEAD模式。

随机字节的RSA-2048加密是256字节,不管消息大小如何.

整个事件的RSA-2048签名是256字节,而不管消息大小如何。

使用X25519和Ed25519签名会产生比RSA-2048短的消息。

如果使用噪声框架,则不需要Ed25519代码,它使用长期X25519密钥和HMAC进行身份验证。

将所有这些原语结合到一个协议中可能是不安全的,您最好使用Google或level或其他一些高级别的抗误用API。

票数 0
EN

Security用户

发布于 2020-05-24 14:19:42

最后找到了,为什么要花这么长时间:加密后的2048位,因为不依赖于消息的长度来加密,也不依赖256字节的签名。所以512个总字节在8个不同的64字节可以FD帧传输.

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/232128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档