详解 DES加密技术 | 凯撒密码 | 栅栏密码

这篇具有很好参考价值的文章主要介绍了详解 DES加密技术 | 凯撒密码 | 栅栏密码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

目录

密码学

恺撒密码

栅栏密码

消息和加密

密码的三个特性

算法和密钥

对称算法

公开密钥算法

DES对称加密技术

DES算法的安全性

DES算法的原理

DES算法的实现步骤

IP置换表和IP-1逆置换表

 函数f

子密钥ki

S盒的工作原理

DES算法的应用误区


密码学

        密码学是一门古老而深奥的学科,对一般人来说是非常陌生的。长期以来,只在很小的范围内使用,如军事、外交、情报等部门。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科。 随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向。

        密码学的历史比较悠久,在四千年前,古埃及人就开始使用密码来保密传递消息。 两千多年前,罗马国王Julius Caesare(恺撒)就开始使用目前称为“恺撒密码”的密码系统。但是密码技术直到本20世纪40年代以后才有重大突破和发展。 特别是20世纪70年代后期,由于计算机、电子通信的广泛使用,现代密码学得到了空前的发展。

恺撒密码

        恺撒密码是一种简单的移位密码,它把字母表中的每个字母用该字母后面的第三个字母来代替。例如“a”将变成“D”,“b”将变成“E”,“c”将变成“F”等。在字母表的最后,移位将重新折回,形成一个循环,“x”将变成“A”,“y”将变成“B”,“z”将变成“C”。能够列出所有可能性定义如下所示的变换:

明码字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ

密码字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

明文:veni,vidi,vjdj,vici

密文:yhql,ylgl,ymgm,ylfl

        现在,为每个字母分配一个数值(如a=0、b=1等),对每个明文字母p,用密文字母C代替,则恺撒密码的加密算法可表示为:

C=E(p)=(p+3)mod 26

p=D(C)=(C-3)mod 26

栅栏密码

        栅栏密码:栅栏密码的加密变换规则是首先将明文分成n个字符一栏,一栏为一行构成一个行列式;然后行列式行列转置后按列上下排列字符生成密文。 将n=2的栅栏密码称为2栏栅栏密码,要求明文去除空格后长度为偶数。

【例】 p1=there is a cipher,使用2栏栅栏密码加密,求c1

  • 去空格,p1=thereisacipher
  • 2个字符一栏,th,er,ei,sa,ci,ph,er
  • 生成行列式:    详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法,矩阵行列转置得详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法
  • 合并,c1=teescpehriaihr。分出空格, c1=teesc pe h riaihr

消息和加密

        遵循国际命名标准,加密和解密可以翻译成:“Encipher(译成密码)”和“(Decipher)(解译密码)”。也可以这样命名:“Encrypt(加密)”和“Decrypt(解密)”。 消息被称为明文(plainText)。用某种方法伪装消息以隐藏它的内容的过程称为加密,加了密的消息称为密文,而把密文转变为明文的过程称为解密,如图表明了加密和解密的过程

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

        明文用M(Message,消息)或P(Plaintext,明文)表示,它可能是比特流、文本文件、位图、数字化的语音流或者数字化的视频图像等

        密文用C(Cipher)表示,也是二进制数据,有时和M一样大,有时稍大。通过压缩和加密的结合,C有可能比P小些

        加密函数E作用于M得到密文C,用数学公式表示为:E(M)=C。解密函数D作用于C产生M,用数据公式表示为:D(C)=M。先加密后再解密消息,原始的明文将恢复出来,D(E(M))=M必须成立

密码的三个特性

  • 鉴别:消息的接收者应该能够确认消息的来源,入侵者不可能伪装成他人
  • 完整性:消息的接收者应该能够验证在传送过程中消息没有被修改,入侵者不可能用假消息代替合法消息
  • 抗抵赖性:发送消息者事后不可能虚假地否认他发送的消息

