第四章 公钥密码体制
合集下载
第4章公钥密码体制

密钥
为公钥。 不再需要, 以n,e为公钥。私密钥为d。(p, q不再需要, 可以销毁。 可以销毁。)
RSA算法在计算上的可行性
加密和解密
无论是加密还是解密都需要计算某个整数的模n 整数次幂,即C=Me mod n、M=Cd mod n。但不 、 需要先求出整数的幂再对n取模,而可利用模运 算的性质: (a mod n) * (b mod n)= (a*b) mod n 对于Me mod n,可先求出M1 mod n,M2 mod n, M4 mod n……,再求Me mod n
RSA算法 RSA算法
RSA Algorithm
概况
MIT三位年轻数学家, 1979年发现了一种用数 论构造双钥的方法,称作MIT 体制 MIT体制 MIT 体制,后来被 广泛称之为RSA体制 RSA体制 RSA体制。 它既可用于加密、又可用于数字签字。 RSA算法的安全性基于数论中大整数分解的 困难性。 迄今为止理论上最为成熟完善的公钥密码体 制,该体制已得到广泛的应用。
公钥密码体制有4个组成部分
明文:算法的输入,它们是可读信息或数据,用M 表示; 密文:算法的输出。依赖于明文和密钥,对给定的 消息,不同的密钥产生密文不同。用E表示; 公钥和私钥:算法的输入。这对密钥中一个用于加 密,为Ke,此密钥公开;一个用于解密,为Kd,此 密钥保密。加密算法执行的变换依赖于密钥; 加密、解密算法
选p=7,q=17。 求n=p×q=119,φ(n)=(p-1)(q-1)=96。 取e=5,满足1<e<φ(n),且gcd(φ(n),e)=1。确 定满足d·e=1 mod 96且小于96的d,因为 77×5=385=4×96+1,所以d为77。 因此公开钥为{5,119},秘密钥为{77,119}。 设明文m=19,则由加密过程得密文为 C=195 mod 119≡2476099 mod 119=66 解密为6677mod 119=19
现代密码学 第4章

m=EPKA(c)=EPKA(DSKA(m))
安全性:
由于SkA 是保密的,其他人都不可能伪造密文c,可用 A的 公开钥解密时得到有意义的消息m。因此可以验证消 息m来自A而不是其他人,而实现了对A所发消息的认证
。
2020/2/1
3
公钥密码认证体制
图4.2 公钥密码体制认证框图
2020/2/1
4
公钥保密和认证体制
现保密通信) 只能由一个用户加密消息而使多个用户可以解读(可用于认证系
统中对消息进行数字签字)。 无需事先分配密钥。
2020/2/1
1
公钥体制加密
m 发送者A
c 加密算法
解密算法
密码分析员 m
接收者B
m’ SK’B
ቤተ መጻሕፍቲ ባይዱPKB
SKB
密钥源
图4.1 公钥体制加密的框图
公钥体制加、解密 安全保障
m=D (c)=DSKB (EPKB(m))
2020/2/1
3 yx
18
4.4 背包密码体制
设A=(a1,a2,…,an)是由n个不同的正整数构成的n 元组,s是另一已知的正整数。背包问题就是从A 中求出所有的ai,使其和等于s。其中A称为背包向 量,s是背包的容积。
例如,A=(43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523),s=3231。由于
x2 c mod p
x
2
c
mod
q
2020/2/1
2020/2/1
24
4.5 Rabin密码体制
Rabin密码体制是对RSA的一种修正,它有以下两 个特点:
它不是以一一对应的单向陷门函数为基础,对 同一密文,可能有两个以上对应的明文;
安全性:
由于SkA 是保密的,其他人都不可能伪造密文c,可用 A的 公开钥解密时得到有意义的消息m。因此可以验证消 息m来自A而不是其他人,而实现了对A所发消息的认证
。
2020/2/1
3
公钥密码认证体制
图4.2 公钥密码体制认证框图
2020/2/1
4
公钥保密和认证体制
现保密通信) 只能由一个用户加密消息而使多个用户可以解读(可用于认证系
统中对消息进行数字签字)。 无需事先分配密钥。
2020/2/1
1
公钥体制加密
m 发送者A
c 加密算法
解密算法
密码分析员 m
接收者B
m’ SK’B
ቤተ መጻሕፍቲ ባይዱPKB
SKB
密钥源
图4.1 公钥体制加密的框图
公钥体制加、解密 安全保障
m=D (c)=DSKB (EPKB(m))
2020/2/1
3 yx
18
4.4 背包密码体制
设A=(a1,a2,…,an)是由n个不同的正整数构成的n 元组,s是另一已知的正整数。背包问题就是从A 中求出所有的ai,使其和等于s。其中A称为背包向 量,s是背包的容积。
例如,A=(43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523),s=3231。由于
x2 c mod p
x
2
c
mod
q
2020/2/1
2020/2/1
24
4.5 Rabin密码体制
Rabin密码体制是对RSA的一种修正,它有以下两 个特点:
它不是以一一对应的单向陷门函数为基础,对 同一密文,可能有两个以上对应的明文;
密码学中常用数学知识

