现代密码学理论与实践 第9章 公钥密码学与RSA

Slides:



Advertisements
Similar presentations
苗付友 年 12 月.
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
人教版五年级数学上册. 因数 因数 5555 积 75 结论:一个因数不变,另一个因数扩大 (或缩小) 10 倍、 100 倍、 1000 倍,积 也扩大(或缩小) 10 倍、 100 倍、 1000 倍。 仔细观察,看能得出什么结论?
第八讲 RSA 和 Rabin 算法 ( 下 ). 本讲提要  RSA 加密的安全 ( 续 )  RSA 加密实践  Rabin 加密算法  Rabin 加密的执行  Rabin 加密的安全  公钥加密的总结.
3.1 信息加密技术概述 3.2 密码技术 3.3 密钥管理 3.4 网络加密技术 习题与思考题 参考文献 实训指南
学习情境4-2 网上交易安全问题 ——数据加密技术
全国高等职业教育计算机类规划教材 实例与实训教程系列 网络安全应用技术 密码技术.
《现代密码学》第1章 现代密码学概论.
質數的應用 – RSA加密演算法 國立中央大學 資工系 江振瑞.
第四章 公钥密码 本科生必修课《现代密码学》 主讲教师:董庆宽 副教授 研究方向:密码学与信息安全
网络安全协议 Network Security Protocols
4量子通信与加密.
引入 在开放的、非安全的网络上如何安全的传送数据? 我怎么确认你发给我的文件没被别人篡改过?.
计算机应用专业系列教材 计算机网络.
李开祥 郭雪丽 马高峰 杨洋 孙凤英 陈静 Copyright © 2007 西安交通大学电子商务系
第十六章 计算机密码学.
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
2-7、函数的微分 教学要求 教学要点.
公開鑰匙加密演算法 密碼學大革命 public key所想要解決的問題 public key密碼系統特性
方贤进 利用重合指数法破解Virginia加密 方贤进
密碼學簡介與簡單生活應用 Introduction to Cryptography & Simple Applications in Life 2010 Spring ADSP 05/07.
现代密码学理论与实践 第10章 密钥管理和其他公钥密码体制
密码学导论˙第7章 公开密钥密码 8学时 李卫海.
密码学基础(1) 胡建斌 北京大学网络与信息安全研究室
二、現代的加解密法:RSA 非對稱式密碼系統的一種。
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
第十讲公钥加密算法 (续) 公钥密码(续) RSA \ ElGamal algorithms.
第三章 公钥基础设施PKI 本章学习重点掌握内容: 密码学基本术语 密码体制分类 私钥密码体制的主要特点 公钥密码体制的主要特点
网络与系统安全实验 一 传统加密技术 古典密码技术.
第二章 矩阵(matrix) 第8次课.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
现代密码学理论与实践 第15章 电子邮件的安全 Fourth Edition by William Stallings
基礎密碼學 非對稱式金鑰加密法 樹德科技大學 資訊工程系 林峻立 助理教授.
第五章 数字签名.
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
密码学基础(2) 胡建斌 北京大学网络与信息安全研究室
3.4 概率公钥系统 虽然可以通过在明文后面附上随机生成指定长度的字符串挫败上述攻击,但是要付出时空代价。
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第 5 章 加密与认证技术 本章学习目标: 掌握加密通信的系统模型 了解密码学知识及常见的密码体制 了解三种网络加密方法的特点
公開金鑰密碼系統 (Public-Key Cryptosystems)
第二章 经典密码学 加密通信的模型 Oscar x x y Alice 加密机 解密机 Bob k 安全信道 密钥源.
数据加密与鉴别.
第3章 密钥分配与管理.
课题:1.5 同底数幂的除法.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
公钥密码学与RSA.
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
IT 安全 第 11节 加密控制.
應用加密技術 A 譚惠心 指導教授:梁明章教授.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
现代密码学理论与实践 第11章 消息认证和散列函数
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
计算机问题求解 – 论题4-4 - 密码算法 2017年04月05日.
4) 若A可逆,则 也可逆, 证明: 所以.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第3章 密码技术 教学提示:上一章我们已经学习了协议安全的有关知识,本章将介绍与密码算法相关的一些知识,包括其基本概念和简单的实现方法。
RSA算法 夏之冰雪.
2.2矩阵的代数运算.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
§2 方阵的特征值与特征向量.
_14RSA加密的基本原理 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
第9章 基于身份的公钥密码体制.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
第十七讲 密码执行(1).
第十二讲 密码执行(上).
§4.5 最大公因式的矩阵求法( Ⅱ ).
第二次课后作业答案 函数式编程和逻辑式编程
App 加密算法建议 Possible lab 土豪军 小陈.
Presentation transcript:

