加密API研究

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

  1. 查找各种标准的原始文档,研究学习(至少包含Crypto API,PKCS#11,GMT 0016-2012,GMT 0018-2012)(5分)

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

    • CryptoAPI
      CryptoAPI 系统体系结构由五个主要功能领域组成:基本加密函数、证书编码/解码函数、证书存储函数、简化的消息函数、低级别消息函数

      1. 基本加密函数
        • 用于连接到 CSP 的上下文函数。这些函数使应用程序能够按名称选择特定的 CSP,或选择可以提供所需功能类别的特定CSP。
        • 用于生成和存储加密密钥的密钥生成函数。包括对更改链接模式、初始化向量和其他加密功能的完全支持。
        • 用于交换或传输密钥的密钥交换函数。
      2. 证书编码/解码函数
        • 用于加密或解密数据的函数。还支持对数据进行哈希处理。
      3. 证书存储函数
        • 用于管理数字证书集合的函数。
      4. 简化的消息函数
        • 用于加密和解密消息与数据的函数。
        • 用于对消息和数据进行签名的函数。
        • 用于验证所接收消息和相关数据上签名的真实性的函数。
      5. 低级别消息函数
        • 用于执行简化消息函数执行的所有任务的函数。与简化的消息函数相比,低级别消息函数提供更大的灵活性,但需要更多的函数调用。

      image
      每个功能区域在其函数名称中都有一个关键字,用于指示其功能区域。
      image
      应用程序在所有这些方面都使用函数。 这些函数组合在一起构成 CryptoAPI。 基本加密函数将 CSP 用于必要的加密算法以及加密密钥的生成和安全存储。使用两种不同类型的加密密钥:会话 密钥(用于单个加密/解密)和 公钥/私钥对(更永久地使用)。

    • RAS公司的PKCS#11标准
      image

    image

    • GMT 0016-2012 智能密码钥匙密码应用接口规范
      image

    • GMT 0018-2012密码设备应用接口规范
      image

    • GMT 0019-2012 通用密码服务接口规范
      image

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

    • Crypto API
      函数具体内容:https://learn.microsoft.com/zh-cn/windows/win32/seccrypto/cryptography-functions

      1. CryptXML 函数
      2. 签名者函数
      3. 基本加密函数
        • 服务提供程序函数
        • 密钥生成和交换函数
        • 对象编码和解码函数
        • 数据加密和解密函数
        • 哈希和数字签名函数
      4. 证书和证书存储函数
        • 证书存储函数
        • 证书和证书存储维护函数
        • 证书函数
        • 证书吊销列表函数
        • 证书信任列表函数
        • 扩展属性函数
      5. MakeCert 函数
      6. 证书验证函数
        • 使用 CTL 的验证函数
        • 证书链验证函数
      7. 消息函数
        • 低级别消息函数
          简化的消息函数
      8. 辅助函数
        • 数据管理函数
        • 数据转换函数
        • 增强的键用法函数
        • 键标识符函数
        • OID 支持函数
        • 远程对象检索函数
        • PFX 函数
      9. 证书服务备份和还原功能
      10. 回调函数
      11. 目录定义函数
      12. 目录函数
      13. WinTrust Functions
      14. 对象定位器函数
    • PKCS#11
      Cryptoki 的功能分为以下几类:

      1. 通用功能(4 个功能)
      2. 插槽和令牌管理功能(9 个功能)
      3. 会话管理功能(8 个功能)
      4. 对象管理功能(9 个功能)
      5. 加密功能(4 个功能)
      6. 解密函数(4 个函数)
      7. 消息摘要函数(5 个函数)
      8. 签名和 MACing 功能(6 个功能)
      9. 用于验证签名和MAC的功能(6个功能)
      10. 两用加密函数(4 个函数)
      11. 关键管理功能(5 项功能)
      12. 随机数生成函数(2 个函数)
      13. 并行功能管理功能(2个功能)

      image

    • GMT 0016-2012
      image

    image

    image

    image

    image

    image
    image

    • GMT 0018-2012
      image

    image
    image

    image

    image

    image

    image

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

    • CryptoAPI

      1. EncrypteData
        image
        image

      2. EncryptDecryptFile

        • EncrypteFile
          image
          image
          image
        • DecryptFile
          image
          image
          image
      3. EnumCerts
        image

      4. Sign_Verify
        image
        image

    • PKCS#11

      • PKCStest
        1. DES
          image
          image
        2. DES3
          image
          image
        3. RC2
          image
          image
        4. RC4
          image
          image
        5. RSA
          image
          image
        6. AES
          image
          image
    • SKF接口

      1. DevAuth
        image
      2. EncryptData
        image
        image
      3. RemoteUnblock
        image
      4. Signature
        image
posted @ 2024-04-10 15:17  20211116彭玮琪  阅读(44)  评论(0)    收藏  举报