公钥密码技术讲义

合集下载

信息安全第三讲公钥密码精品PPT课件

信息安全第三讲公钥密码精品PPT课件
安全分析:
①接收密文C;
②用自己的KdB解密: S=D(C, KdB)
③ 查PKDB,查到A的KeA ④加密:M=E(S, KeA )
因为综合了前两个协议,只有A才能产生S,只有B才能得到M, 所以可同时确保数据的秘密性和真实性;
三、计算困难问题及相应密码
1、大合数的因子分解
小合数的因子分解是容易的,然而 大合数的因子分解却是十分困难的。关 于大合数的因子分解的时间复杂度下限 目前尚没有一般的结果,迄今为止的各 种因子分解算法提示人们这一时间下限
将 不 低 于 O(EXP(lnNlnlnN)1/2) 。 根 据 这
一结论,只要合数足够大,进行因子分 解是相当困难的。
三、计算困难问题及相应密码
1、大合数的因子分解
2005年人们利用数域筛法分解了一个十进制200位的大 合数(665位的RSA) 。
2007年5月人们利用特殊数域筛法,分解了一个十进制 313位,大合数21023-1。这是目前世界大合数因子分解 的世界纪录。
问题复杂度是求解该问题的最佳算法的算法复杂度。
d.算法复杂度强调f(n)随n的变化速度。 e.算法复杂度f(n)=O(g(n))的充要条件是,存在一个常数c和n0使当 n0≤n 时,│ f(n)│≤c │ g(n)│。 例: f(n)=17n+10,因为当n≥10时,就有17n+10≤18n ,选c=18,
①问题:计算机求解的对象; ②问题的规模:求解问题所需输入的二进制位数n。 ③算法复杂度:
a. 用一个算法求解一个规模为n的问题,若对任意的n和所有长为n的 输入,最多需f(n)步可将问题求解,则称算法复杂度为f(n) 。 b.算法复杂度分为时间复杂度和空间复杂度,通常考虑时间复杂度。 C.显然:算法复杂度是求解某问题的最难特例所需的计算时间;

公钥密码技术讲义

公钥密码技术讲义

公钥密码技术讲义1.问题的引入1.1攻击类型根据攻击的不同方式,攻击被分为被动攻击和主动攻击。

图表1消息的正常传送被动攻击获得正在传送的信息。

其特点是:偷听或监视传送。

攻击的手段是:泄露消息内容和通信量分析。

(绘图说明)主动攻击主动攻击主要涉及到数据流的修改或创建错误流。

攻击手段是:伪装、重放、修改消息和拒绝服务。

1.2安全服务(简要说明)A.保密性B.验证(鉴别)C.完整性D.不可抵赖性(不可否认性)E.访问控制F.可用性1.3常规加密的缺陷尽管对称密码技术有一些很好的特性,但它也存在着明显的缺陷,主要在于其密钥的管理:A.进行安全通信前需要以安全方式进行密钥交换。

这一步骤,在某种情况下是可行的,但在某些情况下会非常困难,甚至无法实现。

B.密钥规模复杂。

举例来说,A与B两人之间的密钥必须不同于A和C两人之间的密钥,否则给B的消息的安全性就会受到威胁。

在有1000个用户的团体中,A需要保持至少999个密钥(更确切的说是1000个,如果她需要留一个密钥给他自己加密数据)。

对于该团体中的其它用户,此种情况同样存在。

这样,这个团体一共需要将近50万个不同的密钥!推而广之,n个用户的团体需要n2/2个不同的密钥。

2.公钥密码技术2.1基本概念应用两个不同的密钥:一个是公开的,一个是秘密的。

从公开密钥(以下简称为公钥)很难推断出私人密钥(以下简称为私钥)。

持有公钥的任何人都可以加密消息,但却无法解密。

只有持有私钥的人才能够解密。

2.2加密/解密基本步骤图表2加密/解密基本步骤一般的情况下,网络中的用户约定一个共同的公开密钥密码系统,每个用户都有自己的公钥和私钥,并且所有的公钥都保存在某个公开的数据库中,任何用户都可以访问此数据库。

这样加密协议如下:A.Alice从公开数据库中取出Bob的公开密钥。

四川大学计算机网络与安全研究所B.Alice用Bob的公开密钥加密她的消息,然后传送给Bob。

C.Bob用他的私钥解密Alice的消息。

第5讲 公钥密码技术1

第5讲 公钥密码技术1
2013-7-10 Ch4(1)-公钥加密技术 22
RSA算法的安全性
RSA密码体制的安全性是基于分解大整数 的困难性假设 RSA算法的加密函数c=me mod n是一个 单向函数,所以对于攻击者来说,试图解 密密文是计算上不可行的 对于接收方解密密文的陷门是分解n = pq, 由于接收方知道这个分解,他可以计算 (n)=(p-1)(q-1),然后用扩展欧几里德算法 来计算解密私钥d。
2013-7-10
Ch4(1)-公钥加密技术
14
背包密码系统实例
假设(2,3,7,14,30,57,120,251)是超级递增背包 选择m = 41、n = 491。这里m, n互素并且n大于背 包各元素之和 则普通背包产生方式:
2 41 mod 491 = 82 3 41 mod 491 = 123 7 41 mod 491 = 287 14 41 mod 491 = 83 30 41 mod 491 = 248 57 41 mod 491 = 373 120 41 mod 491 = 10 251 41 mod 491 = 471
2013-7-10 Ch4(1)-公钥加密技术 4
攻击者
发送方A 消 息 M 加 法密 算 解 法密 算 接收方B 消 息 M
C
PUB
PRB
密钥源
图4.1 公钥加密模型
2013-7-10
Ch4(1)-公钥加密技术
5
攻击者
发送方A
消 息 加 法密 算 解 法密 算
接收方B
消 息 M
M
C
PRA
密钥源
2013-7-10
Ch4(1)-公钥加密技术
17
背包密码系统分析

