整理数字证书及其认证过程.docx

上传人:b****5 文档编号:6932167 上传时间:2023-01-12 格式:DOCX 页数:10 大小:24.74KB
下载 相关 举报
整理数字证书及其认证过程.docx_第1页
第1页 / 共10页
整理数字证书及其认证过程.docx_第2页
第2页 / 共10页
整理数字证书及其认证过程.docx_第3页
第3页 / 共10页
整理数字证书及其认证过程.docx_第4页
第4页 / 共10页
整理数字证书及其认证过程.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

整理数字证书及其认证过程.docx

《整理数字证书及其认证过程.docx》由会员分享,可在线阅读,更多相关《整理数字证书及其认证过程.docx(10页珍藏版)》请在冰豆网上搜索。

整理数字证书及其认证过程.docx

整理数字证书及其认证过程

数字证书及其认证过程

编辑整理:

 

尊敬的读者朋友们:

这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(数字证书及其认证过程)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为数字证书及其认证过程的全部内容。

加密和解密使用同一个密钥的算法,称为对称加密算法;加密和解密使用的是不同的密钥,称为非对称加密算法,公钥系统即属于非对称加密算法.对于对称加密而言,需要着重保护的是对称密钥,对于公钥算法而言,需要着重保护的是私钥.

公钥加密算法,以及衍生出的数字签名、数字证书技术,不仅广泛应用于Internet通讯中,例如HTTPS协议中的SSL/TLS,在单机系统中也越来越受到重视,例如WindowsXP的设备驱动程序、。

NET的GACassembly都要求数字签名。

微软从Windows98/NT4起即提供了CryptographAPI,支持DES,RC2,RC4,IDEA等对称加密算法和RSA公钥系统等非对称密算法,以及MD5,SHA,MAC等摘要(Digest,也称为Hash,散列)算法。

本文译自:

scape。

com/tech/security/ssl/howitworks。

html

这是一篇生动浅显的文章,对了解公钥系统的工作原理很有帮助,CSDN上已有一篇译文:

http:

//www。

csdn。

net/Develop/article/27/27524。

shtm

但本人认为上文的关键地方不够准确,欠通顺。

本译文在上篇译文的基础上,关键的术语采用了通用译法,少数地方采用了意译,而且附有英文原文,有翻译不当的地方大家可以对照原文。

希望能对公钥系统有兴趣的朋友们有所帮助.

BTW:

上面提到的所有对称加密和非对称加密,它们的加解密算法都是公开的,只要不知道密钥,算法的设计者有信心使加密结果不会被轻易破解,这点与WAPI截然不同:

)。

以下是中英文对照的译文:

Publickeyencryptionisatechniquethatusesapairofasymmetrickeysforencryptionanddecryption。

Eachpairofkeysconsistsofapublickeyandaprivatekey.Thepublickeyismadepublicbydistributingitwidely。

Theprivatekeyisneverdistributed;itisalwayskeptsecret.

公钥加密是使用一对非对称的密钥加密或解密的技术.每一对密钥由公钥和私钥组成。

公钥被广泛发布。

私钥是隐密的,不公开。

Datathatisencryptedwiththepublickeycanbedecryptedonlywiththeprivatekey。

Conversely,dataencryptedwiththeprivatekeycanbedecryptedonlywiththepublickey。

Thisasymmetryisthepropertythatmakespublickeycryptographysouseful。

用公钥加密的数据只能够被私钥解密。

反过来,使用私钥加密的数据只能用公钥解密.这个非对称的特性使得公钥加密很有用。

USINGPUBLICKEYCRYPTOGRAPHYFORAUTHENTICATION

使用公钥加密法认证

Authenticationistheprocessofverifyingidentitysothatoneentitycanbesurethatanotherentityiswhoitclaimstobe。

InthefollowingexampleinvolvingAliceandBob,publickeycryptographyiseasilyusedtoverifyidentity。

