信息安全技术智能密码钥匙应用接口规范(GB-T 35291-2017).docx





《信息安全技术智能密码钥匙应用接口规范(GB-T 35291-2017).docx》由会员分享,可在线阅读,更多相关《信息安全技术智能密码钥匙应用接口规范(GB-T 35291-2017).docx(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、GB/T XXXX-XXXXXXXX-XX-XX发布XXXX-XX-XX实施 信息安全技术 智能密码钥匙应用接口规范Information security technology-cryptography token application interface specification(报批稿)本稿完成日期:2016年12月中华人民共和国国家标准GB/T XXXXXXXX ICS 35.040.L 80III目 次前言II引言III1 范围12 规范性引用文件13 术语和定义14 缩略语25 结构模型25.1 层次关系25.2 设备的应用结构26 数据类型定义36.1 算法标识36.2 基本
2、数据类型36.3 常量定义46.4 复合数据类型47 接口函数107.1 设备管理107.2 访问控制137.3 应用管理157.4 文件管理167.5 容器管理187.6 密码服务218 设备的安全要求418.1 设备使用阶段418.2 权限管理418.3 密钥安全要求418.4 设备抗攻击要求42附录A (规范性附录) 错误代码定义和说明43前 言本标准依据GB/T1.1-2009给出的规则起草。请注意本标准的某些内容可能涉及专利。本标准的发布机构不承担识别这些专利的责任。本标准由国家密码管理局提出。本标准由全国信息安全标准化委员会(SAC/TC260)归口。本标准起草单位:北京海泰方圆科
3、技股份有限公司、北京握奇智能科技有限公司、北京大明五洲科技有限公司、恒宝股份有限公司、深圳市明华澳汉科技股份有限公司、武汉天喻信息产业股份有限公司、北京飞天诚信科技股份有限公司、华翔腾数码科技有限公司。本标准起草人:刘平、郭宝安、石玉平、柳增寿、胡俊义、管延军、项莉、雷继业、胡鹏、赵再兴、段晓毅、刘玉峰、刘伟丰、陈吉、何永福、李高锋、黄东杰、王建承、汪雪林、赵李明、蒋红宇、王烨。本标准凡涉及密码算法相关内容,按照国家有关法规实施。引 言本标准的目标是为公钥密码基础设施应用体系框架下的智能密码钥匙设备制定统一的应用接口标准,通过该接口调用智能密码钥匙,向上层提供基础密码服务。为该类密码设备的开发
4、、使用及检测提供标准依据和指导,有利于提高该类密码设备的产品化、标准化和系列化水平。本标准未包含标识算法SM9相关的应用接口。信息安全技术 智能密码钥匙应用接口规范1 范围本标准规定了基于PKI密码体制的智能密码钥匙应用接口,描述了密码相关应用接口的函数、数据类型、参数的定义和设备的安全要求。本标准适用于智能密码钥匙产品的研制、使用和检测。2 规范性引用文件下列文件对于本标准的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T AAAA SM2密码算法使用规范GB/T BBBB 密码应用标识规范GM
5、/T 0022 IPSec VPN技术规范GM/T 0024 SSL VPN技术规范3 术语和定义以下术语和定义适用于本文件。3.1容器 container密码设备中用于保存密钥所划分的唯一性存储空间。3.2终端设备 terminal device本标准中将智能密码钥匙统称为终端设备。3.3设备认证 device authentication智能密码钥匙对应用程序的认证。3.4设备认证密钥 device authentication key用于设备认证的密钥。3.5设备标签 label设备的别名,可以由用户进行设定并存储于设备内部。4 缩略语下列缩略语适用于本文件。API应用编程接口(Appl
6、ication Programming Interface)PKI公钥基础设施(Public Key Infrastructure)PKCS#1公钥密码使用标准系列规范中的第1部分,定义RSA公开密钥算法加密和签名机制(the Public-Key Cryptography Standard Part 1)PKCS#5公钥密码使用标准系列规范中的第5部分,描述一种利用从口令派生出来的安全密钥加密字符串的方法(the Public-Key Cryptography Standard Part 5)PIN个人身份识别码(Personal Identification Number)MAC 消息鉴别
7、码(Message Authentication Code)5 结构模型5.1 层次关系智能密码钥匙应用接口位于智能密码钥匙应用程序与设备驱动程序之间,如图1所示。智能密码钥匙应用程序智能密码钥匙应用接口智能密码钥匙设备驱动程序设备1设备2设备m图1接口在应用层次关系中的位置5.2 设备的应用结构一个设备中存在设备认证密钥和多个应用,应用之间相互独立。设备的逻辑结构如图2所示。设备认证密钥应用1应用2应用n图2 设备逻辑结构应用由管理员PIN、用户PIN、文件和容器组成,可以存在多个文件和多个容器。每个应用维护各自的与管理员PIN和用户PIN相关的权限状态。一个应用的逻辑结构如图3所示。管理员
8、PIN用户PIN文件1文件2文件m容器1 加密公钥加密私钥签名公钥签名私钥会话密钥1会话密钥2会话密钥k 容器n 加密公钥加密私钥签名公钥签名私钥会话密钥1会话密钥2会话密钥i图3 应用逻辑结构图容器中存放加密密钥对、签名密钥对和会话密钥。其中加密密钥对用于保护会话密钥,签名密钥对用于数字签名和验证,会话密钥用于数据加解密和MAC运算。容器中也可以存放与加密密钥对对应的加密数字证书和与签名密钥对对应的签名数字证书。其中,签名密钥对由内部产生,加密密钥对由外部产生并安全导入,会话密钥可由内部产生或者由外部产生并安全导入。6 数据类型定义6.1 算法标识本标准中使用的算法其标识定义参见GB/T B
9、BBB。6.2 基本数据类型本标准中的字节数组均为高位字节在前(Big-Endian)方式存储和交换。基本数据类型定义如表1所示:表1 基本数据类型类型名称描述定义INT8有符号8位整数INT16有符号16位整数INT32有符号32位整数UINT8无符号8位整数UINT16无符号16位整数UINT32无符号32位整数BOOL布尔类型,取值为TRUE或FALSEBYTE字节类型,无符号8位整数typedef UINT8 BYTECHAR字符类型,无符号8位整数typedef UINT8 CHARSHORT短整数,有符号16位typedef INT16 SHORTUSHORT无符号16位整数typ
10、edef UINT16 USHORTLONG 长整数,有符号32位整数typedef INT32 LONGULONG长整数,无符号32位整数typedef UINT32 ULONGUINT无符号32位整数typedef UINT32 UINTWORD字类型,无符号16位整数typedef UINT16 WORDDWORD双字类型,无符号32位整数typedef UINT32 DWORDFLAGS标志类型,无符号32位整数typedef UINT32 FLAGSLPSTR8位字符串指针,按照UTF8格式存储及交换typedef CHAR * LPSTRHANDLE 句柄,指向任意数据对象的起始地
11、址typedef void * HANDLEDEVHANDLE设备句柄typedef HANDLE DEVHANDLEHAPPLICATION应用句柄typedef HANDLE HAPPLICATIONHCONTAINER容器句柄typedef HANDLE HCONTAINER6.3 常量定义数据常量标识定义了在规范中用到的常量的取值。数据常量标识的定义如表2所示。表2 常量定义常量名取值描述TRUE0x00000001布尔值为真FALSE0x00000000布尔值为假DEVAPI_stdcall_stdcall函数调用方式ADMIN_TYPE0管理员PIN类型USER_TYPE1用户PI
12、N类型6.4 复合数据类型6.4.1 版本a) 类型定义typedef struct Struct_VersionBYTE major;BYTE minor;VERSION;b) 数据项描述参见表3:表3 版本定义数据项类型意义备注majorBYTE主版本号主版本号和次版本号以“.”分隔,例如 Version 1.0,主版本号为1,次版本号为0;Version 2.10,主版本号为2,次版本号为10。minorBYTE次版本号6.4.2 设备信息a) 类型定义typedef struct Struct_DEVINFOVERSIONVersion;CHARManufacturer64;CHARI
13、ssuer64;CHARLabel32;CHARSerialNumber32;VERSIONHWVersion;VERSIONFirmwareVersion;ULONGAlgSymCap;ULONGAlgAsymCap;ULONGAlgHashCap;ULONGDevAuthAlgId;ULONGTotalSpace;ULONGFreeSpace;ULONGMaxECCBufferSize;ULONGMaxBufferSize;BYTE Reserved64; DEVINFO_SKF,*PDEVINFO_SKF;b) 数据项描述参见表4:表4 设备信息描述数据项类型意义备注VersionVER
14、SION版本号数据结构版本号,本结构的版本号为1.0ManufacturerCHAR数组设备厂商信息以0为结束符的ASCII字符串IssuerCHAR数组发行厂商信息以0为结束符的ASCII字符串LabelCHAR数组设备标签以0为结束符的ASCII字符串SerialNumberCHAR数组序列号以0为结束符的ASCII字符串HWVersionVERSION设备硬件版本FirmwareVersionVERSION设备本身固件版本AlgSymCapULONG分组密码算法标识AlgAsymCapULONG非对称密码算法标识AlgHashCapULONG密码杂凑算法标识DevAuthAlgIdULO
15、NG设备认证使用的分组密码算法标识TotalSpaceULONG设备总空间大小FreeSpaceULONG用户可用空间大小MaxECCBufferSizeULONG能够处理的ECC加密数据大小MaxBufferSizeULONG能够处理的分组运算和杂凑运算的数据大小ReservedBYTE保留扩展6.4.3 RSA公钥数据结构a) 类型定义typedef struct Struct_RSAPUBLICKEYBLOBULONGAlgID;ULONGBitLen;BYTEModulusMAX_RSA_MODULUS_LEN;BYTEPublicExponentMAX_RSA_EXPONENT_LE
16、N;RSAPUBLICKEYBLOB, *PRSAPUBLICKEYBLOB;MAX_RSA_MODULUS_LEN为算法模数的最大长度;MAX_RSA_EXPONENT_LEN为算法指数的最大长度。b) 数据项描述参见表5:表5 RSA公钥数据结构数据项类型意义备注AlgIDULONG算法标识号BitLenULONG模数的实际位长度必须是8的倍数ModulusBYTE数组模数n = p * q实际长度为BitLen/8字节#define MAX_RSA_MODULUS_LEN 256#define MAX_RSA_EXPONENT_LEN 4PublicExponentBYTE数组公开密钥e
17、一般为000100016.4.4 RSA私钥数据结构a) 类型定义typedef struct Struct_RSAPRIVATEKEYBLOBULONGAlgID;ULONGBitLen;BYTEModulusMAX_RSA_MODULUS_LEN;BYTEPublicExponentMAX_RSA_EXPONENT_LEN;BYTEPrivateExponentMAX_RSA_MODULUS_LEN;BYTEPrime1MAX_RSA_MODULUS_LEN/2;BYTEPrime2MAX_RSA_MODULUS_LEN/2;BYTEPrime1ExponentMAX_RSA_MODULU
18、S_LEN/2;BYTEPrime2ExponentMAX_RSA_MODULUS_LEN/2;BYTECoefficientMAX_RSA_MODULUS_LEN/2;RSAPRIVATEKEYBLOB, *PRSAPRIVATEKEYBLOB;MAX_RSA_MODULUS_LEN为RSA算法模数的最大长度;b) 数据项描述参见表6:表6 RSA私钥数据结构数据项类型意义备注AlgIDULONG算法标识号BitLenULONG模数的实际位长度必须是8的倍数ModulusBYTE数组模数n = p * q实际长度为BitLen/8字节PublicExponentBYTE数组公开密钥e一般为0
19、0010001PrivateExponentBYTE数组私有密钥d实际长度为BitLen/8字节Prime1BYTE数组素数p实际长度为BitLen/16字节Prime2BYTE数组素数q实际长度为BitLen/16字节Prime1ExponentBYTE数组d mod (p-1)的值实际长度为BitLen/16字节Prime2ExponentBYTE数组d mod (q -1)的值实际长度为BitLen/16字节CoefficientBYTE数组q模p的乘法逆元实际长度为BitLen/16字节6.4.4 ECC公钥数据结构a) 类型定义typedef struct Struct_ECCPUB
20、LICKEYBLOBULONGBitLen;BYTEXCoordinateECC_MAX_XCOORDINATE_BITS_LEN/8;BYTEYCoordinateECC_MAX_YCOORDINATE_BITS_LEN/8;ECCPUBLICKEYBLOB, *PECCPUBLICKEYBLOB;ECC_MAX_XCOORDINATE_LEN为ECC算法X坐标的最大长度;ECC_MAX_YCOORDINATE_LEN为ECC算法Y坐标的最大长度。b) 数据项描述参见表7:表7 ECC公钥数据结构数据项类型意义备注BitLenULONG模数的实际位长度必须是8的倍数XCoordinateBY
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息安全技术智能密码钥匙应用接口规范GB-T 35291-2017 信息 安全技术 智能 密码 钥匙 应用 接口 规范 GB 35291 2017

限制150内