公钥密码技术理论及应用介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢RSA是一种分组密码,其理论基础是一种特殊的可逆模幂运算 ,其安全性基于分解大整数的困难性;既可用于加密,又可用于 数字签名,已得到广泛采用;
➢RSA已被许多标准化组织(如ISO、ITU、IETF和SWIFT等)接纳 ;RSA-155(512 bit), RSA-140于1999年分别被分解;
Euler 函数
2. 数字签名问题。信息的电子化对密码学提出了新的要求:电子 报文和电子文件需要一种与书面材料中使用的签名等效的认证 手段。
公钥密码的初始化阶段
加密通信阶段
第三章 公钥密码技术 2
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
计算复杂度与公钥密码
• 计算复杂度 • P问题和NP完全问题 • 密码与计算复杂度的关系
单向陷门函数
一个单向陷门函数 f (X ) 要满足下面的条件:它将一
个定义域映射到一个值域,使得每一个函数值都有一个
唯一的原象;同时,函数值计算很容易而逆计算是困难
的,但是如果知道某个陷门 t 后,逆计算是容易的。即
Y f (X)
➢ 因此,公钥 KU={e,n},私钥 KR={d,n},公钥算法必须满足: 1)有可 能找到 e、d、n的值,使得对所有M<n 有Med =
mod n; 2)对于所有M<n,要计算Me和Cd相对简单; 3)给定e和n时,判断出d是不可行的;
RSA算法的描述
➢ 如何找到: M edwk.baidu.com M mod n ?
参考欧拉定理
M k (n)1 M k ( p1)(q1)1 M mod n
可以得到:ed= k×φ(n)+1
也就是说: ed 1mod(n) d e1 mod(n)
RSA算法的实现
➢ 实现的步骤如下:Bob为实现者 (1) Bob寻找出两个大素数p和q (2) Bob计算出n=p×q 和φ(n)=(p-1)(q-1) (3) Bob选择一个随机数e (0<e< φ(n)),满足(e,φ(n))=1 (4) Bob使用辗转相除法计算d=e-1modφ(n) (5) Bob在目录中公开n和e作为公钥
第三章 公钥密码技术
第三章 公钥密码技术 1
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
提出公钥密码的动因
1. 密钥分配问题。使用对称加密算法的通信双方要进行加密通信 时,需要通过秘密的安全信道协商加密密钥,而这种安全信道 如何实现呢?机械阶段
➢ 欧拉函数 (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 函数举例
公钥算法的种类很多,具有代表性的三种密码: ❖ 基 于 离 散 对 数 难 题 ( DLP) 的 算 法 体 制 , 例 如 Diffie-
Hellman 密钥交换算法; ❖ 基于整数分解难题(IFP)的算法体制,例如RSA算法;
❖ 基于椭圆曲线离散对数难题(ECDLP)的算法体制;
RSA算法
➢麻省理工学院的Ron Rivest, Adi Shamir和Len Adleman于 1977年研制,并于1978年首次发表;
加密:(19)5 mod 119 = 66 解密:(66)77 mod 119 = 19
RSA算法的安全性分析
➢ 密码分析者攻击RSA体制的关键在于分解n,若分解成功使n=p× 则可以算出φ(n)=(p-1)×(q-1),然后由公开的e,解出秘密的d;
➢ 若使RSA安全,p与q必为足够大的素数,使分析者没有办法在 多项式时间内将n分解出来,建议选择p和q大约是100位的十进制 素数,模n的长度要求至少是512比特;
容易
X f 1(Y )
困难
知道陷门 t 后, X ft1(Y )
容易
单向陷门函数的数学问题
1. 分解整数问题。 2. 离散对数问题。 3. RSA问题。
第三章 公钥密码技术 3
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
公开密钥算法
设p=3, q=5, 那么 n=p×q=15; 1)小于15而且与15互素的正整数是: {1,2,4,7,8,11,13,14}
因此, φ(15)=8;
2)φ(15)=(3-1)*(5-1)=8
欧拉定理
➢ 对于任何互素的整数a和n, a(n)(m 1od n), 或者写作 a(na)(1mod n)
➢ 密码分析者攻击RSA体制的关键点在于如何分解n。若分解成 使n=p×q,则可以算出φ(n)=(p-1)(q-1),然后由公开的e 解出秘密的d
RSA算法举例
➢ 设 p=7, q=17, n=7*17=119; 参数T={n=119}; ➢ φ(n)=(7-1)(17-1)=96; ➢ 选择e=5, gcd(5,96)=1; ➢ 计算d, d*e =1 mod 96; d=77; 因为77×5=385=4×96+1 设:明文m=19
RSA算法的安全性分析
➢ EDI攻击标准使用的RSA算法中规定n的长度为512至1024比 特位之间,但必须是128的倍数;
➢ 国际数字签名标准ISO/IEC 9796中规定n的长度位512比特位 ➢ 为了提高加密速度,通常取e为特定的小整数,如EDI国际标准
中规定 e=216+1;ISO/IEC9796中甚至允许取e=3;这时加 密速度一般比解密速度快10倍以上;
➢ 给 定 两 个 素 数 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
➢RSA已被许多标准化组织(如ISO、ITU、IETF和SWIFT等)接纳 ;RSA-155(512 bit), RSA-140于1999年分别被分解;
Euler 函数
2. 数字签名问题。信息的电子化对密码学提出了新的要求:电子 报文和电子文件需要一种与书面材料中使用的签名等效的认证 手段。
公钥密码的初始化阶段
加密通信阶段
第三章 公钥密码技术 2
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
计算复杂度与公钥密码
• 计算复杂度 • P问题和NP完全问题 • 密码与计算复杂度的关系
单向陷门函数
一个单向陷门函数 f (X ) 要满足下面的条件:它将一
个定义域映射到一个值域,使得每一个函数值都有一个
唯一的原象;同时,函数值计算很容易而逆计算是困难
的,但是如果知道某个陷门 t 后,逆计算是容易的。即
Y f (X)
➢ 因此,公钥 KU={e,n},私钥 KR={d,n},公钥算法必须满足: 1)有可 能找到 e、d、n的值,使得对所有M<n 有Med =
mod n; 2)对于所有M<n,要计算Me和Cd相对简单; 3)给定e和n时,判断出d是不可行的;
RSA算法的描述
➢ 如何找到: M edwk.baidu.com M mod n ?
参考欧拉定理
M k (n)1 M k ( p1)(q1)1 M mod n
可以得到:ed= k×φ(n)+1
也就是说: ed 1mod(n) d e1 mod(n)
RSA算法的实现
➢ 实现的步骤如下:Bob为实现者 (1) Bob寻找出两个大素数p和q (2) Bob计算出n=p×q 和φ(n)=(p-1)(q-1) (3) Bob选择一个随机数e (0<e< φ(n)),满足(e,φ(n))=1 (4) Bob使用辗转相除法计算d=e-1modφ(n) (5) Bob在目录中公开n和e作为公钥
第三章 公钥密码技术
第三章 公钥密码技术 1
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
提出公钥密码的动因
1. 密钥分配问题。使用对称加密算法的通信双方要进行加密通信 时,需要通过秘密的安全信道协商加密密钥,而这种安全信道 如何实现呢?机械阶段
➢ 欧拉函数 (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 函数举例
公钥算法的种类很多,具有代表性的三种密码: ❖ 基 于 离 散 对 数 难 题 ( DLP) 的 算 法 体 制 , 例 如 Diffie-
Hellman 密钥交换算法; ❖ 基于整数分解难题(IFP)的算法体制,例如RSA算法;
❖ 基于椭圆曲线离散对数难题(ECDLP)的算法体制;
RSA算法
➢麻省理工学院的Ron Rivest, Adi Shamir和Len Adleman于 1977年研制,并于1978年首次发表;
加密:(19)5 mod 119 = 66 解密:(66)77 mod 119 = 19
RSA算法的安全性分析
➢ 密码分析者攻击RSA体制的关键在于分解n,若分解成功使n=p× 则可以算出φ(n)=(p-1)×(q-1),然后由公开的e,解出秘密的d;
➢ 若使RSA安全,p与q必为足够大的素数,使分析者没有办法在 多项式时间内将n分解出来,建议选择p和q大约是100位的十进制 素数,模n的长度要求至少是512比特;
容易
X f 1(Y )
困难
知道陷门 t 后, X ft1(Y )
容易
单向陷门函数的数学问题
1. 分解整数问题。 2. 离散对数问题。 3. RSA问题。
第三章 公钥密码技术 3
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
公开密钥算法
设p=3, q=5, 那么 n=p×q=15; 1)小于15而且与15互素的正整数是: {1,2,4,7,8,11,13,14}
因此, φ(15)=8;
2)φ(15)=(3-1)*(5-1)=8
欧拉定理
➢ 对于任何互素的整数a和n, a(n)(m 1od n), 或者写作 a(na)(1mod n)
➢ 密码分析者攻击RSA体制的关键点在于如何分解n。若分解成 使n=p×q,则可以算出φ(n)=(p-1)(q-1),然后由公开的e 解出秘密的d
RSA算法举例
➢ 设 p=7, q=17, n=7*17=119; 参数T={n=119}; ➢ φ(n)=(7-1)(17-1)=96; ➢ 选择e=5, gcd(5,96)=1; ➢ 计算d, d*e =1 mod 96; d=77; 因为77×5=385=4×96+1 设:明文m=19
RSA算法的安全性分析
➢ EDI攻击标准使用的RSA算法中规定n的长度为512至1024比 特位之间,但必须是128的倍数;
➢ 国际数字签名标准ISO/IEC 9796中规定n的长度位512比特位 ➢ 为了提高加密速度,通常取e为特定的小整数,如EDI国际标准
中规定 e=216+1;ISO/IEC9796中甚至允许取e=3;这时加 密速度一般比解密速度快10倍以上;
➢ 给 定 两 个 素 数 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