实验一-密码引擎-3-加密API研究
-
查找各种标准的原始文档,研究学习(至少包含Crypto API,PKCS#11,GMT 0016-2012,GMT 0018-2012)(5分)
- 微软的Crypto API
https://learn.microsoft.com/zh-cn/windows/win32/seccrypto/cryptoapi-system-architecture - RAS公司的PKCS#11标准
https://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html - 中国商用密码标准:GMT 0016-2012 智能密码钥匙密码应用接口规范,GMT 0018-2012密码设备应用接口规范等
在云班课资源中进行学习。
- 微软的Crypto API
-
总结这些API在编程中的使用方式(5分)
-
CryptoAPI
CryptoAPI 系统体系结构由五个主要功能领域组成:基本加密函数、证书编码/解码函数、证书存储函数、简化的消息函数、低级别消息函数- 基本加密函数
- 用于连接到 CSP 的上下文函数。这些函数使应用程序能够按名称选择特定的 CSP,或选择可以提供所需功能类别的特定CSP。
- 用于生成和存储加密密钥的密钥生成函数。包括对更改链接模式、初始化向量和其他加密功能的完全支持。
- 用于交换或传输密钥的密钥交换函数。
- 证书编码/解码函数
- 用于加密或解密数据的函数。还支持对数据进行哈希处理。
- 证书存储函数
- 用于管理数字证书集合的函数。
- 简化的消息函数
- 用于加密和解密消息与数据的函数。
- 用于对消息和数据进行签名的函数。
- 用于验证所接收消息和相关数据上签名的真实性的函数。
- 低级别消息函数
- 用于执行简化消息函数执行的所有任务的函数。与简化的消息函数相比,低级别消息函数提供更大的灵活性,但需要更多的函数调用。
每个功能区域在其函数名称中都有一个关键字,用于指示其功能区域。
应用程序在所有这些方面都使用函数。 这些函数组合在一起构成 CryptoAPI。 基本加密函数将 CSP 用于必要的加密算法以及加密密钥的生成和安全存储。使用两种不同类型的加密密钥:会话 密钥(用于单个加密/解密)和 公钥/私钥对(更永久地使用)。 - 基本加密函数
-
RAS公司的PKCS#11标准
-
GMT 0016-2012 智能密码钥匙密码应用接口规范
-
GMT 0018-2012密码设备应用接口规范
-
GMT 0019-2012 通用密码服务接口规范
-
-
列出这些API包含的函数,进行分类,并总结它们的异同(10分)
-
Crypto API
函数具体内容:https://learn.microsoft.com/zh-cn/windows/win32/seccrypto/cryptography-functions- CryptXML 函数
- 签名者函数
- 基本加密函数
- 服务提供程序函数
- 密钥生成和交换函数
- 对象编码和解码函数
- 数据加密和解密函数
- 哈希和数字签名函数
- 证书和证书存储函数
- 证书存储函数
- 证书和证书存储维护函数
- 证书函数
- 证书吊销列表函数
- 证书信任列表函数
- 扩展属性函数
- MakeCert 函数
- 证书验证函数
- 使用 CTL 的验证函数
- 证书链验证函数
- 消息函数
- 低级别消息函数
简化的消息函数
- 低级别消息函数
- 辅助函数
- 数据管理函数
- 数据转换函数
- 增强的键用法函数
- 键标识符函数
- OID 支持函数
- 远程对象检索函数
- PFX 函数
- 证书服务备份和还原功能
- 回调函数
- 目录定义函数
- 目录函数
- WinTrust Functions
- 对象定位器函数
-
PKCS#11
Cryptoki 的功能分为以下几类:- 通用功能(4 个功能)
- 插槽和令牌管理功能(9 个功能)
- 会话管理功能(8 个功能)
- 对象管理功能(9 个功能)
- 加密功能(4 个功能)
- 解密函数(4 个函数)
- 消息摘要函数(5 个函数)
- 签名和 MACing 功能(6 个功能)
- 用于验证签名和MAC的功能(6个功能)
- 两用加密函数(4 个函数)
- 关键管理功能(5 项功能)
- 随机数生成函数(2 个函数)
- 并行功能管理功能(2个功能)
-
GMT 0016-2012
- GMT 0018-2012
-
-
以龙脉GM3000Key为例,写出调用不同接口的代码(Crypto API,PKCS#11,SKF接口),把运行截图加入博客,并提供代码链接(10分)
-
CryptoAPI
-
EncrypteData
-
EncryptDecryptFile
- EncrypteFile
- DecryptFile
- EncrypteFile
-
EnumCerts
-
Sign_Verify
-
-
PKCS#11
- PKCStest
- DES
- DES3
- RC2
- RC4
- RSA
- AES
- DES
- PKCStest
-
SKF接口
- DevAuth
- EncryptData
- RemoteUnblock
- Signature
- DevAuth
-