加密解密演算法與通訊安全(一)

2021-09-01 17:15:02 字數 2547 閱讀 6301

平時在工作和生活中,我們會經常接觸加密、解密的技術。

同時,我們作為開發者,也會經常遇到使用者對資料安全的需求,當我們碰到了這些需求後如何解決,如何何種方式保證資料安全,哪種方式最有效,這些問題經常困惑著我們。那麼我們又會碰到哪些安全的風險的。

安全性威脅

一般的,我們在網路中傳輸的資料,都可以認為是存在這潛在的風險的。用一句話來概括就是:「任何在網路中傳輸的明文資料都存在安全性威脅。」

下面就列舉下我們通訊中面臨的四種威脅:

第一,中斷。攻擊者有意破壞和切斷他人在網路上的通訊,這是對可用性的攻擊。

第二,截獲。屬於被動攻擊,攻擊者從網路上qie聽他人的通訊內容,破壞資訊的機密性。

第三,篡改。攻擊者故意篡改網路上傳送的報文,這是對完整性的攻擊。

第四,偽造。攻擊者偽造資訊在網路傳送,這是對真實性的攻擊

加密解密演算法

我們經常說加密解密演算法是資料安全領域裡的「劍」,是一種主動的防護,對資料進行必要的加密處理,以保證其在資料傳輸、儲存中的安全。

base64

嚴謹的說,

base64

並不是加密演算法,這裡提到他是因為他的實現比較簡單,通過他的實現,我們可以更好的理解加密解密的過程。

下面看下他是如何「加密」的。假設我們要對「

bc」字串進行加密。現將其轉換為二進位制表達方式,並連起來:

01000010 01000011

,接下來對二進位制按

6位分組,不夠6位補

0,得到

010000

、100100

、001100

(最後兩位補

0)。下面查表,找到對應的值「

qkm」。那麼「

qkm」就是「

bc」用

base64

「加密」後的值了。

value

char

value

char

value

char

value

char0

a 16

q 32

g 48

w 1

b 17

r 33

h 49

x 2

c 18

s 34

i 50

y 3

d 19

t 35

j 51

z 4

e 20

u 36

k 52

0 5

f 21

v 37

l 53

1 6

g 22

w 38

m 54

2 7

h 23

x 39

n 55

3 8

i 24

y 40

o 56

4 9

j 25

z 41

p 57

5 10

k 26

a 42

q 58

6 11

l 27

b 43

r 59

7 12

m 28

c 44

s 60

8 13

n 29

d 45

t 61

9 14

o 30

e 46

u 62

+ 15

p 31

f 47

v 63

/ 從上面的

base64

演算法,我們可以窺視部分加密的本質:將一段有意義的資訊,通過某種方式,對映為一段看不懂的資訊。使用函式表達即為:

public ciphertext encrypted(plaintext text);

值得注意的是,

base64

裡有一張對映表,如果改變對映表的順序,最終得到的結果就會跟著改變。有點類似烹調,在相同原料、相同烹調方式下,我們改變加入的調料,最終做出的東西將會也不一樣。這裡的對映表,我們叫之為「金鑰」。

通過base64

演算法,可以看出,乙個加密演算法會有兩部分組成:金鑰、演算法。兩者不能都公開,都公開的話,就可以被人逆向運算,進行解密。一般的,我們將金鑰進行保密,將演算法進行公開。演算法的公開,有利於演算法的推廣,普及,更有利於尋找演算法中的漏洞。也就是因為

base64

同時公開了演算法、金鑰,所以我們說他並不是真正的加密演算法。當然如果你調整了上面對映表,那麼也能做到加密演算法的目的,不過

base64

加密的強度比較差,所以不建議在實際應用中作為加密演算法使用。

加密解密演算法與通訊安全(三)

對稱加密演算法 理論上說對稱加密演算法,才是我們真正說的加密演算法。所謂對稱加密演算法,通俗的講,就是使用金鑰加密,再使用金鑰解密的加密演算法的總稱。也就是平時我們說到加密演算法,腦子裡第乙個跳出來的加密方式一般都是對稱加密演算法。上面將的 base64 其實也是一種 對稱加密演算法 只是其金鑰公開...

加密解密演算法與通訊安全(六)

數字證書 上面說了這麼多演算法,又是摘要演算法,又是對稱加密演算法,又是非對稱加密演算法的。但是對於通訊中的四種威脅 截獲 中斷 篡改 偽造最多也就只能解決其中的兩個,對於中斷 和偽造威脅,只能乾瞪眼。難道,就沒有其他辦法了嗎。對於中斷,一般是網路拓撲或協議級別要解決的問題,已經超出了我們的範疇,暫...

加密解密演算法與通訊安全(五)

數字簽名 以上三種演算法都有防篡改的功能,但摘要演算法 和對稱加密演算法若要防篡改,則需要交換金鑰,這又是一件麻煩事兒。所以一般在單純的防篡改的需求上,都是使用非對稱加密演算法。但若是對整個明文進行加密的話,加密過程勢必消耗大量時間,所以就誕生了數字簽名。數字簽名,本質上就是非對稱加密演算法,但出於...