電子簽章功能與實(shí)現(xiàn)_第1頁(yè)
電子簽章功能與實(shí)現(xiàn)_第2頁(yè)
電子簽章功能與實(shí)現(xiàn)_第3頁(yè)
電子簽章功能與實(shí)現(xiàn)_第4頁(yè)
電子簽章功能與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

電子簽章系統(tǒng)可實(shí)現(xiàn)在電子文件(Word,Excel,CAD圖紙,PDF,HTML-WEB頁(yè)面,LotusNotes,TIF傳真,XML數(shù)據(jù),F(xiàn)ORM表單,WPS,GDFTM版式文件等)上實(shí)現(xiàn)手寫電子簽名和加蓋電子印章,并可將簽章和文件綁定在一起,通過密碼驗(yàn)證、簽名驗(yàn)證、數(shù)字證書確保文檔防偽造、防篡改、防抵賴,安全可靠。它具有制章的唯一性、不變?cè)臁卧?,簽章的真?shí)性,文檔完整性、真實(shí)性、不可篡改,驗(yàn)章的真實(shí)性、有效性。電子簽章系統(tǒng)可以通過辨識(shí)電子文件簽署者的身份,確保文件的真實(shí)性、完整性和不可抵賴性。JSCA電子簽章結(jié)合成熟的組件技術(shù)、PKI技術(shù)、圖像處理技術(shù)以及智能卡技術(shù),按照一系列的標(biāo)準(zhǔn)體系,以電子形式對(duì)電子文檔簽名并加蓋簽章。軟件采用COM組件技術(shù),將傳統(tǒng)印章與電子簽名技術(shù)完美結(jié)合,通過簽章可以確認(rèn)文檔來源、確保文檔的完整性、防止對(duì)文檔未經(jīng)授權(quán)的篡改以及確保簽名行為的不可否認(rèn)。1.電子簽章是什么?在傳統(tǒng)的書面信息傳遞環(huán)境中,信息安全的保障為當(dāng)事人的簽字、蓋章,電子簽章制度則是在虛擬的網(wǎng)絡(luò)環(huán)境中的信息安全保障,電子簽章類似傳統(tǒng)的“印章”。從技術(shù)上講,電子簽章,泛指所有以電子形式存在,依附在電子文件并與其邏輯關(guān)聯(lián),可用以辨識(shí)電子文件簽署者身份,保證文件的完整性,并表示簽署者確認(rèn)電子文件所陳述事實(shí)的內(nèi)容。從廣義上講,電子簽章不僅包括我們通常意義上講的“非對(duì)稱性密鑰加密”,也包括筆跡辨別、指紋識(shí)別,以及新近出現(xiàn)的眼虹膜透視辨別、面紋識(shí)別、DNA識(shí)別等。目前,最成熟的電子簽章技術(shù)就是“數(shù)字簽章”,它是以公鑰及密鑰的“非對(duì)稱型”密碼技術(shù)制作的電子簽章。我們通常所說的電子簽章也是指數(shù)字簽章。數(shù)字簽章是運(yùn)用一種名為“非對(duì)稱密碼系統(tǒng)”(AsymmetricCryptography)的技術(shù)來對(duì)發(fā)文者的電子文件作加、解密運(yùn)算,其目的是使收文者可確定電子文件的發(fā)出者是誰(shuí)、該電子文件在傳輸中未遭篡改并保證發(fā)文者不能否認(rèn)其發(fā)文的行為。有了這個(gè)保障,通過網(wǎng)絡(luò)傳播的信息就可以說是真實(shí)可信的了。2.CA認(rèn)證機(jī)構(gòu):“刻印章的店”如果把數(shù)字簽章比喻為“印章”,那么CA認(rèn)證機(jī)構(gòu)實(shí)際上就是“刻印章的店”。為了確保用戶及他所持有密鑰的正確性,公共密鑰系統(tǒng)需要一個(gè)公正的、值得信賴而且獨(dú)立的第三方機(jī)構(gòu)充當(dāng)認(rèn)證中心,來確認(rèn)聲稱擁有公共密鑰的人的真正身份,認(rèn)證機(jī)構(gòu)(CertificationAuthority,簡(jiǎn)稱CA)遂因此而生。要確認(rèn)一個(gè)公共密鑰,CA首先制作一張“數(shù)字證書”,它包含用戶身份的部分信息及用戶所持有的公共密鑰,然后CA利用其本身的密鑰為數(shù)字證書加上數(shù)字簽名。CA認(rèn)證機(jī)構(gòu)功能是產(chǎn)生及保管各人的密鑰,以供隨時(shí)認(rèn)證,當(dāng)網(wǎng)絡(luò)交易發(fā)生爭(zhēng)議或糾紛時(shí),認(rèn)證機(jī)構(gòu)作為公正第三方,提供認(rèn)證資料做為裁決的依據(jù)。如同目前刻公章需要到公安機(jī)關(guān)備案一樣,數(shù)字簽章的發(fā)文者亦需要先向CA登記其公鑰,再由CA簽發(fā)數(shù)字證書。數(shù)字證書上所記錄的是與私鑰相對(duì)應(yīng)的公鑰。發(fā)文者以數(shù)字簽章簽署于電子文件后,可將電子文件并同數(shù)字證書一起傳送給收文者,收文者即可利用數(shù)字證書上所載的公鑰驗(yàn)證數(shù)字簽章的真實(shí)性與文件的完整性,而收文者只要能確認(rèn)該憑證確實(shí)為CA所簽發(fā)(收文者也可取得CA的公鑰以驗(yàn)證CA數(shù)字證書上所簽署的數(shù)字簽章的真實(shí)性),便可確信數(shù)字證書內(nèi)的公鑰確為憑證所指之人所有。本文將探討數(shù)字簽名、數(shù)字證書、強(qiáng)簽名程序集、反編譯等以及它們?cè)?NET中的運(yùn)用(一些概念并不局限于.NET在其它技術(shù)、平臺(tái)中也存在)。數(shù)字簽名數(shù)字簽名又稱為公鑰數(shù)字簽名,或者電子簽章等,它借助公鑰加密技術(shù)實(shí)現(xiàn)。數(shù)字簽名技術(shù)主要涉及公鑰、私鑰、非對(duì)稱加密算法。1.1公鑰與私鑰公鑰是公開的鑰匙,私鑰則是與公鑰匹配的嚴(yán)格保護(hù)的私有密鑰;私鑰加密的信息只有公鑰可以解開,反之亦然。在VisualStudio中,可以在項(xiàng)目屬性頁(yè)或者通過強(qiáng)命名工具Sn.exe生成公鑰與私鑰對(duì),參考創(chuàng)建公鑰私鑰對(duì)1.2非對(duì)稱加密算法非對(duì)稱加密算法(也叫公鑰加密算法)借助于私鑰加密、公鑰解密,使用了兩個(gè)不同的密鑰,因此被稱為非對(duì)稱加密;數(shù)字簽名屬于非對(duì)稱加密算法的一種。比較著名的非對(duì)稱加密算法是RSA,在.NET中對(duì)應(yīng)的類為RSACryptoServiceProvider類,參看/zh-cn/library/system.security.cryptography.rsacryptoserviceprovider.aspx。數(shù)字加密算法包括密碼生成算法、密碼標(biāo)記算法、驗(yàn)證算法。NET中的RSACryptoServiceProvider類包含這些相應(yīng)的方法。1.3數(shù)字簽名過程消息的發(fā)送者用一個(gè)HASH函數(shù)提取出消息的摘要,然后用私鑰借助非對(duì)稱加密算法對(duì)消息進(jìn)行加密,將消息原文與加密后的數(shù)字簽名同時(shí)發(fā)送給接受者;消息接受者收到消息原文與數(shù)字簽名后,首先利用同一HASH函數(shù)從消息原文提取消息摘要,再用發(fā)送者發(fā)布的公鑰對(duì)數(shù)字簽名進(jìn)行解密出發(fā)送者的消息摘要,對(duì)比消息摘要,如果一致則證明,此消息來自發(fā)送者,且內(nèi)容未經(jīng)修改。對(duì)于RSA算法,解密與解密分別對(duì)應(yīng):Encrypt與Decrypt方法。1.4數(shù)字簽名的功能確定消息確實(shí)是由發(fā)送方簽名并發(fā)出來的,因?yàn)樗借€是私有的,其他人假冒不了發(fā)送方的簽名。二是數(shù)字簽名能確定消息的完整性。因?yàn)閿?shù)字簽名的特點(diǎn)是它代表了消息的特征,消息如果發(fā)生改變,HASH函數(shù)得到的消息摘要就會(huì)不同,數(shù)字簽名的值也將發(fā)生變化,因而不同的消息將得到不同的數(shù)字簽名。數(shù)字證書數(shù)字證書亦稱電子證書,它是在Internet上用來標(biāo)志和證明網(wǎng)絡(luò)通信雙方身份的數(shù)字信息文件。它是一個(gè)經(jīng)證書授權(quán)中心數(shù)字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。最簡(jiǎn)單的證書包含一個(gè)公開密鑰、名稱以及證書授權(quán)中心的數(shù)字簽名。授權(quán)中心的數(shù)字簽名可以幫助我們從授權(quán)中心驗(yàn)證證書是否被更改,即身份信息是否被更改等。簡(jiǎn)言之它就如同我們的身份證。數(shù)字證書可以保證信息除發(fā)送方和接收方外不被其它人竊??;信息在傳輸過程中不被篡改;發(fā)送方能夠通過數(shù)字證書來確認(rèn)接收方的身份;發(fā)送方對(duì)于自己的信息不能抵賴。數(shù)字證書廣泛運(yùn)用于服務(wù)器證書,如SSL證書,電子郵件證書,客戶端證書等等。理論上任何人都可以給你發(fā)個(gè)數(shù)字證書,亦即是說給你發(fā)數(shù)字證書的那個(gè)人或機(jī)構(gòu)對(duì)你的公鑰進(jìn)行加簽。對(duì)PGP和GPG系統(tǒng)來說,就是如此,而不需要一個(gè)統(tǒng)一的身份認(rèn)證機(jī)構(gòu)。但我們一般僅信任權(quán)威的數(shù)字認(rèn)證機(jī)構(gòu)頒發(fā)的證書。在InternetProperties->內(nèi)容->證書可以查看已經(jīng)安裝在本機(jī)的證書:分析數(shù)字簽名如何進(jìn)行發(fā)送者的身份認(rèn)證首先對(duì)發(fā)送消息進(jìn)行hash摘要,然后用自己的私鑰對(duì)hash摘要加密,將加密后的內(nèi)容+原始消息一并發(fā)送給接受方。接受方收到內(nèi)容后,用發(fā)送者的公鑰解密加密后的hash摘要,得到hash摘要的明文,再將發(fā)送過來的原始消息使用相同的hash算法,求得hash摘要。將求得的hash摘要與解密得到的hash摘要進(jìn)行匹配,若一樣,則證明是發(fā)送者發(fā)送的,否則,不是發(fā)送者發(fā)送的。CertificatesIntendsdpurpose: <All>IntermediateCertificationAuthoritiesTrustedRootCertificationAuthoritiesTrustedPub!<,IssuedToIssuedByExpiratio...FriendlyNameAIACorpor...ACorporati...2/22/2011<None>回CFCAOperationCACFCAPolicyCA6/12/2020<None>[^CFCAOperationCA2CFCARootCA11/21/2019<None>四CFCAPolicyCACFCARootCA6/12/2020<Mone>^COMODOHighAss...COMODOCertificatio...1/1/2020<None>GeoTrustExtended...GeoTrustPrimaryCer,..11/2.9/2016IzzlGlobalSignRootCARootSGCAuthority1/28/20W<None>回GTECvberTrustRootRootSGCAuthority2/23/2006<None>[^JiTruschinaClass2...Class2PublicPrimary...1/7/2004<bJone>Import...RemoveAdvanced...Certificateintendedpurposes<AII>Vie*/vCloseGeneia!DetailsCertificationPatliField■/aluea^IssuerinvalidfromValidtoSubjectAlibaba.camCorporationRoot...V.'ednesdaYrFebruary22,20...Tuesday,February22,20117...Alibaba.oomCorporationUser...1PublickeyRSA(1024Bits)JBasicConstaints2^3KeyUsage[^NetscapeCertTypeSubjectType=CA,PatliLengi...Certificate5igningr□仟』門已CR...SSLCA,5MIMECA,Signature...v|空“==?_一竺空“==?_一竺3obC6bfno7Ou7-fd7-t3f99501544o27a62eaa2c4d35C795&eaba43-h-no1ac4bnod5-tb5244c29d_.bcff2c737Oueldea7oc2fa155&2d259-no7fe99d-bno14f_ya3c35229fo1ob8_yb4e_ynooco6f51e546e6e43fnooe4cb5od59edd74nob4b7nofef23bnof4e4o7ed9-bfcb9a7f47a1ono66e576o51bdcooef71-1口fo6275dnoofccooeda-t2dd34bcCopytoFile...EditProperties...上圖選中項(xiàng)為阿里巴巴的證書的公鑰。強(qiáng)簽名程序集3.1強(qiáng)簽名程序集簡(jiǎn)介強(qiáng)名稱是由程序集的標(biāo)識(shí)加上公鑰和數(shù)字簽名組成的。其中,程序集的標(biāo)識(shí)包括簡(jiǎn)單文本名稱、版本號(hào)和區(qū)域性信息(如果提供的話)。強(qiáng)名稱是使用相應(yīng)的私鑰,通過程序集文件(包含程序集清單的文件,并因而也包含構(gòu)成該程序集的所有文件的名稱和散列)生成的。Microsoft?VisualStudio?.NET和在,NETFrameworkSDK中提供的其他開發(fā)工具能夠?qū)?qiáng)名稱分配給一個(gè)程序集。強(qiáng)名稱相同的程序集應(yīng)該是相同的。3.2強(qiáng)名稱程序集的功能強(qiáng)名稱依賴于唯一的密鑰對(duì)來確保名稱的唯一性,只有強(qiáng)名稱的程序集可以加入到GAC中;強(qiáng)名稱保護(hù)程序集的版本沿襲;強(qiáng)名稱提供可靠的完整性檢查。強(qiáng)名稱就如同證書一樣,幫助兩個(gè)程序集之間建立信任關(guān)系。3.3強(qiáng)名稱程序集的實(shí)現(xiàn)方案請(qǐng)參看:強(qiáng)名稱方案ClickOnce應(yīng)用程序的強(qiáng)名稱簽名

對(duì)應(yīng)用程序和部署清單進(jìn)行簽名對(duì)程序集進(jìn)行簽名3.4延遲程序集簽名為程序集簽名時(shí),您可能不會(huì)始終具有對(duì)私鑰的訪問權(quán)限。在這種情況下,可以使用“延遲簽名”或“部分簽名”來提供公鑰,從而將私鑰的添加推遲到交付程序集時(shí)。參考/zh-cn/library/9fas12zx%28vuVS.90%29.aspx強(qiáng)簽名程序集實(shí)踐4.1新建測(cè)試項(xiàng)目StrongNameAssembly,為其添加一個(gè)類TestClassnamespaceStrongNameAssembly(publicclassTestClass())4.2在項(xiàng)目屬性的簽名選項(xiàng)卡設(shè)置強(qiáng)簽名/.trongMameAssembly*/Testflass,cs'廣5怡11PageCreateStrongNameKeyKeyfilename:Test0ProtectmykeyfiiewithapasswordEnterpassword:Confirmpass'A'ord:回SigntiieassemblyChooseastiongnamekevfile:IIDelaysignonlyCreateStrongNameKeyKeyfilename:Test0ProtectmykeyfiiewithapasswordEnterpassword:Confirmpass'A'ord:回SigntiieassemblyChooseastiongnamekevfile:IIDelaysignonlyWhendslaysigned,tlieprojectwillnotrunorbedebuggabie.CancelSelectfromSijore...SelecttiomRle...CreateT己wtCertificate...vChangePassword...生成項(xiàng)目后,用.NETReflector打開程序集,我們可以發(fā)現(xiàn),程序集的的名稱包含了公鑰標(biāo)志://AssemblyStrongNameAssembly,VersionD:\Raymond'sDocuments\VisualStudioLocation:2005\Projects\StrongNameAssembly\StrongNameAssembly\bin\Debug\StrongNameAssembly.dllName: StrongNameAssembly,Version=,Culture=neutral,PublicKeyToken=79dbc45bc8054239Type: Library如果不進(jìn)行強(qiáng)簽名,那么公鑰標(biāo)志為null。4.3新建測(cè)試項(xiàng)目ConsoleApplication1添加對(duì)StrongNameAssembly的引用,并且更改Program.cs內(nèi)容為:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplication1(classProgram(staticvoidMain(string[]args)(Console.Write(newStrongNameAssembly.TestClass().ToString());Console.ReadLine();)))生成解決方案,用Reflector打開控制臺(tái)應(yīng)用程序,查看其Reference中包含了對(duì)StrongNameAssembly的完整引用://AssemblyReferenceStrongNameAssemblyVersion:Name:StrongNameAssembly,Version=,Culture=neutral,PublicKeyToken=79dbc45bc8054239運(yùn)行解決方案:4.4更改強(qiáng)簽名程序集的密鑰為新的簽名密鑰或者取消強(qiáng)簽名而不改變ConsoleApplicationl隨意修改了強(qiáng)簽名的密鑰,查看到公鑰標(biāo)識(shí)變?yōu)?/AssemblyStrongNameAssembly,VersionD:\Raymond'sDocuments\VisualStudioLocation:2005\Projects\StrongNameAssembly\StrongNameAssembly\bin\Debug\StrongNameAssembly.dllName: StrongNameAssembly,Version=,Culture=neutral,PublicKeyToken=b03b8e071332d29fType: Library直接將程序集復(fù)制到ConsoleApplication1運(yùn)行目錄下,如Debug目錄下,運(yùn)行會(huì)得到錯(cuò)誤提示,未能加載程序集trongNameAssembly,Version=,Culture=neutral,PublicKeyToken=79dbc45bc80542394.5修改ConsoleApplication1.exe的應(yīng)用程序清單用Reflector或者ILDASM可以查看到ConsoleApplication1.exe的清單Manifest中,引用StrongNameAssembly的公鑰標(biāo)識(shí)依然為之前的版本公鑰標(biāo)識(shí):.assemblyexternStrongNameAssembly(.ver1:0:0:0.publickeytoken=(79DBC45BC8054239))如果我們修改此標(biāo)識(shí)為新的密鑰簽名的公鑰標(biāo)識(shí)(b03b8e071332d29f)會(huì)是怎樣呢?用ILDASM打開ConsoleApplication1.exe,轉(zhuǎn)儲(chǔ)為.il文件,用記事本打開:ConsoLeAppLication1.il-NotepadFileEditFormat■.'■ew// Avemethods1ze-15//C1assesdefinedinthismodule://C1assProgram (auto^)(ansi3//Metadataversion:v2,0.50727,assemblyextern/W23OOOOO1^/mscorlib{,publickeytoken=(B./A5C561934EO89),ver2:0:0:0.assemblyextern/-f2 StrongNameAssembIy{,publickeytoken=(.9DBC45EC8054239),ver1:0:0:0.assembly/w20000001^/ConsoleApplicationl,custom/w0c000001:OAOOOOOl^/iinstancevoid[mscorlib/^23OOOOOl^/System,Ref1ection.AssemblyFi1eVersionAttr1bute/^01000002^/::,ctor(s(010007312E302E302E300000)//,,.1,0.0.0.,,custom/w0c000002:0A000003w/iinstancevoid[mscorl51?/^23000001^/System,Runtime.InteropServices.GuidAttr1bute/^01000004w/::,ctorCstr01002433323831353365342D61633732//.,5328153e4-ac3338662D3030363266 //-421d-a38f-0062f0000) //48d7c9d,,,custom/w0c000003:0A000004^/iinstancevoid[mscorl1b/^23000001^/System,Runtime.InteropServices.ComVis1bleAttr1bute/^01000005^/::,ct=C0100000000),custom/w0c000004:0A000006w/iinstancevoid[mscorl-ib/^23OOOOOl^/紅色框注部分則為需要修改的地方,修改為:.assemblyextern/*23000002*/StrongNameAssembly(.publickeytoken=(b03b8e071332d29f) //y..[..B9.ver1:0:0:0)保存,并且用重新編譯為應(yīng)用程序(參考MSIL匯編程序):ilasm/resource=ConsoleApplication1.resConsoleApplication1.IL/exe@pause應(yīng)C:\WIND0WS\system32\cmd.exe1icationIL/exeilasmZresource=CcnsoleApplicationl.1icationIL/exeilasmZresource=CcnsoleApplicationl.QIttHifhirr0?sibeOrmeryercPSuicsoMCAS(R)-NETFrameworkIL(c)MicrosoftCcrporat1QIttHifhirr0?sibeOrmeryercPSuicsoMCAS(R)-NETFrameworkIL(c)MicrosoftCcrporat1CcnsuleApplicationl.eisUTF-8rE-XrlEel—i1AobtVersion2.0.ghtsreserve——>1ConsoleAssembledAssembledttfeemmEpddeoG1ConsoleApplicationl.Program::MainConsoleApplicationl.Program::.ctorIEmittingclasses:Class1: ConsoleApplicationl.ProgramEmittingfieldsandmethods:GlobalClass1Methods:2;Emittingeventsandproperties:GlobalClass1WritingPEfileOperationcompletedsuccessful1yPressanykeytocontinue???如上圖編譯成功。運(yùn)行也成功:在Reflector中也可以看到修改后的引用://AssemblyReferenceStrongNameAssemblyVersion:Name:StrongNameAssembly,Version=,Culture=neutral,PublicKeyToken=b03b8e071332d29f由此可以看到,通過強(qiáng)名稱對(duì)應(yīng)用程序集進(jìn)行保護(hù)是很脆弱的,或者說沒有太大的用途;往往我們還需要借助代碼混淆來實(shí)現(xiàn)源碼保護(hù),而此話題不在本文討論范圍之內(nèi)幾點(diǎn)補(bǔ)充在強(qiáng)命名方案一文中,有提到開發(fā)環(huán)境或工具使用開發(fā)人員私鑰對(duì)包含程序集清單的文件哈希簽名。該數(shù)字簽名存儲(chǔ)在包含程序集的清單的可移植可執(zhí)行(PE)文件中。這一點(diǎn)通過ILDASM可以查看其公鑰、HASH算法、以及公鑰標(biāo)志:.assemblyexternmscorlib(.publickeytoken=(B77A5C561934E089) //.z\V.4...ver2:0:0:0).publickey=(00240000048000009400000006020000//.$ 00240000525341310004000001000100//.$..RSA1 63AE3B85F42294FF18F87C9D4F7479CA//c.;.."|.Oty.213278FACD10E7F368D80097C4CF4DF8//!2xhM.E1002DE855B551E8BA91829D3EDA618A//..-.U.Q>.a.7B4EA0FB2D1FBF5F7D179AA13AA42CF7//{N..-.._}...:.,.30FABC73ED39B164B91574E725898DB8//0..s.9.d..t.%...0794C578E52C22C6A28DD2644D2B18B2//...x.,"dM+..392618DE33718EB587C159E52F83A08C//9&..3qY./...A5EFB9FC8312D80A1D6A91BD3D811FD3)// j..=hashalgorithm0x00008004.ver1:0:0:0而以上代碼為IL格式即為EXE或者DLL格式的PE文件反編譯為IL后的內(nèi)容,它需要在我們的.NET環(huán)境CLR中才可以被解釋執(zhí)行;在其CLRHeader中也定義了.NET的版本://CLRHeader://Headersize:0x00000048//Majorruntimeversion:0x0002//Minorruntimeversion:0x0005//0x00002074[0x00000558]address[size]ofMetadataDirectory://Flags:0x00000001//Entrypointtoken:0x06000001//0x00000000[0x00000000]address[size]ofResourcesDirectory://0x00000000[0x00000000]address[size]ofStrongNameSignature://0x00000000[0x00000000]address[size]ofCodeManagerTable://0x00000000[0x00000000]address[size]ofVTableFixupsDirectory://0x00000000[0x00000000]address[size]ofExportAddressTable://0x00000000[0x00000000]address[size]ofPrecompileHeader:關(guān)于.NETPE結(jié)構(gòu)請(qǐng)參考The.NETFileFormat,本文不涉及此內(nèi)容。數(shù)字摘要MD5與數(shù)字簽名RSA簡(jiǎn)要原理2009-05-1210:03:41|分類:技術(shù)|標(biāo)簽:|字號(hào)大中小訂閱數(shù)字簽名是一種給以電子形式存儲(chǔ)的消息簽名的方法。通過這種方法簽名之后的消息可以通過網(wǎng)絡(luò)傳輸。數(shù)字簽名基于非對(duì)稱密鑰加密算法,如DSA/RSA算法。從公鑰系統(tǒng)可以立即取得的一個(gè)好處是解決了密鑰的管理問題,公鑰系統(tǒng)中的一個(gè)新成員僅需要一張公開密鑰表的拷貝,并把他選擇的加密密鑰公布給大家就可以了。而在許多應(yīng)用中給發(fā)送的消息附上一個(gè)數(shù)字簽名的能力,則是公鑰系統(tǒng)更加重要的好處。數(shù)字簽名的原理如圖所示:圖中m表示明文。發(fā)送者首先用自己的私有密鑰對(duì)消息m進(jìn)行編碼,產(chǎn)生了中間的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論