中文

面向 JavaCard 的低层密码学原语

密码学与安全 2018-10-04 v1 软件工程

摘要

JavaCard 是一个多应用安全平台,已部署于超过两百亿张智能卡,应用于从安全支付到电信等领域。虽然该平台在成熟商业用例(如电信网络中的 SIM 卡)中颇受青睐,但它在以下方面采用率明显偏低:1)需要近期标准化密码算法的应用场景,2)研究项目,以及 3)开源倡议。我们将此归因于对低层密码学原语(如椭圆曲线运算)的受限访问以及必要数据类型(如整数)的缺失。尽管底层硬件具备这些能力,JavaCard API 并未提供相应功能的调用接口。迄今为止,唯一的可用变通方案是附带极严格保密协议的厂商专有 API。本文中,我们引入一种从高层运算高效导出必要数据类型与低层密码学原语的方法论。我们的技术非常适用于资源受限平台,能最优利用底层硬件,同时占用极小内存。我们还引入了 JCMathLib,据我们所知,这是首个不依赖专有 API 的 JavaCard 低层密码运算通用库。无任何披露限制,JCMathLib 支持开放代码共享、研究原型发布以及公共和第三方代码审计。

关键词

引用

@article{arxiv.1810.01662,
  title  = {Towards Low-level Cryptographic Primitives for JavaCards},
  author = {Vasilios Mavroudis and Petr Svenda},
  journal= {arXiv preprint arXiv:1810.01662},
  year   = {2018}
}