热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

信息加密技术——古典密码体制

信息保密技术是利用数学或物理手段,对信息的传输和存储进行保护以防止泄露的技术,主要包括信息加密技术和信息隐藏技术。密码学的发展历程:手工

信息保密技术是利用数学或物理手段,对信息的传输和存储进行保护以防止泄露的技术,主要包括信息加密技术和信息隐藏技术。


密码学的发展历程:


  1. 手工加密阶段
  2. 机械加密阶段
  3. 计算机加密阶段

密码学中的基本术语:


  • 明文(plaintext/message):指待加密的信息,用P或M表示,可以是文本文件、图形、数字化存储的语音流或数字化视频图像的比特流等。

  • 密文(cipertext) : 指明文经过加密处理后的形式,用C表示。

  • 加密(encryption) : 指用某种方法伪装消息以隐藏它的内容的过程。

  • 加密算法(encryption algorithm): 指将明文变换为密文的变换函数,通常用E表示。

  • 解密(decryption) : 指把密文转换为明文的过程。

  • 解密算法(decryption algorithm): 指将明文变换为密文的变换函数,通常用E表示。

  • 密钥(key) :变换函数所用的一个控制参数。加密解密算法操作通常是在一组密钥控制下进行的,分别称为加密密钥和解密密钥,通常用K表示。

  • 密码分析(cryptanalysis):指截获密文者试图通过分析截获的密文从而推断出原来的明文或密钥的过程。

  • 被动攻击(passive attack):指对一个保密系统采取截获密文并对其进行分析和攻击。这种攻击对密文没有破坏作用。

  • 主动攻击(active attack):指攻击者非法入侵一个密码系统,采用伪造、修改、删除等手段向系统注入假消息进行欺骗。这种攻击对密文具有破坏作用。

  • 密码系统(cryptosystem):指用于加密和解密的系统。
    在这里插入图片描述

  • 密码体制:密码系统采用的基本工作方式称为密码体制。要素是密码算法和密钥。

柯克霍夫(Kerckhoffs)原则:


  • 密码系统的安全性取决于密钥,而不是密码算法,即密码算法要公开。柯克霍夫原则是荷兰密码学家Kerckhoffs于1883年在名著《军事密码学》中提出的基本假设。遵循这个假设的好处是,它是评估算法安全性唯一可用的方式。因为如果密码算法保密,密码算法的安全强度就无法进行评估;防止算法设计者在算法中隐藏后门。因为算法被公开后,密码学家可以研究、分析其是否存在漏洞,同时也接受攻击者的检验,有助于推广使用。当前网络应用十分普及,密码算法的应用不再局限于传统的军事领域,只有公开使用,密码算法才可能被大多数人接受并使用。同时,对用户而言,只需掌握密钥就可以使用了,非常方便。

古典密码体制


古典密码时期一般认为是从古代到19世纪末,这个时期生产力水平低,加密、解密方法主要以纸、笔或简单的器械来实现,在这个时期提出和使用的密码称为古典密码。古典密码是密码学发展的初级阶段。尽管古典密码大都较简单,但由于其安全性差,目前应用很少。研究古典密码的原理,有助于理解、构造和分析近代密码。替代( substitution)和置换(permutation)是古典密码中用到的两种基本处理技巧,它们在现代密码学中也得到了广泛使用。


1. 替代密码:


替代密码(substitution cipher)是明文中的每-一个字符被替换成密文中的另一个字符。接收者对密文做反向替换就可以恢复出明文。古典密码学中采用替代运算的典型密码算法有单表密码、多表密码等。


(1)单表密码


  • 单表密码全称为单表替代密码。单表替代密码是对明文中的所有字母都使用同一个映射,即
    Vp∈P, 有Ek:P→C, Ex(p)=c.
    为了保证加密的可逆性,一般要求映射E是一一映射。
    单表替代密码最典型的例子就是著名的恺撒密码,一般意义上的单表替代也称移位密码、乘法密码、仿射密码、使用密钥词(组)的单表替代和随机替代等。

凯撒密码:
在这里插入图片描述
使用秘钥词(组)替代:
在这里插入图片描述
在这里插入图片描述

