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 ,所以加密所花的時間並不會很長,也不會浪費很多空間。
再者這可以解決金鑰交換的問題,
不會遺失對稱性金鑰密碼學與非對稱性金鑰密碼學的特性。
沒有留言:
張貼留言