数字证书和加密算法

  • 数字证书
  • 定义
  • 用途
  • X509V3的证书格式
  • 加密算法
  • 分类
  • 摘要算法
  • 对称算法
  • 有哪些?
  • DES算法
  • AES-128算法
  • 非对称算法
  • 有哪些?
  • 用途
  • 对称密钥和非对称密钥的区别和优缺点?
  • 对称密钥和非对称密钥的优缺点
  • 对称密钥:
  • 非对称密钥:


数字证书

定义

数字证书 是一个由证书颁发中心数字签名的包括* 公钥密钥 * 拥有者信息以及公开密钥的文件,类似于身份证,身份证上面有持卡人的身份信息如地址,头像,有效期等,并且身份证一般由政府相关部门颁发。无论是计算机世界的数字证书还是现实生活的身份证,其主要目的都是用来鉴别个体的身份。

用途

  • 可用于浏览器与站点 https网站用TLS协议认证双方身份,建立安全通讯通道.
  • 可产生软件签名,确保软件来源及其真实性.
  • 可用于设备或者其他个体身份鉴定.
  • 其他…

X509V3的证书格式

数字证书绑定私钥 数字证书 加密_加密算法

证书中包含了公钥,这样可以通过一对密钥 加解密来进行安全的通信。但是私钥解密后,无法判断内容是否被改动过。所以引用数字签名技术保证内容的安全性。下面引出了数字签名。数字签名和生成密钥是需用到加密算法。

加密算法

分类

加密算法分为:摘要算法又称hash算法、对称算法和非对称算法。

摘要算法

MD2、MD5、SHA1、SHA256、SM3(国内)。摘要算法是单向唯一的。
2 * 6 =12这个结果是唯一的。 但是从12 回推到 2 和6 是不一定的。 以为 34 和112也能得到12。

对称算法

有哪些?

对称算法有:DES、3DES、AES、SM4、RC4、RC5、RC6
其中根据获取方式又分为:分组算法:DES、3DES、AES、SM4和流式算法:RC4、RC5、RC6
下面详解DES和AES

DES算法

DES算法:一般密码长度是64位。其中有56位为加密密钥,每个第8位都用作奇偶校验。
DES加密的两个关键点:加密算法,数据补位?
DES有两种加密模式:ECB模式:电子密本方式和CBC模式:密文分组链接方式

  • ECB模式
这是JAVA封装的DES算法的默认模式,就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文
或者明文,最后一段不足8个字节,则补足8个字节(注意:这里就涉及到数据补位了)进行计算,之后按照顺序
将计算所得的数据连在一起即可,各段数据之间互不影响。
  • CBC模式:密文分组链接方式
这是.NET封装的DES算法的默认模式,加密步骤如下:
1、首先将数据按照8个字节一组进行分组得到D1D2......Dn(若数据不是8的整数倍,就涉及到数据补位了)
2、第一组数据D1与向量I异或后的结果进行DES加密得到第一组密文C1(注意:这里有向量I的说法,ECB模式下没有使用向量I)
3、第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2
4、之后的数据以此类推,得到Cn
5、按顺序连为C1C2C3......Cn即为加密结果。

== CBC出现了一个向量I,没有深入研究。向量I对整个数据的保密性没有太大的作用。有时候错误的向量I依然可以得到正确的明文 ==

  • 数据补位
    一般有NoPadding(P0)、PKCS7Padding(P7)和PKCS5Padding(P5)
P0:算法本身不填充
P7:对加密数据字节长度对8取余为r,如r大于0,则补8-r个字节,字节为8-r的值;如果r等于0,则补8个字节8。
如:加密字符串为为AAA,则补位为AAA55555;加密字符串为BBBBBB,则补位为BBBBBB22;加密字符串为CCCCCCCC,则补位为CCCCCCCC88888888
P5:P5明确定义了加密块是8字节,P7加密快可以是1-255之间
AES-128算法
经过四个操作:1、密钥加法层  2、字节代换层  3、行位移层  4、列混淆层
1、密钥加法层
		将明文分为长度相等的组,也将密钥分为长度相等的组。然后明文组和密钥组 组合 p0*k0,p1*k1
2、字节代换层
		是一个简单的查表工作。AES 定义了一个 S 盒和一个逆 S 盒。状态矩阵中的每一个元素(含1个字节)将字节高4位作为行值,低4位作为列值,
		取S盒中的元素作为输出。而字节代换逆操作也就是查逆 S 盒来变换。
3、行位移层
		AES 的行移位也是一个简单的左循环移位操作。当密钥长度为128比特时,状态矩阵的第0行左移0字节,第1行左移1字节,第2行左移2字节,第3行左移3字节:
4、列混淆层
		列混合变换是通过矩阵相乘来实现的,经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵
		(注意:其运算中涉及的加法和乘法都是定义在 GF(2^8)上的加法和乘法,目的就是为了确保运算结果不会溢出定义域)

非对称算法

有哪些?

非对称算法有:RSA、DSA(数字签名使用)、ECC(移动设备用)、Diffie-Hellman、
El Gamal

用途

用途一:加解密;用途二:加验签

DSA算法:数字签名算法
RSA算法:支持变长密钥的公共密钥算法
ECC算法:椭圆曲线密码编码学。

对称密钥和非对称密钥的区别和优缺点?

  • 对称加密: 加密和解密的秘钥使用的是同一个.
  • 非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)

对称密钥和非对称密钥的优缺点

对称密钥:

  • 优点:算法公开、计算量小、加密速度快、加密效率高
  • 缺点:
    在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

非对称密钥:

  • 优点: 安全
  • 缺点:速度较慢