首页 > 其他分享 >实验一-密码引擎-3-加密API研究

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

时间:2023-04-02 19:55:53浏览次数:59  
标签:API 加密 函数 PROV RSA 引擎 密钥

任务详情

密码引擎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)(5分)
1 总结这些API在编程中的使用方式(5分)
2 列出这些API包含的函数,进行分类,并总结它们的异同(10分)
3 以龙脉GM3000Key为例,写出调用不同接口的代码(Crypto API,PKCS#11,SKF接口),把运行截图加入博客,并提供代码链接(10分)

微软的Crypto API学习情况

任务0:研究学习

CryptoAPI是应用程序编程接口,使应用程序开发人员能够将身份验证、编码和加密添加到基于Windows的应用程序。

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

  • 用于连接到云解决方案提供商的上下文函数。 这些函数使应用程序能够按名称选择特定的云解决方案提供商,或选择可以提供所需功能类的特定云解决方案提供商。
    用于生成和存储加密密钥的密钥生成函数。 完全支持更改 链接模式、 初始化向量和其他加密功能。 有关详细信息,请参阅密钥生成和Exchange函数。
    用于交换或传输密钥的密钥交换函数。 有关详细信息,请参阅加密密钥存储和Exchange以及密钥生成和Exchange函数。
    (2)证书编码/解码函数

  • 用于加密或解密数据的函数。 还支持 哈希数据。有关详细信息,请参阅数据加密和解密函数和数据加密和解密。
    (3)证书Microsoft Store函数

用于管理数字证书集合的函数。 有关详细信息,请参阅数字证书和证书Microsoft Store函数。
(4)简化的消息函数

  • 用于加密和解密消息和数据的函数。
  • 用于对消息和数据进行签名的函数。
  • 用于验证已接收消息和相关数据的签名的真实性的函数。
  • 有关详细信息,请参阅简化的消息和简化的消息函数。
    (5)低级别消息函数

用于执行简化消息函数执行的所有任务的函数。 低级别消息函数比简化的消息函数更灵活,但需要更多的函数调用。 有关详细信息,请参阅低级别消息和低级别消息函数。

以下是功能区示意表:

功能区域 函数名
基本加密函数 Crypt
编码/解码函数 Crypt
证书存储函数 存储
简化的消息函数 消息
低级别消息函数 Msg
  • 应用程序在所有这些领域都使用函数。这些函数组合在一起,组成 CryptoAPI。 基本加密函数将 CSP 用于必要的加密算法以及加密密钥的生成和安全存储。
      使用了两种不同类型的加密密钥:会话密钥(用于单个加密/解密)和公钥/私钥对,这些密钥在更永久的基础上使用。

任务1:使用方法

使用CryptoAPI编写一个文件保护程序,具有如下功能:
(1)给定明文文件,生成加密文件,同时产生文件的数字签名文件;
(2)给定密文文件,解密出明文文件,并验证签名的正确性。
  在不安全的网络上进行安全的数据传输涉及三个方面的要求:信息隐藏,身份鉴别和完整性检验。CryptoAPI除了提供上述三个功能外还提供标准的ASN.1编码、解码,信息解密,数字证书和证书存储区的管理,证书信任列表、吊销列表和证书有效性检查等功能。

任务2:API函数

基本加密函数

  • CSP是真正实行加密的独立模块,他既可以由软件实现也可以由硬件实现。但是他必须符合CryptoAPI接口的规范。
      每个CSP都有一个名字和一个类型。每个CSP的名字是唯一的,这样便于CryptoAPI找到对应的CSP。目前已经有9种CSP类型,并且还在增长。下表列出出它们支持的密钥交换算法、签名算法、对称加密算法和Hash算法。
    函数列表如下:
CSP类型 交换算法 签名算法 对称加密算法 Hash算法
PROV_RSA_FULL RSA RSA RC2,RC4 MD5,SHA
PROV_RSA_SIG none RSA none MD5,SHA
PROV_RSA_SCHANNEL RSA RSA RC4,DES,Triple DES MD5,SHA
PROV_DSS DSS none DSS MD5,SHA
PROV_DSS_DH DH DSS CYLINK_MEK MD5,SHA
PROV_DH_SCHANNEL DH DSS DES,Triple DES
PROV_FORTEZZA KEA DSS Skipjack SHA
PROV_MS_EXCHANGE RSA RSA CAST
PROV_SSL RSA RSA Varies Varies

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

标签:API,加密,函数,PROV,RSA,引擎,密钥
From: https://www.cnblogs.com/saberwc/p/17281070.html

相关文章

  • 实验一-密码引擎-3-加密API研究
    密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客链接和代......
  • 注册用户密码加密和配置路由显示项目中media文件下的图片
    1.注册用户密码加密重写create方法使用.create_user 2.序列化icon字段有默认值返回  3.配置路由显示项目中media文件下的图片 ......
  • SMS-Activate API PHP SDK
    SMS-Activate是著名的短信验证码接码平台,其官网为https://sms-activate.org/。本文介绍SMS-ActivateAPIPHPSDK。代码如下: <?phpclassRequestErrorextendsException{private$responseCode;publicfunction__construct($errorCode){$thi......
  • RSA加密与解密(jsencrypt.js)
    写在开头RSA加密不过多解释,直接描述使用时的流程和方法RSA加密一般是公钥加密私钥解密,多用于前台公钥加密传参给后台,后台私钥解密。本次我用到的场景是跨系统地址栏传参,参数需要加密处理。使用RSA加密时需要用到jsencrypt,使用方法会介绍怎么安装及使用jsencrypt介绍jsencrypt......
  • yapi文档使用说明记录
    yapi文档地址:http://192.168.0.97:3000/    在idea下载插件:easy-yapi  配置插件 在 Settings->Other Settings -> EasyAPI 中的 **server **栏中填写服务器地址:http://yapi.gwm.cn/在 Settings->Other Settings -> EasyAPI 的 **tokens **......
  • Springboot 系列 (26) - Springboot+HBase 大数据存储(四)| Springboot 项目通过 HBase
    ApacheHBase是Java语言编写的一款Apache开源的NoSQL型数据库,不支持SQL,不支持事务,不支持Join操作,没有表关系。ApacheHBase构建在ApacheHadoop和ApacheZookeeper之上。ApacheHBase:https://hbase.apache.org/HBase的安装配置,请参考“Springboot系列(24)-......
  • 自动生成接口文档coreapi的使用
    1.安装coreapi  2.路由中配置路由固定格式   3.视图类自动生成接口文档第一种_单一方法的视图   4.第二种_包含多个方法的视图_在类视图的文档字符串中_分开方法定义   5.生成接口文档的setting和路由配置   5_1.生成接口文档的setting......
  • 项目一众筹网05_02_[树形开发]菜单管理、API文档发布到web服务器、配置文件里面修改to
    系列文章目录文章目录系列文章目录08-页面显示树形结构-前端-使用真实数据09-准备zTree的API文档(因为现在没有图标)==API文档发布到web服务器上去==配置文件里面修改tomcat的默认端口号(只需改动3个地方)10-前端-显示图标-分析思路(-页面显示树形结构)11-前端-显示图标-代码实现(-页面......
  • 常用API(Math,System,Runtime,Object,Objects,BigInteger,BigDecimal,正则表达式)
    常用API(Math,System,Runtime,Object,Objects,BigInteger,BigDecimal,正则表达式)多使用帮助文档类型取值范围和默认值Math类:​ 概念:帮助我们进行数学计算的工具类,里面的方法都是静态的,所以无需实例化这个类​ 常用方法:​ abs::获取绝对值 absExact:获取绝对值 rou......
  • 使用Apipost自动化测试工具来优化测试流程
    随着项目研发进程的不断推进,软件功能不断增多,对于软件测试的要求也越来越高。为了提高测试效率和减少测试成本,许多软件测试团队借助于自动化测试工具来优化测试流程。Apipost也提供了自动化测试工具,在本文中,我们将探讨如何借助Apipost自动化测试工具来优化测试流程。Apipost......