密码学体系 - 对称、非对称加密
type
status
date
slug
summary
tags
category
icon
password
👋 通信双方对数据进行加密是为了防止数据被中间人查看或伪造。本文简单介绍一下对称加密和非对称加密的概念。
数据的加密过程和解密过程可定义如下:
其中:M代表数据(message);K代表密钥(key);C代表密文(ciphertext)
对称加密和非对称加密是以密钥的数量划分的。对称加密只使用一把密钥,非对称加密使用两把密钥,分为公钥和私钥。
对称加密
对称加密只有一个密钥,根据加密方式可分为分组加密和流加密。
AES,DES,TEA是常见的分组加密。RC4是常见的流加密。
对称加密的数学公式可定义如下:
对称加密的核心思想是:通信双方持有相同的密钥,通过对加密和解密算法的精心设计,保证无法通过任何方式得出密钥。采用对称加密的系统,其保密性主要由密钥的安全性决定,而与算法是否保密无关。
- 关键点一
好的对称加密体系,其密钥不能通过对明文和密文分析得到。
考虑下面的对称加密体系:
其中代表异或,代表数据的第 位,代表密钥的第 位,数据长度为,密钥长度为。
这套体系存在一个很严重的问题,当明文和密文已知时,可以计算得到密钥。
- 关键点二
对称加密体系中,其密钥不能公开,而算法可以公开。
优点:计算量小;加密速度快;
缺点:每对用户通信都需要一个密钥;通信双方均需要保留密钥,且不能泄露;
非对称加密
非对称加密有两个密钥,分为公钥和私钥。
常见的加密算法有RSA,ECC,Elgamal。
数学公式定义如下:
其核心思想为:公钥公开,通信双方均持有公钥。私钥仅由通信中的一方保管。由公钥加密的数据仅能通过私钥解密,由私钥加密的数据仅能通过公钥加密。
私钥加密的过程叫签名,公钥解密的过程叫校验。
- 关键点一
使用私钥签名的数据不会被伪造,但数据能被中间人查看。
假设持有私钥的一方是Alice,仅持有公钥的是Bob,攻击者Eve持有公钥。
Alice向Bob发送消息,Alice用加密数据,此时Eve拦截下Alice的数据后通过可以得知内容,但是Eve没有,所以无法伪造数据。
- 关键点二
公钥加密的数据不会被伪造,数据也不会被中间人查看。但公钥加密的数据仅能被私钥持有者解密。
优点:私钥用来对数据签名,保证数据的可信;公钥可以公开,任何人都可以用公钥向私钥所有者发送消息且不被中间人修改;
缺点:加密算法复杂;
一些密钥交换流程
- 纯非对称加密
- Alice生成和,并将告知所有人
- Bob生成和
- Bob使用对加密,并发送给Alice
- Alice用解密,得到
- Alice得到了Bob的公钥,Bob得到了Alice的公钥,各种保管各自的私钥。
- 非对称与对称混合加密
- Alice生成和,并将告知所有人
- Bob生成
- Bob使用对加密,并发送给Alice
- Alice用解密,得到
- Alice得到了Bob制定的对称加密密钥。