乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      后端必須了解的密碼學(xué)技術(shù)

       漢無為 2017-11-25

      對(duì)稱加密與非對(duì)稱加密


      按照密鑰的使用形式,加密算法可以分為對(duì)稱加密和非對(duì)稱加密(又叫公鑰加密)。對(duì)稱加密在加密和解密的過程中,使用相同的秘鑰;而非對(duì)稱加密在加密過程中使用公鑰進(jìn)行加密,解密使用私鑰


      對(duì)稱加密的加密和解密需要使用相同的密鑰,所以需要解決密鑰配送問題。


      非對(duì)稱加密的處理速度遠(yuǎn)低于對(duì)稱密鑰


      密鑰:一個(gè)加密算法中,輸入為明文和密鑰,輸出為密文。在加密算法中,密鑰通常是像238435639047397537493753453945379346236這樣的 一串非常大的數(shù)字。


      對(duì)稱加密下的密鑰配送問題


      發(fā)送者A想要發(fā)一封郵件給接受者B,但是不想被人看到其中的內(nèi)容。A決定使用對(duì)稱加密的方法。但是我們知道,對(duì)稱在對(duì)稱加密中,加密與解密需要使用同樣的密鑰。B想要看到接收到的內(nèi)容必須要有A的密鑰。也就是說,A需要把密鑰安全地送到B的手上。


      那如果把加密后的密文和密鑰一同通過郵件發(fā)送給B行不行呢?答案是不行的。因?yàn)橐坏┍患用艿拿芪暮兔荑€同時(shí)落在竊聽者C的手中,C就可以用密鑰對(duì)密文進(jìn)行解密。


      混合密碼系統(tǒng)


      混合密碼系統(tǒng),是將對(duì)稱密碼和非對(duì)稱密碼的優(yōu)勢(shì)相結(jié)合的方法?;旌厦艽a系統(tǒng)解決了對(duì)稱密碼的密鑰配送問題,又解決了非對(duì)稱密碼的加密與解密速度問題。


      混合密碼系統(tǒng)中會(huì)先用快速的對(duì)稱密碼,對(duì)消息進(jìn)行加密,這樣消息就變?yōu)槊芪?,保證消息機(jī)密性。然后,用非對(duì)稱加密對(duì)對(duì)稱密碼的密鑰進(jìn)行加密,因?yàn)槊荑€一般比要加密的信息短,加密和解密的速度就得到保證了。這樣,密碼配送問題就得到了解決。


      單向散列函數(shù)


      單向散列函數(shù)也稱為消息摘要函數(shù)(message digest function),哈希函數(shù),適用于檢查消息完整性的加密技術(shù)。


      單向散列函數(shù)有一個(gè)輸入和一個(gè)輸出,其中輸入稱為信息,輸出稱為散列值。單向散列函數(shù)可以根據(jù)消息的內(nèi)容計(jì)算出散列值,篡改后的信息的散列值計(jì)算結(jié)果會(huì)不一樣,所以散列值可以被用來檢查消息的完整性 。


      單向散列函數(shù)輸出的散列值也成為消息摘要,或者指紋。散列來源于英文”hash”一值,單向散列函數(shù)的作用,實(shí)際上就是將很長(zhǎng)的消息剁碎,然后混合成固定長(zhǎng)度的散列值。


      無法解決的問題


      使用單向散列函數(shù)可以實(shí)現(xiàn)完整性的檢查,但有些情況下即便能檢查完整性也是沒有意義的。


      例如,主動(dòng)攻擊者D偽裝成發(fā)送者A發(fā)送消息和散列值給B。這時(shí),B能夠通過單向散列函數(shù)檢查消息的完整性,但這只是對(duì)D發(fā)送的信息進(jìn)行完整性檢查,而無法識(shí)別出D的偽裝。


      辨別偽裝需要用到認(rèn)證,用于認(rèn)證的技術(shù)包括消息認(rèn)證碼和數(shù)字簽名,消息認(rèn)證碼可以保證信息沒有被篡改,而數(shù)字簽名還能向第三方做出保證。


      消息認(rèn)證碼


      消息認(rèn)證碼(MAC)是一種與密鑰相關(guān)聯(lián)的單向散列函數(shù)。


      使用步驟


      (1)發(fā)送者A與接收者B事先共享密鑰。

      (2)發(fā)送者A根據(jù)請(qǐng)求信息,計(jì)算MAC值(使用共享密鑰)。

      (3)發(fā)送者A將請(qǐng)求信息和MAC值發(fā)送給接收者B。

      (4)接收者B根據(jù)接收到的信息,計(jì)算MAC值。

      (5)接收者B將自己計(jì)算的MAC值與A發(fā)送過來的MAC值進(jìn)行對(duì)比。

      (6)如果MAC值一致,則接收者B可以斷定請(qǐng)求來自發(fā)送者A。


      依然存在密鑰配送問題


      在消息認(rèn)證碼中,發(fā)送者A與接受者B共享密鑰,這個(gè)密鑰不可以被攻擊者獲取,如果攻擊者獲取到這個(gè)密鑰。則攻擊者也可以計(jì)算出MAC值,從而可以進(jìn)行偽裝攻擊。


      因此,要解決密鑰配送問題,我們需要向?qū)ΨQ密碼一樣,使用一些共享密鑰的方法,如公鑰密碼,密鑰分配中心,或其他安全的方式發(fā)送密鑰。


      MAC與對(duì)稱密碼認(rèn)證


      MAC技術(shù)中,發(fā)送者與接受者需要使用相同的密鑰進(jìn)行加密;對(duì)稱加密中,密文只有使用和加密時(shí)相同的密鑰才能正確解密,否則將會(huì)產(chǎn)生看上去雜亂無章的“明文”。那么,是否可以用對(duì)稱密碼進(jìn)行認(rèn)證呢?


      答案是不可以。假設(shè)我們要發(fā)送的明文就是一串隨機(jī)的比特序列,我們將明文用對(duì)稱密碼加密之后發(fā)送出去,當(dāng)接受者收到密文并進(jìn)行解密時(shí),看上去都是一串隨機(jī)的比特序列,那我們?cè)趺磁袛嘈畔⑹欠駚碜怨粽吣兀?/span>


      更準(zhǔn)確地說,我們無法根據(jù)“是否雜亂無章”而判斷認(rèn)證是否通過,這不是一個(gè)可行的標(biāo)準(zhǔn)。而使用MAC則可以通過對(duì)比MAC碼,得到一個(gè)明確的結(jié)果。


      MAC無法解決的問題


      對(duì)第三方的證明


      接收者B收到了來自A的信息后,想要想第三方驗(yàn)證者D證明這條信息確實(shí)是A發(fā)送的。但是MAC無法進(jìn)行這樣的證明。


      對(duì)于驗(yàn)證著D來說,知道密鑰的人有A和B,只要知道密鑰,就可以計(jì)算出正確的MAC值。因此,D不可以斷定信息是由A發(fā)送的,因?yàn)橐灿锌赡苁荁自己偽造信息發(fā)送給自己的。


      無法防止否認(rèn)


      接受者B收到了A發(fā)送過來的信息,里面包含有B與A共享的密鑰計(jì)算出來的,因此B斷定這條信息來自A。


      但是,A可以聲稱自己并沒有向B發(fā)送過這條信息。因?yàn)锳與B都擁有密鑰,A可以聲稱該信息的MAC值,是由B計(jì)算出來的,而不是自己。


      數(shù)字簽名


      數(shù)字簽名,就是只有信息的發(fā)送者才能產(chǎn)生的別人無法偽造的一段數(shù)字串,這段數(shù)字串同時(shí)也是對(duì)信息的發(fā)送者發(fā)送信息真實(shí)性的一個(gè)有效證明。


      數(shù)字簽名是非對(duì)稱密鑰加密技術(shù)與數(shù)字摘要技術(shù)的應(yīng)用。


      簽名的生成與驗(yàn)證


      在數(shù)字簽名技術(shù)中,涉及到兩種行為:生成消息簽名驗(yàn)證數(shù)字簽名。


      生成消息簽名這一行為是由消息的發(fā)送者A來完成的,也稱為“對(duì)消息簽名”。生成簽名就是根據(jù)消息內(nèi)容計(jì)算數(shù)字簽名的值,這個(gè)行為意味著“我認(rèn)可改消息的內(nèi)容”。


      驗(yàn)證數(shù)字簽名這一行為一般由消息的接受者B來完成,也可以由消息的驗(yàn)證者來完成。驗(yàn)證的結(jié)果可以是成功或者失敗,成功以為著消息屬于A,失敗則意味著消息不屬于A 。


      數(shù)字簽名對(duì)簽名密鑰驗(yàn)證密鑰進(jìn)行了區(qū)分,使用驗(yàn)證密鑰是無法生成簽名的。簽名密鑰只能有簽名者持有,而驗(yàn)證密鑰則是任何需要驗(yàn)證簽名的人都可以持有。


      在公鑰密碼中,密鑰分為加密密鑰和解密密鑰,用加密密鑰無法進(jìn)行解密。解密密鑰只能有需要解密的人持有,而加密密鑰則是任何需要加密的人都可以持有??梢哉f,數(shù)字簽名就是將公鑰密碼“反過來用”來實(shí)現(xiàn)的。


      數(shù)字簽名的流程


      發(fā)送者A需要對(duì)消息簽名,而接受者B要對(duì)簽名進(jìn)行驗(yàn)證。那么,A需要事先生成一個(gè)包括公鑰和私鑰的密鑰對(duì),而需要驗(yàn)證簽名的B則需要得到A的公鑰。


      簽名和驗(yàn)證的過程如下:


      1. A用自己的私鑰對(duì)信息進(jìn)行加密。用私鑰加密得到的密文就是A對(duì)這條信息的簽名,由于只有A才持有自己的私鑰,因此除了A以外,其他人是無法生成相同的簽名的。

      2. A將信息和簽名發(fā)送給B

      3. B用A的公鑰對(duì)收到的簽名進(jìn)行解密。如果收到的簽名確實(shí)是用Alice的私鑰進(jìn)行加密得到的密文,那么用A的公鑰應(yīng)該能夠正確解密,反之,則不能正確解密。

      4. B將解密得到的結(jié)余A發(fā)送的信息進(jìn)行對(duì)比,兩者一直,簽名驗(yàn)證成功。兩者不一致,則簽名驗(yàn)證失敗。


      除了對(duì)消息進(jìn)行加密得到簽名,我們還可以對(duì)消息的散列值進(jìn)行加密,得到簽名。這樣無論消息有多長(zhǎng),我們對(duì)消息進(jìn)行加密和解密都是非常快速的。


      與MAC相比下的優(yōu)勢(shì)


      可以防止否認(rèn) 。還記得為什么MAC無法防止否認(rèn)嗎?正是因?yàn)槊荑€由通信的雙方共同持有,發(fā)送者A可以謊稱消息認(rèn)證碼是由接受者B生成的。而在數(shù)字簽名技術(shù)中,加密的私鑰只由一方持有,只有持有密鑰的一方才可以生成簽名。


      第三方的證明 。同理,因?yàn)樗借€僅由單方面持有,簽名僅能由私鑰的持有者生成,所以可以實(shí)現(xiàn)第三方的證明。


      證書


      什么是證書


      公鑰證書(Public-Key Certificate,PKC)由認(rèn)證機(jī)構(gòu)(CA)生成,用于確認(rèn)公鑰確實(shí)屬于此人。


      認(rèn)證機(jī)構(gòu),就是能確認(rèn)“公鑰確實(shí)屬于此人”并能夠生成數(shù)字簽名的個(gè)人或者組織。


      證書的使用場(chǎng)景


      下面通過代表性的應(yīng)用場(chǎng)景來理解證書的作用。


      我們用文字進(jìn)一步說明這些步驟都做了些什么。


      1. B生成密鑰對(duì)

      2. B在認(rèn)證機(jī)構(gòu)D注冊(cè)自己的公鑰

      3. 認(rèn)證機(jī)構(gòu)D用自己的私鑰對(duì)B的公鑰施加簽名并生成證書

      4. A得到帶認(rèn)證機(jī)構(gòu)D的數(shù)字簽名的B的公鑰

      5. A使用認(rèn)證機(jī)構(gòu)D的公鑰驗(yàn)證數(shù)字簽名,確認(rèn)B的公鑰的合法性

      6. A用B的公鑰加密信息并發(fā)送給B

      7. B用自己的私鑰解密密文得到A的信息


      各種密碼技術(shù)對(duì)比


      對(duì)稱密碼與非對(duì)稱密碼



      對(duì)稱密碼公鑰密碼
      發(fā)送者用共享密鑰加密用公鑰加密
      接受者用共享密鑰加密用私鑰解密
      密鑰配送問題存在不存在
      機(jī)密性可保證可保證


      消息認(rèn)證碼與數(shù)字簽名



      消息認(rèn)證碼數(shù)字簽名
      發(fā)送者用共享密鑰計(jì)算MAC值用私鑰生成簽名
      接受者用共享密鑰計(jì)算MAC值用公鑰驗(yàn)證簽名
      密鑰配送問題存在不存在,但是公鑰需要另外驗(yàn)證
      完整性可保證可保證
      認(rèn)證可保證(僅限通信雙方)可保證(可使用與第三方)
      防止否認(rèn)不可保證可保證


      參考


      《圖解密碼學(xué)》


      出處:https://qiuzhenyuan./2017/09/24/常用密碼學(xué)技術(shù)/


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多