Thenotation{something}keymeansthatsomethinghasbeenencryptedordecryptedusingkey。

验证是一个核实身份的过程,以便一方能确认另一方的确是其所声称的那个身份。

在下列例子中包括甲和乙,公钥加密会轻松地校验身份。

符号{数据}key意味着”数据”已经使用key加密或解密。

SupposeAlicewantstoauthenticateBob.Bobhasapairofkeys,onepublicandoneprivate.BobdisclosestoAlicehispublickey(thewayhedoesthisisdiscussedlater)。

AlicethengeneratesarandommessageandsendsittoBob:

  A-〉B  random-message

BobuseshisprivatekeytoencryptthemessageandreturnstheencryptedversiontoAlice:

B->A  {random—message}bobs-private—key

AlicereceivesthismessageanddecryptsitbyusingBob’spreviouslypublishedpublickey。

ShecomparesthedecryptedmessagewiththeonesheoriginallysenttoBob;iftheymatch,sheknowsshe'stalkingtoBob.Animposterpresumablywouldn’tknowBob’sprivatekeyandwouldthereforebeunabletoproperlyencrypttherandommessageforAlicetocheck。

假如甲想校验乙的身份。

乙有一对密钥,一个是公开的,另一个是私有的。

乙透露给甲他的公钥。

甲产生一个随机信息发送给乙.

甲——〉乙:

randommessage

乙使用他的私钥加密信息,把加密后的信息返回甲.

乙—-〉甲:

{random—message}乙的私钥

甲收到这个信息然后使用乙的前面公开的公钥解密。

他比较解密后的信息与他原先发给乙的信息。

如果它们完全一致,就会知道在与乙说话。

任意一个中间人不会知道乙的私钥,也不能正确加密甲检查的随机信息。

BUTWAIT,THERE’SMORE

等一下,事情还没有完

Unlessyouknowexactlywhatyouareencrypting,itisneveragoodideatoencryptsomethingwithyourprivatekeyandthensendittosomebodyelse。

Thisisbecausetheencryptedvaluecanbeusedagainstyou(remember,onlyyoucouldhavedonetheencryptionbecauseonlyyouhavetheprivatekey).

用私钥加密某些信息,然后发送给其他人不是一个好主意,除非你清楚知道这个信息的含义。

因为加密后的信息可能被用来对付你(记住,别人知道该信息是你加密的,因为只有你有加密用的私钥).

So,insteadofencryptingtheoriginalmessagesentbyAlice,Bobconstructsamessagedigestandencryptsthat。

Amessagedigestisderivedfromtherandommessageinawaythathasthefollowingusefulproperties:

Thedigestisdifficulttoreverse。

SomeonetryingtoimpersonateBobcouldn’tgettheoriginalmessagebackfromthedigest。

Animpersonatorwouldhaveahardtimefindingadifferentmessagethatcomputedtothesamedigestvalue.

所以,取代直接加密甲发来的原始信息,乙创建一个信息摘要并且加密该摘要。

信息摘要由任意信息运算而来,并具有以下有用的特性:

1。

从这个摘要值难以还原出原始信息。

任何人即使伪装成乙,也不能从摘要值得到原始信息;

2.不同的信息很难计算出相同的摘要值;

Byusingadigest,Bobcanprotecthimself。

HecomputesthedigestoftherandommessagesentbyAliceandthenencryptstheresult。

HesendstheencrypteddigestbacktoAlice.AlicecancomputethesamedigestandauthenticateBobbydecryptingBob’smessageandcomparingvalues。

使用摘要,乙能够保护自己。

他计算甲发出的任意信息的摘要,加密摘要值,然后发送加密的摘要值给甲。

甲能够计算出相同的摘要值并且解密乙的信息,最终认证乙。

(译者注:

摘要(Digest)算法又称为散列(Hash)算法)

GETTINGCLOSER

进一步的讨论