定义Z 为小于n的所有非负整数集合 定义 n为小于 的所有非负整数集合 Zn={0,1,2,…,n-1}
4.1.4 费尔玛定理和欧拉定理
费尔玛定理: 费尔玛定理: 是素数, 是正整数且gcd(a,p)=1 gcd(a,p)=1, 若p是素数,a是正整数且gcd(a,p)=1,则ap-1≡1 mod p • 证明: 证明: 当gcd(a,p)=1,则a×Zp=Zp 。 则 × 又因为a× 所以a× 又因为 ×0≡0modp,所以 ×(Zp-{0})=Zp-{0} 所以 即:{a mod p,2a mod p,…,(n-1)a mod p} ={1,…,p-1} (a mod p) ×(2a mod p) ×…×(n-1)a mod p=(p-1)!ap-1 mod p × 因此: 因此:(p-1)! ap-1 mod p =(p-1)!modp (p-1)!与p互素,所以乘法可约律,ap-1=1 mod p 与 互素 所以乘法可约律, 互素,
的公因子。 由d|a和d|kb,得d|(a mod b), 故d是b和a mod b的公因子。 和 , , 是 和 的公因子 a,b以及 以及b,a mod b公因子集合相同,故最大公因子也相同。 公因子集合相同, 以及 公因子集合相同 故最大公因子也相同。 gcd(55,22)=gcd(22,11)=gcd(11,0)=11 gcd(11,10)=gcd(10,1)=1
第4章 公钥密码
密码学中常用的数学知识 公钥密码体制的基本概念 RSA算法 椭圆曲线密码体制
4.1.1 群、环、域
<G,*>的定义 的定义: 群<G,*>的定义
*为乘法时,称为乘法群 逆元(a-1) 为乘法时, 逆元( ) 为乘法时 *为加法时,称为加法群 逆元(-a) 为加法时, 逆元( ) 为加法时
第四章-公钥密码体制

