傳統密碼技術

2022-09-13 04:57:14 字數 2764 閱讀 7593

密碼(cryptography)是一種資訊處理體系,涉及資訊的機密性完整性認證性不可否認性等許多方面。

自從人類社會有了戰爭,就有了保密通訊,就需要資訊處理體系。在2023年以前,密碼的研究與應用僅僅是文字變換技術,簡稱為密碼術。自2023年之後,shannon做了相關的工作,發表了《保密系統的通訊理論》一文,為密碼學的發展奠定了堅實的理論基礎。

密碼學發展大致分為古典密碼時期近代密碼時期以及現代密碼時期, 其中,古典密碼時期與近代密碼時期成為傳統密碼時期。

傳統密碼體制的技術、思想以及分析方法雖然很簡單,但是反映了密碼設計和分析的思想,是學習密碼學的基本入口,對於理解、設計和分析現代密碼學仍然具有借鑑意義。

根據一定規則重新排列明文,以便打破明文的結構特性。置換密碼的特點是保持明文的所有字元不變,只是利用置換打亂了明文本元位置和次序。

其加密過程是,首先將明文以設定的固定分組寬度m按行寫出,即每行有m個字元。若明文長度不是m的整數倍,則不足部分用雙方約定的方式填充。按照\(1,2,\cdots,m\) 的某一置換\(\sigma\) 交換列的位置次序得到字元矩陣\([m_p]_\) 。然後,將矩陣按\([m_p]_\) 按照列\(1,2,\cdots,m\) 的順序依次讀出得到密文序列c。

譬如將明文「beijing 2008 olympic games」加密,則代表明文的矩陣為: $$m = \left[ \begin b & e & i & j & i & n \ g & 2 & 0 & 0 & 8 & o \ l & y & m & p & i & c & \g & a & m & e &s & \end \right]$$

其金鑰可表示為 (1,4,3,5,6) 以矩陣形式表示為: $$\sigma = \left[ \begin 0&0&0&1&0&0&0\

0&1&0&0&0&0&0\

0&0&0&0&0&1&0\

0&0&1&0&0&0&1\

1&0&0&0&0&0&0\ \end \right]$$

則加密過程就是\(m \times \sigma\)

解密過程就是將加密矩陣叉乘\(\sigma^\)

週期置換密碼是將明文串p按照固定的長度m分組,然後對每組中的子串按照\(1,2,\cdots,m\) 的某個置換重排位置從而得到密文c。其中,金鑰\(\sigma\) 包含分組長度資訊。解密時同樣對密文c按長度m分組,並按照 \(\sigma\) 的逆置換 \(\sigma^\) 把每組子串重新排列為欸之從而得到明文p。

假設明文可以等長度劃分為若干個分組,則每個分組的字母可以看作是乙個m維向量。 倘若金鑰為(1 5 6 2 3) 則對應的金鑰為:$$\sigma = \left[ \begin

0&0&0&0&1&0\

0&0&1&0&0&0\

1&0&0&0&0&0\

0&0&0&1&0&0\

0&0&0&0&0&1\

0&1&0&0&0&0\

\end \right]$$

假設某明文段所表示的向量為 \(p = (a, b, c, d, e, f)\)

則加密過程為:\(p \times \sigma = (c, f, b, d, a, e)\) 解密過程就是將密文叉乘 \(\sigma^\)

所謂代換,就是將明文中的乙個字母由其它字母、數字或符號替代的一種方法。

代換密碼通常是指建立乙個代換表,加密時需要將加密的明文依次通過查表,替換為相應的字元,明文本元被逐個替換後,生成無任何意義的字串就是密文。 這樣的代換表稱為金鑰。

按照乙個明文子母是否總是被乙個固定的字元替代,可以劃分為單錶代換密碼多表代換密碼兩種。

與上文所屬週期置換密碼神似, 只不過叉乘的右部的矩陣可以擴充為\(n \times n\) 的非奇異矩陣,且滿足 \((det(k), 26) = 1\) 即滿足結果與26互素。

這種密碼是序列密碼的起源。 其原理是 \(c_i = m_i\ xor\ k_i\ mod\ 2\ \ \ \ i = 1,2,3,\cdots\)

統計密文中每個字母出現的頻率,確定其對應的範圍。 再輔助以字母組合、位置特殊性以及連續的同一字母等特性,容易確定明文本母與密文字母的對應關係。 然後根據上下文之間的關聯和構詞規則來進行密文分析。

假設某種語言由n個字母組成,每個字母i發生的概率為\(p_i, 1 \le i \le n\) , 則重合指數就是指兩個隨機字母相同的概率: $$ic = \sum^n_ p_i^2$$

值得注意的是,在單錶代換的情況下, 明文與密文的ic值是相同的。

由於在現實世界中密文的長度有限,一般採用ic的無偏估計值來近似計算ic。$$ic' = \sum^n_\frac$$

假設x和y是兩個長度分別為n和n'的字串,x和y的互動重合指數定義為x中的乙個隨機元素與y中的乙個隨機元素相同的概率,記為\(mi_c(x,y)\) 假設英文本母在x,y**現次數分別為 \(f_i f'_i\) 那麼互動重合指數就是$$mi_c(x,y) = \frac_f_if'_i}$$

互動重合指數的性質等同於重合指數的性質

假設已經確定金鑰的長度m,密文子串\(y_i\) 中的各個密文字母都是由同乙個加法密碼得到的。$$mi_c(y_i,y_j) = \sum^pp_\ \ \ (0 \le h \le 25)$$

任何兩列的一組 \(mi_c(y_i,y_j)\) 中可能存在乙個值在0.065左右,那麼 \(k_i - k_j \equiv h\ mod \ 26\)

傳統密碼技術

密碼 cryptography 是一種資訊處理體系,涉及資訊的機密性 完整性 認證性和不可否認性等許多方面。自從人類社會有了戰爭,就有了保密通訊,就需要資訊處理體系。在1949年以前,密碼的研究與應用僅僅是文字變換技術,簡稱為密碼術。自1949年之後,shannon做了相關的工作,發表了 保密系統的...

密碼編碼學初探 傳統加密技術

密碼學 研究資訊加密 解密和破密的科學。包括密碼編碼學和密碼分析學。密碼編碼學 研究如何對明文進行編碼加密的科學。密碼分析學 研究如何破譯密碼的科學。基本術語 替代 置換 單錶替代 多表替代 柵欄密碼 轉輪機 隱寫術 abc defg hijk lm01 2345 6789 101112n opqr...

執行緒傳統技術

1.實現thread類建立執行緒 public class mythread extends thread mythread mythread1 newmythread mythread mythread2 newmythread mythread1.start mythread2.start 2....