第四章 公钥密码体制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
基本思想
数论简介 RSA算法 椭圆曲线密码体制
2
3 4
4.1基本思想
1.背景
对称密钥编码所面临的难题
密钥分配:通信密钥太多,管理和分发困难。 数字签名和认证。
密码体制上的突破
Diffie & Hellman, “New Direction in Cryptography”, 1976。 首次公开提出了“公开密钥密码编码学”的概念。
gcd( a, b) gcd(b, a modb) 据: 。
描述如下:
a, b Z , (1)输入 a 和 b ,其中, a, b 0 ,a b ;
(2)如果 b 0 则依次完成: r a modb, a b, b r ,否则返回 a; (3)输出gcd(a, b) r 。
{
q←r1/r2; r ←r1-q*r2; r1 ←r2;r2 ←r; t ←t1-q*t2; t1 ←t2;t2 ←t;
} 如果(r1=1),那么b-1 ←t1
用扩展的欧几里德算法求乘法逆元
gcd(11111,12345)
12345=1*11111+1234 11111=9*1234+5 1234=246*5+4 5=1*4+1 4=4*1+0
78 ≡49 ≡11mod 19
则a+b≡a1+b1(mod n),ab≡a1b1(mod n)
Fermat定理
若p素数,a是整数且不能被p整除,则: ap-1 1 mod p 推论: p素数,a是任意整数,则: ap a mod p 例:计算718 mod 19
a=7, p=19
72=49≡11mod19
74 ≡121 ≡7mod 19
这是一个与对称密码编码截然不同的方案。
提出公开密钥的理论时,其实用性并没有又得到证明:
当时还未发现满足公开密钥编码理论的算法; 直到 1978 年,RSA 算法的提出。
2.基本特征
加密和解密使用两个不同的密钥
公钥PK:公开,用于加密,私钥SK:保密,用作解密
密钥
一个密钥加密的数据只能用另一个密钥解密
被称为单向函数。 f ( x)
常用单项函数
大整数分解(简称IFP); 离散对数问题(简称DLP);
多项式求根
菲-赫尔曼问题 二次剩余问题
单向陷门函数
对于一个单向函数 f ( x) ,如果其逆函数 f 1 ( y) 在已知某些
辅助信息的情况下容易求解得出,则称该单向函数 f ( x) 为
a f( n ) 1 mod n
等价形式:
a
f ( n) +1
a mod n
欧拉定理推论: 有两个素数 p 和 q, 令 n = pq , 对任意整数 t 和a (0<a<n), 有下列等式成立:
a tφ(n) +1 = a mod n
其中:φ(n) = (p-1)(q-1)。
4.同余式性质
(1)a≡b(mod n) iff a mod n=b mod n。 (2)反身性:a≡a(mod n)。 (3)对称性:如果a≡b(mod n),则b≡a(mod n)。
(4)传递性:如果a≡b(mod n),b≡c(mod n),
则a≡c(mod n)。
(5)如果a ≡a1(mod n),b=b1(mod n),
同余式 :设n是一个正整数,a, b Z 如果 a mod n b mod n, 则称a和b模n同余,记作:a b(modn) ,称整数n为同余模。
加法逆元:设a Z n ,如果存在 x Z n 满足 x a 0(modn),则称 x是a的模n加法逆元。
乘法逆元:设 a Z n ,如果存在 x Z n 满足 ax 1(modn) ,则称
定义:如果整数p(p>1)只能被1或者它本身整除,而不能被其他整
数整除,则其为素数,否则为合数。 素数定理:
设 ( x)是小于x的素数的个数,则 x ( x) ( x) , 且当x , 1 x ln x ln x
在各种应用中,我们需要大的素数 ,如100位的素数
素数是构成整数的因子,每一个整数都是由一个或几个素数的不
公钥密码学要解决的问题
公钥密码学的概念是为了解决传统密码中最 困难的两个问题而提出的:
(1)密钥分配问题 (2)数字签名问题
4.公钥密码算法基础
单向函数
对于一个函数
f ( x,如果对于其定义域上的任意 ) x, f ( x)都容易计算,同时,
1 都是不可行的,则 f ( y)
对于其值域中几乎所有的取值 y ,计算其逆函数 函数
时间复杂度为 O((lgn) )。
2
用欧几里德算法求最大公约数。
求:gcd(482,1180)
1180=2*482+216
482=2*216+50
216=4*50+16
50=3*16+2 16=8*2+0
所以gcd(482,1180)=2
扩展的欧几里德算法
扩展欧几里德算法是用来在已知a, b。求解一组p,q,使得
单向陷门函数。
构造公钥密码系统的关键是如何在求解某个单向函数的逆函 数的NP完全问题中设置合理的“陷门”。
单向函数举例
例1:y=anxn+an-1xn-1+…+a1x+a0 例2:设n是两个大素数p和q的乘积,b是一个正整数,对
x∈Zn ,令 f(x)≡xb(mod n),即 f(x) 等于被n除所得的余数,
缺点:公共密钥系统的主要弱点是加密和解密速度慢。
实际应用中的加密方式
混合加密技术
对称密码体制:密钥分发困难
公钥体制:加解密效率低
将对称加密算法的数据处理速度和公钥算法对密钥的保
密功能相结合
利用对称加密算法加密传输数据
利用非对称加密算法交换会话密钥
实际应用中的加密方式
举例:假设Alice与Bob进行保密通信,过程如下:
数为k=2,求明文m=30 所对应的密文 (2) 如果用相同的k=2 加密另外一个明文m,加密后的密文为 C= (49,13),求m 4、椭圆曲线y2mod p=(x3+ax+b)mod p,其中a=1, b=1, p=23。取 曲线上的P=(3,10), Q=(9,7),分别计算P+Q和2P
主要内容
密 文 传 输 因特网
Alice Bob
Bob的公钥
Bob私钥
会话密钥
对称密码和公钥密码
对称密码
一般要求 ① 加密和解密使用相同的密钥 ② 收发双方必须共享密钥
公钥密码
一般要求 ① 同一算法用于加密和解密,但加 密和解密使用不同密钥 ② 发送方拥有加密或解密密钥,而 接收方拥有另一密钥
安全性要求
① 密钥必须是保密的 ② 若没有其他信息,则解密消息是 不 可能或至少是不可行的 ③ 知道算法和若干密文不足以确定 密钥
安全性要求
① 两个密钥之一必须是保密的 ② 若没有其他信息,则解密消息是 不可能或至少是不可行的 ③ 知道算法和其中一个密钥以及若 密文干不足以确定另一密钥
有关公钥密码的几种常见误解
从密码分析的角度看,公钥密码比传统密码更安全。 公钥密码是一种通用的方法,传统密码已经过时。 传统密码中与密钥分配中心的握手是一件异常麻烦的事情, 与之相比,用公钥密码实现密钥分配则非常简单。
p* a+q * b = Gcd(a, b)。
原理:
Gcd(a, b) = Gcd(b,a%b)
所以p * a+q * b = Gcd(a, b) = Gcd(b,a%b) = p * b + q * a % b
= p * b +q * (a – a / b * b) = q * a + (p – a / b*q) * b
x是a的模n乘法逆元,记为 a-1 (mod n)。
整除:设整数a和b,如果存在整数k,使b=ak,则说b能被a整
除,记作:a|b。例:3|15,-15|60
整除性质:
对所有整数a≠0, a|0、 a|a成立 对任意整数b, 1|b成立
2.欧几里德(Euclidean)算法
一个用于计算两个整数的最大公因子的有效算法 ,算法依
Alice
加密
因特网
Bຫໍສະໝຸດ Baidub私钥
解密
Bob的公钥
Bob
3.优点
密钥管理
加密密钥是公开的;
解密密钥需要妥善保存; 在当今具有用户量大、消息发送方与接收方具有明显的信息不对称
特点的应用环境中表现出了令人乐观的前景。
新用户的增加只需要产生一对公共/私有密钥。
数字签名和认证
只有解密密钥能解密,只有正确的接收者才拥有解密密钥。
4.2 数论简介
1. 数论相关术语
最大公因子:任意有限个整数 a1 , a2 , , an 的公因子中的最大
gcd( a1 , a2 , , an ) 。 一个。必然存在并且惟一,记为
最小公倍数:任意有限个整数 a1 , a2 , , an的公倍数中的最小
一个 。必然存在并且惟一,记为 lcm(a1 , a2 , , an ) 。
11111x(mod12345)=1
扩展欧几里德算法求乘法逆元11-1mod26
q
2 2 1 3
r1
26 11 4
r2
11 4 3
r
4 3 1 0
t1
0 1 -2
t2
1 -2 5
t
-2 5 -7 26
3
1
1
0
5
-7
-7
26
所以,11的乘法逆元是(-7)mod26=19
素数(prime number)
欧拉函数φ(n):表示小于 n 且与 n 互素(包括公因子1)的
正整数的个数;
欧拉函数的性质:
对任意素数 p,有 对任意两个素数
φ(p) = p – 1;
p、q,则对 n = pq 有:
φ(n) = φ(pq) = φ(p)φ(q) = (p–1)(q–1)
欧拉定理
如a 和 n 是互素的整数,则有:
同次幂相乘得来的。
互
(1) d整除m和n,即d|m,d|n; (2) 若d’|m且d ’|n,则d ’|d。
素
设m,n是两个整数,如果正整数d满足:
则称 d 是 m 与 n 的最大公因数,记为d = (m,n)。若(m, n)=1,则称 m 与 n 互素。
3.欧拉函数
欧拉函数(Euler’s totient function)
公钥密码技术
1
习 题
1、设n=91,e=5,根据RSA算法加密明文m=3,计算出密文。给
出计算详细步骤。
2、设n=35,e=5, 试设计一个具体的RSA公开密码体制, 并求密 文c=10的原文。
习 题
3、在ElGamal 密码体制中,设素数p=71,本原根g=7
(1)如果接收方 B 的公开钥是yB = 3 ,发送方A 选择的随机整
等价于求解二元一次不定
方程11111x+12345y=1
的整数解
1=5-1*4=5-1*(1234-246*5)=247*5-1*1234 =247*(11111 - 9*1234) -1*1234 =247*11111 - 2224*1234 =247*11111 - 2224*(12345 -1*11111) =2471*11111 - 2224*12345
这样它就将 a b 的线性组合就化简为 b 与 a % b 的线性组合。 a b 都在减小,当 b 减小到 0 时,我们就可以得出 p = 1 ,q = 0
然后递归回去就可以求出 最终的 p ,q 了
扩展的欧几里德算法
(s*n)+(b*t)=gcd(n,b),如果b的乘法逆存在,则gcd(n,b)=1 r1←n;r2←b; t1←0;t2←1; 如果r2>0
人们认为 f(x) 是一个从Zn到Zn的单向函数
5.公钥算法的特点
公开密钥算法设计需要有以下基本要求:
加密与解密由不同的密钥完成;
知道加密算法,从加密密钥得到解密密钥在计算上是不可行的;
两个密钥中任何一个都可以作为加密而另一个用作解密。
6.公钥密码算法
除RSA算法以外,建立在不同计算问题上的其他公钥密码算法 有:
基于因子分解问题的Rabin算法; 椭圆曲线公钥算法; 基于有限域中离散对数难题的ElGamal公钥密码算法 基于代数编码系统的McEliece公钥密码算法; 基于“子集和”难题的Merkle-Hellman Knapsack(背包)公钥密码算
法;
目前被认为安全的Knapsack型公钥密码算法Chor-Rivest。
基本思想
数论简介 RSA算法 椭圆曲线密码体制
2
3 4
4.1基本思想
1.背景
对称密钥编码所面临的难题
密钥分配:通信密钥太多,管理和分发困难。 数字签名和认证。
密码体制上的突破
Diffie & Hellman, “New Direction in Cryptography”, 1976。 首次公开提出了“公开密钥密码编码学”的概念。
gcd( a, b) gcd(b, a modb) 据: 。
描述如下:
a, b Z , (1)输入 a 和 b ,其中, a, b 0 ,a b ;
(2)如果 b 0 则依次完成: r a modb, a b, b r ,否则返回 a; (3)输出gcd(a, b) r 。
{
q←r1/r2; r ←r1-q*r2; r1 ←r2;r2 ←r; t ←t1-q*t2; t1 ←t2;t2 ←t;
} 如果(r1=1),那么b-1 ←t1
用扩展的欧几里德算法求乘法逆元
gcd(11111,12345)
12345=1*11111+1234 11111=9*1234+5 1234=246*5+4 5=1*4+1 4=4*1+0
78 ≡49 ≡11mod 19
则a+b≡a1+b1(mod n),ab≡a1b1(mod n)
Fermat定理
若p素数,a是整数且不能被p整除,则: ap-1 1 mod p 推论: p素数,a是任意整数,则: ap a mod p 例:计算718 mod 19
a=7, p=19
72=49≡11mod19
74 ≡121 ≡7mod 19
这是一个与对称密码编码截然不同的方案。
提出公开密钥的理论时,其实用性并没有又得到证明:
当时还未发现满足公开密钥编码理论的算法; 直到 1978 年,RSA 算法的提出。
2.基本特征
加密和解密使用两个不同的密钥
公钥PK:公开,用于加密,私钥SK:保密,用作解密
密钥
一个密钥加密的数据只能用另一个密钥解密
被称为单向函数。 f ( x)
常用单项函数
大整数分解(简称IFP); 离散对数问题(简称DLP);
多项式求根
菲-赫尔曼问题 二次剩余问题
单向陷门函数
对于一个单向函数 f ( x) ,如果其逆函数 f 1 ( y) 在已知某些
辅助信息的情况下容易求解得出,则称该单向函数 f ( x) 为
a f( n ) 1 mod n
等价形式:
a
f ( n) +1
a mod n
欧拉定理推论: 有两个素数 p 和 q, 令 n = pq , 对任意整数 t 和a (0<a<n), 有下列等式成立:
a tφ(n) +1 = a mod n
其中:φ(n) = (p-1)(q-1)。
4.同余式性质
(1)a≡b(mod n) iff a mod n=b mod n。 (2)反身性:a≡a(mod n)。 (3)对称性:如果a≡b(mod n),则b≡a(mod n)。
(4)传递性:如果a≡b(mod n),b≡c(mod n),
则a≡c(mod n)。
(5)如果a ≡a1(mod n),b=b1(mod n),
同余式 :设n是一个正整数,a, b Z 如果 a mod n b mod n, 则称a和b模n同余,记作:a b(modn) ,称整数n为同余模。
加法逆元:设a Z n ,如果存在 x Z n 满足 x a 0(modn),则称 x是a的模n加法逆元。
乘法逆元:设 a Z n ,如果存在 x Z n 满足 ax 1(modn) ,则称
定义:如果整数p(p>1)只能被1或者它本身整除,而不能被其他整
数整除,则其为素数,否则为合数。 素数定理:
设 ( x)是小于x的素数的个数,则 x ( x) ( x) , 且当x , 1 x ln x ln x
在各种应用中,我们需要大的素数 ,如100位的素数
素数是构成整数的因子,每一个整数都是由一个或几个素数的不
公钥密码学要解决的问题
公钥密码学的概念是为了解决传统密码中最 困难的两个问题而提出的:
(1)密钥分配问题 (2)数字签名问题
4.公钥密码算法基础
单向函数
对于一个函数
f ( x,如果对于其定义域上的任意 ) x, f ( x)都容易计算,同时,
1 都是不可行的,则 f ( y)
对于其值域中几乎所有的取值 y ,计算其逆函数 函数
时间复杂度为 O((lgn) )。
2
用欧几里德算法求最大公约数。
求:gcd(482,1180)
1180=2*482+216
482=2*216+50
216=4*50+16
50=3*16+2 16=8*2+0
所以gcd(482,1180)=2
扩展的欧几里德算法
扩展欧几里德算法是用来在已知a, b。求解一组p,q,使得
单向陷门函数。
构造公钥密码系统的关键是如何在求解某个单向函数的逆函 数的NP完全问题中设置合理的“陷门”。
单向函数举例
例1:y=anxn+an-1xn-1+…+a1x+a0 例2:设n是两个大素数p和q的乘积,b是一个正整数,对
x∈Zn ,令 f(x)≡xb(mod n),即 f(x) 等于被n除所得的余数,
缺点:公共密钥系统的主要弱点是加密和解密速度慢。
实际应用中的加密方式
混合加密技术
对称密码体制:密钥分发困难
公钥体制:加解密效率低
将对称加密算法的数据处理速度和公钥算法对密钥的保
密功能相结合
利用对称加密算法加密传输数据
利用非对称加密算法交换会话密钥
实际应用中的加密方式
举例:假设Alice与Bob进行保密通信,过程如下:
数为k=2,求明文m=30 所对应的密文 (2) 如果用相同的k=2 加密另外一个明文m,加密后的密文为 C= (49,13),求m 4、椭圆曲线y2mod p=(x3+ax+b)mod p,其中a=1, b=1, p=23。取 曲线上的P=(3,10), Q=(9,7),分别计算P+Q和2P
主要内容
密 文 传 输 因特网
Alice Bob
Bob的公钥
Bob私钥
会话密钥
对称密码和公钥密码
对称密码
一般要求 ① 加密和解密使用相同的密钥 ② 收发双方必须共享密钥
公钥密码
一般要求 ① 同一算法用于加密和解密,但加 密和解密使用不同密钥 ② 发送方拥有加密或解密密钥,而 接收方拥有另一密钥
安全性要求
① 密钥必须是保密的 ② 若没有其他信息,则解密消息是 不 可能或至少是不可行的 ③ 知道算法和若干密文不足以确定 密钥
安全性要求
① 两个密钥之一必须是保密的 ② 若没有其他信息,则解密消息是 不可能或至少是不可行的 ③ 知道算法和其中一个密钥以及若 密文干不足以确定另一密钥
有关公钥密码的几种常见误解
从密码分析的角度看,公钥密码比传统密码更安全。 公钥密码是一种通用的方法,传统密码已经过时。 传统密码中与密钥分配中心的握手是一件异常麻烦的事情, 与之相比,用公钥密码实现密钥分配则非常简单。
p* a+q * b = Gcd(a, b)。
原理:
Gcd(a, b) = Gcd(b,a%b)
所以p * a+q * b = Gcd(a, b) = Gcd(b,a%b) = p * b + q * a % b
= p * b +q * (a – a / b * b) = q * a + (p – a / b*q) * b
x是a的模n乘法逆元,记为 a-1 (mod n)。
整除:设整数a和b,如果存在整数k,使b=ak,则说b能被a整
除,记作:a|b。例:3|15,-15|60
整除性质:
对所有整数a≠0, a|0、 a|a成立 对任意整数b, 1|b成立
2.欧几里德(Euclidean)算法
一个用于计算两个整数的最大公因子的有效算法 ,算法依
Alice
加密
因特网
Bຫໍສະໝຸດ Baidub私钥
解密
Bob的公钥
Bob
3.优点
密钥管理
加密密钥是公开的;
解密密钥需要妥善保存; 在当今具有用户量大、消息发送方与接收方具有明显的信息不对称
特点的应用环境中表现出了令人乐观的前景。
新用户的增加只需要产生一对公共/私有密钥。
数字签名和认证
只有解密密钥能解密,只有正确的接收者才拥有解密密钥。
4.2 数论简介
1. 数论相关术语
最大公因子:任意有限个整数 a1 , a2 , , an 的公因子中的最大
gcd( a1 , a2 , , an ) 。 一个。必然存在并且惟一,记为
最小公倍数:任意有限个整数 a1 , a2 , , an的公倍数中的最小
一个 。必然存在并且惟一,记为 lcm(a1 , a2 , , an ) 。
11111x(mod12345)=1
扩展欧几里德算法求乘法逆元11-1mod26
q
2 2 1 3
r1
26 11 4
r2
11 4 3
r
4 3 1 0
t1
0 1 -2
t2
1 -2 5
t
-2 5 -7 26
3
1
1
0
5
-7
-7
26
所以,11的乘法逆元是(-7)mod26=19
素数(prime number)
欧拉函数φ(n):表示小于 n 且与 n 互素(包括公因子1)的
正整数的个数;
欧拉函数的性质:
对任意素数 p,有 对任意两个素数
φ(p) = p – 1;
p、q,则对 n = pq 有:
φ(n) = φ(pq) = φ(p)φ(q) = (p–1)(q–1)
欧拉定理
如a 和 n 是互素的整数,则有:
同次幂相乘得来的。
互
(1) d整除m和n,即d|m,d|n; (2) 若d’|m且d ’|n,则d ’|d。
素
设m,n是两个整数,如果正整数d满足:
则称 d 是 m 与 n 的最大公因数,记为d = (m,n)。若(m, n)=1,则称 m 与 n 互素。
3.欧拉函数
欧拉函数(Euler’s totient function)
公钥密码技术
1
习 题
1、设n=91,e=5,根据RSA算法加密明文m=3,计算出密文。给
出计算详细步骤。
2、设n=35,e=5, 试设计一个具体的RSA公开密码体制, 并求密 文c=10的原文。
习 题
3、在ElGamal 密码体制中,设素数p=71,本原根g=7
(1)如果接收方 B 的公开钥是yB = 3 ,发送方A 选择的随机整
等价于求解二元一次不定
方程11111x+12345y=1
的整数解
1=5-1*4=5-1*(1234-246*5)=247*5-1*1234 =247*(11111 - 9*1234) -1*1234 =247*11111 - 2224*1234 =247*11111 - 2224*(12345 -1*11111) =2471*11111 - 2224*12345
这样它就将 a b 的线性组合就化简为 b 与 a % b 的线性组合。 a b 都在减小,当 b 减小到 0 时,我们就可以得出 p = 1 ,q = 0
然后递归回去就可以求出 最终的 p ,q 了
扩展的欧几里德算法
(s*n)+(b*t)=gcd(n,b),如果b的乘法逆存在,则gcd(n,b)=1 r1←n;r2←b; t1←0;t2←1; 如果r2>0
人们认为 f(x) 是一个从Zn到Zn的单向函数
5.公钥算法的特点
公开密钥算法设计需要有以下基本要求:
加密与解密由不同的密钥完成;
知道加密算法,从加密密钥得到解密密钥在计算上是不可行的;
两个密钥中任何一个都可以作为加密而另一个用作解密。
6.公钥密码算法
除RSA算法以外,建立在不同计算问题上的其他公钥密码算法 有:
基于因子分解问题的Rabin算法; 椭圆曲线公钥算法; 基于有限域中离散对数难题的ElGamal公钥密码算法 基于代数编码系统的McEliece公钥密码算法; 基于“子集和”难题的Merkle-Hellman Knapsack(背包)公钥密码算
法;
目前被认为安全的Knapsack型公钥密码算法Chor-Rivest。