非对称加密

 

 

 

向CA申请证书时,用户的公私钥对是怎么产生的,CA保存用户私钥码?

一、 所问应指单证书,这个前提下进行回答如下:

1、证书的公私钥对,是由用户端产生,如是软件证书就是客户端浏览器或客户端程序产生,如用硬件介质(常用USB KEY),则是在硬件介质中产生。

2、单证中密钥对不由CA产生,不存在它是将私钥发送给用户情况,也无CA那里负责保存用户的私钥码的情况。

二、扩展说明。国内当前是双证书体系,即用户同时拥有签名证书、加密证书两张证书。这个前提下:

1、用户签名证书的情况同上述回答。

2、用户加密证书,则是由KM系统(密钥管理系统)产生并保存。

3、相应的私钥由用户的签名证书公钥进行加密后传输到客户端。这里有个行业内的术语,叫“密钥不落地”。

追问

非常感谢,但是还想问,如果是单证书,在客户端产生,那么它的数字证书是怎么形成的?是否需要ca参与?请说明一下客户端自己生成公私钥对后,CA帮他生成数字证书的过程。谢谢了

回答

简要解答:

    1、客户端生成公钥对,将相关的证书信息及公钥发送给CA中心(一般是发给RA系统,由RA系统完成相应的审核后,提交CA签发)

    2、CA系统利用自己的证书(证书私)对通过审核的证书申请信息及相应的公钥做签名。

    3、CA系统将签名处理后的申请证书信息返回给客户端。

    4、客户端将CA系统签名后的数据与客户端的私钥组合形成数字证书。

 

私钥、公钥、加解密、加验签、CA证书概念、作用、流程

 

1、私钥和公钥进行加解密、加验签流程概述

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),彼此是成对存在的,私钥自己持有、公钥对外公布的。公钥加密的信息只有对应的私钥能解开。

 

作用及基本作用流程

假设有A、B两位用户,A持有自己的私钥和B的公钥,B持有自己的私钥和A的公钥。当A、B需要进行信息传输的时候,当A向B发送信息的时候,A需要用B的公钥进行加密,这样即使信息丢失,也不会被外人所知, 因为只有B自己有B的私钥,A还需要对信息用自己的私钥进行加密(也叫加签),这样如果信息在传输工程中被修改或者别替换,那B接收到信息的时候用A的公钥是解不开的,所以公钥可以验证发送者的身份以及发送信息的可信度。以上就是私钥和公钥的作用,简单说:

(1)公钥和私钥是成对的,它们互相解密;

(2)公钥加密,私钥解密;

(3)私钥数字签名,公钥验证;

2、CA证书

(1)概念: CA是Certificate Authority的缩写,也叫“证书授权中心”。它是负责管理和签发证书的第三方机构,作用是检查证书持有者身份的合法性,并签发证书,以防证书被伪造或篡改。而CA证书也就是数字证书,所谓数字证书简单说就是CA机构用自己的私钥对你的公钥以及个人信息进行加密生成证书就是数字证书。

(2)作用:还是以上面的A、B两位用户发送信息为例,假如C用户偷偷把A持有的B的公钥换成了自己的公钥,然后冒充B去给A发送文件,此时A仍然以为自己是和B进行信息传输,为例避免这样一种情况,找一个证书认证机构,机构也有自己的私钥和公钥,然后机构用自己的私钥对你的公钥以及个人信息进行加密生成证书就是数字证书这样B在发送给A信息的时候直接将签名值和数字证书发送过去,然后A用CA的公钥解密数字证书得到A的公钥,然后对原文用hash函数生成摘要,然后用公钥解密签名值生成摘要,两者进行比对。下图是过程:

 

 

 

3 、HASH

HASH也叫散列,把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也即是散列值的空间通常远小于输入空间,不同输入可能有相同散列值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要函数。常用的hash算法:MD4、MD5、SHA-1

MD5的特点:

(1)对原始消息做有损压缩。即无论输入值是多少长度都会生成固定的128位/16字节的消息摘要

(2)不可逆:在不知道原始消息的前提下,是无法凭借16个字节消息摘要(Message Digest),还原出原始消息

(3)单向唯一性:一个输入对应唯一输出,但是反向不成立。

(4)固定性:当原始消息恒定时,每次运行MD5产生的消息摘要恒定不变。

(5)不可预测性。

当然随着现在计算机计算能力大幅提升,通过彩虹表也可以破解一些简单MD5加密。但现在可以通过“加盐”方式或者增加MD5迭代次数增加破解难度,而“加盐”又有隐式盐(比如网站的密钥,只有自己知道)和显式盐之分。

posted @ 2020-06-14 22:29  crocuta  阅读(251)  评论(0)    收藏  举报