版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1公钥密码体系第四章主讲人:任凯联系方式:renkai_jlxy@163.com百度云盘:/s/1dDhjNYL2本章提要4.1公钥密码概述4.2RSA密码系统4.3Diffie-Hellman密钥交换4.4数字签名4.5
数字签名的算法4.6PGP3
问题1:
甲必须对文件加密才能保证不被其他人查看其内容,那么到底应该用什么加密技术,才能使文件传送既安全又快速呢?答:采用一些成熟的对称加密算法,如DES、3DES、IDEA等对文件加密USBKey的密码学原理4USBKey的密码学原理
问题2:
如果黑客截获此文件,是否用同一算法就可以解密此文件呢?答:不可以,因为加密和解密均需要:加密算法和对称密钥,加密算法需要用一个对称密钥来解密,黑客并不知道此密钥5USBKey的密码学原理
问题3:
密钥用电话通知,电话可能被窃听,通过Internet发此密钥给乙,可能被黑客截获,那么乙怎样才能安全地得到其密钥呢?答:方法是用非对称密钥算法加密对称密钥后进行传送。非对称加密算法需要两个密钥:公开密钥(PublicKey)和私有密钥(PrivateKey)。甲乙双方各有一对公/私钥,公钥可在Internet上传送,私钥自己保存。这样甲就可以用乙的公钥加密对称加密算法中的对称密钥。即使黑客截获到此密钥,也会因为黑客不知乙的私钥,而解不开对称密钥,因此也解不开密文,只有乙才能解开密文6USBKey的密码学原理
问题
4
:既然甲可以用乙的公钥加密其对称密钥,为什么不直接加密文件呢?这样不仅简单,而且省去了用对称加密算法加密文件的步骤?
答:不可以这么做。因为非对称密码算法有两个缺点
:
加密速度慢
,
比对称加密算法慢
10
~
100
倍
,
因此只可用其加密小数据
(
如对称密钥
)
,另外加密后会导致得到的密文变长。因此一般采用对称加密算法加密其文件
,
然后用非对称算法加密对称算法所用到的对称密钥7USBKey的密码学原理故事未完,且听下回分解……8导读非对称密码系统的解密密钥与加密密钥是不同的,一个称为公开密钥,另一个称为私人密钥(或秘密密钥),因此这种密码体系也称为公钥密码体系公钥密码除可用于加密外,还可用于数字签名2005年4月1日实行《中华人民共和国电子签名法》91公钥的起源公钥密码体系于1976年由W.Diffie和M.Hellman提出公钥密码又叫非对称密码,这种密码体系采用了一对不同的密钥——加密密钥和解密密钥这一对密钥,一个可以公开(称之为公钥),另一个为用户专用(私钥)4.1公钥密码概述104.1公钥密码概述2数学原理陷门单向函数公钥密码系统是基于陷门单向函数的概念单向函数是易于计算但求逆困难的函数而陷门单向函数是在不知道陷门信息情况下求逆困难,而在知道陷门信息时易于求逆的函数113公开密钥算法的特点(1)发送者用加密密钥PK(publickey)对明文X加密后,接收者用解密密钥SK(securekey)解密,即可恢复出明文,或写为:
DSK(EPK(X))X
加密和解密的运算可以对调,即EPK(DSK(X))X(2)加密密钥是公开的,但不能用它来解密,即
DPK(EPK(X))X
(3)在计算机上可以容易地产生成对的PK和SK(4)从已知的PK实际上不可能推导出SK,即从PK到SK是“计算上不可行的”(5)加密和解密算法都是公开的4.1公钥密码概述12(1)通信保密:公钥加密,私钥解密,通信双方不需要交换密钥就可以实现保密通信
4公钥密码系统用于三个方面13
(2)数字签名:私钥加密(数字签名),公钥解密(验证签名),可实现一个用户加密多个用户解读4公钥密码系统用于三个方面14
(3)
密钥交换实际应用中,考虑效率和安全性两个因素,通常用非对称密钥密码传递密钥,用对称密钥密码系统实现保密通信公钥加密,私钥解密Diffie-Hellman密钥交换协议
4公钥密码系统用于三个方面154.1公钥密码概述密钥个数密钥是否保密算法速度应用方面对称密钥1保密置换、替换、移位、压缩、扩展、异或快保密通信非对称密钥2一个公开一个保密陷门单向函数慢保密通信数字签名密钥交换对称密钥与非对称密钥的比较:16第一个较完善的公开密钥算法RSA
RSA密码系统的安全性基于大数分解的困难性求一对大素数的乘积很容易,但要对这个乘积进行因式分解则非常困难(求逆)因此,可以把一对大素数的乘积公开作为公钥,而把素数作为私钥,从而由一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积4.2.1RSA算法17公钥密码系统一般都涉及数论的知识,如素数、欧拉函数、中国剩余定理等黄蓉遇上神算子瑛姑,给她出的三道题目中有一题是这样的:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?也就是说:有一个未知数,这个数除以三余二,除以五余三,除以七余二,问这个数是多少?intx;for(x=0;x<100;x++){if((x%3==2)&&(x%5==3)&&(x%7==2)){System.out.println("这个数字是:"+x);}}
4.2.1RSA算法4.2.1RSA算法小于n且与n互素的正整数的个数,记为φ(n),把φ(n)成为欧拉函数对于素数p,每一个小于p的正整数皆与p互素,所以φ(p)=p–118194.2.1RSA算法如果p,q为两个素数,p≠q,n=pq,
那么φ(n)=φ(pq)=φ(p)*φ(q)=(p-1)(q-1)求φ(30)φ(30)=φ(2)φ(3)φ(5)=(2-1)(3-1)(5-1)=8求φ(70)φ(70)=
φ(2)φ(7)φ(5)=(2-1)(5-1)(7-1)=12欧拉定理:对于任意互素的整数a和n,有aφ(n)
≡1modn,这里φ(n)是欧拉函数20RSA公开密钥密码体制中每个参数的计算:①计算n:用户秘密地选择两个大素数p和q,计算出npq②计算φ(n):φ(n)(p
1)(q
1)③选择e:从[1,φ(n)1]中选择一个与φ(n)互素的数e作为公开的加密指数④计算d作为解密指数:用户计算出满足下式的d
ed
1modφ(n)
即:(ed
–1)modφ(n)=0 ⑤得出所需要的公开密钥和秘密密钥:
公开密钥(即加密密钥)PK{e,n}
秘密密钥(即解密密钥)SK{d}p、q、φ(n)和d是秘密的陷门(相互不是独立的),不可泄露4.2.1RSA算法21RSA加密消息m时(这里假设m是以十进制表示的),首先将消息分成大小合适的数据分组,然后对分组分别进行加密每个分组的大小应该比n小设ci为明文分组mi加密后的密文,则加密公式为
ci=mie(modn)解密时,对每一个密文分组进行如下运算:
mi=cid(modn)(encryptiondiscryption)4.2.1RSA算法22选p=5,q=11,则n=pq=55,φ
(n)=(p−1)(q−1)=40随机选择e(与φ(n)互素)设e=7d要满足ed
modφ(n)140=5*7+57=1*5+2 5=2*2+12=2*1+0举例RSA公钥/私钥获取过程5=40-5*72=7-1*51=5-2*2
1=5-2*(7-1*5)=3*5–2*7=3*(40–5*7)–2*7=3*40–17*7=(40-17)*7–4*40
所以,d=23ed=7*23=161公开密钥:{7,55}秘密密钥:{23}课堂练习在RSA算法中两个质数p=17,
q=11,加密密钥为e=7,计算密钥d。n=pq=187,φ(n)=(p−1)(q−1)=160d要满足ed
modφ(n)1d=232324课堂练习如果p=5,q=7,e=5,m=2,求密文n=pq=35,c=memodn所以,c=3225课堂练习假设需要加密的明文信息为C=16,选择:e=3,p=5,q=11,试使用RSA算法求明文n=pq=55,p和q是素数φ(n)=(p−1)(q−1)=40
ed
1modφ(n),e=3,所以d=27m=cdmodn=1627mod55=3626算法分析如果明文mi同n不是互为素数(m取p或q
),就有可能出现消息暴露情况。一个明文同n有公约数的概率不大于1/p+1/q,因此,对于大的p和q来说,这种概率是非常小的。27算法分析(e,n)=(5,35),接收到的密文是c=10,求明文mci=mie(modn)mi=cid(modn)n=pq=35,p和q是素数,所以p=5,q=7φ(n)=(p−1)(q−1)=24
ed
1modφ(n),e=5,所以d=5edmodφ(n)=105mod35=5m=cdmodn284.2.2对RSA算法的挑战在1977年Rivest、Shamir及Adleman提出公开钥密码系统时,他们认为每秒钟百万次运算的计算机可以在4小时之内因子分解一个50位的数,但是分解一个100位的数要花几乎一个世纪,而200位的数大约要花40亿年。甚至考虑到计算速度可以再提高百万倍(甚至尚未出现),基于200位数的密码看来是十分安全的
为了显示这一技术的威力,RSA公司的研究人员用一个129位的十进制数N和一个4位数e对一个关于秃鹰的消息作了编码。并刊登了那个密文,同时给出了N和e。RSA公司还悬赏100美元,奖给第一个破译这密码的人数学史上往往有意外的事发生。这个叫阵的RSA-129仅仅在十七年之后就败下阵来。一批松散组成的因子分解迷,大约有六百多人,分布在二十几个国家。他们经过八个月的努力最后于1994年4月为RSA-129找到了64位数和65位数两个素数因子29RSA工具使用30RSA工具使用1、在“NumberBase”组合框中选择进制为102、单击“Start”按钮,获取一个随机数种子3、在“KeySize(Bits)”编辑框中输入324、单击“Generate”按钮生成5、复制“Prime(P)”编辑框中的内容到“PublicExp.(E)”编辑框6、在“NumberBase”组合框中选择进制为167、记录下“Prime(P)”编辑框中的十六进制文本内容8、单击“Start”按钮9、在“KeySize(Bits)”编辑框中输入所期望的密钥位数,从32到4096,位数越多安全性越高运算速度越慢,一般选择1024位足够了10、单击“Generate”按钮生成11、单击“Test”按钮测试,在“Messagetoencrypt”编辑框中随意输入一段文本,单击“Encrypt”按钮加密,再单击“Decrypt”按钮解密,看解密后的结果是否和所输入的一致,如果一致表示所生成的RSA密钥可用,否则需要重新生成备注:“PrivateExp.(D)”编辑框中的内容为私钥,“PublicExp.(E)”为公钥,“Modulus(N)”编辑框中的内容为公共模数31补充数论基础费尔马定理(欧拉定理推论):设x和p都是正整数,如果p是素数,且gcd(x,p)=1,则
xp-1≡1modp费尔马小定理:设x和p都是正整数,如果p是素数,则xp
≡x(modp)。易得,如果p是素数,则x-1modp≡xp-2modp。因为xφ(p)
≡1modp,所以x*xφ(p)-1
≡1modp,所以x-1
≡xφ(p)-1modp例如,与30互素的数构成一个模30群Z*30={1,7,11,13,17,19,23,29},即|Z*30|=φ(30)=8φ(30)=φ(5)*φ(2)*φ(3)=4*1*2=8求7模30的逆元:7-1
≡7φ(30)-1mod30=77mod30=1332补充数论基础利用费尔马小定理求7模96的乘法逆元。x-1
≡xφ(p)-1(modp)7-1
=7φ(96)-1mod96欧拉定理推论:如果n=p^α,则φ(n)=(p-1)p^(α-1)φ(96)=φ(3*25)=φ(3)*(2-1)*25–1=2*24=327-1
=731mod96=55334.3Diffie-Hellman密钥交换Diffie-Hellman算法是第一个公开密钥算法,发明于1976年Diffie-Hellman算法能够用于密钥分配,但不能用于加密或解密信息34Diffie-Hellman算法的安全性在于在有限域上计算离散对数非常困难。定义素数p的本原根(PrimitiveRoot)为一种能生成1~p−1所有数的一个数,即如果a为p的本原根,则amodp,a2modp,…,ap−1modp两两互不相同,构成1~p−1的全体数的一个排列。对于任意数b及素数p的本原根a,可以找到一个惟一的指数i,满足:b
=ai
modp,0≤i≤p−1
称指数i以a为底模p的b的离散对数。4.3.1Diffie-Hellman算法354.3.1Diffie-Hellman算法例如p=11,a=221mod11=222mod11=423mod11=824mod11=525mod11=1026mod11=927mod11=728mod11=329mod11=6210mod11=1那么,1,2,……,10称为以2为底模11的2,4,……,1的离散对数36
如果Alice和Bob在不安全的信道上交换密钥,步骤如下:(1)Alice和Bob协商一个大素数p及p的本原根a,a和p可以公开;(2)Alice秘密产生一个随机数x,计算X=axmodp,然后把X发送给Bob;(3)Bob秘密产生一个随机数y,计算Y=aymodp,然后把Y发送给Alice;(4)Alice计算k=Yxmodp;(5)Bob计算k'=Xymodp。
k和k'是恒等的,因为k=Yxmodp
=(ay)xmodp
=(ax)ymodp
=Xymodp
=k'4.3.1Diffie-Hellman算法设a=2,p=11设x=2,则X=4设y=3,则Y=8k=82mod11=9k'=43mod11=9错了吧?=(aymodp)x
mod
p
采用了模简化运算374.3.1Diffie-Hellman算法38Alice和Bob需进行密钥交换,例如:二者协商后决定采用素数p=353及其本原根a=3。Alice选择随机数x=97,计算X=397mod353=40,并发送给Bob。Bob选择随机数y=233,计算Y=3233mod353=248,并发送给Alice。Alice计算k=Yx
modp=24897mod353=160。Bob计算k'=Xymodp=40233
mod353=160。k和k'即为秘密密钥。4.3.1Diffie-Hellman算法39课堂练习设素数p=13,本原根a=2,Alice取随机数x=7,Bob取随机数y=4,求秘密密钥k。X=27mod13=11Y=24mod13=3k=Yxmod13=37mod13=3k’=Xymod13=114mod13=3所以秘密密钥k为3课堂练习在Diffie-Hllman方法中,
公共素数p
=
11,
本原根a=
2(1)
如果用户A
的公钥X=
9,
则A
的私钥x为多少?
(2)
如果用户B
的公钥Y
=
3,
则共享密钥K
为多少?26mod11=9,所以A的私钥为x=6K=Yxmod11=36mod11=3验证:28mod11=3,所以B的私钥为y=3K=Xymod11=98mod11=34041Diffie-Hellman密钥交换容易遭受中间人攻击:
(1)Alice发送公开值(a、p和X)给Bob,攻击者Carol截获这些值并把自己产生的公开值发送给Bob。
(2)Bob发送公开值Y给Alice,Carol截获它然后把自己的公开值发送给Alice。
(3)Alice和Carol计算出二人之间的共享密钥k1。
(4)Bob和Carol计算出另外一对共享密钥k2。4.3.2中间人攻击42密钥交换双方通过数字签名和公钥证书相互认证可以挫败中间人攻击。在密钥交换之前,密钥交换的双方Alice和Bob各自拥有公钥/私钥对和公开密钥证书,Alice和Bob签名算法和验证算法分别为SigA、SigB、VerA、VerB。可信中心TA有一个签名方案,签名算法为SigTA,公开的签名验证算法为VerTA,Alice和Bob各持有一个证书:C(A)=(ID(A),VerA,SigTA(ID(A),VerA))C(B)=(ID(B),VerB,SigTA(ID(B),VerB))其中ID(A)为用户身份信息,证书C(A)由TA事先签发
4.3.3认证的Diffie-Hellman密钥交换43Alice和Bob产生共享秘密密钥的过程:(1)Alice秘密产生一个随机数x,计算X=axmodp,将X发送给Bob;(2)Bob秘密产生一个随机数y,首先计算Y=aymodp,然后计算
k=Xymodp
和yB=SigB(Y,X),最后Bob把(C(B),Y,yB)发送给Alice;(3)Alice计算k=Yxmodp,并使用VerB验证yB
,使用VerTA验证C(B);并且计算yA=SigA(Y,X),并将结果(C(A),yA)发给用户Bob(4)Bob使用VerA
验证yA,使用VerTA验证C(A)。若攻击者Carol插在用户Alice和Bob之间,显然Carol可能截获Alice发送的X,并将其替换为X´=ax’modp,然后Carol截获Bob发送的Y=aymodp和SigB(Y,X´)。攻击者Carol有可能将Y替换为Y´=ay’modp,或将SigB(Y,X´)替换为SigB(Y´,X),但由于Carol不知道Bob的签名算法SigB,所以他无法计算SigB(Y´,X)。同样,Carol也无法知道A的签名SigA。这样就达到了抗击中间人攻击的目的。444.3.4三方或多方Diffie-HellmanDiffie-Hellman密钥交换协议很容易扩展到三方或多方的密钥交换。下例中,Alice、Bob和Carol一起产生秘密密钥。设p=11,a=2,x=2,y=3,z=4X=22mod11=4Z’=52mod11=3k=42mod11=5Y=23mod11=8X’=43mod11=9k=33mod11=5Z=24mod11=5Y’=84mod11=4k=94mod11=545网络安全的四个安全要素机密性拦截通讯是否安全??Claims未发出未收到抗抵赖是否发出/收到信息?完整性篡改发出的信息被篡改过吗?真实性伪造我在与谁通讯?/是否有权?
46USBKey的密码学原理
问题
5
:
如果黑客截获到密文,同样也截获到用公钥加密的对称密钥,由于黑客无乙的私钥,解不开对称密钥,但如果他用对称加密算法加密一份假文件
,
并用乙的公钥加密一份假文件的对称密钥,并发给乙,乙会以为收到的是甲发送的文件,会用其私钥解密假文件
,
并很高兴地阅读其内容,但却不知已经被替换。怎么办
?
答案:数字签名。数字签名是通过散列算法
,
如
MD5
、
SHA-1
等算法从大块的数据中提取一个摘要。从这个摘要中不能通过散列算法恢复出任何一点原文,但如果原信息受到任何改动,得到的摘要却肯定会有所不同。甲可以对文件进行散列算法得到摘要,并用自己的私钥加密
,这样即使黑客截获也无用。黑客不会从摘要内获得任何信息,但乙却不一样,他可用甲的公钥解密,得到其摘要,并对收到的文件
也进行同样的散列算法,通过比较其摘要是否一样
,
就可得知此文件是否被篡改过
这样不仅解决了证明发送人身份的问题,同时还解决了文件是否被篡改问题47数字签名应用48数字签名应用49数字签名应用防止冒充网站通讯加密50数字签名应用51https请求过程52证书的使用例如,使用Internet进行联机银行业务时,知道您的Web浏览器正在与银行的Web服务器直接和安全地通讯就是很重要的。在发生安全的交易之前,您的Web浏览器必须能够鉴定Web服务器的身份。就是说,进行交易之前,Web服务器必须能够向您的Web浏览器证明它的身份。MicrosoftInternetExplorer使用安全套接字层(SSL)
来加密消息并在Internet上安全地传输它们,而大多数其他新式Web浏览器和Web服务器也使用该技术。
53证书的使用当您使用启用SSL的浏览器连接到联机银行的Web服务器时,如果该服务器拥有证书颁发机构(例如Verisign)颁发的服务器证书,那么将发生如下事件:
您使用Web浏览器访问银行的安全联机银行登录网页。如果使用的是InternetExplorer,一个锁形图标将出现在浏览器状态栏的右下角,以表示浏览器连接到的是安全Web站点。其他浏览器以其他方式表示安全连接。54证书的使用银行的Web服务器将服务器证书自动地发送到您的Web浏览器。
为了验证Web服务器的身份,您的Web浏览器将检查您计算机中的证书存储区。如果向银行颁发证书的证书颁发机构是可信任的,则交易可以继续,并且将把银行证书存储在您的证书存储区中。
55证书的使用要加密与银行Web服务器的所有通讯,您的Web浏览器可创建唯一的会话密钥。您的Web浏览器用银行Web服务器证书来加密该会话密钥,以便只有银行Web服务器可以读取您的浏览器所发送的消息。(这些消息中的一部分将包含您的登录名和密码以及其他敏感信息,所以该等级的安全性是必需的。)建立安全会话,并且在您的Web浏览器和银行的Web服务器之间以安全方式发送敏感信息。56证书的使用当您将软件代码从Internet下载或者购买光盘并安装在计算机上时,还可以用证书来确认在这些软件代码的真实性。无签名软件(没有有效的软件发布商证书的软件)可以威胁到计算机和存储在计算机上的信息。574.4数
字
签
名手写签名长期以来被用作身份的证明或表示同意文件的内容,手写签名特点:1.签名是可信的2.签名不可伪造3.签名不可重用4.签名的文件是不可改变的5.签名是不可抵赖的
:并非保证原文的秘密性584.4数字签名用私钥加密信息,这时就称为对信息进行数字签名。将密文附在原文后,称为数字签名其他人用相应的公钥去解密密文,将解出的明文与原文相比较,如果相同则验证成功,这称为验证签名。594.4.2数字签名的方法基本的数字签名协议:1.Alice用她的私钥对文件加密,从而对文件签名2.Alice将签名的文件传给Bob3.Bob用Alice的公钥解密文件,从而验证签名这个协议没有通过第三方去验证签名。甚至协议的双方也不需要第三方来解决争端604.4.2数字签名的方法数字签名有没有满足手写签名的特征1.签名是可信的:Bob用Alice的公钥验证信息时,他知道是由Alice签名的2.签名是不可伪造的:只有Alice知道她的私钥3.签名是不可重用的:签名是文件的函数,并且不可能转换成另外的文件4.被签名的文件是不可改变的:如果文件有任何改变,文件就不可能用Alice的公钥验证成功5.签名是不可抵赖的:Bob不用Alice的帮助就能验证Alice的签名614.4.2数字签名的方法存在四个问题:Q1:公钥密码算法对长文件签名效率太低?A1:只对文件的散列值签名。Q2:没有实现多重签名—多个人签?A2:采用单向散列函数轮流签名,统一提交Q3:签名文件没有保密功能?(签名文件只让Bob解开)A3:带加密的数字签名(p53)Q4:Bob和Alice声称的公钥与他们的身份是否相同?A4:通过CA来解决这个问题(见第七章)62
效率太低怎么办?
数字签名协议和单向散列函数一起使用。不对整个文件签名,只对文件的散列值签名
1.Alice产生文件的散列值,Alice用她的私钥对散列值加密,凭此表示对文件签名。
2.Alice将文件和散列签名送给Bob。
3.Bob用Alice发送的文件产生文件的散列值,然后用Alice的公钥对签名的散列值解密。
4.Bob解密的散列值与自己产生的散列值相同,签名就是有效的。这种方法使计算速度大大地提高,并且两个不同的文件有相同的160比特散列值的概率为1/2160。因此,使用单向散列函数的签名和文件签名一样安全。4.4.2数字签名的方法63多重签名采用单向散列函数:1.Alice对文件的散列值签名。2.Bob对文件的散列值签名。3.Bob将他的签名交给Alice。4.Alice把文件、她的签名和Bob的签名发给Carol。5.Carol验证Alice和Bob的签名。641.Ailce用她的私钥对信息签名:SA(M)2.Alice用Bob的公钥对签名的信息加密,然后送给Bob:EB(SA(M))3.Bob用他的私钥解密:DB(EB(SA(M)))=SA(M)4.Bob用Alice的公钥验证并且恢复出信息:VA(SA(M))=M4.4.3带加密的数字签名签名文件没有保密功能654.4.3带加密的数字签名通过把公钥密码和数字签名结合起来,可把数字签名的真实性和加密的安全性结合起来。想象写的一封信:签名提供了原作者的证明,而信封提供了秘密性。66数字签名过程一般数字签名过程带加密的数字签名过程674.5.1数字签名算法DSADSA中用到了以下参数:(1)p为L位长的素数,其中,L为512~1024之间且是64倍数的数。(2)q是160位长的素数,且为p-1的因子。(3)g=h(p-1)/qmodp,其中,h是满足1<h<p-1且h(p-1)/qmodp大于1的整数。(4)x是随机产生的大于0而小于q的整数。(5)y=gxmodp。(6)k是随机产生的大于0而小于q的整数。68p、q、g是公开的;x为私钥,y为公钥;x和k用于数字签名,必须保密;每次签名都产生一次k。对消息m签名:r=(gkmodp)modqs=(k-1(SHA-1(m)+xr))modqr和s就是签名。验证签名时,计算:w=s-1modqu1=(SHA-1(m)×w)modqu2=(rw)modqv=((gu1×yu2)modp)modq=((gSHA-1(m)×w)modq×(gxmodp)(rw)modq
)modp)modq=((g(SHA-1(m)×w)modq×gx(rw)modq
)
modp)modq=((g(SHA-1(m)+xr)w
modq
)modp)modq=((g(SHA-1(m)+xr)s-1modq)modp)modq=(gkmodp)modq=r如果v=r,则签名有效。
4.5.1数字签名算法DSA69DSA工具70
前面提到RSA可以用于数字签名。私钥d,公钥e和n,则对消息m签名有r=sig(m)=(H(m))dmodnH(m)计算消息m的消息摘要,可由散列函数SHA−1或MD5得到;r即为对消息的签名。验证签名时,验证:H(m)=remodn
若上式成立,则签名有效。4.5.2RSA签名方案7172课堂练习用户A需要通过计算机网络安全地将一份机密文件传送给用户B,这份机密文件数据量非常大,B希望A今后对该份机密文件无法抵赖论,已知:①A与B共享一对对称密钥K1;②A有公、私钥(PKB,PKA,SKA)B拥有公、私钥(PKA,PAB,SKB);③A与B事先已经商定一个共有哈希函数要求:选取上述已知条件,设计用户A与用户B完整传递机密信息的过程①利用哈希函数生成消息摘要H(m)保证文件传输的完整性②利用A的公钥对哈希后的消息进行签名sigPKA(H(m)),以实现A对文件的无法抵赖③利用对称密钥对明文信息加密,以实现大文件信息的加密EK1(m+H(m))④A利用A的公钥对K1加密,B用A的私钥解密,保证密钥传递的安全性73课堂练习下列公钥密码分配体制可能受到的攻击,如何改进使该密钥分配具有保密和认证功能①A向B发送自己产生的公钥和A的身份;②B收到消息后,产生对称密钥Ks,用公钥加密后传送给A;③A用私钥解密后得到Ks。①中间人攻击,攻击者可以截获用户A的数据冒充A生成公私钥对,将生成的该公钥发送给用户B,用户B使用攻击者的公钥签名,发送给A,攻击者截获后用私钥解密,查看信息②密钥交换双方通过数字签名和数字证书相互认证可以挫败中间人攻击③需要一个可信任的第三方CA,它负责验证所有人的身份,CA首先认真检查所有人的身份然后给他们颁发数字证书,证书包括持有人的信息和他的公钥,还可以有其他更复杂的信息,数字证书不可被篡改744.6.1PGP简介电子邮件在互联网上传输电子邮件就像我们日常通过邮局发明信片一样,没有安全可言。PGP应需而生PGP由美国的PhilipZimmermann(菲尔.齐默尔曼)于1991年夏季发布1.0版本,PGP最初的设计主要是用于邮件加密他的创造性在于把RSA公钥体系的密钥分发便利性和传统加密体系的高效性结合起来,并且在数字签名和密钥认证管理机制上也有巧妙的设计754.6.1PGP简介1992年9月,PGP2.0在欧洲发布,2.0版本中用国际数据加密算法IDEA(InternationalDataEncryptionAlgorithm)PGP现在已成为世界上使用最为广泛的加密软件764.6.1PGP简介目前PGP是由许多人开发,在国际互联网上广为传播的免费软件但由于美国对信息加密产品有严格的法律约束,特别是对向美国、加拿大之外国家出售、发布该类软件约束的很严格774.6.1PGP简介PGP是一种在信息安全传输领域首选的加密软件,如今已经发展到了可以加密整个硬盘、分区、文件、文件夹、集成进邮件软件进行邮件加密,甚至可以对ICQ的聊天信息实时加密现在该软件的主要使用对象为情报机构、政府机构、信息安全工作者你和对方只要安装了PGP,就可利用其ICQ加密组件在你和对方聊天的同时,加密或解密,和正常使用没有什么差别,最大程度的保证了你和对方的聊天信息不被窃取或监视78PGP公/私钥对的生成
79PGPDesktop8.1的安装第1步:双击PGP8.exe,进入安装界面80PGPDesktop8.1的安装
第2步:单击“Next”按钮,出现“LicenseAgreement”窗口,单击“Yes”按钮,出现“ReadMe”窗口,如下图所示。81PGPDesktop8.1的安装第3步:单击“Next”按钮,出现“UserType”窗口,若是新用户,需要创建并设置一个新的用户信息。单击“Next”按钮,出现“InstallDirectory”窗口,选择程序的安装目录。82PGPDesktop8.1的安装
第4步:选择PGP组件的窗口。单击“Next”
,出现“StartCopyingFiles”窗口,单击“Next”
,进行安装。最后再根据提示重启系统。83PGPDesktop8.1的安装84PGPDesktop8.1的安装
第5步:重启系统后,双击PGP简体中文版.exe,PGP中文版安装密码是,单击“确定”按钮,然后依次按照提示进行PGP汉化。85PGPDesktop8.1的安装86PGPDesktop8.1的安装87PGPDesktop8.1的安装第6步:单击“完成”按钮后,重启系统。88PGPDesktop8.1的安装
第7步:重启系统后,右键单击任务栏的小锁按钮选择“许可证”菜单项。出现“PGP许可证授权”窗口,在对话框里填入名称、组织、许可证号。单击“手动”按钮后,实现本地验证。89PGPDesktop8.1的安装第8步:将下面3行:-BEGINPGPLICENSEAUTHORIZATION-ADIAApAAAJ4gWeOov9Nr/gJ1TaVQz2olNEx1zACggvH4tuOArH1Swb22sB9Nmx7YC6w=-ENDPGPLICENSEAUTHORIZATION-复制到图中,单击“确定”按钮,出现所示窗口中单击“确定”按钮,注册成功。90PGPDesktop8.1创建和设置初始用户
第1步:选择“密钥”→“新建密钥”,出现如图所示窗口。单击“下一步”按钮,出现如图所示窗口。91PGPDesktop8.1创建和设置初始用户
第2步:在全名处输入要创建的用户名,E-mail地址处输入用户所对应的电子邮件地址,完成后单击“下一步”按钮,出现如图所示的“分配密码”窗口。在密码处输入长度必须大于等于8位密码92PGPDesktop8.1创建和设置初始用户
第3步:进入密钥生成进程,等待主密钥和次密钥生成完毕(当前状态:完成)。单击“下一步”按钮,显示“完成PGP密钥生成向导”窗口,单击“完成”按钮,用户就创建并设置好了。93PGPDesktop8.1导出并分发公钥
右键单击刚才创建的用户,右键菜单中选择“导出”,在出现的保存对话框中,确认选中“包含6.0公钥”,可导出ztguang的公钥,扩展名为.asc(test.asc)。94PGPDesktop8.1导入并设置其他人的公钥
第1步:导入公钥。”密钥”“导入”test.asc,将会出现选择公钥的窗口,在这里可以看到该公钥的基本属性,如有效性、大小等。选好一个公钥后,单击“导入”按钮,即可导入PGP。95PGPDesktop8.1导入并设置其他人的公钥
第2步:设置公钥属性。在刚导入的密钥右键单击test,选择“密钥属性”,可以看到test密钥的全部信息,比如是否是有效密钥,是否可信任等。96PGPDesktop8.1导入并设置其他人的公钥
密钥列表中可以看到密钥(test)的“有效性”显示为绿色,表示该密钥有效。右键单击test,选择“密钥属性”,将“不信任的”的滑块拉动到“信任的”,然后单击“关闭”,此时公钥test被PGP加密系统正式接受,可以使用了。关闭PGPkeys窗口时,会出现要求备份的窗口。如果单击“立即保存备份”按钮,接下来将会对“公钥环文件”和“私钥环文件”进行保存。97PGPDesktop8.1导入并设置其他人的公钥
第3步:右键单击test,选择“签名”,出现“PGP密钥签名”对话框,如图所示,单击“确定”按钮,会出现“PGP为选择的密钥输入密码”对话框在此输入的是设置用户ztguang时的密码,然后单击“确定”按钮,即完成签名操作。98PGPDesktop8.1使用公钥
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 呼伦贝尔学院《游戏制作与开发》2021-2022学年第一学期期末试卷
- 孕中期健康教育
- 《体育健康与心理》课件
- 小学四年级健康教育
- 建设工程招标代理合同(GF-2005-0215)(标准版)
- 2024【工艺管道工程承包合同】个人承包合同范本
- 心理学在护理带教中的应用
- 2024小区水电消防安装工程承包合同
- 桥面系智能养生施工工法
- 幼儿健康教育讲卫生
- 教你如何做好竞品分析
- 信息系统运维保密协议
- 道德与法治《少让父母为我操心》-优质课件(部编版)
- 医院医学装备管理委员会人员组成和工作职责制度及办公室职责
- 和大人一起读三只白鹤
- 【拓展阅读】整本书阅读系列《林海雪原》
- 新能源(判断题301道)附有答案附有答案
- 南京林业大学考研811植物生理学历年真题及答案
- 2023年辽宁高中学业水平合格性考试数学模拟试卷试题(含答案详解)
- 两只小象教案
- 11ZJ401楼梯栏杆安装图集
评论
0/150
提交评论