辽宁省沈阳师范大学 李艳鑫
密码学也被称为密码书,是由保密通信的需要而开发的一门学科,也是研究信息加解密技术以及密码破解技术的知识。密码学有两个显著的特点:一是历史悠久,二是数学能力强。在安全通信中,发送和接收信息的过程正是以下过程:发送者首先发出原始信息——称为明文,进行一些改变或转换——称为加密,加密信息——密文,发出;接收方收到密文,密文恢复为明文——称为解密,解密得到明文,即原始消息。
密码学在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.