第6讲 公钥密码技术2

第6讲 公钥密码技术2

该算法的安全性基于求离散对数的困难性。
给定g, p,以及x=gk%p很难找到 k
2013-7-12 Ch4(2)-公钥加密技术 17
Diffie-Hellman算法
算法的难度建立在离散对数问题(discrete log) 上: 给定g, p,以及x=gk%p很难找到 k
与对数问题相似,不同的是进行离散对数运算 为被证实是NP完全问题,但与因子分解一样非 常困难
Ch4(2)-公钥加密技术
13
使用公钥证书分配公钥过程非常简单 事先由CA对用户的证书签名,证书中包含有与该 用户的私钥相对应的公钥及用户的身份等信息 所有的数据项经CA用自己的私钥签名后就形成证 书
用户可将自己的公钥通过公钥证书发给另一用户, 接收方可用CA的公钥对证书加以验证,这样接收 方就能知道发送方的公钥
会遭受中级人(MiM)攻击(一种主动攻击)
ga mod p gt mod p Alice, a Trudy, t gt mod p gb mod p Bob, b
Trudy和Alice共享密钥gat % p Trudy和Bob共享密钥 gbt % p Alice和Bob不知道Trudy的存在!
2013-7-12 Ch4(2)-公钥加密技术 22
由于证书是由CA私钥加密,任何其他人不能伪造 该证书。
2013-7-12 Ch4(2)-公钥加密技术 14
利用公钥密码分配对称密钥
由于公钥算法速度很慢,在通信中一般不使用公 钥加密消息,而是使用会话钥(对称密码密钥) 因此一般的做法是用会话钥加密消息,用公钥来 实现会话钥的分配。
2013-7-12
第4章 公钥密码技术
主要知识点:
公钥密码体制

《公钥密码体系》课件

《公钥密码体系》课件

03
保障国家安全
公钥密码体系在国家安全领域 中也有广泛应用,如军事通信
、政府机密保护等。
公钥密码体系的历史与发展
03
起源
公钥密码体系起源于20世纪70年代,最 早的公钥密码体系是RSA算法。
发展历程
未来展望
随着计算机科学和数学的发展,公钥密码 体系不断得到改进和完善,出现了多种新 的算法和应用。
随着互联网和物联网的普及,公钥密码体 系将面临更多的挑战和机遇,需要不断探 索和创新。
性能问题
1 2 3
加密和解密速度
公钥密码体系的加密和解密速度通常较慢,需要 优化算法和提高计算能力,以提高加密和解密的 速度。
资源消耗
公钥密码体系通常需要较大的计算资源和存储空 间,需要优化算法和资源利用方式,以降低资源 消耗。
适应性
公钥密码体系需要适应不同的应用场景和需求, 需要开发适用于不同场景的公钥密码算法和解决 方案。
人工智能与机器学习
人工智能和机器学习技术在公钥密码体系中也有着广阔的应用前景。这些技术可以帮助自动识别和防御 网络攻击,提高公钥密码体系的安全性和可靠性。
应用领域拓展
物联网安全
随着物联网技术的普及,公钥密 码体系在物联网安全领域的应用 将越来越广泛。物联网设备需要 使用公钥密码算法进行身份认证 和数据加密,以确保设备之间的 通信安全。
非对称加密算法可以支持多种加密模式,如对称加密算法中的块加 密和流加密模式。
数字签名
验证数据完整性和身份
数字签名使用私钥对数据进行加密,生成一个数字签名。 接收者使用公钥解密数字签名,验证数据的完整性和发送 者的身份。
防止数据被篡改
数字签名可以防止数据在传输过程中被篡改,因为任何对 数据的修改都会导致数字签名无效。

第9讲公钥密码概述ppt课件

第9讲公钥密码概述ppt课件

