2013年5月31日

對稱性金鑰 與 非對稱性金鑰

Hi, I am Victor   :  )


對稱性金鑰 :

A使用金鑰去加密某段訊息,並且將加密過後的訊息傳送給B,

這時B接收到訊息後會看到一堆亂碼,此時B必須拿當初A使用的金鑰將密文解密,

B才可得知A要傳達的訊息是甚麼!

衍生出甚麼問題?

問 : 剛開始時雙方如何同意這把金鑰?

其中一解是,發送端本人實際的到接收端本地,一起約定金鑰。(不方便)

不然就是藉由網路將金鑰傳送至接收端,但是假如有壞人從中擷取 (man-in-the-middle attack),

則壞人可以解密所有的訊息。 (危險)

問 : 與不同人溝通則需要好幾把不同的金鑰.......

A 與 B、C通訊,則 A與B之間傳遞訊息需要一把金鑰,而A與C傳遞訊息也需要

一把不同的金鑰,否則C就可以解密出A、B的訊息。(當與多人通訊時,金鑰數量增加)


非對稱性金鑰 :

使用兩種不同的金鑰,分別為 公鑰 (public key) 與 私鑰 (private key),

一把用於加密上,一把用於解密上,其中沒有其他的金鑰可以解密,

使用本來用來加密的金鑰也不行~  

由上述可得知非對稱性金鑰解決了以往對稱性金鑰的"金鑰協議/交換"問題。

私鑰應該要秘密的保存在自己身邊,不可以讓任何人得到,

而公鑰則是可以普遍公開的。

例如:  B 有 一把 公鑰 與 私鑰,

B使用網路將公鑰傳給A,當A想與B通訊時可使用公鑰將訊息加密傳送給B,

而私鑰是指有B自己才有的,所以B可利用私鑰將密文解密。

反過來說,假如B使用私鑰加密,而A收到訊息利用公鑰解密,

則A可以知道這個訊息一定是B發送過來的 (因為私鑰只有B有)。


兩者特性 :

加解密金鑰:

對稱性金鑰密碼學 -> 加解密使用相同金鑰。

非對稱性金鑰密碼學 -> 加密使用一種,解密使用另一種。

加解密速度:

對稱性金鑰密碼學 ->快速

非對稱性金鑰密碼學 ->慢

產生密文大小 :

對稱性金鑰密碼學 -> 通常與明文差不多大小

非對稱性金鑰密碼學 ->超過明文大小

金鑰協議 / 交換 :

對稱性金鑰密碼學 ->大問題

非對稱性金鑰密碼學 ->沒問題

金鑰數量 :

對稱性金鑰密碼學 ->隨著人數變多,金鑰也變多

對稱性金鑰密碼學 ->少


數位信封

對稱性金鑰密碼學 與 非對稱性金鑰密碼學 各有各的優缺點,

我們將兩機制結合並且希望達到下列目標 :

1. 加密、解密 過程不需要花費許多時間

2. 產生密文不需太大

3. 能解決金鑰分配問題


首先,A為發送端,B為接收端。

A 使用對稱性金鑰密碼學演算法加密明文,而使用的對稱性金鑰為 K1 (用完就丟棄)

接著使用B的公鑰加密 K1,此程序稱為金鑰包裝 (key wrapping)

接著A將數位信封寄給B,數位信封內涵 密文、經過金鑰包裝後的對稱性金鑰 K1、

必須使用的解密演算法資訊,B在收到信封之後,先使用私鑰將K1解密,

接著使用信封內所提供的演算法將密文解密為明文。


為何有效率?

首先 對稱性金鑰密碼學演算法加密是很快速的,且產生密文大小與明文大小差不多,

再來我們使用非對稱性金鑰密碼學演算法加密金鑰 K1 (用完就丟),

而 K1的大小通常為 56 bit or 64 bit ,所以加密所花的時間並不會很長,也不會浪費很多空間。

再者這可以解決金鑰交換的問題,

不會遺失對稱性金鑰密碼學與非對稱性金鑰密碼學的特性。






















沒有留言:

張貼留言