Home 密钥管理
密钥管理
取消

密钥管理

密钥管理之公钥的分配(分析,论述)

(第几次回话,有什么缺陷)

一、引子

公钥分配方法:公开发布,公开可访问的目录,公钥授权,公钥证书

公钥的公开发布:电子邮件后面附上PGP密钥或者发布到邮件列表上

问题:任何人都可以伪造公钥的发布

 

二、公开可访问的目录

1、维护一个动态可访问的公钥目录可以获得更大程度的安全性

2、一个可信实体或组织负责公开目录的维护和分配

3、获取私钥可以伪造公钥



三、公钥授权过程

1、A 发送带有时间戳(防止重放攻击)的消息给公钥管理员(PKI)获取B的公钥

2、PKI用私钥加密(对称加密,共享的回话密钥)公钥B并发给A

3、A用B的公钥加密(带有序列号)并向B发消息

4-6、B 同A获取公钥,并向A发消息

7、A确定完成B的身份并向B发消息



四、公钥证书(CA

封装了公钥,签名,id等等消息

 

五、利用公钥密码分配传统密码体质的密钥

公钥密码算法速度较慢,因此更适合作为传统的密钥交换

 

 

A 和 CA进行通信的时候由于每个人都有公钥所以不能用RSA协议,而是使用对称密码

然而A怎么和CA进行协商密钥分配呢?

 

具有保密性和真实性的密钥分配(三次握手)

利用公钥分发密钥

用B的公钥加密,在用A的私钥再次进行加密(相当于数字签名)

 

Diffie-Hellman密钥交换(考:计算,中间人攻击)

公钥分发机制,不能用于数据加密,

有限域的指数运算(RSA是有限域中的乘积运算)

交换的是对称密码的会话密钥

首先A和B共享一个素数q,一个整数a,其中a<q且a是q的本原根(见离散对数)

A                                                                    B

随机整数,私钥XA,XA<q                            随机整数,私钥XB,XB<q

计算公钥YA = a^XA mod q                          计算公钥YB = a^XB mod q

收到公钥YB                                                   收到公钥YA

计算共享密钥K=(YB)^XA mod q                   计算共享密钥K=(YA)^XB mod q

 

安全性考虑:对于大素数,计算离散对数不可行

 

都是可以受到中间人攻击:中间人截获YA,YB;并分别向A,B发送K1,K2;可以窃听甚至修改A,B互发的消息。

 

中间人攻击 

ElGamal密码体制(考:数字加密解密,数字签名)

要求掌握计算

基于离散对数求解困难的概率系统

AB 共享大素数p,本原元素 a,明文m:0<= m <=p-1

1、A选取随机数XA作为私钥,其中0<= XA <=p-1

2、A求公钥,并发布

    YA = a^XA mod p

    公钥 = {YA,a,p}

 

3、B使用A的公钥加密

    (1)首先算出加密密钥K

    (2)B选取任意k( 0<= k <=p-1)

    (3)K = YA^k mod p

    (4)加密分别为加密密钥和加密明文

            C1 = a^k mod p,    C2 = MK mod p

4、A接收消息后解密

    先求出密钥K = C1^XA mod p

    再求出明文M = (C2*K^-1) mod p

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

该博客文章由作者通过 CC BY 4.0进行授权。