加密API研究

一、CryptoAPI加密技术
1.原文档
Windows CryptoAPI是Microsoft 公司提出的安全加密应用服务框架,也是PKI推荐使用的加密 API。它提供了在Win32 环境下使用认证、编码、加密和签名等安全服务时的标准加密接口,用于增强应用程序的安全性与可控性。应用开发者可以在不了解复杂的加密机制和加密算法的情况下,简便、快速地开发出标准、通用和易于扩展的安全加密应用程序。CryptoAPI 提供的功能主要有:密钥管理、数据加密和解密、数字签名和验证、证书管理、可信根证书管理、数据编码和解码、数字证书编码和解码、PKCS#7 标准格式编码和解码等。现在CryptoAPI的最新版本为2.0版本。

2.使用方式
Crypto API 提供的功能主要有:密钥管理、数据加密和解密、数字签名和验证、证书管理、可信根证书管理、数据编码和解码、数字证书编码和解码、PKCS#7标准格式编码和解码等。

3.主要函数
CryptoAPI体系架构
基本加密函数:用于选择CSP、建立CSP连接、产生密钥、交换及传输密钥等操作。这些函数为开发加密应用程序提供了足够灵活的空间。所有CSP 的通讯都是通过这些函数,一个CSP 是实现所有加密操作的独立模块,于是在每一个加密应用程序中至少需要提供一个CSP来完成所需的加密操作。

证书编/解码函数:用于数据加密、解密、哈希等操作。这类函数支持数据的加密/解密操作;在应用程序中完成计算哈希、创建和校验数字签名操作;用来对证书、证书撤销列表、证书请求和证书扩展进行编码和解码操作。

证书库管理函数:用于数字证书及证书库管理等操作。这组函数用于管理证书、证书撤销列表和证书信任列表的使用、储存、获取等。

简单消息函数:用于消息处理,比如消息编码/解码、消息加/解密、数字签名及签名验证等操作。它是把多个低层函数包装在一起以完成某个特定任务,以方便用户的使用。

底层消息函数:低级消息函数对传输的PKCS#7 数据进行编码,对接收到的PKCS#7 数据进行解码,并且对接收到的消息进行解密和验证。它可以实现简单消息函数可以实现的所有功能,它提供更大的灵活性,但一般会需要更多的函数调用。对于绝大多数应用,我们不推荐使用低级消息函数,使用简化消息函数更为方便。

二、pkcs#11标准
1.原文档
PKCS#11是公钥加密标准Public-Key Cryptography Standards中的一份子,由RSA实验室发布。

PKCS#11标准定义了与密码令牌的独立于平台的API,API本身命名为Cryptoki,这个API已经发展成为一个通用的加密令牌的抽象层。

PKCS#11主要是应用于智能卡和HSM。

PKCS#11为使用加密Token的应用程序提供统一的编程接口,独立于设备,屏蔽加密设备的复杂性,应用程序可以方便地更换设备。

2.使用方式

3.主要函数










三、GMT 0016-2012 智能密码钥匙密码应用接口规范
1.原文档
GMT 0016-2012是国家规定的智能密码钥匙密码应用接口规范,规定了基于PKI密码体制的智能密码钥匙密码应用接口,描述了密码应用接口的函数、数据类型、参数的定义和设备的安全要求。适用于智能密码钥匙产品的研制、使用和检测。

2.使用方式

3.主要函数






四、GMT 0018-2012密码设备应用接口规范
1.原文档

2.使用方式

3.主要函数






五、以龙脉GM3000Key为例,写出调用不同接口的代码(Crypto API,PKCS#11,SKF接口)
(1).Crypto API







(2).pkcs#11
1.des


2.des3


3.rc2


4.rc4


5.rsa


6.aes


7.getusbinfos

posted @ 2023-04-04 15:37  20201204于瀛鹏  阅读(24)  评论(0编辑  收藏  举报