遼寧省沈陽師范大學 李艷鑫
密碼學也被稱為密碼書,是由保密通信的需要而開發的一門學科,也是研究信息加解密技術以及密碼破解技術的知識。密碼學有兩個顯著的特點:一是歷史悠久,二是數學能力強。在安全通信中,發送和接收信息的過程正是以下過程:發送者首先發出原始信息——稱為明文,進行一些改變或轉換——稱為加密,加密信息——密文,發出;接收方收到密文,密文恢復為明文——稱為解密,解密得到明文,即原始消息。
密碼學在1949年香農“安全系統通信理論”出版之前,密碼的傳輸主要是通過簡單的替換和替換字符來實現的,所以簡單的加密形式一般都屬于傳統密碼學的范疇。更換密碼是通過改變明文順序來實現加密效果,而替換密碼則涉及模運算、模逆元、歐拉函數在仿射代碼中的基本理論。傳統的密碼申請由仿射密碼和希爾密碼表示。在本文中,我們使用希爾代數來加密明文字母與希爾字母數字為例,簡要描述其加密思想。Hill密碼,最早是由數學家Lester Hill在1929年的“美國數學月刊”(American Mathematical Monthly)上提出的,其基本思想是用線性替換來替換n個連續的明文字母,密文的字母數,替換鍵是變換矩陣,只需要加密信息做相同的逆變換。
密碼學中的數學課程通常包括概率論、初等數論、抽象代數等。這些課程具有獨特的算法特征,尤其是初等數和抽象代數。在密碼學教學中,我們需要運用很多抽象的數學概念,如群、環、域、因式分解、同余、中國殘差定理、二次剩余。學生聽完抽象概念后只能吞下去,基本上不了解它的實際應用背景和意義。學生只能死記硬背抽象的數學概念,他們在提問過程中努力工作,流于固定的形式和慣例,不能透徹理解、掌握和使用,深入研究密碼學就有一定的難度。在教學過程中可以看出,只讓學生通過作業等常規方式來理解這些結論,不會起到更好的效果。因此,在數學的密碼學學習過程中,有必要將這些知識的特點與算法的思維方式和模塊化的方法相結合,在抽象代數中給出基本概念和相關概念中的算法思想。
密碼學是在研究如何以保密的方式傳輸信息的過程中發展起來的。簡而言之,密碼學就是研究如何在惡劣的環境中實現安全通信。它隨著密碼編碼和密碼分析的“長矛”和“盾牌”的長期地、無休止地爭奪而成長。隨著先進科學技術的應用,已成為融合多學科的全面發展的前沿科學技術。目前國內外許多本科院校都開設了密碼學課程。由于密碼學的軍事用途,密碼學本身具有一定的神秘性,秘密技術被運用于日常生活和工作的各個方面。
具體而言,從算法的角度來看,公鑰密碼系統可以形式化為三元組(K,E,D)。K表示密鑰生成算法,其形式函數是生成一對匹配的公鑰和私鑰對,為后續算法E,D加密和解密做準備,K可以是概率算法;E是加密算法,其功能模塊是實現消息加密,算法也可以是概率算法;D是解密算法,轉換算法的功能是實現相應的密文解密操作。然后給出了具體的RSA實現方法,包括RSA密鑰生成算法、加密算法和解密算法。可以看出,應用形式化模型分析來解釋公鑰密碼體制和具體實例,進一步明確了公鑰密碼學的思想,了解RSA算法加密算法的流程和安全性能的關鍵,符合當代學習過程,可以起到事半功倍的效果。
在密碼分組密碼系統的過程中,根據密碼系統的功能,將分塊劃分為幾個部分,分別說明了每個分塊的設計原則和目標,并給出相應的方法來實現對應的分塊,最后,給出每個功能塊的組合和分析。它們的安全特性不會因這些特性的組合而受到影響,應了解這部分內容的結構和“整體情況”,以便系統地梳理密碼系統設計的方法和規則,同時達到推導類比的效果。以分組密碼教學為例,分組密碼的主要威脅是已知的明文攻擊,因為分組密碼的密鑰被重復使用,即多次和一次。為了抵制這種攻擊,當需要密碼的時候需要設計一個密碼:(1)混淆:密碼的設計應該使得明文、密文和密鑰之間的依賴關系如此復雜,這種依賴關系不可用于密碼分析。(2)擴散性:密碼的設計應使密鑰的每一位都影響密文的每一位,以防止密鑰被逐一解密;明文的每一位都會影響密文的每一位,以便最明確地隱藏明文。(3)具有高度的非線性。根據這些安全需求,模塊化設計思想是將分組密碼模塊化為計算組件、計算組件組合、SPN(即替換/置換網絡)、多重迭代和輪回功能。不同的模塊實現不同的安全屬性,同時保證功能的組成部分不是抵消關系,而是疊加關系,使得它只增加安全性能,而不是相互抵消。最后給出了具體的分組密碼算法,詳細分析了其具體實現過程,如DES,IDEA,AES等。
[1]柯召,孫琦.數論講義[M].北京:高等教育出版社,2003:27-175.
[2]黃文璋. 數學欣賞[M].北京:中國統計出版社,2001:22-33.
[3]Risen K.H. Elementary Number Theory and Its Applications[M].北京:機械工業出版社(影印版),2005:11-27.
[4]Song Y. Yang. Number Theory for computing[M].New York:Sp fingerling, 2002:67-80.
[5]王國俊 .數論在密碼學中的應用[J].工程數學學報,2002,19(1):07-14.