2014年4月15日 星期二

加密(Encryption),密鑰key(解碼表)與演算法(algorithm)


jack變成 kbdl就是加密。加密的解碼表(密鑰key)是:"英文字母的下一個"。是用古老的一種很簡單的演算法cipher(改變字母順序)來解釋。

j -> k
a -> b
c -> d
k -> l

加密的種類
對稱式加密(Symmetric Encryption),加密和解密時使用相同的密鑰key(解碼表)

排列組合
對稱式加密密鑰key(解碼表只有一種,但演算法可以有不同的組合。比方說cipher(改變字母順序)也可以是改變字母位置。
jack->jkac
也可以交替使用。所以演算法本身可以有排列組合。cipher 排列組合4種。以數位表示2位元,2的2次方。

常見的對稱加密演算法有DES、、AES(128位元)、Blowfish、IDEA、RC5、RC6(128位元)。

對稱式加密傳遞網頁不適用 

例如,你在自己網頁上密碼打jack 加密傳出去,然後在電子信號還沒到伺服器前擷取。得到的字母是kbdl ,你就知道加密的演算法是"英文字母的下一個"。所以你去擷取別人的信號,就可以破解了。(雖然規則不會那麼簡單,但是還是有規則)


非對稱式加密(Asymmetric Encryption)

你加密的方式是,先去伺服器要一份加密方法表(publid key)。第一次要你加密的方法是"英文字母的下一個"。第二次要你加密的方法是"英文字母的下三個"。解碼時不同的連線有不同的方法表(private key)。你擷取時就很難破解。排列組合變多了。

排列組合
非對稱式加密除了演算法本身可以有排列組合多了不同密鑰key(解碼表)的排列組合。如上cipher的加密,規則2種。0代表英文字母的下一個,1代表"英文字母的下三個"。所以加密所需的位元數只要1個bit。兩種排列組合。如果8bit就有256種排列組合。

RSA演算法
非對稱式加密常用RSA演算法。演算法本身可以有1024bitt加密。加上網頁傳遞密鑰key加密(SSL)最高為128bit。以現有通用技術,破解得花上兆年時間。

加密解密的時間
基本上對稱式加密所用的演算法加密處理時間較短。但也可以複雜化。變成時間長難破解。可是加密解密的時間也很重要。難破解,但要花很久時間加密。也很難被接受。所以必須取得平衡點。