加密技术
加密技术用于提供以下功能:
机密性:确保数据的保密性。机密性通常是使用加密实现的。可以使用加密算法(使用加密密钥)将明文转换为密文,并使用相应的解密算法将密文转换回明文。对称加密算法使用相同的密钥进行加密和解密,而非对称算法则使用公钥/私钥对。
数据完整性:确保数据免受意外或者故意(恶意)的修改。完整性通常是由消息身份验证代码或哈希值提供的。哈希值是从数据序列导出的固定长度的数值。哈希值用于验证通过非安全通道传送的数据的完整性。可以将收到的数据的哈希值与传送时数据的哈希值进行比较,以确定数据是否被篡改。
身份验证:保证数据来自某一方。数字证书用于提供身份验证。数字签名通常应用于哈希值,因为这些值比它们所代表的源数据小得多。
技术选择
1.如果需要使用一种方法来验证数据在传输过程中没有被篡改,请使用哈希值。
2.如果要证明实体知道机密但不来回发送机密,或者想使用简单的哈希值以防止在传输过程中被截获,请使用加密的哈希值。
3.如果要隐藏通过不安全的媒介发送的数据或者要永久性保留数据,请使用加密。
4.如果要验证声称是公钥所有者的人员的身份,请使用证书。
5.如果双方事先共享密钥,请使用对称加密以提高速度。
6.如果想通过不安全的媒介安全地交换数据,请使用非对称加密。
7.如果要进行身份验证和实现不可否认性,请使用数字签名。
8.使用 Salt 值(使用加密技术生成的随机数)以防范字典攻击。