第四章 信息安全原理与技术ch04-公钥密码技术(实验)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011-6-14 Ch1-公钥密码技术 16
• 最基本的攻击是穷举攻击 穷举攻击,也就是尝试所 穷举攻击 有可能的私钥 • 数学攻击 数学攻击的实质是试图对两个素数乘积的 分解 • 计时攻击 计时攻击也可以用于对RSA算法的攻击。 计时攻击是攻击者通过监视系统解密消息 所花费的时间来确定私钥。时间攻击方式 比较独特,它是一种只用到密文的攻击方 式
2011-6-14
p)
Ch1-公钥密码技术 21
• 需要说明的是,为了避免选择密文攻击, ElGamal是对消息m的hash值进行签名,而 不是对m签名 • 与RSA方法比较,ElGamal方法具有以下优 点:(1) 系统不需要保存秘密参数,所有的 系统参数均可公开;(2) 同一个明文在不同 的时间由相同加密者加密会产生不同的密 文 • 但ElGamal方法的计算复杂度比RSA方法要 大。
2011-6-14
Ch1-公钥密码技术
24
• 椭圆曲线密码体制中使用的变元 系数 变元和系数 变元 系数均 为有限域 有限域中元素的椭圆曲线 有限域 • 密码应用中所使用的两类椭圆曲线 两类椭圆曲线是定义 两类椭圆曲线 在素域 p上的素曲线(prime curve)和在 素域Z 上的素曲线 素域 GF(2m)上构造的二元曲线 上构造的二元曲线 • 对于素域 p上的素曲线 素域Z 素域 上的素曲线,我们使用三次方 程,其中的变量和系数在集合{0,1,2,…,p-1} 上取值,运算为模p运算 • 对于在GF(2m))上的二元曲线 上的二元曲线,变量和系数 上的二元曲线 在GF(2m)内取值,且运算为GF(2m)里的运 算
2011-6-14 Ch1-公钥密码技术 22
椭圆曲线密码
• 大多数公钥密码系统都使用具有非常大数目的整 数或多项式,计算量大 • 人们发现椭圆曲线是克服此困难的一个强有力的 工具 • 椭圆曲线密码体制 椭圆曲线密码体制(Elliptic curve cryptosystem, ECC)的依据是定义在椭圆曲线点群上的离散对数 问题的难解性 • 椭圆曲线系统第一次应用于密码学上是于1985年 由Koblitz与Miller分别提出 • 两个较著名的椭圆曲线密码系统;一是利用 ElGamal的加密法,二是Menezes-Vanstone的加 密法
2011-6-14
Ch1-公钥密码技术
15
RSA算法的安全性
• RSA密码体制的安全性是基于分解大整数的困难 性假设 • RSA算法的加密函数c=me mod n是一个单向函数, 所以对于攻击者来说,试图解密密文是计算上不 可行的 • 对于接收方解密密文的陷门 陷门是分解n = pq,由于 陷门 接收方知道这个分解,他可以计算ϕ (n)=(p-1)(q1),然后用扩展欧几里德算法来计算解密私钥d。 • 对RSA算法的攻击有下面几个方法:穷举攻击, 穷举攻击, 穷举攻击 数学攻击,选择密文攻击,公共模数攻击, 数学攻击,选择密文攻击,公共模数攻击,计时 攻击
2011-6-14 Ch1-公钥密码技术 4
• 一个公钥密码体制有6个部分构成:明文,加密算 法,公钥和私钥,密文,解密算法 • 可以构成两种基本的模型:加密模型和认证模型 • 在加密模型 加密模型中,发送方用接收方的公钥作为加密 加密模型 密钥,用接收方私钥作解密密钥,由于该私钥只 有接收方拥有,因此即只有接收者才能解密密文 得到明文 • 在认证模型 认证模型中,发送方用自己的私钥对消息进行 认证模型 变换,产生签名。接收者用发送者的公钥对签名 进行验证以确定签名是否有效。只有拥有私钥的 发送者才能对消息产生有效的签名,任何人均可 以用签名人的公钥来检验该签名的有效性
2011-6-14 Ch1-公钥密码技术 14
• • • •


