1. 對稱密碼體制的內容和典型演算法
內容:在對稱加密系統中,加密和解密採用相同的密鑰。因為加解密密鑰相同,需要通信的雙方必須選擇和保存他們共同的密鑰,各方必須信任對方不會將密鑰泄密出去,這樣就可以實現數據的機密性和完整性。
演算法:DES(Data Encryption Standard數據加密標准)演算法及其變形Triple DES(三重DES),GDES(廣義DES);歐洲的IDEA;日本的FEAL N、RC5等。
Triple DES使用兩個獨立的56bit密鑰對交換的信息進行3次加密,從而使其有效長度達到112bit。RC2和RC4方法是RSA數據安全公司的對稱加密專利演算法,它們採用可變密鑰長度的演算法。通過規定不同的密鑰長度,,C2和RC4能夠提高或降低安全的程度。
(1)加密移位法擴展閱讀:
密碼體制的基本模式:
通常的密碼體制採用移位法、代替法和代數方法來進行加密和解密的變換,可以採用一種或幾種方法結合的方式作為數據變換的基本模式,下面舉例說明:
移位法也叫置換法。移位法把明文中的字元重新排列,字元本身不變但其位置改變了。
例如最簡單的例子:把文中的字母和字元倒過來寫。
或將密文以固定長度來發送
5791ECNI SYLDIPAT DEVLOBES AHYTIRUC ESATAD**。
2. 密碼那些事兒|(五)換個位置,面目全非
移位法和替代法大約5000年前出現,但直到9世紀才被阿拉伯人發明的頻率分析法破解,中間隔了足足有4000年。在另一邊的歐洲,實際上直到16世紀,都還沒掌握這種破解方法。從這里我們也能感受到,阿拉伯文明曾經的輝煌。
移位法很簡單。我舉個例子,比如你的電話號碼13911095871,把每個數字都在數列中往後加1,那麼1變2,2變3,加密後就變成了24022106982。
13911095871叫做明文,24022106982則是它對應的密文。
字母的移位也是同樣的道理,因為字母是遵循著abcdef……xyz的順序排列,一共26個,看起來會比單純的數字移位復雜一些,但本質上仍是一樣的。
比如要對iron man加密,加密規則選擇每個字母都向後移動3位, 「iron man」就變成了「lurq pdq」。
沒有經驗的人乍看一下,完全就是亂碼,實際上它只不過做了基礎加密而已。這就是最基礎的移位法。
大約在公元前700年左右,出現了用一種叫做Scytale的圓木棍來進行保密通信的方式。這種Scytale圓木棍也許是人類最早使用的文字加密解密工具,據說主要是古希臘城邦中的斯巴達人(Sparta)在使用它,所以又被叫做「斯巴達棒」。
相傳雅典和斯巴達之間的伯羅奔尼撒戰爭中,斯巴達軍隊截獲了一條寫滿雜亂無章的希臘字母的腰帶,斯巴達將軍在百思不得其解之際,胡亂將腰帶纏到自己的寶劍上,從而誤打誤撞發現了其中隱藏的軍機。這就是斯巴達密碼棒的由來。
「斯巴達棒」的加密原理就是,把長帶子狀羊皮紙纏繞在圓木棍上,然後在上面寫字;解下羊皮紙後,上面只有雜亂無章的字元,只有再次以同樣的方式纏繞到同樣粗細的棍子上,才能看出所寫的內容。
比如像上圖那樣,在纏好的布帶上寫上「 YOU ARE IN DANGER」,然後再拆下來,布帶上的文字順序就變成了「YIONUDAARNEGER」,完全看不出任何頭緒,這樣就起到了加密的作用。
2100年前,古羅馬的執政官和軍隊統帥愷撒(Julius Caesar,公元前100—前44)發明了一種把所有的字母按字母表順序循環移位的文字加密方法。例如,當規定按字母表順移3位的話,那麼a就寫成d,b寫成e,c寫成f,…,x寫成a,y寫成b,z寫成c。單詞Hello就寫成了Khoor。如果不知道加密方法,誰也不會知道這個詞的意思。解密時,只需把所有的字母逆移3位,就能讀到正確的文本了。
上圖就是根據愷撒加密法的原理而製作的字母循環移位盤。可以根據需要設定加密時移位的位數,以供加密或解密時快速查詢。據說愷撒當年就是使用這種加密方法與手下的將軍們通信的。
從密碼學的角度來看,雖然愷撒加密法的規則很簡單,然而,愷撒加密的思想對於西方古典密碼學的發展有著很大影響。
事實上,直到第二次世界大戰結束,西方所使用的加密方法原理大多與愷撒加密法類似,只是規則越來越復雜而已。
盡管移位法加密在西方得到了很普遍的應用,但在中國的史書上卻很少記載,各位朋友可以想一想是為什麼?
感興趣的朋友們不妨在評論區一起聊一聊。
下一次,我們繼續了解移位法和替代法的故事。
往期文章:
密碼那些事兒|(四)隱藏的消息
密碼那些事兒|(三)「風語者」——從未被破解的密碼
密碼那些事兒|(二)密碼學發展的七個階段
密碼那些事兒|(一)無所不在的密碼
本人是官方授權會員推廣專員,點擊 會員專屬通道 成為會員,您將會獲得鑽獎勵及諸多權益!
《鑽獎勵調整公告》
3. c語言 文件移位加密與解密
您說的這個方法,我沒有操作過。 給文件加密,我使用的是超級加密3000. 超級加密3000採用國際上成熟的加密演算法和安全快速的加密方法,可以有效保障數據安全! 具體操作方法: 1 下載安裝超級加密3000。
4. 密碼體制中,加密演算法一般分為哪幾種
古典加密演算法分為替代演算法和置換移位法。
1、替代演算法
替代演算法用明文的字母由其他字母或數字或符號所代替。最著名的替代演算法是愷撒密碼。凱撒密碼的原理很簡單,其實就是單字母替換。
例子:
明文:abcdefghijklmnopq
密文:defghijklmnopqrst
2、置換移位法
使用置換移位法的最著名的一種密碼稱為維吉尼亞密碼。它以置換移位為基礎的周期替換密碼。
在維吉尼亞密碼中,加密密鑰是一個可被任意指定的字元串。加密密鑰字元依次逐個作用於明文信息字元。明文信息長度往往會大於密鑰字元串長度,而明文的每一個字元都需要有一個對應的密鑰字元,因此密鑰就需要不斷循環,直至明文每一個字元都對應一個密鑰字元。
其他常見的加密演算法
1、DES演算法是密碼體制中的對稱密碼體制,把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位。
2、3DES是基於DES的對稱演算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
3、RC2和RC4是對稱演算法,用變長密鑰對大量數據進行加密,比DES快。
4、IDEA演算法是在DES演算法的基礎上發展出來的,是作為迭代的分組密碼實現的,使用128位的密鑰和8個循環。
5、RSA是由RSA公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的,非對稱演算法。
6、DSA,即數字簽名演算法,是一種標準的 DSS(數字簽名標准),嚴格來說不算加密演算法。
7、AES是高級加密標准對稱演算法,是下一代的加密演算法標准,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael演算法。
5. C語言(文件的移位與加密解密)
這道題,並不難,只是樓主,沒有說清,是就字母移位嗎?
但是看你的例子,有不全是。
程序如下:
#include <stdio.h>
#include <stdlib.h>
FILE *source;//源文件
FILE *destination;//目標文件
int key;//密鑰
char file[100];//文件名
void encryption()//加密
{
char ch;
printf("請輸入要加密的文件名\n");
scanf("%s",file);
if((source=fopen(file,"r"))==NULL)
{
printf("無法打開文件!\n");
exit(0);
}
printf("請輸入加密後的文件名\n");
scanf("%s",file);
if((destination=fopen(file,"w"))==NULL)
{
printf("無法創建文件!\n");
exit(0);
}
printf("請輸入密鑰\n");
scanf("%d",&key);
ch=fgetc(source);
while(ch!=EOF)
{
if(ch=='\n')
{
fputc(ch,destination);
ch=fgetc(source);
continue;
}
ch+=key;
fputc(ch,destination);
ch=fgetc(source);
}
fclose(source);
fclose(destination);
}
void decrypt()//解密
{
char ch;
printf("請輸入要解密的文件名\n");
scanf("%s",file);
if((source=fopen(file,"r"))==NULL)
{
printf("無法打開文件!\n");
exit(0);
}
printf("請輸入加密後的文件名\n");
scanf("%s",file);
if((destination=fopen(file,"w"))==NULL)
{
printf("無法創建文件!\n");
exit(0);
}
printf("請輸入密鑰\n");
scanf("%d",&key);
ch=fgetc(source);
while(ch!=EOF)
{
if(ch=='\n')
{
fputc(ch,destination);
ch=fgetc(source);
continue;
}
ch-=key;
fputc(ch,destination);
ch=fgetc(source);
}
fclose(source);
fclose(destination);
}
int main()//主函數提供菜單
{
int choice=0;
printf("******************\n");
printf("1 文件加密\n");
printf("2 文件解密\n");
printf("3 退出\n");
printf("******************\n");
printf("請輸入1 2 3選擇操作\n");
scanf("%d",&choice);
switch(choice)
{
case 1:encryption();break;
case 2:decrypt();break;
case 3:break;
}
return 0;
}
6. 密碼學 - 古典加密
信息理論之父:克勞德 香農
論文《通信的數學理論》
如果沒有信息加密,信息直接被中間人攔截查看、修改。
明文Plain text
密文Cipher text
加密Encryption/Encrypherment:將明文轉化為密文
解密Decrytion/Decipherment:講密文還原為明文
加密鑰匙EK Encryption Key:加密時配合加密演算法的數據
解密鑰匙EK Encryption Key:解密時配合解密演算法的數據
各個字元按照順序進行n個字元錯位的加密方法。
(凱撒是古羅馬軍事家政治家)
多次使用愷撒密碼來加密並不能獲得更大的安全性,因為使用偏移量A加密得到的結果再用偏移量B加密,等同於使用A+B的偏移量進行加密的結果。
凱撒密碼最多隻有25個密匙 +1到+25 安全強度幾乎為0
(密鑰為0或26時,明文在加密前後內容不變)
暴力枚舉
根據密文,暴力列出25個密匙解密後的結果。
凱撒密碼的例子是所有 單字母替代式密碼 的典範,它只使用一個密碼字母集。
我們也可以使用多字母替代式密碼,使用的是多個密碼字母集。
加密由兩組或多組 密碼字母集 組成,加密者可自由的選擇然後用交替的密碼字母集加密訊息。
(增加了解碼的困難度,因為密碼破解者必須找出這兩組密碼字母集)
另一個多字母替代式密碼的例子「維吉尼亞密碼」,將更難解密
(法語:Vigenère cypher),
它有26組不同用來加密的密碼字母集。
每個密碼字母集就是多移了一位的凱撒密碼。
維吉尼亞方格(替換對照表):
維吉尼亞密碼引入了密匙概念。
同一明文在密文中的每個對應,可能都不一樣。
移位式密碼,明文中出現的字母依然出現在密文中,只有字母順序是依照一個定義明確的計劃改變。
許多移位式密碼是基於幾何而設計的。一個簡單的加密(也易被破解),可以將字母向右移1位。
例如,明文"Hello my name is Alice."
將變成"olleH ym eman si ecilA."
密碼棒(英語:scytale)也是一種運用移位方法工具。
如
明文分組,按字元長度來分,每5個字母分一組。
並將各組內的字元的順序進行替換。
具體例子
縱欄式移項密碼
先選擇一個關鍵字,把原來的訊息由左而右、由上而下依照關鍵字長度轉寫成長方形。接著把關鍵字的字母依照字母集順序編號,例如A就是1、B就是2、C就是3等。例如,關鍵字是CAT,明文是THE SKY IS BLUE,則訊息應該轉換成這樣:
C A T
3 1 20
T H E
S K Y
I S B
L U E
最後把訊息以行為單位,依照編號大小調換位置。呈現的應該是A行為第一行、C行為第二行、T行為第三行。然後就可以把訊息"The sky is blue"轉寫成HKSUTSILEYBE。
另一種移位式密碼是中國式密碼(英語:Chinese cipher),移位的方法是將訊息的字母加密成由右而左、上下交替便成不規則的字母。範例,如果明文是:THE DOG RAN FAR,則中國式密碼看起來像這樣:
R R G T
A A O H
F N D E
密碼文將寫成:RRGT AAOH FNDE
絕大多數的移位式密碼與這兩個範例相類似,通常會重新排列字母的行或列,然後有系統的移動字母。其它一些例子包括Vertical Parallel和雙移位式(英語:Double Transposition)密碼。
更復雜的演算法可以混合替代和移位成為積密碼(proct cipher);現代資料區段密碼像是DES反復位移和替代的幾個步驟。
行數=欄數
明文,分為N欄(N行) 按照明文本來的順序,豎著從上往下填。
【實例1】
明文123456
欄數2(行數2)
密文135246
135
246
拆成2行(2欄),豎著看密文——得到明文
【實例2】明文123456789abcdefghi 欄數9 (行數)--->密文1a2b3c4d5e6f7g8h9i
拆成9行豎著看密文.
1a
2b
3c
4d
5e
6f
7g
8h
9i
古典密碼【柵欄密碼安全度極低】組成柵欄的字母一般一兩句話,30個字母。不會太多! 加解密都麻煩
是指研究字母或者字母組合在文本中出現的頻率。應用頻率分析可以破解古典密碼。
工具
在線詞頻分析 http://textalyser.net/
7. 換位密碼的加密方法
加密換位密碼通過密鑰只需要對明文進行加密,並且重新排列裡面的字母位置即可。具體方法如下
1、基於二維數組移位的加密演算法
給定一個二維數組的列數,即該二維數組每行可以保存的字元個數。再將明文字元串按行依次排列到該二維數組中。最後按列讀出該二維數組中的字元,這樣便可得到密文。
2、換位解密演算法(基於二維數組移位的解密演算法)
先給定一個二維數組的列數,即該二維數組每行可以保存的字元個數,並且這個數應該和加密演算法中的一致。接下來將密文字元串按列一次性排列到該二維數組中。最後按行讀出該二維數組中的字元即可。
3、換位加密演算法
首先按照密鑰排列順序:將想要加密的明文加密,然後列出表格,找出對應的字母,就是密鑰。然後對他們進行換位加密,就是將表格的第二行依據密鑰排列順序進行排序以便得到加密後的密文。
(7)加密移位法擴展閱讀
數據加密技術的分類
1、專用密鑰
又稱為對稱密鑰或單密鑰,加密和解密時使用同一個密鑰,即同一個演算法。單密鑰是最簡單方式,通信雙方必須交換彼此密鑰,當需給對方發信息時,用自己的加密密鑰進行加密,而在接收方收到數據後,用對方所給的密鑰進行解密。當一個文本要加密傳送時,該文本用密鑰加密構成密文,密文在信道上傳送,收到密文後用同一個密鑰將密文解出來,形成普通文體供閱讀。
2、對稱密鑰
對稱密鑰是最古老的,一般說「密電碼」採用的就是對稱密鑰。由於對稱密鑰運算量小、速度快、安全強度高,因而如今仍廣泛被採用。它將數據分成長度為64位的數據塊,其中8位用作奇偶校驗,剩餘的56位作為密碼的長度。首先將原文進行置換,得到64位的雜亂無章的數據組,然後將其分成均等兩段;第三步用加密函數進行變換,並在給定的密鑰參數條件下,進行多次迭代而得到加密密文。
3、公開密鑰
又稱非對稱密鑰,加密和解密時使用不同的密鑰,即不同的演算法,雖然兩者之間存在一定的關系,但不可能輕易地從一個推導出另一個。非對稱密鑰由於兩個密鑰(加密密鑰和解密密鑰)各不相同,因而可以將一個密鑰公開,而將另一個密鑰保密,同樣可以起到加密的作用。公開密鑰的加密機制雖提供了良好的保密性,但難以鑒別發送者,即任何得到公開密鑰的人都可以生成和發送報文。
4、非對稱加密技術
數字簽名一般採用非對稱加密技術(如RSA),通過對整個明文進行某種變換,得到一個值,作為核實簽名。接收者使用發送者的公開密鑰對簽名進行解密運算,如其結果為明文,則簽名有效,證明對方的身份是真實的。數字簽名不同於手寫簽字,數字簽名隨文本的變化而變化,手寫簽字反映某個人個性特徵,是不變的;數字簽名與文本信息是不可分割的,而手寫簽字是附加在文本之後的,與文本信息是分離的。
8. 位加密(或移位加密)代碼怎麼樣寫
char getkey(char txt) { char e = "dfwkekgodsfdfwkdsf";//一定位數的字元串,比如32位 int ctr=0; char tmp = ''; for (int i=0;i<strlen(txt);i++) { if (ctr == strlen(e)) ctr=0;//當ctr長度為上面 e 的長度時,重新置為0 tmp += substr(txt,i,i+1) ^ substr(e,ctr,ctr+1);//將 txt的第i個字元 與 e 的第 ctr個字元 異或運算 並添加入 tmp字串中 ctr++;// ctr 自增 } return tmp;//返回得到的tmp字串 } char encrypt(txt) { srand((double)microtime()*1000000);//設置時間種子 char encrypt_key = md5(rand(0,32000));//得到32為加密字串; 這里目的就是每次運行時得到的字串都不一樣 int ctr=0; int tmp = ""; for (int i=0;i<strlen(txt);i++) { if (ctr==strlen(encrypt_key)) ctr=0; tmp += substr(encrypt_key,ctr,ctr+1) . (substr(txt,i,i+1) ^ substr(encrypt_key,ctr,ctr+1)); ctr++; } return getkey(tmp); } char decrypt(txt) { char txt = getkey(txt); char tmp = ""; for (int i=0;i<strlen(txt);i++) { md5st = substr(txt,i,i+1); i++; tmp += (substr(txt,i,i+1) ^ md5st); } return tmp; }
9. 古典加密演算法有哪些 古典加密演算法
世界上最早的一種密碼產生於公元前兩世紀。是由一位希臘人提出的,人們稱之為
棋盤密碼,原因為該密碼將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越長,保密程
度就越高。顯然這樣的密碼體制比單表置換密碼體制具有更強的抗攻擊能力,而且其加
密、解密均可用所謂的維吉尼亞方陣來進行,從而在操作上簡單易行。該密碼可用所謂
的維吉尼亞方陣來進行,從而在操作上簡單易行。該密碼曾被認為是三百年內破譯不了
的密碼,因而這種密碼在今天仍被使用著。
古典密碼的發展已有悠久的歷史了。盡管這些密碼大都比較簡單,但它在今天仍有
其參考價值。世界上最早的一種密碼產生於公元前兩世紀。是由一位希臘人提出的,人們稱之為
棋盤密碼,原因為該密碼將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越長,保密程
度就越高。顯然這樣的密碼體制比單表置換密碼體制具有更強的抗攻擊能力,而且其加
密、解密均可用所謂的維吉尼亞方陣來進行,從而在操作上簡單易行。該密碼可用所謂
的維吉尼亞方陣來進行,從而在操作上簡單易行。該密碼曾被認為是三百年內破譯不了
的密碼,因而這種密碼在今天仍被使用著。
古典密碼的發展已有悠久的歷史了。盡管這些密碼大都比較簡單,但它在今天仍有
其參考價值。