信息安全概论复习笔记 第六章 公开密钥密码学

文章介绍了公开密钥密码模型的基本原理,包括对称密钥和非对称密钥的区别。RSA算法和Diffie-Hellman算法作为非对称密钥密码的代表,分别在密钥交换和安全通信中起到关键作用。RSA基于大素数因子分解的难度,而D-H算法依赖于计算离散对数问题。这两种算法在确保信息安全方面提供了重要的技术支持。
摘要由CSDN通过智能技术生成

1.公开密钥密码模型的基本原理
2.两个算法:rsa & D-H算法

对称密钥密码的密钥交换问题
双方共享的秘密:key 解决的问题:保密通信
对称的、单密钥、秘密密钥、传统密钥:发送方加密和接收方解密使用的是**同一个密钥 **该密钥需要事先由发送方和接收方实现共享,是发送方和接收方共同的秘密 如果密钥泄露,则不安全(无法提供保密性服务) 对称:通信双方是对等的

公开密钥密码模型
非对称的、双密钥:每个人有两个密钥
公钥 public key:公开
私钥 private key:保密
image.png
image.png

两种密码体制
根据使用的密钥数量 对称的、单密钥、秘密密钥、传统密码技术:发送发和接收方使用同一个密钥
非对称的、双密钥、公开密码技术:发送方和接收方使用不同的密钥; 加密密钥和解密密钥分割开来,且无法由一个推算出另一个,使得不仅能公开加密算法,公开密钥也可以公开(公告牌、个人主页、号码簿)

公开密钥密码
两个密钥:公钥和私钥
非对称:通信双方的地位不平等
往往利用数论的一些函数精心构造
补充而非取代对称密钥密码技术
缺点:公开密钥密码的主要弱点是加解密速度慢

公开密钥+对称密钥完成通信保密
举例说明:公开密钥可以实现密钥的交换
例如:A和B使用对称密钥密码进行保密通信,怎么实现密钥交换?
A和B进行保密通信
A可以先用B的公钥加密一个对称密钥
双方可以用对称密钥进行大量的保密通信,大量的数据对加解密速度有要求
非对称密钥密码很少用来加密大量数据,往往是用来交换密钥

公开密钥的历史
1976年Diffie 和Hellman在论文密码学新方向(New Direction in Cryptography)中首次提出了公开密钥密码体制的问题
Diffie 和Hellman提出了第一个基于公开密钥思想的密码算法,称为D-H算法,此算法可以用于实现密钥交换 1977年Rivest、Shamir和Adleman三个人实现了公开密钥密码体制,现在称为RSA算法,它是第一个既能用于密钥交换、也能用于数据加密和数字签名的算法

公开密钥加密系统
一个公开密钥系统由六要素组成:
明文
公开密钥(记作PU或KU)
私有密钥(记作PR或KR)
加密算法
密文
解密算法

公开密钥算法的基本要求加密
参与方B容易通过计算产生出一对密钥 (公开密 钥KUb , 私有密钥KRb )
发送方A很容易计算产生密文 C = EKUb (M)
接收方B通过计算解密密文 M = DKRb © = DKRb [EKUb (M)]
敌对方即使知道公开密钥KUb , 要确定私有密钥 KRb 在计算上是不可行的
敌对方即使知道公开密钥KUb 和密文C , 要确定 明文M在计算上是不可行的
密码对互相之间可以交换使用M = DKRb [EKUb (M)] = DKUb [EKRb (M)]
image.png

数字签名
密钥对互相之间可以交换使用
image.png
image.png
公钥加密私钥解密做通信保密
私钥签名公钥校验做数字签名
什么是数字签名?数字签名由什么安全需求?
所谓数字签名就是一种可以替代手写签名的一种签名技术。
回到问题最初状态:手写签名的安全需求有哪些?
可认证 抗抵赖
image.png
所谓数字签名就是用私钥加密
image.png
image.png
image.png
公开密钥密码原理总结
公开密钥密码技术涉及两个密钥
公钥: 公开,任何人可以知道,用于加密明文或验证签名
私钥: 仅有接收者/拥有者自己知道,用于解密或构造签名
非对称的含义
密钥的不对称:加/解密的密钥不同 用于加密的不能解密,用于解密的不能加密
双方地位不对等: 通信双方知道的秘密不一样多,私钥只能自己知道

两个典型算法
RSA算法
Diffie-Hellman算法

RSA算法
1977年由MIT的Rivest, Shamir和Adleman 三人提出
是一个分组加密方法
目前被最广泛地采用
理论基础是数论中的下述论断:要求得两个大素数的乘积是容易的,但要分解一个合数为两个大素数的乘积,则在计算上几乎是不可能的;采用的单向函数是大素数相乘相乘很容易但因子分解很困难 基于数论中的Fermat (小) 定理实现

RSA密钥生成(不是重点)
每个用户生成公钥/私钥对的步骤:
①随机选择两个大素数 p, q
②计算这两个素数的乘积 n=p×q
③计算小于n并且与n互质的整数的个数 即欧拉函数 ø(n)=(p-1)(q-1)
④选择一个随机数e,满足 1
RSA密钥生成的计算量
如何得到足够大的随机素数
如何求解方程 e.d≡1 mod ø(n)
实际应用所采用的方法是:首先,产生一个足够大的随机数,然后通过采用一个概率多项式时间算法来检测该随机数是否是素数(即是否具有素性) 常用的两个素性测试算法: Solovay-Strassen素性测试; Miller-Rabin素性测试
image.png
密钥生成的5个步骤,每个步骤都有自己的算法,而且都是多项式时间求解的算法,也就是说拥有密钥的人求解是多项式时间求解问题

RSA加解密
密钥生成部分得到:
公钥公开: PU={e,n}
私钥保密: PR={d,n}
加密一个报文,发送方: 获取接收方的公钥PU={e,n}
计算C = Me mod n, 0≤M
注意两点:1.加解密算法一致,软硬件只需设计一套 2.可以证明1(课后可以查阅文献证明)
image.png
image.png
image.png

RSA算法的安全性
image.png
image.png

image.png重点
image.png重点
image.png陷门
image.png了解

Diffie-Hellman密钥交换算法
是第一个公钥方案 使用在一些常用安全协议或产品(例如SSH、IPSEC)
密钥交换方案
不能直接用于有大量数据传输的保密通信
允许两个用户可以安全地建立一个共享的秘密信息,用于后续的通信过程
该**秘密信息仅为两个参与者知道 **
算法的安全性依赖于有限域上计算离散对数的问题
image.png

Diffie-Hellman密钥交换算法(ennnn,看不懂)
具体算法: 通信双方/多方选择大素数p,以及p的一个原根a
用户A选择一个随机数xA < p,计算: yA = axA mod P
用户B选择一个随机数xB < p,计算: yB = axB mod P
每一方保密X值,而将Y值交给对方 即:X是私钥,Y是公钥
双方可以共享一个密钥:KAB = axA.xB mod p
对于用户A,计算出:KAB=yBxA mod p
对于用户B,计算出:KAB=yAxB mod p
攻击者要获得KAB,需要求解离散对数
实际使用中,素数p以及p的原根a,可有一方选择后发给对方
image.png
image.png

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值