1. 程式人生 > >關於對稱加密與非對稱加密

關於對稱加密與非對稱加密

1. 加密的需求

(1)保密
這個很容易理解,就比如你寫的日記,不想被父母看到。
(2)鑑別/認證
這個就比如有個人說他是你爸爸,你如何鑑別他不是你爸爸呢?比如驗血嘛,就是個鑑別認證。
(3)完整性
完整性也很容易理解,就是資料是否是完整的,沒有被篡改啥的。
(4)不可否認性
不可否認性就是比如像古代按手印來證明是你已經確認了。這就是不可否認性。

2. 加密的分類

(1)對稱加密
加密和解密的金鑰是一樣的。
(2)非對稱加密
加密和解密使用不同的金鑰。
下面詳細介紹什麼是對稱加密,什麼是非對稱加密
首先來解釋下名詞:
金鑰:分為加密金鑰和解密金鑰。
明文:沒有進行加密,能夠直接代表原文含義的資訊。
密文:經過加密處理處理之後,隱藏原文含義的資訊。
加密:將明文轉換成密文的實施過程。
解密:將密文轉換成明文的實施過程。

2.1 對稱加密

就像上面說過的,加密和解密的金鑰是一樣的。都採用公鑰加密和解密,

如下圖:

可見,解密跟加密使用同一套金鑰。


一般就採用置換加密,轉置加密和乘積密碼等

(置換加密就是交換原始順序不改變,內容變了
比如:
abcdefg  
qwertyu
abc---->qwe
,轉置加密就是,原始內容沒變,順序變了
比如:
    1432  

    abcd        
    zxcv  

加密後:

    az

    dv

    cc

    bx


,乘積密碼就是根據以上的加密方式進行迭代,從而增加解密難度)

對稱加密應用場景有哪些呢?  

比如:你寫的日記,不想被其他人隨意檢視,就可對其對稱加密
或者說,有些公司有截獲email的,你給同事發郵件,就可以使用對稱加密,
同事告訴同事你的公鑰,這樣就可以防止公司檢視到你email的資訊等。

2.2非對稱加密

對稱加密的加密和解密的金鑰是相同的,在有些場景下並不適用,比如:數字證書。
還比如:你要發表一篇祕密檔案給國家安全部門,首先要求祕密檔案是保密的,不能被其他人知道,
然後還要證明是你發表的,不是其他人。這樣就需要用到非對稱加密了。

如下圖:

    

 可見非對稱加密,K!=K' 。

非對稱加密應用場景

在非對稱加密中,有兩種形式,

(1)一種是使用公鑰加密,私鑰解密:
這個比如這種情況:我是公司老闆,你們給我發的訊息,我只希望只有我可以看到,其他人不能看到。
(2)另一種就是使用私鑰加密,公鑰解密:
這種情況主要應用在數字證書這類中,比如CA證書等。這種在於要確認證書釋出的鑑別/認證。