gpt4 book ai didi

cryptography - Java 卡 : domain parameters for key agreement?

转载 作者:行者123 更新时间:2023-12-04 04:42:29 26 4
gpt4 key购买 nike

使用类 javacard.security.KeyAgreement(Java Card 3.0.1 经典版)可以制定 EC-DH key 协议(protocol)。但是没有定义具体的曲线。据我了解,标准 IEEE P1363 没有指定域参数。那么 Java Card 实现中使用的是什么曲线呢?

最佳答案

这很简单:没有。您必须设置自己的参数。这取决于卡支持哪种参数。 key 大小也是如此。对于 JCOP(在具有非对称协处理器的芯片上),您可以合理地确定例如支持最大 key 大小为 320 位的 F(p) 上的曲线。

因此,您应该查看 Java Card 运行时环境的用户手册(或任何其他手册)支持哪些曲线。之后,您需要自己为 ECPublicKey 设置域参数值。使用各种 setter (除了 setW 之外的所有设置),然后生成(临时) key 对并执行 ECDH key 协商。显然,您也可以设置所有参数,包括公钥/私钥值,而不是生成新的 key 对。

对于 JCOP,您可能需要将域参数复制到 ECPrivateKey以及在生成 key 对之前。

在 3.0.1 中,您只能选择使私钥 transient ,这意味着所有域参数也需要存储在 RAM 中。公钥必须在永久存储器(EEPROM 或闪存)中。在 3.0.5 中,可以在 EEPROM/flash 中创建单独的域参数,然后使用 KeyBuilder.buildKeyWithSharedDomain 创建 key 方法。这允许参数保留在 EEPROM 中,而实际 key 可以存储在( transient )存储器中。

您可以查看您的用户手册以查看 ROM 中是否存储了任何曲线。但是域参数占用了相当多的空间,所以这不太可能。我个人最喜欢 BrainpoolP256r1 等 Brainpool 曲线,但也可以使用 P-256 等 NIST 曲线。充气城堡(核心)内部有一大堆曲线。

关于cryptography - Java 卡 : domain parameters for key agreement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32848737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com