K書筆記本-Cryptography(07)

密碼學中不斷的提到了金鑰(KEY)這一個字詞,KEY的產生是一個重大的議題,然而…對於KEY的管理才是密加碼密最大的重點,
各位想想,本來買了一個七八十萬的保險櫃,用了最難開的鎖,但是鑰匙卻放在一個大家隨手可得的地方,
那麼,這個保險櫃等於買沒也沒買,因此,在金鑰的管理(Key Management)成了整個密碼學的重要核心,key不小心流失了 …

密碼學中不斷的提到了金鑰(KEY)這一個字詞,KEY的產生是一個重大的議題,然而…對於KEY的管理才是密加碼密最大的重點
各位想想,本來買了一個七八十萬的保險櫃,用了最難開的鎖,但是鑰匙卻放在一個大家隨手可得的地方
那麼,這個保險櫃等於買沒也沒買,因此,在金鑰的管理(Key Management)成了整個密碼學的重要核心,key不小心流失了
任何再安全的作法都沒有任何作用了,在金鑰管理中最重要的幾個議題,例如:key的建立及推衍、key的散發及更新
確認金鑰的可信、金鑰專有的儲存及廢棄、回復或廢止遺失的金鑰、管理應用程式的金鑰長度…這一些都是在金鑰管理的各項議題。

Key derivation Functions;金鑰推衍函數(KDFs):是一種以金鑰推衍函數去產生多個非同步金鑰以供分享解開秘密內容
即是以一現存的Secret key去產生一把新的Session keys 的技術。並且結合了三種不同的值(hash function;MD5或SHA1, key;
可能是密碼或是其它的值, salt;可以說就是IV,亂數產生以附加到key上去防止攻擊並且達成更大的差異性)去產生key
接下來依照上述的方法去執行產生可用的key。

Key Agreement:在這個部份有三種常見的key agreement schemes(Diffie-Hellman, Unified Diffied-Hellman又稱為DH2,
MQV(Menezes-Qu-Vanstone))DH設計了非同步金鑰,而DH是屬於PKI同步金鑰
而且透過數學的方法使Privet key不會在網路上傳遞,並且能達到key的excahange DH只有一對key pair
而DH2則是屬於兩把key pair的演算法,最後MQV則是利用了很短暫的時間產生出private key及public key
並且信賴的每一把靜態的Key去分享秘密的的金鑰

Diffie-Hellman key Agreement的運作是很數學理論的,而且,在整個金鑰交換的遇程之中,並沒有讓雙方的私鑰流露出來
例如:Jason 和Silvia要分享一張很私密照片,而雙方的資訊構通要以DH做金鑰傳遞,首先:
1.Jason和Silvia共同選擇了Y的X次方乘上(Mod P),Y和P各別是11及13,這個公式則變成11的X次方(Mod 13)
2.接下來Jason和Silvia各別選擇一個秘密的號碼,Jason選擇2,Silvia選擇5,這個時侯雙方的私鑰就定好了
3.Jason將這個秘密套入公式,則是121(mod 13) = 4,Silvia將這個秘密套入公式則是161,051(mod 13) = 7。
4.演算之後將這兩個數字分別傳給對方,Jason告訴Silvia算出來的數字是4,Silvia告訴Jason算出來的數字是7
5.接下來各別再把取得的這個數字重新的套入公式中
 Jason將7套入49(mod 13) = 10,Silvia將4套入公式1024(mod 13) = 10。
6.這個時侯,同步金鑰就選定以10做為雙方的secret key。
由上例指出,Jason和Silvia雙方並沒有將私密數字流露在雙方的傳遞上,只有選擇了公式的演算和演算的結果
因此確保了秘密金鑰的內容

確認金鑰的可信性是整個議題中最重要的議題之一,如何信任,和信任模式又有什麼內容(如何知道那些key是可以信的
如何知道那些金鑰的使用是人還是機器),還有兩個信任模型(網路的信任模型;web of trust model,階層式的信任模型)
憑證建立的可信度(馮證提供了基本的可信公鑰;PKI - Public key infrastructure,PKI也可以說是可信賴的人、物:托管單位)

PKI是一種延伸給各項其它服務彼此間具有信任的模式,它提供了幾種信任的方式
它建立了個人、實體的公鑰(與各別的人有實際的連結) ,可證明公鑰是由數位憑證所發出
並且各個不同的CA之間的信任是可提供個別不同的CA發出的憑證相互信賴(Cross-Certification)
憑證(Certificate)的是由憑證管理中心(CA;Certificate Authority)所發出,CA是具有公信力的第三方單位
KDC則是金鑰的發散中心 ,KDC提供了共通的金鑰,但是,所有散發出來的金鑰都是由KDC的私鑰所推衍出來的
因此若KDC的私鑰被取得,那麼KDC則沒任何安全可言,相對的,CA的抵禦就相對的強,入侵者即使成功的入侵了CA
還是無法得知CA的私密金鑰,因此無法偽造金鑰 ,CA對於個人及機關提供認證及憑證簽發的服務
以建立具有機密性、鑑別、完整性及不可否認性的存取控制及可用性的資訊流通安全環境與機制。

數位憑證是參照x509標準所產生的,下面是v3版本的數位憑證組成圖:
image
另外,一定有不少人有疑問,數位簽章也好,數位憑證也罷,到底屬於那一種加密,是非對稱式還是對稱式呢?
其實,在數位簽章的內容中,只是將加密的憑證發出的單位和憑證的編號傳遞給接收者
接收者只需要將收到的憑證相關訊息向CA進行驗證,CA回查內容若屬相同,則該憑證是有效的
若憑證的內容與CA查詢出來的不同,那麼這個憑證是有問題的了,整個憑證的的關係中並沒有私鑰,因公鑰是由CA所持有
因此對於憑證的相關應用應屬於非對稱式的加密。

呼~~~!這一篇跟大家分了有關金鑰管理及相關的應用,下一篇會跟大家一起來討論密碼系統的應用
密碼系統是密碼學應用至我們保護的資訊上,因此在於這應用之下,鐵定比上幾篇來的有趣了許多,那麼晚上見囉!


Anything keeps Availability.
Anywhere keeps Integrity.
Anytime keeps Confidentiality.
keep A.I.C. = Information Security