首页 > 其他分享 >实验一(3)

实验一(3)

时间:2024-04-13 13:34:59浏览次数:32  
标签:加密 函数 证书 SDF 实验 密钥 ECC

Crypto API

简介

  • Windows CryptoAPI是Microsoft 公司提出的安全加密应用服务框架,也是PKI推荐使用的加密 API。它提供了在Win32 环境下使用认证、编码、加密和签名等安全服务时的标准加密接口,用于增强应用程序的安全性与可控性。应用开发者可以在不了解复杂的加密机制和加密算法的情况下,简便、快速地开发出标准、通用和易于扩展的安全加密应用程序。

使用方式

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

函数

  • CryptoAPI共有五部分组成:简单消息函数、低层消息函数、基本加密函数、证书编解码函数和证书库管理函数。前三者可用于对敏感信息进行加密或签名处理,可保证网络传输信心的私有性;后两者通过对证书的使用,可保证网络信息交流中的认证性。

  • 基本加密函数:为开发加密应用程序提供了足够灵活的空间。所有CSP 的通讯都是通过这些函数。一个CSP 是实现所有加密操作的独立模块。在每一个应用程序中至少需要提供一个CSP来完成所需的加密操作。如果使用多于一个以上的CSP,在加密函数调用中就要指定所需的CSP。基本加密函数包含了以下几种:

    • 服务提供者函数:应用程序使用服务提供者函数来连接和断开一个CSP。

    • 密钥的产生和交换函数:密钥产生函数创建、配置和销毁加密密钥。他们也用于和其他用户进行交换密钥。

    • 编码/解码函数:用来对证书、证书撤销列表、证书请求和证书扩展进行编码和解码。

    • 数据加密/解密函数:这些函数支持数据的加密/解密操作。CryptEncrypt 和CryptDecrypt 要求在被调用前指定一个密钥。这个密钥可以由CryptGenKey、CryptDeriveKey 或CryptImportKey 产生。创建密钥时要指定加密算法。CryptSetKeyParam 函数可以指定额外的加密参数。

    • 哈希和数字签名函数:这些函数在应用程序中完成计算哈希、创建和校验数字签名。

  • 证书和证书库函数:这组函数管理、使用和取得证书、证书撤销列表和证书信任列表。这些函数可以分成一下几组:

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

    • 维护函数

    • 证书撤销列表函数

    • 证书信任列表函数

    • 扩展属性函数

  • 证书验证函数:证书验证是通过CTL 和证书列表进行的。

    • 证书链验证函数
  • 消息函数:CryptoAPI 消息函数包括两组——低级消息函数和简化消息函数。

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

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

PKCS#11

简介

  • PKCS#11(简称P11)是针对密码设备的接口指令标准。P11模型中重要的概念之一是slot,也称为槽。一个slot为一个密码设备对象。某个打开的slot会话称之为session。Session之间存在不同的验证权限。而同一个slot的不同的session之间存在操作的互相影响性,同时在某些状况下,权限会发生同步。另外一个重要的概念是对象。P11中支持几种重要的对象,如公钥、私钥、对称密钥,数据对象等。

使用方式

  • 提供了与加密令牌(如智能卡)交互的标准接口。
  • 可以用于访问加密令牌中的密钥、进行加密、解密等操作。
  • 在编程中,需要首先初始化 PKCS#11 模块,然后通过相应的函数进行密钥管理、加密操作等。

函数




GMT 0016-2012

简介

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

使用方式


函数

  • 设备管理系列函数:
  • 访问控制系列函数
  • 应用管理函数
  • 容器管理系列函数
  • 密码服务系列函数

GMT 0018-2012

简介

  • 本标准的目标是为公钥密码基础设施应用体系框架下的服务类密码设备制定统一的应用接口标准,通过该接口调用密码设备,向上层提供基础密码服务。为该类密码设备的开发、使用及检测提供标准依据和指导,有利于提高该类密码设备的产品化、标准化和系列化水平。

使用方式

函数

  • 设备管理类函数:

    • 打开设备:SDF_OpenDevice

    • 关闭设备:SDF_CloseDevice

    • 创建会话:SDF_OpenSession

    • 关闭会话:SDF_CloseSession

    • 获取设备信息:SDF_GetDeviceInfo

    • 产生随机数:SDF_GenerateRandom

    • 获取私钥使用权限:SDF_GetPrivateKeyAccessRight

    • 释放私钥使用权限:SDF_ReleasePrivateKeyAccessRight

  • 密钥管理类函数:

    • 导出 RSA 签名公钥:SDF_ExportSignPublicKey_RSA

    • 导出 RSA 加密公钥:SDF_ExportEncPublicKey_RSA

    • 产生RSA非对称密钥对并输出:SDF_GenerateKeyPair_RSA

    • 生成会话密钥并用内部RSA公钥加密输出:SDF_GenerateKeyWithIPK_RSA

    • 生成会话密钥并用外部RSA公钥加密输出:SDF_GenerateKeyWithEPK_RSA - 导人会话密钥并用内部RSA私钥解密:SDF_ImportKeyWithISK_RSA

    • 基于 RSA 算法的数宇倍封转换:SDF_ExchangeDigitEnvelopeBaseOnRSA

    • 导出 ECC 签名公钥:SDF_ExportSignPublicKey_ECC

    • 导出 ECC 加密公钥:SDF_ExportEncPublicKey_ECC

    • 产生ECC非对称密钥对并输出:SDF_GenerateKeyPair_ECC

    • 生成会话密钥并用内部ECC公钥加密输岀:SDF_GenerateKeyWithIPK_ECC - 生成会话密钥并用外部ECC公钥加密输出:SDF_GenerateKeyWithEPK_ECC

    • 导入会话密钥并用内部ECC私钥解密:SDFJmportKeyWithlSKJECC

    • 生成密钥协商参数并输出:SDF_GenerateAgreementDataWithECC

    • 计算会话密钥:SDF_GenerateKey WithECC

    • 产生协商数据并计算会话密钥:SDF—GenerateAgreementDataAndKeyWithECC

    • 基于 ECC算法的数字信封转换:SDF_ExchangeDigitEnvelopeBaseOnECC

    • 生成会话密钥并用密钥加密密钥加密输出: SDF_GenerateKeyWithKEK

    • 导入会话密钥并用密钥加密密钥解密:SDF_ImportKeyWithKEK

    • 销毁会话密钥:SDF_DestroyKey

  • 非对称算法运算类函数

    • 内部公钥 RSA 运算:SDF_ExternalPublicKeyOperation_RSA

    • 内部公钥 RSA 运算:SDF_InternalPublicKeyOperation_RSA

    • 内部私钥 RSA 运算:SDF_InternalPrivateKeyOperation_RSA

    • 外部密钥 ECC 验证:SDF_ExternalVerify_ECC

    • 内部密钥 ECC 签名:SDF_InternalSign_ECC

    • 内部密钥 ECC 验证:SDF_InternalVerify_ECC

    • 外部密钥 ECC 加密:SDF_ExternalEncrypt_ECC

  • 对称算法运算类函数

    • 对称加密:SDF_Encrypt

    • 对称解密:SDF_Decrypt

    • 计算MAC:SDF_CalculateMAC

  • 杂凑运算类函数

    • 杂凑运算初始化:SDF_HashInit

    • 多包杂凑运算:SDF_HashUpdate

    • 杂凑运算结束:SDF_HashFinal

