数据加密中的DES加密算法详解

来源 :商场现代化 | 被引量 : 0次 | 上传用户:qqqwe12345678
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要] 本文详细介绍了DES数据加密算法的原理,并给出了一个例子演示了如何使用c#中的加密包进行DES算法加密,最后对DES进行了评价。
  [关键词] 加密 对称 非对称 DES 密钥 明文 密文
  
  从最初的保密通信发展到目前的网络信息加密,信息加密技术一直伴随着信息技术的发展而发展。作为计算机信息保护的最实用和最可靠的方法,信息加密技术被广泛应用到信息安全的各个领域。信息加密技术是一门涉及数学、密码学和计算机的交叉学科。现代密码学的发展,使信息加密技术已经不再依赖于对加密算法本身的保密,而是通过在统计学意义上提高破解的成本来提供高加密算法的安全性。
  密码学是一门古老而又年轻的科学,它用于保护军事和外交通信,可追溯到几千年前。1976年Diffie和Hellman的“密码学的新方向”一文引发的密码学的一场革命,开创了公钥密码学的新纪元。
  常用加密算法主要用来对敏感数据、摘要、签名等信息进行加密。按照密钥方式划分,可分为对称加密算法和非对称加密算法。
  
  一、对称加密算法
  
   对称加密算法有时又叫做传统密码算法,加密密钥可以从解密密钥中推导出来,解密密钥也可以从加密密钥中推导出来。在大多数的对称算法中,加密密钥和解密密钥是相同的,因此也成为秘密密钥算法或者单密钥算法。它要求发送发和接收方在安全通信之前先商定一个密钥。对称算法的安全性依赖于密钥,所以密钥的保密性对通信至关重要。对称加密算法主要有分组加密和流加密两类。分组加密是指将明文分成固定商都的组,用同一密钥分别对每一组加密,输出固定长度的密文,典型代表:DES、3DES、IDEA。
  
  二、非对称加密算法
  
  非对称加密算法有时又叫做公开密钥算法。其中用到两个密钥。一个是公共的,一个事私有的。一个密钥用于加密,另一个密钥用于解密。两个密钥不能够互相推导。常用的非对称加密算法有RSA公钥算法、Diffie-Hellman算法和ECC椭圆曲线密码。
  我们详细分析一下DES加密算法的处理过程。
  DES加密算法是分组加密算法,明文以64位为单位分成块。64位数据在64位密钥的控制下,经过初始变换后,进行16轮加密迭代:64位数据被分成左右两半部分,每部分32位,密钥与右半部分相结合,然后再与左半部分相结合,结果作为新的右半部分;结合前的右半部分作为新的左半部分。这一系列步骤组成一轮。这种轮换要重复16次。最后一轮之后,再进行初始置换的逆置换,就得到了64位的密文。
  
  DES的加密过程可分为加密处理,加密变换和子密钥生成几个部分组成。
  1.加密处理过程
  (1)初始变换。加密处理首先要对64位的明文按表1所示的初始换位表IP进行变换。表中的数值表示输入位被置换后的新位置。例如输入的第58位,在输出的时候被置换到第1位;输入的是第7位,在输出时被置换到第64位。
  
  (2)加密处理。上述换位处理的输出,中间要经过16轮加密变换。初始换位的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮加密变换。其中,经过n轮处理后的点左右32位分别为Ln和Rn,则可做如下定义:
  Ln=Rn-1
  Rn=Ln-1
  其中,kn是向第n轮输入的48位的子密钥,Ln-1和Rn-1分别是第n-1轮的输出,f是Mangler函数。
  (3)最后换位。进行16轮的加密变换之后,将L16和R16合成64位的数据,再按照表2所示的
  最后换位表进行IP-1的换位,得到64位的密文,这就是DES算法加密的结果。
  
  2.加密变换过程
  通过重复某些位将32位的右半部分按照扩展表3扩展换位表扩展为48位,而56位的密钥先移位然后通过选择其中的某些位减少至48位,48位的右半部分通过异或操作和48位的密钥结合,并分成6位的8个分组,通过8个S-盒将这48位替代成新的32位数据,再将其置换一次。这些S-盒输入6位,输出4位。S盒如表5所示。
  
  一个S盒中具有4种替换表(行号用0、1、2、3表示),通过输入的6位的开头和末尾两位选定行,然后按选定的替换表将输入的6位的中间4位进行替代,例如:当向S1输入011011时,开头和结尾的组合是01,所以选中编号为1的替代表,根据中间4位1101,选定第13列,查找表中第1行第13列所示的值为5,即输出0101,这4位就是经过替代后的值。按此进行,输出32位,再按照表4 单纯换位表P进行变换,这样就完成了f(R,K)的变换,如图2所示。
  
  3.子密钥生成过程
  钥通常表示为64位的自然数,首先通过压缩换位PC-1去掉每个字节的第8位,用作奇偶校验,因此,密钥去掉第8、16、24……64位减至56位,所以实际密钥长度为56位,而每轮要生成48位的子密钥。
  输入的64位密钥,首先通过压缩换位得到56位的密钥,每层分成两部分,上部分28位为C0,下部分为D0。C0和D0依次进行循环左移操作生成了C1和D1,将C1和D1合成56位,再通过压缩换位PC-2输出48位的子密钥K1,再将C1和D1进行循环左移和PC-2压缩换位,得到子密钥K2......以此类推,得到16个子密钥。密钥压缩换位表如表6所示。在产生子密钥的过程中,L1、L2、L9、L16是循环左移1位,其余都是左移2位,左移次数如表7所示。
  
  4.解密处理过程
  从密文到明文的解密过程可采用与加密完全相同的算法。不过解密要用加密的逆变换,就是把上面的最后换位表和初始换位表完全倒过来变换。这里不再赘述。
  下面这个例子中演示了如何使用c#中的加密包进行DES算法加密,大家可以借助这个例子一窥DES加密的用法。
  des_demo.cs代码如下:
  using System;
  using System.Security.Cryptography;
  using System.IO;
  using System.Text;
  public class EncryptStringDES {
   public static void Main(String[] args) {
   if (args.Length < 1) {
   Console.WriteLine("Usage: des_demo
  encrypt>", args[0]);
   return;
   }
   // 使用UTF8函数加密输入参数
   UTF8Encoding utf8Encoding = new UTF8Encoding();
   byte[] inputByteArray = utf8Encoding.GetBytes(args
  [0].ToCharArray());
   // 方式一:调用默认的DES实现方法DES_CSP.
   DES des = DES.Create();
   // 方式二:直接使用DES_CSP()实现DES的实体
   //DES_CSP DES = new DES_CSP();
   // 初始化DES加密的密钥和一个随机的、8比特的初始化向量(IV)
   Byte[] key = {0x01, 0x23, 0x45, 0x67, 0x89, 0xab,
  0xcd, 0xef};
   Byte[] IV = {0x12, 0x34, 0x56, 0x78, 0x90, 0xab,
  0xcd, 0xef};
   des.Key = key;
   des.IV = IV;
   // 建立加密流
   SymmetricStreamEncryptor sse = des.CreateEncryptor();
   // 使用CryptoMemoryStream方法获取加密过程的输出
   CryptoMemoryStream cms = new CryptoMemoryStream();
   // 将SymmetricStreamEncryptor流中的加密数据输出到
  CryptoMemoryStream中
   sse.SetSink(cms);
   // 加密完毕,将结果输出到控制台
   sse.Write(inputByteArray);
   sse.CloseStream();
   // 获取加密数据
   byte[] encryptedData = cms.Data;
   // 输出加密后结果
   Console.WriteLine("加密结果:");
   for (int i = 0; i < encryptedData.Length; i++) {
   Console.Write("{0:X2} ",encryptedData[i]);
   }
   Console.WriteLine();
   //上面演示了如何进行加密,下面演示如何进行解密
   SymmetricStreamDecryptor ssd = des.CreateDecryptor();
   cms = new CryptoMemoryStream();
   ssd.SetSink(cms);
   ssd.Write(encryptedData);
   ssd.CloseStream();
   byte[] decryptedData = cms.Data;
  char[] decryptedCharArray = utf8Encoding.GetChars(decryptedData);
   Console.WriteLine("解密后数据:");
   Console.Write(decryptedCharArray);
   Console.WriteLine(); }
  }
  编译:
  D:\csharp>csc des_demo.cs
  Microsoft (R) C# Compiler Version 7.00.8905 [NGWS runtime
  2000.14.1812.10]
  Copyright (C) Microsoft Corp 2000. All rights reserved.
  运行实例:
  D:\csharp>des_demo.exe 使用C#编写DES加密程序的framework
  加密结果:
  3D 22 64 C6 57 D1 C4 C3 CF 77 CE 2F D0 E1 78 2A 4D ED 7A A8
  83 F9 0E 14 E1 BA 38
  7B 06 41 8D B5 E9 3F 00 0D C3 28 D1 F9 6D 17 4B 6E A7 41 68
  40
  解密后数据:
  使用C#编写DES加密程序的framework
  DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。通过穷尽搜索空间,可获得总共256(大约7.2×1016)个可能的密钥。如果每秒能检测一百万个的话,需要2000年完成检测。可见,这是很难实现的。当然,随着科学技术的发展,当出现超高速计算机后,可以考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。随着信息化和数字化社会的发展,随着计算机和Inte rnet的普及,密码学必将在国家安全、经济交流、网络安全及人民生活等方面发挥更大作用。
  
  参考文献:
  [1]叶忠杰:计算机网络安全技术(第二版).科学出版社 2003.8
  [2]王宝会王大印等:新世纪计算机信息安全教程.电子工业出版社 2006.1
  [3]Diffie W,Hellman M. New directions in cryptography. IEEE Transactions on Information Theory,1976,22(6):644-654
  [4]张基温:信息系统安全原理.中国水利水电出版社,2005.1
  [5]顾巧论蔡振山贾春福:计算机网络安全.科学出版社,2003.1
  [6]蔡立军计算机网络安全技术.中国水利水电出版社,2002.1
  [7] http://www.enet.com.cn
