第5章(RSA公钥密码体制)
RSA公钥密码体制
RSA公钥密码体制计算机网络环境下信息的保密性、完整性、可用性和抗抵赖性,都需要采用密码技术来解决,密码技术是信息安全的核心和关键技术。
数据加密过程就是通过加密系统把原始的数字信息(明文),按照加密算法变换成与明文完全不同得数字信息(密文)的过程。
密码体制大体分为对称密码(又称为私钥密码)和非对称密码(又称为公钥密码)两种。
公钥密码在信息安全中担负起密钥协商、数字签名、消息认证等重要角色,已成为最核心的密码。
非对称算法也叫做公开密钥算法,用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。
之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。
但是从公钥中推导出私钥是很难的。
RSA、DSA等算法属于非对称算法,其中以RSA的应用最为广泛,不仅能用于加密同时又可以数字签名。
图1 公开密匙密码体制RSA算法的优点是密钥空间大,缺点是加密速度慢,如果RSA和DES结合使用,则正好弥补RSA的缺点。
即DES用于明文加密,RSA用于DES密钥的加密。
由于DES加密速度快,适合加密较长的报文;而RSA可解决DES密钥分配的问题。
1 RSA公钥密码体制的优势1.1 解决大规模网络应用中密钥的分发和管理问题公钥密码加密密钥通常是公开的,而解密密钥是秘密的,由用户自己保存,不需要往返交换和传递,大大减少了密钥泄露的危险性。
同时,在网络通信中使用对称密码体制时,网络内任何两个用户都需要使用互不相同的密钥,只有这样,才能保证不被第三方窃听,因而N个用户就要使用N(N–1)/2个密钥。
在大型网络中,如果有100万个用户,则要使用4950万个密钥,密钥量太大,难以管理,而且使用起来非常麻烦。
采用公钥密码体制,对于N个用户,每个用户只要保存好自己的一对密钥(一个公开,一个保密)即可,这样总共只需要产生N对密钥。
仍以100万个用户为例,只需100万对密钥,需要秘密保存的仅100万个私钥,二者相差近50万倍,数量大大减少,而且分发简单,安全性好。
《应用编码与计算机密码学》 第5章 公钥密码体制
5.3 基于离散对数的公钥密码体制
5.3.2 离散对数Diffie-Hellman算法 设p是一个满足要求的大素数,0 < α < p, α是循环群Z p的生成元,α和p公开,它 们也将在一组用户中共用。 在两个用户Alice与Bob要通信时,他们可 通过下面的步骤协商通信时所使用的密钥:
5.3 基于离散对数的公钥密码体制
while r > 0
5.2 RSA 公钥密码体制
if b0 ≠ 1 then b 没有模a的逆 else return(t)
5.2 RSA 公钥密码体制
中国剩余定理及欧拉定理 定理 5.2.2(中国剩余定理)假设m1 ,…, mr是 两两互素的正整数,a1 ,…, ar为整数。那么 同余方程组 x ≡ ai ( mod mi ) (1≤ i ≤ m) 有模M = m1 m2 … , m 的唯一解,具体解表 r r 达式为 x = ∑ a i M i y i mod M i =1 −1 M 其中 M i = ,且 yi = Mi modmi ,1 ≤ i ≤ r。 mi
5.2 RSA 公钥密码体制
算法5.2.3 Multiplication Inverse(a , b)
a0 ← a b0 ← b t0 ← 0
t←1
5.2 RSA 公钥密码体制
⎧ temp ← ( t 0 − qt ⎪ ← t t 0 ⎪ ⎪ t ← temp ⎪ ⎪ a 0 ← b0 do ⎨ b0 ← r ⎪ ⎪ ⎢ a0 ⎥ ⎪ q← ⎢ ⎥ ⎪ ⎣ b0 ⎦ ⎪ ⎩ r ← a 0 − qb 0
5.2 RSA 公钥密码体制
算法5.2.1 Euclidean Algorithm(a ,b) r0 ←a ⎧ ⎢ rm − 1 ⎥ qm ← ⎢ r1 ←b ⎪ ⎥ rm ⎦ ⎣ ⎪ m ←1 ⎪ while rm ≠ 0 do ⎨ rm + 1 ← rm −1 − q m rm m ←m - 1 ⎪ m ← m +1 ⎪ return ( q1,…, qm, rm ) ⎪(a,b) Comment : rm = gcd ⎩
rsa公钥密码体制
rsa公钥密码体制RSA公钥密码体制是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman三位数学家于1977年提出。
它是目前最广泛使用的公钥密码体制之一,被广泛应用于网络通信、电子商务和数字签名等领域。
RSA公钥密码体制的核心思想是利用两个大素数的乘积作为公钥,而这两个大素数的乘积的因数则作为私钥。
在加密过程中,发送方使用接收方的公钥对明文进行加密,而接收方则使用自己的私钥对密文进行解密。
由于公钥和私钥是成对出现的,因此只有拥有私钥的接收方才能解密密文,确保了通信的安全性。
RSA公钥密码体制的安全性基于两个数论问题:大整数的质因数分解和模幂运算。
质因数分解是指将一个大整数分解为两个素数的乘积,这个问题在目前的计算机技术下是非常困难的。
而模幂运算是指对一个大整数进行指数幂运算后取模,这个问题在计算机中可以通过快速幂算法高效解决。
RSA公钥密码体制的加密过程如下:首先,接收方生成两个大素数p和q,并计算它们的乘积n=p*q。
然后,接收方选择一个整数e,使得e与(p-1)*(q-1)互质。
接收方将n和e作为公钥公开,而将p、q和d=(e的模(p-1)*(q-1)的逆元)作为私钥保密。
发送方获取接收方的公钥后,将明文m进行加密得到密文c,加密过程为c=m^e mod n。
接收方收到密文后,使用私钥d对密文进行解密得到明文,解密过程为m=c^d mod n。
RSA公钥密码体制的安全性主要依赖于大整数的质因数分解问题的困难性。
目前,最好的质因数分解算法是基于数域筛法和大整数分解算法,但是对于非常大的整数,这些算法的时间复杂度仍然非常高,因此RSA公钥密码体制在实际应用中仍然是安全可靠的。
总之,RSA公钥密码体制是一种非常重要的加密算法,它通过利用两个大素数的乘积作为公钥,确保了通信的安全性。
它的安全性基于大整数的质因数分解问题的困难性,目前仍然是一种安全可靠的加密算法。
RSA公钥密码体制简介
32
例:
计算: 152013(mod 2539) 13 23 1 22 0 2 1 1101 B
(e3 , e2 , e1, e0 ) (1,1,0,1)
152013 mod2539
(((1520e3 )2 1520e2 )2 1520e1 )2 1520e0 (mod 2539) ((15202 1520)2 15200 )2 1520 (mod 2539)
14
RSA算法论证
假设截获密文C,从中求出明文M。他知道 M≡Cd mod n ,
因为n是公开的,要从C中求出明文M,必须先求 出d,而d是保密的。但他知道,
ed≡1 mod φ(n), e是公开的,要从中求出d,必须先求出φ(n),而 φ(n)是保密的。但他又知道,
φ(n)=(p-1)(q-1),
9
RSA算法论证
于是,M tφ(n) =bq+1,其中b为某整数。 两边同乘M, M tφ(n)+1 =bqM+M 。 因为M=ap,故 M tφ(n)+1 =bqap+M =abn+M 。 取模n得, M φ(n)+1 =M mod n 。
10
RSA算法论证
第二种情况:M=0 当M=0时,直接验证,可知命题成立。
加密过程:c=me mod n 解密过程:m=cd mod n
3
2、工作原理
定义:任给一个正整数m,如果用m去除任意两个整 数a、b所得的余数相同,称a、b对模m同余。记 为: a bmodm,若余数不同,则a、b对模m不同余。 记为: a b modm。
定理: a bmodm ,当且仅当m|(a-b)。
RSA公钥密码体制的原理及应用
RSA公钥密码体制的原理及应用暴金雨摘要近些年来随着科技丝发展和数学理论研究的不断深入,信息安全和密码学逐渐成为人们关注的焦点.公钥密码算法相对于传统时私钥算法更加安全可靠,为了深入了解其数学原理,文章针对RSA算法的加解密过程以及其在数字签名中的应用进行原理分析和实验探索,并对密码学领域的现状和未来进行分析和展望.关键词公钥密码;RSA算法;数字签名中图分类号01文献标识码A文章编号1674-6708(2019)231-0137-03随着科技发展和计算机技术的不断普及,信息安全问题逐渐成为公民关注的问题之一。
无论是国家安全还是个人信息的安全,都十分重要。
密码学则是保障信息安全的核心技术。
自从1976年公钥密码思想的提出以来,世界各国的计算机和数学学者们致力于公钥密码体制的研发。
1977年,三位美国的数学家提出了第一个使用的公钥算法——RSA 算法。
其算法的安全性依赖于大整数因子分解的困难性。
目前,密钥长度大于1024位的RSA算法体制被认为是安全的[11o1RSA算法1.1数论基础⑷RSA算法加密和解密过程中均运用到了数论的相关知识,因此我们说,数论是RSA算法的基础。
整数对于加法、减法、乘法运算都是封闭的,即任意两个整数的和、差、积仍然是整数。
但是对除法运算不再是封闭的,例如,4除以3就不是整数了。
定义1整数的带余除法:给定整数a,b且b> 0,则存在唯一的一对整数q,r,使得a=qb+r。
其中,OWrWb。
这里r称为a除以b的余数。
定义2同余:同余n是一个大于1的自然数,若a,b是整数且整除a-b,则称整数a和b模是同余的,记作a三b(mod n)。
定义3互质关系:若两个正整数a,b的公因子只有1,则称a和b互质。
互质的性质:1)任意两个质数构成互质关系;2)设a是质数,任取整数b,若b不是a的倍数,则a和b互质。
3)所有的自然数都和1互质;4)若p是大于1的整数,则p和p-1互质;5)若p是大于1的奇数,则p和p-2互质。
信息安全(RSA公钥密码体系)习题与答案
一、单选题1、计算15的欧拉函数()A.15B.3C.5D.8正确答案:D2、关于偏yes的蒙特卡洛算法,下列说法正确的是()A.如果算法给出的答案是no,则原问题的答案只能是noB.如果算法给出的答案是yes,则原问题的答案只能是yesC.如果算法给出的答案是no,则原问题的答案可以是yesD.如果算法给出的答案是yes,则原问题的答案可以是no正确答案:B3、高l为c的二进制表示的比特数,平方-乘算法可以把xcmodn所需要模乘的次数降低为最多多少次()。
A.l/2B.c-1C.l 的平方D.2l正确答案:D4、下列属于模13的本原元素的是()A.3B.5C.2D.1正确答案:C5、计算Jacobi符号(6278),其中已知9975=3*5*5*7*19。
( )9975A.不确定B.1C.1和-1都有可能D.-1正确答案:D6、关于偏yes的蒙特卡洛算法,下列说法正确的是()A.如果算法给出的答案是no,则原问题的答案可以是yesB.如果算法给出的答案是yes,则原问题的答案可以是noC.如果算法给出的答案是yes,则原问题的答案只能是yesD.如果算法给出的答案是no,则原问题的答案只能是no正确答案:C二、多选题1、关于RSA公钥密码系统说法正确的是()A.RSA三个字母代表Rivest,Shamir和AldemanB.公钥密码的思想是1976年,首先由Diffie和Hellman提出来的C.ElGamal密码系统属于公钥密码系统D. RSA公钥密码系统的安全性建立在大整数分解的困难性正确答案:A、B、C、D2、下列属于模13本原元素的是()A.6B.1C.2D.7正确答案:A、C、D3、下列属于模11中的二次剩余的是()A.3B.2C.1D.4正确答案:A、C、D4、下列信息能攻破RSA密码体制的有()A.得到一些有效的RSA签名B.直到公钥C.计算出n的欧拉函数值D.分解整数n正确答案:C、D5、下列算法中属于素性判别算法的算法是()A.Euclidean算法B.Solovay-Strassen算法C.Multiplicative Inverse算法ler-Rabin算法正确答案:B、D6、下列说法正确的是()A.一个没有使用随机数的算法,称为确定性算法B.一个随机算法是指任一使用了随机数的算法C.一个没有使用随机数的算法,并不能称为随机算法D.一个判定问题是指只能回答“是”或者“否”的问题正确答案:A、B、D7、关于素性检测,下列说法正确的是()A.Solovay-Strassen算法和MIiller-Rabin算法都属于概率算法,即有一定的错误概率B.生成随机整数的方法是先生成大的随机整数,然后检测它们的素性C.Agrawal,Kayal和Saxena证明了存在一个素性检测的多项式时间确定性算法D.素性检测主要利用随机多项式时间Monte Carlo算法正确答案:A、B、C、D8、下列算法中属于素性判别算法的算法是()A.Solovay-Strassen算法B.Multiplicative Inverse算法ler-Rabin算法D.Euclidean Algorithm算法正确答案:A、C。
chapter 5 公钥密码体制(ro)
3. 计算离散对数不因数分解有着密切的关系,如果能成功解 决离散对数问题,则也能解决因子分解问题。(注:其逆命 题的正确性还有待证明)
主要内容
• • • • • • • 问题提出与公钥密码基本概念 公钥密码基本应用 陷门单向函数 RSA密码体制 DH密钥交换算法 离散对数密码体制 椭圆曲线密码体制
群
• 群的概念
– 是由一个非空集合G组成,在集合G中定义了一个二元运算符“· ”, – 并满足以下性质的代数系统,记为{G, ·}
离散对数问题
1. 设p是一大素数,a < p,已知x,求解ax (mod p)的模指数 运 算比较容易。模指数运算的逆问题是找出某个数的离散对 数,即:已知y, a以及大素数p ,求x使得:ax = y (mod p)。 2. 在素数域中有三种计算离散对数的方法:
陷门单向函数
定义 陷门单向函数是一类满足下述条件的单向函数: (1) 正向计算容易。若已知Pk和消息x, y=f Pk(x) (2) 在不知密钥Sk (Sk是陷门信息)的情况下, 反向计算是不可行的。
(3) 在已知密钥Sk的情况下,反向计算是容易的。 即 x=f -1Sk(y)
(3) 公钥系统
在一个公钥系统中,所有用户共同选定一个陷门单 向函数,加密运算E。用户i从陷门集中选定zi,并 公开Ezi。
–传统加密算法无法实现抗抵赖的需求
公钥密码体制
• 公钥密码又称为双钥密码、非对称密码 • 公钥密码体制提出的标志性文献:
– W.Diffie and M.E.Hellman, New Directions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976, PP.644-654
网络安全_双(公)钥密码体制
明文
DA
EB
密文 信道 保密
DB
EA
明文
认证
dBob(Z)=dBobeBob(x,y)=(x,y) 然后检验 VerAlice(x,y)= 真 问题:若Alice首先对消息x进行加密,然后再签名,结果 如何呢?Y=SigAlice(eBob(x)) Alice 将(z,y)传给Bob,Bob先将z解密, 获取x;然后用VerAlice检验关于x的加密签名y。这个方法的一个潜 在问题是,如果Oscar获得了这对(z,y),他能用自己的签名来替 代Alice的签名 y=SigOscar(eBob(x)) (注意:Oscar能签名密文eBob(x),甚至他不知明文x也能做。Oscar 传送(z,y )给Bob,Bob可能推断明文x来自Oscar。所以,至今人 么还是推荐先签名后加密。)
(3)存在δ,已知δ 时,对给定的任何y,若相应的x 存在,则计算x使y=f(x)是容易的。 注:1*. 仅满足(1)、(2)两条的称为单向函数;第(3)条称 为陷门性,δ 称为陷门信息。 2*. 当用陷门函数f作为加密函数时,可将f公开,这 相当于公开加密密钥。此时加密密钥便称为公开 钥,记为Pk。 f函数的设计者将δ 保密,用作解 密密钥,此时δ 称为秘密钥匙,记为Sk。由于加 密函数时公开的,任何人都可以将信息x加密成 y=f(x),然后送给函数的设计者(当然可以通过 不安全信道传送);由于设计者拥有Sk,他自然 可以解出x=f-1(y)。 3*.单向陷门函数的第(2)条性质表明窃听者由截获的 密文y=f(x)推测x是不可行的。
2 、模 算术
全体整数构成的集合对整数的加法和乘法的两种 运算是封闭的且满足算术运算的所有定律,此时我们 称整数集合z为整数环。 带余除法: a∈z,>0,可找出两个唯一确定的整数q和r, 使a=qm+r, 0<=r< m,q和r这两个数分别称为以m去 除a所得到的商数和余数。 (若r=0则m∣a) 整数同余式和同余方程: 定义(同余)称整数a模正整数m同余于整数b, 并写a≡b(mod m)是指m∣a-b, m称为模数。 eg: 4≡6(mod 2); 3≡9(mod 6) 注:1*.m∣a-ba=q1m+r,b=q2m+r即a和b分别 除以 m有相同的余数。“同余”二字的来源就在于此。
05RSA公钥密码体制
算法 RSA Dieffie-Hellman DSS
加/解密 数字签名 解密 是 否 否 是 否 是
密钥交换 是 是 否
基本思想和要求
涉及到各方:发送方、接收方、攻击者 涉及到各方:发送方、接收方、 涉及到数据:公钥、私钥、明文、密文 涉及到数据:公钥、私钥、明文、 公钥算法的条件: 公钥算法的条件: – 产生一对密钥是计算可行的 – 已知公钥和明文,产生密文是计算可行的 已知公钥和明文, – 接收方利用私钥来解密密文是计算可行的 – 对于攻击者,利用公钥来推断私钥是计算不 对于攻击者, 可行的 – 已知公钥和密文,恢复明文是计算不可行的 已知公钥和密文, – (可选 加密和解密的顺序可交换 可选)加密和解密的顺序可交换 可选
Random number generation
真正的随机数难以产生 伪随机数 线性同余法 Xn+1 = (aXn+c) mod m m 模数 m>0 231 a 乘数 0≤a<m a=75=16807 ≤ c 增量 0 ≤c<m X0 种子 0 ≤ X0<m 线性同余伪随机数缺乏不可预测性
Fermat定理 定理
Fermat定理: Fermat定理: 定理
a p-1
p素数,a是整数且不能被p整除,则: p素数,a是整数且不能被p整除, 素数,a是整数且不能被 ≡ 1 mod p
考虑集合{1,2, ,p 1},对每个数乘以a,得到集合 对每个数乘以a, 考虑集合{1,2,…,p-1},对每个数乘以a,得到集合 {1,2, ,pp,…,(p ,(pp},对于p,后者两两 对于p, {a mod p,2a mod p, ,(p-1)a mod p},对于p,后者两两 不同且都在1 之间,因此两个集合相同,于是: 不同且都在1与p-1之间,因此两个集合相同,于是: (p1× (p-1)! = 1×2×…×(p-1) ×(pp)× p)× ×((p≡ [(a mod p)×(2a mod p)×…×((p-1)a mod p)] mod p [a×2a× ×(p≡ [a×2a×…×(p-1)a] mod p (p≡ [ap-1×(p-1)!] mod p 注意到(p 1)!与 互素,因此定理成立. (p注意到(p-1)!与p互素,因此定理成立.
公钥密码1RSA及其原理
5.0 引言 5.1 公钥密码的理论基础 5.2 RSA 公钥密码
5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 RSA公钥密码体制 RSA的安全性讨论 模n求逆的方法 模n的大数幂乘的快速算法 因子分解
5.3 大素数的生成
第五章 公钥密码
第五章 公钥密码
1976年,W.Diffie和M.E.Hellman首先提 出了公钥密码学。在公钥密码体制中,加密 密钥(Publickey)和解密密钥(privatekey)是不 一样的,由两者任何一个不能推出另一个, 本章介绍RSA公钥密码体制,ElGamal公钥密 码体制,Menezes-Vanstone公钥密码体制以及 一些相关知识。
x
p
x (mod
p ) 0 (mod
p ).
结论也成立。
5.2.2 RSA公钥密码体制
5.2.2 RSA公钥密码体制 Ron Rivest、Adi Shamir以及 Leonard Adleman于1978年提 出了RSA公钥密码体制。 RSA公钥密码体制描述如下:
(1 ) 选取两个大素数 p 和 q (保密)。 ( 2)计算 n pq (公开), ( 3 )随机选取正整数 公开的加密密钥 . .
故
x 1 x 2 (mod M ).
Байду номын сангаас
因此,式(5.2)是同余方程组(5.1)的模 M 唯一解。 定义 5.4 设n是一个正整数。
def : (n )
x 0
x n 1, gcd( x , n ) 1
称为Euler函数。Euler函数是定义在正整数集合上的函数。 由定义可以立即得出,如果p是一个素数,则 ( p) p 1
《密码学》金晨辉 第五章 公钥密码 5.2 RSA安全性分析
d 分解 N
分解 N d
求 d 的难度 分解 N 的难度
三、不动点攻击
定义 如果
me(modN)m
则称 m 为RSA的一个不动点。
特点: (1) 密文就是明文,因而直接暴露了明文。
三、不动点攻击
(2) 利用一个非零不动点可以超过1/2的概率分解N 对于任一非零不动点 w
gcd(w, N)≠1
四、共模RSA体制的分析
RSA共模体制:在网络环境中,所有用户 共用一个相同的模数 N。
(1)任一个用户A 均可由其密钥对
(eA, d A )
用户A可分解大合数 N
eB
dB
结论:系统中的任何一个用户都能破译其它 用户加密的信息。
四、共模RSA体制的分析
(2)通播信息是不安全的
设一个用户A要向 r 个用户发送同一信息 m, 则可得密文:
密码学
第五章 公钥密码
RSA安全性分析
RSA安全性分析1Fra bibliotek大合数分解进展
2 由N和e求d的难度分析
3
不动点攻击
4 共模RSA体制的分析
回顾RSA密码体制
选取两个大素数 p , q,计算
参数 N = pq , (N ) lc m (p 1 ,q 1 )
选取 选取 e , gcd(e, (N)) = 1, 求 d 使得
N|(w2s1r1)(w2s1r1) NN |w |2 (sw w 1r22ss 221 rr且 11)N ((w w |22ssw 222 rrs 1r11 ))1
对要于有可一t以=个分s-满1解,…足N,1,0, 只
N|可(w以2t r分解1)(Nw2t r 1)
N|w 2 …s2r…1 …且 …N|w 2s2r1 N | w2t r 1且N | w2t r 1
ElGamal公钥密码体制及安全性
下面我们首先计算
γ
2,0
=α
0×(p-1)/2
mod 29
= 20 mod 29 = 1, γ
2,1
=α
1×(p-1)/2mod
29
= 228/2 mod 29
= 28. 因为 = 28 =γ
2,1 ,
0
ß mod 29 = 1828/2 mod 29
所以 a = 1.令
ß = ß α 1 因为
0, 1 e i 1
i
根据目前的计算能力,只有当p-1 的素因子是小素数时,才 能有效分解 p-1求得 。因此,Pohlig-Hellman 算法适用于p1 的素因子是小素数的情况。 例5.8 设p = 29, 则 p-1= 28 = 22×7.设α = 2, ß 18. = 求log 。令log a .
s ( p 1 ) qi
mod p
qi ,s
· ,k, · ·
s = 0, 1,2, ·· i -1. 将这些 q ·
ei i
排成一个
下面利用表L求 a mod q
a mod q
ei i
, i= 1,2,
1 i
· ,k. · ·
e i 1
设
q
ei 1 i
a a q a
0
ß=αd mod p,
所以
k c2(c1d)–1≡mß (α
dk
)
–1
(mod p)
–1(mod
≡mα
dk
(α
dk
)
p) α ∈zp*
≡m(mod p). 因此,解密变换能正确的从密文恢复相应的明文。
5.4.2. ElGamal公钥密码体制的安全性
rsa公钥密码算法
rsa公钥密码算法
RSA公钥密码算法是目前最广泛使用的加密算法之一,也被广泛
应用于保护网络通信、数据传输等领域。
它是由三位数学家Rivest、Shamir、Adleman于1978年发明的,算法的主要原理是利用大质数分
解的难度来保证加密的安全性。
RSA算法是基于两个大质数的乘积所构成的公钥和私钥来实现的。
在加密过程中,发送方使用接收方的公钥对明文进行加密,接收方使
用自己的私钥对密文进行解密。
由于分解大质数的计算复杂度非常高,因此攻击者想要通过破解RSA加密算法来获取信息几乎是不可能的。
在实际应用中,RSA算法还可以用于数字签名,即发送方使用自
己的私钥对数字信息进行签名,接收方使用发送方的公钥对数字签名
进行验证,以此保证数字信息的完整性和真实性。
总的来说,RSA公钥密码算法是一种非常安全的加密算法,它已
经成为现代信息安全领域的重要基础工具之一。
第五章 双(公)钥加密体制
数字签名示意图
发 者 送 A 接 者 收 B
运 D 算 明 P 文 采 私 SKA 用 钥 进 数 签 行 字 名
网 上 D (P) DSKA(P) 在 络 SKA 传 输
运 E 算 明 P 文 采 A的 钥 用 公 PKA 进 签 验 行 名 证
4.4数据加密技术的应用
单向散列算法
简介 MD5算法 SHA-1算法 其它算法
报文摘要实现示意图
发送者A
EK (H(m))
D
接收者B H(m)
H(m) MD算法 报文m 运算E
EK (H(m))
EK (H(m))+m
采用MD算法产生 采用加密运算加 密报文摘要 报文摘要
判断H(m)和 采用解密运算进 H'(m)是否相等? 行解密 m H'(m) MD算法 采用MD算法产生 报文摘要
简介
名称: 名称:Hash Function、哈希函数、单向杂凑函数、数据(消息)摘要函数 、哈希函数、单向杂凑函数、数据(消息) 单向散列函数 H(M) 作用于一任意长度的消息 M,它返回一固定长度的散 , 列值 h: : h = H(M) 单向散列函数的特性: 单向散列函数的特性: 给定 M,很容易计算 h。 , 。 很难。 给定 h,根据 h = H(M) 计算 M 很难。 , 很难。 给定 M,要找到另一消息 M’,并满足 H(M) = H(M’) 很难。 , , 唯一的“指纹” 单向散列函数的重要之处就是赋予 M 唯一的“指纹”。 密码学上常用的单向散列函数有RSA公司 公司MD系列中的 系列中的MD2、MD4、MD5,美 密码学上常用的单向散列函数有 公司 系列中的 、 、 , 项目的RIPEMD、RIPEMD-128、 国NIST的SHA、SHA-1,欧盟 的 、 ,欧盟RIPE项目的 项目的 、 、 RIPEMD-160等。 等
RSA公钥密码系统
Internotional Data Encryption Algorithm 简称为‘IDEA’)。另外,使 用三个不同密钥的三重 DES 加密算法也在使用,因此出现了完善现 有加密算法以适应 Internet 和 E-Mail 的要求。经过充分比较,认识到 把公钥密码技术和密钥密码技术相结合,可以获得安全性和高性能的 结合。为此选择了使用临时随机密钥的 DES 算法加密信息,再使用 RSA 算法对 DES 密钥进行数字签名和加密,为了避免冒充,数字签 名是必须的。因此,解决 RSA 算法的关键问题成为这一工作成功的 保证。笔者在实施过程中对其有了一个较全面的了解,现介绍如下。
4. RSA 公钥密码系统
1978 年 Rivest、Shamir 和 Adleman 提出的公钥密码系统,称为 RSA 公钥密码系统,是第一个较为成功的公钥密码系统,也是目的 应用比较广泛的公钥密码系统,现作一简要的介绍。
4.1 RSA 算法中用到的一些量 (1)大素数(如大于 100 位十进制数)p 和 q(保密的); (2)n=p×q(公开的); (3)n 的 Euler 函数Φ(n)=(p-1)×(q-1)(保密的); (4)与Φ(n)互素的加密密钥 e(公开的),即 e 满足 gcd{e,Φ(n)}= 1; (5)作为解密密钥,选取 e 相对于模Φ(n)的逆元素 d(保密的), d 满足 d×e≡l (modulo Φ(n))。 4.2 RSA 算法 若以 m 代表明文,c 代表密文,则 (1)加密算法 c≡E(m)≡me (modulo n),即有 c=mod(me,n); (2)解密算法 m≡D(c)≡cd (modulo n),即有 m=mod(cd,n)。 4.3 RSA 算法的证明 只要证明解密算法能恢复明文即可。由于
密码学第五章 公钥密码 5.4 椭圆曲线公钥密码体制
一、ECC应用背景
1985年,Koblitz 和Miller独立地提出了椭圆曲 线公钥密码体制(ECC),安全性基于椭圆曲线群上 的离散对数问题的难解性,该问题目前最好的解法 是指数级时间的算法。
一般认为,RSA和D-H密钥交换协议需用1024 比特以上的模数才安全,但对ECC,只要160比特 的模数就可达到同样级别的安全性。
y
x
c
解得
P(x1, y1)
Q(x2, y2)
R=P+Q
x
R’
x3
y3
2 ( x1
x1 x2 x3 )
y1
二、有限域上的椭圆曲线
y2 x3 ax b
当P≠Q时,
y2 y1
x2 x1
当P=Q时,
3x12 a
2 y1
y
P(x1, y1) Q(x2, y2)
R
x
R’
R=2P
x R’Biblioteka 二、有限域上的椭圆曲线2、椭圆曲线上的加法运算
y
当P与Q关于x轴对称时,
P
定义P与Q的和为O ,即
P+Q=O
x
并称 O 为无穷远点
Q
二、有限域上的椭圆曲线
可以证明,有限域上的椭圆曲线在我们定义 的加法运算下构成群。
既然构成群,就必然有零元和负元,这里的 零元就为无穷远点O,P的负元就是它关于x轴的对
(1)在[1,n-1]内随机选取整数 k,计算 kP = ( x1,y1 )
(2)计算 kQ = (x2,y2),若 x2= 0,则回到(1)
(3)计算 c = mx2 密文为 (x1,y1 ,c)
三、椭圆曲线公钥密码体制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国剩余定理提供了一个非常有用的特性, 即在模M下可将非常大的数x由一组小数 (a1,a2,…,ak)表达。
例4.4 由以下方程组求x。
x 1mod 2 x 2 mod 3 x 3mod 5 x 5 mod 7
解: M=2· 5· 3· 7=210,M1=105,M2=70, M3=42,M4=30,易求e1≡M-11 mod 2≡1,e2≡M1 mod 3≡1,e ≡M-1 mod 5≡3,e ≡M-1 mod 7≡4,所 2 3 3 4 4 以 x mod 210≡(105×1×1+70×1×2+42×3×3+30×4× 5) mod 210≡173,或写成x≡173 mod 210。
x b1 (mod m1 ), x b2 (mod m2 )
有一个共同解的充要条件是
b1 b2 (mod d ), 其中d m1,m2) (
定理5.3 联立同余式
x bi (mod mi ), i 1,2,, n
有一个共同解的充要条件是
(mi , m j ) bi b j , 其中i j , i, j 1,2, , n
于是公钥密码体制的概念是在解决单钥密码 体制中最难解决的两个问题时提出的,这两个 问题是密钥分配和数字签名。
公钥密码体制的原理
公钥密码算法的最大特点是采用两个相关密 钥将加密和解密能力分开,其中一个密钥是公 开的,称为公开密钥,简称公开钥,用于加密; 另一个密钥是为用户专用,因而是保密的,称 为秘密密钥,简称秘密钥,用于解密。因此公 钥密码体制也称为双钥密码体制。算法有以下 重要特性: 已知密码算法和加密密钥,求解 密密钥在计算上是不可行的。
的ei是惟
下面证明对i∈{1,2,…,k},上述x满足 ai(mod mi)≡x。注意到当j≠i时,mi|Mj,即 Mj≡0(mod mi)。所以 (Mj×ej mod mj) mod mi ≡((Mj mod mi)×((ej mod mj) mod mi)) mod mi ≡0 而(Mi×(ei mod mi)) mod mi≡(Mi×ei) mod mi≡1 所以x(mod mi)≡ai,即ai(mod mi)≡x
5.3.3Wilson定理
Wilson定理给出p是素数的一个 充要条件, 此定理在理论上具有比较重要的价值. 定理(Wilson):p是素数的充要条件是
( p 1)! 1(mod p)
5.3.4欧拉函数
设n是一正整数,小于n且与n互素的正整 数的个数称为n的欧拉函数,记为φ(n)。 例如: φ(6)=2 ,φ(7)=6 ,φ(8)=4。 若n是素数,则显然有φ(n)=n-1。 定义5.1 欧拉函数 (m) 是一个定义在正整 数上的函数, (m)的值等于序列 0,1,2,…,m-1中与m互素的数的个数.
ua 1(mod b), vb 1(mod a)
欧几里得(Euclid)算法是数论中的一个基 本算法,是求两个正整数的最大公因子的简化 过程。而推广的Euclid算法不仅可求两个正整 数的最大公因子,而且当两个正整数互素时, 还可求出其中一个数关于另一个数的乘法逆元。
例 求gcd(1769, 550)。 gcd(1769,550)=1,550-1 mod 1769=550。
注意这里的易于计算和不可行两个概念与计 算复杂性理论中复杂度的概念极为相似,然而 又存在着本质的区别。在复杂性理论中,算法 的复杂度是以算法在最坏情况或平均情况时的 复杂度来度量的。而在此所说的两个概念是指 算法在几乎所有情况下的情形。称一个函数是 陷门单向函数,是指该函数是易于计算的,但 求它的逆是不可行的,除非再已知某些附加信 息。当附加信息给定后,求逆可在多项式时间 完成。
总结为: 陷门单向函数是一族可逆函数fk, 满足 ① Y=fk(X)易于计算(当k和X已知时)。 ② X=f-1k(Y)易于计算(当k和Y已知时)。 ③ X=f-1k(Y)计算上是不可行的(当Y已知但k 未知时)。 因此,研究公钥密码算法就是要找出合适的 陷门单向函数。
5.2计算复杂性理论
计算复杂性理论是分析密码技术的计算要 求和研究破译密码的固有难度的基础. 用于破译密码算法的计算复杂性,决定了该 密码的强度.算法的计算复杂性是用该算 法所需的计算时间(T)和存储空间(S)要 求来度量的.计算时间和存储空间通常理 解为所需输入数据的长度n的函数f(n),表 示用”大O”表示法:
对模M有惟一解:其中ei满足
M ei 1 mod mi mi
i 1,
2, , k
证明:设
Mi M
mi
ml
l 1 l i
k
,i=1,2,…,k,由Mi
的定 义得Mi与mi是互素的,可知Mi在模mi下有惟 一的
乘法逆元,即满足 一的。
M ei 1 mod mi mi
f (n) ( g (n)) ,若存在满足下面要求的常数 c和 n0 , 使得
f (n) c g (n) ,当n n0
例:设f(n)=8n+10,那么f(n)=O(n),因为 8n+10≤9n,当n≥10. 一般地,若f(n)是下面形式的余定理) 设m1,m2,…,mk是 k 两两互素的正整数,M mi ,则一次同余方 i 1 程组
a1 mod m1 x a2 mod m2 x a mod m x k k M M M x e1a1 e2 a2 ek ak mod M m2 mk m1
第5章 RSA公钥密码体制
开课学院:数学学院 主讲教师:朱文余
Email:zhuwenyus@
第5章 RSA公钥密码体制
5.1 概论 5.2 计算复杂性理论 5.3 必备的数论知识 5.4 RSA 公钥系统 5.5 RSA 公钥系统的一种改进方案 5.6 大素数的产生 5.7因数分解 5.8对RSA 体制中小指数的攻击 5.9 Rabin密码体制 5.10 RSA 在有限域Fp上多项式上的推广
公钥密码算法应满足的要求
公钥密码算法应满足以下要求: ① 接收方B产生密钥对(公开钥Keb和秘密钥 Kdb)在计算上是容易的。 ② 发方A用收方的公开钥对消息m加密以产 生密文c,即 c=E[m, Keb] 在计算上是容易的。 ③ 收方B用自己的秘密钥对c解密,即m=D[c, Kdb]在计算上是容易的。
图5.1是公钥体制加密的框图,加密过程有以下几步: ① 要求接收消息的一方,产生一对用来加密和解密 的密钥,如图中的接收者B,产生一对密钥Keb,Kdb ,其中Keb是公开钥,Kdb是秘密钥。 ② 接收方B将加密密钥(Keb)予以公开。另一密 钥则被保密(Kdb)。 ③ A要想向B发送消息m,则使用B的公开钥加密m ,表示为c=E[m, Keb],其中c是密文,E是加密算法。 ④ B收到密文c后,用自己的秘密钥Kdb解密,表示 为m=D[c, Kdb],其中D是解密算法。
t
t 1
a1n a0
t
式中t为常数,那么有 f (n) O(n )
即忽略全部常数和低阶项. 通常,算法按其时间和空间的复杂性进行分类,如 果一个算法的复杂性是不依赖于n:O(1),常数级的; 多项式时间算法:
f (n) O(n )
t
指数时间算法: O (t ) ,式中t为常数,f(n) 是n的函数.任何密码算法的一个基本要求是: 加解密只需要多项式时间的代价,破译需要指 数时间的代价.书上表5-1给出了不同的算法 簇的运行时间.
中国剩余定理
中国剩余定理是数论中最有用的一个工具, 定理说如果已知某个数关于一些两两互素的数 的同余类集,就可重构这个数。 例如:Z10中每个数都可从这个数关于2和5 (10的两个互素的因子)的同余类重构。比如 已知x关于2和5的同余类分别是[0]和[3],即x mod 2≡0,x mod 5≡3。可知是偶数且被5除后 余数是3,所以可得8是满足这一关系的惟一的 x。
f (n )
5.2.2问题复杂性和NP完全
P-问题:可利用确定性算法在多项式时间 内可解决. NP问题(整数分解):可利用非确定性算法 在多项式时间内可解决,或者给定一个解 ,判断这个解是否正确可在多项式时间内 可解决. NP完全问题(背包问题): NP问题中最困 难的问题.--------矩阵覆盖问题.
④ 敌手由B的公开钥Keb求秘密钥Kdb在计算 上是不可行的。 ⑤ 敌手由密文c和B的公开钥Keb恢复明文m 在计算上是不可行的。 ⑥ 加、解密次序可换,即 Ekeb[Dkdb(m)]=Dkdb[Ekeb(m)]
其中最后一条虽然非常有用,但不是对所有 的算法都作要求。
以上要求的本质之处在于要求一个陷门单向 函数。单向函数是两个集合X、Y之间的一个 映射,使得Y中每一元素y都有惟一的一个原 像x∈X,且由x易于计算它的像y,由y计算它 的原像x是不可行的。这里所说的易于计算是 指函数值能在其输入长度的多项式时间内求出, 即如果输入长n比特,则求函数值的计算时间 是na的某个倍数,其中a是一固定的常数。这 时称求函数值的算法属于多项式类P,否则就 是不可行的。例如,函数的输入是n比特,如 果求函数值所用的时间是2n的某个倍数,则认 为求函数值是不可行的。
5.1概论
1.传统密码在密钥分配及管理上是极其困 难的; 2.在商业上有时不可能作到通信双方事先 预约使用相同的密钥.
单钥密码体制在进行密钥分配时,要求通信 双方或者已经有一个共享的密钥,或者可借助 于一个密钥分配中心。对第一个要求,常常可 用人工方式传送双方最初共享的密钥,这种方 法成本很高,而且还完全依赖信使的可靠性。 第二个要求则完全依赖于密钥分配中心的可靠 性。第二个问题数字签名考虑的是如何为数字 化的消息或文件提供一种类似于为书面文件手 书签字的方法。 1976年W.Diffie和M.Hellman对解决上述两个 问题有了突破,从而提出了公钥密码体制。