公钥算法

https的原理

强颜欢笑 提交于 2020-01-16 02:04:26
Http存在的问题   上过网的朋友都知道,网络是非常不安全的。尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵。还有大家平时喜欢用的万能钥匙,等等。那我们平时上网可能会存在哪些风险呢?   1. 泄密,个人隐私、账户密码等信息可能会被盗取。   2. 篡改,收到的数据可能被第三方修改过,或被植入广告等。   3. 假冒,访问的站点非目标服务器站点。如域名欺骗、域名劫持、钓鱼网站等。   可能住你隔壁穿人字拖、说话都略显羞涩的小王,一到夜深人静的时候就开始偷窥你的一举一动!陪你一起看91某社区的电影还好,万一窃取了各购物网站或其他站点的登录信息就……是不是想想有些害怕呢!   为什么别人能获取你上网的数据呢?有过一定网络基础的朋友多少都对TCP/IP有些了解,对各种握手挥手早已背得滚瓜烂俗,对http协议也早了然于心。http是应用层的协议,位于TCP/IP参考模型的最上层。用户数据经过应用层、传输层、网络层、链路层的层层封装后经过物理层发送到目标机器。在这几层中,数据都没有经过加密处理,所以一旦别人获取到你的数据包,就能轻易的获取到数据的信息。   为了保护数据隐私,让数据不再“裸奔”。对需要传输的数据进行加密处理就很有必要了。目前而言,加密算法可以分两大类,一类是对称加密算法,还有一类是非对称加密算法。 对称加密   对称加密算法的加密和解密都是用 同一个密钥

探究公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https它们究竟是什么,它们分别解决了通信过程的哪些问题。

