加密解密(2)*客户端,服务器,CA(Certificate Authority),公钥,私钥,证书,签名,验证

加密解密(2)*客户端,服务器,CA(Certificate Authority),公钥,私钥,证书,签名,验证

各角色比喻



客户端:通常为请求方,要验证服务器的身份。

服务器:通常为响应方,有时也要验证客户端的身份。

C     A :全拼为Certificate Authority,就是第三方验证机构。客户端与服务器只有在CA申请了证书之后才能证明身份合法。

加   密 :客户端或服务器把数据放在箱子里,然后用钥匙(公钥或私钥)将箱子锁上,再放到网络上传输,只有有用钥匙的人才能打开箱子。

根据非对称密码学的原理,每个证书持有人(在CA认证过的人)都有一个公钥和私钥,它们成对出现,这两把密钥可以互相解密。

证    书: 数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机构的公章)后形成的一个数字文件。

私    钥: 私有,只能解开本公钥加密的数据(用于解密),用它加密的数据只能被本公钥解密(用于签名)。

公    钥: 公有,只能解开本私钥加密的数据(用于验证),用它加密的数据只能被本私钥解密(用于加密)。

签    名: 用私钥加密,签上自己的名,证明自己合法。

验    证: 用公钥解密,验证别人是否合法。

加密和解密:
  发送方利用接收方的公钥对要发送的明文进行加密,接受方利用自己的私钥进行解密,
  其中公钥和私钥匙相对的,任何一个作为公钥,则另一个就为私钥.但是因为非对称加密技术的速度比较慢,所以,一般采用对称加密技术加密明文,
  然后用非对称加密技术加密对称密钥,即数字信封技术.
签名和验证:
  发送方用特殊的hash算法,由明文中产生固定长度的摘要,然后利用自己的私钥对形成的摘要进行加密,这个过程就叫签名。
  接受方利用发送方的公钥解密被加密的摘要得到结果A,然后对明文也进行hash操作产生摘要B.最后,把A和B作比较。
  此方式既可以保证发送方的身份不可抵赖,又可以保证数据在传输过程中不会被篡改。

公钥私钥加密原理



1,公钥和私钥成对出现
2,公开的密钥叫公钥,只有自己知道的叫私钥
3,用公钥加密的数据只有对应的私钥可以解密
4,用私钥加密的数据只有对应的公钥可以解密
5,如果可以用公钥解密,则必然是对应的私钥加的密
6,如果可以用私钥解密,则必然是对应的公钥加的密

举例



  服务器为S,它有1把私钥,4把公钥(因为公开,别人可以获取)

  客户端为C1,C2,C3,C4,它们各有一把S的公钥。

  C1 用S的公钥加密数据后,若对方能解开,说明通它是S。这样可验证服务器身份(原理2,6)

  如果C2想冒充S,它给C1发数据,C1用公钥无法解开,因为C2没有S的私钥,说明C2不合法。(原理4,5)

公钥加密举例

  假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。

  我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用
  数字2,就是我的私钥,来解密。这样我就可以保护数据了。

  我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,
  只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。

私钥签名举例

  如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知
道我的公钥是1,那么这种加密有什么用处呢?防止冒充,如下

  我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他
解密看是不是c。他用我的公钥1解密,发现果然是c。
这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。
这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名

总结一下



1,公钥私钥成对出现
2,私钥只有我知道
3,大家可以用我的公钥给我发加密的信了
4,大家用我的公钥解密信的内容,看看能不能解开,能解开,说明是经过我的私钥加密了,就可以确认确实是我发的了。
5,用公钥加密数据,用私钥来解密数据
6,用私钥加密数据(数字签名),用公钥来验证数字签名。

在实际的使用中,公钥不会单独出现,总是以数字证书的方式出现,这样是为了公钥的安全性和有效性。

时间: 2024-08-01 06:16:34

加密解密(2)*客户端,服务器,CA(Certificate Authority),公钥,私钥,证书,签名,验证的相关文章

加密解密基础及私有CA的实现-2015092801

