对称密钥加密过程
采用单一密钥的加密方法,同一个密钥可以同时作用敏感心信息的加密也可以作用解密,这种加密方法称为对称式加密(Symmetric key),也成为单密要加密。
优点:
1. 较非对称式加密更快
2. 密钥位数大的会话很难攻破
缺点:
1. 需要一个安全机制来分发密钥
2. 每一对使用者都需要唯一的一对密钥。因此密钥数量呈指数增长,这对密钥的管理造成很大的难度。
3. 对称式加密能提供机密性,但是不能提供认证和防抵赖功能。
常用的对称密钥标准有:DES 、IDEA、RC2、RC4、SKJPACK、RC5、AES算法等。
非对称密钥加密过程
非对称加密需要两个密钥:公钥(public key)和私钥(private key)。公钥和私钥必须成对使用,如果用公钥对数据进行加密,只有用对应的私钥才能解密,私钥加密也是要用对应的公钥才能解密。因为加密盒解密使用的是两个不同的密钥,所以这种算法叫做非对称加密。
加密:确保数据的机密性和完整性和防抵赖性。
公钥:是潜在可公开的,所以交换公钥不会造成任何安全威胁。
私钥:不能作公开、交换、或者网络传递。
A(A公钥,A私钥),B(B公钥,B私钥)
机密性:
A使用B的公钥加密数据把数据传给B,而B只能用自己公钥对应的私钥解密的过程。这种使用接收方的公钥来加密的数据方式,它的特点如下:
1. 能保证消息的私密性,只有接受者可以阅读消息的内容,因为只有接收者具备解密的私钥。
2. 无法提供来源可靠认证,在为公钥的潜在是可以公开的,任何人都有可能得到接收者的公钥。
完整性和防抵赖性:
A使用自己的私钥加密的数据(完整性和防抵赖性的认证)传数据,第三方包括B用A的公钥解密解密A私钥加密的文档的过程。特点:
1. 不能保证消息的私密性,被称为公开的消息格式,因为每一个具备该公钥的人都可以解密该消息,而公钥潜在就是被公开的,也就是说每个人都可能获得公钥。
2. 可以保证消息来源的可靠性认证功能,因为发送者使用私钥加密,私钥只有发送者本人具备,它不具备潜在的可公开性,而且中间人不能篡改消息,因为它没有发送者的私钥。
注意:在非对称式加密过程中,每一种密钥类型都可以用来加密和解密,所以不要误会认为公钥只能用来加密,私钥只能用来解密,事实上它们都具有加密和解密的能力,取舍在于你重点需要的是机密性还是完整性。
优点:
1. 与对称式加密相比较,有更好的密钥分发功能。
2. 比对称式加密更有扩展性。
3. 能提供来源认证和防抵赖功能。
缺点:
1. 非对称式加密的速度比对称式加密更慢。
2. 数学模型较复杂。
常用的对称密钥标准有:RSA、ECC、Diffe-Hellman、EIGamal、DSA等。
流密码与分组密码
对称式密码算法主要有两种:分组密码和流密码。分组密码作用于明文组和密文组;而流密码作用于明文流和密文流,一次一个比特。
分组密码:
使用分组密码算法来加密或者解密时,明文消息被规划成比特分组,然后使用数学函数来处理这些分组,一次处理一个分组,比如需要对发送给用户A的消息进行加密,并且使用64比特的分组密码,如果一共有6400个比特的消息需要被加密,那么它将被分割才100个64比特分组。每个分组使用的一系列的数学公式进行处理,最后会得到100个加密的分组,当消息到达A用户时,A用户必须拥有相同的分组密码进行解密。
流密码:
分组密码是函数作用在数据组上,而流密码的数学函数作用在每个比特上,当使用流密码时,每加密一次,每个比特的明文将被转化喂不同的密文比特,通常使用密钥流产生器完成这个过程,密钥流产生器产生的比特流与明文比特进行XOR处理,从而产生密文。
流密码需要更多地随机性,且一次只能加密一个比特,与分组密码相比,流密码需要更大的处理能力,所以说流密码更适用于硬件平台实现,分组密码更适用于软件平台实现。
关于加密过程中的IV值:初始向量值。和密钥同时使用。提高随机性。
混合要型加密过程(对称式+非对称式)
用对称式密钥来加密海量数据,从而减少加密时间,达到快速加密,然后使用非对称密钥加密对称式密钥,然后解密者首先使用自己的私钥解密对称式密钥,最后在使用对称式密钥解密文档。
A(A公钥,A私钥)B(B公钥,B私钥)
1. 首先A B交换彼此的公钥,因为公钥潜在是可以公开给任何人的。
2. A使用对称式密钥加密数据,然后在使用B的公钥加密对称式密钥,然后把文档在网络上传给B。
3. B首先使用自己的私钥来解密对称式密钥,然后再用对称式密码解密文档信息,就可以读出文档。
对称式密钥的加密和解密密钥是相同的,AB怎么得到相同的密钥?
注意:如果用来解密数据的对称式密钥没有被保护,那么加密这个数据就没有任何意义!在整个混合型加密的过程中,大家能明白公钥可以通过通信双方交换而得到,因为共要是潜在公开的,但是在混合型加密过程加密过程中通信双方会使用到一把相同的密钥(对称式密钥)那么这把对称式密钥,通信双方是如何获得的?对称式密钥是通过Diffie-Hellman计算出来的。对称式的公钥私钥是本地产生的。
非对称式算法利用数学上的相关的公钥和私钥来加密解密。
对称算法利用对称密钥来加密实际的数据
对称密钥用来加密实际的数据
通常在其他地方所提到的保密密钥、会话密钥等,事实上和对称密钥意义相同。
非对称密钥指的是公钥或者私钥。