(HW)ECDH(Curve25519)来自SDK vs.(外部)libsodium:共享秘密问题

⚠️
嗨,那里..感谢您参加论坛。激动人心的消息!现在,我们正在转到我们的新论坛平台,该平台将提供更好的功能,并包含在主话网站中。所有帖子和帐户都已迁移。我们现在仅在新论坛上接受流量 - 请在https://www.dialog-spoomendonductor.com/support。我们将在未来几天修复错误 /优化搜索和标记。
11帖子 / 0新
最后一篇文章
nhan.ngodinh
离线
最后一次露面:2年1个月前
加入:2017-03-21 10:20
(HW)ECDH(Curve25519)来自SDK vs.(外部)libsodium:共享秘密问题

你好,
我正在开发一个ECDH-Curve25519加密应用程序,该应用程序应该基于您的开发板上的HW Accellerator。
目前,我可以通过从您的指南中使用(da1468x_da15xxx_sdk_1.0.14.14.1081/doc/doc/html/group ___________c_d_h.html)来生成[共享秘密]。
检查标志和资源缓冲区似乎还可以!

该“共享的秘密”应与另一个使用“ libodium库”(同样,相同的ECDH-Curve)在另一个外部设备(考虑Linux-PC)上生成的另一个生成的曲线25519。

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

您是否有任何想法,甚至遇到了这样的问题?
您是否曾经测试过该算法与其他共享秘密生成器的兼容性?

先感谢您

[sdk-used] :: da1468x_da15xxx_sdk_1.0.14.1081
[PC-Linux] :: libsodium+linux ubuntu 18

设备:
pm_dialog
离线
最后一次露面:1个月1天前
职员
加入:2018-02-08 11:03
嗨,nhan.ngodinh,

嗨,nhan.ngodinh,

让我检查您的问题,一旦我有答案,我就会尽快与您联系。

谢谢,pm_dialog

nhan.ngodinh
离线
最后一次露面:2年1个月前
加入:2017-03-21 10:20
你好,

你好,
为了今天给出一些讨论的观点,我用“测试向量”测试了您的[SDK代码]https://tools.ietf.org/html/rfc7748#page-14]
结果是对预期的[共享秘密]的错误尊重。
取而代之的是,使用[Ubuntu+libsodium]在[Linux-PC]上进行相同的测试,它正在返回正确的[共享秘密]。

现在,如果我没有犯任何错误,我想您可能不遵守(非正式)标准RFC 7748。

谢谢,nn

pm_dialog
离线
最后一次露面:1个月1天前
职员
加入:2018-02-08 11:03
嗨,nhan.ngodinh,

嗨,nhan.ngodinh,

您能否澄清[SDK代码]以及您正在使用哪个测试向量?您不应该取出不同的结果,但我会尝试复制您的问题。另外,您使用的任何输入/代码段都将非常有帮助。

谢谢,pm_dialog

nhan.ngodinh
离线
最后一次露面:2年1个月前
加入:2017-03-21 10:20
你好,

