Internet History,Technology,and Security -Security: Encrypting and Signing(Week8)

Week 8

Security: Encrypting and Signing

This week we start two weeks of Internet Security. It is a little technical but don't worry - we stay at a very high level and I am confident that if you are still keeping up with the class that you will enjoy these next two weeks. You won't know enough to be an expert - but many of the security issues that you read about going forward will make a lot more sense to you.

The topics we’re covering are encrypting and signing. Using simple examples, we examine how to shield data from prying eyes and make sure that the data was not altered while in transit.

互联网技术层次已经讲完了,接下来就轮到安全方面了,这周我们要学习的是加密和签名。


 

Hiding Date from Ohters

Security Introduction

 

Alice and Bob是密码学、博弈论、物理学等领域中的通用角色之一。Alice(代表A)Bob(代表B)一般是形容好人的,用来描述通讯双方。通讯中也会出现一些不怀好意的人(People with bad intent),比如窃听者(Eve),E代表。

至于Alice and Bob的来源是Rivest、Shamir、Adleman这三位密码学家在1977年4月撰写了一篇论文《数字签名与公钥密码学》中的主人公,因此后世的密码学等领域举例时通常都会用Alice and Bob。

对于安全这回事,是没有所谓的绝对安全的。教授把安全比作一种充满妥协的权衡,,并且提到了网络安全性的成本效益分析问题。比如信用卡的时候,总有可能会出现信息泄露导致的财产损失问题。但是否每个人就应该雇一个保镖来保证信用卡上50美元的安全呢?Charles认为应该通过比较项目的全部成本和效益来评估项目价值,以此来提供安全性的服务。这让我想起了我看过的哈佛公开课《公正该如何做是好》中有一节教授举过的一个例子。在美国二十世纪七十年代,有一种车叫福特平车,它是一种小型,次紧凑型车,风靡一时,但它有一个缺点,油箱就装在车的尾部,发生追尾是,就会发生爆炸,造成严重伤亡,当时公司开了一个会议来决定是否值得装上一面特殊的隔板,以保护油箱,防止油箱爆炸,当时他们做了一项成本分析,结果现实他们不必安装该装置。我想这应该是同一种思路。

对于安全性,这里还要提到两个术语,Confidentiality and Integrity

  • Confidentiality:保密性,指信息的泄露,如果我想把一个信用卡号码发送给某人查看,除了这个我想看到它的人之外,没有人能得到它,那就说明是保密的。
  • Integrity:可靠性,指信息的完整,你收到的信息要跟发送者所发送的信息是一样的,而不能被他人修改。

Security - Encryption and Confidentiality


在Confidentiality中,我们主要讨论的是密码学方面的知识,加密解密、明文暗文等。

Plaintext(明文是指待加密的信息,即加密前能够让人理解的原始数据。

Ciphertext(密文)是明文加密后的版本,只有加密的人知道如何破解。

密钥(key),指的是一种机制或算法,能够将明文通过这套机制转换生成暗文。这种过程叫做加密(encrypt),反之叫解密(decrypt)

密钥分为私钥公钥私钥(private key)是指私有的密钥。公钥(public key)是指密钥是公开的。

密钥有分对称性和非对称性。一般来说,秘密的密钥是对称的,加密解密用的是同一套。而公钥一般非对称的较多,得用一套加密,再用另一套解密。比较著名的公钥算法我知道的是RSA算法。

 

 

这里有一个古老且著名的密钥是凯撒密码,是把26个英文字母按照字母表顺序以移动一定的位数来加密和解密。是非常古老的方法,而且应用了特别长的时间。机制很简单,所以保密性不高,很容易被破解,不能保障通讯的安全性。这里还有一个例子,来说明凯撒密码还可以特解。

Uryyb, zl anzr vf Puhpx naq V arrq zbarl naq n wrg!

英文有特定的局限性。例如上图,出现了单个的大写字母,那么其对应的明文有极大概率是“I”;出现了单个的小写字母,那么有可能就是对应“a”。据此,我们不用从头到尾一个个试验过去,而是根据那个单一的字母去推测是按照移动多少位来加密的。同时英文每个单词必须要有间隔,这是很明确的一个暗示。这让我想到了中文就没有这样的局限性,且也没有大小写。

Insure Date Integrity and Signatures


讲完了保密性,接下来就是可靠性。在罗马时代,人们寄信时都会用特制的印章来密封信件,他们会把它戴在脖子上,以确保没有人偷它,在计算机世界里,我们自然也需要相同的“防伪”,来保证发送的消息的可靠性。

因此我们需要一个技术来确保信息的可靠性。而这个技术就是Cryptographic Hash,Cryptographic Hash(密码散列表)是一种广泛使用的信息安全技术,将任意数据转换成定长的比特串,可以用来保密明文和验证完整性。

密码散列技术在我们生活中最直接的用途就是各类网站的登陆。在过去,用户的信息是以纯文本被存放在数据库中的,但很显然,这是一种很危险的方式,因为如果数据库被破坏了,那么所有的坏人都会得到所有的明文密码。所以当密码散列技术诞生后,这些网站就开始将用户的信息进行哈希加密并储存,这样在你下次登陆的时候,系统就会根据算法,将你的信息与数据库中已经被加密的信息进行匹配。

数据库运用hash来存储用户们的密码,有一个很重要的特点,哪就是不可逆性。密码可以通过Hash加密成digest,但通过digest不能得出用户名的密码。而正是由于这种特殊性,才能避免数据的泄露。因此在你忘记密码的时候,你只能通过邮件来重设密码而并不能要求得知你原来的密码。

众所周知的密码散列技术,你可能听说过,比如SHA1或MD5,它们能接受信息并创建摘要,这是一种科学的、数学的研究努力。

Digital Signature Message Integrity

Digital Signature(数字签名)是只有信息的发送者才能生成的他人无法伪造的一段数字串,一般用于明文发送时确认发送方和验证信息完整性,是非对称密钥加密技术密码哈希技术的应用。数字签名中存在对公钥密码的逆运用,即用私钥加密,用公钥解密。用私钥加密的消息称为签名,只有拥有私钥的用户可以生成签名。用公钥解密签名这一步称为验证签名,所有用户都可以验证签名。

如下图,Alice要给Bob发信息“Eat More Ovaltine”(多吃点阿华田),二人约定了一个Secret,即末尾的Santa。当信息发送时先将Eat More OvaltineSanta连起来Hash加密得到a79540,将其与之前的Eat More Ovaltine连起来,因此发送方发送的其实是Eat More Ovaltinea79540。而接收方接收信息时将二者拆分,重新分成了Eat More Ovaltinea79540,由于只有他们二人知道SecretSanta,因此如果信息被修改过,即信息已经不是Eat More Ovaltinea,那么加上SantaHash加密后得到的就一定不是a79540。

posted @ 2019-12-25 00:19  如梦的少年丶  阅读(290)  评论(0编辑  收藏  举报