解密用户V发给用户U的密钥.
具体方法
攻击者截获用户U发给V的密文后,不传给用户V, 而是解读出明文后再将明文用W与V的密钥加 密后传给V.
备注: 中间人攻击中可选择xw1=xw2. 对付中间人攻击的方法: 中间人攻击利用了D-H协议中与双方的身份信
息无关这个缺点,因而必须利用对方的身份信息 进行对之进行身份认证.
▪ 用户拥有自己的密钥对(KU,KR) ▪ 公钥 KU公开,私钥KR保密
A B :Y EKUb (X ) B : DKRb (Y ) DKRb (EKUb ( X )) X
基于公开密钥的鉴别过程
用公钥密码实现鉴别
条件:两个密钥中任何一个都可以用作加密而另外
一个用作解密
▪ 鉴别:
A ALL :Y EKRa (X )
保密的负担. 前提条件: 必须进行身份认证,确保不是与假冒的用户进行
密钥交换,否则不能抵抗中间人攻击.
中间人攻击
----攻击者W在信道中间,假冒U与V进行密 钥交换,同时假冒V与U进行密钥交换.致使 看似U与V交换的密钥,实际上都是与攻击 者交换的密钥.
具体攻击
具体方法
攻击者W在信道上截获 xu mod和p
▪ 加密与解密由不同的密钥完成
加密:X Y :Y EKU (X )

解密:Y X : X DKR (Y ) DKR (EKU (X ))
知道加密算法,从加密密钥得到解密密钥在计算上是
不可行的
▪ 两个密钥中任何一个都可以作为加密而另一个用作解
密(不是必须的)
基于公开密钥的加密过程
用公钥密码实现保密
P), 易见,K = K =g xy (mod P)
▪ 由(4)知,Alice和Bob已获得了相同的秘密值K ▪ 双方以K作为加解密钥以传统对称密钥算法进行保密通信

公钥密码技术全解PPT课件

公钥密码技术全解PPT课件
加密算法E和解密算法D可逆
方案1:c=E(m,PK), m=D(c, SK) 方案2:c=E(m,SK), m=D(c, PK)
2020年9月28日
5
公开密钥密码的优点
简化密钥管理 实现数字签名
签名需要有无法被他人获悉的能代表自身的 秘密信息
签名验证时不会泄漏上述秘密信息
密钥交换
实现通过公开网络环境下的密钥协商
新技术
双密钥:ke≠kd 非对称加密:使用其中一个密钥加密,使用另一个密钥解密 可公开一个密钥:仅知道密码算法和公钥要确定私钥在计算
上是不可行的
2020年9月28日
4
公钥密码体制的原理
五元组(M,C,K,E,D)
双密钥K=< Ke,Kd>
Ke ≠ Kd且由Ke 不能计算出 Kd ; Ke可公开, Kd保密K=(PK, SK) PK为公钥,SK为私钥 SK严格保密,可作为个人的身份指纹
2020年9月28日
13
RSA算法示例
加密与解密
公钥PK={e, n}={7,187} 私钥SK={d,p,q}={23,17,11} 明文m = 88 加密
c=me mod n= 887 mod 187 = 11 解密
m =cd mod n= 1123 mod 187 = 88
2020年9月28日
K(n, p,q,a,d) n,a,公开;p,q,d保密
加 密 过 程 :mamodnc,加 密 密 钥 a
解 密 过 程 :cdmodnm,解 密 密 钥 a
2020年9月28日
11
RSA算法验证
E和D的可逆性
c=E(m,e)=me mod n D(c,d)=cd mod n=(me)dmod n ed=1 modφ(n) D(c,d)=(me)dmod n=m tφ(n)+1

现在密码学第11讲公钥密码

现在密码学第11讲公钥密码

无需事先分配密钥。
密钥持有量大大减少
提供了对称密码技术无法或很难提供的服务:
如与哈希函数联合运用可生成数字签名,可 证明的安全伪随机数发生器的构造,零知识 证明等
公钥密码体制有4个组成部分
明文:算法的输入,它们是可读信息或数据,用M 表示; 密文:算法的输出。依赖于明文和密钥,对给定的 消息,不同的密钥产生密文不同。用E表示; 公钥和私钥:算法的输入。这对密钥中一个用于加 密,为Ke,此密钥公开;一个用于解密,为Kd,此 密钥保密。加密算法执行的变换依赖于密钥; 加密、解密算法
传统密码体制在应用中的缺陷
密钥难以传输
不能提供法律证据 缺乏自动检测密钥泄密的能力
公钥密码体制(Public key system)
公钥密码学与其他密码学完全不同: 公钥算法基于数学函数而不是基于替换和置换 使用两个独立的密钥 公钥密码学的提出是为了解决两个问题: 密钥的分配 数字签名 1976年Diffie和Hellman首次公开提出了公钥密码学 的概念,被认为是一个惊人的成就。
M(n) =1+kq
两边同乘以M=cp,则: M(n)+1=M+kqcp=M+kcn 把kc看作一个常数,则:M(n)+1=M+tn 即:M(n)+1 ≡M mod n,即M(n) ≡1 mod n 因为ed=1 mod (n), 所以: Med ≡ Mk(n)+1 ≡ M[M(n) ]kmod n ≡ M[1]kmod n ≡ M mod n 综上,这样的e,d,n可以实现加密C=Me mod n 和解密M=Cd mod n

“The
magic words are squeamish ossifrage”

公钥密码技术讲义

公钥密码技术讲义

公钥密码技术讲义1.问题的引入1.1攻击类型根据攻击的不同方式,攻击被分为被动攻击和主动攻击。

图表1消息的正常传送被动攻击获得正在传送的信息。

其特点是:偷听或监视传送。

攻击的手段是:泄露消息内容和通信量分析。

