基于某cryptoapi地文件资料加解密系统地设计与实现

基于某cryptoapi地文件资料加解密系统地设计与实现

ID:34550410

大小:326.84 KB

页数:33页

时间:2019-03-07

基于某cryptoapi地文件资料加解密系统地设计与实现_第1页
基于某cryptoapi地文件资料加解密系统地设计与实现_第2页
基于某cryptoapi地文件资料加解密系统地设计与实现_第3页
基于某cryptoapi地文件资料加解密系统地设计与实现_第4页
基于某cryptoapi地文件资料加解密系统地设计与实现_第5页
资源描述:

《基于某cryptoapi地文件资料加解密系统地设计与实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、标准实用文案基于CryptoAPI的文件加解密系统的设计与实现摘要:随着网络技术的快速发展,使我们的生活丰富多彩,工作的效率也提高了不少。尽管网络的出现给我们带来了很多的福利和方便,但网络安全问题也在时时困扰着我们,病毒、黑客的侵犯,各种威胁之声的不断传出,网络安全问题也就成为了社会关注的重点问题。文件的安全就是安全问题之一,文件可能会包含了很多的机密,一旦被黑客窃取,那损失是不可想象的。所以下面我们简单的谈谈文件加解密的相关算法。因为过于复杂的加密算法实现起来非常困难,所以在过去,许多应用程序只能使用非常简单的加密技术,这样做的结果就是加密

2、的数据很容易就可以被人破译。而使用Microsoft提供的加密应用程序接口(即CryptographyAPI),或称CryptoAPI,就可以方便地在应用程序中加入强大的加密功能,而不必考虑基本的算法。我们利用CryptoAPI来实现对文件的加密和解密。关键词:文件的加解密,CryptoAPI。一、设计要求与实现:基于CryptoAPI的文件加解密系统的设计与实现二、设计环境与工具1软件环境、工具Windows8.1、visualstudio20122CryptoAPI加密服务提供者CSP加密服务相关的所有操作都在CSP实现,它是真正实现加密

3、相关服务的独立模块,既可以由软件实现也可以由硬件实现。每个CSP必须包含一个动态链接库和一个签名文件,签名文件用于保证底层CSP的安全性,CryptoAPI接口在加载每个CSP时,需要验证CSP的签名,如果签名无效,则拒绝加载,CSP的签名由微软公司签发。同时,每个CSP都有一个名字和一个类型,名字必须是唯一的,这样便于CryptoAPI找到对应的CSP。CSP是真正实行加密的独立模块,可以由软件实现也可以由硬件实现。CSP必须符合CryptoAPI接口规范。每个CSP有一个密钥库,密钥库用于存储密钥。每个密钥库包括一个或多个密钥容器(Key

4、Containers)。每个密钥容器中包含属于一个特定用户的所有密钥对。每个密钥容器被赋予一个唯一的名字。在销毁密钥容器前,CSP将永久保存每一个密钥容器,包括保存每个密钥容器中的公/私钥对。 文档标准实用文案每个CSP都有一个名字和一个类型。每个CSP的名字是唯一的,这样便于CryptoAPI找到对应的CSP。目前已经有9种CSP类型,并且还在增长。下表列出它们支持的密钥交换算法、签名算法、对称加密算法和Hash算法。二、详细设计(1)原理概述CryptoAPI是一组函数,为了完成数学计算,必须具有密码服务提供者模块(CSP)。Micros

5、oft通过捆绑RSABaseProvider在操作系统级提供一个CSP,使用RSA公司的公钥加密算法,更多的CSP可以根据需要增加到应用中。事实上,CSP有可能与特殊硬件设备(如智能卡)一起来进行数据加密。CryptoAPI接口允许简单的函数调用来加密数据,交换公钥,散列一个消息来建立摘要以及生成数字签名。它还提供高级的管理操作,如从一组可能的CSP中使用一个CSP。此外,CryptoAPI还为许多高级安全性服务提供了基础,包括用于电子商务的SET,用于加密客户机/服务器消息的PCT,用于在各个平台之间来回传递机密数据和密钥的PFX,代码签名

6、等等。数据加解密,程序分为四大主要部分:1、获取CSP句柄:真正实现加密相关服务的独立模块。2、获取加密密钥:进行加、解密,必然需要构造密钥。两种方法:通过哈希值构造通过随机数构造。3、数据加密与解密:实现对数据进行加密解密操作。4、相关资源释放:释放申请的相关资源。文档标准实用文案(下图为数据加解密的流程)(参考《网络安全程序设计教程》李红娇 著)(2)CryptoAPI应用程序的编译环境⑴包含的头文件#include#include⑵包含的静态链接库链接CryptoAPI函数必须有静态库Cry

7、pto32.lib的支持,部分CryptoAPI函数可能还需要静态库advapi32.lib及CryptUI.lib的支持。⑶若在VC++6.0和VS2012上编译程序,则需加上以下语句#ifndef_WIN32_WINNT#define_WIN32_WINNT0x0400#endif(3)实验步骤1) 在VS2012下实现基于CryptoAPI的文件加密。 a、创建会话密钥为保证数据加密效率,CryptoAPI规定数据加密操作必须基于对称密码进行。于是,加密方进行加密操作首先必须创建会话密钥,一般可以通过调用函数CryptoGenKey或C

8、ryptDeriveKey创建,在创建会话密钥时指定加密算法。b、加密数据 在创建会话密钥后,则可以调用CryptEncrypt函数进行加密操作。加密操作需要注意的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。