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 Data from Others

Security Introduction

老师举例有趣地谈论安全的话题。在密码学的世界里,有两个好人A和B,他们不想让其他人知道他们在交流什么,还有一些坏人,那就是C,中间的C会做坏事,可能想要偷听、修改A和B谈话的内容。

在第一堂课上,我们是好人,好人是视图破坏密码学的人,而坏人是哪些试图加密信息的人:比如二战中的布莱克利公园,他们破译了德军的密码,拯救了世界,他们是好人。
现在好人正在做加密,我们正试图想出越来越聪明的加密方法,而政府必须不断的想出解密的方法。

我们开始的时候,试图隐藏信息的人是坏人,而我们现在是好人,为什么我们现在是好人?因为是我们,一旦我们决定了我们,我们就是好人(emmm...)。
接下来作者给我们看了一个他前几年参观布莱克利公园的照片。

安全专家认为,完美安全是一种谬论,安全是一个成本效益分析。

Security - Encryption and Confidentiality

这里用到的术语有明文和密文。我们想要传输的信息称作是明文,例如信用卡的数字或者其他重要信息,这些信息都有对应的加密版本,我们称其为密文。密文有一定概率被暴露给第三方。

加密是将明文变成密文的操作。将密文还原为明文的操作则是解密。加密解密都需要钥匙,钥匙本质上是一些数据,通过特定的算法来实现加密与解密。

我们将讨论两种不同的钥匙:一种被称作密钥,另一种被称作公钥。

先讨论密钥:
密钥加密系统的使用从罗马时代就开始了,一直到第二次世界大战。公钥加密系统则是在20世纪60年代才开始应用。
密钥也被称作对称密钥。简单来说,加密与解密使用的是同一把钥匙。而公钥则是不对称的,即加密与解密用的钥匙不同。
密钥的缺点就是需要一个绝对安全的交流环境,需要以一个安全的方式将密钥告知对方,这个缺陷也推动了公钥加密的发明。
下面是加密的主要流程:

除非截获人知道密钥或者破译,否则他所截获的信息无法得知其正确的信息。
凯撒密码是一种最古老的、被广泛使用的一种加密形式:

采用的是替换的概念。这种加密方式被使用了很长的时间,但这种方式很容易被破解。

Insuring Data Integrity

Security - Integrity and Signatures

(百度)SHA1:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。 SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要,(但会有1x10 ^ 48分之一的机率出现相同的消息摘要,一般使用时忽略)。
(百度)MD5:Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
不过以上两种都有其缺陷,只能用来加密一些不打重要的事情。SHA256优于SHA1。

首先讨论哈希密码。

在一个网站上登录输入密码,如果网站的数据库将密码以纯文本的形式进行存储,一旦网站系统被侵入,密码将十分危险,而且如果你的密码在不同网站上使用的都是相同的,情况将更加糟糕。所以对于网站来说,安全的做法是,后台通过密码散列来加密你的密码,当你再次输入密码时,系统将其与数据库中的密码散列进行比较,如果匹配则证明输入的密码正确。这样网站就不需要存储纯文本密码更显得更加安全。
这里举了一个例子:

数据库运用hash来存储用户们的密码,有两个很重要的特点是其不可逆和无冲突,不可逆是指one way operation。无冲突指的是两段不同信息经过hash加密后不能生成两端相同的digest。
接下来介绍digital signatures.

上图展示的是加密的原理。可以确认消息是否在途中被更改。

  • 每一对人/系统都需要一个密钥
  • 在internet中,密钥分发不能通过internet进行,因为在获得密钥之前,通信是不安全的。
  • 要使因特网正常工作,我们需要一种方法,在不损害安全性的情况下,密钥可以穿越不安全的internet并被拦截。

