今天本想写一篇有关des算法的简介,无意中发现圈主已经完成了一篇,自认为无法写的更为详细具体。于是便略加补充后搬来了这里,希望大家不要怪游魂太懒惰。
密码技术是防止信息泄漏的技术,是信息安全技术中最重要和最基本的安全技术。
古典密码是私钥加密算法
现代密码(由乘积密码构成)包括DES, Blowfish, IDEA, LOKI, RC5, Rijndael (AES) 及其它一些算法
先来看看一些基本概念和密码学的基础知识:
对称算法可分为两类:分组密码和流密码。
       1.分组密码是将明文分成固定长度的组或块(如64比特为一组),然后用同一密钥和算法对每一块进行加密,输出密文的长度也是固定的。
       2.流密码(stream cipher)的主要原理是通过伪随机序列发生器产生性能优良的随机序列,使用该序列与明文序列叠加来输出密文序列。解密时,再用同一个随机序列与密文序列进行叠加来恢复明文。
分组密码中,
S-P network 替换-置换乘积密码的现代形式
S-P networks 是基于下列两种最基本的密码运算(前面介绍过):
替换( Substitution )一个二进制字用其它二进制字替换,这种替换函数就构成密钥,可以看作是一个大的查表运算,叫做 S-boxes
置换( Permutation )二进制字次序被打乱,重新排序的方法构成密钥,叫这种变换为 P-boxes
把这两种运算组合在一起,一些 S-boxes 由 P-box 连接,这种变换叫做混合变换(mixing transformations )。这种效果进一步解释为”雪崩(输入改变10bit, 导致近一半的比特发生变化)”与”完全性(每个输出比特是所有输入比特的复杂函数的输出)” 。这些设计原理是设计好的分组密码准则。 “雪崩”保证小的输入变化导致大的输出变化。完全性保证每个输出比特依赖于所有的输出比特。
   由于自己也在学习阶段,因此关于des这部分,专业学生都很容易就明白,一次写得不算详细,但希望能给大家提供一点思路,嘿嘿 (这是圈主的话 ,嘿嘿 ,游魂虽说进行了补充说明,但本人也是学生 ,有什么不足,还请多多包涵。)
 
DES利用56比特长度的密钥K
分组长度64比特,密文64比特
算法分三个阶段实现: 1.对明文X,通过一个固定的初始置换IP得到X0。 X0=IP(X)=L0 R0 分为左右两部分
2.函数F的16次迭代:LiRi(0<=i<=15) Li=Ri-1, Ri=Li-1  F(Ri-1, Ki) 其中Ki是长为48位的子密钥。子密钥K1,K2,…,K16是作为密钥K(56位)的函数而计算出的。
3.对比特串R16 L16使用逆置换IP-1得到密文Y。 Y=IP-1(R15  L15)
DES中使用的其它特定函数
初始置换IP:对明文输入进行次序的打乱。
逆置换IP-1:
扩展函数E;(32到48)
置换函数P
DES算法概要:
       1.对输入的明文从右向左按顺序每64位分为一组(不足64位时,在高位补0),并按组进行加密或解密。
       2.进行初始换位。
       3.将换位后的明文分成左、右两个部分,每部分为32位长。
       4.进行16轮相同的变换,包括密钥变换。
       5.将变换后左右两部分合并在一起。
       6.逆初始变换,输出64位密文。
DES一轮加密
F(Ri-1, Ki):
函数F有两个输入:32的消息A=R(32bits)作第一个输入,48比特的子密钥J=K(48bits)作为第二个输入。产生的输出为长度为32的位串。
(1)对第一个变元A,先利用扩展函数E,扩展成48位E(A)
(2)计算E(A)+J,结果写成8个6位串,B=b1b2b3b4b5b6b7b8(3)使用8个S盒,每个Sj是一个固定的416矩阵,它的元素取0~15的整数。给定长度为6个比特串,如 Bj=b1b2b3b4b5b6
计算Sj(Bj)如下:b1b6两个比特确定了Sj的行数, r(0<=r<=3); 而b2b3b4b5四个比特确定了Sj的列数c(0<=c<=15)。最后Sj(Bj)的值为S-盒矩阵Sj中r行c列的元素(r,c), 得Cj=Sj(Bj)。 (4) 最后,P为固定置换。
 
DES的争论
DES的核心是S盒,除此之外的计算是属线性的。S盒作为该密码体制的非线性组件对安全性至关重要。
S盒的设计准则: 1. S盒不是它输入变量的线性函数 2.改变S盒的一个输入位至少要引起两位的输出改变 3. 对任何一个S盒,如果固定一个输入比特,其它输入变化时,输出数字中0和1的总数近于相等。
公众仍然不知道S盒的构造中是否还使用了进一步的设计准则(有陷门?)。
密钥长度是否足够?
迭代的长度?(8、16、32?)

