古典密碼之置換密碼

2022-06-20 14:27:16 字數 806 閱讀 6371

古典密碼編碼方法主要有兩種,即置換和代換。

置換密碼(換位密碼):是一種早期的加密方法,與明文的字母保持相同,區別是順序被打亂了。

加密方法:縱行換位密碼,在簡單的縱行換位密碼中,明文以固定的寬度水平的寫在一張圖表紙上,密文按垂直方向讀出,解密就是密文按相同的寬度垂直的寫在圖表紙上,然後水平的讀出明文。

例:i like english so much.按固定長5分組,即每行5個字母,排列如下圖所示:

密文:iesu lnhc igsh klo eim

列置換加密:將明文按固定長m分組,即每行m個字母,在金鑰控制下按某一順序交換列,最後按列優先的順序依次讀出,即產生了密文。解密:逆過程。

例:i like english so much.金鑰為24135,按固定長5分組,即每行5個字母,排列如下圖所示:

按金鑰的順序讀出密文:lnhc klo iesu igsh eim

週期置換

很大程度上同列置換,只不過加、解密時,在列交換後是按行優先的順序向下進行。

例:i like english so much.週期為5,每行為5個字母,排列如下圖所示:

密文:iesu lnhc igsh kloe im

古典密碼 置換密碼

置換密碼是一種通過一定規則改變字串中字元的順序從而實現加密的密碼演算法。常見的是將明文本串按照n個一行形成矩陣,然後再按列讀出,矩陣的列數 n 和按列讀出的順序便是金鑰。我們以字串 hello my cipher 為例來演示加密過程 選擇金鑰,我們這裡使用 4213 作為金鑰。該金鑰共4位,表示中間...

古典密碼之維吉尼亞密碼

include include intmain int i,h,x,count 0,m,m1,t int l,l2,lk,lk2,l3,l4 int p 0,j 0,n 0,p2 0,n1 0,j1 0,c 0,count1 0,count2 0 int r printf n printf 維吉尼亞...

古典密碼 凱撒密碼Caeser

在早期,凱撒密碼 caeser cipher 是指將密文平移三位,後來經過推廣,平移個數擴充套件為任意位,即移位密碼 shift cipher 凱撒密碼 caesar 加密時會將明文中的每個字母都按照其在字母表中的順序向後 或向前 移動固定數目 迴圈移動 作為密文。例如,當偏移量是左移 3 的時候 ...