(绘图说明)主动攻击主动攻击主要涉及到数据流的修改或创建错误流。

攻击手段是:伪装、重放、修改消息和拒绝服务。

1.2安全服务(简要说明)A.保密性B.验证(鉴别)C.完整性D.不可抵赖性(不可否认性)E.访问控制F.可用性1.3常规加密的缺陷尽管对称密码技术有一些很好的特性,但它也存在着明显的缺陷,主要在于其密钥的管理:A.进行安全通信前需要以安全方式进行密钥交换。

这一步骤,在某种情况下是可行的,但在某些情况下会非常困难,甚至无法实现。

B.密钥规模复杂。

举例来说,A与B两人之间的密钥必须不同于A和C两人之间的密钥,否则给B的消息的安全性就会受到威胁。

在有1000个用户的团体中,A需要保持至少999个密钥(更确切的说是1000个,如果她需要留一个密钥给他自己加密数据)。

对于该团体中的其它用户,此种情况同样存在。

这样,这个团体一共需要将近50万个不同的密钥!推而广之,n个用户的团体需要n2/2个不同的密钥。

2.公钥密码技术2.1基本概念应用两个不同的密钥:一个是公开的,一个是秘密的。

从公开密钥(以下简称为公钥)很难推断出私人密钥(以下简称为私钥)。

持有公钥的任何人都可以加密消息,但却无法解密。

只有持有私钥的人才能够解密。

2.2加密/解密基本步骤图表2加密/解密基本步骤一般的情况下,网络中的用户约定一个共同的公开密钥密码系统,每个用户都有自己的公钥和私钥,并且所有的公钥都保存在某个公开的数据库中,任何用户都可以访问此数据库。

这样加密协议如下:A.Alice从公开数据库中取出Bob的公开密钥。

B.Alice用Bob的公开密钥加密她的消息,然后传送给Bob。

C.Bob用他的私钥解密Alice的消息。

2.3优点从以上的介绍中可以看出,与对称密码技术相比较,利用非对称密码技术进行安全通信,有以下优点:A.通信双方事先不需要通过保密信道交换密钥。

第九章公钥密码学-PPT课件

第九章公钥密码学-PPT课件

3.公钥加密方案
4.公钥密码理论




由私钥及其他密码信息容易计算出公开密钥 (a polynomial time (P-time) problem) 由公钥及算法描述,计算私钥是难的 (an NPtime problem) 因此,公钥可以发布给其他人(wishing to communicate securely with its owner ) 密钥分配问题不是一个容易的问题(the key distribution problem )





public-key/two-key/asymmetric 包 括两个密钥: 公开密钥(a public-key), 可以被任何人知 道, 用于加密或验证签名 私钥( private-key), 只能被消息的接收者 或签名者知道,用于解密或签名 加密或验证签名者不能解密或多或生成签 名. 是密码学几千年历史中最有意义的结果
例子: 1. 选素数p=47和q=71,得n=3337, (n)=46×70=3220; 2. 选择e=79,求得私钥d=e -1 1019(mod 3220)。 3. 公开n=3337和e=79. 4. 现要发送明文688,计算: 68879(mod 3337)=1570 5.收到密文1570后,用私钥d=1019进行解密: 15701019(mod 3337)=688

Signature Schemes
用于生成对某消息的数字签名 私钥的拥有者生成数字签名 任何人可以用公钥验证签名
6.公钥的安全性



