密码学

明文 -n源消息。
密文 -n加密后的消息。
解密 -v密文到明文的过程。

加密算法 -n(消息发送者)对明文加密时,采用的一组规则(数学函数)。
解密算法 -n(消息接受者)对密文解密时,采用的一组规则(数学函数)。
秘钥key -n加密和解密算法的一个秘密输入值。具体分为:加密秘钥,解密秘钥。

密码算法

image.png
受限制算法加密算法不能公开。
秘钥算法算法可以公开,但是秘钥保密。

  • 对称秘钥算法:加密和解密秘钥相同。DES、AES
  • 非对称秘钥算法(公开秘钥算法):加密和解密秘钥不相同。加密秘钥(公钥)可以公开,解密秘钥(私钥)不可以公开。RSA、ECC
  • 流密码算法(序列算法):给一个位或字节的加密算法。RC4
  • 数字摘要算法:MD5、SHA-1
  • 数字签名算法:DSA

设计算法关键点密码安全应该依赖于秘钥而不是算法,因为算法一般是公开的。知道明文、密文、加密解密算法,不能推出秘钥。

DES算法(数据加密标准)

  • 对称分组密码算法DES,分组长度是64位。

image.png
对称加密算法缺点对称密码中的秘钥经常更换,在更换的过程中会产生问题。

RSA算法(三个科学家的名字首字母)

提供的安全服务既可以提供数据加密服务,也可以提供公钥认证服务(SSL)
客户端通过两个随机大素数生成公钥和私钥,然后将公钥给服务端。当客户端向服务端发送请求时,同时将公钥发给服务器验证,服务器比对公钥,如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。完成身份验证后,客户端就可以用私钥加密发送数据。

MD5(消息摘要算法)

MD5 -nMD算法的第五个版本。
提供的安全服务MD5算法主要是为了提供报文完整性服务,以检验报文是否被修改。
算法的具体实现散列函数(哈希函数),不同的报文经过MD5算法产生不同的128位哈希值(消息摘要),即使报文有微小的改动。

SHA-1

SHA-1 -n安全哈希算法。SHA-1可以生成一个被称为消息摘要的160(20字节)散列值,散列值通常的呈现形式为40个十六进制数。