從產(chǎn)品角度看密碼學(xué)的發(fā)展過程

塵土1001
2 評論 3107 瀏覽 33 收藏 7 分鐘

從產(chǎn)品角度看密碼學(xué)的發(fā)展過程

在產(chǎn)品經(jīng)理眼中任何產(chǎn)品的形成都是基于用戶需求,脫離用戶需求的產(chǎn)品終究會被淘汰,任何產(chǎn)品的形成和發(fā)展都是在不斷的滿足用戶的需求,密碼學(xué)的發(fā)展過程也是如此。計(jì)算機(jī)網(wǎng)絡(luò)的初衷就數(shù)據(jù)共享,然而數(shù)據(jù)共享過程中的信息安全顯得尤為重要,密碼學(xué)發(fā)展了起來。

下面就以一個小例子講述密碼學(xué)的發(fā)展過程:

A和B通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通訊,信息內(nèi)容完全暴露在網(wǎng)絡(luò)當(dāng)中,任何人都可以獲取數(shù)據(jù)內(nèi)容。如圖C就是一個信息盜竊者。

圖片 1

此時(shí),網(wǎng)絡(luò)使用者A,B產(chǎn)生了需求:信息內(nèi)容不能被其他人獲取。

于是產(chǎn)生了非對稱加密方式,非對稱加密就是通信雙方通信過程中,消息發(fā)送者利用一個叫做密鑰的東西對消息進(jìn)行加密,而消息接收者同樣需要應(yīng)用這個密鑰對消息進(jìn)行解密。其他人即使盜取了加密的信息,在沒有密鑰的情況下,不能通過任何方式獲得消息內(nèi)容。目前比較成熟的對稱加密算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。有了對稱加密后A與B的通信過程如下圖

圖片 2

如圖,非對稱加密基本滿足了網(wǎng)絡(luò)使用者的需求,即使C盜取了網(wǎng)絡(luò)數(shù)據(jù),也不能獲得A,B的消息內(nèi)容。但是這種方式產(chǎn)生了一個新的問題,A,B間的密鑰如何傳遞,如果密鑰在傳遞過程中被C盜取,那之后的基于對稱加密算法的通信仍是不安全的。

此時(shí)產(chǎn)生了新的需求,就是要安全的傳遞密鑰,不能被其他人獲取,也就是說通信過程中的第一條信息一定要確保安全。顯然此時(shí)仍使用對稱加密是無論如何都不能滿足需求的。因?yàn)镃隨時(shí)可以盜取新的密鑰解密加密的密鑰。于是,非對稱算法應(yīng)運(yùn)而生,在非對稱加密算法中,密鑰是成對出現(xiàn),稱為公鑰和私鑰,公鑰公布于網(wǎng)絡(luò)當(dāng)中,私鑰自己保存。使用公鑰加密的消息只能通過私鑰解密,使用私鑰加密的消息只能通過公鑰解密,目前成熟的非對稱加密算法主要有RSA、Elgamal、背包算法、Rabin、D-H、ECC等。

此時(shí)A,B的傳遞密鑰的過程變?yōu)?,A利用B的公鑰對消息加密,B接受到加密的消息后利用B的私鑰對消息進(jìn)行解密,獲取消息內(nèi)容。如圖所示:

圖片 3

至此密鑰的傳遞過程完成。即使C拿到了加密后的密匙,由于C沒有B的私鑰,所以無法解密消息內(nèi)容。上述過程看似完美,但仍然存在兩個重大問題:

  1. B的公鑰由誰保管,如果C冒充此人將自己的公鑰發(fā)送給A,而B使用了C的公鑰加密通信密鑰,那么C盜取消息后便可利用自己的私鑰解密消息內(nèi)容獲得通信密鑰。
  2. 由于B的公鑰公布于網(wǎng)絡(luò),任何人都可以獲取,那么C冒充A利用B的公鑰加密通信密鑰傳遞給B,B解密后利用該密鑰進(jìn)行信息加密,那么C便可輕松的獲取消息的內(nèi)容。

對于第1個問題的解決方法就是找到一個公認(rèn)的第三方組織,保管注冊用戶的公鑰。如果A需要B的公鑰,就可以通過第三方拿到B的公鑰。這樣 第一問題就解決了,如果你非要說如果C黑掉了第三方組織怎么辦?我只能說那就沒得辦了,密碼學(xué)揪到最后沒有安全性可言。

而第2個問題的解決方法要引入一個叫做信息摘要的東西,信息摘要也稱為數(shù)字指紋,網(wǎng)絡(luò)中任何小到一個字母a,或是一個1000G的文件都有自己獨(dú)一無二的數(shù)字指紋。常見的提取數(shù)字指紋的算法就是md5, 通過md5算法。信息摘要經(jīng)過加密就是我們常說的數(shù)字簽名。接下來我們談?wù)勅绾卫眯畔⒄鉀Q問題2。

解決問題2的根本就在于如何證明B接受到的消息的確是A傳輸?shù)???梢阅嬗蒙鲜龅倪^程利用A的公鑰證明A就是A!聽起來有點(diǎn)拗口,下面詳細(xì)說一下通信的過程。

A的加密過程:

  1. A使用B的公鑰加密信息M內(nèi)容。
  2. 提取信息M的數(shù)字摘要。
  3. 利用自己的私鑰加密M(數(shù)字簽名)。
  4. 然后將這兩部同時(shí)傳遞給B。

而B接受到消息后處理過程如下,

  1. 利用B的私鑰解密消息,獲得消息內(nèi)容M。
  2. 提取M的數(shù)字指紋。
  3. 利用A的公鑰提取解密數(shù)字簽名。
  4. 對比提取的消息摘要和解密的數(shù)字簽名,如果相同,說明消息的確來自于A。

至此A將密鑰安全的傳遞到了B,后續(xù)就可以使用密鑰進(jìn)行通信了。這也是Https的工作過程。

最后圖解:

圖片 4

 

本文由 @某塵土1001 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理?,未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. :mrgreen:

    來自北京 回復(fù)
    1. 你估計(jì)是筆誤吧。。?!癇的公鑰由誰保管,如果C冒充此人將自己的公鑰發(fā)送給A,而B使用了C的公鑰加密通信密鑰,那么C盜取消息后便可利用自己的私鑰解密消息內(nèi)容獲得通信密鑰。”這句不對啊親,改成“B的公鑰由誰保管,如果C冒充此人將自己的公鑰發(fā)送給A,而A使用了C的公鑰加密通信信息,那么C盜取消息后便可利用自己的私鑰解密消息內(nèi)容獲得通信內(nèi)容。”后面一條同理,你應(yīng)該說的是冒充接受者跟冒充發(fā)送者吧。

      來自山東 回復(fù)
专题
62891人已学习14篇文章
你说你会写产品需求文档,我信!但是肯定写的不好,不服看看别人的。
专题
19358人已学习13篇文章
本专题的文章分享了从不同维度拆解一款产品或者功能,有利于提升我们对于产品和功能的思考能力。
专题
133224人已学习23篇文章
产品经理,除了会写竞品分析,还要会写产品分析。
专题
13201人已学习12篇文章
知识管理是什么?通常来看,想理解知识管理,可以从业务、管理、实施等视角切入。本专题的文章分享了如何做知识管理。