Thetechniquejustdescribedisknownasadigitalsignature.BobhassignedamessagegeneratedbyAlice,andindoingsohehastakenastepthatisjustaboutasdangerousasencryptingarandomvalueoriginatedbyAlice。

Consequently,ourauthenticationprotocolneedsonemoretwist:

some(orall)ofthedataneedstobeoriginatedbyBob.

A—〉B  hello,areyoubob?

B—>A  Alice,ThisIsbob{digest[Alice,ThisIsBob]}bobs-private-key

Whenheusesthisprotocol,BobknowswhatmessageheissendingtoAlice,andhedoesn’tmindsigningit。

Hesendstheunencryptedversionofthemessagefirst,”Alice,ThisIsBob。

"Thenhesendsthedigested-encryptedversionsecond。

AlicecaneasilyverifythatBobisBob,andBobhasn'tsignedanythinghedoesn’twantto.

刚刚讨论的技术称为数字签名。

乙直接在甲产生的信息上签名,这样做和加密甲产生的任意信息是同样危险的。

因此我们的验证协议还需要加一些技巧:

某些或全部信息需要由乙产生:

甲——〉乙:

你好,你是乙么?

乙——〉甲:

甲,我是乙{摘要[甲,我是乙]}乙的私钥

使用这个协议,乙知道他发送给甲的信息的内容,他不介意在上面签名。

他先发送不加密的信息,"甲,我是乙”,然后发送该信息的加密后的摘要。

甲可以非常方便地核实乙就是乙,同时,乙还没有在他不想签名的信息上签名.

HANDINGOUTPUBLICKEYS

分发公钥

HowdoesBobhandouthispublickeyinatrustworthyway?

Let'ssaytheauthenticationprotocollookslikethis:

A—〉B  hello

B—>A  Hi,I'mBob,bobs—public-key

A-〉Bproveit

B—>AAlice,ThisIsbob  {digest[Alice,ThisIsBob]}bobs—private-key

那么,乙怎样以可信的方式提交他的公钥呢?

看看如下所示的验证协议:

甲——>乙:

你好

乙-—〉甲:

嗨,我是乙,乙的公钥

甲——>乙:

请证明

乙——〉甲:

甲,我是乙{摘要[甲,我是乙]}乙的私钥

Withthisprotocol,anybodycanbeBob.Allyouneedisapublicandprivatekey。

YoulietoAliceandsayyouareBob,andthenyouprovideyourpublickeyinsteadofBob's。

Thenyouproveitbyencryptingsomethingwiththeprivatekeyyouhave,andAlicecan’ttellyou’renotBob.

使用这个协议,任何人都能够成为”乙".只要你有一对公钥和私钥。

你欺骗甲说你就是乙,只要提供你的公钥,而不是乙的公钥。

然后,你发送用你的私钥加密的信息,证明你的身份。

甲并不能发觉你并不是乙。

Tosolvethisproblem,thestandardscommunityhasinventedanobjectcalledacertificate。

Acertificatehasthefollowingcontent:

Thecertificateissuer’sname

Theentityforwhomthecertificateisbeingissued(akathesubject)

Thepublickeyofthesubject

Sometimestamps

Thecertificateissignedusingthecertificateissuer’sprivatekey。

Everybodyknowsthecertificateissuer'spublickey(thatis,thecertificateissuerhasacertificate,andsoon。

..).Certificatesareastandardwayofbindingapublickeytoaname。

为了解决这个问题,标准化组织发明了证书。

一个证书有以下的内容:

    证书发行者的名称

    被发给证书的实体(也称为主题)

    主题的公钥

    一些时间戳

证书使用发行者的私钥加密.每一个人都知道证书发行者的公钥(就是说,每个证书的发行者也拥有一个证书,以此类推).证书是一个把公钥与一个名称绑定的标准方式.

Byusingthiscertificatetechnology,everybodycanexamineBob'scertificatetoseewhetherit’sbeenforged。

AssumingthatBobkeepstightcontrolofhisprivatekeyandthatitreallyisBobwhogetsthecertificate,thenalliswell.Hereistheamendedprotocol:

