文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>加密技术、密钥和证书(一)

加密技术、密钥和证书(一)

时间:2005-10-23  来源:rickyweiwei

密钥和证书

非对称加密使用公钥/私钥对。对于使用私钥加密的数据,只能使用相应的公钥进行解密,反之亦然。

公钥是指可以提供给很多人的密钥。相反,私钥是特定个人所独有的。向用户传送公钥使用的分发机制是证书。通常,证书颁发机构 (CA) 对证书进行签名,以便确认公钥来自声称发送公钥的主体。CA 是一个相互信任的实体。数字认证的典型实现包含证书签名过程。图 1 中显示了此过程。

密钥和证书

非对称加密使用公钥/私钥对。对于使用私钥加密的数据,只能使用相应的公钥进行解密,反之亦然。

顾名思义,公钥是指可以提供给很多人的密钥。相反,私钥是特定个人所独有的。向用户传送公钥使用的分发机制是证书。通常,证书颁发机构 (CA) 对证书进行签名,以便确认公钥来自声称发送公钥的主体。CA 是一个相互信任的实体。数字认证的典型实现包含证书签名过程。图 1 中显示了此过程。


图 1 中显示了以下事件的顺序:

1.

王丽将一个签名的证书请求(包含她的名字、公钥、可能还有其他一些信息)发送到 CA。

2.

CA 使用王丽的请求创建一个消息。CA 使用其私钥对消息进行签名,以便创建一个单独的签名。CA 将消息和签名返回给王丽。消息和签名共同构成了王丽的证书。

3.

王丽将她的证书发送给李华,以便授权他访问她的公钥。

4.

李华使用 CA 的公钥对证书签名进行验证。如果证明签名是有效的,他就承认证书中的公钥是王丽的公钥。

与数字签名的情况一样,任何有权访问 CA 公钥的接收者都可以确定证书是否是由特定 CA 签名的。这个过程不要求访问任何机密信息。上面这个方案假定李华有权访问 CA 的公钥。如果李华拥有包含该公钥的 CA 证书的副本,则他有权访问该密钥。

加密技术

加密技术用于提供以下功能:

机密性。确保数据的保密性。机密性通常是使用加密实现的。可以使用加密算法(使用加密密钥)将明文转换为密文,并使用相应的解密算法将密文转换回明文。对称加密算法使用相同的密钥进行加密和解密,而非对称算法则使用公钥/私钥对。

数据完整性。确保数据免受意外或者故意(恶意)的修改。完整性通常是由消息身份验证代码或哈希值提供的。哈希值是从数据序列导出的固定长度的数值。哈希值用于验证通过非安全通道传送的数据的完整性。可以将收到的数据的哈希值与传送时数据的哈希值进行比较,以确定数据是否被篡改。

身份验证。保证数据来自某一方。数字证书用于提供身份验证。数字签名通常应用于哈希值,因为这些值比它们所代表的源数据小得多。

技术选择

如果需要使用一种方法来验证数据在传输过程中没有被篡改,请使用哈希值。

如果要证明实体知道机密但不来回发送机密,或者想使用简单的哈希值以防止在传输过程中被截获,请使用加密的哈希值。

如果要隐藏通过不安全的媒介发送的数据或者要永久性保留数据,请使用加密。

如果要验证声称是公钥所有者的人员的身份,请使用证书。

如果双方事先共享密钥,请使用对称加密以提高速度。

如果想通过不安全的媒介安全地交换数据,请使用非对称加密。

如果要进行身份验证和实现不可否认性,请使用数字签名。

使用 Salt 值(使用加密技术生成的随机数)以防范字典攻击。

相关阅读 更多 +
排行榜 更多 +
方块枪战战场安卓版

方块枪战战场安卓版

飞行射击 下载
战斗火力射击安卓版

战斗火力射击安卓版

飞行射击 下载
空中防御战安卓版

空中防御战安卓版

飞行射击 下载