第五章 公钥密码体制

目录

5.1 公钥密码体制

5.1.1 概述

5.1.2 单向函数和陷门函数

5.1.2 D-H密钥交换协议

5.1.3 中间人攻击

5.2 RSA公钥密码体制

5.2.1 RSA公钥密码体制及其工作过程

5.2.2 RSA公钥密码体制的实现

5.2.3 RSA密码体制的安全性分析

5.3 ElGamal公钥密码算法

5.3.1 ElGamal公钥密码算法描述

5.3.2 设计思想

5.3.3 参数选取原则

5.4 椭圆曲线公钥密码体制(ECC

5.1 公钥密码体制

5.1.1 概述

(1)传统加脱密方式分析

  • 区别于传统的单密钥密码体制(或称对称密钥密码体制),公开密钥密码体制是所谓的双密钥密码体制,加密密钥可以公开。何人都可以用这个公开的密钥进行加密,而相应的脱密密钥是秘密的,任何第三者想利用已知的公开密钥求脱密密钥是计算上困难的。

  • 公钥密码体制由于用户私钥的私有性,公钥密码在实现数字签名和防抵赖性方面有着巨大的优势。

(2)一个公开密钥密码体制的基本要求

其中的可交换性并不是每一个公钥体制所必备的。如果一个公钥体制满足这一条,那么它就可以用作数字签名。

5.1.2 单向函数和陷门函数

(1)定义

  • 单向函数定义:如果一个函数F(x)满足下列条件:

  1. 对于F(x)定义域中的任何x,可容易地求出函数值y=F(x)

  2. 对于值域中的绝大数y,很难求出相应的x,使y = F(x)成立。

  • 陷门函数定义:一个函数如果满足下列两个条件:

  1. 对于F的段定义域的任何x,可容易地求出y=F(x)

  2. 如果不知道函数F的可变参数,则对于值域中的绝大多数y,很难求出相应的x,使得y=F(x)

  3. 若知道函数F的可变参数,则可容易求出相应的x,使得y=F(x)成立。

    则该函数称作陷门单向函数,可变参数称作陷门信息(可作秘密密钥)。

(2)单向函数举例

  1. 因数分解问题

  2. 离散对数问题

  3. 背包问题

5.1.2 D-H密钥交换协议

D-H密钥建立协议的安全性基础是计算有限域上的离散对数是“困难的”问题

(1)本原元

(2)D-H交换协议

  • 参数选取p、g

  • 密钥协商U(x)-V(y)

(3)优缺点

优点:

  1. 任何两个人都可以写上出会话密钥,不需要事先拥有对方的公开或秘密信息;

  2. 每次密钥交换后不必再保留秘密信息,减少了保密的负担。

缺点:

  1. 容易受到中间人攻击。

5.1.3 中间人攻击

攻击者E在信道中间,假冒U,与V进行密钥交换;同时,假冒V与U进行密钥交换。致使看似U与V交换的密钥,实际上都是与攻击者交换密钥。用户U和V不易发现。

  • 原因:D-H协议与双方的身份信息无关

  • 改进:在交互过程中进行身份认证

E表示攻击者E(U)和E(V)分别表示E冒充U和V。

5.2 RSA公钥密码体制

  • 数学难题:大合数分解在计算上不可行的。

  • 目前分解大合数的最好算法是数域筛法,其计算复杂性是亚指数时间

5.2.1 RSA公钥密码体制及其工作过程

1. 设计思路

(1)基本思路:

  • 找到合适的e,d,n,使得对所有m<n有:med mod n=m

  • 对于所有m<n的值,要计算me和Cd是相对容易的

  • 在给定e和n时,计算出d是不可行的

(2)算法依据

2. 算法流程

例题:

5.2.2 RSA公钥密码体制的实现

  • 大合数的规模至少要在1024比特以上,一般要取2048bite

1. 产生大素数的算法

  • 素性检测算法(Rabin提出)

判定n是素数的算法如下:

2. RSA算法实现的几个问题

  • 当m是p或q的倍数时,仍可以正确加解密m不能是0、±1,否则密文就是明文(e必为奇数)

(1)关于加法、减法和乘法

  • 利用二元法M元法(也称窗口法)进行指数运算,以512比特加密指数为例:

(2)模数处理方法

  • 第一种方法:先预计算模数N的倍数;

  • 第二种方法:直接进行除法运算;

  • 第三种方法:蒙哥马利方法

[(a mod n) op (b mod n)] mod n = (a op b) mod n

5.2.3 RSA密码体制的安全性分析

1. RSA设计的基本要求

(1)p和q不能太接近

(2)p+1、p-1和q+1、q-1不能有太多的小因子,必须存在大的素因子

(3)脱密指数d应满足

  • 否则,可由连分数的方法进行攻击。

  • 还可能要求加密指数e为错乱指数

(4)模数规模

模数的位数应至少设计在1024比特以上,取2048比特更为安全。这种增加的安全性是以牺牲运算速度和增加软硬件资源为代价的。

2. RSA公钥密码体制的安全性分析

结论1: 求Φ(N)的难度与分解N的难度等价。

结论2: 求脱密指数d的难度与分解N等价。

结论3: 求λ(N)的难度与分解N等价。

结论4: 能够猜出1比特明文信息的难度与猜出整个明文的难度等价

结论5: 由非平凡不动点可能分解N。

3. 共模RSA公钥密码体制的安全性分析

结论1: 已知一对加、脱密指数时,即可分解公用的模数N。

结论2: 已知一对加、脱密指数时,不分解也可以求出其它用户等价的脱密密钥。

结论3: 通播信息是不安全的。

4. 潜在攻击

  • 穷举攻击:尝试所有可能的密钥

  • 数学攻击:对两个素数乘积的因子分解(IF问题)

  • 计时攻击:依赖于解密算法的运行时间

  • 选择密文攻击:利用了RSA体制的性质

5.3 ElGamal公钥密码算法

  • 基于离散对数问题的公钥密码体制

5.3.1 ElGamal公钥密码算法描述

5.3.2 设计思想

(1)利用D-H密钥交换协议,生成双方加密用的密钥yk,此时yx=(gx)k=(gk)x=c1x;与D-H协议(一次一换)的不同支出在于已将y=gx作为公开密钥公布,不需要每次发送给对方。

(2)采取一次一密的加密思想,将yk作为双方交换的密钥,利用它进行加脱密。

  • 本原元g和GF(q)可以全网公用,也可以一人一套;

  • 本原元g可以用阶是大素数代替;

  • 加密不同明文是须选用独立的随机数k,但秘密的脱密密钥x需和其他版本号长期不变;

  • 在ElGamal公钥密码体制中,密文不仅依赖明文m还依赖秘密选取的随机数k,因此,*明文空间中的一个明文可对应于密文空间中的多个不同的密文。

  • 密文与明文相比,长度扩展了一倍。

5.3.3 参数选取原则

5.4 椭圆曲线公钥密码体制(ECC)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值