基于PKI的电子公文安全传输系统的设计研究 电子公文传输系统

来源:人文社科 发布时间:2019-03-12 05:36:21 点击:

  摘要:为解决Internet的安全问题,世界各国进行了多年的研究,初步形成了一套解决方案,即目前被广泛采用的PKI体系结构。PKI体系结构采用证书管理公钥,通过第三方的可信机构CA,把用户的公钥和用户的其他标识信息捆绑在一起,在Internet网上验证用户的身份。PKI体系结构把公钥密码和对称密码结合起来,保证网上数据的机密性、完整性。
  关键词:PKI电子公文 安全传输系统 设计 研究
  
  一、PKI的涵义
  PKI是Public Key Infrastructure的缩写,即“公钥基础设施”,是利用公钥技术实现电子商务安全的一种体系,网络通讯、网上交易是由它来保证安全的。
  二、PKI技术
  PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。
  三、公文加密的基本算法
  1、RSA算法
  RSA算法是在1977年由美国麻省理工学院MIT的RonalRivest,AdiShamir和LenAdleman三位年轻教授提出,并以三人的姓氏命名为RSA算法。该算法利用了数论领域中把两个大质数相乘生成一个合数十分容易,但要把一个合数分解为两个质数却十分困难,因此,可以将乘积公开作为加密密钥。RSA是目前最有影响力的公钥加密算法。
  2、HASH算法
  HASH,一般翻译做“散列”,或音译为“哈希”的,就是一种将任意长度的消息,压缩到某一固定长度消息摘要的函数。主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值。HASH就是找到一种数据内容和数据存放地址之间的映射关系。
  3、文件的HASH值
  文件的数字文摘通过HASH函数计算得到。不管文件长度如何,它的HASH函数计算结果是一个固定长度的数字。HASH算法是一个不可逆的单向函数。采用安全性高的HASH算法,如MD5、SHA1时,两个不同的文件几乎不可能得到相同的HASH结果。因此,一旦文件被修改,就可检测出来。
  四、电子公文安全传输系统的设计研究
  1、系统总体功能设计
  电子公文安全传输系统总体分为两个大部分:即CA系统和用户系统。
  CA系统:其功能包括接收用户申请、审批申请、认证证书和反馈结果。
   用户系统:其功能包括生成私钥以及请求证书、申请数字证书、申请结果查询、生成摘要、摘要签名、公文加密、生成数字信封、发送公文、打开数字信封、公文解密、摘要认证、接收公文。
  (1)申请数字证书。用户生成私钥和请求证书,将请求证书发送至CA,CA通过审核,对请求证书进行认证,并生成数字证书,CA将数字证书颁发给申请的用户。
  (2)发送电子公文。用户对电子公文的明文摘要进行签名,对电子公文进行对称加密并生成密码文件;用接收方数字证书对密码进行加密,生成数字信封;发送方将数字信封和电子公文密码一起发送至接收方。
  (3)接收电子公文和数字信封。接收方用私钥打开数字信封,生成密码对公文进行对称解密,解密后将发送方的数字证书对签字进行认证,并对比电子公文明文摘要,以此来判断公文是否被恶意篡改。
  (4)CA审核用户资料并颁发数字证书。CA接收用户的申请,审核用户资料,通过审核的用户,CA将为其颁发数字证书,并反馈审核结果。
  2、系统程序设计
  (1)生成私钥及请求证书。用户申请私钥及其请求证书,首先输入保存私钥的位置,填写申请资料,输入保存请求证书的位置,执行程序,私钥和请求证书就生成了,生成私钥函数:
  RSA *RSA_generate_key(int num, unsigned long e,void (*callback)(int,int,void *), void *cb_arg);产生一个模为num位的密钥对,e为公开的加密指数,一般为65537(ox10001),假如后两个参数不为NULL,会有调用。
  (2)公文加密。发送方输入公文明文文件、摘要签字、数字证书,系统将判断数字证书是否有效。只有数字证书有效,程序才继续执行。公文加密阶段使用对称加密,输入两次加密密码,若密码一致,则保存密码文件已生成的加密公文文件。
  (3)公文解密。接收方接收到公文后,输入电子公文及密码文件,或直接输入解密密码,就能对文件进行解密,解密成功后,将公文文件保存。
  (4)发送公文。发送方选择要发送的对象,然后输入该公文密文和数字信封文件,再将文件发送出去,这时将文件上传至FTP服务器,并更新数据库。当接收方登陆系统时,系统会提示有新的公文,接收方可从该FTP服务器上下载该文件,上传至FTP服务器函数:
  private FtpStatusCode UploadFun(string fileName, string uploadUrl)
  {
  Stream requestStream = null;
  FileStream fileStream = null;
  FtpWebResponse uploadResponse = null;
  FtpWebRequest uploadRequest =
  (FtpWebRequest)WebRequest.Create(uploadUrl);
  uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;
  uploadRequest.Proxy = null;
  NetworkCredential nc = new NetworkCredential();
  nc.UserName = "libin8537";
  nc.Password = "123321";
  uploadRequest.Credentials = nc; //修改getCredential();
  requestStream = uploadRequest.GetRequestStream();
  fileStream = File.Open(fileName, FileMode.Open);
  byte[] buffer = new byte[1024];
  int bytesRead;
  while (true)
  {
  bytesRead = fileStream.Read(buffer, 0, buffer.Length);
  if (bytesRead == 0)
  break;
  requestStream.Write(buffer, 0, bytesRead);
  }
  requestStream.Close();
  
  uploadResponse= (FtpWebResponse)uploadRequest.GetResponse();
  }
  (5)接收公文。接收方选择发送方,保存接收公文的位置执行程序,这时文件将从FTP服务器上下载到客户端,从FTP服务器下载函数:
  public bool Download(string filepath,string username,string fname)
  {
  //String onlyFileName = Path.GetFileName(fileName);
  string newFileName = filepath + "\\" + "(" + depart + ")" + fname;
  string url = "ftp://96.46.11.42/web/" + username + "/" + sendname + "/" + fname;
  Connect(url);//连接
  reqFTP.Credentials = new NetworkCredential("libin8537", "123321");
  FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  Stream ftpStream = response.GetResponseStream();
  long cl = response.ContentLength;
  int bufferSize = 2048;
  int readCount;
  byte[] buffer = new byte[bufferSize];
  readCount = ftpStream.Read(buffer, 0, bufferSize);
  FileStream outputStream = new FileStream(newFileName, FileMode.Create);
  while (readCount > 0)
  {
  outputStream.Write(buffer, 0, readCount);
  readCount = ftpStream.Read(buffer, 0, bufferSize);
  }
  ftpStream.Close();
  outputStream.Close();
  response.Close();
   }
  (6)摘要认证。接收方接收到公文并解密后,选择明文文件,生成摘要,输入签字的文件和发送方的数字证书,这时将对比签字内容和公文明文摘要是否一致,如果一致,则证明公文内容没有被篡改;如果内容不一致,则证明公文内容已经被恶意篡改。
  3、系统的数据库设计
  ACCESS是关系型的桌面数据库管理系统,可以用来建立中、小型的数据库应用系统。它最重要的特征就是不必编写程序,创建数据表非常简便。电子公文安全传输系统的后台数据库,包括的主要内容如表5-1所示。
  表5-1 电子公文安全传输系统数据结构
  编号 数据名称 数据结构 说明
  1 用户名 varchar 主键、用户登陆名称
  2 密码 varchar
  3 用户类型 varchar 判断用户身份
  4 姓名 varchar
  5 性别 varchar
  6 身份证号 varchar
  7 工作证号 varchar
  8 所在部门 varchar 用户所在部门
  9 请求证书 varchar 记录是否有请求证书,通知CA
  10 反馈结果 varchar CA反馈结果,并告知用户
  11 发送公文 varchar 记录发送公文,并通知用户
  12 审批请求 varchar 记录CA未审批的请求
  数据库功能主要包括一下几个部分:
  (1)检索功能:采用SQL语言嵌入检索
  Data1.Select = "SELECT * FROM 用户信息 WHERE。
  (2)新增功能:Data1.AddNew
  (3)修改功能:Data1.Edit
  (4)删除功能:Data1.Delete
  (5)保存功能:Data1.Update
  
  个人简介:
  梁玉凤,女,1972年出生,黑龙江哈尔滨人,副教授,硕士,研究方向:计算机基础教学及数据库。

推荐访问:公文 传输 研究 设计
上一篇:信息安全专业【基于企业门户信息安全的方案设计】
下一篇:最后一页

Copyright @ 2013 - 2018 四八文档网-文档下载,办公室文档软件 All Rights Reserved

四八文档网-文档下载,办公室文档软件 版权所有 沪ICP备09019570号-4