1. 程式人生 > >gscienty的專欄

gscienty的專欄

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

密碼學發展歷程

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

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

密碼學的兩次飛躍與兩個里程碑事件

  • 1949年Shannon發表題為《保密系統的通訊理論》,為密碼系統建立了理論基礎,從此密碼學成為了一門科學。第一次飛躍
  • 1976年後,美國資料加密標準DES公佈,使得密碼學研究公開,並得到迅速發展里程碑事件
  • 1976年,Diffe和Hellman發表了《密碼學的新方向》,提出了一種新的密碼設計思想,從而開創了公鑰密碼學的新紀元。第二次飛躍
  • 1978年,Rivest、Shamire和Adleman首先提出第一個實用的公鑰密碼體制RSA。里程碑事件

傳統密碼技術

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

置換密碼

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

列置換密碼

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

譬如將明文“Beijing 2008 Olympic Games”加密,則代表明文的矩陣為:

M=BglGe2yai0mmJ0pei8isnOc

其金鑰可表示為 (1,4,3,5,6) 以矩陣形式表示為:

σ=00001010000001010000000000010000010

則加密過程就是M

×σ

解密過程就是將加密矩陣叉乘σ1

週期置換密碼

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

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

σ=001000000001010000000100100000000010

假設某明文段所表示的向量為 p=(A,B,C,D,E,F)

則加密過程為:p×σ=(C,F,B,D,A,E) 解密過程就是將密文叉乘 σ1

代換密碼

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

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

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

希爾密碼

與上文所屬週期置換密碼神似, 只不過叉乘的右部的矩陣可以擴充為n×