Java 加密解密基礎(chǔ):
在荔波等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),荔波網(wǎng)站建設(shè)費(fèi)用合理。
密碼學(xué)是研究編制密碼和破譯密碼的技術(shù)科學(xué)。研究密碼變化的客觀規(guī)律,應(yīng)用于編制密碼以保守通信秘密的,稱為編碼學(xué);應(yīng)用于破譯密碼以獲取通信情報(bào)的,稱為破譯學(xué),總稱密碼學(xué)。
密碼學(xué)常用術(shù)語
明文: 待加密數(shù)據(jù)。
密文: 明文經(jīng)過加密后數(shù)據(jù)。
加密: 將明文轉(zhuǎn)換為密文的過程。
加密算法: 將明文轉(zhuǎn)換為密文的轉(zhuǎn)換算法。
加密密鑰: 通過加密算法進(jìn)行加密操作的密鑰。
解密: 將密文轉(zhuǎn)換為銘文的過程。
解密算法: 將密文轉(zhuǎn)換為明文的轉(zhuǎn)換算法。
解密密鑰: 通過解密短發(fā)進(jìn)行解密操作的密鑰。
密碼學(xué)分類
1.按時間分
a.古典密碼:以字符為基本加密單元。
b.現(xiàn)代密碼:以信息塊為基本加密單元。
2按保密內(nèi)容的算法劃分
a.受限制算法:算法的保密性基于保持算法的秘密。
b.基于密鑰算法:算法的保密性基于對密鑰的保密。
3.按密鑰體制劃分
a.對稱密碼體制:也叫單鑰或私鑰密碼體制,加密過程與解密過程使用同一套密鑰。對應(yīng)的算法就是對稱加密算法,例如DES,AES。
b.非對稱密碼體制:也叫雙鑰或公鑰密碼體制,加密過程與解密過程使用不同的密鑰。對應(yīng)的算法就是非對稱加密算法,例如RSA。
4.按明文處理方式劃分
a.流密碼:也稱為序列密碼,加密時每次加密一位或者一個字節(jié)的明文。例如RC4算法。
b.分組密碼:加密時將明文分成固定長度的組,用同一個密鑰和算法對每一組進(jìn)行加密輸出也是固定長度的明文。當(dāng)最后一組大小不滿足指定的分組大小時,
有兩種處理模式:
無填充模式,直接對剩余數(shù)據(jù)進(jìn)行加密,此組加密后大小與剩余數(shù)據(jù)有關(guān);
有填充模式,對于不滿足指定長度分組的進(jìn)行數(shù)據(jù)填充;如果恰巧最后一組數(shù)據(jù)與指定分組大小相同,那么直接添加一個指定
大小的分組;填充的最后一個字節(jié)記錄了填充的字節(jié)數(shù)。
分組密碼工作模式簡介
1.電子密碼本模--ECB
將明文的各個分組獨(dú)立的使用相同的密鑰進(jìn)行加密,這種方式加密時各分組的加密獨(dú)立進(jìn)行互不干涉,因而可并行進(jìn)行。同樣因?yàn)楦鞣纸M獨(dú)立加密的緣故,相同的明文分組加密之后具有相同的密文。該模式容易暴露明文分組的統(tǒng)計(jì)規(guī)律和結(jié)構(gòu)特征。不能防范替換攻擊。
其實(shí)照實(shí)現(xiàn)來看,ECB的過程只是把明文進(jìn)行分組,然后分別加密,最后串在一起的過程。當(dāng)消息長度超過一個分組時,不建議使用該模式。在每個分組中增加隨機(jī)位(如128位分組中96位為有效明文,32位的隨機(jī)數(shù))則可稍微提高其安全性,但這樣無疑造成了加密過程中數(shù)據(jù)的擴(kuò)張。
優(yōu)點(diǎn):
1.簡單;
2.有利于并行計(jì)算;
3.誤差不會被傳送;
缺點(diǎn):
1.不能隱藏明文的模式;
2.可能對明文進(jìn)行主動攻擊;
2.密碼分組鏈接模--CBC
需要一個初始化向量IV,第一組明文與初始化向量進(jìn)行異或運(yùn)算后再加密,以后的每組明文都與前一組的密文進(jìn)行異或運(yùn)算后再加密。IV 不需要保密,它可以明文形式與密文一起傳送。
優(yōu)點(diǎn):
1.不容易主動攻擊,安全性好于ECB,適合傳輸長度長的報(bào)文,是SSL、IPSec的標(biāo)準(zhǔn)。
缺點(diǎn):
1.不利于并行計(jì)算;
2.誤差傳遞;
3.需要初始化向量IV
3.密文反饋模式--CFB
需要一個初始化向量IV ,加密后與第一個分組明文進(jìn)行異或運(yùn)算產(chǎn)生第一組密文,然后對第一組密文加密后再與第二組明文進(jìn)行異或運(yùn)算纏身第二組密文,一次類推,直到加密完畢。
優(yōu)點(diǎn):
1.隱藏了明文模式;
2.分組密碼轉(zhuǎn)化為流模式;
3.可以及時加密傳送小于分組的數(shù)據(jù);
缺點(diǎn):
1.不利于并行計(jì)算;
2.誤差傳送:一個明文單元損壞影響多個單元;
3.唯一的IV;
4. 輸出反饋模式--OFB
需要一個初始化向量IV ,加密后得到第一次加密數(shù)據(jù),此加密數(shù)據(jù)與第一個分組明文進(jìn)行異或運(yùn)算產(chǎn)生第一組密文,然后對第一次加密數(shù)據(jù)進(jìn)行第二次加密,得到第二次加密數(shù)據(jù),第二次加密數(shù)據(jù)再與第二組明文進(jìn)行異或運(yùn)算產(chǎn)生第二組密文,一次類推,直到加密完畢。
優(yōu)點(diǎn):
1.隱藏了明文模式;
2.分組密碼轉(zhuǎn)化為流模式;
3.可以及時加密傳送小于分組的數(shù)據(jù);
缺點(diǎn):
1.不利于并行計(jì)算;
2.對明文的主動攻擊是可能的;
3.誤差傳送:一個明文單元損壞影響多個單元;
5.計(jì)數(shù)器模式--CTR
使用計(jì)數(shù)器,計(jì)數(shù)器初始值加密后與第一組明文進(jìn)行異或運(yùn)算產(chǎn)生第一組密文,
計(jì)數(shù)器增加,然后,加密后與下一組明文進(jìn)行異或運(yùn)算產(chǎn)生下一組密文,以此類推,直到加密完畢
優(yōu)點(diǎn):
1.可并行計(jì)算;
2.安全性至少與CBC 模式一樣好;
3.加密與解僅涉及密碼算法的加密;
缺點(diǎn):
1.沒有錯誤傳播,不易確保數(shù)據(jù)完整性;
分組密碼填充方式簡介
PKCS5 :填充字符串由一個值為5的字節(jié)序列組成,每個字節(jié)填充該字節(jié)序列的長度。明確定義Block的大小是8位
PKCS7 :填充字符串由一個值為7的字節(jié)序列組成,每個字節(jié)填充該字節(jié)序列的長度。對于塊的大小是不確定的,可以在1-255之間
ISO10126:填充字符串由一個字節(jié)序列組成,此字節(jié)序列的最后一個字節(jié)填充字節(jié)序列的長度,其余字節(jié)填充隨機(jī)數(shù)據(jù)。
希望本篇文章對您有所幫助