1、ICS 35040L 80备案号:271 122010中华人民 共和L口国劳动和劳动安全行业标准LDT 3052009人力资源和社会保障电子认证体系第5部分:证书载体规范Human resources and social security electronic authentication systemPart 5:Specification of digital certificate storage medium200912-14发布 2010-03-01实施中华人民共和国人力资源和社会保障部 发布LDT 3052009目 次前言-1范围2规范性引用文件-3术语和定义4缩略语5证书载体硬
2、件规范51基本技术要求52管理要求53安全机制6证书载体软件规范61应用接口62安装与卸载附录A(资料性附录)证书载体接口函数规范附录B(资料性附录)证书载体外观I11,33345559惦刖 吾LDT 3052009为适应人力资源和社会保障信息化发展要求,满足人力资源和社会保障网络信任体系建设和管理的需要,人力资源和社会保障部组织并制定了LDT 30一2009(人力资源和社会保障电子认证体系。网络信任体系包括电子认证体系、授权管理体系和责任认定体系,本标准主要描述了人力资源和社会保障电子认证体系相关内容,包括以下五个部分:第l部分:框架规范;一一第2部分:电子认证系统技术规范;第3部分:证书及
3、证书撤消列表格式规范;一一第4部分:证书应用管理规范;第5部分:证书载体规范。本部分为I,DT 30一2009的第5部分。本部分主要描述了证书载体的技术指标,包括硬件规范和软件规范,并规定了证书载体的相关接口和外观规范。本部分重点引用了智能Ic卡及智能密码钥匙密码应用接口规范,并在此基础上,扩展了证书载体基本技术要求、证书载体管理要求、软件的安装卸载以及证书载体外观设计要求等相关内容,从满足人力资源社会保障业务需求的角度,对本行业发放的证书载体的软硬件和外观提出规范和要求。本部分由中华人民共和国人力资源和社会保障部信息中心提出并归口。本部分主要起草单位:中华人民共和国人力资源和社会保障部信息中
4、心、上海市人力资源和社会保障局信息中心、北京数字证书认证中心、维豪信息技术有限公司。本部分主要起草人:赵锡铭、戴瑞敏、贾怀斌、翟燕立、李丽虹、吴问滨、黄勇、吕丽娟、许华光、罗震、张加会、靳朝晖、陆春生、李永亮、宋京燕、李冰松、耿建军、杜守国、欧阳晋、林雪焰、李述胜、顾青、宋成。本部分凡涉及密码相关内容,均按国家有关法规实施。1范围人力资源和社会保障电子认证体系第5部分:证书载体规范LDT 3052009LD1、30的本部分描述了在人力资源和社会保障系统中使用的证书载体的各项要求,包括硬件要求、软件要求、管理要求、安全机制以及相关接口标准等内奄。本部分适用于人力资源社会保障证书载体的设计、应用开
5、发、使用和检测。2规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件其最新版本(包括所有的修改单)适用于本文件。GM 0001 2005 证书认证系统密码及其相关安全技术规范信息技术安全技术密码术语(国家密码管理局)智能1c卡及智能密码钥匙密码应用接口规范(国家密码管理局)3术语和定义以下术语和定义适用于本规范。31证书载体certificate entity用于存储密钥和数字证书并具有密码运算功能的载体,包括智能密码钥匙(USBKey)和1c卡等。32容器 container特指密钥容器,是一个用于存放非对称密钥对和证
6、书的逻辑对象。每个用户对应一个密钥容器,与用户相关的非对称密钥对和证书存放于该密钥容器,每个容器中最多可以存放一对加密密钥对和一对签名密钥对以及一张加密证书和一张签名证书。33证书撤消列表certificate revocation listCRL标记一系列不再被证书发布者认为有效的证书的签名列表。34数字证书digital certificate由权威认证机构进行数字签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及一些扩展信息的数字文件。35加密encrypt通过密码算法对数据进行变换来产生密文,以便隐藏数据的信息内容。LDT 305200936解密decrypt与一个可逆的加
7、密过程相对应的反过程。该过程使用适当的密钥,将已加密的文本转换成明文。37数字签名digital signature附加在数据上的签名数据,或是对数据所作的密码变换,用以确认数据来源及其完整性,防止被人(例如接受者)进行伪造。38加密密钥对exchange key pair用来对会话密钥进行加密和解密的公私密钥对,使用加密密钥对的公钥加密会话密钥,加密后的会话密钥传给接收者接收者使用加密密钥对的私钥解密出会话密钥。39密钥交换key exchange通信实体间交换密钥的过程。310消息鉴别码message authentication codeMAC又称消息认证码,是消息鉴别算法的输出。311
8、公钥public key在公钥密码体制中,用户密钥对中公布给其他用户的密钥。312私钥private key在公钥密码体制中,用户密钥对中仅为该用户持有的密钥。313RSA算法rivestshamir-adleman algorithm一种基于大整数因子分解问题的公钥密码算法。314会话密钥session key处于层次化密钥结构中的最低层,仅在一次会话中使用的密钥。315签名密钥对signature key pair用来对消息进行数字签名的公私密钥对,用于消息鉴别。316公开密钥基础设施public key infrastructurePKI用公钥密码技术建立的普遍适用的基础设施,为用户提供
9、证书管理和密钥管理等安全服务。317信任trust通常,当一个实体(第一个实体)假设另一个实体(第二个实体)完全按照第一个实体的期望行动时,则称第一个实体“信任”第二个实体。这种“信任”可能只适用于某些特定功能。本框架中“信任”的关键作用是描述鉴别实体和认证机构之间的关系;鉴别实体应确信它能够“信任”认证机构仅创建有效且可靠的证书。24缩略语LDT 3052009下列缩略语适用于本部分:API 应用程序接I=I,简称应用接口(Application Program Interface)CA 证书认证机构(CertificaIion Authority)CSP 加密服务提供者(cryptogra
10、phic Service Provider)CRI。 证书撤消列表(Certificate Revocation I。ist)PKCS 公钥密码标准(the PublicKey Cryptography Standard)PIN 个人身份识别码(Personal Identification Number)Adrain PIN 管理员PINUser PIN 用户P1NPKCS#11 公钥密码使用标准系列规范中的第11部分,为执行密码函数的设备确定了一种程序设计接口5证书载体硬件规范51基本技术要求证书载体的基本技术要求如表1所示:表1 证书载体基本技术要求名 称 要 求 备 注存储容量 32
11、K Bytes(32 K型)CPU芯片位数 8位功耗 50 kbltsRSA解密速度 30 kbitS。t)公私钥对:2个 证书载体容器至少可同时存储2张存储要求 b)数字证书:2张 数字证书和2个街钥对,以支持双c)扩展区文件:10 K 证书a)管理员登录认证后,方可解锁用户PINb)用户登录认证后。方可产生密钥对、导安全性要求人密钥和证书,使用密钥和证书c)用户口令连续10次输错后应自动锁死硬件真随机数发生器 支持52管理要求521证书载体初始化证书载体的初始化就是对证书载体进行区间划分,使证书载体按照相关规范进行初始化。初始化工具由各证书载体供应商提供。初始化工具应有两种形式,一类是可执
12、行的初始化工具,另一类是动态库dll接口文件,并可根据动态库文件开发通用的初始化工具。522证书载体的安装注册证书载体内的证书可实现自动注册,即当证书载体插入电脑后,载体内证书自动注册到操作系统“MY”区,拔出证书载体以后数字证书自动从“MY”区中删除。523口令管理证书载体的客户端管理工具应具备校验口令和修改口令的功能。口令长度为616位。LDT 3052009524锁死与解锁证书载体连续10次输错口令应自动锁死。密码锁死后,即使输入正确的口令也不能使用证书,必须由管理员口令解锁后才能继续使用。管理员gl令需随机生成,解锁操作应在安全可控的前提下执行。解锁口令的长度为61 6位。525扩展区
13、要求证书载体内可创建用户文件区,要求可以在证书载体内保存用户文件,以实现某些扩展应用。接口应包括:对用户私有文件区的创建、删除和读写操作等功能接口。用户在对扩展区操作时应输人证书载体的用户PIN码验证。扩展区内的数据是否需要加密,根据应用需求而定。扩展区的文件长度不小于10 K。526其他同一个终端可以同时使用多个证书载体,以微软标准CSP接口调用证书载体设备时,系统会自动弹出设备选择框(列出设备的卷标名称)由用户选择设备。53安全机制531基本安全要求证书载体的安全机制要求保障系统运行稳定可靠,数据访问安全可控,数据传输安全保密,可抵御外部攻击。证书载体必须能产生RSA非对称密钥对,私钥不能
14、被读取,使用前应经过访问权限认证。532密钥和密码的存放证书载体应该能保汪F-x,t称密钥和对称密钥的安全性。对称密钥在导出时必须加密保护,非对称密钥的私钥不允许导出。非对称密钥的公钥必须在校验用户密码后方可导出。6证书载体软件规范61应用接口611 CSP接口CSP主要函数如下:a) 服务提供者函数,用于连接或断开CSPCryptAcqulreContextCryptContextAddReCryptEnumProvidersCryptEnumProviderTypesCryptGetProviderParamCryptGetDefaultProviderLDT 30520096CryptG
15、etProvParamCryptInstallDefaultContextCryptReleaseContextCryptSetProviderCryptSetProviderExCryptSetProvParamCryptUninstallDefaultContext密钥产生和交换函数,用于密钥的产生和交换,包括产生、配置和销毁CPDeriveKeyCPDestoryKeyCPDuplicateKeyCPExportKeyCPGenKeyCPGenRandomCPGetKeyParamCPGetUserKeyCPlmportKeyCPSetKeyParam对象编码和解码函数,用于对证书、CR
16、I等进行编码和解码工作:CryptDecodeObjectCryptDecodeObjemExCryptEncodeObjectCryptEncodeobjectgx数据加密、解密函数用于数据的加密、解密操作:CryptDecryptCryptEncryptCryptProtectDataCryptProtectMemoryCryptUnprotectDataCryptUnprotectMemory哈希和数字签名函数,用于计算数据的哈希值、创建和验证数字签名:CryptCreateHashCryptDestroyHashCryptDuplicateHashCryptGetHashParamCr
17、yptHashDataCryptHashSessionKeyCryptSetHashParamCryptSignHashCryptUIWizDigitalSignCryptUIWizFreeDigitalSignContextCryptVerifySignature612扩展接口6121设备管理LDT 3052009设备管理主要完成设备的插拔响应、枚举、连接、断开、设置设备信息、获取设备信息、锁定设备、释放设备操作。使用者不必知道设备类型和具体的驱动模式只需要通过本规范提供的接口,即可完成设备管理功能。设备管理函数如表2所示。表2设备管理函数函数名称 功 能 备 注HRSS KEYWaitFo
18、rDevgvem 等待设备插拔事件 插拔响应HRSS-KEYErlLIITIDeV 枚举设备 枚举支持的设备HRSS KEY ConnectDev 连接设备 共享打开返回设备句柄HRSS-KEYDisconnectDev 断开设备 断开设备连接HRSS_KEYInitDevlnfo 设置设备信息 设置设备信息HRSS-KEYGelDevSlate 判断设备状态 判断设备的当前状态HRSS KEY GetDevInfo 获取设备信息 获取设备信息6122访问控制访问控制分为设备级访问控制和应用级访问控制。设备级访问控制:包括内部认证和外部认证,用来进行设备之间的相互认证。应用级访问控制:分为管理
19、员和用户权限二级权限控制。管理员负责为用户提供PIN的初始化和解锁等服务。用户拥有设备使用权,使用设备提供的功能,存储自己的私有数据。对于每一个设备而言可以同时存在一个或多个应用,每个应用之问的访问控制相互独立。访问管理函数如表3所示。表3访问控制函数函数名称 功 能HRSSKEYChangePIN 修改PINHRSSKEY,VerifyPIN 校验PINHRSS KEY UnblockPIN 解锁PINHRSS KEY ClearSecureState 清除安全状态6123应用管理一个设备可以建立一个或多个应用,每个应用之间的权限管理和密码服务彼此独立。在每一个应用中都有相对应的文件体系和加
20、密服务体系。应用管理主要完成应用的创建、枚举、删除、打开、关闭操作。7LDT 3052009应用管理函数如表4所示。表4应用管理函数函数名称 功 能HRSS CreateApplieation 创建应用HRSS EnumApplication 枚举应用HRSS_DeleteAppllcatlon 删除应用HRSS()penApplicatlon 打开应用HRSSCoseApplication 关闭应用6124文件管理文件管理函数用于满足用户扩展开发的需要,包括对文件的创建、删除、枚举、获取设备信息、读写操作。文件管理函数如表5所示。表5文件管理函数函数名称 功 能HRSS KEY Create
21、File 创建文件函数HRSS-KEY DeleteFile 删除文件函数HRSS-KEY EnumFiles 枚举文件函数HRSS_KEYReadFile 读文件函数HRSS KEYWriteFile 写文件函数6125密码服务密码服务函数用于密码运算服务包括密钥容器的创建、销毁;密钥的生成、导入、导出、加密解密签名验证等,会话密钥支持国产算法如SSF33、SMl,非对称密钥目前支持1024和2048位RSA。密码服务函数如表6所示。表6密码服务函数函数名称 功 能HRSS_KEY CreateContainer 创建容器函数HRSS KEY Des”oyContalner 销毁容器函数HR
22、SS_KEYEnumContainer 枚举容器函数HRSSKEYGetComianerHandle 获取容器句柄函数HRSS KEY一(;enRandom 生成随机数函数HRSS KEYGenSesslonKey 生成会话密钥函数HRSSKEYGenRSAKeyPair 生成RSA公私钥对函数8表6密码服务函数(续)LDT 3052009函数名称 功 能HRSSKEYGetAsymmelricKeyHandle 获取非对称密钥对句柄函数HRSSKEYReleaseAsymmet ricKeyHandle 释放非对称密钥对句柄函数HRS殳KEY ExportSesstonKey 导出会话密钥函
23、数HRSSKEYExponRSAPublicKey 导出RSA公钥函数HRSSKEYImportSessionKey 导人会话密钥函数EIRSs_KEYlmportRSAKeyPair 导人RSA公私钥对函数HRSSKEYlmportRSAPublicKey 导人RSA公钥函数HRSS_KEYImportRSAPrivateKey 导人RSA私钥函数HRS史KEY GelKeyParam 取密钥参数函数HRSS,KEYSetKeyParam 设置密钥参数函数ttRSS_KEYRSASignData RSA数据签名函数HRSSKEYRSAVerify RSA验签函数HRSSKEYRSAEncry
24、pt RSA加密函数HRSSKEYGenTempRSAKeyPair 生成临时RSA公私钥对函数HRSs_KEY一lempRSAEncrypl 临时RSA密钥加密函数HRSs-KEY 7iempRSADecrypt 临时RSA密铜解密函数HRSS KEY EncryptInit 加密初始化函数HRS,S_KEY Encrypt 单组数据加密函数HRSS,KEYEncryplUpdate 多组数据加密函数t IRSSKEYEncryplFinal 加密结束函数HRSS_KEYDecryptlnit 解密初始化函数HRSSKEYDecrypl 单组数据解密函数HRSS-KEYDecryptUpda
25、te 多组数据解密函数HRSs-KEY1)ecryptFinal 解密结束函数HRSS KEY Digestlnil 杂凑初始化函数ttRSS_KEYDigest 单组数据杂凑函数HRSSKEYDigestUpdate 多组数据杂凑函数证书载体的扩展接口的描述见附录A。62安装与卸载621安装程序要求a)基本要求1) 同一型号的USBKey安装程序应将驱动程序、CSP、证书载体开发接口、管理工具封装在一起共用一个安装程序。qLDT 30520092)安装程序要能够自动识别用户的Windows操作系统版本并自动安装相应的兼容性插件。3) USBKey在安装过程中应给予用户足够的提示信息,但要尽量
26、减少与用户的交互,简化安装过程。4) USBKey安装程序应兼容Windows 2000、Windows XP、Vista及其以上的系列操作系统,并包含必要的系统补丁。5)安装程序自动检测客户机操作系统语言环境,如简体中文、繁体中文或英文,将对应的语言环境自动安装到客户机。6) 安装程序提示文字要简洁易懂、便于理解。菜单设计应清晰合理、方便查找。安装界面中提示信息的字体采用中文宋体9号字,英文采用Arial 12号字体。b)可选要求1)安装成功后在开始菜单中提供卸载子菜单。2) 安装成功后在控制面板中提供卸载接口。3)管理工具应具备校验口令的功能。622卸载程序要求a)基本要求1) 卸载程序应
27、兼容Windows 2000、Windows XP、Vista及其以的系列操作系统。2)卸载程序不需要客户干预,能自动完成卸载。i 执行完卸载过程后,要求能正确清除掉开始菜单中的相关子菜单、控制面板中的相应卸载接口。试执行完卸载过程后,要求能正确清除掉系统中相应的安装目录。乩卸载驱动程序时不要删除系统本身自带的库和注册表信息中原有的键值。3)卸载程序不自动执行重新启动计算机,卸载完成后可提示客户重新启动计算机。b) 可选要求1)卸载完成后不能在文件系统或注册表中留下残余组件。2) 通过开始菜单中提供卸载子菜单能将CSP和驱动程序卸载。3)通过控制面板中的“添An删除程序”,能将CSP和驱动程序
28、卸载。4)再次运行安装程序能自动卸载。623驱动程序的兼容性要求a) 驱动程序的编写应符合PCSC标准。b)驱动程序的编写应符合微软的驱动编写标准。c) 安装后添加的文件路径和注册表信息中应带有产品的特有信息或标记。d) 驱动程序不能拷贝系统本身自带的库到系统的目录下,如果使用了操作系统的动态库建议尽量使用静态绑定。e)不同的USBKey必须相互兼容,安装在同一台机器上都能正常工作,不会相互影响。624接口动态库命名a)证书载体动态库的文件名命名规则为“hrssxxxxyydll”,其中XXXX为厂商代码,YY为产品代码。b)动态库导出的接口函数应为c语言函数。c) 厂商代码和产品代码由人力资
29、源和社会保障部统一管理。OA1数据类型定义附录A(资料性附录)证书载体接口函数规范表A1数据类型LDT 3052009类型名称 描 述 定 义BYTE 字节类型,无符号8位整数 typedef U1NT8 BYTECHAR 字符类型,无符号8位整数 typedef UINT8 CHARSH(,RT 短整数,有符号16位 lypedef INTl 6 SHORTUSH()RT 无符号1 6位整数 lypedef U1NF1 6 USHORTL()NG 长整数有符号32位整数 lypedef INT32 LONGUI。()NG 长整数,无符号32位整数 typedef UIN F32 UI,ONG
30、UINl 无符号32位整数 typedeUINT32 UNTWoRD 字类型,无符号16位整数 typedeU1NTl6 WORDI)WORD 双字类型,无符号32位整数 typedef UINT32 DWORDHJAGS 标志类型,无符号32位整数 typedef UINT32 FI,AGS8位字符串指针,按照UTF8格式存储1PSTR 1vpedef CHAR*I。PSTR及交换HANDLE 句柄,指向任意数据对象的起始地址 typedeI void*HANDLEDEVHANnlE 设备句柄 typedef HANDI。E DEVHANDLEHAPPI。ICATl()N 应用句柄 type
31、def HANDLE HAPPLICATIONHCoNTAINER 容器句柄 typedeHANDLE HCONTAINER。a) 版本数据类型定义:typedef struct StructVersionBYTE major;BYTE minor;VERSlON:表A2版本数据类型数据项描述数据项 类型 意义 备 注ma,。r BYTE 主版本号 主版本号和次版本号以“”分隔,例如Version 1 0主版本号为1次版本号BYTE 次版本号 为0;Version 210,主版本号为2,次版本号为10。b) 设备初始化信息设备类型:typedef struct StruetDEVINITINF
32、OLDT 3052009VERSION AppVersion:CHAR Manufacturerr64;cHAR Label64;I)FVINITINFO,*P1)EVINITINFO表A3 设备初始化信息数据类型数据项描述数据项 类型 意义 备 注AppVersion VERSloN SICSZD接口规范版本最长64个字符,不足64个字符以空白字符(ASCIIManufacturer cHAR数组 设备厂商信息码为OxFF)填充不能以null(0x00)结束。最长64个字符不足64个字符以空白字符(ASCIILabel cHAR数组 SICSZD标签 码为0xFF)填充,不能以null(0x
33、00)结束。c)设备信息1)类型定义typedef struct StruetDEVINFOCHAR Manufacturerr64;CHAR Iabel64:CHAR SerialNumber323;VFRSIoN HWVersion:VERSION Firmwm。eVersion:VERSION AppVersion;UI0NG Type:BYTE MinPlNI。en:BYTE MaxPINLen:UI。ONG AlglD;UI,ONG Reserved:DEVINFO,*PDEVINFO:2)数据项描述表A4设备信息数据类型数据项描述数据项 类型 意义 备 注Manufacturer
34、cHAR数组 设备厂商信息Iabel CHAR数组 设备标茬SerialNumber CHAR数组 序列号HWVersion VERSI()N 设备硬件版本FirmwareVersion VERSlON 设备本身固件版本AppVersion VERSI()N 支持设备的应用版本Type ULoNG 设备类型 0:USBKey,1:IC CARDMlnPlNIen BYTE 最小PIN长度12表A4设备信息数据类型数据项描述(续)LDT 3052009数据项 类型 意义 备 注MaXPINLen BYTE 最大PIN长度AlglD ULONG 支持的国产算法标识 见表A11Reserved UI
35、()NG 保留扩展d) 双向认证密钥的密钥头1)类型定义typedef struct StructKEYHEADUINT8 ApplicationType;UINT8 KeyIeTl;UINT8 ErrorCounter;KEYHEAD,*PKEYHgAD;2)数据项描述表A5双向认证密钥的密钥头数据类型数据项描述数据项 类型 意义 备 注内部认证密钥:认证密钥的应用类型:外部认证 ATINTERNALAUTHENTICATtKEYApplicadonType UINT8密钥,内部认证密钥 外部认证密钥:AT_EXTERNALAUTHENTICATEKEYKevI。en UlNT8 密钥值长度
36、。按字节计算错误计数器高4位为最大错误ErrorCounter UINT8次数,低4位为剩余尝试次数e)算法信息1) 类型定义typedef struct StructAI。GINFOUI。ONG MinKeyLen;ULoNG MaxKeyLen;ULONG AlgFlags;)AI,GINFO,*PAI。GINFO;2)类型定义表A6算法信息数据类型数据项描述数据项 类型 意义 备 注KevMinLen ULONG 密钥最小长度KevMaxLen UI。ONG 密钥最大长度AlgFlags UL()NG 算法特性标志 见表A7定义13LDT 3052009表A7算法特性标志定义算法特性标志
37、(AlgFlags)位 标识 掩码 意 义1:算法由硬件执行1 AF HW 0X000000010:算法由软件执行1:算法能被用于HRSSKEYEneryptlnit函数9 。FENCRYPT 0X00000i000:算法不能被用于HRSs_KEYEncryptInit函数1:算法能被用于HRSSKEYDecryptInil函数1 0 AF DECRYPT OX000002000:算法不能被用于HRSS KEYI)ecryptlnit函数1:算法能被用于HRSS KEY Digesdni*函数11 AFD1GEST 0X000004000:算法不能被用于HRSS_KEYDigestlnit函数
38、1232 扩展用f)RSA公钥交换数据块1)类型定义typedef struct StructRSAPUBLICKEYBLOBULONG AlgID:UI0NG BitLen:BYTE ModulusMAX RSAMODULUsLEN;BYTE PublicExponentMAXRSAEXPONENTI,ENJRSAPUBI,ICKEYBLOB,*PRSAPUBI。ICKEYBIOB;MAXRSAMODUI。US_I,EN为算法模数的最大长度;MAXRSAEXPONENTLEN为算法指数的最大长度。2)数据项描述表A8 RSA公钥交换数据块数据类型数据项描述数据项 类型 意义 备 注AlgID
39、 UI,()NG 算法标识号BltLen ULONG 模数的实际位长度 必须是8的倍数实际长度为Bid,en8字节Modulus BYTE数组 模数n-Pq #define MAX RSAM()DUI,USLEN 256#define MAXRSAEXPoNENTLEN 6PubllcExDonent UI,oNG 公开密钥e 一般为655374g)RSA私钥交换数据块1)类型定义typedef struct StructRSAPRlVATEKEYBI,OBULONG AIgID:ULoNG Bid。ell:BYTE ModulusrMAx RsA MODULUS LENU L()N(;Pub
40、llcExDonent;BYTE PrivateExponentMAXRSAMODuLusI。EN;BYTE PrimelMAxRSAMODULUS-I。EN2;BYTE Prime2MAXRSAMODULUS-LEN2;BYTE PrimelExponentMAXRSAMODuLUSI。EN2BYTE Prime2ExponentMAXRSAMODULUS_IEN2BYTE CoefficientMAXRSAMODUIUS_LEN2;RSAPRIVATEKEYBLOB,*PRSAPRIVATEKEYBLOB;MAx-RSAMODULUS_LEN为RSA算法模数的最大长度。2)数据项描述表A9
41、 RSA私钥交换数据块数据类型数据项描述LDT 3052009数据项 类型 意义 备 注AlglD ULONG 算法标识号B11Ien UI。()N(j 模数的实际位长度 必须是8的倍数Modulus BYTE数组 模数n-Pq 实际长度为BitI,en8字节PubllcExDonent U1ONG 公开密钥e 一般为65537PrivaleExponent BYTE数组 私有密钥d 实际长度为BitLen8字节Primel BYI E数组 素数P 实际长度为BilIen16字节Prime2 BYTE数组 素数q 实际长度为BitLen16字节PrimelExponent BYTE数组 d r
42、ood(p-1)的值 实际长度为Bitl,en16字节Prime2Exponent BYTE数组 d rood(q 1)的值 实际长度为BilLen16字节Coefficient BYTE数组 q模P的乘法逆元 实际长度为BilLen16字节h)文件属性1) 类型定义typedestruct StructFII。EATTRIBUTECHAR FileName32;UI。oNG FileSize:ULoNG ReadRights;UI。oNG WriteRights;FILEATTRIBUTE,*PFIIEATTRIBUTE;2)数据项描述表A10 文件属性数据类型数据项描述数据项 类型 意义
43、备 注FileNarile CHAR数组 文件名 ASCIIZ字符串最大长度为32FileSize ULONG 文件大小 创建文件时定义的文件大小ReadRights UI。oNG 读取权限 读取文件需要的权限,见表A 1 9WriteRights UL()NG 写人权限 写入文件需要的权限15LDT 3052009)算法标识号算法标识号AlglD的取值可以是以下常量:表A11算法标识号对称算法标识宏描述 预定义值 说 明ALG SSF33 OX0000000I SSF33算法ALG SMl 0X00000002 SMi通用算法AIG SMl S 0X00000004 SMl专用算法非对称算法
44、标识宏描述 预定义值 说 明AL(;RSAl024 0X00000008 指定使用l 024位的RSA,模长在函数的长度中指定ALGRSA2048 0X00000010 指定使用2 048位的RSA,模长在函数的长度中指定杂凑算法标识宏描述 预定义值 说 明AIG SCH OX00000040 SCH杂凑算法ALG SHAl OX00000080 SHAl杂凑算法AIGSHA256 0X00000100 SHA256杂凑算法j)密钥参数类型密钥参数类型(Key Parameter Type)的取值可以是以下常量,在获取密钥参数(HRSSKEYGetKeyParam)或设置密钥参数(HRSSKE
45、YSetKeyParam)时指定要获取或设置的密钥参数:表A12密钥参数类型密钥参数类型 值 描 述KP AI。GID OX00000001 密钥所适应算法的标识号对于会话密钥(对称密钥)是指块(分组)长度;KP BLOCKLEN 0X00000002对于RSA密钥即是模数的长度KP KEYI,EN 0X00000003 密钥实际长度(按位计算)KP SAI,T 0X00000004 该参数类型只针对会话密钥,指会话密钥的调剂值(SahVlue)KPPERMISSlONS 0X00000005 密钥使用许可状态KP IV 0X00000006 密钥初始向量。该参数类型只针对分组加密密钥KPPA
46、DDlNG 0X00000007 填充方法,目前定义了PKCS5一Padding的填充方法KP M()DE 0X00000008 加密模式,该参数类型只针对分组加密密钥;反馈值长度(按位计算),该参数类型只针对OFB(ompuffeedback)和KPMODEBITS0X00000009CFB(clpherfeedback)两种分组加密模式k) 密钥使用许可密钥使用许可(Key Permissions)可以是以下常量的组合表A13密钥使用许可LDT 3052009密钥使用许可 值 描 述CRYPT ENCRYPT 0X00000001 可用于加密CRYPT DECRYPT 0X00000002
47、 可用于解密CRYPTEXPORT 0X00000004 允许被导出CRYPI READ 0X00000008 允许读取密钥参数CRYPTWRITE 0X00000010 允许写入密钥参数CRYPT MAC 0X00000020 允许被用于计算MAC值)加密模式加密模式(Cipher Modes)有以下几种:表A14加密模式加密模式 值 描 述CRYPT MODE ECB 0X00000001 电子密码本加密模式CRYPT。MODECBC 0X00000002 分组链接加密模式CRYPT MoDE OFB 0x00000003 输出反馈加密模式CRYPT。MODECFB 0X00000004 密文反馈加密模式CRYPTMoDEMAX 0X00000005 MAc加密模式m) 分组密码填充方法表A15分组密码填充方法填充方法 常量标识 值 描 述补码的值为需要补码的位数。例如数据的PKCS#5填充 PKCS5 PAI)DING 0X00000001 分组长度为16,现在有11字节数据,需要5个字节的补码,则补5个字节的5n)密钥类型表A1
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1