信息安全入门,一文讲解经典密码学算法!
大数据时代,智慧城市、物联网、云计算、3D打印、VR/AR、人工智能等新事物层出不穷。网络信息安全问题不再是用户的个人问题,而是对一个国家具有战略意义。信息安全已成为推动产业创新快速稳定、国民经济升级转型和蓬勃发展的重要保障。目前,我国信息安全行业对各类网络威胁行为具有一定的防护、监督和控制能力,市场发展潜力不断提升。
信息安全产业是支撑和保障国家信息安全的重要基础,肩负着为国家信息基础设施和信息系统安全提供安全产品和服务的战略任务。传统地依赖边缘的静态安全管控措施将逐渐被基于大数据分析的先进智能安全措施所取代。随着互联网和信息技术的飞速发展,全面渗透到经济社会各个领域,信息安全问题日益突出,安全事件频发,市场需求十分旺盛。
密码学作为信息安全的底层支撑技术,一直是认证和访问控制的核心。其基本目的是允许两个人通过不安全的通道进行通信,以使其对方无法理解和理解其通信内容的方式进行通信。原始信息通常称为明文,用密钥加密的明文称为密文。密文通过通信信道传输。接收方收到密文后,用密钥解密得到明文。在通信中,即使密文被窃取,没有密钥也无法获得明文,从而保证了信息安全。
密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
一、经典密码学原理讲解
下面头歌总结了一些经典密码学算法供大家学习:
1. 移位密码
移位密码具体算法就是将字母表的字母右移k个位置(k<26),并对字母表长度作模运算。虽然其原理简单,但是移位加密是密码学中一种非常经典、也是很重要的加密方法,学好移位加密对后面其他加密方法的学习有着至关重要的作用。
假设a 和 b 均为整数,m 是正整数。若 m 整除 b-a ,则可将其表示为 a≡b(mod m)。读为:"a与 b模 m 同余",正整数 m称为模数;

通俗的来讲,移位密码体制就是通过一个线性变换,即一次方程,是使得在该变换下,明文和密文是一一对应的。下面给出具体的移位的密码体制。令P=C=K=Z26(这里的P表示明文空间,C代表密文空间,K代表密文空间)。
对0<=K<=25,任意x,y属于Z26,定义:
ek(x)=(x+K)mod26,
这个是加密式子,具体是对每一位明文字符x进行右移K位得到密文。
dk(x)=(y−K)mod26,
这个是解密式子,具体是对每一位密文字符y进行左移K位得到明文。另外当K=3的时候,此密码体制叫做凯撒密码。
2.
代换密码
代换密码(代替密码)就是明文中每一个字符被替换成密文中的另外一个字符,代替后的各字母保持原来位置。对密文进行逆替换就可恢复出明文。有四种类型的代替密码:
(1)单表代替密码: 就是明文的一个字符用相应的一个密文字符代替。加密过程中是从明文字母表到密文字母表的一一映射。凯撒密码就是一种简单的单表代替,字母表中每一个字母用它向后移动三位后所对应的字母代换得到密码表。
明码表:a b c d e f g h i j k l m n o p q r s t u v w x y z
密码表:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
明文:v e n i, v i d i , v i c i
密文:Y H Q L. Y L G L. Y L F L
(2)同音代替密码: 它与简单代替密码系统相似,唯一的不同是单个明文字符可以映射成密文的几个字符之一,列入A可能对应于5、13、25或56,B可能对应于7、19、31或42,所以,同音代替的密文并不唯一。
在同音代替中,一个明文字母表的字母a,可以变换为若干个密文字母f(a),称为同音字母,因此,从明文到密文的映射f的形式是f:A→2C,其中A,C分别为明文和密文的字母表。
例:假定一个同音代替密码的密钥是一段短文,该文及其中各个单词的编号,如下所示:
(1)Canada’S large land mass and
(6)Scattered population make efficient communication
(11)a necessity.Extensive railway,road
(16)and other transportation systems,as
(21)well as telephone,telegraph,and
(26)cablenetworks,have helped to
(31)link communities and have played
(36)a vital part in the
(41)country’s development for future
在上表中,每一个单词的首字母都和一个数字对应,例如字母C与数字1,10,26,32,41对应;字母M和数字4,8对应等,加密时可以用与字母对应的任何一个数字代替字母,例如,如果明文为I Love her forever的密文可能是:
39 2 17 37 9 28 9 14 43 17 14 13 37 13 14
(3)多字母组代替密码:
字符块被成组加密,例如”ABA”可能对应于“RTQ”,”ABB“可能对应于“SLL”等。明文中的字符块成组被加密,这里介绍一种第一次世界大战使用过的二字母组代替密码(Play fair密码)、它的密钥是由25个英文字母(J被除去)组成的五阶方阵。每一对明文字母m1和m2,都根据以下5条规则进行加密:
若m1和m2在密钥方阵中的同一行,则密文字母C1和C2分别是m1和m2右边字母(第一行看作在第五行的下边)。
若m1和m2在同一列,则C1和C2分别是m1和m2右边的字母(第一行看作为第五行的下边)。
若m1和m2在密钥方阵中的不同行和列,密文字母C1和C2分别是以m1和m2为顶点组成的长方形中的另两个顶点,其中m1和C1、m2和C2分别在同一行。
若m1=m2,则在m1和m2之间插进一个无效字母,例如X。
若明文信息共有奇数个字母,则在明文末尾附加一个无效字母。
对应的密码表如下:

