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基本原理 项目 ...
随机推荐
- Java——ArrayList源码解析
以下针对JDK 1.8版本中的ArrayList进行分析. 概述 ArrayList基于List接口实现的大小可变的数组.其实现了所有可选的List操作,并且元素允许为任意类型,包括null元 ...
- Flask框架(一)—— Flask简介
Flask框架(一)—— Flask简介 目录 Flask框架介绍 一.Flask简介 二.flask安装与使用 1.安装 2.使用 3.简单案例——flask实现用户登录 Flask框架介绍 一.F ...
- 基类子类在Qt信号量机制下的思考
背景知识: 基类 superClass class superClass { public: superClass() { std::string m = "superClass() &qu ...
- spring cloud zuul过滤器修改requestURI 忽略大小写
通过zuul网关处理requestURI可以做很多事情,如对uri的解密,转发,大小写转化等. 这里对URI做一个简单的大小写的转化. 写一个filter实现ZuulFilter: package c ...
- 自我笔记,Rides介绍
Redis是一个key-value存储系统,和Memccached类似,支持存储的value类型相对更多,很大程度上补偿memcached这类key-value存储的不足 他提供了Java,c/c++ ...
- 【问题解决方案】Linux中命令useradd与adduser的区别
参考链接: useradd与adduser的区别 useradd与adduser:创建新的用户 CentOs: useradd与adduser是没有区别的 都是在创建用户,在home下自动创建目录,没 ...
- 2014-04-27 南江滨大道 6KM 晴
33分41秒,6.03公里,慢速跑,中间有停了几次拍照 天气不错,多云 人,不多 不知道这货叫啥 2个大人3个小孩,跳绳,小时候的回忆,啊哈 老中少三代,捡风筝也是一种幸福 一家三口,江滨散步,惬意至 ...
- XMPP实现原理
XMPP协议简介 XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messagi ...
- netserver启动时报错 "Unable to start netserver with 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC'"
netperf启动netserver时报错 "Unable to start netserver with 'IN(6)ADDR_ANY' port '12865' and family A ...
- GIT 开发流程
1.git clone 使用 git clone 将一个项目下载到本地 2.git checkout -b branchName 新建一个branchName的本地分支 3.git add file/ ...