導航:首頁 > 源碼編譯 > 古典密碼學演算法

古典密碼學演算法

發布時間:2024-08-28 12:54:11

① 古典密碼學常用的技術和主要的密碼演算法原理

古典密碼技術根據其基本原理大體可以分為兩類:替換密碼技術和換位密碼技術。

古典悄和含密碼是密碼學中的其中一個類型,其大部分加密方式都是利用替換式密碼或移項式密碼,有時則是兩者的混合。其於歷史中經常使用,但在現代由於計算機的出現,使得古典密碼解密已經不再困難,已經很少使用,大部分的已經不再使用了。

利用一個密鑰字來構造替換作為密鑰,先將密鑰字作為首段密文,然後將之後未在字母表中出現過的字母依次寫在此密鑰字之後,構造出一個字母替換表。當密文為英文單詞時,最多可以有26!個不同的替換表(包括恆等變換)。

仿射密碼技術:啟笑

即結合乘法密碼技術和移位密碼技術。

它的加密函數是 e(x)=ax+b,其中a和 m互質,m是字母的數目。

解碼函數是 d(x)=i*(x-b)mod m,其中 i 是 a 的乘法逆元。

當a=0時,仿射密碼技術退化為移位替換密碼技術。

當b=0時,仿射密碼技術退化為乘法密碼技術。

② 古典密碼安全演算法有哪些

世界上最早的一種密碼產生於公元前兩世紀。是由一位希臘人提出的,人們稱之為
棋盤密碼,原因為該密碼將26個字母放在5×5的方格里,i,j放在一個格子里,具體情
況如下表所示

1 2 3 4 5
1 a b c d e
2 f g h i,j k
3 l m n o p
4 q r s t u
5 v w x y z

這樣,每個字母就對應了由兩個數構成的字元αβ,α是該字母所在行的標號,β是列
標號。如c對應13,s對應43等。如果接收到密文為

43 15 13 45 42 15 32 15 43 43 11 22 15

則對應的明文即為secure message。

另一種具有代表性的密碼是凱撒密碼。它是將英文字母向前推移k位。如k=5,則密
文字母與明文與如下對應關系

a b c d e f g h i j k l m n o p q r s t u v w x y z
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

於是對應於明文secure message,可得密文為XJHZWJRJXXFLJ。此時,k就是密鑰。為了
傳送方便,可以將26個字母一一對應於從0到25的26個整數。如a對1,b對2,……,y對
25,z對0。這樣凱撒加密變換實際就是一個同餘式

c≡m+k mod 26

其中m是明文字母對應的數,c是與明文對應的密文的數。

隨後,為了提高凱撒密碼的安全性,人們對凱撒密碼進行了改進。選取k,b作為兩
個參數,其中要求k與26互素,明文與密文的對應規則為

c≡km+b mod 26

可以看出,k=1就是前面提到的凱撒密碼。於是這種加密變換是凱撒野加密變換的
推廣,並且其保密程度也比凱撒密碼高。

以上介紹的密碼體制都屬於單表置換。意思是一個明文字母對應的密文字母是確定
的。根據這個特點,利用頻率分析可以對這樣的密碼體制進行有效的攻擊。方法是在大
量的書籍、報刊和文章中,統計各個字母出現的頻率。例如,e出現的次數最多,其次
是t,a,o,I等等。破譯者通過對密文中各字母出現頻率的分析,結合自然語言的字母頻
率特徵,就可以將該密碼體制破譯。

鑒於單表置換密碼體制具有這樣的攻擊弱點,人們自然就會想辦法對其進行改進,
來彌補這個弱點,增加抗攻擊能力。法國密碼學家維吉尼亞於1586年提出一個種多表式
密碼,即一個明文字母可以表示成多個密文字母。其原理是這樣的:給出密鑰
K=k[1]k[2]…k[n],若明文為M=m[1]m[2]…m[n],則對應的密文為C=c[1]c[2]…c[n]。
其中C[i]=(m[i]+k[i]) mod 26。例如,若明文M為data security,密鑰k=best,將明
文分解為長為4的序列data security,對每4個字母,用k=best加密後得密文為

C=EELT TIUN SMLR

從中可以看出,當K為一個字母時,就是凱撒密碼。而且容易看出,K越長,保密程
度就越高。顯然這樣的密碼體制比單表置換密碼體制具有更強的抗攻擊能力,而且其加
密、解密均可用所謂的維吉尼亞方陣來進行,從而在操作上簡單易行。該密碼可用所謂
的維吉尼亞方陣來進行,從而在操作上簡單易行。該密碼曾被認為是三百年內破譯不了
的密碼,因而這種密碼在今天仍被使用著。

古典密碼的發展已有悠久的歷史了。盡管這些密碼大都比較簡單,但它在今天仍有
其參考價值。

閱讀全文

與古典密碼學演算法相關的資料

熱點內容
gcc編譯選項給gdb調試 瀏覽:586
ios和android前景好 瀏覽:62
蘋果如何藍牙傳送安卓app 瀏覽:550
方舟編譯器mod怎麼用 瀏覽:760
伺服器地址欄在哪裡 瀏覽:395
做安檢還是程序員好 瀏覽:526
程序員最火的bug 瀏覽:936
騰訊文件夾英文怎麼寫 瀏覽:125
pdf內碼 瀏覽:432
微信小程序文件夾怎麼發給好友 瀏覽:969
java不能被繼承的類 瀏覽:161
蘋果app網址怎麼添加 瀏覽:910
php明年的今天 瀏覽:115
麒麟970也能用方舟編譯器么 瀏覽:476
金融實驗大作業python 瀏覽:795
雲伺服器搭建聊天室 瀏覽:603
怎麼在手機上下載荔枝app 瀏覽:18
湖南戴爾伺服器雲空間 瀏覽:363
聯想驅動怎麼解壓 瀏覽:268
程序員進化論解說 瀏覽:871