例如:
明文:YHWSDLAM
密文:VPZABKHN
3. 仿射密码
仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母。

加密函数:E(x) = (ax + b) (mod m),其中 a与b互质,其中 a与m互质,m是编码系统中字母的个数(通常都是26)。
解密函数:D(x) = a^{-1} (x - b) (mod m),其中 a^{-1} 是a在Z_{m}群的乘法逆元。
4. 维吉尼亚密码
维吉尼亚密码由多个简单的代替密码构成,例如,可能有5个被使用的不同的简单代替密码,单独的一个字符用来改变明文的每个字符的位置。
大多数多表代替密码是周期代替密码,当周期为1时,就是单表代替密码。多表代替密码的种类很多,这里只介绍其中的Vigenere密码和游动钥密码。
在Vigenere密码中,用户钥是一个有限序列k=(k1,k2,k3…kd),我们可以通过周期性(周期为d)将k扩展为无限序列ki,其中Ki=K(i mod d),1≤i≤∞,从而得到工作钥K=(K1,K2,K3…)。
如果用Φ和θ分别表示密文和明文字母,则Vigenere密码的变换公式为:
Φ≡(θ+ ki)(mod n)
该密码体制有一个参数n。在加解密时,同样把英文字母映射为0~25的数字再进行运算,并按凡个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合。维吉尼亚密码表如下:

二、如何学好密码学课程
上述经典密码原理讲解过程中最重要的步骤是学习加密明文的方法,经典密码体制是密码学的基础,在密码学中占有举足轻重的地位,通过对本文的学习,你们可以掌握上述几种基本的密码体制。有对密码学感兴趣的小伙伴, 头歌实践教学平台 (传送门: 经典密码体制(上) (educoder.net) )上有教学配套的经典密码体制实训,课程采用“原理讲解+编程实战”的学习模式,通过对原理的学习,完成相应的实战训练,实现对核心技术与算法的熟悉和掌握。
同时平台的密码学课程不仅仅局限于经典密码学,更多是对现代密码学展开教学和实战。课程第二章开始就介绍了香农定理,香农三大定理是信息论的基础理论。通过实训学习概率论、信息熵、完善保密性等理论知识,掌握若干个 Shannon 的思想,虽然并没有提供具体的编码实现方法,但为通信信息的研究指明了方向。
第三章则介绍分组密码与高级加密标准,课程用一类简单的迭代密码,代换-置换网络,来说明实际的分组密码设计中应用的主要原则,介绍线性密码分析和差分密码分析等。

第四章以后就是现代密码学体制的学习,现代密码学体制又称为公钥密码体制。在公钥密码体制中的一个想法就是:可以找到一个密码体制,使得有给定的ek来求dk是计算不可行的,如果这样的话,加密规则ek是一个公钥,可以在一个目录中发布,公钥体制的优点就是Alice可以利用公钥加密规则ek发出一条加密消息给Bob,而不需要预先共享密钥的通信,Bob将是唯一能够利用解密规则dk对密文进行解密的人。例如欧几里得算法、中国剩余定理和拉格朗日定理,都是公钥密码体制的经典算法。

课程最后一讲也对现如今流行的签名方案进行了介绍。如今密码学都是采用签名的方式进行加密,数字签名能通过一个公开的验证算法对加密信息进行确认。“任何人”都能验证一个数字签名,但是却不能获取信息。作为目前主流的安全方案,数字签名还是存在一定的漏洞,例如:签名认证的伪造问题,这也验证没有绝对的安全这一观点。
头歌平台在考核方式上,采用贯穿于整个教学活动的不同环节实训任务模式,平台提供自动化评测机制,通过测试即可获得相应的分值。通过代码与密码学算法结合,真正掌握密码学原理和运用!毕竟实践才是检验真理的唯一标准。下附头歌平台使用方法:



如今正是我国建设网络安全强国的高速发展时期,对于网络安全人才的需求也是极大的。但是由于我国网络安全教育起步较晚,这一方面的人才缺口巨大,各行各业对于网络安全人才是可遇而不可求,网络安全工程师的年薪也随之水涨船高。

头歌实践教学平台 提供信息安全和网络空间安全解决方案,致力于培养“互联网+”时代能够支撑和引领国家网络空间安全领域的具有较强的工程实践能力的网络安全行业高级工程人才。平台提供系统而又完整的学习课程,还有配套的实践教学支撑平台。通过学习,能够系统掌握网络空间安全的基本理论和关键技术,从事各类网络空间相关的软硬件开发、系统设计与分析、网络空间安全规划管理等工作。如果你对网络安全感兴趣,还在犹豫什么,赶紧行动起来!