zoukankan      html  css  js  c++  java
  • 密码学系列——简介密码学

    前言

    整理密码学。

    我们在编程中常常需要密码问题,比如说https,aes等。他们都用到了密码这个概念。

    密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。

    正文

    从古至今密码学一直存在,那么在古代密码是怎么样的呢?

    我们常常在电视剧中看到一张纸舔一舔然后显示出字了,或者用火然后烤一烤然后出现一些图案。

    这些也属于密码学。当然这样是不够的,古人的思想不止于此,他们通过其他方法把文字加密了。

    ① 替换法
    替换法很好理解,就是用固定的信息将原文替换成无法直接阅读的密文信息。例如将 b 替换成 w ,e 替换成p ,这样bee 单词就变换成了wpp,不知道替换规则的人就无法阅读出原文的含义。

    替换法有单表替换和多表替换两种形式。单表替换即只有一张原文密文对照表单,发送者和接收者用这张表单来加密解密。在上述例子中,表单即为:a b c d e - s w t r p 。

    多表替换即有多张原文密文对照表单,不同字母可以用不同表单的内容替换。

    例如约定好表单为:表单 1:abcde-swtrp 、表单2:abcde-chfhk 、表单 3:abcde-jftou。

    当然这会使得设计变得困难。

    ② 移位法
    移位法就是将原文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后得出密文,典型的移位法应用有 “ 恺撒密码 ”。
    例如约定好向后移动2位(abcde - cdefg),这样 bee 单词就变换成了dgg 。

    上面的称作古典密码学。

    本来古典密码学好好的,然后概率论发生了,这个时候密码就变得非常容易破解。

    百度百科讲解一下如何破解的。

    频率分析基于如下原理:在任何一种书面语言中,不同的字母或字母组合出现的频率各不相同。
    而且,对于以这种语言书写的任意一段文本,都具有大致相同的特征字母分布。
    比如,在英语中,字母E出现的频率很高,而X则出现得较少。类似地,ST、NG、TH,以及QU等双字母组合出现的频率非常高,NZ、QJ组合则极少。英语中出现频率最高的12个字母可以简记为“ETAOIN SHRDLU”。
    

    比如说采用替换法,我发现出现很多个Z。但是按理说E应该最多,那么我尝试把Z换成X,这样破解的概率大大增加。

    那么现代密码加密方式是啥?

    ① 散列函数
    散列函数,也见杂凑函数、摘要函数或哈希函数,可将任意长度的消息经过运算,变成固定长度数值,常见的有MD5、SHA-1、SHA256,多应用在文件校验,数字签名中。
    MD5 可以将任意长度的原文生成一个128位(16字节)的哈希值
    SHA-1可以将任意长度的原文生成一个160位(20字节)的哈希值

    ② 对称密码
    对称密码应用了相同的加密密钥和解密密钥。对称密码分为:序列密码(流密码),分组密码(块密码)两种。流密码是对信息流中的每一个元素(一个字母或一个比特)作为基本的处理单元进行加密,块密码是先对信息流分块,再对每一块分别加密。

    ③ 非对称密码
    对称密码的密钥安全极其重要,加密者和解密者需要提前协商密钥,并各自确保密钥的安全性,一但密钥泄露,即使算法是安全的也无法保障原文信息的私密性。

    散列函数和非对称密码一般用于文件校验和身份验证,而对称用于数据传输加密。

    主要是因为非对称密码加密解密消耗时间。

  • 相关阅读:
    yzoj P2344 斯卡布罗集市 题解
    yzoj P2350 逃离洞穴 题解
    yzoj P2349 取数 题解
    JXOI 2017 颜色 题解
    NOIP 2009 最优贸易 题解
    CH 4302 Interval GCD 题解
    CH4301 Can you answer on these queries III 题解
    Luogu2533[AHOI2012]信号塔
    Luogu3320[SDOI2015]寻宝游戏
    Luogu3187[HNOI2007]最小矩形覆盖
  • 原文地址:https://www.cnblogs.com/aoximin/p/13384625.html
Copyright © 2011-2022 走看看