密碼學從本質上說並不是很嚴密,加密資料的安全性總是相對的而不是也不可能是絕對的,破解加密資料從理論上說絕不是不可能的,加密資料之所以安全,靠的不是演算法的無懈可擊,考得是人類包括人類的機器的能力的相對弱小,如果人類的平均壽命為10000歲,那麼現如今的加密演算法都將是不安全,如果乙個人平均要用10年以上的時間才能對資料進行解密,那麼這個加密演算法以及金鑰將被認為是很安全,理論上乙個人可以用畢生精力去揭秘一段密文,如果不成則讓兒子孫子繼續,但是這樣做的現實意義並不大,另一方面,人或者機器完全有可能一次就能猜中金鑰是什麼,但是這種事在現實中的概率卻很小,所以在確定演算法和金鑰的時候,盡可能讓破解時間變長,從而讓破解本身變得沒有意義,同時在確定金鑰的時候,盡可能讓金鑰位數很大,從而讓猜中金鑰或者窮舉的概率和時間變得很小和很長。這就是密碼學的本質,千萬不要認為加密的資料一定是絕對安全的,密碼學更多的是社會學和心理學的意義,而不是純粹計算機和數學的意義。人們被**的概率很小,因此幾乎所有的衣飾都不防彈,**的機率很小,所以人們投資房地產,並且認為房子裡很舒適,如果追求安全的話,我認為住草房在**時起碼不會被埋或者被砸。
如果說密碼學有數學上的意義,那麼它利用的就是數學上的「難解」理論,這個在計算複雜性中有涉及,所有的能在問題大小規模的多項式時間內解決的問題,我們認為是易解的,稱作p問題,所以能在問題規模多項式時間內被驗證的問題,我們稱為是np問題,注意是被驗證,也就是說首先你要給乙個你認為的答案,演算法本身僅僅告訴你你的答案是否正確,具體怎樣能給出乙個答案,演算法是不管的,密碼學利用的就是這個,比如乙個很大的素數,求出它的因數,如果你隨意給乙個數,只需要除一下(不要小看這個除法,一般計算機並不是直接支援大數運算的,乙個數超過比如一般的32位或者64位就要程式設計要計算了)就知道它是否是乙個因數,但是窮舉本身會使得計算者發瘋,如果用了幾十年或者幾百年破解了乙個密文,有意義嗎?什麼密文如此重要呢,一戰前的協約國們有些在二戰後都不存在了,或者說你在明天破解了納粹進攻蘇聯的密文,但是它也只能是歷史文獻了,而你也不會是什麼向圖靈那樣的功臣了,充其量是個數學家或者歷史學者。
計算複雜性本身有很多內容,密碼學僅僅利用了它的一些結論罷了。np問題到底能否最終歸結為p問題,這本身就可能研究一輩子的了,研究它的人和搞密碼學的人並不是一類人,搞密碼學的人和程式設計的人也不是一類人,懂c語言的人不一定能看懂openssl,看懂了openssl的也不一頂知道des置換的含義,精通加密解密api的傢伙們能被成為程式設計師或者工程師,他們可能不知道也沒有必要知道rsa或者ecc的理論,而我,什麼也不懂,什麼也不成...
非對稱加密演算法的本質
密碼學從本質上說並不是很嚴密,加密資料的安全性總是相對的而不是也不可能是絕對的,破解加密資料從理論上說絕不是不可能的,加密資料之所以安全,靠的不是演算法的無懈可擊,考得是人類包括人類的機器的能力的相對弱小,如果人類的平均壽命為10000歲,那麼現如今的加密演算法都將是不安全,如果乙個人平均要用10年...
非對稱加密演算法的本質
密碼學從本質上說並不是很嚴密,加密資料的安全性總是相對的而不是也不可能是絕對的,破解加密資料從理論上說絕不是不可能的,加密資料之所以安全,靠的不是演算法的無懈可擊,考得是人類包括人類的機器的能力的相對弱小,如果人類的平均壽命為10000歲,那麼現如今的加密演算法都將是不安全,如果乙個人平均要用10年...
對稱加密演算法 非對稱加密演算法
對稱加密演算法 對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,資料發信方將明文 原始資料 和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文...