整理数字证书及其认证过程文档格式.docx
《整理数字证书及其认证过程文档格式.docx》由会员分享,可在线阅读,更多相关《整理数字证书及其认证过程文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
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—>
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:
hello
Hi,I'
mBob,bobs—public-key
A-〉Bproveit
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:
B-〉AHi,I’mBob,bobs—certificate
A->
Bproveit
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
Mproveit
?
?
ButMalletcan'
tsatisfyAliceinthefinalmessage.Malletdoesn’thaveBob’sprivatekey,sohecan'
tconstructamessagethatAlicewillbelievecamefromBob.
假设有一个坏小子,我们称他为H,他可以这么做:
甲——〉H:
H—-〉甲:
你好,我是乙,乙的证书
H——〉甲:
H不能满足甲的最后一个信息,他没有乙的私钥,因此他不能建立一个令甲相信是来自乙的信息。
EXCHANGINGASECRET
交换密钥(secret)
OnceAlicehasauthenticatedBob,shecandoanotherthing-shecansendBobamessagethatonlyBobcandecode:
B
{secret}bobs—public—key
TheonlywaytofindthesecretisbydecryptingtheabovemessagewithBob’sprivatekey.Exchangingasecretisanotherpowerfulwayofusingpublickeycryptography.EvenifthecommunicationbetweenAliceandBobisbeingobserved,nobodybutBobcangetthesecret。
一旦甲已经验证乙后,他就可以做另外的事情了-—发送给乙一个只有乙可以解密、阅读的(另一个)密钥:
乙:
{secret}乙的公钥
只有使用乙的私钥才能解密上述信息,得到secret(另一个密钥)。
交换(额外的)密钥是公钥密码术提供的另一个强有力的手段.即使在甲和乙之间的通讯被侦听,只有乙才能得到密钥。
ThistechniquestrengthensInternetsecuritybyusingthesecretasanotherkey,butthistimeit'
sakeytoasymmetriccryptographicalgorithm(suchasDES,RC4,orIDEA)。
AliceknowsthesecretbecauseshegenerateditbeforesendingittoBob.BobknowsthesecretbecauseBobhastheprivatekeyandcandecryptAlice'
smessage.Becausetheybothknowthesecret,theycanbothinitializeasymmetriccipheralgorithmandthenstartsendingmessagesencryptedwithit。
Hereisarevisedprotocol: