電腦安全(1)

  • 2019 年 10 月 6 日
  • 筆記

少量概念

CIA

即Confidentiality(保密性)、Integrity(完整性)、Availability(可用性)

TCSEC、ITSEC、CC

電腦安全的標準,按時間排序,TCSEC最先提出了TCB(可信計算基)與訪問控制機制,ITSEC提出了CIA,CC即現行的資訊技術安全評估通用準則。

符號

P:Plain Text,即明文。

C:Cipher Text,即密文。

E:Encrypt,即加密。C=E(P)

D:Decrypt,即解密。P=D(C)

一個密碼系統必須滿足P=D(E(P))

分類

經典密碼

即對稱加密,加密與解密的密鑰相同或能相互推導。包括DES、AES等。

公開密鑰演算法

非對稱加密,加密使用公開的Pulic Key,解密使用私有的Private Key。包括RSA等,支援實現數字簽名。

密碼分析

包括窮舉、統計分析、數學分析。

安全性

僅一次一密能達到無條件安全,但只要解密成本大於資訊價值,或解密時間超過資訊有效期即達到安全目的。

經典密碼

替換技術

將明文替換成密文,可以用單表或多表,也可以替換單個字元或連續字元。

多字母替代:playfair

雙字母作為一個單元,遇到連續的字母需要添加分隔符X,如果字元串長度是奇數補一個Q,然後對照5×5的密碼錶(英文有26個字母,所以將i、j視為同一字母),同行的字母右移,同列的字母下移,其他字母取形成的矩形的另外兩角。

如密鑰為gojam(密鑰不能有重複字母),可以製成如下密碼錶:

g o j a m

b c d e f

h k l n p

q r s t u

v w x y z

現在加密明文「HeEatApple」,首先添加分隔符X,變成「HeXEatApXple」,剛好可以分為六組HE XE AT AP XP LE。

HE對應BN。(我默認了左下角對應左上角,右上角對應右下角)

XE對應DY。

AT對應EY。

AP對應NM。

XP對應LZ。

LE對應DN。

因此密文為BNDYEYNMLZ。

解密過程與加密過程相反,聰明的你一定可以解出來。

多字母替代:Hill Cipher 希爾密碼

基於矩陣的線性變換,將m個連續字元轉為m個密文。密鑰K是m*m的矩陣,在模26運算中可逆,即K*K^-1=I(mod 26)。

加密時m個連續明文作為行向量與密鑰K相乘並mod26,解密時m個連續密文與K^-1相乘並mod26。

矩陣乘法

a行b列的a*b矩陣與b行c列的b*c矩陣相乘,最終得到的矩陣a行c列。(即第一個矩陣的寬應該與第二個矩陣的高相同,否則可能無法相乘)

得到的a*c矩陣中,用C[i,j]表示第i行第j列元素,用A[i,j]與B[i,j]表示前兩個矩陣的第i行第j列元素,有以下關係:

C[i, j]=A[i, 0]*B[0, j]+A[i,1]*B[1,j]+A[i,2]*B[2,j]+…+A[i, b]*B[b, j]

例如C[0,0]=A[0,0]*B[0,0]+A[0,1]*B[1,0] +A[0,2]*B[2,0]+…+A[0,b]*B[b,0]

也就是第一個矩陣的第一行乘以第二個矩陣的第一列,第一個矩陣的第一行乘以第二個矩陣的第二列,依次這樣。

代數餘子式

對矩陣A中的元素A(i,j),將第i行與第j列從矩陣A中移去,餘下的部分作為行列式的值再乘以(-1)^(i+j)得到的數叫A[i,j]的代數餘子式。

以A=[[3,2],[1,1]]作為例子,A(0,0)的代數餘子式為1*(-1)^(0+0)即1。同理A(0,1)=-1,A(1,0)=-2,A(1,1)=3。

伴隨矩陣

像上面由各個位置的代數餘子式構成的矩陣被稱為伴隨矩陣,A的伴隨矩陣A*=[[1,-1],[-2,3]]。

求逆矩陣

逆矩陣A^-1=A*/|A|,其中|A|代表A的行列式,等於3*1-2*1=1。

A*是轉置後的伴隨矩陣,因此A*=[[1,-2],[-1,3]]。

因此逆矩陣A^-1=[[1,-2],[-1,3]]。驗證A乘以A^-1=[[1,0],[0,1]],即單位矩陣(對角線全是1,其餘部分全是0)。

加密/解密

以上2*2矩陣作為例子,如明文為XD,即[23,3](26字母從0開始,25結束),乘以A等於[23*3+3*1,23*2+3*1]=[72,49],然後mod26=[20,23],即UX。

解密時[20,23]乘以A^-1,等於[20*1-23,20*(-2)+23*3]=[-3,29],mod26後等於[23,3]。

這種加密方式能夠防止只有密文的統計學攻擊,因為密鑰矩陣本身包含了資訊,不同頻率的字元被分散到了不同密文。但如果有很多明文-密碼對,或者攻擊者可以獲取各種明文的密碼,那麼密鑰K很容易被計算出來。

置換技術

傳統密碼的兩個要點,即替換與置換,交換位置能更好地保密資訊。

文章導航

子元素margin-top轉移到父元素