算法和密钥

        算法也叫密码函数,是用于加密和解密的数学函数。通常情况下,有两个相关的函数,分别用作加密/解密。 若算法本身保密,称之为受限制的算法 受限制算法存在一定的缺陷,只有在低密级的应用中,具有一定的价值。

        现代密码学用密钥解决了这个问题,密钥用K(Key)表示。K可以是很多数值里的任意值,密钥K的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥,即运算都依赖于密钥,并用K作为下标表示,加解密函数表达为:

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

如图所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

        有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下,加密和解密的函数表达式为:

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

函数必须具有的特性是,DK2(EK1(M))=M,如图所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

对称算法

        基于密钥的算法通常有两类:对称算法和公开密钥算法(非对称算法)。对称算法有时又叫传统密码算法,加密密钥能够从解密密钥中推算出来,反过来也成立。 在大多数对称算法中,加解密的密钥是相同的。对称算法要求发送者和接收者在安全通信之前,协商一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加解密。对称算法的加密和解密表示为:

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

对称密钥算法可以分为两类:序列算法和分组算法

  • 一次只对明文中的单个比特或者字节进行运算的算法称为序列算法或者序列密码
  • 另一类算法是对明文的一组比特或者字节进行运算,称为分组算法或者分组密码

公开密钥算法

        公开密钥算法(非对称算法)的加密的密钥和解密的密钥不同,而且解密密钥不能根据加密密钥计算出来,或者至少在可以计算的时间内不能计算出来,之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥(简称私钥)