(2)多表密码


  • 单表替代密码的明文中单字母出现频率分布与密文中的相同,为了克服这个缺点,多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现的频率分布,其中每个映射是简单替代密码中的一对一映射(即处理明文消息时使用不同的单字母替代)。多表替代密码将明文字符划分为长度相同的消息单元,称为明文组,对不同明文组进行不同的替代,即使用了多张单字母替代表,从而使同一个字符对应不同的密文,改变了单表代替中密文与明文字的唯一对应性,使密码分析更加困难。多字母代替的优点是很容易将字母的自然频度隐蔽或均匀化,从而可以抗击统计概率分析。Playfair
    密码、Vigenere密码、Hill密码都是这一类型的密码。

Playfair密码:


  • Playfair 密码出现于1854年,它将明文中的双字母组合作为一个单元对待,并将这些单元转换为密文双字母组合。Playfair密码基于一个5X5字母矩阵,该矩阵使用一个关键词(密钥)来构造,其构造方法是:从左至右、从上至下依次填人关键词的字母(去除重复的字母),然后再以字母表顺序依次填入其他字母。字母I和J被算为一个字母(即J被当作I处理)。

对每一对明文字母p、p2的加密方法如下。


  1. 若p办2在同一行,则对应的密文C和C2分别是紧靠p加2右端的字母。其中第一列被看作是最后一列的右方(解密时反向)。
  2. 若pr、pz在同一列,则对应的密文C和C2分别是紧靠p、p:下方的字母。其中第一行被看作是最后一行的下方(解密时反向)。
  3. 若p、P2不在同一行,也不在同一列,则C;和C2是由p和pr确定的矩形的其他两角的字母,并且C和pi、C2和p2同行(解密时处理方法相同)。
  4. 若p1=pz,则在重复字母之间插人一个字母(如Q,需要事先约定),并用前述方法处理。
  5. 若明文字母数为奇数,则在明文的末端添加某个事先约定的字母作为填充。

在这里插入图片描述

Vigenere密码:


  • Vigenere 密码是16世纪法国著名密码学家Blaise deVigenere于1568年发明的,它是最著名的多表替代密码的例子。Vigenere密码使用一个词组作为密钥,密钥中每一个字母用来确定一个替代表,每一个密钥字母被用来加密一个明文字母,第一个密钥字母加密明文的第一个字母,第二个密钥字母加密明文的第二个字母,等所有密钥字母使用完后,密钥又再循环使用。

为了帮助理解该算法,需要构建一个表,如图3-3所示,26个密文都是水平排列的,最左边一列为密钥字母,最上面一行为明文字母。

加密过程:


  • 给定一个密钥字母k和一个明文字母p,密文字母就是位于k所在行与p所在列交叉点上的那个字母。

解密过程:


  • 由密钥字母决定行,在该行中找到密文字母,密文字母所在列的列首对应的明文字母就是相应的明文。

在这里插入图片描述
在这里插入图片描述
Hill密码:


  • Hill 密码是由数学家Lester Hill于1929年研制的,它也是一种多表密码,实际上它是仿射密码技术的特例。其基本加密思想将n个明文字母通过线性变换,将它们转换为n个密文字母。解密只需做一次逆变换即可。
    在这里插入图片描述

2. 置换密码


置换密码( permutation cipher)
加密过程中明文的字母保持相同,但顺序被打乱了,又被称为换位密码。在这里介绍一种较常见的置换处理方法:将明文按行写在一张格纸上,然后再按列的方式读出结果,即为密文;为了增加变换的复杂性,可以设定读出列的不同次序(该次序即为算法的密钥)。


在这里插入图片描述


信息安全与技术(第二版)



推荐阅读
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • 玩转直播系列之消息模块演进(3)
    一、背景即时消息(IM)系统是直播系统重要的组成部分,一个稳定的,有容错的,灵活的,支持高并发的消息模块是影响直播系统用户体验的重要因素。IM长连接服务在直播系统有发挥着举足轻重的 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
author-avatar
丿虚伪丿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有