你好,
正如我在以前的评论中指定的那样,测试向量是从[https://tools.ietf.org/html/rfc7748#page-14]- > PAG 13。
为简单起见,我附着在钥匙下方,共享秘密:

#爱丽丝的私钥,答:
77076D0A7318A57D3C16C17251B26645DF4C2F87EBC0992AB177FBA51DB92C2A

#爱丽丝的公钥,x25519(a,9):
8520F0098930A754748B7DDCB43EF75A0DBF3A0D26381AF4EBA4EBA4A98EAA9B4E6A

#鲍勃的公钥,x25519(b,9):
DE9EDB7D7B7DC1B4D35B61C2ECE435373F8343C85B78674DADFC7E146F882B4F

#他们分享的秘密,k:
4A5D9D5BA4CE2DE1728E3BF480350F25E07E21C947D19E3376F09B3C1E161742

[SDK代码]:
#参考SRC:
da1468x_da15xxx_sdk_1.0.14.1081/sdk/Interfaces/crypto/src/crypto/crypto_ecdh.c

#代码片段:
/ *强迫仅使用Curve25519到Crypto_ecdh.h */
#define crypto_ecdh_use_only_curve25519(1)

/ *初始化曲线结构 */
initialise_privileged_data crypto_ecdh_context_t c_ctx = crypto_ecdh_init_ctx(crypto_ec_ec_params_curve25519);

/ *将爱丽丝的私钥复制到提交的“ D” */
memcpy(&(c_ctx.d [0]),alice_priv,32);
/ *设置相关标志 */
c_ctx.flags | = crypto_ecdh_ctx_d;
/ *将Alice的Pub键复制到提交的“ X坐标”中,唯一用于Curve25519 */
memcpy(&(c_ctx.ql [0] [0]),alice_pubk,32);
/ *设置相关标志 */
c_ctx.flags | = crypto_ecdh_ctx_ql;
/ *将Bob的Pub键复制到提交的“ X坐标”中,唯一用于Curve25519 */
memcpy(&(c_ctx.qp [0] [0]),bob_pubk,32);
/ *设置相关标志 */
c_ctx.flags | = crypto_ecdh_ctx_qp;

/ *调用Crypto_ecdh_compute以生成共享密钥(此时应该可以的标志还可以) */
crypto_ecdh_compute(&c_ctx,c_ctx_timeout);
/*打印共享的秘密和标志(flags = 15,但共享秘密错误)*/
printf(“共享秘密[flags->%d] \ n”,c_ctx.flags);
for(uint32_t i = 0; i <32; i ++)
printf(“ \”%x \“,”,c_ctx.s [i]);

让我知道您是否需要更多东西。

谢谢,nn

pm_dialog
离线
最后一次露面:1个月1天前
职员
加入:2018-02-08 11:03
hi nhan.ngodinh,

hi nhan.ngodinh,

我将尝试复制您的问题,我会尽快与您联系。

谢谢,pm_dialog

nhan.ngodinh
离线
最后一次露面:2年1个月前
加入:2017-03-21 10:20
你好,

你好,

您有机会查看问题吗?

我需要了解是否继续使用您的SDK“ ECDH-Curve25519”或移至其他解决方案。

请注意,我们承受着一定的压力,最后一篇文章的日期为“ 2019-03-01”。

然后,您非常支持您的支持。

问候

nn

pm_dialog
离线
最后一次露面:1个月1天前
职员
加入:2018-02-08 11:03
嗨,nhan.ngodinh,

嗨,nhan.ngodinh,

对延迟表示歉意,但我在内部驱动了您的问题,因此,当我有团队的任何更新时,我会回到您身边。

谢谢,pm_dialog

pm_dialog
离线
最后一次露面:1个月1天前
职员
加入:2018-02-08 11:03
嗨,nhan.ngodinh,

嗨,nhan.ngodinh,

您能让我知道您正在进行哪个SDK1.0.14.1081的项目?在ble还是在非细节项目中?如果您正在从事一个非BLE项目,我建议您进入BLE项目(例如BLE_ADV项目)并遵循相同的过程。您能在BLE项目中获得正确的结果吗?

谢谢,pm_dialog

nhan.ngodinh
离线
最后一次露面:2年1个月前
加入:2017-03-21 10:20
你好,

你好,

“我建议您进入一个BLE项目(例如BLE_ADV项目)并遵循相同的过程”, 你在开玩笑吧?

只是回顾一下:您不知道该API有什么问题?一个月后...

我们谈论的是网络安全功能,我建议进一步调查问题,以解决您的问题,让我们将其用作常见(且有用的...)API,在任何项目中...

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

非常感谢您的支持

问候

aa

pm_dialog
离线
最后一次露面:1个月1天前
职员
加入:2018-02-08 11:03
嗨,nhan.ngodinh,

嗨,nhan.ngodinh,

我将通过注册的电子邮件地址与您联系。

谢谢,pm_dialog