Internet History, Technology, and Security(week8)——Security: Encrypting and Signing
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。
小结:

Internet History, Technology, and Security(week8)——Security: Encrypting and Signing的更多相关文章
- Coursera-Note: Internet History, Technology and Secure (1st week to 9th week)
目录 Coursera-Note: Internet History, Technology and Secure 第一周 第二周 数据交换: Packet switching技术: 第三周 创造ht ...
- Internet History,Technology,and Security - History Through Supercomputing(Week2)
时间飞逝,一周又过去了,这周我们来到了Internet History, Technology and Security (Week 2)的学习,从标题就可以看出,这周主要是介绍“互联网”雏形的诞生. ...
- Internet History, Technology and Security (Get Started)
Abstract 课程名称:互联网的历史.技术和安全 coursera地址 制作方:密歇根大学(University of Michigan) 教师:Charles Severance, Associ ...
- Internet History,Technology and Security
Internet History,Technology and Security(简单记录) First Week High Stakes Research in Computing,and Comm ...
- Spring Security(08)——intercept-url配置
http://elim.iteye.com/blog/2161056 Spring Security(08)--intercept-url配置 博客分类: spring Security Spring ...
- Spring Security(一):官网向导翻译
原文出自 https://spring.io/guides/topicals/spring-security-architecture Spring Security Architecture ...
- Spring Security(三)
Spring Security(三) 个性化用户认证流程 自定义登录页面 在配置类中指定登录页面和接收登录的 url @Configuration public class BrowserSecuri ...
- Spring Security(二)
Spring Security(二) 注:凡是源码部分,我已经把英文注释去掉了,有兴趣的同学可以在自己项目里进去看看.:-) 定义用户认证逻辑 用户登录成功后,用户的信息会被 Security 封装在 ...
- Spring Security(一)
Spring Security(一) 基本原理 前言 Spring Security核心功能 认证(你是谁) 授权(你能干什么) 攻击防护(防止伪造身份) Srping Security基本原理 项目 ...
随机推荐
- 《React+Redux前端开发实战》笔记1:不涉及React项目构建的Hello World案例
本小节实现一个不涉及项目构建的Hello World. [React的第一个Hello World网页] 源码地址:https://jsfiddle.net/allan91/2h1sf0ky/8/ & ...
- 深入理解java:1.2. 字节码执行引擎
执行引擎是Java虚拟机的核心组成部分之一. 首先,想想C++和Java在编译和运行时到底有啥不一样? 下图左边,C++发布的就是机器指令, 而下图右边Java发布的是字节码,字节码在运行时通过JVM ...
- [JS] 鼠标点击文本框清空默认值,离开文本框恢复默认值
在使用文本框的时候,若设定了初始值,选择文本框进行输入的时候要将本来的内容进行删除,会显得非常麻烦 可以在文本框属性定义触发onfocus和onblur两个事件时对应的js功能 下面以asp.net代 ...
- Java第二周总结
一.Java 基础程序设计 第一章: (1)在Java中源文件的扩展名为.java,编译Java源程序文件产生相应的字节码文件扩展名为.class (2)public class定义要求类名称保持一致 ...
- [Web 前端] 028 jQuery 事件
目录 jQuery 的事件 1. 事件绑定 1.1 事件的获取 1.2 基本绑定 1.3 动态绑定 2. 事件触发 2.1 触发的写法 2.2 常用的鼠标事件 3. 事件冒泡和默认行为 3.1 事件冒 ...
- iScroll使用参考
分享是传播.学习知识最好的方法 以下这篇文章是iScroll.js官网的中文翻译,尽管自己英文不好,但觉得原作者们翻译的这个资料还是可以的,基本用法介绍清楚了.如果你英文比较好的话,可以看看官网的资料 ...
- [CF585E]Marbles
Description: 给定一个序列 \(a_i\) ,每次可以交换相邻两个元素,求使序列变成若干个极大连续段,每个极大连续段内部的值相同且任意两个极大连续段的值互不相同. \(n\le 4\tim ...
- Android的Monkey和MonkeyRunner
本文部分解释性语段摘自网络百科或其它BLOG,语句内容网络随处可见,也不知道谁是初始原创,便不再署名出处,如有雷同,还请见谅. Monkey 什么是Monkey Monkey是Android中的一个命 ...
- Java 14 可能带来什么新特性?
JDK/Java 13 在一个月前已经发布,该版本带来了 5 大新特性,笔者观察到其中的 Text Blocks(文本块)特性似乎被讨论最多. 文本块特性与常见的 Python "" ...
- js模拟自动化测试 -- 多用户登录
1.核心登录提交方法 /** * 动态表单提交方法 * @param url{string}: 提交地址 * @param params{object}: 要提交的表单数据 **/ function ...