其他文献
[摘 要] 作业成本法较之传统的成本计算方法,能够提供更准确的成本信息。但在制药企业作业成本法的应用,国内尚无研究。本文通过对制药企业合成生产车间的调研,在分析企业资源和划分作业中心的基础上,研究制药企业应该如何确定成本动因,从而为准确计算产品成本创造条件。  [关键词] 资源 作业中心 资源动因 作业动因    一、制药企业成本动因理论分析    作业成本法比传统的成本计算法更科学地揭示了单位产
期刊
[摘 要] 本文主要分析了国家开发银行IT服务外包过程中的风险管理措施及经验,并就银行业务外包的风险防范问题得出了启示性结论。  [关键词] 国家开发银行 IT服务外包 风险控制    一、国家开发银行IT服务外包的实践    随着银行业的改革与开放,国内银行类金融机构面临着日趋激烈的竞争。作为当时的政策性金融机构,国家开发银行(以下简称国开行)按照“办最好银行”的战略目标,业务规模不断扩大,内部
期刊
[摘 要] 供应链中断是911恐怖袭击发生后开始被企业界认识,之后频繁出现的自然灾害对企业运营的影响又不断强化此概念。本文构建了企业评价供应链中断风险的决策矩阵,6类供应链中断风险考虑6个评价指标,以TOPSIS方法得出最终评估结果,再辅以单因素敏感性风险对排序结果的合理性进行论证。本研究为供应链管理人员提供了评价供应链中断风险的方法,帮助其选择应优先消除的供应链中断风险提供决策依据。  [关键词
期刊
[摘 要] 中国网络购物交易总额较上一年度大幅提高,得到了来自B TO C网络购物的贡献,本文就B TO C网络购物发展的原因加以剖析,分析出B TO C网络购物模式的发展变化的主导因素。  [关键词] B TO C网络购物 发展 原因    网络上大大小小的网店正如火如荼的开展着业务,据艾瑞最新的分析评估结果,2009年第2季度中国网络购物的交易总额达到563.6亿元(其中还未包括付费数字产品下
期刊
自2005年报业遭遇经营拐点后,发展数字报业就成为传统报业的最优先选择,但与数字化探索的热情比,数字报业发展成效还乏善可陈。正如管理学家德鲁克说的,当今企业之间的竞争,不是产品之争,而是商业模式之争。我们认为,当前数字报业发展的瓶颈就在于对其商业模式认知的模糊与成功经验的缺失。  传统报业的式微是因忽视媒介市场网络化的现实。报业遭遇经营拐点的根本原因在于报业固守传统的商业模式而无视数字化、网络化对
期刊
[摘 要] 文章认为,新形势下,兼具长三角一体化发展与江苏沿海开发双重国家战略叠加优势下的南通,应以“点—轴系统”理论为指导,充分借鉴国际沿江、沿海开发的经验,实施江海联动开发战略,这是走具有南通特色的新型工业化道路、构建南通区域经济一体化发展新局面、实现南通经济持续跨越发展的必然选择。  [关键词] 新形势 江海联动 区域发展战略 南通    一、引言  在韦伯、廖什的区位理论以及克里斯塔勒的中
期刊
[摘 要] 财务管理作为财经类专业的核心课程之一,是一门应用型的学科。传统的教学方法过分注重理论知识的讲授,忽视了学生应用能力的培养。根据高职院校学生的特点改进现有教学模式存在的弊端,探索了如何对原有的财务管理教学方法进行改革和创新,加强高职学生应用能力训练,培养自主分析能力,创造性思维是突出高职特色的教学发展方向。  [关键词] 财务管理 模块化教学 案例教学法 计算机辅助教学    随着我国市
期刊
[摘要] 中国色彩历史文化主流地位的“中国红”,体现了人们在精神和物质上的追求,中华民族正是通过对这一抽象色彩的喜爱和崇拜,表达了内心深处对幸福美好生活的向往。通过探究“中国红”色彩的情感因素,进一步认识和分析“中国红”这一传统色彩的个性特征及其在设计中的运用。  [关键词] 中国红情感因素民族性象征性    一、生活中的“中国红”  生活中因为有了色彩而鲜活,红色是激情和运动的颜色,是喜庆与祥和
期刊
[摘要] 高新技术的产业化表现在两方面:一是以高新技术产品本身的方式存在;二是广泛应用于传统产业中。在我国尤应以后者作为高新技术产业化的切入点。因为传统产业不仅能为高新技术产业生存发展创造市场空间,而且用高新技术改造传统产业也是提高产业结构效率,加快产业结构高效化的要求。同时,其现实意义还在于搞活企业、扩大生产、从而扩大就业。  [关键词] 高新技术高新技术产业化传统产业高技术化    目前,我国
期刊
目前,国内公司的经营环境正在发生激烈的变化,特别是中国已正式加入WTO,全球化及竞争日益激烈:一是竞争市场本身的快速发展明显呈样出差异化,新的市场需求不断调整,特别是创新和新技术的产生,将引领着新的业务和客户需求;二是国内竞争市场格局进一步调整,国家政策的重大调整,行业的重组,资本市场的并购,竞争发展越来越市场化,越来越考验企业的可持续发展和管理能力;三是国外竞争都借入关的东风,对中国这个巨大的市
期刊