我是一个全新的智能卡编程,并有一个特定的应用程序,我想开发。
我希望使用联系人较少的智能卡,并开发具有以下功能的应用程序:
我买了一些基本的硬件来启动这个项目,但我不完全确定我购买的硬件是否与我想要的应用程序兼容。
我给读者/作家买了一个: ACR1251
对于接触较少的智能卡,我购买了这种类型的卡:复旦08 M1S50和FM1108芯片。
在阅读了智能卡编程的文档之后,我对智能卡可以支持什么感到困惑。据我所知,智能卡的操作系统是由制造商定义的,不能更改或扩展。也不能添加另一个操作系统。操作系统还定义了卡支持哪些APDU命令。因此,我的问题是,我所要求的功能是否可以用我目前的硬件实现?
如果没有,我会非常感激的提示,什么样的智能卡将能够支持我所要求的功能。当我自己试图找到答案时,我发现JavaCards支持椭圆曲线密码学。如果我当前的智能卡不支持我所要求的功能,那么Java是否是允许我自己定义椭圆曲线的好选择呢?
任何其他我能找到有用的提示,如要查看的特定APDU命令或其他有用的开发技巧,将不胜感激!
提前谢谢你。
发布于 2017-01-31 22:05:10
如果您想对卡片进行编程,我强烈建议您使用Java卡兼容卡。确保它具有所需的ECC兼容性。一般来说,你必须在F(p)上使用曲线,但这可能是你想要的。
如果需要对大整数或ECC操作的低级别访问,则可能需要考虑其他智能卡解决方案;Java card提供了一个相对较高级别的接口(可能具有特定于实现的功能)。您需要一个智能卡/处理器卡,具有ECC功能的协处理器和足够的内存,当然,还需要一个运行时和API,具有足够的文档和开发环境。
您最好生成卡上的公钥/私钥对,然后导出公钥。当然,您或签名的任何接收方也必须信任公钥。
你所拥有的读卡器可以用于非接触式智能卡。你目前拥有的似乎是一个所谓的记忆卡,而那些不能编程。您可能只是能够存储一些字节(或多或少是安全的)。
发布于 2017-02-01 09:06:16
你提到的复旦牌似乎是1 kByte MIFARE经典卡。这不是智能卡,但正如Maarten指出的,这是一种非接触式存储卡。与椭圆曲线密码相比,它绝对是性能谱的另一端,实际上它只使用一些弱的、破碎的对称密码。
Thera也是非Java智能卡,它不能编程,但能够生成和应用RSA和椭圆曲线密钥。
https://stackoverflow.com/questions/41968152
复制相似问题