当前位置:网站首页>社会工程学之黑客番外——密码学
社会工程学之黑客番外——密码学
2022-04-22 21:29:00 【Redice.】
前言
众所周知,信息化时代离不开Password(密码)了。
毕竟密码是对号入座以及安全性必要的门槛嘛~
今天这章呢,我打算给大家科普一下密码学这个东西。
至于我为什么要把密码学放在社会工程学专栏里呢……
嗯……

可能我开这个专栏,大家看的时候都不太理解社会工程学这个东西吧~
那,开门见山,同时为了更好解释我社会工程学专栏里的东西,我先说一下社会工程学到底是什么。
一、问题所在1:什么是社会工程学?
所谓社会工程学,根据我自己的定义是这样的:
社会是人群体生活的环境,而使这个环境变化的一般情况下都是人心,在这里我们可以理解为研究人类在社会当中所出现的心理(“人类观察所”)。这门学科归类于心理学范畴,在百度百科也有明确的定义:
社会工程学(Social Engineering,又被翻译为:社交工程学)在上世纪60年代左右作为正式的学科出现,广义社会工程学的定义是:建立理论并通过利用自然的、社会的和制度上的途径来逐步地解决各种复杂的社会问题,经过多年的应用发展,社会工程学逐渐产生出了分支学科,如公安社会工程学(简称公安社工学)和网络社会工程学。
——百度百科
而无论是什么东西,只要和人有关系的都会牵扯到人心。
所以,我开这个专栏的目的就是通过心理学角度去剖析人心被骇客利用的bug所产生的黑客攻防的攻击方法,以及希望大家了解骇客是怎么想的,然后做好防护措施。
希望大家提高防范意识,不过最多的,还是免得一些不法骇客以及自以为是的脚本小子不思进取酿成大错。
毕竟善恶只在一念之间,我不相信有绝对的好人和坏人。
不过无论是真善美还是假恶丑,大家还是想见到好的一面对吧。

那么回到正题。
二、问题所在2:密码学和社会工程学有什么关系?
别的不说,你可以自己看看你的密码:除非是乱打,如果你想设计一个密码并记住它,肯定会设计一个和身边事物有关的的密码。
比如你的身份证,你的学号,你的工作号,你的名字、生日,以及你的男/女朋友或者是老公/老婆的生日等等。
这些东西和你的心理是有很大关系的:哪些重要,谁先谁后,或多或少都会在心里有一个衡量标准的吧。
而密码学注重的,是设计密码的方法。
当你把心里所想的东西用密码学的方法设计成密码,是不是就好记而且复杂了好多?
当然,好记的密码,逻辑性也很强:无论是心理逻辑还是思维逻辑。至于那些昙花一现的新玩法甚至毫无逻辑的密码,咱们另说。
三、问题所在3:什么是密码(学)?
首先咱们需要了解什么是密码。
我对密码的定义是:明文通过某种逻辑和方法加密后所形成的字符串(或编码)。
当然,密码的定义有很多,不过最准确的还是下面的说法靠谱:
密码是一种用来混淆的技术,使用者希望将正常的(可识别的)信息转变为无法识别的信息。但这种无法识别的信息部分是可以再加工并恢复和破解的。密码在中文里是“口令”(password)的通称。
——百度百科
而对于密码学的定义是这样的:
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。
——百度百科
密码学其实也分很多类,不过在这里我们会分成两类来说:一个是经典(传统)密码学,另外一个是现代密码学。
而为了能让你更透彻理解下面的内容,你还需要知道:
密钥:分为加密密钥和解密密钥。
明文:没有进行加密,能够直接代表原文含义的信息。
密文:经过加密处理处理之后,隐藏原文含义的信息。
加密:将明文转换成密文的实施过程。
解密:将密文转换成明文的实施过程。
——百度百科
四、衍生问题: 经典(传统)密码学 & 传统密码学
在近代以前,密码这个东西只是为了信息的机密性。
说白了就是如何将可理解的信息转换成乍一眼看着难以理解的信息,并且有其他人根据某些逻辑看懂并且能供用同样的方式回复。
这么一看大家都应该懂了:这样做的话,缺乏秘密信息的拦截者或窃听者则无法解读。
我们把上述称为“经典(传统)密码学”。
而它包括:
1.替换式密码
2.移项式密码
3.替换+移向式密码
看着这种密码其实比较简陋对吧。
因为这里有一个东西叫Kerckhoffs原则。
Kerckhoffs认为,一个密码系统的安全性不是取决于其算法对于攻击者来说是否保密, 而是建立在它所选择的密钥对于攻击者来说是否保密。也就是说,即使密码系统的任何细节已为人悉知,只要密钥(key)未泄漏,它也应是安全的。
确实,在近代之前科技没有现在这么发达,他说的这些当然是对的。
但如果拿到现在的话……首先计算机代替人力测试不说,我们还有更加严谨的算法加密方式。
然后,新的密码学诞生了:
本身应该是有一种东西叫做近代密码学的。
但是个人认为它的安全性和现代密码学差不多,请原谅我把近代密码学和现代密码学混为一谈。
不过这里的区别还是要说一下的:近代密码学加密的技术对象是字符,而现代密码学加密的技术对象是计算机的底层进制——二进制。
现代密码学研究信息从发端到收端的安全传输和安全存储,是研究“知己知彼”的一门科学。其核心是密码编码学和密码分析学。前者致力于建立难以被敌方或对手攻破的安全密码体制,即“知己”;后者则力图破译敌方或对手已有的密码体制,即“知彼”。
——百度百科
也就意味着,密码从字符衍生到了编码,并且使用了更高级的算式、算法以及思维。
综上所述,大家也应该能理解我对密码的定义是怎么来的了吧。
那么,我们对密码(学)有了更深刻的了解。下面我将介绍一下几种密码方法。
五、几种通俗易懂的常见密码方法
1.凯撒密码
小的时候我想大家基本都干过一件事:
数字:(+2)
0 1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 0 1
如果两行两两对应去取代原文数据,比如明文为“2022.4.22”,我可以通过这种方式取代成:
4244.6.44
诸如此类,无论0~9数字串了几位,都可以这么做。
那如果我把数字全换成字符或者……数字加字符,是不是也可以这么做呢?~
1#字符:(+11/-15)
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
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
2#数字加字符:(+8/-18)
0 1 2 3 4 5 6 7 8 9 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
H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 A B C D E F G
上述的括号里,“+”代表着向前串,后面的数指串了多少位,“-”是向后串,后面的数同理。
这就是凯撒密码——由一个叫凯撒的国王发明。
2.摩斯电码
摩斯电码又被称为“莫尔斯电码”,就是咱们熟知的‘.’和‘-’。
而这个电码的运行媒介,最开始是声音。‘.’代表着声音响的时间短,而‘-’代表着声音响的长。
随着时间的推移,‘.’与‘-’分别可以用‘A’和‘B’替代。
而‘.’和‘-’的不同组成代表着不同的字符:

