首先了解密碼學的基本目的是使得兩個在不安全的通道中通訊的人,通常稱為alice和bob,以一種使他們的敵手oscar不能明白和理解通訊內容的方式進行通訊。
定義 乙個密碼體制是滿足以下條件的五元組(p,c,k,e,d):
1.p代表所有可能的明文組成的有限集。
2.c代表所有可能的密文組成的有限集。
3.k代表金鑰空間,由所有可能的秘鑰組成的有限集。
4.對於每乙個k∈k,都存在乙個加密規則ek∈e和相應的解密規則dk∈d。並且對每對ek:p→c,dk:c→p,滿足條件:對每乙個明文x∈p,均有dk(ek(x))=x。
移位密碼(shift cipher)
其基礎是數論中的模運算。這裡給出模運算的定義:
假設a和b均為整數,m是一正整數。若m整除b-a,則可將其表示為a≡b(mod m)。式a≡b(mod m)讀作「a與b模m同餘」,正整數m稱為模數。
我們給出兩個例子,計算101mod7,101=7x14+3,因為0<=3<=6,故101mod7=3。再計算(-101)mod7,因為-101=7x(-15)+4,故(-101)mod7=4。
注:許多計算機程式語言定義a mod m的取值在-m+1到m-1之間,並要求取值和a的正負號相同。在此定義下,(-101)mod7應為-3。但在這裡,為了方便起見,我們要求a mod m恒為一非負值。
現在我們定義模m上的算術運算:令zm表示集合,在其上定義兩個運算加法(+)和乘法(x),其運算類似於普通的實數域上的加法和乘法,所不同的只是所得的值是取模以後的餘數。
在此不加證明的列出這些法則:
1.對加法運算封閉:對任意的a,b∈zm,有a+b∈zm。
2.加法運算滿**換律:對任意的a,b∈zm,有a+b=b+a。
3.加法運算滿足結合律:對任意的a,b,c∈zm,有(a+b)+c=a+(b+c)。
4.0是加法單位元:對於任意的a∈zm,有a+0=0+a=a。
5.任何元素存在加法逆元:a的加法逆元為m-a,因為a+(m-a)=(m-a)+a=0。
6.對乘法運算封閉:對任意的a,b∈zm,有ab∈zm。
7.乘法運算滿**換律:對任意的a,b∈zm,ab=ba。
8.乘法運算滿足結合律:對任意的a,b,c∈zm,有(ab)c=a(bc)。
9.1是乘法單位元:對任意的a∈zm,有a×1=1×a=a。
10.乘法和加法之間存在分配律:對任意的a,b,c∈zm,有(a+b)c=(ac)+(bc)。
密碼體制-移位密碼
令p=c=k=z26,對0<=k<=25,任意的x,y∈zm,定義
ek(x)=(x+k)mod 26
和dk(y)=(y-k)mod26
注:若取k=3,則此密碼體制通常稱作凱撒密碼(caesar cipher),因為他首先被儒勒.凱撒所使用。
使用移位密碼可以用來加密普通的英文句子,但是必須建立英文本母和mod26剩餘之間的意義對應關係:如a<–>0,b<–>1,…,z<–>25。列表如下:
英文本母
對應剩餘值a0
b1c2
d3e4
f5g6
h7i8
j9k10
l11m12
n13o14
p15q16
r17s18
t19u20
v21w22
x23y24
z25下面給出乙個例項:
假設以為密碼的秘鑰為k=11,明文為:wewillmeetatmidnight
首先將明文中字母對應於其相應的整數,得到如下字串:
22、4、22/8、11、11、12、4、4、19、0、19、12、8、3、13、8、6、7、19
然後將每個數都與11相加,再對其取模26運算,可得
7、15、7、19、22、22、23、15、15、4、11、4、23、19、14、24、19、17、18、4
最後轉為相應的字串,即得密文hphtwwppelextoytrse,要解密只需執行相應的逆過程即可。
在已知密文y的情況下,試圖得到秘鑰k的過程,我們稱其為密碼分析。
顯然,移位密碼(mod26)是不安全的,可以通過金鑰窮舉法來破譯,因為金鑰空間小,只有26中可能的情況,所以很容易破解出來。
這也就表明,乙個密碼體制安全的必要條件是能抵抗窮盡金鑰搜尋攻擊,普通的方法是使金鑰空間必須足夠大。但是,很大的金鑰空間並不是保證密碼體制安全的充分條件。
密碼學複習一 古典密碼
1 保證資訊保安的關鍵要素 認證 鑑別 訪問控制,資料保密,資料完整,抗否認性。2 四種基本攻擊型別 唯密文攻擊 攻擊者只知道一些密文 已知明文攻擊 攻擊者知道一些明文密文對 選擇明文攻擊 攻擊者可以選擇一些明文密文對 針對金鑰額攻擊 主要是針對公鑰密碼系統 對於唯密文攻擊一般是採用窮舉攻擊。3 對...
密碼學學習一 古典密碼學
使用固定資訊,將原文替換成密文 單錶替換的原文和密文是同一張表 如原文密文關係如下 a b b c c d d e e f 則bee的密文就是cff 多表替換的原文和密文存在多張表中 表1 a b b c c d d e e f 表2 a c b d c e d f e g 原文 bee 金鑰 12...
密碼學之古典凱撒
西元前一百年,在羅馬處上了一位對世界影響巨大的人物,他是當時羅馬三巨頭之一。在執政生涯中,傳言他率先使用了一種簡單的加密函,因此這種加密方法以他的名字命名。以下密文被解開後可以獲得乙個有意義的單詞,你可以用這個相同的加密向量加密附件中的密文,作為答案進行提交 frphevgl。答案為非常規形式。凱撒...