- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CryptoAPI的文件加解密系统的设计与实现选编
基于CryptoAPI的文件加解密系统的设计与实现
摘要:随着网络技术的快速发展,使我们的生活丰富多彩,工作的效率也提高了不少。尽管网络的出现给我们带来了很多的福利和方便,但网络安全问题也在时时困扰着我们,病毒、黑客的侵犯,各种威胁之声的不断传出,网络安全问题也就成为了社会关注的重点问题。文件的安全就是安全问题之一,文件可能会包含了很多的机密,一旦被黑客窃取,那损失是不可想象的。所以下面我们简单的谈谈文件加解密的相关算法。因为过于复杂的加密算法实现起来非常困难,所以在过去,许多应用程序只能使用非常简单的加密技术,这样做的结果就是加密的数据很容易就可以被人破译。而使用Microsoft提供的加密应用程序接口(即Cryptography API),或称CryptoAPI,就可以方便地在应用程序中加入强大的加密功能,而不必考虑基本的算法。我们利用CryptoAPI来实现对文件的加密和解密。
关键词:文件的加解密,CryptoAPI。
设计要求与实现:
基于CryptoAPI的文件加解密系统的设计与实现
设计环境与工具
1 软件环境、工具
Windows 8.1 、visual studio 2012
2 CryptoAPI加密服务提供者CSP
加密服务相关的所有操作都在CSP实现,它是真正实现加密相关服务的独立模块,既可以由软件实现也可以由硬件实现。每个CSP必须包含一个动态链接库和一个签名文件,签名文件用于保证底层CSP的安全性,CryptoAPI接口在加载每个CSP时,需要验证CSP的签名,如果签名无效,则拒绝加载,CSP的签名由微软公司签发。同时,每个CSP都有一个名字和一个类型,名字必须是唯一的,这样便于CryptoAPI找到对应的CSP。
CSP是真正实行加密的独立模块,可以由软件实现也可以由硬件实现。CSP必须符合CryptoAPI接口规范。
每个CSP有一个密钥库,密钥库用于存储密钥。每个密钥库包括一个或多个密钥容器(Key Containers)。每个密钥容器中包含属于一个特定用户的所有密钥对。每个密钥容器被赋予一个唯一的名字。在销毁密钥容器前,CSP将永久保存每一个密钥容器,包括保存每个密钥容器中的公/私钥对。
每个CSP都有一个名字和一个类型。每个CSP的名字是唯一的,这样便于CryptoAPI找到对应的CSP。目前已经有9种CSP类型???并且还在增长。下表列出它们支持的密钥交换算法、签名算法、对称加密算法和Hash算法。
二、详细设计
(1)原理概述
CryptoAPI是一组函数,为了完成数学计算,必须具有密码服务提供者模块(CSP)。Microsoft通过捆绑RSA Base Provider在操作系统级提供一个CSP,使用RSA公司的公钥加密算法,更多的CSP可以根据需要增加到应用中。事实上,CSP有可能与特殊硬件设备(如智能卡)一起来进行数据加密。CryptoAPI接口允许简单的函数调用来加密数据,交换公钥,散列一个消息来建立摘要以及生成数字签名。它还提供高级的管理操作,如从一组可能的CSP中使用一个CSP。此外,CryptoAPI还为许多高级安全性服务提供了基础,包括用于电子商务的SET,用于加密客户机/服务器消息的PCT,用于在各个平台之间来回传递机密数据和密钥的PFX,代码签名等等。
数据加解密,程序分为四大主要部分:
获取CSP句柄:真正实现加密相关服务的独立模块。
获取加密密钥:进行加、解密,必然需要构造密钥。
两种方法:通过哈希值构造通过随机数构造。
数据加密与解密:实现对数据进行加密解密操作。
相关资源释放:释放申请的相关资源。
(下图为数据加解密的流程)
(参考《网络安全程序设计教程》李红娇 著)
(2) CryptoAPI应用程序的编译环境
= 1 \* GB2 ⑴包含的头文件
#include windows.h
#include wincrypt.h
= 2 \* GB2 ⑵包含的静态链接库
链接CryptoAPI函数必须有静态库Crypto32.lib的支持,部分CryptoAPI函数可能还需要静态库advapi32.lib及CryptUI.lib的支持。
= 3 \* GB2 ⑶若在VC++6.0和VS2012上编译程序,则需加上以下语句
# ifndef _WIN32_WINNT
# define _WIN32_WINNT 0x0400
# endif
(3)实验步骤
1)?在VS2012下实现基于CryptoAPI的文件加密。?
a、创建会话密钥
为保证数据加密效率,CryptoAPI规定数据加密操作必须
您可能关注的文档
最近下载
- 金属工艺学 全套课件.ppt VIP
- 外研版(三起)(2024)三年级下册英语Unit 4《What’s your hobby?》第1课时教案 .pdf VIP
- Unit 4 What's your hobby 第三课时教案 2024-2025学年度 外研版英语三年级下册.docx VIP
- 老年患者麻醉管理专家共识.pptx
- 景区运营管理合作协议.doc VIP
- HGT21629-2021管架标准图图集标准.docx VIP
- 保健食品要掌握的全部基本知识【58页】.pptx VIP
- MDCG 2020-7 上市后临床随访 (PMCF) 计划模板中文版.docx VIP
- 基坑土方回填施工策划方案.doc VIP
- 半导体材料课件课件.pptx VIP
文档评论(0)