DES对称加密技术

        DES(Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。 美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告,提出了四点具体的要求:

  • 提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改
  • 具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握
  • DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础
  • 实现经济,运行有效,并且适用于多种完全不同的应用

DES算法的安全性

        DES算法正式公开发表以后,引起了一场激烈的争论。1977年Diffie和Hellman提出了制造一个每秒能测试106个密钥的大规模芯片,这种芯片的机器大约一天就可以搜索DES算法的整个密钥空间,制造这样的机器需要两千万美元。

        1993年R.Session和M.Wiener给出了一个非常详细的密钥搜索机器的设计方案,它基于并行的密钥搜索芯片,此芯片每秒测试5×107个密钥,当时这种芯片的造价是10.5美元,5760个这样的芯片组成的系统需要10万美元,这一系统平均1.5天即可找到密钥,如果利用10个这样的系统,费用是100万美元,但搜索时间可以降到2.5小时。可见这种机制是不安全的。

        1997年1月28日,美国的RSA数据安全公司在互联网上开展了一项名为“密钥挑战”的竞赛,悬赏一万美元,破解一段用56比特密钥加密的DES密文。

        计划公布后引起了网络用户的强力响应。一位名叫Rocke Verser的程序员设计了一个可以通过互联网分段运行的密钥穷举搜索程序,组织实施了一个称为DESHALL的搜索行动,成千上万的志愿者加入到计划中。

        在计划实施的第96天,即挑战赛计划公布的第140天,1997年6月17日晚上10点39分,美国盐湖城Inetz公司的职员Michael Sanders成功地找到了密钥,在计算机上显示了明文:“The unknown message is: Strong cryptography makes the world a safer place”。

        由此可见,DES的56位短密钥面临着Internet超级计算能力的挑战。 Internet仅仅应用了闲散的资源,就可以破解DES的密码,这是对密码方法的挑战,也是Internet超级计算能力的显示。 尽管DES存在着不足,但是作为第一个公开密码算法的密码体制,它成功的完成了自己的使命,在密码学历史上具有重要的地位。

DES算法的原理

        DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式有两种:加密或解密

        DES算法的工作方式:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果

        在通信网络的两端,双方约定一致的Key 在通信的源点用Key进行DES加密,以密文的形式在公共通信网中传输密文,在通信的接收端用Key进行DES解密 ,这样就保证了核心数据(例如PIN,MAC等)在公共通信网中传输的安全性可靠性 定期更换Key,能进一步提高数据保密性,这是目前金融交易网络的流行做法

DES算法的实现步骤

第一步:变换明文。对给定的64位的明文x,首先通过一个置换IP表来重新排列x,从而构造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32位,R0表示x0的后32位。

第二步:按照规则迭代,规则为:

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

第三步:对L16R16利用IP-1作逆置换,就得到了密文y,加密过程如图所示:

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

从图中可以看出,DES加密需要四个关键点:

  • IP置换表和IP-1逆置换表
  • 函数f
  • 子密钥Ki
  • S盒的工作原理

IP置换表和IP-1逆置换表

        输入的64位数据按置换IP表进行重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换IP表如表所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

        将输入64位比特的第58位换到第一位,第50位换到第二位,依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。比如:置换前的输入值为D1D2D3…D64,则经过初始置换后的结果为:L0=D58D50...D8,R0=D57D49...D7

        经过16次迭代运算后。得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换IP-1,又将第40位换回到第1位,其逆置换IP-1规则表所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

 函数f

函数f有两个输入:32位的Ri-1和48位Ki,f函数的处理流程如图所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

E变换的算法是从Ri-1的32位中选取某些位,构成48位。即E将32比特扩展变换为48位,变换规则根据E位选择表,如表所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

Ki是由密钥产生的48位比特串,具体的算法下面介绍。将E的选位结果与Ki作异或操作,得到一个48位输出。分成8组,每组6位,作为8个S盒的输入

每个S盒输出4位,共32位,S盒的工作原理将在第四步介绍。S盒的输出作为P变换的输入,P的功能是对输入进行置换,P换位表如表所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

子密钥ki

假设密钥为K,长度为64位,但是其中第8、16、24、32、40、48、64用作奇偶校验位,实际上密钥长度为56位。K的下标i的取值范围是1到16,用16轮来构造。构造过程如图所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

首先,对于给定的密钥K,应用PC1变换进行选位,选定后的结果是56位,设其前28位为C0,后28位为D0。PC1选位如表所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

第一轮:对C0作左移LS1得到C1,对D0作左移LS1得到D1,对C1D1应用PC2进行选位,得到K1。其中LS1是左移的位数,如表所示

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

表中的第一列是LS1,第二列是LS2,以此类推。左移的原理是所有二进位向左移动,原来最右边的比特位移动到最左边。其中PC2如表9-7所示。(56位转换为48位,该48位二进制字符串即为K1)

详解 DES加密技术 | 凯撒密码 | 栅栏密码,网络安全,密码学,DES加密技术,密码,网络安全,DES算法

第二轮:对C1,D1作左移LS2得到C2和D2,进一步对C2D2应用PC2进行选位,得到K2。如此继续,分别得到K3,K4…K16

S盒的工作原理

        S盒以6位作为输入,而以4位作为输出,现在以S1为例说明其过程。假设输入为A=a1a2a3a4a5a6,则a2a3a4a5所代表的数是0到15之间的一个数,记为:k=a2a3a4a5;由a1a6所代表的数是0到3间的一个数,记为h= a1a6

        在S盒中的S1的h行,k列找到一个数B,B在0到15之间,它可以用4位二进制表示,为B=b1b2b3b4,这就是S1的输出。

DES算法的应用误区

        DES算法具有比较高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。 56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的, 当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。文章来源地址https://www.toymoban.com/news/detail-737952.html

到了这里,关于详解 DES加密技术 | 凯撒密码 | 栅栏密码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络安全】网络防护之旅 - 对称密码加密算法的实现

    🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《网络安全之道 | 数字征程》 ⏰墨香寄清辞:千里传信如电光,密码奥妙似仙方。 挑战黑暗剑拔弩张,网络战场誓守长。 目录 😈1. 初识网络安全 😈2. 对称密码加密算法的实现 🕵️‍♂️2.1 研究目的 🕵️‍♂️2.2 研究环

    2024年02月04日
    浏览(45)
  • C语言实现简单加密算法 凯撒密码 RSA算法 简介及实现

    凯撒密码的核心思想就是移位。 将明文的每一个字符 在 密码系统所支持字符序列中向右平移N,映射得到新的字符从而实现加密,而解密则相反向左平移N。加密的Key即为N。 加密  解密 在如今的万维网环境中,如果A要向B发送数据,需要先加密这个数据,因为在一些不安全

    2024年02月08日
    浏览(51)
  • 凯撒密码_c++_java_python(加密及解密)

    公元前100多年凯撒发明的一种密码,简单来说是平移密码,也就是将字母位置向后移动一定位数。 如原文是ABCXYZ,密钥为3,加密后就是DEFABC。 以密钥的数字向后平移了三位,如果密钥是5就是平移五位。 解密就是把加密的文字进行还原。 我们通过对题目的分析可以发现,加

    2024年02月06日
    浏览(47)
  • 前后端分离------后端创建笔记(09)密码加密网络安全

    本文章转载于【SpringBoot+Vue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/1ZZ8c-kRPUxY6FWzsoOOjtA 提取码:up4c 项目概述笔记:https://blog.c

    2024年02月12日
    浏览(51)
  • 【密码算法 之一】对称加密算法 DES \ 3DES 浅析

      DES(Data Encryption Standard)是1977年美国联邦信息处理标准(FIPS)中所采用的一种对称密码(FIPS 46-3)。DES一直以来被美国以及其它国家的政府和银行等广泛使用。   然而,随着计算机的进步,现在DES已经能够被暴力破解,强度大不如从前了。20世纪末,RSA公司举办过破

    2024年02月09日
    浏览(54)
  • 《网络协议》05. 网络通信安全 · 密码技术

    title: 《网络协议》05. 网络通信安全 · 密码技术 date: 2022-09-10 15:16:15 updated: 2023-11-12 07:03:52 categories: 学习记录:网络协议 excerpt: 网络通信安全(ARP 欺骗,DoS DDoS,SYN 洪水攻击,LAND 攻击,DNS 劫持,HTTP 劫持)、密码技术(单向散列函数,对称加密,非对称加密,混合密码系统

    2024年01月24日
    浏览(48)
  • SSL/TLS加密技术:保护网络通信安全的关键技术

    SSL/TLS加密技术是一种常用的网络通信协议,用于确保数据在传输过程中的安全性和完整性。该技术可以帮助防止黑客、间谍、欺诈和其他形式的网络攻击,同时保护用户隐私和敏感信息。在本文中,我们将深入了解SSL/TLS加密技术的原理、功能和使用方法。 SSL(Secure Sockets

    2024年02月11日
    浏览(53)
  • DES的加密与解密(C语言实现)——大三密码学实验

    目录 DES的描述 Feistel体制 密钥扩展函数 F函数 总流程  代码 get函数的构建 yihuo函数的构建 fuck函数的构建 left_move函数的构建 exchange函数的构建 erzhuanshi函数的构建 shizhuaner函数的构建 s_box函数的构建 主函数的构建 总函数 运行结果示例 DES: 16 轮, Feistel 型结构 明文长度:

    2024年02月07日
    浏览(44)
  • 软考:中级软件设计师:邮件加密系统,网络安全保障,网络威胁与攻击,防火墙技术

    提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1)自己的科研经历, 科研内容 ,学习的相关领域知识,要熟悉熟透了 (2)自己的实习经历,做了 什

    2024年02月08日
    浏览(48)
  • 现代密码学第二次实验:分组加密算法DES及其工作模式

    为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正! 1、掌握DES算法的工作原理。 2、熟悉分组加密算法的4种工作模式(OFB模式可不做)。 3、了解DES的雪

    2024年02月06日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包