1. 加密解密简述 2.加密算法 3.加密解密步骤 4.使用openssl自建私有CA 加密解密基础: 由于互联网的数据传输基本上都是明文的(如ftp.http.telnet等),而往往有些数据在互联网传输对于传输方来讲,确实涉及隐私或是一些敏感的内容不想让互联网上其他人看到,因此,引入了加密的机制. 最早起的加密,采用移位的方式对数据进行加密,如数据数"abcd",其对应的在互联网上传输的内容是"efgh".后来的加密方式是采用"密码对照本",

CA机构介绍(Certificate Authority 域名SSL证书颁发机构)

SSL证书机构即CA机构的全称为Certificate Authority证书认证中心,只有通过WebTrust国际安全审计认证,根证书才能预装到主流浏览器,成为全球可信的ssl证书颁发机构. HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 .HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SS

linux中加密解密以及Opensll建立CA

现在如今个人以及公司对自己的数据以及隐私越来越关注,之前美国斯诺登事件的爆出,又将通讯安全话题引发激烈的讨论.下面我们就来说下linux中的加密解密,以及通讯过程中如何确保通讯的安全. 常见的加密方法有三种:对称加密.单向加密.非对称加密,下面简单说下这三种加密方式. 对称加密:加密和解密使用同一个密钥:依赖于算法和密钥:安全性依赖于密钥,而非算法常见算法有DES:Data Encryption Standard, 56bits.3DES.AES: Advanced Encrpytion Sta

学习笔记之加密解密,PKI,CA

1.加密解密 背景:在网络通信中为了达到安全需要,比如通信保密性,保证信息完整性和可用性,这就需要一些技术,下面就来介绍相关的技术 技术包括:加密和解密 服务(用于抵御攻击的服务,也即是为了上述安全目标而特地设计的安全服务) 加密和解密: 传统加密方法:替代加密方法.置换加密方法 现代加密方法:主要是现代块加密方法 注:真正的加密主要依赖密钥而不是加密算法 服务: 认证机制 访问控制机制 加密包括: 对称加密 公钥加密 单向加密 认证加密 2.对Linux系统:为了实现上述安全目标需要一些工具需

辰道说加密解密

什么是加密? 加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密). 加密技术包括两个元素:算法和密钥.算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法.在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通信安全,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容. 为什么要加密? 随着人类社会逐渐步入信

网络通信中的加密解密及openssl和创建私有CA详解

1.为什么网络通信要进行数据加密? 我们在网络进行通信时候,如果数据以明文的方式传输,在传输过程中,数据可以被篡改.窃听.伪装等,如图: 当A向B通信时,C可以在数据传输的过程,将数据进行抓包,例如应用wireshark抓包软件,就可以抓取通信的数据包,进行对抓到的内容进行分析,得出传输数据的内容. 2.数据加密方式有哪些? 从分类上划分,加密技术有四种: 1)对称加密 ◆ 对称加密:加密和解密使用同一个密钥 ·DES:Data Encryption Standard,56bits ·3DES:

c#加密解密源码,md5、des、rsa

从网上找来的代码,顺手改改,用起来更方便. 感谢原作者的慷慨代码 http://www.cnblogs.com/zhhh/archive/2013/04/13/3018437.html 配置文件 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Xml.Serialization; namespace Encoder { [Serializable] p

【框架】加密解密

共四种: 1.base64(大小写英文字母.10个基本阿拉伯数字.+./) 2.MD5(任意长度的数据,算出的MD5值长度都是固定的,哪怕只修改1个字节,所得到的MD5值都有很大区别) 3.对称密钥加密(加密解密的密钥一样) 4.非对称加密(加密解密的密钥不一样,分为公钥和私钥) public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceS

用XCA(X Certificate and key management)可视化程序管理SSL 证书(3)--创建自定义的凭证管理中心(Certificate Authority)

在第"用XCA(X Certificate and key management)可视化程序管理SSL 证书(2)---创建证书请求"章节中,我们介绍了如何用XCA创建SSL证书请求(Certificate Request),在一章节中,同时提到了如何对证书请求,用我们自己的创建的凭证管理中心(Certificate Authority)进行签名:但是在做这一步之前,我们首先需要知道如何创建一个属于咱们自己的凭证管理中心(Certificate Authority). 步骤很简单,具体