例4.1选择素数: p=47 和 q=71。 计算 n = pq =47×71=3337,ϕ (n)=(p–1)(q1)=46×70=3220。 选择e:使gcd(e, 3220)=1,选取e=79;决定d:de≡1 mod 3220,得d =1019 公开公钥 {79, 3337},保存私钥 {1019,47,71}; 假设消息为 M = 6882326879666683,进行分组,分组的 位数比n要小,我们选取M1 = 688,M2 = 232,M3 = 687, M4 = 966,M5 =668,M6 =003。 M1的密文为C1 = 68879 mod 3337 = 1570,继续进行类似 计算,可得到最终密文为 C =1570275620912276158 解密时计算M1 = 15701019 mod 3337 = 688,类似可以求 出其他明文。
2011-6-14 Ch1-公钥密码技术 17
ElGamal密码
• ElGamal是1985年由T. EIGamal提出的一 个著名的公钥密码算法 • 该算法既能用于数据加密也能用于数字签 名 • 其安全性是依赖于计算有限域上离散对数 这一难题
2011-6-14
Ch1-公钥密码技术
18
1. 密钥产生 • 任选一个大素数p,使得p-1有大素因子,g 是模p的一个本原根,公开p与g。 • 使用者任选一私钥x,x∈[0, p-1] • 计算公钥 y = g x mod p • 公开公钥: y, p, g • 保密私钥: x
2011-6-14 Ch1-公钥密码技术 20
4. 签名过程 • 假设对消息m签名,任选一个随机数k,使 k∈[0, p-1] • 计算
r = g k mod p
s = k − 1 ( m − x × r ) mod( p − 1)
• 签名为 {r , s} (5) 签名验证过程 y r × r s = g m (mod •
• 公钥密码技术是为了解决对称密码技术中 最难解决的两个问题而提出的 • 一是对称密码技术的密钥分配问题 • 二是对称密码不能实现数字签名 • Diffie和Hellmna于1976年在《密码学的新 方向》中首次提出了公钥密码的观点,标 志着公钥密码学研究的开始 • 1977年由Rviest,Shmair和Adlmena提出 了第一个比较完善的公钥密码算法,即 RSA算法。从那时候起,人们基于不同的 计算问题提出了大量的公钥密码算法
• 同一算法用于加密和解密,但加密和解密使用不 同的密钥。 • 两个密钥中的任何一个都可用来加密,另一个用 来解密,加密和解密次序可以交换。 • 产生一对密钥(公钥和私钥)在计算上是可行的。 • 已知公钥和明文,产生密文在计算上是容易的。 • 接收方利用私钥来解密密文在计算上是可行的。 • 仅根据密码算法和公钥来确定私钥在计算上不可 行。 • 已知公钥和密文,在不知道私钥的情况下,恢复 明文在计算上是不可行的。
2011-6-14 Ch1-公钥密码技术 13
2. 加密过程 • 加密时明文以分组为单位进行加密,每个分组m 的二进制值均小于n,对明文分组m作加密运算: c=me mod n, 且0≤m<n 3.解密过程 . 密文解密m=cd mod n 4. 签名过程 计算签名 s=md mod n 5.签名验证过程 . 签名验证m=se mod n
信息安全原理与技术
郭亚军 宋建华 李莉
清华大学出版社
第4章 公钥密码技术
• 主要知识点 主要知识点: --公钥密码体制 -- RSA密码 -- ElGamal密码 --椭圆曲线密码 --公钥分配 --利用公钥密码分配对称密钥 -- Diffie-Hellman 密钥交换
2011-6-14 Ch1-公钥密码技术 2
2011-6-14 Ch1-公钥密码技术 23
椭圆曲线的定义
• 在实数系中,椭圆曲线可定义成所有满足方程E: y2 = x3 + ax + b的点(x, y)所构成的集合 • 若x3 + ax + b没有重复的因式或4a3+27b2 ≠0,则 E: y2 = x3 + ax + b能定义成为一个群 • 椭圆曲线是连续的,并不适合用于加密 • 必须把椭圆曲线变成离散的点 离散的点,即将椭圆曲线定 离散的点 义在有限域上 • 密码学中关心的是有限域上的椭圆曲线 有限域上的椭圆曲线
2011-6-14 Ch1-公钥密码技术 10
公钥密码分析
• 和对称密码体制一样,如果密钥太短,公钥密码 体制也易受到穷举搜索攻击 • 但公钥密码体制所使用的可逆函数的计算复杂性 与密钥长度是比线性函数增大更快函数。密钥长 度太大又会使得加密和解密运算太慢而不实用 • 目前提出的公钥密码体制的密钥长度已经足够抵 抗穷举攻击,但也使它加密和解密速度变慢,因 此公钥密码体制一般用于加密小数据,如会话钥, 目前主要用于密钥管理和数字签字。 • 对公钥密码算法的第二种攻击是从公钥计算出私 钥。目前为止,还没有在数学上证明这个方面是 不可行的。
2011-6-14 Ch1-公钥密码技术 11
RSA密码
• RSA算法是1977年由Rivest、Shamir、 Adleman提出的非常著名的公钥密码算法 • 它是基于大合数的质因子分解问题的困难 性 • RSA算法是一种分组密码,明文和密文是0 到n-1之间的整数,通常n的大小为1024位 二进制数或309位十进制数.
2011-6-14
Ch1-公钥密码技术
19
2. 加密过程 • 对于明文m,选取一个r,r∈[0, p-1] c1 = g r mod p • 计算
c2 = m × y r mod p
• 则密文为 { c 1 , c 2 } 3. 解密过程 w = ( c1 x ) − 1 mod p • 先计算 • 再计算出明文 m = c2 × w mod p
2011-6-14 Ch1-公钥密码技术 5
攻击者 发送方A 消 息 法 密 算 C PUB M 加 法 密 算 M PRB
密钥源
接收方B 解 息 消
图4.1 公钥加密模型
2011-6-14
Ch1-公钥密码技术
6
攻击者 消 息 法 密 算 C PRA
密钥源
发送方A 加 法 密 算 解
接收方B 消 息 M PUA
2011-6-14 Ch1-公钥密码技术 9
• 上面要求的实质是要找一个单向陷门函数 单向陷门函数 • 单向函数指计算函数值是容易的,而计算函数的 单向函数 逆是不可行的 • 陷门单向函数 陷门单向函数则存在一个附加信息,当不知道该 附加信息时,从函数逆是困难的,但当知道该附 加信息时,求函ቤተ መጻሕፍቲ ባይዱ逆就变得容易了 • 陷门单向函数在附加信息未知时是单向函数,而 当附加信息已知时,就不再是单向函数了 • 通常把附加信息称为陷门信息 陷门信息,陷门信息作为私 陷门信息 钥,公钥密码体制就是基于这一原理而设计的 • 其安全强度取决于它所依据的问题的计算复杂度。
2011-6-14 Ch1-公钥密码技术 3
公钥密码体制
• 公钥密码体制 公钥密码体制(Public-Key Cryptosystem)也称 非对称密码体制 体制(Asymmetric Cryptosystem)或者 非对称密码体制 双钥密码体制(Two-Key Cryptosystem) 双钥密码体制 • 公钥密码算法是基于数学函数(如单向陷门函数 数学函数( 数学函数 如单向陷门函数) 而不是基于代换和置换 • 公钥密码是非对称 非对称的,它使用两个独立的密钥, 非对称 即公钥和私钥,任何一个都可以用来加密,另一 个用来解密 • 公钥可以被任何人知道,用于加密消息以及验证 签名;私钥仅仅自己知道的,用于解密消息和签 名 • 加密和解密会使用两把不同的密钥,因此称为非 对称
2011-6-14
Ch1-公钥密码技术
12
算法描述
1. 密钥的产生 • 随机选择两个大素数 p, q • 计算 n=p×q • 计算秘密的欧拉函数 ϕ(n)=(p-1)(q-1) • 选择 e使得1<e<ϕ(n),且gcd(e, ϕ(n))=1 • 解下列方程求出 d ed ≡1 mod ϕ(n), 且 0≤d≤n • 公开公钥: PU={e, N} • 保存私钥:PR={d, p, q}
M
图4.2 公钥认证模型
2011-6-14
Ch1-公钥密码技术
7
发送方A 消 息 密 算 M 法 X 法 算 算 C PUB PRA
密钥源
接收方B 加 解 密 密 密 法 算 X PRB
密钥源

解 息 法 M

PUA
图4.3 公钥密码体制的保密和认证
2011-6-14
Ch1-公钥密码技术
8
公钥密码系统满足的要求
相关文档
最新文档