【信息安全】-密码学

Abstract:本篇文章介绍密码学中的重要内容。首先是加解密算法,总体分为对称加密算法非对称加密算法,这两者的区别在于对称加密算法用一个秘钥进行加密解密,通信双方需要协商秘钥,Diffle-Hellman协议便是用于对称加密体制中的秘钥协商的,而非对称加密算法用不同的秘钥进行加解密。对称加密算法又分为流密码分组密码,两者的区别在于是否对明文分进行分组加密。流密码的代表是RC4,分组密码有DESAES,DES的加解密过程要经过16轮Feistel 结构,AES的加解密过程要经过字节代换,行位移,列混合等等。对称加密双方要协商秘钥,秘钥管理压力很大,因此引入了非对称加密。非对称加密的代表是RSAECC算法,RSA是基于大整数分解困难问题,ECC基于椭圆曲线离散对数问题,相较与RSA而言,ECC的秘钥更短,更适用于公交卡等小容量的硬件设施。第二个部分讲到散列函数,密码学中的散列函数与数据结构中的散列函数有所不同,安全的散列函数要求有三个特点:第一单向性,强无碰撞性,压缩性。目前主流的散列函数有MD5,SHA-0,SHA-1等。第三个部分介绍了基于散列函数的数字签名,它的作用是为了进行身份认证以及保护数据的完整性。数字签名算法有RSA和DSS,RSA是一种既可以用于加密又可以用于签名的算法,DSS算法基于离散对数困难问题。最后一个部分介绍了数字证书,其目的是保证公钥不会被冒充。

目录

加解密算法

1.对称加密

2.非对称加密:

散列算法

数字签名

数字证书


加解密算法

1.对称加密

  • 对称加密模型中,加密解密使用同一个秘钥,类别有流密码和分组密码。

  • 1.流密码:一次一密,逐比特加密
    • RC4:秘钥调度算法+伪随机密码生成算法
  • 2.分组密码:对明文进行分组加密
    • DES:循环 16 轮的 Feistel 结构, 明文分组长度和初始密钥长度都是 64 位
    • AES:字节代换+行位移+列混合+轮秘钥加
  • Diffle-Hellman秘钥交换协议:基于对称加密算法,在互联网上为发送方和接收方协商一个秘钥。
  • 对称加密的弊端:秘钥分发繁杂,花费的代价高,多人通信时,需要消耗大量的秘钥。

2.非对称加密:

非对称加密至的是加密解密使用不同的秘钥

RSA算法:基于大整数分解困难问题

ECC算法:基于椭圆曲线离散对数的困难问题,与大整数分解问题相比,椭圆曲线离散对数问题要困难很多,ECC的特点是秘钥短(秘钥短的好处),安全性高。

散列算法

散列函数是最常见的一种加密方式,具有代表性的散列算法有:MD4,MD5,SHA-0,SHA-1

  • 散列函数的性质
    • 强无碰撞性:两个不停的变量一定对应两个不同的hash函数值
    • 单向性:由自变量求函数值容易,由函数值反求自变量很难
    • 散列函数可将任意长度的比特串映射到一个定长的比特串(摘要,指纹)

构造安全的hash函数是一件很困难的事情!

数字签名

数字签名的作用:用于确认发送者的身份和保护数据完整性

  • 过程:比较两个消息摘要是否相等!
    • A通过hash函数生成一个消息摘要
    • A用自己的私钥给消息摘要加密生成数字签名
    • A发送数字签名和消息
    • B用A的公钥处理数字签名得到消息摘要(能用A的公钥解开说明消息确实是A发送的
    • B通过hash对消息计算生成消息摘要
    • B对比这两个消息摘要,一个是公钥解密数字签名得到的消息摘要,一个是直接对消息hash得到的消息摘要,如果一样说明数据没有被篡改,这时候接收数据。
  • 前面算法:
    • RSA(RSA既可以用来非对称加密,也可以用来做数字签名)
    • DSS(只能用来签名,不能用来加密),基于离散对数困难问题

数字证书

  • 数字证书的作用确定公钥没有被伪造,证明公钥和发送方的绑定关系
  • 认证中心(CA):具有公信力的机构,我发送方提供数字证书
  • 数字证书的生成:

    • A将自己的身份信息和公钥发送给认证中心CA

    • CA将A的身份信息和公钥生成一个用CA的私钥加密的数字签名,并组合成一个数字证书给A

  • 数字证书的使用
    • A在发送时,将自己的证书附在信件后面
    • B收到后,先将证书中的数字签名取下来用CA的公钥解密,得到消息摘要,用hash函数对其他信息进行运算得到另一个消息摘要,对比两个消息摘要,如果相同说明公钥确实是A的。

猜你喜欢

转载自blog.csdn.net/qq_39328436/article/details/115269492