(p-1)! = 12…(p-1) [(a mod p)(2a mod p)…((p-1)a mod p)] mod p [a2a…(p-1)a] mod p [ap-1(p-1)!] mod p 注意到(p-1)!与p互素,因此定理成立.
• 推论: p素数,a是任意整数,则: ap a mod p
– M kφ(n)+1=M mod n
RSA算法举例(1)
p = 53,q = 61,n = pq = 3233, φ(n)=52x60 = 3120 令d = 791,则e = 71 令m = RE NA IS SA NC E 即m = 1704 1300 0818 1800 1302 0426 170471 mod 3233 = 3106,…, C = 3106 0100 0931 2691 1984 2927
欧拉定理
• 证明: • R={x1,x2,…,x(n)}为所有小于n且与n互素的正整数,考虑集 合 • S={(ax1mod n), (ax2mod n),…, (ax(n) mod n)} • (aximod n)与n互素 • (aximod n)两两不等: • (aximod n) = (axjmod n) ximod n = xjmod n • S有(n)个元素 • 故S也是所有小于n且与n互素的正整数,因此S=R,从而 xi=(aximod n)((axi)) mod n • (a(n) xi) mod n • 注意到xi 与n互素,从而得到结论.
费马(Fermat)定理
• 若p是素数,a是正整数,且gcd(a,p)=1,则ap1≡1mod p • 证明:考虑集合{1,2,…,p-1},对每个数乘以a,得到 集合{a mod p,2a mod p,…,(p-1)a mod p},对于p, 后者两两不同且都在1与p-1之间,因此两个集合相 同,于是:
• 推论: p素数,a是任意整数,则: ap a mod p
– M kφ(n)+1=M mod n
RSA算法举例(1)
p = 53,q = 61,n = pq = 3233, φ(n)=52x60 = 3120 令d = 791,则e = 71 令m = RE NA IS SA NC E 即m = 1704 1300 0818 1800 1302 0426 170471 mod 3233 = 3106,…, C = 3106 0100 0931 2691 1984 2927
欧拉定理
• 证明: • R={x1,x2,…,x(n)}为所有小于n且与n互素的正整数,考虑集 合 • S={(ax1mod n), (ax2mod n),…, (ax(n) mod n)} • (aximod n)与n互素 • (aximod n)两两不等: • (aximod n) = (axjmod n) ximod n = xjmod n • S有(n)个元素 • 故S也是所有小于n且与n互素的正整数,因此S=R,从而 xi=(aximod n)((axi)) mod n • (a(n) xi) mod n • 注意到xi 与n互素,从而得到结论.
费马(Fermat)定理
• 若p是素数,a是正整数,且gcd(a,p)=1,则ap1≡1mod p • 证明:考虑集合{1,2,…,p-1},对每个数乘以a,得到 集合{a mod p,2a mod p,…,(p-1)a mod p},对于p, 后者两两不同且都在1与p-1之间,因此两个集合相 同,于是:
04计算机安全- 公钥密码体系

公钥密码体制的要求:
1. 2. 3. 4. 5. 6. 产生一对密钥是计算可行的 已知公钥和明文,产生密文是计算可行的 接收方利用私钥来解密密文是计算可行的 对于攻击者,利用公钥来推断私钥是计算不可行的 已知公钥和密文,恢复明文是计算不可行的 (可选)加密和解密的顺序可交换 可选)
公钥密码的安全性依赖于从已知的公钥, 加密算法和密文中无法求出明文或秘钥。 Diffie和Hellman提出了一种陷门单向函 数概念,为建立公钥密码体制找到了一 种途径。
= 2(2 1)5(5 1)(3 1) = 80
p , q为 素 数 , ( pq ) = ?
( pq) = ( p) (q) = ( p 1)(q 1)
一.
1.
RSA密码体制的描述
密钥生成算法:每个用户执行以下操作
随机生成两个不同大素数p,q; ② 计算n=pq,φ(n)=(p-1)(q-1); ③ 随机选取整数e,1<e<φ(n),满足(e,φ(n))=1; ④ 利用扩展欧基里德算法求出满足ed=1 mod(φ(n))的 整数d; ⑤ 公开(n,e),保密(p,q,φ(n),d)。其中e就是加密密钥, (n,e) (p,q,φ(n),d) e 而d就是解密密钥,n称为模数。
平方和乘算法的复杂度:执行次数至少要k次模乘,最多 需要2k次模乘
素数分布
(素数定理)设π (x)为不大于x的素数个数,则 lnx π lim (x) =1 x →∞ x
π (x) ≈
x lnx
512
2512 长度小于512位的数中素数的个数π (2 ) ≈ ln2512 2256 2255 长度为256位的数中素数的个数π (2 )-π (2 ) ≈ ≈ 3.25 ×1074, 256 255 ln2 ln2 可计算出在所有的256位的数中有0.56%的数是素数
第四章公钥密码体制