依赖于足够大大的困难性差别 类似与对称算法,穷搜索在理论上是能够破解公 钥密码 exhaustive search 但实际上,密钥足够长 (>512bits) 一般情况下,有一些已知的困难问题(hard problem” 要求足够大的密钥长度 (>512 bits) 导致加密速度比对称算法慢

密码学公钥密码学技术(讲用)

密码学公钥密码学技术(讲用)

1977年RSA的三个发明人在《科学美国人》杂志的数学游戏
专栏留下了一个129位的十进制数(426bit)密钥,悬赏$100, 估计破译时间为4亿亿年后。1994年Atkins等人动用网上的 1600台计算机,耗时8个月,成功地破译了该密码。 1999年一个国际密码研究小组在RSA公司举办的RSA密钥竞 赛中荣获冠军。该小组用7个月时间,使用世界各地11个地 点292台计算机,其中160台SGI和SUN工作站及120台PII PC 机,确定了生成单个512位RSA密钥所用的两个素数。 512 bit 154位10进制数 不够安全 768 bit 231位10进制数 个人应用 1024 bit 308位10进制数 商业应用 2048 bit 616位10进制数 重要场合
RSA密码系统
④ 计算d作为解密指数。用户计算出满足下式的d ed1modφ (n) ⑤ 得出所需要的公开密钥和秘密密钥: 公开密钥(即加密密钥)PK {e, n} 秘密密钥(即解密密钥)SK {d, n} 其中,p、q、φ (n)和d就是秘密的陷门(四项 并不是相互独立的),这些信息不可以泄露。
RSA算法的安全性分析
建议选择p和q大约是100位的十进制素数,模n的长度
要求至少是512比特。 为了抵抗现有的整数分解算法,对RSA模n的素因子p和 q还有如下要求: 1. |p-q|很大,通常 p和q的长度相同; 2. p-1 和q-1分别含有大素因子; 3. gcd(p-1, q-1) 应该很小 为了提高加密速度,通常取e为特定的小整数.
非对称密钥加密算法用于加密:
非对称密钥加密算法用于鉴别: 1. 如果A想给B发送一个签名报文,他就用自己的私有(保 密)密钥加密这个报文。 2. B收到这个报文后就用A的公开密钥鉴别该报文。

公钥密码技术理论及应用介绍

公钥密码技术理论及应用介绍

椭圆曲线密码编码学ECC
➢ 1985年Miller,Koblitz 独立提出 y2+axy+by=x3+cx2+dx+e
表示曲线上的点连同无穷远点O的集合 ➢ 加法:若曲线三点在一条直线上,则其和为O; ➢ 倍数:一个点的两倍是它的切线与曲线的另一个交点;
椭圆曲线上的加法规则
加法公式: ➢O 作为加法的单元,O=-O,P+O=P ➢如果P=(x,y),则P+(x,-y)=O,(x,-y)点是P的负点,记为 -P,而且(x,-y)也在EP(a,b)中 ➢如果P=(x1,y1),Q=(x2,y2),则 P+Q=(x3,y3)为 x3=2-x1-x2 (mod p) y3=(x1-x3)-y1 (mod p) 其中,如果PQ,则 = (y2-y1)/(x2-x1) 如果P=Q,则 = (3x12+a)/(2y1)
➢ 给 定 两 个 素 数 p 和 q, 以 及 整 数 n=p×q, 和 m, 其 中 0<mm<n(n,)1 则 m( p1)(q1)1 m mod n mk (n)1 mk ( p1)(q1)1 mmod n
RSA算法的描述
➢ 对于明文分组M和密文分组C,加密解密形式分别为: C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n
➢ 欧拉函数 (Euler’s totient function),记为φ(n),表示小 于n而且与n互素的正整数个数;
➢ 对于任一素数p,φ(p)=p-1; ➢ 对于两个不同的素数p和q,若n=p×q,
则φ(n)= φ(p×q)= φ(p)×φ(q)=(p-1)×(q-1);
Euler 函数举例

密码学公钥密码-PPT

密码学公钥密码-PPT

RSA算法得论证
假设截获密文C, 从中求出明文M。她知道 M≡Cd mod n,
因为n就是公开得,要从C中求出明文M,必须先求出d,而d 就是保密得。但知道,
ed≡1 mod Ø(n), E就是公开得,要从中求出d,必须先求出Ø(n),而Ø(n)就是 保密得。
RSA算法得论证
在计算上由公开密钥不能求出解密密钥 但知道,Ø(n)=(p-1)(q-1) 要从中求出Ø(n),必须先求出p与q,而p与q就是保密得。 知道 n=pq,要从n求出p与q,只有对n进行因子分解。 而当n足够大时,这就是很困难得。 只要能对n进行因子分解,便可攻破RSA密码。由此可以 得出,破译RSA密码得困难性<=对n因子分解得困难性。 目前尚不能证明两者就是否能确切相等,因为不能确知除 了 对n进行因子分解得方法外,就是否还有别得更简捷得破译 方法。 目前只有Rabin密码具有:
注:严格来说,公开钥为 e,秘密钥为 d, n 算做公开信息,p,q 为保密信息
2. 加密 先将明文比特串分组,使得每个分组对应的十进制数小于 n,
即分组长度小于 log2n,设分组大小为 k, 2k < n ≤ 2k+1。 然后对每个明文分组 m,作加密运算: c≡me mod n
3. 解密 对密文分组的解密运算为: m≡cd mod n
见:第8章 数论入门、
经典例子
RSA算法 Diffe-Hellman密钥交换算法 ElGamal密码体制 椭圆曲线密码体制ECC
RSA公开密钥算法
RSA算法描述 RSA得实现问题 RSA得安全性
RSA公开密钥算法
1977年由Ron Rivest、Adi Shamir与Len Adleman发明,1978年公布 就是一种分组加密算法

公钥密码学Read课件

公钥密码学Read课件
计算密文对: C1 = 536 = 50 mod 97 C2 = 75.3 mod 97 = 31 mod 97 发送 {50,31} to Bob
Bob 恢复 message key K=5058=75 mod 97 Bob 计算 K-1 = 22 mod 97
Bob 恢复明文 M = 31.22 = 3 mod 97
公开密钥(a public-key), 可以被任何人知道, 用于加密或验证签名
私钥( private-key), 只能被消息的接收者或签
名者知道,用于解密或签名
加密或验证签名者不能解密或多或生成签名. 是密码学几千年历史中最有意义的结果
第4页,共41页。
3.公钥加密方案
第5页,共41页。
4.公钥密码理论 由私钥及其他密码信息容易计算出公开密钥 (a
第6页,共41页。
5.公钥算法分类
Public-Key Distribution Schemes (PKDS)
用于交换秘密信息(依赖于双方主体) 常用于对称加密算法的密钥
Public Key Encryption (PKE) 用于加密任何消息
任何人可以用公钥加密消息
私钥的拥有者可以解密消息
保存其解密似钥:
K-1r={d,p,q}
第10页,共41页。
4。RSA 参数选择
需要选择足够大的素数 p, q 通常选择小的加密指数e,且与ø(N) 互素 e 对所有用户可以是相同的 最初建议使用e=3 现在3太小 常使用 e=216-1 = 65535 解密指数比较大
第11页,共41页。
16. El Gamal Example
选择 p=97 及本原根 a=5 recipient Bob 选择 秘密钥xB=58 & 计算并发布公钥yB=558=44 mod 97

(完整版)公钥密码技术PPT课件

 (完整版)公钥密码技术PPT课件
12
5.1.3 RSA算法实现中的计算问题
如何快速进行模指数运算?
• 模幂运算满足分配律 [ (a mod n) × (b mod n)] mod n = (a × b) mod n 利用中间结果对n取模,即降低了存储要求,并可实现高 效算法。
• 递进式指数计算
例如计算ad (mod n),为了便于计算机实现,其中指数d可
A计算会话密钥K=YBa mod p。
B计算会话密钥K=YAb mod p。
模 素 数 p=23 , 原 根 g=5 。
则可以由两个用户对同一个明文的不同加密结果,恢复出原始明文。 设 c1 me1 (modn) 、c2 me2 (modn) ,若攻击者获得这两个密文,
根据中国剩余定理推论: 存在 s、t,使得 t e1 s e2 1,使得 c1t c2s m(modn) ,从而恢
复出明文。
18
5.1.4 RSA体制安全性分析
• 由明密文对 (m0 ,c0 ) ,可以获得对 m0r 的加密结果,因为 (m0r )e c0r (mod n)
• 此外, 能够获得 (c 2e )(mod n) 的解密结果,就可以恢复 出c对应的明文。
17
5.1.4 RSA体制安全性分析
(5)共模攻击 通信系统中使用相同的 n,且存在两个用户的公钥 e1 和 e2 互素,
理,有: • med ≡ m1+kφ(n) ≡ m(mφ(n)) k ≡ m (mod n)
8
5.1.2 RSA加密算法的数论基础
• 定义1(同余):设a、b、m是正整数,如果m|(a-b),即
m整除(a-b),则称a和b模m同余,记为 a b(mod m)
• 定理1:(素数分解定理):对任意正整数n,存在唯一的

7第七八讲 公钥密码

7第七八讲 公钥密码

加密算法
加密密钥
明文
解密密钥 解密算法
密文
5
实现和意义
公钥密码算法的思想一提出立即受到密码界高度重视和极大兴
趣,密码专家纷纷投入研究,第一个公钥密码算法是由Ralph Merkle和Martin Hellman于1978年提出的背包公钥密码算法,后 来被证明是不安全的。 1978年后,Rivest,Shamir和Adleman提出的RSA算法体现了公钥 算法的思想,被认为是第一个安全的、实用的公钥算法,已经 成为公钥密码的国际标准,是目前应用最广泛的公钥密码算法。 公钥密码体制是现代密码学的一个标志,到目前为止,是密码 学史上最大且唯一真正的革命。
钥的人要破解密文就不得不解一个难解的背包问题。
将消息编码为背包问题的解。明文分组长度等于堆中物品 个数,且明文位与b的值相对应,密文是计算得到的和值。
17
公私钥对的生成
公开的背包序列a1,a2,…,an是由超递增序列b1,b2,…,bn 进 行以下变换得到的。 选取素数p和u,且
p
1 u p 1 。 b ,
已被证明大多数基于背包问题的公钥密码是不安全的,现很
少使用,但它的思想是值得借鉴的。关于对背包问题的攻击, 感兴趣的同学请参见相关文献。
22
背包密码小结
背包密码算法是第一个公开密钥算法,但大多数不适合数字
签名。
背包算法的安全性源于背包问题,它是一个NP类问题(随着
背包中物品数目的增多而计算量呈指数增长)。尽管这个算 法是不安全的,但由于它证明了如何将NP问题用于公钥密 码体制,是值得研究的。
如果序列为超递增序列,则背包问题则是易解的 P类问题。
16
MH背包密码的基本思想
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

公钥密码技术讲义1.问题的引入1.1攻击类型根据攻击的不同方式,攻击被分为被动攻击和主动攻击。

图表 1消息的正常传送被动攻击获得正在传送的信息。

其特点是:偷听或监视传送。

攻击的手段是:泄露消息内容和通信量分析。

(绘图说明)主动攻击主动攻击主要涉及到数据流的修改或创建错误流。

攻击手段是:伪装、重放、修改消息和拒绝服务。

1.2安全服务(简要说明)A.保密性B.验证(鉴别)C.完整性D.不可抵赖性(不可否认性)E.访问控制F.可用性1.3常规加密的缺陷尽管对称密码技术有一些很好的特性,但它也存在着明显的缺陷,主要在于其密钥的管理:A.进行安全通信前需要以安全方式进行密钥交换。

这一步骤,在某种情况下是可行的,但在某些情况下会非常困难,甚至无法实现。

B.密钥规模复杂。

举例来说,A与B两人之间的密钥必须不同于A和C两人之间的密钥,否则给B的消息的安全性就会受到威胁。

在有1000个用户的团体中,A需要保持至少999个密钥(更确切的说是1000个,如果她需要留一个密钥给他自己加密数据)。

对于该团体中的其它用户,此种情况同样存在。

这样,这个团体一共需要将近50万个不同的密钥!推而广之,n个用户的团体需要n2/2个不同的密钥。

2.公钥密码技术2.1基本概念应用两个不同的密钥:一个是公开的,一个是秘密的。

从公开密钥(以下简称为公钥)很难推断出私人密钥(以下简称为私钥)。

持有公钥的任何人都可以加密消息,但却无法解密。

只有持有私钥的人才能够解密。

2.2加密/解密基本步骤图表 2加密/解密基本步骤一般的情况下,网络中的用户约定一个共同的公开密钥密码系统,每个用户都有自己的公钥和私钥,并且所有的公钥都保存在某个公开的数据库中,任何用户都可以访问此数据库。

这样加密协议如下:A.Alice从公开数据库中取出Bob的公开密钥。

B.Alice用Bob的公开密钥加密她的消息,然后传送给Bob。

C.Bob用他的私钥解密Alice的消息。

2.3优点从以上的介绍中可以看出,与对称密码技术相比较,利用非对称密码技术进行安全通信,有以下优点:A.通信双方事先不需要通过保密信道交换密钥。

B.密钥持有量大大减少。

在n个用户的团体中进行通信,每一用户只需要持有自己的私钥,而公钥可放置在公共数据库上,供其它用户取用。

这样,整个团体仅需拥有n对密钥,就可以满足相互之间进行安全通信的需求。

(实际中,因安全方面的考虑,每一用户可能持有多个密钥,分别用于数字签名、加密等用途。

此种情况下,整个团体拥有的密钥对数为n的倍数。

但即使如此,与使用对称密码技术时需要n2/2个不同的密钥相比,需要管理的密钥数量仍显著减少。

)C.非对称密码技术还提供了对称密码技术无法或很难提供的服务:如与哈希函数联合运用可生成数字签名(下面介绍),可证明的安全伪随机数发生器的构造,零知识证明等。

2.4公钥密码系统提供的安全服务A.加密/解密:发送方可以用接收方的公钥加密消息。

B.数字签名:发送方用其私钥“签署”消息,通过对消息或作为消息函数的小块数据应用加密算法来进行签署。

C.密钥交换:两方互相合作可以进行会话密钥的交换。

2.5理论基础一个公开密钥密码系统必须满足的条件是:A.通讯双方A和B容易通过计算产生出一对密钥(公开密钥K1,私钥密钥K2)。

B.在知道公开密钥K1和待加密报文M的情况下,对于发送方A,很容易通过计算产生对应的密文:C. C = Ek1(M)D.接收方B使用私有密钥容易通过计算解密所得的密文以便恢复原来的报文:E.M = Dk2(C)= Dk2[Ek1(M)]F.除A和B以外的其他人即使知道公钥k1,要确定私钥K2在计算上也是不可行的。

G.除A和B以外的其他人即使知道公钥k1和密文C,要想恢复原来的明文C在计算上也是不可行的。

这些要求最终可以归结到设计一个单向陷门函数。

单向函数:一个单向函数是满足下列条件的函数:它将一个定义域映射到值域,使得每个函数值有一个唯一的原像,同时还要满足下列条件:函数值计算很容易,而逆计算是不可行的。

单项陷门函数:所谓单向陷门函数是这样的函数,即除非知道某种附加的信息,否则这样的函数在一个方向上容易计算,而在另外的方向上要计算是不可行的。

有了附加的信息,函数的逆就可以在多项式时间内计算出来。

一个实用的公开密钥密码系统的建立和发展依赖于找到一个单向陷门函数。

2.6公开密钥密码分析攻击公开密钥密码系统的方法有如下几种:穷举法–对此防范措施应为:使用长的密钥。

但是由于公钥算法依赖于单向陷门函数,计算函数的复杂性与密钥的长度的关系可能会增长得更快。

因而密钥大小必须足够大,以保证安全性,但是又要足够小以便加密解密使用。

根据公钥计算私钥–在数学上证明,对任何公钥算法,这种分析可能成功。

因而对任何公钥算法,对这种攻击方法都需要测试。

3.常用加密算法3.1 Diffie-Hellman密钥交换DH算法是W.Diffie和M.Hellman提出的。

此算法是最早的公钥算法。

它实质是一个通信双方进行密钥协定的协议:两个实体中的任何一个使用自己的私钥和另一实体的公钥,得到一个对称密钥,这一对称密钥其它实体都计算不出来。

DH算法的安全性基于有限域上计算离散对数的困难性。

离散对数的研究现状表明:所使用的DH密钥至少需要1024位,才能保证有足够的中、长期安全。

3.2 RSARSA算法是R.Rivest、A.Shamir和L.Adleman于1977年在美国麻省理工学院开发,于1978年首次公布。

RSA公钥密码算法是目前网络上进行保密通信和数字签名的最有效的安全算法之一。

RSA算法的安全性基于数论中大素数分解的困难性,所以,RSA需采用足够大的整数。

因子分解越困难,密码就越难以破译,加密强度就越高。

其算法如下:A.选择两质数p、qB.计算n = p * qC.计算n的欧拉函数Φ(n) = (p - 1)(q - 1)D.选择整数e,使e与Φ(n)互质,且1 < e < Φ(n)E.计算d,使d * e = 1 modΦ(n)其中,公钥KU={e, n},私钥KR={d, n}。

加密/解密过程:利用RSA加密,首先需将明文数字化,取长度小于log2n位的数字作为明文块。

对于明文块M和密文块C,加/解密的形式如下:加密: C = M e mod n解密: M = C d mod n = (M e)d mod n = M ed mod nRSA的安全性基于大数分解质因子的困难性。

因为若n被分解为n = p * q,则Φ(n)、e、d 可依次求得。

目前,因式分解速度最快的方法的时间复杂性为exp(sqrt(ln(n)lnln(n)))。

统计数据表明,在重要应用中,使用512位的密钥已不安全,需要采用1024位的密钥。

3.3椭圆曲线密码体制(ECC)原理:1985年,N. Koblitz和V. Miller分别独立提出了椭圆曲线密码体制(ECC),其依据就是定义在椭圆曲线点群上的离散对数问题的难解性。

为了用椭圆曲线构造密码系统,首先需要找到一个单向陷门函数,椭圆曲线上的数量乘就是这样的单向陷门函数。

椭圆曲线的数量乘是这样定义的:设E为域K上的椭圆曲线,G为E上的一点,这个点被一个正整数k相乘的乘法定义为 k个G相加,因而有kG = G + G + … + G (共有k个G)若存在椭圆曲线上的另一点N ≠ G,满足方程kG = N。

容易看出,给定k和G,计算N 相对容易。

而给定N和G,计算k = log G N相对困难。

这就是椭圆曲线离散对数问题。

离散对数求解是非常困难的。

椭圆曲线离散对数问题比有限域上的离散对数问题更难求解。

对于有理点数有大素数因子的椭圆离散对数问题,目前还没有有效的攻击方法。

建立椭圆曲线密码体制选取适当的有限域Fq和椭圆曲线E,在E(Fq)中选一个周期很大的点,如选了一个点P=(xp,yp),它的周期为一个大的素数n,记∏(P)=n(素数)。

注意:在这个密码体制中,具体的曲线及点P和它的n都是公开信息。

密码体制的形式采用EIGamal体制,是完全类比过来。

加密/解密协议a)密钥的生成A.Bob(使用者)执行了下列计算:B.在区间[1,n-1]中随机选取一个整数d。

C.计算点Q:=dP (d个P相加)D.Bob公开自己的公开密钥-- (E(Fq),P,n,Q)E.Bob的私钥为整数d!Alice要发送消息m给Bob,Alice执行:A.查找Bob的公钥(E(Fq),P,n,Q)B.将m表示成一个域元素P m∈FqC.在区间[1,n-1]内选取一个随机数kD.依据Bob的公钥计算点 (x1,y1):=kP(k个P相 )E.计算点(x2,y2):=kQ,如果x2=0,则回到第C.步F.生成密文:C m = {kP, P m + kQ}G.传送加密数据{kP, P m + kQ}给Bobb) Bob的解密过程Bob接收到{kP, P m + kQ},Bob用这一对中的第一个点乘以B的秘密密钥,再从第二个点中减去这个值:P m + kQ– d(kP) = P m + k(dG) –d(kG) = P m4.数字信封和数字签名公钥密码体制在实际应用中包含数字签名和数字信封两种方式。

