首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入智能卡私钥的数字签名

插入智能卡私钥的数字签名
EN

Stack Overflow用户
提问于 2017-01-31 21:51:13
回答 2查看 695关注 0票数 1

我是一个全新的智能卡编程,并有一个特定的应用程序,我想开发。

我希望使用联系人较少的智能卡,并开发具有以下功能的应用程序:

  1. 我想写一个私钥给联系少的智能卡,那应该是不可能的。
  2. 我希望能够将输入发送到智能卡,然后使用存储在智能卡上的私钥生成数字签名,并将输入发送到智能卡。然后将数字签名的结果作为输出发送。
  3. 对于数字签名算法(ECDSA),我希望能够定义或写入到智能卡上的椭圆曲线。

我买了一些基本的硬件来启动这个项目,但我不完全确定我购买的硬件是否与我想要的应用程序兼容。

我给读者/作家买了一个: ACR1251

对于接触较少的智能卡,我购买了这种类型的卡:复旦08 M1S50和FM1108芯片。

在阅读了智能卡编程的文档之后,我对智能卡可以支持什么感到困惑。据我所知,智能卡的操作系统是由制造商定义的,不能更改或扩展。也不能添加另一个操作系统。操作系统还定义了卡支持哪些APDU命令。因此,我的问题是,我所要求的功能是否可以用我目前的硬件实现?

如果没有,我会非常感激的提示,什么样的智能卡将能够支持我所要求的功能。当我自己试图找到答案时,我发现JavaCards支持椭圆曲线密码学。如果我当前的智能卡不支持我所要求的功能,那么Java是否是允许我自己定义椭圆曲线的好选择呢?

任何其他我能找到有用的提示,如要查看的特定APDU命令或其他有用的开发技巧,将不胜感激!

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-31 22:05:10

如果您想对卡片进行编程,我强烈建议您使用Java卡兼容卡。确保它具有所需的ECC兼容性。一般来说,你必须在F(p)上使用曲线,但这可能是你想要的。

如果需要对大整数或ECC操作的低级别访问,则可能需要考虑其他智能卡解决方案;Java card提供了一个相对较高级别的接口(可能具有特定于实现的功能)。您需要一个智能卡/处理器卡,具有ECC功能的协处理器和足够的内存,当然,还需要一个运行时和API,具有足够的文档和开发环境。

您最好生成卡上的公钥/私钥对,然后导出公钥。当然,您或签名的任何接收方也必须信任公钥。

你所拥有的读卡器可以用于非接触式智能卡。你目前拥有的似乎是一个所谓的记忆卡,而那些不能编程。您可能只是能够存储一些字节(或多或少是安全的)。

票数 2
EN

Stack Overflow用户

发布于 2017-02-01 09:06:16

你提到的复旦牌似乎是1 kByte MIFARE经典卡。这不是智能卡,但正如Maarten指出的,这是一种非接触式存储卡。与椭圆曲线密码相比,它绝对是性能谱的另一端,实际上它只使用一些弱的、破碎的对称密码。

Thera也是非Java智能卡,它不能编程,但能够生成和应用RSA和椭圆曲线密钥。

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

https://stackoverflow.com/questions/41968152

复制
相关文章

相似问题

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