犐犆犛35.040
犔 80
备案号:
中华人民共和国密码行业标准
犌犕/犜 0018—2012
密码设备应用接口规范
犐狀狋犲狉犳犪犮犲狊狆犲犮犻犳犻犮犪狋犻狅狀狊狅犳犮狉狔狆狋狅犵狉犪狆犺狔犱犲狏犻犮犲犪狆狆犾犻犮犪狋犻狅狀
20121122发布
20121122实施
国家密码管理局 发 布
2
1
0
2
—
8
1
0
0
犜
/
犕
犌
中 华 人 民 共 和 国 密 码
行 业 标 准
密码设备应用接口规范
GM/T0018—2012
中 国 标 准 出 版 社 出 版 发 行
北京市朝阳区和平里西街甲2号(100013)
北京市西城区三里河北街16号(100045)
网址 www.spc.net.cn
总编室:(010)64275323 发行中心:(010)51780235
读者服务部:(010)68523946
中国标准出版社秦皇岛印刷厂印刷
各地新华书店经销
开本 880×1230 1/16 印张 0.00 字数 00 千字
2013年 月第一版 2013年 月第一次印刷
书号:155066·20019 定价 00.00 元
如有印装差错 由本社发行中心调换
版权专有 侵权必究
举报电话:(010)68510107
犌犕/犜 0018—2012
目 次
前言 ……………………………………………………………………………………………………………
引言 ……………………………………………………………………………………………………………
1 范围…………………………………………………………………………………………………………
2 规范性引用文件……………………………………………………………………………………………
3 术语和定义…………………………………………………………………………………………………
4 符号和缩略语………………………………………………………………………………………………
5 算法标识和数据结构………………………………………………………………………………………
5.1 算法标识定义…………………………………………………………………………………………
5.2 设备信息定义…………………………………………………………………………………………
5.3 密钥分类及存储定义…………………………………………………………………………………
5.3.1 设备密钥与用户密钥………………………………………………………………………………
5.3.2 密钥加密密钥………………………………………………………………………………………
5.3.3 会话密钥……………………………………………………………………………………………
5.4 RSA 密钥数据结构定义 ……………………………………………………………………………
5.5 ECC 密钥数据结构定义 ……………………………………………………………………………
5.6 ECC 加密数据结构定义 ……………………………………………………………………………
5.7 ECC 签名数据结构定义 ……………………………………………………………………………
5.8 ECC 加密密钥对保护结构 …………………………………………………………………………
6 设备接口描述………………………………………………………………………………………………
6.1 密码设备应用接口在公钥密码基础设施应用技术体系框架中的位置……………………………
6.2 设备管理类函数………………………………………………………………………………………
6.2.1 打开设备……………………………………………………………………………………………
6.2.2 关闭设备……………………………………………………………………………………………
6.2.3 创建会话……………………………………………………………………………………………
6.2.4 关闭会话……………………………………………………………………………………………
6.2.5 获取设备信息………………………………………………………………………………………
6.2.6 产生随机数…………………………………………………………………………………………
6.2.7 获取私钥使用权限…………………………………………………………………………………
6.2.8 释放私钥使用权限…………………………………………………………………………………
6.3 密钥管理类函数………………………………………………………………………………………
6.3.1 导出 RSA 签名公钥 ………………………………………………………………………………
6.3.2 导出 RSA 加密公钥 ………………………………………………………………………………
6.3.3 产生 RSA 密钥对并输出 …………………………………………………………………………
6.3.4 生成会话密钥并用内部 RSA 公钥加密输出 ……………………………………………………
6.3.5 生成会话密钥并用外部 RSA 公钥加密输出 ……………………………………………………
6.3.6 导入会话密钥并用内部 RSA 私钥解密 …………………………………………………………
6.3.7 基于 RSA 算法的数字信封转换 …………………………………………………………………
6.3.8 导出 ECC 签名公钥 ………………………………………………………………………………
Ⅰ
犌犕/犜 0018—2012
6.3.9 导出 ECC 加密公钥 ………………………………………………………………………………
6.3.10 产生 ECC 密钥对并输出 …………………………………………………………………………
6.3.11 生成会话密钥并用内部 ECC 公钥加密输出 ……………………………………………………
6.3.12 生成会话密钥并用外部 ECC 公钥加密输出 ……………………………………………………
6.3.13 导入会话密钥并用内部 ECC 私钥解密 …………………………………………………………
6.3.14 生成密钥协商参数并输出 ………………………………………………………………………
6.3.15 计算会话密钥 ……………………………………………………………………………………
6.3.16 产生协商数据并计算会话密钥 …………………………………………………………………
6.3.17 基于 ECC 算法的数字信封转换 …………………………………………………………………
6.3.18 生成会话密钥并用密钥加密密钥加密输出 ……………………………………………………
6.3.19 导入会话密钥并用密钥加密密钥解密 …………………………………………………………
6.3.20 导入明文会话密钥 ………………………………………………………………………………
6.3.21 销毁会话密钥 ……………………………………………………………………………………
6.4 非对称算法运算类函数………………………………………………………………………………
6.4.1 外部公钥 RSA 运算 ………………………………………………………………………………
6.4.2 外部私钥 RSA 运算 ………………………………………………………………………………
6.4.3 内部公钥 RSA 运算 ………………………………………………………………………………
6.4.4 内部私钥 RSA 运算 ………………………………………………………………………………
6.4.5 外部密钥 ECC 签名 ………………………………………………………………………………
6.4.6 外部密钥 ECC 验证 ………………………………………………………………………………
6.4.7 内部密钥 ECC 签名 ………………………………………………………………………………
6.4.8 内部密钥 ECC 验证 ………………………………………………………………………………
6.4.9 外部密钥 ECC 公钥加密 …………………………………………………………………………
6.4.10 外部密钥 ECC 私钥解密 …………………………………………………………………………
6.5 对称算法运算类函数…………………………………………………………………………………
6.5.1 对称加密……………………………………………………………………………………………
6.5.2 对称解密……………………………………………………………………………………………
6.5.3 计算 MAC …………………………………………………………………………………………
6.6 杂凑运算类函数………………………………………………………………………………………
6.6.1 杂凑运算初始化……………………………………………………………………………………
6.6.2 多包杂凑运算………………………………………………………………………………………
6.6.3 杂凑运算结束………………………………………………………………………………………
6.7 用户文件操作类函数…………………………………………………………………………………
6.7.1 创建文件……………………………………………………………………………………………
6.7.2 读取文件……………………………………………………………………………………………
6.7.3 写文件………………………………………………………………………………………………
6.7.4 删除文件……………………………………………………………………………………………
7 安全要求……………………………………………………………………………………………………
7.1 密钥管理要求…………………………………………………………………………………………
7.2 密码服务要求…………………………………………………………………………………………
7.3 设备状态要求…………………………………………………………………………………………
7.4 其他安全要求…………………………………………………………………………………………
附录 A (规范性附录) 函数返回代码定义 …………………………………………………………………
参考文献 ………………………………………………………………………………………………………
Ⅱ
犌犕/犜 0018—2012
前 言
本标准依据 GB/T1.1—2009给出的规则起草。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。
本标准中的附录 A 为规范性附录。
本标准由国家密码管理局提出并归口。
本标准起草单位:卫士通信息产业股份有限公司、无锡江南信 息 安 全 工 程 技 术 中 心、上 海 格 尔 软 件
股份有限公司、北京数字认证股份有限公司、兴唐通信科技股份有限公 司、山 东 得 安 计 算 机 技 术 有 限 公
司、海泰方圆科技有限公司。
本标准主要起草人:刘平、李元正、徐强、谭武征、李述胜、李玉峰、高志权、柳增寿。
Ⅲ
犌犕/犜 0018—2012
引 言
本标准的目标是为公钥密码基 础 设 施 应 用 体 系 框 架 下 的 服 务 类 密 码 设 备 制 定 统 一 的 应 用 接 口 标
准,通过该接口调用密码设备,向上层提供基础密码服 务。为该类密 码 设 备 的 开 发、使 用 及 检 测 提 供 标
准依据和指导,有利于提高该类密码设备的产品化、标准化和系列化水平。
本标准凡涉及密码算法相关内容,按国家有关法规实施。
Ⅳ
犌犕/犜 0018—2012
密码设备应用接口规范
1 范围
本标准规定了公钥密码基础设施应用技术体系下服务类密码设备的应用接口标准。
本标准适用于服务类密码设备的研制、使用,以及基于该类密 码 设 备 的 应 用 开 发,也 可 用 于 指 导 该
类密码设备的检测。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引 用 文 件,仅 注 日 期 的 版 本 适 用 于 本 文
件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GM/T0006 密码应用标识规范
GM/T AAAASM2 密码算法使用规范
3 术语和定义
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
以下术语和定义适用于本标准。
算法标识 犪犾犵狅狉犻狋犺犿犻犱犲狀狋犻犳犻犲狉
用于对密码算法进行唯一标识的符号。
非对称 密 码 算 法/公 钥 密 码 算 法 犪狊狔犿犿犲狋狉犻犮犮狉狔狆狋狅犵狉犪狆犺犻犮犪犾犵狅狉犻狋犺犿/狆狌犫犾犻犮犽犲狔犮狉狔狆狋狅犵狉犪狆犺犻犮犪犾犵狅
加解密使用不同密钥的密码算法。
狉犻狋犺犿
解密 犱犲犮犻狆犺犲狉犿犲狀狋/犱犲犮狉狔狆狋犻狅狀
加密过程对应的逆过程。
设备密钥 犱犲狏犻犮犲犽犲狔狆犪犻狉
存储在设备内部的用于设备管理的非对称密钥对,包含签名密钥对和加密密钥对。
加密 犲狀犮犻狆犺犲狉犿犲狀狋/犲狀犮狉狔狆狋犻狅狀
对数据进行密码变换以产生密文的过程。
密钥加密密钥 犽犲狔犲狀犮狉狔狆狋犻狅狀犽犲狔;犓犈犓
对密钥进行加密保护的密钥。
公钥基础设施 狆狌犫犾犻犮犽犲狔犻狀犳狉犪狊狋狉狌犮狋狌狉犲;犘犓犐
用公钥密码技术建立的普遍适用的基础设施,为用户提供证书管理和密钥管理等安全服务。
私钥访问控制码 狆狉犻狏犪狋犲犽犲狔犪犮犮犲狊狊狆犪狊狊狑狅狉犱
用于验证私钥使用权限的口令字。
1
犌犕/犜 0018—2012
3.9
对称密码技术/对称密码体制 狊狔犿犿犲狋狉犻犮犮狉狔狆狋狅犵狉犪狆犺犻犮狋犲犮犺狀犻狇狌犲
原发者和接收者均采用同一秘密密钥进行变换的密码技术(体 制)。其 中,加 密 密 钥 与 解 密 密 钥 相
同,或者一个密钥可以从另一个密钥导出的密码体制。
3.10
会话密钥 狊犲狊狊犻狅狀犽犲狔
处于层次化密钥结构中的最低层,仅在一次会话中使用的密钥。
3.11
用户密钥 狌狊犲狉犽犲狔
存储在设备内部的用于应用密码运算的非对称密钥,包含签名密钥对和加密密钥对。
4 符号和缩略语
下列缩略语适用于本部分:
ECC 椭圆曲线算法(EllipticCurveCryptography)
IPK
内部加密公钥(InternalPublicKey)
内部加密私钥(InternalPrivateKey)
ISK
EPK 外部加密公钥(ExternalPublicKey)
KEK 密钥加密密钥(KeyEncryptKey)
5 算法标识和数据结构
5.1 算法标识定义
本标准中所使用的算法其算法标识见 GM/T0006。
5.2 设备信息定义
字段名称
数据长度(字节)
含 义
IssuerName
DeviceName
DeviceSerial
DeviceVersion
StandardVersion
AsymAlgAbility
SymAlgAbility
HashAlgAbility
BufferSize
2
40
16
16
4
4
8
4
4
4
设备生产厂商名称
设备型号
设备编号,包 含:日 期 (8 字 符)、批 次 号 (3 字 符)、流 水 号
(5字符)
密码设备内部软件的版本号
密码设备支持的接口规范版本号
前4字节表示支持的 算 法,表 示 方 法 为 非 对 称 算 法 标 识
按位或的结果;后4字节表示算法的最大模长,表示方法
为支持的模长按位或的结果
所有支持的对称算法,表 示 方 法 为 对 称 算 法 标 识 按 位 或
运算结果
所有支持的杂凑算法,表 示 方 法 为 杂 凑 算 法 标 识 按 位 或
运算结果
支持的最大文件存储空间(单位字节)