程序猿成长之路之密码学篇-密码学简介

这篇具有很好参考价值的文章主要介绍了程序猿成长之路之密码学篇-密码学简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在阅读本文前需要了解的术语:

  1. 授权人/非授权人:授权人指获取了查看数据权限的用户,非授权人则是指未获取到权限的用户。
  2. 明文/密文:明文指没有加密的数据内容,密文是指加密后的数据内容
  3. CIA(密码学中不是美国中情局的意思,是信息安全三要素): C-Confidentiality 机密性 I-Integrity 完整性 A-Availability 可用性 机密性:数据只能由授权人进行访问和处理 完整性:保证数据的完整不被第三方非授权人或机构进行篡改
    可用性:保证数据可以随时被授权人进行访问
  4. 扩散、混淆: 扩散: 扩散就是让明文中的每一位影响密文中的许多位,或者说让密文中的每一位受明文中的许多位的影响。每一字母在密文中出现的频率比在明文中出现的频率更接近于相等,双字母及多字母出现的频率也更接近于相等,以防止对密钥进行逐段破译。
    混淆:使得密文与密钥之间的统计关系变得尽可能复杂,让非授权人推测密钥变得十分困难,也就是说使得已知密文、已知明文攻击几乎不可行。
  5. 已知密文攻击:密码分析者能利用的资源仅为同一密钥加密的一个或多个密文,这是对密码分析者最不利的情况。 已知明文攻击:密码分析者根据已经知道的某些明密文对来恢复密钥。
    选择明文攻击:密码分析者能够选择明文并获得相应的密文。是对密码分析者十分有利的情况。
    选择密文攻击:密码分析者能够选择密文并获得相应的明文。也是对密码分析者十分有利的情况。

什么是密码?加密有什么作用?

密码是为了防止非授权人查看、篡改、伪造明文数据而对明文进行加密后的结果。
加密可以保证信息安全的机密性、完整性和可用性,减少了被篡改、伪造的风险,理论上保证了数据的安全性

密码发展史

阶段1:古典密码(?- 19世纪末)
出现了代替密码(Substitution Cipher)和移位密码(Transposition Ciphet)以及这两种的组合
代替密码:根据密文替换表进行明文到密文的转换
移位密码:明文中每个字母在字母表中移动固定长度的位置。例如k(向后移动位数)=3,则明文中a会变成d,b会变成e。而字母表的最后3位则对应开头的abc。这种移位密码又称为凯撒密码

