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

1 总结这些API在编程中的使用方式(5分)

2 列出这些API包含的函数,进行分类,并总结它们的异同(10分)


1 Crypto API

微软的CryptoAPI是Win32平台下为应用程序开发者提供的数据加密和安全的编码接口。CryptoAPI函数集包含了基本的ASN.1的编码、解码,散列,数据加密和解密,数字证书管理等重要的密码学应用功能。数据的加密、解密支持对称和非对称两类算法。CryptoAPI是所有微软的Win32的应用程序以及第三方厂商应有程序使用的数据加密接口,诸如Internet Explorer、OutLook、Adobe等应用都是基于CryptoAPI开发的。

1.1 Crypto API在编程中的使用方式

CryptoAPI本身不实现密码运算相关操作,而是操作系统通过调用CryptoSPI函数接口相应的加密服务提供者函数(CSP)来实现。CryptoAPI函数使用“加密服务提供者”(CSP)完成数据加密、解密以及密钥的存储管理、所有的CSP都是相互独立的模块。理论上,CSP应该独立于特定的应用程序,也就是说所有的应用程序可以使用任何一个CSP。但是,实际上有些应用程序只能与特定的CSP协作。CSP与应用程序之间的关系类似于Windows GDI模型。CSP就类似于图形硬件驱动程序。

2 Crypto API包含的函数

CryptoAPI体系主要由以下几部分组成:

基本加密函数、证书编码与解码函数、证书存储函数、简化信息处理函数、底层信息处理函数。

2.1 基本加密函数

服务提供者函数

密钥的产生和交换函数

编码/解码函数

数据加密/解密函数

哈希和数字签名函数

2.2 证书和证书库函数

这组函数是管理、使用和取得证书、证书撤销列表和证书信任列表。

证书库函数:一个用户站点可以收集许多证书。这些证书是为这个站点的用户所使用的,证书描述了这个用户的具体身份。对于每个人,可能有一个以上的证书。证书库和其相关的函数提供了对库获得、枚举、验证和使用证书库里的信息。

维护函数

证书函数

证书撤销列表函数

证书信任列表函数

扩展属性函数

2.3 证书验证函数

证书验证是通过CTL 和证书列表进行的.

使用CTL的函数

证书链验证函数

2.4 消息函数

CryptoAPI 消息函数包括两组:低级消息函数和简化消息函数。

低级消息函数直接和PKCS#7 消息工作。这些函数对传输的PKCS#7 数据进行编码,对接收到的PKCS#7 数据进行解码,并且对接收到的消息进行解密和验证。

简化消息函数是比较高级的函数,是对几个低级消息函数和证书函数的封装,用来执行指定任务。这些函数在完成一个任务时,减少了函数调用的数量,因此简化了CryptoAPI的使用。

低级消息函数

简化消息函数

2.5 辅助函数

数据管理函数

数据转换函数

增强密钥用法函数

密钥标示函数

证书库回调函数

OID 支持函数

远程对象恢复函数

PFX 函数

posted @ 2022-06-16 23:57  20191330雷清逸  阅读(38)  评论(0编辑  收藏  举报