• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            brent's hut

            菜鳥學(xué)習(xí)數(shù)字簽名筆記

            數(shù)字簽名(Digital Signature)是電子簽名(Electronic Signature)的一種(實(shí)現(xiàn))。

            目前電子簽名簽名的實(shí)現(xiàn)方式有:
            基于PKI(Public Key Infrastructino)的公鑰密碼技術(shù)的數(shù)字簽名;
            以生物特征統(tǒng)計(jì)學(xué)為基礎(chǔ)的識(shí)別標(biāo)識(shí);
            手印、聲音印記或視網(wǎng)膜掃描的識(shí)別;
            一個(gè)讓收件人能識(shí)別發(fā)件人身份的密碼代號(hào)、密碼或個(gè)人識(shí)別碼PIN;
            基于量子力學(xué)的計(jì)算機(jī)...
            數(shù)字簽名的目的和功能:
            認(rèn)證、數(shù)據(jù)保密性、數(shù)據(jù)完整性和不可否認(rèn)性.

            數(shù)字簽名的實(shí)現(xiàn)方式:

            (一)公鑰加密算法如何加密:
            比如我要發(fā)送一個(gè)絕密的信息M給你,我當(dāng)然不會(huì)直接把M寫在信里面寄給你,我會(huì)提前告訴你解密的方法,然后使用算法P處理M得到P(M),我發(fā)送P(M)給你.因?yàn)槟阒澜饷艿姆椒≒',你使用P'來處理P(M)得到了M.只要P和P'不讓別人知道,我們的通訊就是保密的.
            如果從P'能夠得到P,那你就能知道P,然后偽裝我發(fā)送消息給其他人.
            但是據(jù)說有一個(gè)公鑰加密算法,加密和解密的算法是一樣的,而且是公開的,我告訴你我的公鑰k1,我自己保密的是私鑰k0,我發(fā)送給你的信息是M' = P(k0,M),你收到M'后可以通過運(yùn)算P(k1,M')得到M,但是通過k1是無法計(jì)算出k0的,通過K0也無法計(jì)算出k1.(我也不知道是否真的這么神奇,現(xiàn)在網(wǎng)絡(luò)上到處都是RSA被破解之類的,看得菜鳥我心驚膽顫,俺剛要好好學(xué)習(xí)呢,別人早已經(jīng)把它顛覆了).

            這樣你只有解密的份,沒有偽裝我身份的可能.
            同樣你也可以用k1來加密發(fā)消息給我,我用k0可以將它解密.
            但是這種公鑰加密算法是把消息本身當(dāng)成一個(gè)大數(shù)來進(jìn)行冪運(yùn)算,所以比如我想把1000個(gè)字節(jié)的字符串當(dāng)成一個(gè)大數(shù)來加密,應(yīng)該是非常困難而且非常慢的.(偶想高手應(yīng)該會(huì)算,但那不是俺關(guān)心的)
            所以有了散列.

            (二)關(guān)于散列:
            最常用的散列機(jī)制有 SHA1,MD5,RIPEMD-160等.SHA1即“安全散列算法”。SHA1 可以處理 2**64字節(jié)以內(nèi)的任何消息,并生成一個(gè) 20 字節(jié)的結(jié)果。
            按照菜鳥我看來這不是"散列",這是"聚列"啊.把一個(gè)2^(64*8)的數(shù)映射到一個(gè)2(20*8)的數(shù),同志們,這不是聚列是什么?但其實(shí)我們一般用的字符串,不會(huì)把0~2^(64*8)的數(shù)全用光,只用了其中一小部分.所以這個(gè)散列似乎是相對(duì)安全的.這種問題就留給長(zhǎng)了幾個(gè)腦袋的人來解決吧.

            關(guān)鍵是散列算法比公鑰加密算法要快很多.

            這樣,我找到了一對(duì)公鑰和私鑰(k0和k1),我公布了我的散列算法H,發(fā)表了一篇長(zhǎng)5萬個(gè)字奇菜無比的論文,內(nèi)容為M,對(duì)M進(jìn)行散列,很快得到H(M),然后用私鑰加密得到S = P(k0,H(M)),把S附在M后面并發(fā)表.
            你看到后為了證實(shí)這篇其爛無比的文章是我寫的,可以判斷 P(k1,S) 是否等于H(M).如果相等,你就可以確定這其爛無比的文章確實(shí)是我寫的.
            或者確定那個(gè)狗屁不通的審批確實(shí)是某大人批準(zhǔn)的.


            (三)除了使用公鑰加密算法來實(shí)現(xiàn)數(shù)字簽名,還可以用HMAC來實(shí)現(xiàn):

            HMAC即散列后的消息驗(yàn)證代碼”(Hashed Messsage Authentication Code)
            微軟MSDN上這么說:
            將共享密鑰混合在摘要中,即創(chuàng)建 H(S+M)。您收到消息后,可以使用自己的 S 副本來創(chuàng)建 H'(S+M)。
            在使用 HMAC 時(shí),完整性保護(hù)的有效性取決于攻擊者計(jì)算出 S 的能力。因此,S 應(yīng)該不容易被猜出,并應(yīng)該經(jīng)常更改 S。符合以上要求的最好方法之一是使用 Kerberos。在 Kerberos 中,中央機(jī)構(gòu)將在兩個(gè)實(shí)體希望通信時(shí)分配包含臨時(shí)會(huì)話密鑰的“票”。此會(huì)話密鑰將用作共享密鑰。在要將簽名發(fā)送給您時(shí),我將得到一張票,以和你通信。我打開票中的屬于我的那一部分來獲得 S,然后將消息、消息的 HMAC 和票中您的那一部分發(fā)送給您。您打開票(使用原來通過 Kerberos 注冊(cè)的密鑰),獲取 S 以及有關(guān)我身份的信息。您現(xiàn)在可以獲得消息 M,生成自己的 H'(S+M),并查看它們是否匹配。如果匹配,表明您原封不動(dòng)地收到了我的消息,并且 Kerberos 將通知您我是誰。

            Kerberos是古希臘神話里的地域門口的一條三頭狗.也是MIT麻省理工大學(xué)發(fā)明的一種協(xié)議.要使用這個(gè)協(xié)議需要配置一個(gè)分發(fā)服務(wù)器,似乎比較麻煩...

            posted on 2005-12-19 09:13 brent 閱讀(677) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Encrypt

            亚洲色欲久久久久综合网| 色综合久久中文综合网| 久久国产免费直播| 亚洲精品成人久久久| 精品综合久久久久久98| av国内精品久久久久影院| 麻豆精品久久精品色综合| 久久人人爽人人澡人人高潮AV| 久久乐国产综合亚洲精品| 99久久精品午夜一区二区| 无码人妻少妇久久中文字幕 | 亚洲va久久久噜噜噜久久男同 | 中文字幕亚洲综合久久菠萝蜜| 亚洲国产精品无码久久| 国产午夜精品理论片久久| 亚洲欧美伊人久久综合一区二区| 99久久精品国产毛片| 午夜人妻久久久久久久久| 久久久久无码精品| 久久se精品一区精品二区| 一本一本久久A久久综合精品 | 久久本道伊人久久| 伊人久久大香线蕉综合影院首页| 国产精品无码久久久久| 99久久免费国产特黄| 亚洲∧v久久久无码精品| 欧美日韩中文字幕久久久不卡| 久久久青草久久久青草| 久久精品国产亚洲AV电影| 久久亚洲精品无码aⅴ大香| 久久精品国产亚洲Aⅴ蜜臀色欲| 久久精品午夜一区二区福利| 亚洲精品tv久久久久| 亚洲精品99久久久久中文字幕 | 久久99精品久久久久久不卡 | 久久精品国产亚洲Aⅴ香蕉| 99精品伊人久久久大香线蕉| 91秦先生久久久久久久| 国产精品美女久久久免费| 久久国产香蕉视频| 婷婷久久综合九色综合绿巨人|