公钥基础设施(一):公钥机制

好久没有更文了。
最近有个项目,想用证书的方式来验证设备身份,所以仔细研究了一下PKI。
其实信安课上有讲,可是当时一知半解,现在刚好整理复习一下。

PKI概述

PKI(Public Key Infrastructure)全称是公钥基础设施,主要提供公钥加密和数字签名服务。PKI技术以公钥技术为基础,以数字证书为媒介,结合对称加密和非对称加密技术,将个人、组织、设备的标识信息与各自的公钥捆绑在一起。其主要目的是通过自动管理密钥和证书,为用户建立起一个安全、可信的网络运行环境,使用户可以在多种应用环境下方便地使用加密和数字签名技术,在互联网上验证用户的身份,从而保证了互联网上所传输信息的真实性、完整性、机密性和不可否认性。

加密方式

目前常规的加密方式通常只有两种:对称和非对称加密。

对称加密

所谓对称加密,就是指加密和解密使用的密钥是相同的,加密和解密的过程对称,所以被称为对称加密。
例如异或加密就是一种很简单的对称加密算法。(即明文用密钥加密一次成为密文,密文用同一密钥解密一次成为明文)

在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。

优点

  • 算法公开,安全性由密钥本身保证
  • 计算量小、运算效率高,适合加密大量数据
  • 密文长度和明文相等,不会增加负担
    • 这个优点是我在信息安全的PPT上看到的,但是学长认为这并不一定。例如如果将BASE64的编码表看作是密钥的话,BASE64是一种对称加密,但是加密后密码变长了。我站学长,不过我觉得讲义上这么说大概指的是成熟的对称加密算法考虑到加解密效率一般都会尽可能保证密文长度不增加?

缺点

  • 双方在约定密钥时需要以安全方式进行
  • 一旦一方密钥泄露,则会话完全暴露
  • 易被破解(也许不一定,但一般不如非对称加密)
  • 由于密钥是基于会话的,密钥数量平方级增长,难以管理

非对称加密

相对的,非对称加密指加密和解密所需的密钥并不相同,用 加密密钥 加密的密文是无法再次用 加密密钥 解出明文的,只能用与加密密钥对应的 解密密钥 来得到明文。
当然,加密密钥解密密钥 是相对的,他们可以互相加解密。
也就是说,在非对称加密中,有一个密钥对,其中一个用来加密的时候,还要得到另一个才能解密。

所以,在非对称加密中有两个密钥,只要自己保密两个中的一个,那么就能保证通话的安全。也就是说其中一个即使泄露也不会影响安全性,是可公开的。
于是这种体制又被称为 公钥机制

公钥机制

每个人都有两把密钥,其中一把密钥由自己保密,称为 私钥 ,另一把任何人都可以拥有,向所有人公开,称为 公钥
公钥体制主要能做的两件事就是加密和验证。

加密是保证对方发送给自己的数据不会被他人破解。
验证是保证自己发送给对方的数据无法被他人篡改,且自己也不可否认。

加密

加密的实现方式是,对方用公钥加密信息并发送给自己。解密密文的私钥只有自己有,所以保证了密文的机密性。

验证

验证的实现方式是,将自己要发送的信息用自己的私钥加密。由于自己的公钥是公开的,所以密文本身没有机密性,可被任何人解密,但是对方能否用公钥解密这一点就保证了文本的完整性和不可否认。
其他人如果想修改原文,那么修改后是无法再次用私钥进行加密的,也就无法让密文可以被公钥解密。
事实上,由于正文过长,我们往往会将信息hash后再用私钥加密,附在正文后用以验证。

优点

  • 双方信息可以以安全方式传输
  • 大大减少密钥持有量,每人仅需一把仅自己持有的私钥和一把可公开的公钥,常数级

缺点

  • 计算复杂、耗用资源大
  • 密文长度大于明文,传输负担增大