异同

  • 异同点:

    • Crypto API 和 PKCS#11 是通用的加密标准,提供了加密、解密、签名、验证等功能,而 GMT 0016-2012 和 GMT 0018-2012 则是针对具体算法的标准,分别定义了 ECDSA 数字签名和椭圆曲线加密的规范。

    • PKCS#11 主要用于与加密令牌交互,而 Crypto API 则是用于通用的加密操作。

    • GMT 0016-2012 和 GMT 0018-2012 都是基于椭圆曲线密码学的标准,但一个用于数字签名,一个用于加密。

标签:加密,函数,证书,SDF,实验,密钥,ECC
From: https://www.cnblogs.com/20211404yht/p/18120710

相关文章

  • c语言实验2
    TASK1#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5intmain(){intnumber;inti;srand(time(0));for(i=0;i<N;++i){number=rand()%65+1;printf("20238331%04d\n",number);}system(&qu......
  • 实验1-老年人手机原型设计
    一、实验题目:原型设计二、实验目的:掌握产品原型设计方法和相应工具使用。三、原型工具优缺点对比:1.墨刀优点:功能强大:可满足产品经理、设计师、开发在产品设计和团队协作上的主要需求,不需要采购多款工具来回切换同步。  2.功能特色:内置丰富的素材广场、图文结合的PRD模......
  • 实验一 原型设计—游戏商城app
    问题一1.墨刀是一款在线原型工具,具有丰富的组件库和模板,允许设计师创建具有丰富交互元素的原型。可以快速创建各种类型的原型。还支持实时协作和云端存储,方便团队成员之间的沟通和合作。优点:墨刀支持实时协作,团队成员可以在原型上直接评论和批注,方便及时沟通和反馈;多人在线编......
  • 实验一原型设计
    一、对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点。(1)墨刀(Moqupslus)优点:易用性高:墨刀提供了直观易用的界面,让用户能够快速上手。在线协作:支持团队在线协作,多人可以实时编辑同一个项目。可视化编辑:提供丰富的可视化编辑工具,方便用户创建高保真的原......
  • 实验一
    一、对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(至少3条)。1.墨刀适用领域:墨刀适用于一些简单,快速的在线原型设计工作,设计便捷,协同办公效率高;但是使用界面免费有限页面数量,和受网络影响可能导致页面丢失让墨刀下降了一个层次,通过Axure对比,原型末班不......
  • Intel MacBook Pro+macOS 14配置Games101实验环境
    参考:求一个games101图形学课程的环境配置教程,最好能够简单易懂,CSDN教程根本看不懂什么意思?-不泊的回答-知乎https://www.zhihu.com/question/459126051/answer/3420947842macos现在怎么装homebrew?-MyloZ的回答-知乎https://www.zhihu.com/question/340411846/answe......
  • 实验1 原型设计
    一、实验题目:原型设计二、实验目的:掌握产品原型设计方法和相应工具使用。三、实验要求:(1)对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点。一、Axure的优缺点1.适用领域:适用于复杂的桌面和移动应用设计。适合需要高度交互设计和详细文档输出的专业设......
  • 实验一原型设计
    对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点1.墨刀优点:云端操作,网页分享,墨刀的APP原型可以支持下载在手机里界面优美整洁。简洁的界面在一定程度上有助于提高开发人员的效率。强大的演示能力。墨刀在轻量......
  • 实验2 C语言分支与循环基础应用编程 王刚202383310053
    1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55intmain()6{7intnumber,i;8srand(time(0));9for(i=0;i<N;i++)10{number=rand()%65+1;11printf("20238331%04d\n",number);12}13sy......
  • 实验一
    一、原型工具优缺点对比墨刀、Axure、Mockplus都是常见的原型设计工具,它们在适用领域和优缺点上有着各自的特点:墨刀:适用领域:墨刀适用于快速原型设计和团队协作。它的界面简洁易用,支持多种交互和动画效果,适合用于移动应用和网页的设计。优点:简单易上手,无需编码经验;提供丰富的交......