阶段2:近代密码(20世纪初 – 1949年)
这段时间最经典的还要属于图灵等人发明的图灵机破解Enigma(英格玛)的故事了。当时处于二战时期的德国,通过某种手段发明了Enigma(英格玛)——一种加密情报的机器,由于其工艺精湛,算法巧妙,在当时一度被认为是不可破译的,但经过图灵的研究后发现,这种机器存在一个重大缺陷,那就是对同一个字母连续加密的话,是不会加密成相同字母的,而且这个字母也不会被加密成它本身。也就是说,可以利用密码表+密文分析去进行破译。利用了这个漏洞加上词汇出现频率的分析(据说选择的是wetter(德语“天气”),然后一一匹配去查找匹配的密文,再加上其他词汇的分析最终得出了一份相对较为靠谱的密文替换表,在二战中发挥了重要的作用。

阶段3:现代密码(1949年至今)
为何选择1949年呢?因为著名的密码学家香农在1949年发表了《保密系统的通信理论》,在这篇论文中,首创性的提出了两个密码系统设计的基本原则:混淆和扩散【详见术语】。并且这篇论文精辟地阐明了关于密码系统的分析、评价和设计的科学思想。成为了现代密码学的开篇之作。

加密算法有哪些类型?

可以根据一次处理数据的长度分为分组密码和序列密码:
分组密码:
图示:
程序猿成长之路之密码学篇-密码学简介

特点:

  1. 一次可以处理固定长度的信息,
  2. 密钥长度不一定要和明文一致
    优点:
  3. 扩散性好、不易篡改
  4. 对修改敏感
    缺点:
  5. 加解密较慢
    常见算法:DES、AES、3DES
    序列密码:
    图示:
    程序猿成长之路之密码学篇-密码学简介

特点:

  1. 一次只能处理某一固定单位长度的信息(如一个bit,一位)
  2. 密钥长度要和明文一致
    优点:
    1. 加解密效率较高
    缺点:
  3. 密钥和明文长度一致,安全性能取决于明文长度
  4. 易篡改
    常见算法: RC4、SEAL
    可以根据加解密方式分为对称加密和非对称加密
    对称加密:
    特点:加解密采用同一密钥
    优点:加解密速度快、效率高,适合用于数据量较大的加解密
    缺点:由于加解密采用同一密钥,加解密安全性不高。
    常见算法:AES、DES
    非对称加密:
    特点:加解密采用不同密钥,分公钥和私钥,公钥加密,私钥解密
    优点:加解密相对安全,适合用于数据量不大的加解密
    缺点:加解密效率较低。
    常见算法:RSA、DSA

现在一般采用的加密算法模型?

  1. SM2(非对称) + SM4(对称)+ SM3(摘要)
  2. RSA(非对称) + AES(对称) + MD5(摘要)

----------------------------------------小尾巴--------------------------------------------
密码学新人,请多指教文章来源地址https://www.toymoban.com/news/detail-442916.html

到了这里,关于程序猿成长之路之密码学篇-密码学简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【密码学】高级密码学-1

      通信双方使用 同一个密钥 ,通过使用加密算法配合上密钥来加密,解密过程采用加密过程的逆过程配合密钥即可。   常见的对称加密算法有DES、AES等。   对称加密的缺点:不能在不安全的网络上传输密钥,一旦密钥泄露则加密通信失败。   非对称加密使用了一

    2024年02月05日
    浏览(38)
  • 【密码学-1】一文入门非对称密码学

    本文共1932字,完成阅读约需6分钟。 犹记得2021年年初的一波区块链热潮让无数人第一次了解到了“公钥”和“私钥”的概念,那么,究竟什么是公钥私钥呢?和常见的密钥又有什么区别和联系呢?本文目的在用尽可能短的时间和简洁的语言,带你快速了解非对称密码学的基本

    2023年04月08日
    浏览(68)
  • 密码学基本原理和发展——古典密码学

      目录 1 滚筒密码 2 棋盘密码 3 凯撒密码 4 单表代换与多表代换 4.1 单表代换 4.2 多表代换         密码技术最早起源于公元前404年的希腊,此后密码大致经历了 古典密码、近代密码和现代密码三个阶段。         古典密码(公元前五世纪~19世纪末)代表性的是 滚桶密

    2024年02月05日
    浏览(35)
  • 【密码学】python密码学库pycryptodome

    记录了一本几乎是10年前的书(python绝技–用python成为顶级黑客)中过时的内容 里面提到了python标准库中自带的crypt库,经验证Python 3.12.1中并没有这个自带的库,密码学相关的库目前(2024.1.12)是一个自包含库pycryptodome,导入的是 import Crypto pypi库的页面 可以在文档中查看详

    2024年01月17日
    浏览(45)
  • 密码学基本原理和发展——近代密码学

    目录 1 密码机通信模型 2 Enigma密码机构造 3 Enigma密码机加解密过程 3.1 加密过程 3.2 解密过程 4 Enigma密码机的安全性 5 Enigma密码机破解 5.1 波兰雷耶夫斯基破解 5.2 图灵破解        近代密码一般指20世纪初~20世纪70年代期间的密码技术。20 世纪初电报的出现第一次使远距离

    2024年02月06日
    浏览(33)
  • 【密码学】量子安全的密码学算法以及原理介绍

    (1)“代数格密码套件”(CRYSTALS)包含两个密码原语Kyber和Dilithium。Kyber是一种抗适应性选择密文攻击(IND-CCA2)安全密钥封装机制,Dilithium是一种高度不可伪造性(EUF-CMA)安全数字签名算法。两种密码都是为了应对量子计算机的攻击,并且在操作过程中只需更改几个参数即

    2024年02月11日
    浏览(37)
  • 密码学:公钥密码.(非对称密码)

    公钥密码 (Public Key Cryptography),又称为 非对称密码 ,其最大特征是 加密和解密不再使用相同的密钥 ,而使用不同的密钥。使用者会将一个密钥公开,而将另一个密钥私人持有,这时这两个密钥被称为 公钥和私钥 。一般来说,公钥和私钥是难以互相计算的,但它们可以互相

    2024年02月03日
    浏览(40)
  • 凯撒密码——密码学

      代码如下:

    2024年02月02日
    浏览(22)
  • 密码学复习-2 分组密码

    分组密码:将一个明文块作为一个整体来处理,并用来产出等长的密文块的一种密码。 流密码:对数字流一次加密一位或者一个字节的密码。 Feistel建议使用乘积密码的概念来逼近理想分组密码。 乘积密码:是指依次使用两个或两个以上的基本密码,所得结果的密码强度将强

    2023年04月26日
    浏览(38)
  • 【密码学】三、分组密码概述

    分组密码算法是将输入数据划分成固定长度的组进行加密和解密的一类对称密码算法。本章主要介绍分组密码概述、DES、AES,以及分组密码的工作模式和分组密码分析。 分组密码是一种单钥或对称密码算法,通信双方使用相同的密钥加密和解密。 在分组密码中,要将明文分

    2024年02月16日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包