RSA公钥密码算法(续)
如果A要发送信息M给B,A和B之间用以 下方式进行通信: 计算密文 C = EK p (M ) →发送C给B→从A 接收C→计算明文 M = DKs (C) . 一般要求p,q为安全质数,现在商用的 安全要求为n的长度不少于1024位 。
B
B
RSA公钥密码算法(续)
算法的安全性分析 1. 如果密码分析者能分解 n 的因子 p 和 q ,他就可以 求出φ (n ) 和解密的密钥 d ,从而能破译RSA,因此破 译RSA不可能比因子分解难题更困难。 2. 如果密码分析者能够不对 n 进行因子分解而求得,则 可以根据 de ≡ 1 mod φ (n ) 求得解密密钥 d ,从而破译RSA。因为 2 p + q = n − φ (n ) + 1 p − q = ( p + q) − 4n 所以知道φ (n ) 和 n 就可以容易地求得 p 和 q ,从而成 功分解 n ,因此,不对 n 进行因子分解而直接计算 φ (n ) 并不比对 n 进行因子分解更容易。
椭圆曲线算法
1985年Koblitz和Miller提出在密码学中应用椭 圆曲线的思想,使其成为构造公开密钥密码系 统的一个有利工具。其安全性是基于椭圆曲线 上的离散对数计算的困难性。 优点:椭圆曲线上离散对数的计算要比有限域 上离散对数的计算更困难。与RSA相比,椭圆 曲线密码体制能用较短的密钥达到较强的安全 性,这样实现上能节省系统资源。
RSA公钥密码算法
RSA是Rivet,Shamir和Adleman于1978年在美 国麻省理工学院研制出来的,它是一种比较典 型的公开密钥加密算法。 基础 大数分解和素性检测——将两个大素数相乘在 计算上很容易实现,但将该乘积分解为两个大 素数因子的计算量是相当巨大的,以至于在实 际计算中是不能实现的。
公钥密码系统

导读
❖本章我们将讨论解密密钥与加密密钥不同 的情况。非对称密码系统的解密密钥与加 密密钥是不同的,一个称为公开密钥,另 一个称为私人密钥(或秘密密钥),因此 这种密码体系也称为公钥密码体系。公钥 密码除可用于加密外,还可用于数字签名。 《 中 华 人 民 共 和 国 电 子 签 名 法 》 已 于 2005 年4月1日实行。
k1
k2
28
Company Logo
中间人攻击
❖ Alice用密钥k1给Bob发送消息;Carol截获消 息后用k1解密就可读取消息;然后将获得的明文 消息用k2加密(加密前可能会对消息作某些修改) 后发送给Bob。
❖ 对Bob发送给Alice的消息,Carol同样可以读 取和修改。造成中间人攻击的原因是DiffieHellman密钥交换不认证对方。利用数字签名 可以挫败中间人攻击。
(2) Bob发送公开值给Alice,Carol截获它然后把 自己的公开值(a’和p’)发送给Alice。
(3) Alice和Carol计算出二人之间的共享密钥k1。 (4) Bob和Carol计算出另外一对共享密钥k2。
27
Company Logo
中间人攻击
a,p
a',p'
Alice
Carol
Bob
Bob
X
产生随机数y
计算X=ax mod p
计算Y=ay mod p
计算k=Yx mod p
Y
计算k'=Xy mod p
26
Company Logo
中间人攻击
❖ Diffie-Hellman密钥交换容易遭受中间人攻击:
(1) Alice发送公开值(a和p)给Bob,攻击者Carol 截获这些值并把自己产生的公开值发送给Bob。
❖本章我们将讨论解密密钥与加密密钥不同 的情况。非对称密码系统的解密密钥与加 密密钥是不同的,一个称为公开密钥,另 一个称为私人密钥(或秘密密钥),因此 这种密码体系也称为公钥密码体系。公钥 密码除可用于加密外,还可用于数字签名。 《 中 华 人 民 共 和 国 电 子 签 名 法 》 已 于 2005 年4月1日实行。
k1
k2
28
Company Logo
中间人攻击
❖ Alice用密钥k1给Bob发送消息;Carol截获消 息后用k1解密就可读取消息;然后将获得的明文 消息用k2加密(加密前可能会对消息作某些修改) 后发送给Bob。
❖ 对Bob发送给Alice的消息,Carol同样可以读 取和修改。造成中间人攻击的原因是DiffieHellman密钥交换不认证对方。利用数字签名 可以挫败中间人攻击。
(2) Bob发送公开值给Alice,Carol截获它然后把 自己的公开值(a’和p’)发送给Alice。
(3) Alice和Carol计算出二人之间的共享密钥k1。 (4) Bob和Carol计算出另外一对共享密钥k2。
27
Company Logo
中间人攻击
a,p
a',p'
Alice
Carol
Bob
Bob
X
产生随机数y
计算X=ax mod p
计算Y=ay mod p
计算k=Yx mod p
Y
计算k'=Xy mod p
26
Company Logo
中间人攻击
❖ Diffie-Hellman密钥交换容易遭受中间人攻击:
(1) Alice发送公开值(a和p)给Bob,攻击者Carol 截获这些值并把自己产生的公开值发送给Bob。
信息安全概论第四章公钥密码体制

