文章目录
- 一、自学网络安全学习的误区和陷阱
- 二、学习网络安全的一些前期准备
- 三、自学网络安全学习路线
- 一、密码学概述
- 1、密码学的历史
- 2、密码学的基本术语
- 二、密码学基本概念
- 1、基本概念
- 2、密码系统的安全性
- 3、密码体制的分类
- 4、密码体制的攻击
- 三、古典密码学
- 四、对称密码算法
- 1、DES
- 2、DES算法
- 3、AES算法
- 4、分组密码工作模式
一、自学网络安全学习的误区和陷阱
1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习
我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多
一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少
2.不要把深度学习作为入门第一课
很多人都是冲着要把网络安全学好学扎实来的,于是就很容易用力过猛,陷入一个误区:就是把所有的内容都要进行深度学习,但是把深度学习作为网络安全第一课不是个好主意。原因如下:
【1】深度学习的黑箱性更加明显,很容易学的囫囵吞枣
【2】深度学习对自身要求高,不适合自学,很容易走进死胡同
3.不要收集过多的资料
网上有很多关于网络安全的学习资料,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书,或者收藏几十个视频
网上的学习资料很多重复性都极高而且大多数的内容都还是几年前没有更新。在入门期间建议“小而精”的选择材料,下面我会推荐一些自认为对小白还不错的学习资源,耐心往下看
二、学习网络安全的一些前期准备
1.硬件选择
经常会问我“学习网络安全需要配置很高的电脑吗?”答案是否定的,黑客用的电脑,不需要什么高的配置,只要稳定就行.因为黑客所使用的一些程序,低端CPU也可以很好的运行,而且不占什么内存.还有一个,黑客是在DOS命令下对进行的,所以电脑能使用到最佳状态!所以,不要打着学习的名义重新购买机器…
2.软件选择
很多人会纠结学习黑客到底是用Linux还是Windows或者是Mac系统,Linux虽然看着很酷炫,但是对于新人入门并不友好。Windows系统一样可以用虚拟机装靶机来进行学习
至于编程语言,首推Python,因为其良好的拓展支持性。当然现在市面上很多网站都是PHP的开发的,所以选择PHP也是可以的。其他语言还包括C++、Java…
很多朋友会问是不是要学习所有的语言呢?答案是否定的!引用我上面的一句话:学习编程只是工具不是目的,我们的目标不是成为程序员
(这里额外提一句,学习编程虽然不能带你入门,但是却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识)
3.语言能力
我们知道计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的,而且一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。而且如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍,所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)
比如说:肉鸡、挂马、shell、WebShell等等
三、自学网络安全学习路线
重点内容
密码学概述
密码学基本概念
古典密码学
对称密码算法
一、密码学概述
在加密系统中,要加密的信息称为明文(Plantext),明文经过变换加密后,成为密文(Ciphertext)。由明文变成密文的过程就成为加密(Enciphering),通常由加密算法来实现。由密文还原成明文的过程成为解密(Deciphering),通常由解密算法来实现。
为了有效控制加密和解密算法的实现,在其处理过程中,必须有通信双方共同掌握的专门信息参与其中,这种信息就被称为密钥(Key)。
加密就是研究、编写密码系统,把数据和信息转换成不可识别的密文的过程,而解密就是研究密码系统的加密途径,恢复数据和信息本来面目的过程。加密和解密过程共同组成了加密系统。
对于较为成熟的密码体系,其算法是公开的,密钥是保密的。
1、密码学的历史
1918, William Friedman’s The Index of Coincidence and its Applications in Cryptography
Rotor Machine ,Enigma , for 50 years
1949, Claude Shannon’s The Communication Theory of Secrecy System, 成为理论基础
1949-1967,Cryptographic Literature was barren
1974, IBM: Luciffer Cipher, 128位密钥作分组加密
1975, Diffie-Hellman, A New Direction in Cryptography, 首次提出适应网络保密通信的公开密钥思想,揭开现代密码学研究的序幕,具有划时代的意义
1976-1977,美国国家标准局正式公布实施DES,Data Encryption Standard
1977-1978,Rivest, Shamir, Adelman 第一次提出公开密钥密码系统的实现方法RSA
1985,ElGamal 提出概率密码系统 Elgamal方法
1990-1992,Lai Xuejia and James: IDEA The International Data Encryption Algorithm
2000, AES, Advanced Encryption Standard
2、密码学的基本术语
Cryptology(保密学),源自希腊语(Greek)
Kryptós: hidden; logos: word, 是密码学和密码学处理过程的研究。
Cryptography: The Science and Study of Secret Writing,密码编码学
Cryptagalysis: The Science and Study of Secret Breaking,密码破译学
Cipher: A secret method of writing 加密方法
Encipher(encipherment),encryption: 将明文转换成密文的过程
Decipher(decipherment),decryption: 将密文还原成明文的过程
Plaintext(cleartext): 原始的可读数据,明文
Ciphertext(Cryptogram): 加密后的不可解读之文件,密文
Key: 密钥,对加密与解密过程进行控制的参数
E(m): Encryption Transformation 加密变换
D©: Decryption Transformation 解密变换
二、密码学基本概念
1、基本概念
通常情况下,人们将可以看懂的文本称为明文,用“M”表示。需要注意的是,M可以不是ASCII码文本,它可以是任何类型的未加密数据。将明文变换成的不可看懂的文本,就是密文,这个过程就叫做加密;加密的逆过程,即把密文翻译成为明文的过程,就是解密。遵循ISO 7498-2标准的定义,加密的术语称为“密码(encipher)”和“解译密码(decipher)”。明文与密文的相互变换,是一个可逆的过程,并且只存在唯一的、不存在误差的可逆变换。完成加密和解密的算法称为密码体制。
加密和解密的过程:
2、密码系统的安全性
使用同一密钥加密和解密的过程:
使用不同密钥加密和解密的过程:
3、密码体制的分类
基于密钥的算法通常有两类:对称算法和公开密钥算法。
对称密码算法
对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反之亦然。在大多数对称算法中,加密、解密密钥是相同的。这些算法也叫秘密密钥算法或者单密密钥算法,要求发送者和接收者在安全通信之前,协商确定一个密钥。对称算法分为两类:
序列算法
分组算法
公开密码算法
也叫非对称算法:用于加密的密钥不同于用于解密的密钥,而且解密密钥不能根据加密密钥计算出来。之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生人能够用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。
在这些系统中,加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥(简称私钥),私钥有时候也叫做秘密密钥。
4、密码体制的攻击
惟密文攻击
密码分析者有一些消息的密文,这些消息都是用同一个加密算法加密。
已知明文攻击
密码分析者不仅可以得到消息的密文,而且也知道这些消息的明文。
选择明文攻击
分析者不仅可以得到一些消息的密文和相应的明文,而且他们也可选择被加密的明文。
自适应明文攻击
这是选择明文攻击的特殊情况。密码分析者不仅能够选择被加密的明文,也能基于以前加密的结果修正这个选择。
选择密文攻击
密码分析者能够选择不同的被加密的密文,并可以得到对应的解密的明文。
选择密钥攻击
密码分析者具备不同密钥之间的关系的相关知识。
软磨硬泡攻击
三、古典密码学
凯撒密码:凯撒密码是最古老的替换密码,据说是Julius Casesar发明的,因此而得名。
仿射密码:对于凯撒密码的一种改进:使明文字母和密文字母之间的映射关系没有一定的规律可循。
维吉尼亚密码:Vigenere密码利用长密钥可以隐匿消息的统计特性,选择一个密钥序列,该密钥序列用一个字符串表示。密钥的字母作用于对应的明文字母,当到达密钥的最后一个字母时,密钥又重新对应后面的明文。
Playfair密码:与上述的Vigenere密码一样,Playfair密码也是一种多字母代替密码,区别是Playfair密码用的是2字母代替密码。
Hill密码:Hill密码也叫方程加密法,是Hill发明的以联立方程为基础的加密法,因此而得名。
四、对称密码算法
有时又称传统密码算法,就是加密密钥能够从解密密钥中推算出
来,反之亦然。大多数对称算法中,加密、解密密钥是相同的。这些
算法也叫秘密密钥算法或者单密密钥算法,它要求发送者和接收者在
安全通信之前,协商确定一个密钥。对称算法的安全性依赖于密钥,
泄露密钥就意味着任何人都能对信息进行加密和解密,只要通信需要
保密,密钥就必须保密。
DES:(Data Encryption Standard,数据加密标准)是美国国家标准局于1977年公布的由IBM公司研制的加密算法。DES算法被授权用于所有非保密的通信场合,后来还曾被国际标准组织采纳为国际标准。
AES:密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。
1、DES
1972年,NBS(NIST) 美国国家标准局征集加密标准
1974年,IBM的Tuchman和Meyers发明Luciffer加密算法
1976年,NBS公布DES,1976.11.23. 当年估计破译需要2283年时间。
1981年,DES成为ANSI X3.92标准,改称DEA。
1990年,Shamir和Biham提出破译各种分组加密算法的差分密码分析方法(Differential Cryptoanalysis),通过明文/密文对之间的差别分析来寻找最大可能的密码,再辅以穷尽分析。
1997年1月28日,RSA公司发起破译RC4、RC5、MD2、MD5,以及DES的活动,破译DES奖励10000美金。明文是:Strong cryptography makes the world a safer place.
仅搜索了24.6%的密钥空间便得到结果。
2、DES算法
用56位的密钥加密64位长的数据块,得到64位长的密文。
设明文M
M=m1m2…m64
K=k1k2…k64(56bit有效)
加密过程:
E(M)=IP-1.T16.T15…T2.T1.IP(M)
3、AES算法
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。
AES是美国联邦政府采用的商业及政府数据加密标准。
AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。
AES加密数据块大小最大是256bit,但是密钥大小在理论上没有上限。AES加密有很多轮的重复和变换。大致步骤如下:
1、密钥扩展(KeyExpansion);
2、初始轮(Initial Round);
3、重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey;
4、最终轮(Final Round),最终轮没有MixColumns。
4、分组密码工作模式
分组密码是在密钥控制下一次变换一个明文分组的密码体制。
(1) 要求
分组长度足够大,以防穷举明文空间攻击
密钥量应足够大,以防穷举密钥空间攻击
密码算法足够复杂,攻击者除了用穷举法之外,找不到其他简洁的数学破译方法
(2) 基本方法
替换substitution:k位输入,2k!/k!种可能输出
变位transposition:k位输入重新排列,k!种输出
将两者结合,对每一块分组基于密钥替换一次,再变位一次,构成一轮;重复多次构成循环,这个循环的正向进行或反向进行则构成了加密和解密。