• <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

            菜鳥學習數字簽名筆記

            數字簽名(Digital Signature)是電子簽名(Electronic Signature)的一種(實現)。

            目前電子簽名簽名的實現方式有:
            基于PKI(Public Key Infrastructino)的公鑰密碼技術的數字簽名;
            以生物特征統計學為基礎的識別標識;
            手印、聲音印記或視網膜掃描的識別;
            一個讓收件人能識別發件人身份的密碼代號、密碼或個人識別碼PIN;
            基于量子力學的計算機...
            數字簽名的目的和功能:
            認證、數據保密性、數據完整性和不可否認性.

            數字簽名的實現方式:

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

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

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

            關鍵是散列算法比公鑰加密算法要快很多.

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


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

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

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

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

            综合网日日天干夜夜久久| 国产成人精品久久亚洲高清不卡| 久久久久国色AV免费观看| 久久久亚洲精品蜜桃臀 | 久久精品国产清高在天天线| 国产99久久精品一区二区| 久久久久亚洲AV成人网人人网站 | 欧洲精品久久久av无码电影| 久久久久夜夜夜精品国产| 一本大道久久香蕉成人网| 国产精品99久久久久久人| 久久精品国产72国产精福利| 亚洲va国产va天堂va久久| 九九久久精品国产| 国内精品伊人久久久久av一坑| 久久亚洲精品无码观看不卡| …久久精品99久久香蕉国产| 久久久久久久久66精品片| 国产精品美女久久久免费| AV无码久久久久不卡蜜桃| 免费精品国产日韩热久久| 大伊人青草狠狠久久| 国产亚洲精品久久久久秋霞 | 伊人丁香狠狠色综合久久| 色偷偷久久一区二区三区| 日日狠狠久久偷偷色综合0| 老司机国内精品久久久久| 久久久久久无码Av成人影院| 久久久久亚洲AV片无码下载蜜桃| 国产成人精品久久亚洲| 99久久精品国产一区二区| 精品久久久久久久久午夜福利| 狠狠色婷婷久久一区二区| 18禁黄久久久AAA片| 综合久久精品色| 一本久久综合亚洲鲁鲁五月天| AAA级久久久精品无码区| 国产精品免费看久久久香蕉| 亚洲国产精品一区二区久久| 99久久精品免费| 久久久人妻精品无码一区|