数字信封(Digital Envelop)的功能类似于普通信封。

普通信封在法律的约束下保证只有收信人才能阅读信的内容;数字信封则采用密码技术保证了只有规定的接收人才能阅读信息的内容。

数字信封中采用了单钥密码体制和公钥密码体制。

信息发送者首先利用随机产生的对称密码加密信息,再利用接收方的公钥加密对称密码,被公钥加密后的对称密码被称之为数字信封。

在传递信息时,信息接收方要解密信息时,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息。

这样就保证了数据传输不可抵赖性。

数字签名(Digital Signature)是指用户用自己的私钥对原始数据的哈希摘要进行加密所得的数据。

信息接收者使用信息发送者的公钥对附在原始信息后的数字签名进行解密后获得哈希摘要,并通过与自己用收到的原始数据产生的哈希哈希摘要对照,便可确信原始信息是否被篡改。

这样就保证了消息来源的真实性和数据传输的完整性。

4.1数字签名原理在文件上手写签名长期以来被用作作者身份的证明,或表明签名者同意文件的内容。

实际上,签名体现了以下几个方面的保证:A.签名是可信的。

签名使文件的接收者相信签名者是慎重地在文件上签名的。

B.签名是不可伪造的。

签名证明是签字者而不是其他的人在文件上签字。

C.签名不可重用。

签名是文件的一部分,不可能将签名移动到不同的文件上。

D.签名后的文件是不可变的。

在文件签名以后,文件就不能改变。

E.签名是不可抵赖的。

签名和文件是不可分离的,签名者事后不能声称他没有签过这个文件。

相关文档
最新文档