现代密码学理论与实践 第9章 公钥密码学与RSA Fourth Edition by William Stallings Slides by 杨寿保 syang@ustc.edu.cn http://staff.ustc.edu.cn/~syang 2012年10月 2019/1/16 现代密码学理论与实践-09

本章要点 非对称密码是一种密码体制,其加密算法和解密算法使用不同的密钥,一个是公钥,一个是私钥。非对称密码也称为公钥密码。 非对称密码用两个密钥中的一个以及加密算法将明文转换为密文,用另一个密钥以及解密算法从密文恢复出明文。 非对称密码可以用来保密、认证或者两者兼而有之。 应用最广泛的公钥密码体制是RSA,破解RSA的困难,是基于分解大合数素因子的困难。 2019/1/16 现代密码学理论与实践-09

9.1 公开密钥密码体制的基本原理 对称密码体制的问题 非对称密码体制的基本特点 加密能力与解密能力是捆绑在一起的 密钥更换、传递和交换需要可靠信道,密钥分发困难 如有N用户,则需要C=N(N-1)/2个密钥,n=1000时,C(1000, 2)≈500000, 密钥管理困难 无法满足不相识的人之间通信的保密要求 不能实现数字签名 非对称密码体制的基本特点 加密能力与解密能力是分开的 密钥分发简单 需要保存的密钥量大大减少,N个用户只需要N个密钥 可满足不相识的人之间保密通信 可以实现数字签名 2019/1/16 现代密码学理论与实践-09

公开密钥密码体制 公钥算法依赖于一个加密密钥和一个与之相关的不同的解密密钥,算法有如下特点: 公钥密码体制的组成 仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的 两个密钥的任何一个都可用来加密,另一个用来解密 公钥密码体制的组成 明文:算法的输入,可读信息或数据 加密算法:对明文进行各种转换 公钥和私钥:算法的输入,分别用于加密和解密 密文:算法的输出,依赖于明文和密钥 解密算法:根据密文和密钥,还原明文 2019/1/16 现代密码学理论与实践-09

公钥算法的主要步骤 每个用户产生密钥,用来加密和解密消息 每个用户将其中一个密钥(公钥)存于公开的寄存器或其他可访问的文件中,另一密钥私有,每个用户可以拥有若干其他用户的公钥 若Bob要发消息给Alice,则要用Alice的公钥对消息加密 Alice收到消息后,用其私钥对消息解密,由于只有Alice知道其自身的私钥,所以其他的接收者均不能解密消息 需要认证时示证方用自己的私钥加密消息(签名) 验证方用示证方的公钥解密消息(验证),如果结果证实公钥与示证方的私钥相吻合,则可以确认示证方确为合法的用户(认证) 加密和认证可以结合起来,同时实现保密性和认证 2019/1/16 现代密码学理论与实践-09

公开密钥加密过程 2019/1/16 现代密码学理论与实践-09

公开密钥认证过程 2019/1/16 现代密码学理论与实践-09

常规和公开密钥加密的重要特征 2019/1/16 现代密码学理论与实践-09

公开密钥密码系统:保密性 C = KUb(M) M = KRb(C) 2019/1/16 现代密码学理论与实践-09

公开密钥密码系统:认证 S = KRa(M) M = KUa(S) 2019/1/16 现代密码学理论与实践-09

公开密钥密码系统:保密和认证 C = KRa(KUb(M)) M = KRb(KUa(C)) 2019/1/16 现代密码学理论与实践-09

公钥密码体制的应用 加密/解密:发送方用接收方的公钥对消息加密 数字签名:发送方用其私钥对消息签名,可以对整体消息签名或对消息的摘要签名 密钥交换:通信双方交换会话密钥 2019/1/16 现代密码学理论与实践-09

