实验一-密码引擎-加密API研究

实验一-密码引擎-加密API研究

一、任务详情

密码引擎API的主要标准和规范包括:
1 微软的Crypto API
2 RAS公司的PKCS#11标准
3 中国商用密码标准:GMT 0016-2012 智能密码钥匙密码应用接口规范,GMT 0018-2012密码设备应用接口规范等

研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客链接和代码链接。
内容:
0 查找各种标准的原始文档,研究学习(至少包含Crypto API,PKCS#11,GMT 0016-2012,GMT 0018-2012)
1 总结这些API在编程中的使用方式
2 列出这些API包含的函数,进行分类,并总结它们的异同
3 以龙脉GM3000Key为例,写出调用不同接口的代码(Crypto API,PKCS#11,SKF接口),把运行截图加入博客,并提供代码链接

二、实验内容

1.Crypto API
参考博客:
简介
概述
Crypto API体系包含的函数可分为:基本加密函数、证书编码与解码函数、证书库管理函数、简单信息处理函数、底层信息处理函数
使用方式:每个CSP都有一个密钥库,里面存储着由CSP保存的算法密钥。每个密钥库都包含一个或多个密钥容器,每个容器都包含属于特定用户的所有密钥对。而在编程时,需要先建立函数、变量等定义的的相关头文件,然后再建立相关静态链接库以及动态链接库,才可以编程实现。具体的函数什么的可以直接搜索:Crypto API调用,许多博客介绍了相关函数以及它们的使用方法。

2.PKCS#11
参考博客:
图解
解读
PKCS#11体系包含的函数可分为:通用接口函数、槽和令牌管理函数、会话管理函数、对象管理函数、加密函数、解密函数、消息摘要函数、签名和MAC、验证签名和MAC、密钥管理和随机数生成
我们把Cryptoki 确定为应用程序与各种各样的便携式密码设备(基于智能卡、PCMCIA卡以及智能软盘)间的一种接口。Cryptoki 的主要目标是一个低级程序接口,该接口将设备的细节抽象化,并把密码设备的通用模型—密码令牌,或简称令牌—提供给应用程序。Cryptoki 为一个或多个密码设备提供一个接口,这些设备通过大量的槽在系统中运行。每个对应于一个物理阅读器或另一个设备接口的槽可包含一个令牌。当一台密码设备存在于阅读器中,一个令牌就存在于该槽中。当然,由于Cryptoki提供槽和令牌的逻辑视图,所以可能有其它的物理译码。多个槽可能共享一个阅读器。问题在于一个系统有相当多的槽,应用程序能连接到这些槽的其中任何一个或全部槽的令牌上。

3.中国商用密码标准
GMT 0016-2012包含的函数可分为:设备管理、访问控制、应用管理、文件管理、容器管理以及密码服务
GMT 0018-2012包含的函数可分为:设备管理、密钥管理类函数、非对称算法运算类函数、对称算法运算类函数、杂凑运算类函数以及用户文件操作类函数
在公钥密码基础设施应用技术体系框架中,密码设备服务层由密码机、密码卡、智能密码终端等设备组成,通过本标准规定的密码设备应用接口向通用密码服务层提供基础密码服务。本标准规定了基于PKI密码体制的智能密码钥匙密码应用接口,描述了密码应用接口的函数、数据类型、参数的定义和设备的安全要求,适用于智能密码钥匙产品的研制、使用和检测。GMT 0018-2012则规定了公钥密码基础设施应用技术体系下服务类密码设备的应用接口标准,适用于服务类密码设备的研制使用,以及基于该类密码设备的应用开发,也可用于指导该类密码设备的检测。

异同:Crypto API体系中比起另外两个,它有证书相关的函数以及信息处理函数;PKCS#11体系的函数则多了通用接口函数和会话管理函数;中国商用密码标准都有设备管理函数和文件操作相关的函数。它们共有的是加密解密、密钥管理类函数。

4.以龙脉GM3000Key为例,写出调用不同接口的代码(Crypto API,PKCS#11,SKF接口),把运行截图加入博客,并提供代码链接


posted @ 2022-04-21 17:23  20191201陈孙一龙  阅读(47)  评论(0编辑  收藏  举报