自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第五章 密码学基础上)【建议收藏】

news2024/11/13 18:23:08

文章目录

  • 一、自学网络安全学习的误区和陷阱
  • 二、学习网络安全的一些前期准备
  • 三、自学网络安全学习路线
    • 一、密码学概述
      • 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!种输出
将两者结合,对每一块分组基于密钥替换一次,再变位一次,构成一轮;重复多次构成循环,这个循环的正向进行或反向进行则构成了加密和解密。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/690582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Debezium系列之:监控 Debezium 实例

Debezium系列之:监控 Debezium 实例 一、概述二、实现步骤三、执行四、打开Grafana UI五、关闭集群 Debezium JMX相关的技术博客: Debezium系列之:安装jmx导出器监控debezium指标Debezium系列之:为Debezium集群JMX页面增加监控&a…

UE4/5动画系列(4.足部ik制作)

目录 前期准备 添加虚拟骨骼 ​编辑 腿部函数: 前肢: ​编辑 盆骨函数: 后肢: 进入动画图表: 前期准备 首先准备一个后期处理动画蓝图 然后【因为笔者之前的大象因为不知明原因崩溃,这里就不展示如何…

蓝桥杯专题-试题版-【圆的面积】【字符串对比】【字母图形】【核桃的数量】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

如何用机器学习做淘宝用户画像分析?

用户画像,即用户信息标签化,就是企业通过收集与分析消费者社会属性、生活习惯、消费行为等主要信息的数据之后,完美抽象出一个用户的商业全貌是企业应用大数据技术的基本方式。 用户画像为企业提供了足够的信息基础,能够帮助企业…

ChatGPT最新版带来的多功能批量写作工具激发您的创作

随着人工智能的不断发展,ChatGPT最新版作为一款多功能批量写作工具,为创作者们带来了前所未有的创作体验。它能够通过自然语言处理和机器学习技术,生成高质量的文章、故事、对话等内容,为创作者们提供了无限的创作灵感和可能性。本…

MFC 用Stream读取资源里PNG资源 告别exe文件需要资源跟着

在资源视图里添加资源 导入PNG资源 会自动新建一个PNG的文件夹 这时候 PNG就已经在资源里了 但是CImage只能通过路径或者流的方式来加载 不能根据ID值 我们就自己写个方法 声明 bool LoadImageFromResource(IN CImage * pImage, IN UINT nResID, IN LPCSTR lpTyp);实现 bo…

蓝桥杯专题-试题版-【数列排序】【数列特征】【特殊的数字】【特殊回文数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

Unity 桌面精灵+鼠标穿透

透明功能shader: Shader "Custom/MakeTransparent" {Properties {_MainTex ("Base (RGB)", 2D) = "white" {}_TransparentColorKey ("Transparent Color Key", Color) = (0,1,0,1)_TransparencyMargin ("Transparency Margin&qu…

Spring Boot中的@GetMapping注解,如何使用

Spring Boot中的GetMapping注解 介绍 Spring Boot是一个流行的Java框架,它提供了许多方便的注解和工具,使得Web应用程序的开发变得更加容易。其中,GetMapping注解是Spring Boot中最常用的注解之一,它可以帮助开发者定义和处理HT…

C# 多张图片合成一张PDF

我是将每张图片转为byte[],再将所有的字节数组转为byte[][],然后对byte[][]进行的处理,大家有其他格式的图片要进行处理的可以先转为上述数据格式。 语种:C# 用到的第三方库:PdfSharp.dll(可直接使用PDFsharp包)&…

C++11右值引用

目录 概念左值和右值左值引用和右值引用 使用左值引用右值引用和移动语义 完美转发万能引用完美转发 概念 左值和右值 左值 左值是一个可以被取地址、修改的对象或变量,其具有固定的内存地址。 左值可以出现在赋值语句的左边,因为它们表示一个可被修…

rabbitmq安装步骤和遇到的问题

一、安装准备工具 1.下载Eralng,下面链接已提供otp_win64_20.2.exe 链接: https://pan.baidu.com/s/1lmvCMPVAV1Ba9UogCdQpZg 提取码:x9m7 2.下载rabbitmq,下面链接已提供rabbitmq-server-3.7.4.exe 链接: https:…

CentOS安装supervisor管理rocketmq进程

一、supervisor 介绍 Supervisor 翻译过来是监管人,在 Linux 中 Supervisor 是一个进程管理工具,当进程中断的时候 Supervisor 能自动重新启动它。可以运行在各种类 Linux/unix 的机器上,supervisor 就是用 Python 开发的一套通用的进程管理程…

【Qt】随记2:CV_Assert的用法

欢迎阅读本博文,本文主要记录Qt学习、工作中的一些注意点及相关笔记📃 希望记录的内容有帮助到你,也欢迎把你知道的分享给大家,一起进步!🎉 喜欢的话,请帮忙点赞👍、评论&#x1f4…

STM32开发指南:逐步揭开嵌入式世界的奥秘

想要深入嵌入式开发领域?掌握STM32这本"天书"?也许你觉得它难以捉摸,但是别担心!我们为你准备了一份简洁明了的指南,将带你逐步解读STM32的奥秘。 首先,我们将介绍STM32的基础知识。从了解STM32…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第六章 身份认证与访问控制)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、身份认证1、身份认证概述2、身份认证常用技术3、常用身份认证机制 二、访问控制1、访问控制概述2、访问控制基本要素 三、访问控制类型四、访问控制机制 一、自学网络安全…

git 常见错误解决

一、git命令运行时出现以下错误提示: git add -A fatal: detected dubious ownership in repository at D:/****/WWW/www.***.cc D:/**/WWW/www.**.cc is owned by:S-1-5-32-544 but the current user is:S-1-5-21-4097290046-3821524887-*****-1001 To add an exce…

B站 Java相关学习资源汇总

一、计算机网络 计算机网络微课堂 https://www.bilibili.com/video/BV1c4411d7jb?p1 讲师:湖科大教书匠 评价:通俗易懂,重点知识十分细致,配合实验,而且有考研408 的难题的讲解,也是非常适合考研党&#…

QT树的实现

理论 在Model/View结构中,数据模型为视图组件和代理组件提供存取数据的标准接口。在QT中,所有的数据模型类都从QAbstactItemModel继承而来,不管底层的数据结构是如何组织数据的,QAbstractItemModel的子类都以表格的层次结构表示数…

Qt中多线程的使用

前言 在进行桌面应用程序开发的时候, 假设应用程序在某些情况下需要处理比较复杂的逻辑, 如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事件&a…