加密方法

包括单钥加密(private key cryptography)(对称式加密)和双钥加密(public key cryptography)(非对称式加密),其主要区别在于,是否使用同一套密码进行加密和解密。

非对称式加密

就如名字所说的,这个通信过程是非对称的,一方使用的是公钥,另一方使用私钥。

具有一下特点:

  1. 钥匙对是由同一个人同时生成,且唯一对应的,并且具有唯一性,也即没有任何两个对是完全相同的。
  2. 公钥是公开的,无论谁,都可以通过和主人通过不安全信道通信获取公钥。
  3. 一把钥匙(无论哪一把)加密的文件,都可以也必须使用另一把钥匙才能解密。
  4. 为了保证信息的安全性,应保证难以或不可能从公钥计算出私钥(但还未从数学方面证明出不可能性,所以由公钥推导是一个可行的攻击方法)。

目前通用的加密方法

主要的应用是RSA(Rivest-Shamir-Adleman),但还有以下普通的算法:
ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA、椭圆曲线数字签名和有限自动机数字签名算法等

有一下特殊的算法:
盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等

(对称式加密的算法是DES(Data Encryption Standard))

由于生成方便的特点

上面提到,私钥也可以加密,你有可能使用自己的私钥来加密并发送文件,并且接受者要求你在文件里进行数字签名,来确保是你发送的文件(谁知道你会不会中途反悔,可以避免你对交易的抵赖)
但是任何人都能生成自己的对,那么就会居心叵测的小人冒充是你,谎称他自己生成的对是你的对,在文件内签下了你的名字!!!但是接收者并不能知道这个到底是不是真的你的落款。

所以在这时你就要引入第三方机构生成认证。你们两个人(特别是信息接受者)都信任的机构,它颁布给你数字证书,你只要把数字证书和数字签名一起放入文件里,接受者就能向机构验证是否真的是用你的密钥签发的文件。

优点

  1. 密钥分配简单
  2. 密钥保存量小
  3. 满足互不认识的人进行私人对话的需求(对比于对称式加密,需要通过安全途径把私钥交给朋友,陌生人就做不到这一点)
  4. 更加安全可靠,减少了密钥传播过程泄露的危险
  5. 可以完成数字签名和数字鉴别(提高通信的可靠性)

缺点

  1. 对大数进行计算,计算量浩大,速度远不及私钥密码体制(因此一般用于加密小数据,如会话钥,目前主要用于密钥管理和数字签名。)一个暂时理论可行的攻击方法是从公钥计
  2. 算出私钥
  3. 由于要将一部分密码信息予以公布,势必对系统产生影响
  4. 若公钥文件被更改,则公钥被攻破