对公开密钥密码编码系统的要求 产生一对密钥(公钥ke和私钥kd)在计算上是容易的 不难计算C=E(ke, m)和m=D(kd, C) 不知道kd,即使知道ke, E, D及C,计算m也不可行 对明文m, E(ke, m)有定义,且D(kd, E(ke, m))=m 对密文C, D(kd, C)有定义,且E(ke, D(kd, C))=C 加密变换和解密变换可以互换顺序, 即D(E(m))=E(D(m)) 1976年,Whitfield Diffie和Martin Hellman提出这样的设想:每个用户A有一加密密钥ka,不同于解密密钥ka’,可将加密密钥ka公开,ka’保密,要求ka的公开不影响ka’的安全。若B要向A秘密发送明文m,可查A的公开密钥ka,加密得密文C=Eka(m) A收到C后用只有A才拥有的解密密钥ka’对C进行解密得m=Dka’(C). 实用方案的发展依赖于单向陷井函数 2019/1/16 现代密码学理论与实践-09

Whitfield Diffie and Martin Hellman Dr. Diffie is currently a Distinguished Engineer at Sun Microsystems and Professor Hellman is a Professor Emeritus of Electrical Engineering at Stanford University British Intelligent agency also discovered public key cryptography in early 1970’s, due to confidential reason, their work was no known to public until 1990’s. WHITFIELD DIFFIE MARTIN HELLMAN 2019/1/16 现代密码学理论与实践-09

公钥密码的分析 公钥密码易受穷举攻击,解决方法是使用长密钥;同时为了便于实现加密和解密,又希望密钥足够短,目前仅限于密钥管理和签名。 找出一种从给定的公钥计算出私钥是第二种攻击方法,尚未在数学上证明对一特定公钥算法这种攻击是不可行的,因此包括RSA在内的任何算法都是值得怀疑的。 穷举消息攻击是第三种攻击形式,攻击者用公钥对所有可能的消息加密,并与传送的密文匹配,从而解密任何消息;抵抗的方法是在要发送的消息后附加随机数。 2019/1/16 现代密码学理论与实践-09

9.2 RSA算法 概述 1977年,Rivest、Shamir、Adleman提出的非对称密码体制,是基于大合数的素因子分解问题的困难性。1994年4月一个小组通过Internet合作,8个月时间成功分解129位的数,大约428比特;1999年分解155位合数,最新的记录是2005年5月分解200位十进制数。 RSA专利于2000年9月20日到期。 2019/1/16 现代密码学理论与实践-09

R-S-A Ron Rivest, Adi Shamir, Len Adleman Rivest: professor in MIT Shamir: a founder of a security company in Isreal Adleman: a professor in USC (Left to Right: Ron Rivest, Adi Shamir, Len Adleman) 2019/1/16 现代密码学理论与实践-09

RSA密码体制基本原理 算法流程 随机选择两个秘密大素数p和q; 计算公开模数n=p*q; 选择一个与φ(n)互素的数,作为e或d; 用Euclid算法计算模φ(n)的乘法逆元素,即根据 ed mod φ(n)=1, 求d或e; 加密:C = Me mod n 解密:M= Cd mod n = (Me mod n)d mod n = M 这里,φ(n)为欧拉商数, 即集合(1, 2, ..., n-1)中与n互素的数的个数。 2019/1/16 现代密码学理论与实践-09

2019/1/16 现代密码学理论与实践-09

2019/1/16 现代密码学理论与实践-09

一个例子 p=17,q=11,n=pq=17x11=187, φ(n)=(p-1)(q-1) =16x10=160 选择e=7, gcd(7,160)=1, 23x7=161, 所以d=23 公钥KU={7,187}, 私钥KR={23,187}, M=88 加密计算C=887 mod 187 887 mod 187 =[(884mod187)x882mod187)x881mod187)]mod187 881mod187=88 882mod187=7744mod187=77 884mod187=59969536mod187=132 887mod187=(88x77x132)mod187=894432mod187=11 解密计算M=1123 mod 187 = 88 2019/1/16 现代密码学理论与实践-09

RSA密码体制基本原理 RSA算法满足公开密钥加密的要求, 必须符合下列条件: 几个关系 有可能找到e, d, n的值, 使得对所有M<n有 Med mod n = M 对于所有M<n的值, 要计算Me和Cd是相对容易的 在给定e和n时, 计算d是不可行的 几个关系 φ(n) = φ(pq)=φ(p)φ(q)=(p-1)(q-1), p,q 是素数 ed mod φ(n)=1, ed = kφ(n)+1, 即ed mod φ(n) =1, d=e-1 mod φ(n) 2019/1/16 现代密码学理论与实践-09