当然,由于时代在进步,摩斯电码如今也能用于其他字符的加密(各国语言)。
3.云影密码
云影密码,也称作“幂数加密”,这个加密过后的密文由0、1、2、4、8(0以及2的幂数)组成。
一位只能用一个数字或字符表示,因此最高只能到‘8’。(看16进制组成你就明白了,但是云影密码为了和16进制分开,只能用数字表示。)
‘0’为间隔符,每当一串数字表示完一个字符后,由‘0’隔开。
而明文(仅限英文字母)里,每个字母在字母表当中都对应着唯一的数字:
1 2 3 4 5 6 7 8 9 10 11 12 13
A B C D E F G H I J K L M
14 15 16 17 18 19 20 21 22 23 24 25 26
N O P Q R S T U V W X Y Z
那么,在云影加密时,我们把明文中的字母先替换成字母表中的相应数字,然后再用上述5除了0以外另外的4个数字(1、2、4、8)拆分,再加上分隔符‘0’,就可以获得相应密文
举个栗子~
比如我的名字是“Redice”,那么 R=18=8+8+4,e=5=4+1,d=4=4,i=9=8+1,c=3=2+1,e=5=4+1。
那么再加上间隔符就是:88404104081021041
除此之外,“R”不止可以这么拆,还可以拆成 4+4+4+4+4,2+2+2+2+2+2+2+2+2+2,也可以用18个‘1’替代(只要你不嫌麻烦),而其他字母亦是如此。
后序
除了这些,还有很多密码加密方式,当然了,密码学的脚步不会止步于此,如果可以,之后我会出密码学的专栏,我们可以一起研讨一下有趣的密码哦~
——Redice(Yatogami)
版权声明
本文为[Redice.]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_46347405/article/details/124348471
边栏推荐
- Soochow securities x kangaroo cloud: the data is easily available and has millisecond response ability. What did Soochow securities do right?
- Huawei interview question: "how can an 800kg cow cross a 700kg bridge?" You can live your life as you think
- Interface test mock practice (II) | complete batch manual mock in combination with JQ
- Uclibc is different from glibc
- Summary of problems encountered in ffmpeg audio decoding
- Pytoch note58 CNN visualization
- Time report filling rules
- Unstable sorting (selection, fast)
- 未来源码 | 吴恩达教授重磅演讲:Tips for using a data-centric AI approach
- One thread gets memory and another thread releases memory, resulting in memory leakage
猜你喜欢

MySQL deadlock analysis and solution caused by index merging!

Solving SCP command secret free login in shell script

345 leetcode ransom letter

EMMC 擦除组的理解

2022-4-22 Leetcode 91.解码方法

Analysis of tourism products: travel around

c语言怎么实现猜数字小游戏

Project tutorial of developing OA enterprise online office system based on SSM framework - with source code - graduation design

Fiddler - tamper with the data returned by the server

How to write word reading and color games based on JS
随机推荐
基于JS怎么编写看字说颜色小游戏
Force buckle - 64 Minimum path sum
input file修改样式
未来源码 | 吴恩达教授重磅演讲:Tips for using a data-centric AI approach
. net core uses iasyncexceptionfilter to capture global exceptions and return information uniformly
shell脚本中解决SCP命令免密登录
【工具配置篇】Visual Studio 中由 designer 生成的. ui 文件未能及時更新問題的解决方案
After five years of graduation, how to increase the monthly salary from 5K to 50W +, what core skills do you need to master?
实验3
Reverse entry (III) save CT table and generate exe modifier after CE automatic assembly
paho. mqtt. C. summary of use
.bashrc . bash_ profile . bash_ logout . bash_ history
php中302指的是什么
Future source | Prof. Wu Enda Heavy Speech: Tips for Using a data Centric ai Approach
Thread communication mechanism: shared memory VS message passing
[tool configuration] generated by designer in visual studio Solution to the problem of UI file not being updated in time
Future source code | Professor Wu Enda's lecture: Tips for using a data centric AI approach
未來源碼 | 吳恩達教授重磅演講:Tips for using a data-centric AI approach
Huawei interview question: "how can an 800kg cow cross a 700kg bridge?" You can live your life as you think
[data cleaning and drawing] simple application of dataframe