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

最新文章

  1. ppt2013技术整理
  2. vijos1741 观光公交 (贪心)
  3. 移除\禁用 jquery mobile 元素样式渲染
  4. Visual Studio 2013 中 mysql 使用 EF6
  5. Python入门学习笔记
  6. 设置SVN hooks实现自动发布
  7. Spring事务传递性探讨
  8. 结果集一组数据的第几条ROW_NUMBER基本用法
  9. 针对C#程序做性能测试的一些基本准则
  10. python的方法总结:
  11. liunx shell数字相加
  12. 未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序
  13. PyQt5——基本控件
  14. H5 notification浏览器桌面通知
  15. 硬盘性能测试工具fio
  16. bigdata-01-应用
  17. 机器学习中的规则化范数(L0, L1, L2, 核范数)
  18. open-falcon之alarm、sender、links说明.md
  19. Lua面向对象 --- 多继承
  20. 不同数据库的driverClassName与url

热门文章

  1. Linuxer-"Linux开发人员自己的媒体"第五月稿件和赠书名单
  2. Thread类的常见问题
  3. Py中的多维数组ndarray学习【转载】
  4. Maven项目常见错误解决方法汇总
  5. CSS选择器可以用数字开头吗
  6. JVM、Java编译器和Java解释器
  7. Twitter OA prepare: Two Operations
  8. Rpgmakermv(4 )doc of TerraxLights
  9. UVALive - 7261 Xiongnu's Land
  10. zw版【转发·台湾nvp系列Delphi例程】HALCON HistoToThresh1