数据加密中的des加密算法详解_第1页
数据加密中的des加密算法详解_第2页
数据加密中的des加密算法详解_第3页
数据加密中的des加密算法详解_第4页
数据加密中的des加密算法详解_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 8数据加密中的加密算法详解来自:免费范文网 转载请注明出处! 一个 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、2464 位减至 56位,所以实际密钥长度为 56位,2 / 8而每轮要生成 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加密的用法。3 / 8des_代码如下: using System; using ; using ; using ; public class EncryptStringDES public static void Main(String args) if ( , args0); return; / 使用 UTF8函数加密输入参数 4 / 8UTF8Encoding utf8Encoding = new UTF8Encoding(); byte inputByteArray = (args 0.ToCharArray(); / 方式一:调用默认的 DES实现方法 DES_CSP. DES des = (); / 方式二:直接使用 DES_CSP()实现 DES的实体 /DES_CSP DES = new DES_CSP(); / 初始化 DES加密的密钥和一个随机的、8 比特的初始化向量(IV) Byte key = 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef; 5 / 8Byte IV = 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef; = key; = IV; / 建立加密流 SymmetricStreamEncryptor sse = (); / 使用 CryptoMemoryStream方法获取加密过程的输出 CryptoMemoryStream cms = new CryptoMemoryStream(); / 将 SymmetricStreamEncryptor流中的加密数据输出到 6 / 8CryptoMemoryStream中 (cms); / 加密完毕,将结果输出到控制台 (inputByteArray); (); / 获取加密数据 byte encryptedData = ; / 输出加密后结果 (加密结果:); for (int i = 0; i csc des_ Microsoft (R) C# Compiler Version NGWS runtime 7 / 8 Copyright (C) Microsoft Corp 2000. All rights reserved. 运行实例: D:csharpdes_ 使用 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 8 / 8解密后数据: 使用 C#编写 DES加密程序的 framework DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对 DES算法进行攻击外,还没有发现更有效的办法。通过穷尽搜索空间,可获得总共 256(大约1016)个可能的密钥。如果每秒能检测一百万个的话,需要 2000年完成检测。可见,这是很难实现的。当然,随着科学技术的发展,当出现超

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论