Internet History, Technology and Security (Week 8)的更多相关文章

  1. Internet History, Technology and Security (Get Started)

    Abstract 课程名称:互联网的历史.技术和安全 coursera地址 制作方:密歇根大学(University of Michigan) 教师:Charles Severance, Associ ...

  2. Internet History,Technology and Security

    Internet History,Technology and Security(简单记录) First Week High Stakes Research in Computing,and Comm ...

  3. Internet History,Technology,and Security - History Through Supercomputing(Week2)

    时间飞逝,一周又过去了,这周我们来到了Internet History, Technology and Security (Week 2)的学习,从标题就可以看出,这周主要是介绍“互联网”雏形的诞生. ...

  4. Internet History, Technology and Security (Week 2)

    Week 2 History: The First Internet - NSFNet Welcome to week 2! This week, we'll be covering the hist ...

  5. Coursera: Internet History, Technology, and Security

    课程网址:https://www.coursera.org/learn/internet-history 学习笔记: Week 1: History - Dawn of Early Computing ...

  6. Internet History, Technology and Security (Week 9)

    Week 9 Security: Web Security We are now on the second to last week of the class and finishing up ou ...

  7. Internet History, Technology, and Security(week1)——History: Dawn of Electronic Computing

    前言: 第一次进行课程学习,在反复观看视频和查找字典翻译理解后选出了视频中个人认为较重要的概念,以下并不按照逐句翻译,中文概括大意余下自由发挥,对老师想要告诉我们的历史有一个初步的了解,顺便锻炼以下英 ...

  8. Internet History, Technology and Security (Week5.1)

    Week5 The Transport layer is built on the Internetwork layer and is what makes our network connectio ...

  9. Internet History, Technology and Security (Week 4)

    Week 4 History: Commercialization and Growth We are now moving into Week 4! This week, we will be co ...

  10. Internet History,Technology,and Security - Technology: Internets and Packets (Week5)

    Week5 Technology: Internets and Packets Welcome to Week 5! This week, we’ll be covering internets an ...

随机推荐

  1. 2017-2018-1 20155330 《信息安全系统设计基础》加分项目--实现mypwd

    2017-2018-1 20155330 <信息安全系统设计基础>加分项目--实现mypwd pwd命令 命令功能:查看"当前工作目录"的完整路径. 通过man命令查看 ...

  2. PyQt5 笔记(05):信号/槽

    PyQt 的很多类都内置了信号和槽.下图是 Qt 官方文档对 QThread 类中包含的信号/槽的描述: 一.信号/槽 都是内置的 请看一个最简单的程序: 按钮点击后,窗口关闭 代码: class T ...

  3. 4820: [Sdoi2017]硬币游戏

    4820: [Sdoi2017]硬币游戏 链接 分析: 期望dp+高斯消元. 首先可以建出AC自动机,Xi表示经过节点i的期望次数,然后高斯消元,这样点的个数太多,复杂度太大.但是AC自动机上末尾节点 ...

  4. CF833B The Bakery 线段树,DP

    CF833B The Bakery LG传送门 线段树优化DP. 其实这是很久以前就应该做了的一道题,由于颓废一直咕在那里,其实还是挺不错的一道题. 先考虑\(O(n^2k)\)做法:设\(f[i][ ...

  5. CSS快速入门-定位(position)

    一.概述 CSS 定位 (Positioning) 属性允许你对元素进行定位. 定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的 ...

  6. Async方法死锁的问题 Don't Block on Async Code(转)

    今天调试requet.GetRequestStreamAsync异步方法出现不返回的问题,可能是死锁了.看到老外一篇文章解释了异步方法死锁的问题,懒的翻译,直接搬过来了. http://blog.st ...

  7. C#_Switch语句的内部实现

    Switch的C#内部实现 https://www.cnblogs.com/Interkey/p/3730432.html 在IL汇编语言中的Switch指令 -- 按照标号来进行跳转(和goto语句 ...

  8. jQuery的$ .ajax防止重复提交的方法

    没啥说的直接贴代码,很简单: 第一种方式:的onclick点击事件类型 <SCRIPT> function member_del(obj,id){ var lock = false; // ...

  9. 学习python最难的就是入门,而这文章刚好适合初学者!

    Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube.Dropbox.BT ...

  10. Tree - Information Theory

    This will be a series of post about Tree model and relevant ensemble method, including but not limit ...