14
Diffie-Hellman密钥交换算法 密钥交换算法
Diffie和Hellman在其里程碑意义的文章中, 虽然给出了密码的思想,但是没有给出真正意 义上的公钥密码实例,也既没能找出一个真正 带陷门的单向函数 然而,他们给出单向函数的实例,并且基于此 提出Diffie-Hellman密钥交换算法
13
常用的公开密钥算法
公钥算法的种类很多,具有代表性的三种密码: 公钥算法的种类很多,具有代表性的三种密码: 基于整数分解难题(IFP)的算法体制 基于整数分解难题(IFP)的算法体制(RSA) 基于离散对数难题(DLP)算法体制 基于离散对数难题(DLP)算法体制(ElGamal) 基于椭圆曲线离散对数难题( ECDLP ) 的算法体制 基于椭圆曲线离散对数难题 ( ECDLP) (ECC)
3
4.1 公钥密码体制的基本原理
对称算法的不足
(1)密钥管理量的困难 传统密钥管理:两两分别用一个密钥时, 传统密钥管理:两两分别用一个密钥时,则n个用户需 C(n,2)=n(n-1)/2个密钥 当用户量增大时, 个密钥, 要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空 间急剧增大。 间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时 n=5000时, C(5000,2)=12,497,500 (2)密钥必须通过某一信道协商,对这个信道的安全 密钥必须通过某一信道协商, 性的要求比正常的传送消息的信道的安全性要高
7
公开密钥密码的重要特性
加密与解密由不同的密钥完成 Y: X: Y = EKU(X) X = DKR(Y) = DKR(EKU(X))
加密: X 解密: Y
知道加密算法,从加密密钥得到解密密钥在计算上 , 是不可行的 两个密钥中任何一个都可以用作加密而另一个用 作解密(不是必须的) X = DKR(EKU(X))
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
同余式 :设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) ,则称
1
基本思想
数论简介 RSA算法 椭圆曲线密码体制
2
3 4
4.1基本思想
1.背景
对称密钥编码所面临的难题
密钥分配:通信密钥太多,管理和分发困难。 数字签名和认证。
密码体制上的突破
Diffie & Hellman, “New Direction in Cryptography”, 1976。 首次公开提出了“公开密钥密码编码学”的概念。
基于因子分解问题的Rabin算法; 椭圆曲线公钥算法; 基于有限域中离散对数难题的ElGamal公钥密码算法 基于代数编码系统的McEliece公钥密码算法; 基于“子集和”难题的Merkle-Hellman Knapsack(背包)公钥密码算
法;
目前被认为安全的Knapsack型公钥密码算法Chor-Rivest。
安全性要求
① 两个密钥之一必须是保密的 ② 若没有其他信息,则解密消息是 不可能或至少是不可行的 ③ 知道算法和其中一个密钥以及若 密文干不足以确定另一密钥
有关公钥密码的几种常见误解
从密码分析的角度看,公钥密码比传统密码更安全。 公钥密码是一种通用的方法,传统密码已经过时。 传统密码中与密钥分配中心的握手是一件异常麻烦的事情, 与之相比,用公钥密码实现密钥分配则非常简单。
缺点:公共密钥系统的主要弱点是加密和解密速度慢。
实际应用中的加密方式
混合加密技术
对称密码体制:密钥分发困难
公钥体制:加解密效率低
将对称加密算法的数据处理速度和公钥算法对密钥的保
密功能相结合
利用对称加密算法加密传输数据
利用非对称加密算法交换会话密钥
实际应用中的加密方式
举例:假设Alice与Bob进行保密通信,过程如下:
公钥密码技术
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 选择的随机整
这是一个与对称密码编码截然不同的方案。
提出公开密钥的理论时,其实用性并没有又得到证明:
当时还未发现满足公开密钥编码理论的算法; 直到 1978 年,RSA 算法的提出。
2.基本特征
加密和解密使用两个不同的密钥
公钥PK:公开,用于加密,私钥SK:保密,用作解密
密钥
一个密钥加密的数据只能用另一个密钥解密
(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),
同次幂相乘得来的。
互
(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)
欧拉函数φ(n):表示小于 n 且与 n 互素(包括公因子1)的
正整数的பைடு நூலகம்数;
欧拉函数的性质:
对任意素数 p,有 对任意两个素数
φ(p) = p – 1;
p、q,则对 n = pq 有:
φ(n) = φ(pq) = φ(p)φ(q) = (p–1)(q–1)
欧拉定理
如a 和 n 是互素的整数,则有:
密 文 传 输 因特网
Alice Bob
Bob的公钥
Bob私钥
会话密钥
对称密码和公钥密码
对称密码
一般要求 ① 加密和解密使用相同的密钥 ② 收发双方必须共享密钥
公钥密码
一般要求 ① 同一算法用于加密和解密,但加 密和解密使用不同密钥 ② 发送方拥有加密或解密密钥,而 接收方拥有另一密钥
安全性要求
① 密钥必须是保密的 ② 若没有其他信息,则解密消息是 不 可能或至少是不可行的 ③ 知道算法和若干密文不足以确定 密钥
{
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
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)
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.同余式性质
78 ≡49 ≡11mod 19
人们认为 f(x) 是一个从Zn到Zn的单向函数
5.公钥算法的特点
公开密钥算法设计需要有以下基本要求:
加密与解密由不同的密钥完成;
知道加密算法,从加密密钥得到解密密钥在计算上是不可行的;
两个密钥中任何一个都可以作为加密而另一个用作解密。
6.公钥密码算法
除RSA算法以外,建立在不同计算问题上的其他公钥密码算法 有:
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 。
数为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
主要内容
则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
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)算法
一个用于计算两个整数的最大公因子的有效算法 ,算法依
这样它就将 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
4.2 数论简介
1. 数论相关术语
最大公因子:任意有限个整数 a1 , a2 , , an 的公因子中的最大
gcd( a1 , a2 , , an ) 。 一个。必然存在并且惟一,记为
最小公倍数:任意有限个整数 a1 , a2 , , an的公倍数中的最小
一个 。必然存在并且惟一,记为 lcm(a1 , a2 , , an ) 。
单向陷门函数。
构造公钥密码系统的关键是如何在求解某个单向函数的逆函 数的NP完全问题中设置合理的“陷门”。
单向函数举例
例1:y=anxn+an-1xn-1+…+a1x+a0 例2:设n是两个大素数p和q的乘积,b是一个正整数,对