1、密码学
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段,密码学是研究编制密码和破译密码的技术科学。
密码学是保证信息安全的一种必要核心手段,使用密码来完成数据加密、消息认证和数字签名等方式实现通信传输过程中数据的机密性、完整性和不可否认性,从而保证信息安全交互。在应用上,密码学主要的应用主要有数据的安全存储和安全传输、数字签名与消息认证等。
密码算法是密码学的核心,主要分为对称、非对称、密码杂凑(哈希算法)等三大类算法。我国从上世纪 90 年代后期开始逐渐加大了对密码技术的自研和应用,并形成了 SM1、SM2、SM9、ZUC 等一些列国密算法,其中 SM2、ZUC 已成为 ISO/IEC 国际标准。
2、安全芯片
安全芯片是一种内部集成了密码算法并具备物理防攻击设计的集成电路,基于其独立的操作系统、CPU、内存及存储单元,与外部设备系统、应用环境物理隔离,通过内部硬件电路和操作系统实现密码算法、认证和保密体系、物理噪声源及自身高安全防护体系,对外提供数字签名、数据加/解密、密钥管理等基础密码功能,支撑实现身份识别、密钥生成、安全存储、数据保护等安全服务。
3、安全芯片操作系统
芯片操作系统(Chip Operating System,简称 COS)是运行在芯片中的核心管理程序,对芯片资源进行管理和对芯片安全提供保障,其主要任务是控制数据输入和输出、控制命令的执行、管理文件、维护内存空间、管理和执行加密算法和执行应用代码。芯片操作系统跟随安全芯片工艺、密码学、软硬件安全防护、应用适配性等技术进步不断演进发展,在安全性、功能性、通用性、高效性等方面持续迭代,在数据安全领域发挥了重要核心作用。
a.本地式芯片操作系统
本地式芯片操作系统底层架构(NativeCOS)是一种封闭式的片内操作系统,基于芯片底层接口直接开发操作系统,支持单一应用程序的功能实现,系统开发难度相对较低,是目前普通智能卡和智能硬件中最为普遍的操作系统。由于不支持多应用程序,导致芯片可复用性差,缺乏复杂场景下的应用支持能力。
b.开放式芯片操作系统
开放式芯片操作系统(开放平台 COS)是一种基于统一架构研发的、可支持二次开发、多应用管理和动态下载等功能的操作系统,具有研发效率高、功能灵活丰富等特性,底层架构是在芯片硬件驱动之上研发传输协议和管理功能、文件管理功能、安全体系功能,在中间层实现虚拟机、运行时环境和应用编程接口,在此之上实现多应用命令解释功能。
相比与本地式芯片操作系统,开发式芯片操作系统按层次进行划分,与底层硬件相关属性分离通过调用API就可以实现相应功能。在编程语言上,开放式芯片操作系统使用面向对象语言(如 JAVA),进行开发和实现,具备灵活、可扩展、符合标准规范的互联互通性等优点,支持应用预置或者出厂后动态下载安装,保持了上层应用开发者的独立和友好性。
目前,国际市场主流的开放式芯片操作系统是由 SUN Microsystems 公司(2021 年被 Oracle收购)于 1996 年推出的 JavaCard,可向应用开发者提供标准的 API 接口,在其上用高级编程语言编写应用程序,在安全性上具有统一的国际性规范。
JavaCard 的广泛普及加快了应用开发的进度,减少了开发者对具体智能安全芯片底层结构的研究工作,能够以更灵活的方式支持卡片多应用以及卡片发行后的应用添加和删除;不同应用之间具有防火墙,可以通过安全通道的方式实现卡片和终端之间的保密通讯。