gpt4 book ai didi

javacard - Java Card - 将 ec 公钥从 offcard 转移到 java card Applet

转载 作者:行者123 更新时间:2023-12-04 18:22:59 27 4
gpt4 key购买 nike

我正在尝试为 java 卡小程序实现两种方式的身份验证流程。以下是我的方法。

  1. 为卡外应用程序创建 EC(椭圆曲线) key 对。
  2. 将offcard应用程序的公钥存储在java卡中。
  3. 从卡外应用私钥签署输入数据。
  4. 使用存储在 java 卡小程序中的卡外应用程序公钥对其进行验证。

我在第二步挣扎。所有其他的似乎都是微不足道的。我需要找到一种方法将在外部创建的公钥编码为字节数组,然后将该字节数组传输到 java 卡小程序并重建公钥并将其存储在持久内存中。

关于此的任何提示。

最佳答案

使用以下命令数据创建 APDU:

  1. 带有 key 大小(订单 N 的大小)的 short
  2. 将除 G(基点)和 W(公钥)和 H 之外的所有参数作为静态大小的八位字节字符串(或字节数组,如果您习惯使用 Java)发送
    • 如果存在,将初始字节设置为 00
    • 用零字节向左填充,直到获得 key 大小
  3. 将 G 和 W 作为未压缩的点发送
    • 一个字节04
    • 后跟两个坐标,使用上述方法调整大小
    • 长度是以字节为单位的 key 大小的 2 倍,加上 04 指示符的一倍
  4. 可选地以字节形式发送辅助因子 H(但它始终是 01)
  5. 使用set...方法设置 key

很快,给你一个 EC key 。


当然,您也可以解析 PKCS#8 EC key 或为每个字段使用长度指示符,但这种方法可能是最紧凑的方法。

关于javacard - Java Card - 将 ec 公钥从 offcard 转移到 java card Applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733740/

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