各種加密實現
http://www.blogjava.net/stone2083/archive/2012/09/02/168113.html
java->類載入器->檔案校正器->安全管理器
簡述:
校正器的作用:校正類檔案是否完整
安全管理器: 負責控制某個操作是否被允許
使用者認證
數位簽章
加密
數位簽章更多是用來校正資訊有沒有被修改過,而加密可以徹底杜絕防止別人看到資訊內容
1. 語言層次安全性
最初的Java(JDK1.2)平台採用沙箱安全模型,基本安全模型由三部分來承擔,這三部分構成Java運行環境的三個安全性群組件,分別是:類載入器,檔案校正器,安全管理器。
1.1 類載入器是Java安全機制的重要組成部分,可以將類載入器主要分為四類,即,啟動類載入器、標準擴充類載入器、路徑載入器和網路類載入器。
1.1.1採用“雙親委派鏈模式”
1.1.2類載入器為載入的類提供了不同的命名空間
1.1.3類載入器提供了類型檢查的功能模組。類載入器在程式的執行循環中還進
行語義、類型匹配、類型轉換和拋出異常等相關檢查,保證了程式的健壯性。
1.2 類檔案校正器的校正類檔案校正器負責檢查那些無法執行的明顯有破壞性的
操作
1.3 安全管理器是一個負責控制某個操作是否允許執行的類,
2企業層次的安全特性
SHA-1 和 MD5演算法
嚴格說來它們不算是密碼編譯演算法,只能說是摘要演算法。
SHA-1演算法:Security Hash Algorithm 安全雜湊演算法, 它可以把長度不超過2的64次方位的資訊轉換成160位(20位元組)長的散列值
MD5演算法:Message Digest 資訊摘要演算法, 散列長度是128位,16個位元組。它對輸入以512位分組,輸出是4個32位字的級聯。
CRC演算法:迴圈冗餘校正,碰撞幾率比較高
| 比較類型 | SHA-1 | MD5 |
|----------------+----------+---------|
| 分組長度 | 512位元 | 512位元 |
| 摘要長度 | 160位元 | 128位元 |
| 迴圈中的步驟 | 80 | 60 |
| 報文的最大長度 | 2^64 - 1 | 無窮大 |
| 基本邏輯函數 | 4 | 4 |
| 結構形式 | 大端 | 小端 |
由於MD5 與SHA-1均是從MD4 發展而來,它們的結構和強度等特性有很多相似之處,表(1)是對MD5與SHA-1 的結構比較。SHA-1與MD5 的最大區別在於其摘要比MD5 摘要長 32 位元。對於強行攻擊,產生任何一個報文使之摘要等於給定報文摘要的難度:MD5 是2^128 數量級的操作,SHA-1 是2^160 數量級的操作。產生具有相同摘要的兩個報文的難度:MD5是 2^64 是數量級的操作,SHA-1 是2^80 數量級的操作。因而,SHA-1 對強行攻擊的強度更大。但由於SHA-1 的迴圈步驟比MD5 多(80:64)且要處理的緩衝大(160 位元:128 位元),SHA-1 的運行速度比MD5 慢。
MD5 和SHA-1 是單項散列函數的典型代表
DSA(Data signature Algorithm數位簽章)
產生一對公開金鑰和私密金鑰,把公開金鑰發送給需要擷取訊息的人。將所要發送的訊息用自己的私密金鑰加密,然後發送給接收者,接受者得到檔案之後用公開金鑰驗證.主要作用是驗證寄件者的身份和資訊的完整性。它是數位簽章演算法,一種標準的 DSS(數位簽章標準 (DSS)),嚴格來說不算密碼編譯演算法
RSA公開金鑰密碼體制
RSA公開金鑰加密演算法
RSA演算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。
RSA是第一個既能用於資料加密也能用於數位簽章的演算法。RSA的安全性依賴於大數分解,但是否等同於大數分解不得而知。
由於進行的都是大數計算,使得RSA最快的情況也比DES慢上倍,無論是軟體還是硬體實現。速度一直是RSA的缺陷。一般來說只用於少量資料加密。是一個支援變長密鑰的公用密鑰演算法,需要加密的檔案塊的長度也是可變的,非對稱演算法
DES和AES 單密鑰演算法 對稱式加密演算法
DES:data encryption standard
DES的演算法是對稱的,既可用於加密又可用於解密,是一個密碼長度為56位的古老
的分組密碼,DES演算法現在已經過時了,因為可以用窮舉法破解。