高中数学选修5-3(密码学算法基础) 选修课密码学
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
超递增背包中的每一项都大于它之前所有项之和。 超递增背包问题是易解的。
7
2、利用超递增背包构造公钥密码体制
给定超递增背包向量 A=(a1,a2,…,an),对任意n比特
明文m=(x1, x2, …,xn),由a得到密文 c x1a1 x2a2 xn an 任何用户收到c后,都可容易地求得m: 首先比较c和an,若 c an ,则an不在该背包中xn=0; 若 c an ,则an必在该背包中xn=1,因为所有其它 分量的和a1+a2+…+an-1< an c ,记c’=c-an 。对c’和 an-1重复上述过程,当到达a1时,整个过程结束。 若变为0,则有唯一解m ;否则无解。 例:背包A=(2,3,6,13,27,52) ,c=70 该背包的解为:110101
9
2、利用超递增背包构造公钥密码体制
(5)加密
设明文m= (m1, m2, …,mn);(mi=0,1)
密文c=m1b1+ m2b2+ …+mnbn
(6)脱密
收到密文c后,计算 s=w-1c modM= m1a1+ m2a2+……+mnan 收方由s利用A的超递增特性可求出明文m。 由于w是保密的,非法用户不能由c还原m。
=32
=30
=32
解密时,合法接收者也必须解背包问题;且不 同明文有可能加密成同一密文。这不符合公钥密码 体制的要求。
6
2、利用超递增背包构造公钥密码体制
定义:若对 k , 1 k n 均有 a1 a 2 a k a k 1 则称向量A=(a1, a2, …,an)为超递增背包向量, 相应的背包问题称为超递增背包问题。
到19mod28的乘法逆元。
2、在M-H背包型公钥体制中,设M=233,A=(3,
5,11,23,49,103),取w=29求w-1,b,对明
文 m=(101110)加密并脱密。
16
(5) 构造密码系统的细节,使得解密对密码分析者 (不得不解PS )和合法接收者(可使用秘密陷门来解 PEasy )有本质区别。
12
三、现在流行的公钥密码体制
(1) 基于大整数因子分解问题,其中最典型的代 表是RSA公钥密码; (2) 基于有限域上离散对数问题,如ElGamal公 钥密码; (3) 基于椭圆曲线群上的离散对数问题,如椭圆 曲线公钥密码。 此外,还有Rabin公钥算法、McEliece公钥 算法和LUC公钥算法等等。
4
1、背包问题的数学描述
原则上,只要搜索集合A ={a1, a2, …,an}的所有子 集并检验其元素之和是否为c,则总可以决定此背包 问题是否有解,若有解就一定能够找到。
但注意到A的子集个数为:
c c
0 n 1 n
c 2
n n
n
背包问题是NP完全问题。 单向函数: 由集合A和0、1向量x很容易求得c; 但由集合A和c却很难求得0、1向量x
公钥密码体制
——背包公钥密码体制
主要内容
背包体制 构造公钥体制的原理
2
一、背包体制 下面以背包问题为例来介绍如何构造 公钥密码体制。 背包问题:给定一堆物品,重量各不相 同,能否将这些物品放入一个背包中,使 之等于一个给定的重量?
例:这些物品的重量分别为:1,5,6,11,14,20。 问能否组成重量分别为22和24的背包?
8
2、利用超递增背包构造公钥密码体制
一般的背包问题是困难问题,而超递增背包问题是 易解的。Merkle-Hellman公钥密码算法就利用这一性 质。保密密钥是一个超递增背包向量A,公开密钥是 A经过“置乱” 后的一般背包向量。 Merkle-Hellman公钥密码算法: (1)选取一个超递增背包A=(a1, a2, …,an)和模M 使 M>a1+a2+…+an ; (2)取w使(w,M)=1, 并求满足ww-1modM=1的w-1; (3)构造背包向量b=(b1,b2,…,,bn)且bi=waimod M ; (4)公开密钥: b= (b1, b2, …,bn) 保密密钥: A=(a1, a2, …,an)、M 和 w
11
二、构造公钥密码体制的一般步骤
(1) 选取一个困难问题P; (2) 选择困难问题P一个容易子问题PEasy,它应该 是多项式时间问题,最好是线性时间问题; (3) “置乱”问题PEasy使所得问题PS 是困难问题; (4) 公开PS ,并描述如何将它用作一个加密变换。 将Ps逆回到PEasy的信息作为秘密陷门;
主要介绍椭圆Fra Baidu bibliotek线上的基本运算、椭圆曲线公 钥密码算法及其实现。
(六) 背包加密算法和其他公钥密码
介绍两种背包加密算法并给出其破译算法、 Diffie-Hellman协议、Rabin公钥算法、McEliece 公钥算法和LUC公钥算法。
(七)公钥密码学的应用
介绍公钥基础设施(PKI)。
15
作业
1、求出使19s+28t=1成立的整数s、t。并由此得
5
1、背包问题的数学描述
背包密码算法的思想是将消息编码为背包问题 的解。明文分组长度等于堆中物品个数,且明文位 与 0、1向量x相对应,密文是计算得到的和值。 例:设背包向量为:A={1,5,6,11,14,20}
明文:111001
010110
100101
1+11+20
密文:1+5+6+20 5+11+14
13
四、本课程概要 (一) 数学背景
介绍公钥密码学中用到的基本数学知识: 包括初等数论、有限域、计算复杂性。
(二) RSA公钥密码
介绍RSA算法及其安全性,素性检测、因子 分解算法和RSA的实现。
(三) ElGamal公钥密码
讲述ElGamal算法及其安全性分析和实现,离 散对数问题的求解。
14
(五) 椭圆曲线公钥密码
3
1、背包问题的数学描述
给定 n个正整数的集合A={a1, a2, …,an}及 正整数c,求0、1向量x=(x1, x2, …,xn),使得:
x1a1 x2 a2
xn an c
其中a=(a1, a2, …,an)称为背包向量。 直观上: c表示背包的大小,每个数字ai表 示能装到该背包中的物品的大小。问题是选择 一些物品,使得它们正好填满这个背包。其中 xi为1表示物品在背包中,xi为0表示物品不在 背包中。
10
2、利用超递增背包构造公钥密码体制
例:设M=89,A=(2,6,9,19,41),取w=13求 w-1,b,对明文 m=(10101)加密并脱密。 解:由Euclid算法可求出w-1 =48 mod89。 则b=(26,78,28,69,88) 加密:c=26+28+88 =142 脱密:计算s=cw-1mod89=52 52>41 则 m5=1 52-41=11<19 则 m4=0 11>9 则 m3=1 11-9=2<6 则 m2=0 2=2 则 m1=1
7
2、利用超递增背包构造公钥密码体制
给定超递增背包向量 A=(a1,a2,…,an),对任意n比特
明文m=(x1, x2, …,xn),由a得到密文 c x1a1 x2a2 xn an 任何用户收到c后,都可容易地求得m: 首先比较c和an,若 c an ,则an不在该背包中xn=0; 若 c an ,则an必在该背包中xn=1,因为所有其它 分量的和a1+a2+…+an-1< an c ,记c’=c-an 。对c’和 an-1重复上述过程,当到达a1时,整个过程结束。 若变为0,则有唯一解m ;否则无解。 例:背包A=(2,3,6,13,27,52) ,c=70 该背包的解为:110101
9
2、利用超递增背包构造公钥密码体制
(5)加密
设明文m= (m1, m2, …,mn);(mi=0,1)
密文c=m1b1+ m2b2+ …+mnbn
(6)脱密
收到密文c后,计算 s=w-1c modM= m1a1+ m2a2+……+mnan 收方由s利用A的超递增特性可求出明文m。 由于w是保密的,非法用户不能由c还原m。
=32
=30
=32
解密时,合法接收者也必须解背包问题;且不 同明文有可能加密成同一密文。这不符合公钥密码 体制的要求。
6
2、利用超递增背包构造公钥密码体制
定义:若对 k , 1 k n 均有 a1 a 2 a k a k 1 则称向量A=(a1, a2, …,an)为超递增背包向量, 相应的背包问题称为超递增背包问题。
到19mod28的乘法逆元。
2、在M-H背包型公钥体制中,设M=233,A=(3,
5,11,23,49,103),取w=29求w-1,b,对明
文 m=(101110)加密并脱密。
16
(5) 构造密码系统的细节,使得解密对密码分析者 (不得不解PS )和合法接收者(可使用秘密陷门来解 PEasy )有本质区别。
12
三、现在流行的公钥密码体制
(1) 基于大整数因子分解问题,其中最典型的代 表是RSA公钥密码; (2) 基于有限域上离散对数问题,如ElGamal公 钥密码; (3) 基于椭圆曲线群上的离散对数问题,如椭圆 曲线公钥密码。 此外,还有Rabin公钥算法、McEliece公钥 算法和LUC公钥算法等等。
4
1、背包问题的数学描述
原则上,只要搜索集合A ={a1, a2, …,an}的所有子 集并检验其元素之和是否为c,则总可以决定此背包 问题是否有解,若有解就一定能够找到。
但注意到A的子集个数为:
c c
0 n 1 n
c 2
n n
n
背包问题是NP完全问题。 单向函数: 由集合A和0、1向量x很容易求得c; 但由集合A和c却很难求得0、1向量x
公钥密码体制
——背包公钥密码体制
主要内容
背包体制 构造公钥体制的原理
2
一、背包体制 下面以背包问题为例来介绍如何构造 公钥密码体制。 背包问题:给定一堆物品,重量各不相 同,能否将这些物品放入一个背包中,使 之等于一个给定的重量?
例:这些物品的重量分别为:1,5,6,11,14,20。 问能否组成重量分别为22和24的背包?
8
2、利用超递增背包构造公钥密码体制
一般的背包问题是困难问题,而超递增背包问题是 易解的。Merkle-Hellman公钥密码算法就利用这一性 质。保密密钥是一个超递增背包向量A,公开密钥是 A经过“置乱” 后的一般背包向量。 Merkle-Hellman公钥密码算法: (1)选取一个超递增背包A=(a1, a2, …,an)和模M 使 M>a1+a2+…+an ; (2)取w使(w,M)=1, 并求满足ww-1modM=1的w-1; (3)构造背包向量b=(b1,b2,…,,bn)且bi=waimod M ; (4)公开密钥: b= (b1, b2, …,bn) 保密密钥: A=(a1, a2, …,an)、M 和 w
11
二、构造公钥密码体制的一般步骤
(1) 选取一个困难问题P; (2) 选择困难问题P一个容易子问题PEasy,它应该 是多项式时间问题,最好是线性时间问题; (3) “置乱”问题PEasy使所得问题PS 是困难问题; (4) 公开PS ,并描述如何将它用作一个加密变换。 将Ps逆回到PEasy的信息作为秘密陷门;
主要介绍椭圆Fra Baidu bibliotek线上的基本运算、椭圆曲线公 钥密码算法及其实现。
(六) 背包加密算法和其他公钥密码
介绍两种背包加密算法并给出其破译算法、 Diffie-Hellman协议、Rabin公钥算法、McEliece 公钥算法和LUC公钥算法。
(七)公钥密码学的应用
介绍公钥基础设施(PKI)。
15
作业
1、求出使19s+28t=1成立的整数s、t。并由此得
5
1、背包问题的数学描述
背包密码算法的思想是将消息编码为背包问题 的解。明文分组长度等于堆中物品个数,且明文位 与 0、1向量x相对应,密文是计算得到的和值。 例:设背包向量为:A={1,5,6,11,14,20}
明文:111001
010110
100101
1+11+20
密文:1+5+6+20 5+11+14
13
四、本课程概要 (一) 数学背景
介绍公钥密码学中用到的基本数学知识: 包括初等数论、有限域、计算复杂性。
(二) RSA公钥密码
介绍RSA算法及其安全性,素性检测、因子 分解算法和RSA的实现。
(三) ElGamal公钥密码
讲述ElGamal算法及其安全性分析和实现,离 散对数问题的求解。
14
(五) 椭圆曲线公钥密码
3
1、背包问题的数学描述
给定 n个正整数的集合A={a1, a2, …,an}及 正整数c,求0、1向量x=(x1, x2, …,xn),使得:
x1a1 x2 a2
xn an c
其中a=(a1, a2, …,an)称为背包向量。 直观上: c表示背包的大小,每个数字ai表 示能装到该背包中的物品的大小。问题是选择 一些物品,使得它们正好填满这个背包。其中 xi为1表示物品在背包中,xi为0表示物品不在 背包中。
10
2、利用超递增背包构造公钥密码体制
例:设M=89,A=(2,6,9,19,41),取w=13求 w-1,b,对明文 m=(10101)加密并脱密。 解:由Euclid算法可求出w-1 =48 mod89。 则b=(26,78,28,69,88) 加密:c=26+28+88 =142 脱密:计算s=cw-1mod89=52 52>41 则 m5=1 52-41=11<19 则 m4=0 11>9 则 m3=1 11-9=2<6 则 m2=0 2=2 则 m1=1