第二讲之第4章公钥密码体制
第4章公钥密码体制
密钥
为公钥。 不再需要, 以n,e为公钥。私密钥为d。(p, q不再需要, 可以销毁。 可以销毁。)
RSA算法在计算上的可行性
加密和解密
无论是加密还是解密都需要计算某个整数的模n 整数次幂,即C=Me mod n、M=Cd mod n。但不 、 需要先求出整数的幂再对n取模,而可利用模运 算的性质: (a mod n) * (b mod n)= (a*b) mod n 对于Me mod n,可先求出M1 mod n,M2 mod n, M4 mod n……,再求Me mod n
RSA算法 RSA算法
RSA Algorithm
概况
MIT三位年轻数学家, 1979年发现了一种用数 论构造双钥的方法,称作MIT 体制 MIT体制 MIT 体制,后来被 广泛称之为RSA体制 RSA体制 RSA体制。 它既可用于加密、又可用于数字签字。 RSA算法的安全性基于数论中大整数分解的 困难性。 迄今为止理论上最为成熟完善的公钥密码体 制,该体制已得到广泛的应用。
公钥密码体制有4个组成部分
明文:算法的输入,它们是可读信息或数据,用M 表示; 密文:算法的输出。依赖于明文和密钥,对给定的 消息,不同的密钥产生密文不同。用E表示; 公钥和私钥:算法的输入。这对密钥中一个用于加 密,为Ke,此密钥公开;一个用于解密,为Kd,此 密钥保密。加密算法执行的变换依赖于密钥; 加密、解密算法
选p=7,q=17。 求n=p×q=119,φ(n)=(p-1)(q-1)=96。 取e=5,满足1<e<φ(n),且gcd(φ(n),e)=1。确 定满足d·e=1 mod 96且小于96的d,因为 77×5=385=4×96+1,所以d为77。 因此公开钥为{5,119},秘密钥为{77,119}。 设明文m=19,则由加密过程得密文为 C=195 mod 119≡2476099 mod 119=66 解密为6677mod 119=19
公钥密码体制公钥密码体制
首次公开提出了“公开密钥密码编码学”的概念。
这是一个与对称密码编码截然不同的方案。
提出公开密钥的理论时,其实用性并没有又得到证明:
❖ 当时还未发现满足公开密钥编码理论的算法; ❖ 直到 1978 年,RSA 算法的提出。
2.基本特征
❖ 加密和解密使用两个不同的密钥 公钥PK:公开,用于加密,私钥SK:保密,用作解密 密钥
3.优点
❖ 密钥管理
加密密钥是公开的; 解密密钥需要妥善保存; 在当今具有用户量大、消息发送方与接收方具有明显的信息不对称
特点的应用环境中表现出了令人乐观的前景。 新用户的增加只需要产生一对公共/私有密钥。
❖ 数字签名和认证
只有解密密钥能解密,只有正确的接收者才拥有解密密钥。
缺点:公共密钥系统的主要弱点是加密和解密速度慢。
加密与解密由不同的密钥完成; 知道加密算法,从加密密钥得到解密密钥在计算上是不可行的; 两个密钥中任何一个都可以作为加密而另一个用作解密。
6.公钥密码算法
除RSA算法以外,建立在不同计算问题上的其他公钥密码算法 有:
基于因子分解问题的Rabin算法; 椭圆曲线公钥算法; 基于有限域中离散对数难题的ElGamal公钥密码算法 基于代数编码系统的McEliece公钥密码算法; 基于“子集和”难题的Merkle-Hellman Knapsack(背包)公钥密码算 法; 目前被认为安全的Knapsack型公钥密码算法Chor-Rivest。
实际应用中的加密方式
❖ 混合加密技术 对称密码体制:密钥分发困难 公钥体制:加解密效率低 将对称加密算法的数据处理速度和公钥算法对密钥的保 密功能相结合 利用对称加密算法加密传输数据 利用非对称加密算法交换会话密钥
实际应用中的加密方式
第四章 公钥密码体制
访问控制决策功能
2015-7-18
127
访问控制模型
�
典型的访问控制模型
� � � �
自主访问控制模型 强制访问控制模型 基于角色的访问控制模型 基于任务的访问控制模型
2015-7-18
128
强制访问控制模型
�
强制访问控制模型
�
主体和客体均被赋予一定的 安全级别,主体不 能改变自身和客体的安全级别,只有 系统管理 员才能够确定主体的权限 系统对访问主体和受控对象实行强制访问控 制,依据主体和客体的安全级别决定是否允许 访问
�
2015-7-18
129
强制访问控制模型(续)
�
依据主体和客体的安全级别,MAC中主体对客 体的访问有四种方式:
�
向下读( Read Down,rd )
�
主体安全级别高于客体的安全级别时允许的读操作 主体安全级别低于客体的安全级别时允许的读操作 主体安全级别高于客体的安全级别时允许的写操作 主体安全级别低于客体的安全级别时允许的写操作
2015-7-18
122
4.4 访 问 控 制
� � �
访问控制的组成 访问控制模型 访问控制的实现技术
2015-7-18
123
相关概念
�
访问控制:Access Control
�
依据一定的授权规则,对提出的资源访问加 以控制。 访问控制是网络安全防护技术的主要安全策 略之一,它可以通过关键资源的限制访问, 达到防止非法用户使用和合法用户滥用权限 所造成的资源破坏。
2015-7-18 121
Kerberos的安全性
④ Kerberos 协议的第②~ ⑥步传输都采用了加密, 提高了抗攻击能力; ⑤AS要存储所有属于它的用户及 TGS、V的ID、 Kc、 Ktgs,而TGS要存储Ktgs、Kv,V要存储Kv ; ⑥ Kerberos 对加密体制、Internet 协议具有依赖性。
第四章-公钥密码体制
• 推论: p素数,a是任意整数,则: ap a mod p
– M kφ(n)+1=M mod n
RSA算法举例(1)
p = 53,q = 61,n = pq = 3233, φ(n)=52x60 = 3120 令d = 791,则e = 71 令m = RE NA IS SA NC E 即m = 1704 1300 0818 1800 1302 0426 170471 mod 3233 = 3106,…, C = 3106 0100 0931 2691 1984 2927
欧拉定理
• 证明: • R={x1,x2,…,x(n)}为所有小于n且与n互素的正整数,考虑集 合 • S={(ax1mod n), (ax2mod n),…, (ax(n) mod n)} • (aximod n)与n互素 • (aximod n)两两不等: • (aximod n) = (axjmod n) ximod n = xjmod n • S有(n)个元素 • 故S也是所有小于n且与n互素的正整数,因此S=R,从而 xi=(aximod n)((axi)) mod n • (a(n) xi) mod n • 注意到xi 与n互素,从而得到结论.
费马(Fermat)定理
• 若p是素数,a是正整数,且gcd(a,p)=1,则ap1≡1mod p • 证明:考虑集合{1,2,…,p-1},对每个数乘以a,得到 集合{a mod p,2a mod p,…,(p-1)a mod p},对于p, 后者两两不同且都在1与p-1之间,因此两个集合相 同,于是:
第4章公钥密码体制
1976年,W.Diffie和M.E.Hellman发表了“密码学的新方 向(New Directions in Cryptography)”一文,提出了公 钥密码学(Public-key cryptography)的思想,在公钥密 码体制(Public-key cryptosystem)中加密密钥和解密密 钥是不同的,加密密钥可以公开传播而不会危及密码体制 的安全性。
数字签名和认证
只有解密密钥能解密,只有正确的接收者才拥有解密密钥
单向函数
对于一个函数 f (x) ,如果对于其定义域上的 任意 x,都容易计算 f (x) ,同时,对于其值 域中几乎所有的取值 y ,计算其逆函数 f 1 ( y) 都是不可行的,则函数 f (x) 被称为单向函数
可以提供单向函数的三大数学难题
硬件实现:比 DES 慢 1000 倍。
软件实现:比 DES 慢 100 倍。
安全强度:
同等强度的 DES 与 RSA 比较
RSA的缺点主要有: 产生密钥很麻烦,受到素数产生技术的限制,因而难 以做到一次一密。 分组长度太大,为保证安全性,n 至少也要 600比特 以上,使运算代价很高,尤其是速度较慢,较对称密 码算法慢几个数量级;且随着大数分解技术的发展, 这个长度还在增加,不利于数据格式的标准化。 目前,SET(Secure Electronic Transaction)协议中要 求CA采用2048比特长的密钥,其他实体使用1024比特的 密钥。
取公钥:e=7,计算私钥:d =23.
明文: m=88, 计算密文: c=887 (mod 187).
1. 如果密码分析者能分解
n
的因子 p 和 q ,他就
可以求出 n 和解密的密钥 d ,从而能破译RSA,因此破 译RSA不可能比因子分解难题更困难。
公钥密码体制 PPT课件
公钥密码体制 – RSA体制
RSA公钥密码体制 – 简介
1978年,Rivest、Shamir、Adleman一 起提出RSA公钥密码体制
RSA基于大整数分解难题 n是由两个素数相乘得到,已知n,不存在
RSA公钥密码体制 – 算法
加密:
◦ 设消息m < n, c = m e mod n
解密:
◦ m = c d mod n
解密证明:
◦ c d mod n = m ed mod n = m 1 mod φ(n) mod n = m k* φ(n) + 1 mod n
◦ m与n互素时,由欧拉定理 m k* φ(n) + 1 mod n = m k* φ(n) * m mod n = = m (φ(n))k * m mod n = m mod n , (m φ(n) mod n = 1)
公钥密码体制概念
公钥密码体制的建立是依据数学难问题 寻找一个单向陷门函数f:XY,其中
计算y = f(x)很容易,但如果不知道陷 门,则计算x = f-1(y)很难 现阶段公开且未解决的数学难题:
◦ 大整数分解难题(RSA) ◦ Zp域上的离散对数问题(DH) ◦ EC上点域的离散对数问题(EC)
安全的RSA通常认为需要使用1024比 特以上
国际上建议采用2048、4096比特密钥 长度
RSA用于密钥交换的功能正在被ECDH 所取代
RSA用于数字签名的功能正在被 ECDSA所取代
RSA公钥密码体制 – 数学基础
模运算 缩余系 费马小定理 a p-1 = 1 mod p 欧拉函数 φ(n) 欧拉定理 a φ(n) = 1 mod n 中国剩余定理(加速解密) 二次剩余(RSA参数选取) 欧几里德算法(逆的计算) 模幂的计算
第4章-公钥密码算法
7
公钥密码系统的特征
根据密码系统的组成以及公钥密码体制自身的特 点,一个公钥密码系统可以表示为:加密算法E、 解密算法D、公钥/私钥(PK/SK)对、明文M、密文C 六个元素,且各元素必须要满足以下条件:
8
公钥密码系统的特征
• ⑴ 密钥。要满足两点要求:公钥/私钥 (PK/SK)对容易产生,且私钥除了生成密钥 的用户自己知道之外,其他任何人都不可 知;已知公钥PK,无法计算出私钥SK,即 公钥密码系统所要满足的基本条件之一是 从公开密钥无法通过计算得到私有密钥。
9
公钥密码系统的特征
• ⑵ 加密算法E。要满足两点要求:已知公钥PK,对任何明文M, 由E计算出密文C非常容易,即C = EPK(M) 易计算,或者已知 私钥SK,对任何信息M,由E计算数字签名也非常容易,即 C = ESK(M) 易计算。
• 缺点:加密算法复杂,加密速度难以达到理想状态。 5
公钥密码体制依赖的基础
• 传统的对称密码体制依赖的基础是替代和置换两 种转换思想。与对称密码体制不同的是,公钥密 码体制依赖的基础是数学上的某类问题的求解困 难。
• 经典的公钥密码算法RSA、椭圆曲线密码算法ECC 等都是依赖某类数学问题的,它们共同的特点是 基于某个单向陷门函数。单向陷门函数 y=fk(x) 是指同时满足下列条件的一类可逆函数:
6
公钥密码体制依赖的基础
• ⑴ 函数是一一映射关系,也就是说,对于每个函数值y,只有 唯一的一个原象x与之对应;
• ⑵ 给定x与关键参数k,函数y=fk(x)很容易计算; • ⑶ 给定y,存在某个关键参数k’,在未知k’时,由y计算出x
信息安全概论第四章公钥密码体制
14
Diffie-Hellman密钥交换算法 密钥交换算法
Diffie和Hellman在其里程碑意义的文章中, 虽然给出了密码的思想,但是没有给出真正意 义上的公钥密码实例,也既没能找出一个真正 带陷门的单向函数 然而,他们给出单向函数的实例,并且基于此 提出Diffie-Hellman密钥交换算法
13
常用的公开密钥算法
公钥算法的种类很多,具有代表性的三种密码: 公钥算法的种类很多,具有代表性的三种密码: 基于整数分解难题(IFP)的算法体制 基于整数分解难题(IFP)的算法体制(RSA) 基于离散对数难题(DLP)算法体制 基于离散对数难题(DLP)算法体制(ElGamal) 基于椭圆曲线离散对数难题( ECDLP ) 的算法体制 基于椭圆曲线离散对数难题 ( ECDLP) (ECC)
3
4.1 公钥密码体制的基本原理
对称算法的不足
(1)密钥管理量的困难 传统密钥管理:两两分别用一个密钥时, 传统密钥管理:两两分别用一个密钥时,则n个用户需 C(n,2)=n(n-1)/2个密钥 当用户量增大时, 个密钥, 要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空 间急剧增大。 间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时 n=5000时, C(5000,2)=12,497,500 (2)密钥必须通过某一信道协商,对这个信道的安全 密钥必须通过某一信道协商, 性的要求比正常的传送消息的信道的安全性要高
7
公开密钥密码的重要特性
加密与解密由不同的密钥完成 Y: X: Y = EKU(X) X = DKR(Y) = DKR(EKU(X))
加密: X 解密: Y
知道加密算法,从加密密钥得到解密密钥在计算上 , 是不可行的 两个密钥中任何一个都可以用作加密而另一个用 作解密(不是必须的) X = DKR(EKU(X))
公钥密码系统
,0)=6
22
22
第4章 公钥密码体系
用途: (2)两个正整数互素,可以求一个数关于 另一个数的乘法逆元
性质2:若gcd(n,a)=1, 则a在模n下有乘法逆元 (设a<n)即存在x<n, ax=1 mod n
16
Network and Information Security
第4章 公钥密码体系
RSA的数学基础
➢ 除数(因子): 设z为由全体整数而构成的集合,若 b≠0且 a,b,m∈z , 使得a=mb,此时称b整除a.记为b∣a,还称b为a的除数(因子).
➢ 素数:对一个自然数P,如果P只能被1和自身除尽时,则称P 为素数(或质数),否则为合数。
⑧ Goto ②
24
第4章 公钥密码体系
例如:k=7, 求解7-1(7关于模26的乘法逆元)
循环次数 Q X1 X2 X3 Y1 Y2 Y3
初值
无1
0
26
0
1
7
1
301
7
1 -3 5
2
1 1 -3 5 -1 4 2
3
2 -1 4
2
3 -11 1
-11即为求得的结果,是11关于模26的加法逆元,即15。
第4章 公钥密码体系
➢ 整数同余:设n是一个正整数,a,b ∈Z, 如果 a mod n= b mod n,则称a 和b模n同余, 记作 a ≡ b(mod n) ,称整数n为同余模 。
模m求余运算称为模运算, 下面是模运算的一些性质。 (1) (a+b) mod m = ((a mod m) + (b mod m)) mod m (2) (a-b) mod m = ((a mod m) - (b mod m)) mod m (3) (a×b) mod m = ((a mod m) × (b mod m)) mod m (4) (a×(b+c) ) mod m = (((a×b) mod m) + ((a×c) mod m)) mod m (5)a8 mod m=(a×a×a×a×a×a×a×a) mod m 化简为:((a2 mod m)2 mod m)2 mod m
第四章 公钥密码体制
1991年有美国国家标准局提出的数字签名标准 DSS(Digital Signature Standard)应用于数据完整性和原始真实性的应用。DSS为计算和核实数字签 名指定了一个数字签名算法 DSA。 DSS签名利用一个散列函数产生消息的一个散列值,散列值连同一个随机 数k一起作为签名函数的输入,签名函数还需要使用发送方的秘密密钥 SKA和 供所有用户使用的全局公钥 PKG。签名函数的两个输出 s和r就构成了消息的 签名(s,r)。接收方收到消息后再产生出消息的散列值,将散列值与收到的 签名一起输入验证函数,验证函数还需输入全局公钥 PKG和发送方的公钥 PKA。验证函数的输出如果与收到的签名成分 r相等,则验证了签名是有效的。 DSS使用了Securure Hash运算法则,用该法则对信息处理,可以得到一 个160位(bit)的数字,把这个数字与信息的密钥以某种方式组合起来,从而 得到数字签名。
2015-7-13 70
数字签名印章方案实施过程: 1、签章体系
用户利用签章计算机,对文件进行消 息摘要(一般使用SHA算法),并进行 电子签章(数据签名)
2、CA体系
用户通过CA机构合法获得数字 证书,即获得了对应唯一的公钥/ 私钥对,私钥存于签章钥匙盘,用 于数字签名过程。
3、验证体系
由CA利用公钥进行验证,以确定 数据未有更改。
2015-7-13 67
数字签名印章实现过程
2015-7-13
68
4.3 身份认证
2015-7-13
69
一、身份认证的定义
� �
声称者向验证者出示自己的身份的证明过程 证实客户的真实身份与其所声称的身份是否相符 的过程
�
�
公共密码体制
电子商务安全
11
4.2 RSA算法 算法
• 1978年就出现了这种算法,它是第一个既能用 年就出现了这种算法, 年就出现了这种算法 于数据加密也能用于数字签名的算法。 于数据加密也能用于数字签名的算法。 • 它易于理解和操作,也很流行。 它易于理解和操作,也很流行。 • 算法的名字以发明者的名字命名:Ron Rivest, 算法的名字以发明者的名字命名: Adi Shamir 和Leonard Adleman。但RSA的 。 的 安全性一直未能得到理论上的证明。 安全性一直未能得到理论上的证明。
电子商务安全 22
注: RSA的安全性是基于加密函数 的安全性是基 的安全性是 ek(x)=xe(mod n)是一个单向函数,所以对别人 是一个单向函数, 是一个单向函数 来说求 计算不可行, Bob能解密的陷门是 来说求逆计算不可行,而Bob能解密的陷门是 分解n=pq 分解 知 ϕ (n)=(p-1)(q-1) 从而用欧氏算法解出解密 从而用欧氏算法解出解密 欧氏 私钥d.
电子商务安全
20
DES和RSA性能比较(同等 同等强度) 同等
DES密钥长度(bit) 56 64 112 128
RSA 密钥长度(bit) 384 512 1792 2304
电子商务安全
21
例子
密钥的选取:若 密钥的选取 若Bob选择了p=101和q= 113 , 选 和 那么, 那么,n=11413, (n)=100 *112= 11200 ; 然而, 然而,11200= 26* 52 *7, 一个正整数 能用作加密 , 一个正整数e能用作加密 指数, 仅当e不能 不能被 , , 所整 所整除 指数,当且仅当 不能被2, 5, 7所整除。 实上, 辗转相 事实上,Bob不会分解 而是用辗转相除法(欧 不 分解(n) 而是用辗转 算法) 求得e, 假设Bob选择了 式算法)来求得 , 使(e , ϕ (n)=1) 假设 选 e=3533, 那么用辗转相除法将求得 辗转相 法将求得d=e -1 α 6597(mod , 那么用辗转 11200), 于是 于是Bob的解密密钥 的解密密钥d=6597. 的解密密钥 Bob在一个目录中公开 在一个目录中公开n=11413和e=3533, 在一个目录中公开 和 加密解密:现假设 加密解密 现假设Alice想发送明文9726给Bob 她计算 想 送明文 给 现假设 97263533(mod 11413)=5761。且在一个信道上发送密文 。 在一个信道上发 5761 ,当Bob接收到密文 接收到密文 接收到密文5761时,他用他的秘密解密 时 指数私 进行解密57616597 (mod 11413)=9726 指数私钥d= 6597进行解密 进行解密
第4章公钥密码体制
第4章公钥密码体制(1)内容●公开密钥密码算法−公开密钥密码算法的基本思想−公开密钥密码算法的数学基础−一些经典算法(2)概述[37:188]●也称“双钥密码体制”。
是密码学史上划时代的事件,为计算机信息网中的安全提供了新的理论和基础。
●最大特点:采用两个密钥将加密和解密能力分开;一个公开作为加密密钥(公钥),一个为用户专用,作为解密密钥(私钥),通信双方无需实现交换密钥就可进行保密通信。
●从已经公开的公钥或密文分析出明文或私钥,在计算上是不可行的。
●若用公钥作为加密密钥,以私钥作为解密密钥,则可实现多个用户加密的消息只能由一个用户解读(用于保密通信);反之,以私钥作为加密密钥而以公钥作为解密密钥,则可实现由一个用户加密的消息而使多个用户解读(用于数字签名)。
(3)理论:基于数学函数,不基于替换和置换(4)安全性•和对称方案一样,强力攻击在计算上不可行的,但使用的密钥更大(>512bits)•安全性基于一些陷门单向函数,只是计算上不可行–要求使用非常大的数–因此比对称方案计算速度慢•选择明文攻击–通过对报文附加随机比特来实现(5)对公钥密码的常见误解:●从密码分析角度看,公钥密码比传统密码更安全;●公钥密码是一种通用的方法,所以传统密码已经过时;●传统密码中与密钥分配中心的握手是一件异常麻烦的事,与之相比,用公钥密码实现密钥分配则非常简单。
(6)公开密钥密码经典算法– RSA算法– Diffie-Hellman密钥交换算法–背包算法– EIGamal算法–椭圆曲线密码算法ECC4.1 公钥密码体制的基本原理(一)传统密码最困难的问题●密钥分配问题:要求通信双方共享或通过第三方分配,后一种情形容易泄密,密码系统再好也无用。
密钥必须通过某一信道协商,对这个信道的安全性的要求比正常的传送消息的信道的安全性要高。
●数字签名问题:传统加密算法无法实现抗抵赖的需求。
(二)其它问题●密钥量大,n个用户,需要()212-=nnCn个密钥,管理更困难;●每个用户要记n-1个密钥,用载体(纸张、外存等)记录极不安全。
第二讲之第4章公钥密码体制课件
4.2 Diffie-Hellman 密钥交换算法
W.Diffie和M.E.Hellman于1976年提出的,让A和B 两个陌生人之间建立共享秘密密钥的公开密钥算 法,称为Diffie-Hellman算法,它定义了公开密 钥密码体制。它的目的是使得两个用户安全地交 换一个密钥以便用于以后的报文加密,这个算法 本身限于密钥交换的用途。许多商用产品都使用 这种密钥交换技术。
4.RSA 的使用
发送方要加密明文M:
获得接收方的公钥 KU={e,N} 计算: C=Me mod N, where 0≤M<N
接收方解密密文C:
使用自己的私钥 KR={d,N} 计算: M=Cd mod N
注意:M必须比N小
5.RSA例1
①取两个质数p=11,q=13,p和q的乘积为 n=p×q=143,算出另一个数z=(p-1)×(q-1)=120; ②再选取一个与z=120互质的数,例如e=7,则
用户将自己的公开(加密)密钥登记在一个公 开密钥库或实时公开,秘密密钥则被严格保密 。信源为了向信宿发送信息,去公开密钥库查
一对密钥 找对方的公开密钥,或临时向对方索取公钥, 将要发送的信息用这个公钥加密后在公开信道 上发送给对方,对方收到信息(密文)后,则 用自己的秘密(解密)密钥解密密文,读取信 息。
基于背包问题的Merkle-Hellman背包公 钥体制
基于有限域上离散对数问题的ElGamal 公钥体制
基于椭圆曲线的ECC密码体制
……
公钥密码体制介绍
第4章公钥密码体制
利用推广的欧几里德算法简化计算:
其计算原理依赖于下面的定理:
定理 :gcd(a,b) = gcd(b,a mod b) ② 定理:a存在模p的乘法逆元的充要条件 是 gcd(a,p) = 1 如果gcd(a,b)=d,则存在m,n,使得d = ma + nb, 称呼这种关系为a、b组合整数d,m,n称为组 合系数。当d=1时,有 ma + nb = 1 ,此时可以 看出m是a模b的乘法逆元,n是b模a的乘法逆元
公钥和私钥必须相关,而且从公钥到私钥不可
推断
必须要找到一个难题,从一个方向走是容易的,从 另一个方向走是困难的 如何把这个难题跟加解密结合起来
计算可行和不可行的界与计算复杂性理论密
切相关
计算复杂性理论可以提供指导
但是需求不尽相同
计算复杂性通常针对一个孤立的问题进行研究 而公钥密码学往往需要考虑一些相关的问题 比如,密码分析还需要考虑已知明文、选择明文等相关的情形 计算复杂性考虑最坏的情形 而对于公钥密码学则是不够的
二、密钥的选取
①
挑选大素数p 和 q 。 选择 e 或 d ,并计算另外一个。
②
选取一个素数的过程如下:
①随机选一个奇数n; ②随机选一个整数a<n; ③完成素性检测,如下面的Miller-Rabin算法 ④如果n没有通过检验,舍弃n并转向步骤(1),如果n
通过了足够多次的检验,就接受它为素数,否则转 向步骤(2)
ElGamal:安全性基于有限域内计算离散对
数的困难性。
– 数字签名 – 加密
基础知识
若p是素数,则0,1……,p-1
构成一个有限域 本原元定义:若(a,m)=1,以m为模a的指数φ (m) 为使ad=1 mod m成立的最小的正整数d,则a叫 做模m的原根或本原元。 本原元α :α 满足α p-1=1 mod p且p-1是使此关 系式成立的最小正整数,p为素数
信息安全概论-ppt--公钥密码体制
公钥密码体制
17
4.1 一些数学基础
❖ 费马(Fermat)定理:
p素数,a是整数且不能被p整除,则:ap-1 1 mod p 例:a = 7,p = 19,则ap-1 = 718 1 mod 19
a = 3,p = 5,则ap-1 = 34 1 mod 5
❖ 欧拉(Euler)函数(n):
如果gcd(a,b)=1,则称a和b互素。
公钥密码体制
11
素数和素分解
任一整数p>1,若只有+(-)1和+(-)p为约数,就称其 为素数(prime),否则为一合数。素数在数论和现代密码学中扮演 重要角色。 判断:
所有奇数都是素数。所有偶数都是合数。 除了1,自然数不是素数就是合数。 除了2,5,个位上是0,2,4,6,8,5的数都是合数。 两个自然数相乘,乘得的数一定是合数。 除了3,能被3整除的数都是合数。 一个自然数不是素数就是合数。 合数至少有三个因数。 素数一定是奇数。合数一定是偶数。 1不是素数也不是合数。
公钥密码体制
16
4.1 一些数学基础
❖ 模运算:
求余数运算(简称求余运算)a mod n将整数a映射到集合
{0,1, …,n-1},称求余运算在这个集合上的算术运算为模运算
模运算有以下性质: [(a mod n)+(b mod n)] mod n = (a+b) mod n [(a mod n)- (b mod n)] mod n = (a-b) mod n [(a mod n)×(b mod n)] mod n = (a×b) mod n
❖ 数论简介:
数论是密码学特别是公钥密码学的基本工具。研究“离散数字集合” 的相关问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2 Diffie-Hellman 密钥交换算法
W.Diffie和M.E.Hellman于1976年提出的,让A和B 两个陌生人之间建立共享秘密密钥的公开密钥算 法,称为Diffie-Hellman算法,它定义了公开密 钥密码体制。它的目的是使得两个用户安全地交 换一个密钥以便用于以后的报文加密,这个算法 本身限于密钥交换的用途。许多商用产品都使用 这种密钥交换技术。
用户将自己的公开(加密)密钥登记在一个公 开密钥库或实时公开,秘密密钥则被严格保密 。信源为了向信宿发送信息,去公开密钥库查
一对密钥 找对方的公开密钥,或临时向对方索取公钥, 将要发送的信息用这个公钥加密后在公开信道 上发送给对方,对方收到信息(密文)后,则 用自己的秘密(解密)密钥解密密文,读取信 息。
密钥交换过程
(1)选择一个素数P和它的一个原元a;
(公2)开通密信钥方YAA选: 择自己的秘密密钥XA,并计算自己的 YA=a XA mod P
(3)通信方B选择自己的秘密密钥XB,并计算自己的 公开密钥YB: YB=a XB mod P
(4)通信双方A和B交换YA和YB; (5)A独立计算会话密钥,B独立计算会话密钥KS; (6)通信双方利用会话密钥KS进行通信。
公开密钥密码体制的产生,是密码学革命 性的发展。一方面,为数据的保密性、完 整性、真实性提供了有效方便的技术。另 一方面,科学地解决了密码技术的瓶颈 ──密钥的分配问题。
公钥体制算法
第一个公钥体制是1977年由Rivest, Shamir,Adleman提出的,称为RSA 公钥体制,其安全性是基于整数的因子 分解的困难性。RSA公钥体制已得到了 广泛的应用。
续(2)
比较3 在安全性方面,DES算法和RSA算法
的安全性都较好,还没有在短时间内破译 它们的有效的方法。
比较4 在签名和认证方面,DES算法从原理
上不可能实现数字签名和身份认证,但 RSA算法能够容易地进行数字签名和身份 认证。
13. 基于DES和RSA的加密方案
设发送方为A(加密密钥为Kea,解密密钥为 Kda),接收方为B(加密密钥为Keb,解密密钥为 Kdb)。
可见,这里省去了从秘密信道传递密钥的过程 。这是公钥体制的一大优点。
续
(2)保护信息机密
任何人均可将明文加密成密文,此后只有拥有解密密钥 的人才能解密。
(3)实现不可否认功能
公钥体制用于数字签名时:
信源为了他人能够验证自己发送的消息确实来自本人,他将自己 的秘密(解密)密钥公布,而将公开(加密)密钥严格保密。与 别人通信时,则用自己的加密密钥对消息加密──称为签名,将 原消息与签名后的消息一起发送.
2.RSA算法描述
加密: C=Me mod N, where 0≤M<N 解密: M=Cd mod N 公钥为(e,N), 私钥为(d,N) 必须满足以下条件:
计算Me和Cd是比较容易的 由e和N确定d是不可行的
3.RSA 密钥产生过程
随机选择两个互质大素数 p, q (p,q 必须保密) 计算 n=p.q 计算z =(p-1)(q-1) 随机选择整数 e,使得1<e<z且gcd(e,z)=1 计算d :d=e-1 mod z 且 0≤ d ≤ n 公布公钥: KU={e,n} 保存私钥: KR={d,n}
2.交换示例(续) (2)交换YA和YB; (3)交换密钥后,A、B分别计算共享的秘密
会话密钥KA、KB: 用 户A计 算: KA=YB XA mod 47=178 mod
47=4 mod 47
用户B计算: KB=YA XB mod 47=2810 mod 47=4 mod 47
A和B双方独立地决定采用数据“4”作为 会话密钥。
3)为保证安全性,n 至少也要 600 bits以上 ,且还在增加。在运算上要付出代价。
12. RSA算法和DES算法比较
比较1
在加密、解密的处理效率方面,DES算法 优于RSA算法。因为DES密钥的长度只有56 比特,可以利用软件和硬件实现高速处理; RSA算法需要进行诸如200比特整数的乘幂 和求模等多倍字长的处理,处理速度明显慢于 DES算法。
p、q不相同,即不要太接近,又不能差别太大 p-1、q-1都有大素数因子,增加猜测φ(r) 难度 gcd( p-1,q-1)应当小
RSA算法的脆弱性(续)
4)p、q选择不当,则变换周期性、封闭性而泄密 例:p=17,q=11,e=7,则n=187。 设m=123,则 C1=1237 mod 187=183 C2=1837 mod 187=72 C3=727 mod 187=30 C4=307 mod 187=123 明文m经过4次加密,恢复成明文。
续(1)
比较2
在密钥的管理方面,RSA算法比DES 算法更加优越。因为RSA算法可采用公开 形式分配加密密钥,对加密密钥的更新也 很容易,并且对不同的通信对象,只需对 自己的解密密钥保密即可;DES算法要求 通信前对密钥进行秘密分配,密钥的更换 困难,对不同的通信对象,DES需产生和 保管不同的密钥。
具体实现步骤: (1)发送方A生成用于DES加密的密钥K,为了
提高数据的安全性,每一个密钥K只用一次。 (2)发送方从密钥服务器中获取接收方的
RSA的公开加密密钥Keb,并用Keb加密DES的密 钥K形成密文Ck。
续(1)
(3)发送方A生成需要签名的信息,并用 自己的RSA的解密密钥Kda和Keb共同形成 数字签名。
公开密钥=(n,e)=(143,7)。 ③ 对于这个e值,可以算出其逆:d=103。 ④ 因为e×d=7×103=721,满足e×d mod z =1 ;即721 mod 120=1成立。
则秘密密钥=(n,d)=(143,103)。
6.RSA例2
张小姐需要发送机密信息(明文)m=85给李 先生,她已经从公开媒体得到了李先生的公开密 钥(n,e)=(143,7),于是她算出加密值:
第二讲 信息安全技术
第2章 密码技术基础 第3章 对称密码体系 第4章 公钥密码体系 第5章 公钥基础设施PKI 第6章 信息隐藏技术
第四章 内容
4.1公钥密学概述 4.2 Diffie-Hellman 密钥交换算法 4.3 RSA算法
4.1 公钥密码概述
1976年,Diffie 和Hellmann提出了公开密 钥密码体制(简称公钥体制),它的加密 、解密密钥是不同的,也是不能(在有效 的时间内)相互推导。所以,它可称为双 钥密码体制。
c= me mod n=857 mod 143=123,并发送给 李先生。
李先生在收到密文c=123后,利用只有他自己 知道的秘密密钥计算:m= cd mod n =123103 mod 143=85,所以,李先生可以得到张小姐发 给他的真正的信息m=85,实现了解密。
7.RSA算法的安全性
依赖于大数分解,但是否等同于大数分解一直 未能证明。不管怎样,分解n是最显然的攻击方法 。 1994年4月26日,美国各大媒体报道:由RSA发 明人在17年前出的129位数字已被因子分解,并破 解了附带的密语:
两两互不相同,构成一个1~p-1的全体数 的一个排列。对于任意数b及素数p的原元 a,可以找到一个唯一的指数 i,满足
b ai mod p , 0<=i<=p-1
则称指数i为以a为底、模p的b的离散对数。
1.基本原理
用户A
公开 YA 秘密 XA
用户B
YB 公开
XB 秘密
计算
计算
会话秘密 KA 密钥交换过程 KB 会话秘密
2.交换示例 为了计算简单,使用很小数字。设P=47和47
的一个原元,a=3。
A选择秘密密钥XA=8,B选择秘密密钥XB=10, 各自计算其公开密钥。
(1)双方各自计算
用户A计算:YA=3 8mod 47=6561 mod 47=28 mod 47
用 户 B 计 算 : YB=3 10mod 47= 59049 mod 47=17 mod 47
总之,RSA对用户要求太苛刻,密钥不能常更换。
9.RSA算法的攻击方法
(1)选择密文攻击
(2)过小加密指数e (3) RSA的公共模数攻击 (4)RSA的计时攻击法
10. RSA的实用性
公开密钥密码体制有优点,但它的运算量大 ,计算复杂。
结合对称密钥密码体制使用
RSA算法在互联网的许多方面得以广泛应 用。
特减少储存时间,减 少受攻击的机会; •(2)除对全局参数的约定外,密钥交换不需要事 先存在的基础结构。
不足:
(1)没有通信双方身份的信息; (2)计算是密集性的,容易受到阻塞性攻击; (3)没办法防止重放攻击; (4)容易受到中间人攻击。
4.3 RSA算法
The magic words are squeamish ossifrage. 目前,已能分解140位十进制的大素数。因此, 模数n必须选大一些。 RSA最快的情况也比DES慢上100倍,无论是软 件还是硬件实现。速度一直是RSA的缺陷。一般只 用于少量数据加密。
8.RSA算法的脆弱性
不能证明RSA密码破译等同于大数因子分解 1) 速度问题:增大p•q将使开销指数级增长 2) 至少有9个明文,加密后不变,即me mod n=m 3) 普通用户难于选择p、q。对p、q的基本要求:
应用最广泛的公钥密码算法 只有美国专利,且已于2000年9月到期
1.RSA算法要点
算法产生一对密钥,一个人可以用密钥对中 的一个加密消息,另一个人则可以用密钥对 中的另一个解密消息。同时,任何人都无法 通过公钥确定私钥,也没有人能使用加密消 息的密钥解密。只有密钥对中的另一把可以 解密消息。