1

公鑰加密如何使用私鑰和公鑰加密解密/加密?關鍵是什麼意思是256位?它是如何解密的?有沒有寫加密程序的語言,或者任何語言都可以嗎?公鑰加密如何工作?

+3

我強烈推薦一本書,比如Bruce Schneier的[Applied Cryptography](http://www.schneier.com/book-applied.html)。 – 2011-02-12 10:10:30

回答

2

簡而言之:

使用對稱算法和隨機對稱密鑰對數據進行加密。然後使用公共非對稱密鑰對隨機密鑰進行加密。加密的隨機密鑰與加密的數據一起存儲。爲了解密數據,使用私人非對稱密鑰來解密存儲的隨機密鑰,然後使用解密的隨機密鑰來解密數據。

256位是密鑰的長度。然而,它對於對稱和非對稱密鑰具有顯着不同的含義。對於對稱密鑰,256位是一個非常強大的密鑰(您可以使用AES 384或AES 512擁有更長的密鑰,其中的數字指定算法運行的密鑰長度)。對於非對稱算法,256位不算什麼,可比較的強度是2048位。

公鑰加密可以使用任何支持數學運算和數組的語言來實現。但是,這樣做是重新發明輪子。對於PKI,存在許多跨平臺庫:用於C++的開放源代碼OpenSSL,用於Java的開放源代碼BouncyCastle以及更多。我們公司爲.NET,Windows和Linux(即將推出的MacOS X版本)提供支持和維護的SecureBlackbox產品。

另外還有一些我們推薦給我們所有用戶的books about PKI。 RSA的指南是一個簡單的閱讀(但非常有用),第二本書更深入的細節。

+0

從這個非常簡短的描述來看,使用這個隨機密鑰看起來似乎不是多餘的,因爲最後,您需要的只是解密兩個密鑰(數據由解密的隨機密鑰)的私鑰。 – 2011-04-14 05:17:07

1

對於第一個問題,請參閱http://en.wikipedia.org/wiki/Public-key_cryptography 你可以谷歌的更多細節。

256位密鑰意味着我們使用長度爲256的密鑰。您將瞭解更多關於第一個問題的答案後的閱讀。

許多語言都內置或第三方API來實現這些調用。