2017年10月30日 星期一

公開金鑰加密簡述

常常會看到公開金鑰加密 (Public-key cryptography), 但是好像大家都寫得太複雜了 XD

看到 Public-key, 很自然的我們會想到那應該還有 Private-key 吧?
=> 是的沒錯, 公開金鑰加密的演算法中有一副成對的鑰匙, 公鑰(A)以及私鑰(B).
所以也稱作 非對稱式加密 (asymmetric cryptography) (鑰匙只有一把的狀況叫做對稱式)

它們的功能很簡單:

假設你現在有一份文件 X
Case. 1) 公鑰加密
  以公鑰加密文件得到 A(X)
  此時可以用私鑰解密得到 B(A(X)) = X
  但公鑰無法解密 A(A(X)) = ?_?

Case. 2) 私鑰加密
  以私鑰加密文件得到 B(X)
  此時可以用公鑰解密得到 A(B(X)) = X

看看 Case. 1 (公鑰加密) 的狀況:
  假設小明跟小花進行通訊
  小明把公鑰(A)給了小花, 小花用公鑰加密內容傳送回來給小明 A(X).
  => 因為私鑰(B)不會公開給別人, 所以別人傳送給小明的內容不會被解密.

再看看 Case. 2 (私鑰加密) 的狀況:
  小明現在用私鑰加密B(X)...結果發現:  咦? 怎麼大家都可以解開 @@!
  => 因為公鑰是公開的嘛, A(B(X)) = X
  所以私鑰不是這樣直接在通訊上面使用,
  而是小花用她自己的私鑰(D)來加密訊息, 然後再用小明的公鑰加密A(D(X))丟給小明.
  小明先用自己的私鑰(B)解開得到B(A(D(X))) = D(X)
  再用小花的公鑰(C)解開C(D(X)) = X

以上~

沒有留言:

張貼留言

不定參數印 log

From the UNIXProcess_md.c #ifdef DEBUG_PROCESS   /* Debugging process code is difficult; where to write debug output? */ static void deb...