Hiding Date from Ohters
-
Security Introduction
Alice and Bob是密码学、博弈论、物理学等领域中的通用角色之一。Alice(代表A)和Bob(代表B)一般是形容好人的,用来描述通讯双方。通讯中也会出现一些不怀好意的人(People with bad intent),比如窃听者(Eve),用E代表。
Security is Always a Tradeoff,安全总是一种充满妥协的权衡。对于安全这回事,几乎不存在所谓的Perfect Security,我们总是在权衡,根据实际情况尽可能地去确保安全。
信息安全的CIA三要素:
- Confidentiality(保密性)
- Integrity(完整性)
- Availability(可用性)
-
Security - Encryption and Confidentiality
Plaintext(明文)是指待加密的信息,即加密前能够让人理解的原始数据。Ciphertext(密文)是明文加密后的版本,只有加密的人知道如何破解。明文转换为密文称作Encryption(加密),把密文转换回明文称作Decryption(解密)。一个加密系统的强度取决于加密解密技术与Key(密钥)的长度,密钥指一种将明文转换成密文的算法或机制。
密钥分为私钥和公钥。私钥(private key)是指私有的密钥。公钥(public key)是指密钥是公开的。
一般来说,私钥是对称的,加密解密用的是同一套,例如凯撒密码。而公钥一般非对称的较多,信息发送者用公钥加密,而信息接收者则用私钥解密。比较著名的公钥算法是RSA算法。
凯撒密码是一种古老但是却应用广泛的对称密码,其原理是把英文字母按照字母表顺序以移动一定的位数来加密和解密,例如图中是按推后三位对应,用D来代表A、用E来代表B,依次类推。
Insure Date Integrity
-
Security - Integrity and Signatures
Cryptographic Hash(密码散列表)是一种广泛使用的信息安全技术,将任意数据转换成定长的比特串,可以用来保密明文和验证完整性。
由于担心数据库被攻击而泄露密码,一般网站不会以明文形式存储用户密码,而是当用户设置密码时,计算其哈希值并储存。在登录时,会将用户输入内容转换成哈希值与数据库中存储的进行匹配。因此,一个值得信任的网站永远不会把密码发给用户,而是只能重设密码。
Digital Signature(数字签名)是只有信息的发送者才能生成的他人无法伪造的一段数字串,一般用于明文发送时确认发送方和验证信息完整性,是非对称密钥加密技术与密码哈希技术的应用。数字签名中存在对公钥密码的逆运用,即用私钥加密,用公钥解密。用私钥加密的消息称为签名,只有拥有私钥的用户可以生成签名。用公钥解密签名这一步称为验证签名,所有用户都可以验证签名。
如上图,Alice要给Bob发信息“Eat More Ovaltine”(多吃点阿华田),二人约定了一个Secret,即末尾的Santa。当信息发送时先将Eat More OvaltineSanta连起来Hash加密得到a79540,将其与之前的Eat More Ovaltine连起来,因此发送方发送的其实是Eat More Ovaltinea79540。而接收方接收信息时将二者拆分,重新分成了Eat More Ovaltine和a79540,由于只有他们二人知道Secret是Santa,因此如果信息被修改过,即信息已经不是Eat More Ovaltinea,那么加上Santa并Hash加密后得到的就一定不是a79540。
小结: