Security Introduction

People With Bad Intent


今天,Bob 向 Alice 发送了一条 “Hello,Allice!” 的信息,他们希望这条信息只有他们两个人知道,但是邪恶的 C 出现了,他通过非法的手段窃听了这条信息,当然,在这之后,有一堆 无处不在的 贪图Alice美色的 坏人(看来Alice长的很漂亮。。),同样的也想要窃听他们之间的对话,怀着邪恶的目的。

Paranoia(偏执狂)

  • Who is out to get you?
  • If you are interesting or influential people want to get into your personal info.
  • If you are normal, folks want to use your resources or take your information to make money...
  • Usually no one cares...(=_=)But it is safest to assume some is always trying...

为什么要关注安全?因为security牵扯到我们每一个人,有人每时每刻都想着要偷取别人的个人信息来卖钱。
当我们谈及,有人想获取你的信息的时候,你会想:是谁 那么变态 想偷我的信息?为什么想要偷我的信息?
我们对于这个世界 太普通了,大部分想偷取我们利益的人,基本都是想拿走我们的银行卡,然后在冻结银行卡之前,买一些东西给他们维持生计(这让我开始心疼那些 负债累累 吃完沙县就跑路的老哥们)。
比如,你开了一家公司,你有很多生意上的竞争者,他们想破解进入你的邮箱,这种诡计比比皆是。

Who is out to get us? -The government

角色逆转了,那么此刻 government 是好人,我们是坏人,好人想要知道我们想干什么坏事,来阻止我们。
事实上,government 拥有最先进的安全破解设备。

Alan Turing and Bletchley Park

  • Top secret code breaking effort
  • 10,000 people at the peak (team effort).
  • BOMBE: Mechanical Computer
  • Colossus: Electronic Computer

政府现在拥有着像 BOMBE 这样的机器,窃取我们的机密通信,并且尝试破解它们。我们现在处在战争中,我们想让我们的信息越来越安全。最后演变成了一种军备竞赛。

Security is always a Tradeoff(交易,折中)

  • "Pefect Security" is unreachable -Must find the right tradeoff.
  • Security. versus(与). Cost.
  • Security. versus. Convenience(See also,"profit").
  • "More" is not always better -vendors(供应商) of products will try to convince you that you cannot live without their particular gadget(装置).

没有完美的安全措施,现在许多的公司听信所谓安全专家的话,花费大量的金钱来使得安全变得越来越好,这完全就是 fallacy(谬误推理)。
benefit analysis

Terminology(术语): 两个问题 欺骗与泄密

  • 泄密 Confidentiality(机密性): Prevent unauthorized viewing of information.防止数据的泄露。
  • 欺骗 Integrity(诚实正直): Information is from who you think it is from and has not been modified(调整) since it was change.

Security - Encryption(加密) and Confidentially

Confidentially 机密性

  • Plaintext is a message that will be put into secret form.
  • Ciphertext is a transformed version of plaintext that is unintelligible(不能理解的) to anyone without the means to decrypt(解释清楚).

首先解决的是 机密性,加密 和 解密。这是二战时布莱切利园的工作。
这里我们使用的术语:明文(plaintext) 和 暗文(ciphertext)。

无论我们想要传递文本信息或者是其他的信息,这些我们想传递的信息都叫做 明文。
这些信息我们有加密的版本,称之为暗文。
密文有可能在传输的过程中被第三方截获,我们所要做的事情 就是让 密文转变为明文 的这一过程 变的复杂且难以破译。

  • encryption(加密): The transformation of plaintext to ciphertext is referred to as encryption.
  • decryption(解密): Returning the ciphertext back to plaintext is referred to as decryption.
  • The strengthen of a cryptosystem(密码系统) is determinded by the encryption and decryption techniques and the length of the key.

钥匙Key 本身是一串数据,通过特定的算法来实现加密和解密。

Two kinds of systems

Two basic types of cryptosystem exist: secret-key and public-key.
In a secret-key scheme(体系), the key used for encryption must be the same key used for the decryption. Also called symmetric-key (对称) crytosystem.
Secret-key crytosystems have the problem of secure key distribution(分配) to all parties using the cryptosystem.

我们有两种密码系统:公钥 和 密钥。密钥加密系统最早从罗马时代开始,一直到第二次世界大战。公钥加密系统相对来说比较年轻,从上个世纪70年代开始应用。

密钥,又称作 symmetric-key 对称密钥,意味着发送方和接收方都知道信息的内容。简单的来说,加密和解密使用同一把钥匙。
公钥,不是对称的,意味着加密所用的钥匙 和 解密所用的钥匙 不一样。

密钥的问题在于,你需要有一个绝对安全的交流环境。需要一个安全的方法告诉对方密钥。这个缺陷也推动了公钥的发展,公钥加密系统能够在并不安全的环境下工作,实现钥匙的传递。


如图,Alice 想要发送 “candy” 这条报文,她通过 密钥 加密了这条信息,得到了暗文:“dboez”,发送给了Bob,Bob 也知道密钥,将暗文解密,得到了明文“candy”。
我们假设 接收端和发送端 都是安全的,只有中间的网络是不安全的,那么信息被Eve截获了,Eve就要像布莱切利园一样,做解密的工作。

凯撒密码(The Caesar cipher) 是一种最古老的 最广泛应用的加密方式,我们在之前的FOJ上的题目有见到过这样的题目,输入一串暗文,利用凯撒密码的解密方式 得到明文。它采用的是 替换(shift)的概念。
明文在发送之前做了替换类型的加密工作,对方得到了密文,然后从安全的途径中获取了解密的方法,然后对密文进行解密。
加密的方法是 从明文字母对应到暗文字母,解密的方法是 从暗文字母对应到明文字母。

进行了两次的凯撒密码解密尝试:

我们能够猜测出 发送者想要发送信息的大意,从而帮助我们解密。当第三方发现数据泄露的时候,能够利用这一点 来破译密码。
在 www.rot13.com (类似早期的朋友圈,Facebook)中,会经常看到一些荤笑话,但是系统不允许出现 fuck 这样的脏话,所以发送者会想一些方法来加密这些文字,这样我们才能把荤段子发送给订阅的人。用到了凯撒密码的第13种解法,很有意思。我们把 荤段子 发送到rot13网站,然后加密为密文,发送给订阅者。

2016/8/9

【Coursera】Security Introduction -Eighth Week(1)的更多相关文章

  1. 【Coursera】Security Introduction -Eighth Week(2)

    Review -Terminology(术语): Confidentiallity & Integrity 泄密 & 欺骗 Confidentiallity: Prevent unau ...

  2. 【Coursera】Security Introduction -Ninth Week(1)

    前言 Coursera 的 Internet History,Technology,and Security 进入最后一周的学习了,在这最后一周内,需要进行的内容是 public-key 公钥系统的讲 ...

  3. 【Coursera】Security Introduction -Summary

    对这门课程的安全部分进行一个小结. 往期随笔 第八周第一节 第八周第二节 第九周第一节 第九周第二节 前言:为什么互联网要提及安全 因为security牵扯到我们每一个人,有人每时每刻都想着要偷取别人 ...

  4. 【Coursera】Security Introduction -Ninth Week(2)

    对于公钥系统,我们现在已经有了保证它 Confidentially 的一种方法:SSL.SSL利用了公钥的概念. 那么 who we are talking to? Integrity Certifi ...

  5. 【python】An Introduction to Interactive Programming in Python(week two)

    This is a note for https://class.coursera.org/interactivepython-005 In week two, I have learned: 1.e ...

  6. 【Coursera】Seventh Week

    Application Layer:Use the services of the TCP layer Quick Review Link Layer(Ethernet):gets the data ...

  7. 【Coursera】History: Dawn of Electronic Computing学后小结

    今天学习了Coursera上University of Michigan开的互联网的历史.技术和安全课程的FirstWeek内容. 先是吐槽下这个Coursera,认证非常麻烦,PC端需要摄像头拍照. ...

  8. 【Coursera】支持向量机

    一.最大间隔分类器 1. 函数间隔:\(γ^{i} = y^{i}(w^{T} x + b)\), 改变w和b的量级,对分类结果不会产生任何影响,但是会改变函数间隔的大小.因此,直接对函数间隔求最大值 ...

  9. 【转】An introduction to using and visualizing channels in Go

    An introduction to using and visualizing channels in Go 原文:https://www.sohamkamani.com/blog/2017/08/ ...

随机推荐

  1. jenkins 项目发布脚本

    构建shell #!/bin/bash ########################################################################## 编译部分 ...

  2. 使用Python2.7 GET Onenet平台的数据

    效果 代码 # -*- coding: utf-8 -*- """ ------------------------------------------------- F ...

  3. OpenCV中PCA实现人脸降维

    前言: PCA是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的.本文通过使用PCA来提取人脸中的特征脸这个例子,来熟悉下在oepncv中怎样使用PCA这个类. ...

  4. [LeetCode] 252. Meeting Rooms_Easy tag: Sort

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  5. cocos代码研究(6)有限时间动作类(FiniteTimeAction)学习笔记

    理论部分 有限时间动作类继承自Action类,被 ActionInstant(即时动作) , 以及 ActionInterval(持续动作) 继承. 即时动作是会立即被执行的动作,被 CallFunc ...

  6. MySQL实现SQL Server排名函数

    最近在MySQL中遇到分组排序查询时,突然发现MySQL中没有row_number() over(partition by colname)这样的分组排序.并且由于MySQL中没有类似于SQL Ser ...

  7. C# NPOI 操作excel

    转载的文章,方便自己查看. 一.下载NPOI:http://down.gougou.com/down?cid=DAEA322D9D7F934B898077FB01C3A8CB02A746E6 二.项目 ...

  8. mysql日志详解

    日志分类: 一.错误日志. 1.在配置文件中的配置是:log-error="DESKTOP-igoodful.err",查看参数的键值对:show variables like ' ...

  9. UVM环境(一)

    1)如何避免绝对路径的出现:绝对路径一般都是用在信号的连接关系上,这样可以用virtual interface,来通过句柄的赋值来动态的建立连接关系.那么顶层模块怎么 样将interface的句柄赋值 ...

  10. VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系)

    前面一节中鸡啄米进行了文档.视图和框架的概述,本节主要讲解文档.视图.框架结构中各对象之间的关系. 各个对象之间的关系 文档.视图.框架结构中涉及到的对象主要有:应用程序对象.文档模板对象.文档对象. ...