A—〉B  hello

B-〉AHi,I’mBob,bobs—certificate

A->Bproveit

B->AAlice,ThisIsbob{digest[Alice,ThisIsBob]}bobs—private-key

NowwhenAlicereceivesBob'sfirstmessage,shecanexaminethecertificate,checkthesignature(asabove,usingadigestandpublickeydecryption),andthencheckthesubject(thatis,Bob’sname)andseethatitisindeedBob。

ShecanthentrustthatthepublickeyisBob'spublickeyandrequestBobtoprovehisidentity.Bobgoesthroughthesameprocessasbefore,makingamessagedigestofhisdesignandthenrespondingtoAlicewithasignedversionofit.AlicecanverifyBob’smessagedigestbyusingthepublickeytakenfromthecertificateandcheckingtheresult。

通过使用证书技术,每个人都可以检查乙的证书,判断其是否被伪造.假设乙控制好他的私钥,并且他确实是得到证书的乙,就万事大吉了.下面是修订后的协议:

甲—->乙:

你好

乙——〉甲:

嗨,我是乙,乙的证书

甲-—〉乙:

请证明

乙——〉甲:

甲,我是乙{摘要[甲,我是乙]}乙的私钥

现在当甲收到乙的第一个信息,他能检查证书,核查证书上的签名(如上所述,使用摘要和公钥解密),检查证书中的主题(这里是乙的姓名),确定是乙.他就能相信公钥就是乙的公钥,然后要求乙证明自己的身份.乙通过前面描述过的过程,制作一个信息摘要,用一个签名版本答复甲.甲可以通过使用从证书上得到的公钥检验乙的信息摘要,并对比结果.

Abadguy—let’scallhimMallet—candothefollowing:

A—〉Mhello

M—>AHi,I’mBob,bobs-certificate

A->Mproveit

M—>A  ?

?

?

ButMalletcan'tsatisfyAliceinthefinalmessage.Malletdoesn’thaveBob’sprivatekey,sohecan'tconstructamessagethatAlicewillbelievecamefromBob.

假设有一个坏小子,我们称他为H,他可以这么做:

甲——〉H:

你好

H—-〉甲:

你好,我是乙,乙的证书

甲——〉H:

请证明

H——〉甲:

H不能满足甲的最后一个信息,他没有乙的私钥,因此他不能建立一个令甲相信是来自乙的信息。

EXCHANGINGASECRET

交换密钥(secret)

OnceAlicehasauthenticatedBob,shecandoanotherthing-shecansendBobamessagethatonlyBobcandecode:

A->B  {secret}bobs—public—key

TheonlywaytofindthesecretisbydecryptingtheabovemessagewithBob’sprivatekey.Exchangingasecretisanotherpowerfulwayofusingpublickeycryptography.EvenifthecommunicationbetweenAliceandBobisbeingobserved,nobodybutBobcangetthesecret。

一旦甲已经验证乙后,他就可以做另外的事情了-—发送给乙一个只有乙可以解密、阅读的(另一个)密钥:

甲——>乙:

{secret}乙的公钥

只有使用乙的私钥才能解密上述信息,得到secret(另一个密钥)。

交换(额外的)密钥是公钥密码术提供的另一个强有力的手段.即使在甲和乙之间的通讯被侦听,只有乙才能得到密钥。

ThistechniquestrengthensInternetsecuritybyusingthesecretasanotherkey,butthistimeit'sakeytoasymmetriccryptographicalgorithm(suchasDES,RC4,orIDEA)。

AliceknowsthesecretbecauseshegenerateditbeforesendingittoBob.BobknowsthesecretbecauseBobhastheprivatekeyandcandecryptAlice'smessage.Becausetheybothknowthesecret,theycanbothinitializeasymmetriccipheralgorithmandthenstartsendingmessagesencryptedwithit。

Hereisarevisedprotocol:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1