密鑰是一種參數(它是在明文轉換為密文或將密文轉換為明文的算法中輸入的數據),加密算法是明文轉換成密文的變換函數,同樣的密鑰可以用不同的加密算法,得到的密文就不一樣了。
舉個很簡單的例子,比如凱撒密碼,就是將字母循環後移n位,這個n就是一個密鑰,循環後移的方法叫做算法,雖然用的是相同的算法,但是對明文用不同的密鑰加密的結果不一樣。
比如Run用Key=1(密鑰)的凱撒密碼,變成Svo,用Key=2(密鑰)加密就成了Twp,所以密鑰和算法是明顯不同的,再比如現在公鑰密碼體係大多用的RSA算法,但每個人的密鑰不一樣,密文才不同,一般來說,算法是公開的,而密鑰是不公開的一個加密算法正好包含兩個輸入參數,一個是明文,一個是密鑰。
1,秘密密鑰算法:
使用極其複雜的加密算法,即使破譯者能夠對選擇的任意數量的明文進行加密,也無法找出破譯密文的方法。秘密密鑰的一個弱點是解密密鑰必須和加密密碼相同,這就產生了如何安全地分發密鑰的問題。
2,公開密鑰算法:
滿足三個條件:第一個條件是指將解密算法作用於密文後就可以獲得明文;第二個條件是指不可能從密文導出解密算法;第三個條件是指破譯者即使能加密任意數量的選擇明文,也無法破譯密碼。如果滿足以上條件,則可以公開加密算法。