對稱加密(單金鑰加密)
非對稱加密(公開金鑰)
對稱+非對稱
加密技術:利用技術手段把資料變為亂碼(加密)傳送,到達目的地後再用 相同或不同的手段還原(解密)。
雜湊函式是乙個單向函式,它將目標文字轉化為固定長度的字串。由於是單向函式,不具備可逆性,實現加密保護。
q:我用雜湊函式加密了明文,從此以後,不僅攻擊者解讀不了加密後的字串,我也不懂了鴨?
a:某些應用場景是不需要解密的,即,被保護的資料只需要做驗證,舉個栗子:
簡單的使用者登入場景
你的使用者名稱與密碼儲存(沒有使用雜湊加密)在伺服器資料庫中,當伺服器資料庫洩露資料時,你的使用者名稱與密碼也就洩露了。
假設,你的使用者名稱和密碼經過雜湊加密,那麼伺服器資料庫中將儲存加密後的密文,即使洩露資料也是一大堆雜湊字串。
而正常的登陸驗證過程,只需要驗證密文是否已知就行不需要知道明文。如下圖:
sm3(國產雜湊演算法)
加密:r=e
(s,k
e)r=e(s,k_e)
r=e(s,
ke)
r為密文, s為明文,k
ek_e
ke為金鑰,經過函式r
rr後,明文變密文;
解密:s=d
(r,k
e)s=d(r,k_e)
s=d(r,
ke)
s為密文, r為明文,k
ek_e
ke為金鑰,經過函式s
ss後,密文變明文;
加密和解密都是用同乙個秘鑰
加密、解密效率高
秘鑰被竊取,容易造成資料不安全
des3-des
aesidea
sms4
rc5trivium
加密:明文按64位分組,每組明文經初始排列
通過子金鑰k1~k16進行16次乘積變換
通過最終排列(第3步)得到64位密文
解密:與加密運算一樣,只是所取子金鑰 的順序相反,從k16到k1
如圖:
公鑰:可以告訴全網的金鑰
私鑰:只能自己知道的金鑰
用公鑰加密用私鑰解密
加密、解密相對於對稱加密效率更低,但是比對稱加密更安全。
公鑰可能被中間人偽造,造成資料不安全。
rsaeigamal
ecc演算法:
選擇兩個大素數,p
pp和q
qq,均應大於1
0100
10^10
100;
計算n =p
∗qn = p * q
n=p∗q和z=(
p−1)
∗(q−
1)z = (p-1)*(q-1)
z=(p−1
)∗(q
−1);
選擇乙個與z
zz互為質數的數,令其為ddd;
找到乙個e
ee使其滿足(e∗
d)mo
dz=1
mod z =1
(e∗d)m
odz=
1;對於報文m
加密需計算密文c=m
e∗(m
odn)
c=m^e*(mod\ n)
c=me∗(
modn
);解密c需計算m=c
d∗(m
odn)
m=c^d*(mod\ n)
m=cd∗(
modn
)。ps:實施加密需要e和n,實施解密需要d和n。因此,公開金鑰由(e, n)構成,秘密金鑰由(dn)或只是d構成。n限制明文塊的大小。
舉例:取p = 7, q = 11
n = pq = 77, z = (p-1)(q-1) = 60
取e = 43, d= 7 使得e*d mod z = 301 mod 60 = 1
得到公鑰(e=43, n=77),金鑰(d=7, n=77)
設我們的明文為m = 42
加密c = m
em^e
memod n = 4243
42^42
43mod 77 = 14
解密m = c
dc^d
cdmod n = 147
14^7
147 mod 77 = 42
由於對稱加密效率高,非對稱加密效率低,通常將兩者結合起來,即用非對稱加密進行身份驗證,傳遞對稱金鑰,利用對稱加密進行資料傳輸。https就是乙個例子
簡單的https加密過程,忽略協議協商等具體細節:
客戶端發起https連線
伺服器返回包含公鑰的數字證書
客戶端生成對稱金鑰
客戶端通過公鑰加密,傳送對稱金鑰
客戶端與伺服器進行密文通訊
其中,第2步保證了伺服器公鑰的真實性;
第4步為非對稱加密;
第5步為對稱加密;
網路安全,加密技術
對稱加密技術 優點,效率高,缺點,私鑰不適合在網上傳輸,金鑰維護麻煩 非對稱加密技術 公鑰加密,私鑰解密 私鑰加密,公鑰解密 公私鑰來歷,作業系統根據給出的一串隨機數,通過某個函式運算產生乙個金鑰對,公鑰和私鑰,公鑰只能加密,私鑰負責解密 以私鑰解密為例,1我把私鑰儲存好,把公鑰給別人,別人就能給我...
資料加密技術
1.1.在傳統上,我們有幾種方法來加密資料流 1.2.幸運的是,在所有的加密演算法中最簡單的一種就是 置換表 演算法 1.3.對這種 置換表 方式的乙個改進就是使用2個或者更多的 置換表 1.4.與使用 置換表 相類似,變換資料位置 也在計算機加密中使用 1.5.但是,還有一種更好的加密演算法,只有...
檔案加密技術
檔案加密技術 給檔案加密的技術很多,其中又分為不同等級,以適合不同場合的需要.這裡給出最簡單的檔案加密技術,即採用檔案逐字節與密碼異或方式對檔案進行加密,當解密時,只需再執行一遍加密程式即可.編乙個例項程式,能對任意乙個檔案進行加密,密碼要求使用者輸入,限8位以內 當然你可以再更改 程式要有很好的容...