RSA密码体制基本原理 定理:给定ed mod φ(n) =1, m∈[0, n-1], gcd(m, n)=1, 则: (me mod n )d mod n = med mod n = m 证明:∵ ed mod φ(n) = 1 ∴ ed = kφ(n)+1,对某些整数k ∴ med mod n = mkφ(n)+1 mod n = m(mkφ(n) mod n) mod n ∵mkφ(n) mod n = (mφ(n) mod n)k mod n = 1k mod n = 1 ∴med mod n = (m* 1) mod n = m 2019/1/16 现代密码学理论与实践-09

RSA密码体制基本原理 RSA方案概述 素数 p, q, 私有,选择 n=pq, 公开,计算出 e, gcd(φ(n), e) = 1; 1 < e < φ(n), 公开,选择 d=e-1 mod φ(n), 私有,计算出 RSA实现方面的考虑 加密与解密 模运算特性之一 [(a mod n) x (b mod n)] mod n = (a x b) mod n 指数运算的效率问题 2019/1/16 现代密码学理论与实践-09

计算ab mod n的算法和快速取模指数算法 2019/1/16 现代密码学理论与实践-09

密钥的产生和检验素数 确定两个素数p和q,选择e或d并计算另外一个 检验素数 例:p = 5, q = 7, n = 35, φ(n)=24 随机选一个整数a < n 完成随机素数性检验,如果n没有通过检验,则另选n 如果n通过了足够多次的检验,则接受n,否则另选 例:p = 5, q = 7, n = 35, φ(n)=24 选d = 11,则e = inv(11, 24) = 11,M = 2 C = me mod n = 211 mod 35 = 18 M = Cd mod n = 1811 mod 35 = 2 2019/1/16 现代密码学理论与实践-09

RSA的安全性 RSA的安全性 有三种可能的对RSA的攻击方法 强行攻击:尝试所有可能的密钥 数学攻击:对两个素数乘积的因子分解(FAC问题) 计时攻击:依赖于解密算法的运行时间 选择密文攻击:利用了RSA算法的性质 RSA的安全性问题依赖于大合数的素因子分解,即factorization problem (FAC),FAC的计算复杂性为T=exp((ln(n)ln(ln(n)))1/2),同DLP问题。 2019/1/16 现代密码学理论与实践-09

p和q应满足下列约束条件: P和q的长度应仅相差几位,p和q都应约在1075到10100之间 (p-1)和(q-1)都应有一个大的素因子 GCD(p-1, q-1)应该较小 另外,已经证明,若e<n且d<n1/4,则d很容易确定 2019/1/16 现代密码学理论与实践-09

2019/1/16 现代密码学理论与实践-09

针对RSA的计时攻击 计时攻击 可能的解决办法 类似通过观察他人转动保险柜拨号盘的时间长短来猜测密码 不变的幂运行时间,可能会降低性能 在求幂运算中加入随机延时 隐蔽:在执行幂运算之前先将密文乘上一个随机数 RSA数据安全算法,用私钥实现操作M=Cd mod n的过程如下 产生0-n-1之间的秘密随机数r 计算C’=C(re) mod n, e是公开的指数 计算M’=(C’)d mod n 计算M=M’r -1 mod n, 其中r -1是r模n的乘法逆元,根据 redmod n=r,可以证明结论是正确的 2019/1/16 现代密码学理论与实践-09

几种不同复杂性的算法的代价 2019/1/16 现代密码学理论与实践-09

选择密文攻击和最佳非对称加密填充 基本的RSA算法容易受选择密文攻击(CCA) 利用CCA攻击RSA的一个简单例子利用了RSA如下的性质: E(PU, M1) x E(PU, M2)=E(PU, [M1 x M2]) 2019/1/16 现代密码学理论与实践-09

CCA攻击RSA 利用CCA攻击,可以如下方式解密C=Me mod n 注意: 因此,Y = (2M) mod n,由此可以得到M 计算 X=(C x 2e) mod n 将X作为选择明文提交,并收到Y=Xd mod n 注意: X = (C mod n) x (2e mod n) = (Me mod n) x (2e mod n) = (2M)e mod n 因此,Y = (2M) mod n,由此可以得到M 为防止这种简单攻击,RSA在加密之前对明文进行随机填充 2019/1/16 现代密码学理论与实践-09

第9章习题 第四版: 2, 3, 4, 11, 15, 16 Due day: Nov. 6, 2012 2019/1/16 现代密码学理论与实践-09