早过忘川 提交于 2020-01-15 20:29:39
一、准备   1. 角色:小白、美美、小黑。   2. 剧情:小白和美美在谈恋爱;小黑对美美求而不得、心生怨念,所以从中作梗。   3. 需求:小白要与美美需通过网络进行通信,联络感情,所以必须保证通信的安全性。 二、由通信过程中可能出现的问题来引出公钥、私钥、对称加密、非对称加密、hash加密、数字签名、数字证书、CA认证、https的相关知识     1. 场景1: 小白和美美在 http 协议下进行通信。     1.1 能否完成通信 :能。     1.2 还可能出现其他问题 :容易受到网络中间人攻击:在http协议下进行通信,信息是没有进行加密的,在透明的网络环境中,一旦信息被小黑截获,小黑可以查看、篡改信息内容,难以保证信息的安全。—— 问题所在:信息没加密。     1.3 解决办法 :引入“公钥、私钥”对信息进行加密,详情见“场景2”。    2. 场景2: 小白和美美依旧是在 http 协议下进行通信,但小白先准备了一对秘钥(公钥+私钥),私钥由小白自己保管,公钥则交给了美美。通信时,小白先用“小白的私钥”对信息进行加密,然后再发送给美美;美美收到信息后,用“小白的公钥”进行解密,得到明文。美美要给小白发信息时,先用“小白的公钥”对信息进行加密,然后再发送给小白;小白收到回复后,用“小白的私钥”进行解密,得到明文。     2.1 公钥、私钥     (1

比特币原理详解

一个人想着一个人 提交于 2020-01-14 23:22:18
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人分别称之为ABCD,他们之间发起了3个交易,A转给B10个比特币,B转给C5个比特币,C转给D2个比特币。如果是传统的记账方式,这些交易会记录在银行的系统中,这些信息由银行来记录,我们相信银行不会随意添加、删除或修改一条交易记录,我们也不会关注到底有哪些交易,我们只关注自己的账户余额。而比特币的记账方式为ABCD每个人保存了这样一份账本,账本上记录了上述交易内容,如果每个人账本实时的一致,ABCD就不再需要银行。 比特币是这样做的,每当有人发起一笔交易,他就要将一笔交易广播至全网,由全网中的某一个人,把一段时间内的交易打包好记录到一个区块上,再按照顺序把这些区块,一个一个的链接在一起,进而形成了一个链条,这就是所谓的区块链。 那么问题来了 1、我凭什么要参与这个系统,我为什么要动用自己的计算机资源来存储这些信息呢? 2、以谁的记录为准呢?比如上面的账单顺序,A用户可能是这个顺序

Https的前世今生

喜欢而已 提交于 2020-01-14 06:03:23
1、年前会议 马上要过年了,公司业务上的需求也少了很多,这不,王小二他们召开了一场技术会议,盘点年前能干点啥。 只见C哥写了一份清单,其中一项是全站升级https。 C哥说:https是一种趋势,但目前我们接口还是http的。appstore也一直要求使用https,从安全性以及appstore审核的角度来看,我们年前得全站升级https。有谁自告奋勇吗? 小二想了一下:我来做吧C哥,正好了解下https。 C哥:好,小二,那你接下来研究下https,然后有时间再给我们分享下。 小二:好的C哥,保证完成! 2、深藏不露张三胖 听说小二要做https,运维张三胖走到小二身旁。 张三胖:小二,听说你要做https? 小二:是啊,三胖哥,我们得全站升级https。你之前了解过吗? 张三胖:哈哈,我还真了解过,升级https是个不错的注意。 小二:三胖哥,那太好了,你有时间给我讲讲?我就不用花时间去查资料了。 张三胖:好,我现在正有时间,给你讲讲,也正好复习下。 小二:多谢三胖哥,今中午请你吃饭啊。 3、对称加密不足够 三胖:小二,假设你用http协议给你女朋友发一封私密消息。这样有没有泄密的风险呢? 小二:当然有了,http协议是明文传输,传输数据过程中的任何第三方都可以截获并篡改该明文。 三胖微微一笑:是的,我们画幅图表示下,你就知道信息被篡改多尴尬了,哈哈。 小二:啊?确实是

公钥私钥加密解密数字证书数字签名详解

*爱你&永不变心* 提交于 2020-01-13 12:02:34
决心花一些时间,将这些概念和使用的过程彻底弄清楚。最先找到的文章是: 数字签名是什么? (阮一峰博客),读了一遍,又找了一些资料,终于把这些概念弄清楚了,这里整理记录一下。 首先明确几个基本概念: 1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。 2、公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。 3、私钥,如上,用来解密公钥加密的数据。 4、摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。 5、签名,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。 6、签名验证,数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。 上面实际上介绍了加密解密和数字签名两个概念和实现过程,二者的过程正好是相反的。 在签名的过程中,有一点很关键,收到数据的一方,需要自己保管好公钥,但是要知道每一个发送方都有一个公钥,那么接收数据的人需要保存非常多的公钥,这根本就管理不过来

https数字证书基础概念(一)

空扰寡人 提交于 2020-01-13 05:25:22
基础概念 密钥 公钥密码体制 对称加密算法 非对称加密算法 CA 数字证书 摘要 摘要算法 数字签名 参考资料 后记 密钥 密钥,一般是一个字符串或数字,在加密或解密时传递给加密或解密算法 。下面公钥密码体制中提到的公钥和私钥都是密钥,只是公钥是加密时使用的密钥,私钥是解密时使用的密钥。 公钥密码体制 公钥密码体制(public-key cryptography)由公钥、私钥、加密算法三部分组成, 其中由公钥加密的内容只能由私钥解密 ,也就是说除了私钥之外,由公钥加密的内容无法被解密。公钥密码体制的加解密过程如下: 加密 :使用 加密算法 和 公钥 对明文进行加密,得到密文。 解密:使用 解密算法 和 私钥 对密文进行解密,得到明文。 公钥密码体制的公钥和算法都是公开的,只有私钥是保密的 。所以在实际使用中,都是生成一对公钥和私钥,把公钥发布出去,自己保留私钥。 对称加密算法 在对称加密算法(symmetric key algorithms)中,加密和解密时使用的密钥是相同的 。在安全通信之前,会要求通信双方商定一个密钥,泄漏密钥就意味着任何人都可以对发送或接收的消息解密;因此对称加密算法要保证安全性的话,密钥只能让使用的人知道,不能对外公开。 对称加密算法的特点: 算法公开、计算量小、加密速度快、加密效率高 。 非对称加密算法 在非对称加密算法(asymmetric key

HTTPS为什么更安全,先看这些 , 网络加密 , 加密解密

跟風遠走 提交于 2020-01-13 02:48:43
投递人 itwriter 发布于 2017-02-27 21:35 评论(10) 有1957人阅读 原文链接 [收藏] « »   HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『数据』、『消息』都是同一个概念,表示用户之间通信的内容载体,此外文章中提到了以下几个角色: Alice:消息发送者 Bob:消息接收者 Attacker:中间攻击者 Trent:第三方认证机构 密码   密码学中的“密码”术语与网站登录时用的密码(password)是不一样的概念,password 翻译过来其实是“口令”,它是用于认证用途的一组文本字符串。   而密码学中的密码(cipher)是一套算法(algorithm),这套算法用于对消息进行加密和解密,从明文到密文的过程称之为加密,密文反过来生成明文称之为解密,加密算法与解密算法合在一起称为密码算法。 密钥   密钥(key)是在使用密码算法过程中输入的一段参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长

HTTPS 为什么更安全,先看这些

安稳与你 提交于 2020-01-13 02:47:52
HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『数据』、『消息』都是同一个概念,表示用户之间通信的内容载体,此外文章中提到了以下几个角色: Alice:消息发送者 Bob:消息接收者 Attacker:中间攻击者 Trent:第三方认证机构 密码 密码学中的“密码”术语与网站登录时用的密码(password)是不一样的概念,password 翻译过来其实是“口令”,它是用于认证用途的一组文本字符串。 而密码学中的密码(cipher)是一套算法(algorithm),这套算法用于对消息进行加密和解密,从明文到密文的过程称之为加密,密文反过来生成明文称之为解密,加密算法与解密算法合在一起称为密码算法。 密钥 密钥(key)是在使用密码算法过程中输入的一段参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长,破解的难度越大,比如一个8位的密钥最多有256种情况,使用穷举法,能非常轻易的破解。根据密钥的使用方法,密码可分为对称加密和公钥加密。 对称加密

HTTPS的中那些加密算法

老子叫甜甜 提交于 2020-01-13 02:45:01
密码学在计算机科学中使用非常广泛,HTTPS就是建立在密码学基础之上的一种安全的通信协议。HTTPS早在1994年由网景公司首次提出,而如今在众多互联网厂商的推广之下HTTPS已经被广泛使用在各种大小网站中。在完全理解HTTPS之前,有必要弄清楚一些密码学相关的概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书。 密码(cipher) 密码学中的密码(cipher)和我们日常生活中所说的密码不太一样,计算机术语『密码 cipher』是一种用于加密或者解密的算法,而我们日常所使用的『密码 password』是一种口令,它是用于认证用途的一组文本字符串,这里我们要讨论的是前者:cipher。 密钥(key) 密钥是一种参数,它是在使用密码(cipher)算法过程中输入的参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长,破解的难度越大,比如一个8位的密钥最多有256种情况,使用穷举法,能非常轻易的破解,知名的DES算法使用56位的密钥,目前已经不是一种安全的加密算法了,主要还是因为56位的密钥太短,在数小时内就可以被破解。密钥分为对称密钥与非对称密钥。 明文/密文 明文(plaintext)是加密之前的原始数据,密文是通过密码(cipher

面试官:说说你对网络请求加密的理解?

天大地大妈咪最大 提交于 2020-01-12 01:08:07
在纸质合同中,由于签名字迹的不可复制性,盖章的唯一性以及纸质合同对涂改的防范措施(比如金额用大写)可以保证上述两点,从而具备法律效应,那么PDF合同如何保障呢?两个重要的概念就是数字签名和数字证书。这项技术广泛运用于文件认证,数据传输等。 为了弄懂这些,我花了2天时间从加密算法开始,到数字签名和CA证书,最后再重新认识下https的原理。 这个也是面试官长问的题目,所以我也顺便整理了下面试题 关注我,私信我【面试题】领取 非对称加密 加密我了解的不多,只知道有这么两种算法:对称加密和非对称加密。 对称加密 :加密和解密的密钥一样,比如用123加密就是用123解密,但是实际中密码都是普通数据在互联网传输的,这样一点密码被中间人截取并破解,加密直接被攻破。 非对称加密 :把密钥分为公钥和私钥,公钥是公开的所有人都可以认领,私钥是保密的只有一个人知道。假设A要发送一 封Email给B,他不想让任何其他人在传输中看到Email的内容,做法就是使用B的公钥对Email加密,只有B的私钥能够解密(B的私钥唯一性保证信件不会泄露)。 某天出意外了,有***冒充A给B发送Email,并且也用B的公钥加密,导致B无法区分这封邮件是否来自A。怎么办?此时A可以用自己的私钥加密,那么B收到邮件后如果用A的公钥可以解密邮件,那么证明这封信肯定来自于A。 OK,通过这个例子我想你们基本明白非对称加密了