(HW) ECDH (curve25519) from SDK vs. (external) lib钠:shared secret problem

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
11个帖子/ 0个新帖子
最后发表
nhan.ngodinh
离线
最后看到:1年7个月前
加入:2017-03-21 20
(HW) ECDH (curve25519) from SDK vs. (external) lib钠:shared secret problem

你好,
我正在开发一个ecdh-curve25519加密应用程序,它应该基于我的开发板上的HW加速器。
目前,我能够生成一个[共享的秘密]使用作为从您的指南(DA1468x_DA15xxx_SDK_1.0.14.1081/doc/html/ group_e_c_d_h .html)。
检查标志和资源缓冲区似乎一切OK!

这个“共享的秘密”应该与另一个外部设备(考虑linux-pc)上使用“lib钠库”(同样是相同的ecdh-curve)使用相同的曲线25519生成的秘密共享。

现在,在这一点上发生了一些错误:两个共享的秘密是完全不同的。

你曾经有过这样的想法或经历过这样的问题吗?
你是否测试过该算法与其他共享秘密生成器的兼容性?

提前谢谢你

[SDK-used]:: DA1468x_DA15xxx_SDK_1.0.14.1081
[PC-linux]:: lib钠+linux ubuntu 18

设备:
PM_Dialog
离线
最后看到:1天6小时前
工作人员
加入:2018-02-08 11:03
嗨nhan.ngodinh,

嗨nhan.ngodinh,

让我检查一下您的问题,一旦有了答案我会尽快回复您。

谢谢,PM_Dialog

nhan.ngodinh
离线
最后看到:1年7个月前
加入:2017-03-21 20
你好,

你好,
为了给今天讨论的一些要点,我测试了你的[SDK代码]与“测试向量”从[https://tools.ietf.org/html/rfc7748第14页)
结果是对预期[共享的秘密]的错误尊重。
相反,在[linux-pc]上使用[ubuntu+ lib钠]做同样的测试,它会返回正确的[shared-secret]。

现在,如果我没有犯任何错误,我猜您可能不符合(非正式的)标准RFC 7748。

谢谢,神经网络

PM_Dialog
离线
最后看到:1天6小时前
工作人员
加入:2018-02-08 11:03
嗨nhan.ngodinh,

嗨nhan.ngodinh,

你能澄清一下[SDK代码]和哪个测试向量是你使用的?你不应该采取不同的结果,但我会尽量重复你的问题。此外,您正在使用的任何输入/代码片段都将非常有帮助。

谢谢,PM_Dialog

nhan.ngodinh
离线
最后看到:1年7个月前
加入:2017-03-21 20
你好,

你好,
正如我在前面的注释中指定的,测试向量取自[https://tools.ietf.org/html/rfc7748第14页)- > pag 13。
为了简单起见,我在键和共享秘密下面附加:

Alice的私钥a:
77076 d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a

# Alice的公钥X25519(a, 9):
8520年f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a

# Bob的公钥X25519(b, 9):
de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f

#他们共享的秘密,K:
4 a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742

(SDK代码):
#参考SRC:
DA1468x_DA15xxx_SDK_1.0.14.1081 / sdk /接口/加密/ src / crypto_ecdh.c

#代码片段:
/*强制使用curve25519到crypto_ecdh.h */
#定义CRYPTO_ECDH_USE_ONLY_CURVE25519 (1)

/ /初始化曲线结构
INITIALISED_PRIVILEGED_DATA crypto_ecdh_context_t c_ctx = CRYPTO_ECDH_INIT_CTX(CRYPTO_EC_PARAMS_CURVE25519);

/*将Alice的私钥复制到“d”文件中*/
memcpy (& (c_ctx.d [0]), Alice_priv, 32);
/*设置相应的标志*/
c_ctx。旗帜| = CRYPTO_ECDH_CTX_d;
/*将Alice的酒吧键复制到“X坐标”文件中,这是唯一用于曲线25519的文件*/
memcpy (& (c_ctx.Ql [0] [0]), Alice_pubk, 32);
/*设置相应的标志*/
c_ctx。旗帜| = CRYPTO_ECDH_CTX_Ql;
/*将Bob的酒吧键复制到“X坐标”文件中,这是唯一用于curve25519的文件*/
memcpy (& (c_ctx.Qp [0] [0]), Bob_pubk, 32);
/*设置相应的标志*/
c_ctx。旗帜| = CRYPTO_ECDH_CTX_Qp;

/*调用crypto_ecdh_compute生成共享密钥(此时标志应该ok) */
crypto_ecdh_compute (&c_ctx c_ctx_timeout);
/*打印共享秘密和标志(标志=15,因为它应该,但共享秘密错误)*/
printf("SHARED SECRET [flags->%d]\n", c_ctx.flags);
For (uint32_t I = 0;我< 32;我+ +)
printf (" \ " % x \”、“c_ctx.s[我]);

如果你还需要什么就告诉我。

谢谢,神经网络

PM_Dialog
离线
最后看到:1天6小时前
工作人员
加入:2018-02-08 11:03
嗨nhan.ngodinh,,

嗨nhan.ngodinh,,

我会尝试重复你的问题,我会尽快给你我的反馈。

谢谢,PM_Dialog

nhan.ngodinh
离线
最后看到:1年7个月前
加入:2017-03-21 20
你好,

你好,

你有机会看到这个问题吗?

我需要了解是否继续使用您的SDK“ECDH-curve25519”或移动到另一个解决方案。

请理解,我们有一些压力,最后一个帖子的日期是2019-03-01。

非常感谢你的支持。

问候

神经网络

PM_Dialog
离线
最后看到:1天6小时前
工作人员
加入:2018-02-08 11:03
嗨nhan.ngodinh,

嗨nhan.ngodinh,

抱歉延迟,但我已经在内部推动了您的问题,所以当我从团队得到任何更新时,我会回复您。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:1天6小时前
工作人员
加入:2018-02-08 11:03
嗨nhan.ngodinh,

嗨nhan.ngodinh,

请问你在做的是SDK1.0.14.1081的哪个项目?是BLE项目还是非BLE项目?如果您正在从事一个非BLE项目,我建议您转到BLE项目(例如ble_adv项目),并遵循相同的过程。你能在BLE项目中得到正确的结果吗?

谢谢,PM_Dialog

nhan.ngodinh
离线
最后看到:1年7个月前
加入:2017-03-21 20
你好,

你好,

“我建议你进入BLE项目(例如ble_adv项目),并遵循同样的程序。”你在开玩笑吧?

简单回顾一下:您不知道API的问题是什么?一个月后……

我们正在讨论的是网络安全功能,我建议进一步调查这个问题,以解决您的问题,让我们使用它作为一个常见的(和有用的…)API,在任何项目中…

无论如何,我认为最好暂时不要使用它,直到您提供一个有效的替代方案(或预期的修复方案)。

非常感谢您的支持

问候

aa

PM_Dialog
离线
最后看到:1天6小时前
工作人员
加入:2018-02-08 11:03
嗨nhan.ngodinh,

嗨nhan.ngodinh,

我会用注册的邮箱和你联系。

谢谢,PM_Dialog