三重DES
假设两个密钥是K1和K2:
(1)用密钥K1进行DES加密。
(2)用K2对步骤1的结果进行DES解密。
(3)对(2)的结果使用密钥K1进行DES加密。
3DES的缺点是加、解密速度比DES慢。
加密: C=Ek1[Dk2 [Ek1(P)]]
解密: P=Dk1[Ek2 [Dk1(C)]]

转载于:https://blog.51cto.com/guoqing/161985

信息安全——密码学之DES介绍相关推荐

  1. 程序猿成长之路之密码学篇-DES介绍

    上一篇讲到了密码学的定义和发展历史,讲到了一些基础理论如扩散(明文的一位可以影响密文的多位)和混淆(密钥和密文的对应关系复杂化),如信息安全系统三要素CIA(机密性.完整性.可用性)等,并简要的介绍了 ...

  2. 信息安全密码学:DES算法的核心 E盒、S盒、P盒

    加密密钥等于脱密密钥,或者由一个可以轻易的计算出另一个的密码体制,称为单密钥密码体制,亦或称为对称密码体制或传统密码体制.其最具代表意义的当然属于DES密码体制了. 1.DES的设计背景 1973年5 ...

  3. 【密码学】DES 介绍

    文章目录 一.DES 简介 二.DES 算法入口参数 三.DES 算法框架 1. 子密钥生成 2. 迭代加密 3. 轮函数 F 四.DES 设计的基本原则:混淆和扩散 五.安全性 参考链接 一.DES ...

  4. 古典密码学、DES对称加密、3DES对称加密知识总结和实验

    实验三.古典密码学.DES对称加密.3DES对称加密 一.古典密码学:当铺密码.培根密码.摩斯密码.键盘密码.与佛论禅 1.当铺密码: 解密"由人俱一口中"和"大中口由人 ...

  5. 计算机信息安全密码学研究,密码学是对信息安全各方面的研究,能够解决所有信息安全的问题。() - 试题答案网问答...

    相关题目与解析 密码学作为信息安全的关键技术,其安全目标主要包括三个非常重要的方面:保密性.完整性和可用性.()是指所有资源只能由授权方式以授权的方式进行修改,即信息未经授权不能进行改变的特性. 密码 ...

  6. 密码学之DES/AES算法

    本文示例代码详见:https://github.com/52fhy/cryp... DES DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1 ...

  7. 信息安全—密码学信息熵信息理论基础—熵的概念(熵、联合熵、条件熵、平均互信息)

    数学基础:概率论乘法法则 两个事件相互独立:P(A∩B) = P(A)×P(B) · 意思是事件A和事件B同时发生的概率 = 事件A发生的概率 × 事件B发生的概率 · · 举个栗子:掷两枚硬币硬币同 ...

  8. 信息安全入门——web安全介绍

    通过上一篇文章使我们得知了信息安全与网络安全之间的区别以及分别做什么的,今天我将给大家介绍一下信息安全中较为庞大的一个分支中的分支--web安全. web安全顾名思义,就是web服务的安全,web服务 ...

  9. 对称加密算法之DES介绍

          DES(Data Encryption Standard)是分组对称密码算法.DES采用了64位的分组长度和56位的密钥长度,它将64位的输入经过一系列变换得到64位的输出.解密则使用了相 ...

最新文章

  1. R语言无序多分类Logistic回归模型实战
  2. 未来几年,人工智能就业市场将会如何?
  3. linux远程跳板机超时
  4. PPM / PGM / PBM 图像文件格式
  5. vb.net2019-多线程并行计算(5)
  6. qt为窗体部件设置阴影、类似日晕效果
  7. URL重写:RewriteCond指令与RewriteRule 指令格式
  8. magento如何在首页显示产品
  9. Win7——Win10系统如何安装Win7系统
  10. 程序员为什么应该旗帜鲜明地反对“最佳实践”?
  11. 会计云课堂实名认证后怎么更改_会计云课堂网上听课步骤详解
  12. python实现强化学习
  13. 智慧城市建设的实践经验
  14. 对比度调整的各种方法(二)
  15. 读取文本文件内容并写到excel
  16. android动态显示表格数据,android中水平显示表格数据
  17. ios appstore 审核 Guideline 5.2.2 - Legal ios新闻资讯类APP5.2.2被拒
  18. AD与DNS集成,且有备份AD与DNS,主AD与DNS坏,备份DNS如何成为主
  19. nltk download所需包
  20. web表格CSS 属性

热门文章

  1. win10安装ubuntu子系统,然后安装python3.6
  2. linux中nfs存储权限,NFS权限管理 - 麦苗的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. xshell安装mysql步骤_xshell怎么搭建mysql
  4. ordfilt2非线性滤波器
  5. Python计算机视觉中译本实例代码/数据集
  6. 互联网运营数据分析(5): 流失分析
  7. 给出中序和前序求后序Java,已知二叉樹前序,中序遍歷,求后序遍歷,java實現...
  8. python celery异步_python celery 异步学习
  9. vsftpd安装配置_CentOS7配置vsftpd虚拟用户模式详解
  10. Linux作者批评英特尔指令集,Linux之父炮轰英特尔:ECC内存很重要,不好买都怪你胡搞...